By Howard Guppy

Originally published in EUG #04


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"
      150 REM
      160 REM   f1 = tones ON
      170 REM   f2 = tones OFF


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************************
       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
      360 END


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%
      130 LDA&3CA
      140 AND #&FE
      150 STA&3CA
      170 ]
      180 NEXT
      190 ?&220=&DE
      200 ?&221=&5F
      210 *FX14,4

Howard Guppy, EUG #4