This side is for hackers: The program on side 2 of this disk, B.BACKUP, is the source of a very useful utility. The Rom it generates is very simple: it gives you only two new commands: *FX 143 49 and *fx 143 50. *FX 143 49 saves the contents of memory - all 32K including system variables, screen, filing system etc. - to sideways Rom. It also saves the registers, including the PC. *FX 143 50 loads it all back again, and resumes execution from the old PC. These two commands together give you incredible power: you can arrange for the save command to be called on a keypress, for instance. You can press some key (let's use Control-Z in our example) and whatever you were doing at that time will be remembered. You can do something else - perhaps use Basic to do some quick sums needed for a document you were editing - and then return to your word-processor with text still in memory. You would return by issuing something like a '*resume' command. There's such a command on this disk in fact, called *FG. (Short for 'foreground' - trying to look like Berkely Unix) [Later amendment - it's actually much easier just to press [BREAK] - so the *FG command has been removed] Incidentally, the Save-ing FX does not cause the program you are running to stop - in the example above the Control-Z code explicity executed a BRK instruction to cause the "Suspended" message. If you have battery back-up, you can use another utility from this disk: *AUTO, which saves the memory every few seconds on a timer event. This means that when you power down, the sideways Ram will have remembered the last thing you were doing (well, within the last ten seconds of powering down). Gone forever is the frustration of switching off a machine without saving either program or text file. I recommend this for anyone using their micro in business. Of course, the *AUTO works without battery backup - you can switch it in and out using BREAK and CTRL-BREAK. Both the AutoSave program and the Control-Z program have the following features (in fact, anything using the Backup Rom would): if you press control-break, you will get a genuine hard break, and all trace of any utilities will be gone - your auto-saving will be switched off, the Control-z feature will be gone etc. However, an ordinary break will resume back to the last saved point (like the *FG command - which is a bit redundant, but is in their because I like the unix style interface). The code was deliberately written as two simple, raw osbytes - the utilities which use it are transients loaded from disk and running in Ram. This allows programmers to build the basic mechanism into their own utilities - I'm sure you will be able to think of uses for this code which I couldn't possibly imagine. It would be possible using this to write a system akin to the PMS Genie - calendar, notepad, etc. (One battery backup system has a built-in real-time clock which keeps running over power-down) The BACKUP code itself is incredibly dirty - I don't recommend tampering with it. The only drawback I've found with it is that it uses 4 sideways slots - it ought to be possible to write this code using only 2 ram slots for the 32K of data, and a seperate Rom (or Ram) slot for the code. The RomLoad program on side 2 is a tweaked version which changes the rom header for each file it loads - this is because the Backup Rom must be loaded into all 4 ram slots: normally, the MOS would suppress three of the copies because it has code for detected duplicate Roms. Another serious use for the code is for to make a program re-startable, when it is a very long program which is liable to run longer than the up-time of the machine: if you are liable to power failures (say during a lightning storm) then when the power comes on again, you can restart the program from where you left off. Similarly, if you have a dicky machine which sometimes crashes, you will have in Ram the state of the machine before the crash. This will help you find the cause of the crash, as the automatic saving will stop if the machine has gone completely stiff... If it happens again on restart, its almost certainly a software fault; if it continues OK the next time you might want to start looking at the hardware... Finally, for people with second processors: start up with the 2nd proc off, and get Auto-save running. Then switch the 2nd proc on, and Ctrl-break to get it going. Auto-save will now be off (it doesn't work with tube memory anyway). Say you had BASIC going on the IO proc, and VIEW on the 2nd proc. Assuming you had a file in View, the following is now the case: from now on, when you soft-break, you will be running in Basic on the IO processor, with your Basic program intact. When you Ctrl-break, you will be on the 2nd processor, and (view-3 only) your text will also be sitting there ready! (View-2 users will have to do an OLD first).