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
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#intercept MOD256
180 LDY#intercept 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
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