Zero2 Control Program To Back-up ---------- Before use it is advisable to make a back-up copy of the cartridge. Reset the QL Press F2 Put the master cartridge in mdv2_ Put a blank cartridge in mdv1_ Enter LRUN mdv2_clone This will format the cartridge in mdv1_ and copy over all the files from the master cartridge. To Use ------ Reset the QL Put the cartridge in mdv1_ Press F2 The boot program will load automatically and will then load and run the main program Robot. Robot will then look in files Zmem and Zmem_names to see if any routines were saved from the last session, and if so it will load them into its memory. It then prompts for a speed-factor and gives an option to set the pen position to 'up'. If this option is not taken the it presumes the pen is already in the 'up' position. The speed-factor and pen position initialisation can be done at any time by entering zinit which alsi initialises the serial channel, or just the pen position can be altered by entering peninit. Entering help will display a series of 'Help' screens listing all the commands available to the user that the program understands. However since the user is operating directly in SuperBasic (see next section) any legal SuperBasic command will be executed, even 'list'. At the end of a sesssion enter quit and this will update and close the files Zmem and Zmem-names. Failure to use quit will almost certainly leave Zmem and Zmem-names in a poor state as the QL file buffers are only flushed when the files are closed. Should it happen the program will probably error in the next session when any long-term memory routine is called (by mexec). Entering LRUN mdv1_Initmem will restore Zmem and Zmem-names to their empty state. Cartridge FIles Boot loading program for Robot Basic Robot robot control program Basic Zmem holds all long-term memory routines Data Zmem-names holds routine names and lenghts Data Initmem initialises Zmem and Zmem-names to empty Basic Clone cartridge bac-up program Basic Program Operation ----------------- Most of the program consists of SuperBasic procedures which are invoked directly by the user at the keyboard and since the early QLs (pre JS) had no error trapping facilities available from SuperBasic the program uses two ways to protect itself. a) For thos procedures which are learnable robot commands and are also User invoked with a parameter eg. 'FD n' etc. failure to append any parameter will lead to a program error. This can be overcome by then entering oops which prompts for the missing data and executes a SuperBasic RETRY. b) Other procedures are invoked by name only and they then request any data they need.