Keytone
This routine makes the computer beep every time a key is pressed. I know this makes our beloved Elk sound like a lower form of computer life - dare I say Speccy? [You may but on your own head be it! - Will] - but it has been found to be useful when typing in magazine listings as you can hear that the key you thought you pressed really did make contact, without continually having to check the screen. It can be turned on and off very easily using function keys 1 and 2 as these are set up from within the program.
10 REM************************
20 REM KEY TONE
30 REM (C) H. M. GUPPY
40 REM FEB 1989
50 REM************************
60 REM
70 MODE6
80 ?&265=150:?&266=1:P%=&90
90 [
100 OPT0:LDA#7:JSR&FFEE:RTS
110 ]
120 *KEY1"*FX14,2|M?&220=&90|M?&221=0|M"
130 *KEY2"*FX13,2|M?&220=162|M?&221=255|M"
140 PRINTTAB(10,10)"KEY TONE INSTALLED"
150 REM
160 REM f1 = tones ON
170 REM f2 = tones OFF
Tapeoff
Having converted a lot of software to disk, it is annoying to find that the program itself then selects the tape filing system, so losing all the benefits of disks. This routine intercepts the Operating System call that selects tape.
Simply RUN the routine then try typing *TAPE. Although this routine doesn't work with all converted software, it works with about 50%. The only problem is finding somewhere safe to put the assembled code so that it is not corrupted by the program to be used. Some places I have used are: halfway up the BASIC stack, the function key storage area and screen RAM!
Happy hunting...
10 REM************************
20 REM *TAPE INTERCEPT
30 REM (C) H. M. GUPPY
40 REM FEB 1992
50 REM************************
60 REM
70 osbyte=&20A
80 FOR opt%=0 TO 2 STEP 2
90 P%=&150
100 [:OPTopt%
110 .init
120 SEI
130 LDAosbyte
140 STAretvec
150 LDAosbyte+1
160 STAretvec+1
170 LDX#Intergalactic_Traderrcept MOD256
180 LDY#Intergalactic_Traderrcept DIV256
190 STXosbyte
200 STYosbyte+1
210 CLI
220 RTS
230 .intercept
240 CMP#&8C
250 BEQend
260 JMP(retvec)
270 .end
280 LDA#&7C
290 JMP(retvec)
300 .retvec
310 EQUW 0
320 ]
330 NEXT
340 CALLinit
350 PRINTTAB(10)"TAPE INHIBIT INSTALLED!"
360 END
Unlocker
This is as it sounds - a routine to unlock locked cassette files as an aid to getting software converted to disk. The program reserves memory for itself just below screen RAM, so changing modes after the program has assembled itself may corrupt it. This program does not put your locked software onto disk, but they may now be loaded using *LOAD.
10 REM***********************
20 REM Tape file unlocker
30 REM re-locate as needed
40 REM (C) H. M. GUPPY
50 REM June 1989
60 REM***********************
70 REM
80 HIMEM=HIMEM-&22
90 FOR I%=0 TO 2 STEP 2
100 P%=HIMEM
110 [OPT I%
120 PHP:PHA:TXA:PHA:TYA:PHA
130 LDA&3CA
140 AND #&FE
150 STA&3CA
160 PLA:TAY:PLA:TAX:PLA:PLP:RTS
170 ]
180 NEXT
190 ?&220=&DE
200 ?&221=&5F
210 *FX14,4
Howard Guppy, EUG #4