MICRODRIVE COPYCAT The microdrive uses approximately 600 bytes of memory for the microdrive maps and microdrive/interface 1 system variables. If you try to load the code directly into memory the microdrive maps will probably be over-written crashing the computer and perhaps damaging the microdrive cartridge. The only way, therefore, to convert machine-code programs so that they can be loaded from the microdrive and sucessfully run is to load the machine-code into high memory and use more machine-code to move the code back to its original position. This can be a laborious job even if you do understand how to program in machine-code. This program (which will only work on the 48K spectrum) is designed to take the trouble out of converting programs onto microdrive cartridge. The program itself will only copy CODE blocks not BASIC programs. You are expected to make the necessary modifications to the BASIC though you will be told exactly what you must do by the computer. If there is no essential BASIC you will, instead, be asked to type in a short program which is used to load the machine code program from the microdrive. To load the program enter LOAD""(ENTER). When the program has finished loading you will be asked whether the program to be copied contains BASIC needed by the machine-code during program execution. If the basic is very short and does no more that load the machine-code then answer "n". If in doubt answer "y"- usually little harm can be done by entering the latter-it just means that it will take slightly longer to convert the programs. You should now insert the cassette to be copied to microdrive into the taperecorder and press play. After the first block of the program has loaded (if the block is the BASIC loader program) the computer will ask you to stop the tape. This will probably be for only a few seconds. The next block may be a screen. There is usually little point in copying this to the microdrive cartridge as it will only be present, when loading the program, for a few seconds. The screen may however be needed during the program (though this is fairly rare). If you do want to copy it enter Y for "yes". You will not need to rewind the tape after entering your choice as long as the tape was stopped when "STOP THE TAPE" appeared. After the second block has been loaded the computer will ask you to stop the tape and you will be asked if there is another block. This is another way of saying "is there any more of the program to load". Again enter Y or N. After the program has finished loading you should insert a cartridge with enough space left to copy the whole program. If you do not, the computer will print "Microdrive Full". The computer will now either: 1) print out a very short program which you should type in and save to the microdrive. or 2) print out part of a line of basic. The computer will ask you to merge the BASIC program you are trying to copy, erase any CLEAR and LOAD statements in the program around the line the computer will tell you the statements are, and replace them with the program that the computer has printed. As you do not want to save the microdrive copycat program at the same time as the short program the former has a auto-destruct feature. This allows you to get rid of the copy-cat program without permanently destroying the screen. Therefore when you have copied the display (if you have a printer) you should press "3". After the program has been destroyed ENTER "RANDOMIZE USR 50000"- the BASIC program that you must type out will reappear on the screen. You should now do exactly what the computer tells you to. If you accidently clear the screen simply enter RANDOMIZE USR 50000 (enter) and the program will be printed again. Once you have typed out the program or modified the BASIC program you should save this to the microdrive using a filename which will make it obvious which program you have copied. Whenever you want to load that program simply enter LOAD*"m";l;"(filename)" (enter) and the program will load. It is advisable to turn the computer off and on or type RANDOMIZE USR 0 (ENTER) before loading any program from microdrive. The microdrive copycat is designed mainly for the copying of machine-code programs. It will copy most all machine-code programs with the exception of some very long M/C programs eg. Chequered flag and headerless programs. There are also a minority of other M/C programs that cannot be converted. The only foolproof way to see if a program can be converted is to try to convert it. If you have a program which gives very hazy lines when the header is being loaded and where blocks are very close together the computer may not be able to tell when a block has finished loading- it will think that the header is a continuation of the last block. In this case stop the tape when the block has finished loading and start it again when the computer tells you to. If you want to copy an all-BASIC program then you should play the header through the microdrive copy-cat program- the computer will then tell you the auto-run number. Now NEW the program and MERGE the program by typing MERGE""(ENTER). Then type SAVE*"m";1;"(filename)"LINE (number found previously).If the graphics are loaded separately enter replace LOAD""CODE USR "a" with LOAD*"m";1;"GRAPHICS"CODE USR "a", save the program and save the graphics with SAVE*"m";1;"GRAPHICS"CODE USR "a",168. (C) Rarari Software 1984 -------------------------------------------- Document created by Frode Tennebø, 20070408.