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