How do you back up programs you can’t BREAK into, like machine code (MC) or self-running programs? You know the importance of back-ups if you or your tapes ever malfunction. This trick LOADs any program and then returns to BASIC, without activating the error detector.
Hook up both EAR and MIC plugs so you can LOAD then SAVE. Put the tape in the tape deck without turning it on.
SAVE CHR$ USR 832"program name"
You must change tapes quickly in the 5-second silence between LOAD and SAVE, and press RECORD/PLAY. (It helps to keep your cassette deck’s hood opened.) If the program self-runs, it executes after finishing the SAVE.
How does it work? USR 832 calls the ROM LOAD subroutine, and the two quotes hold the program name. (You can also type “” with no program name. The computer reads this as LOAD “”.) After LOADing, the USR call RETurns to BASIC to finish the line, evaluating to zero. CHR$ changes the zero into a string. The line reads SAVE ” ” (CHR$ of 0 is the space character) and the computer SAVEs the program. For SAVE and LOAD, the syntax checker looks only for a quotes and any string, so the computer accepts the line and SAVES.
SAVE a self-running program (with or without MC) by pressing BREAK after the program LOADS and starts to RUN. (If you can’t BREAK in here, try CHR$ XX in response to an input prompt to get an error report.–LFV) This RETurns you to BASIC and a K cursor. LIST the program to find the line SAVE “program name.” GOTO this line to SAVE the program under its name.
These methods worked on all my unSAVEable programs.