MANUAL FOR CONVERSION UTILITY 5F This package is tailored for the FIREB*RD multiple short tone loader. It has been added to the CU5 package of programs making CONVERSIONS of FIREB*RD programs easy for TAPE to TAPE and TAPE to DRIVE. It is designed for 48K use only. It will convert the majority of this type of program to a format suitable for tape backup (converting to "normal" loading) OR drive transfer. Our INFORMATION SHEETS will hopefully cover most of the cases where CU5f fails to work. The conversions follow a similar pattern to our other Conversion Utilities. The FIREB*RD type of loader can be recognised by the initial basic which has NO gap between the tones, and the name is then printed at the top of the screen. A code block is loaded, the screen clears and Searching 00 appears. Loading 00 etc. to 2E appears as each short tone loads. The screen then appears and the rest of the game loads as above with the last block being any number above 80. A final section of code, headerless, or a screen of 05 short tones may then also load. Make sure you are familiar with CU5 before reading the rest of this manual. GETTING STARTED To load in CU5f, forward your LERM to the start of the program and use LOAD"" (and ENTER), then play the tape. 128k Spectrum owners note that you must be in 48k Spectrum basic. Plus 3 owners who have CU5f on disc simply use the LOADER, and press the appropriate key to select CU5f. It is best to know how the game you wish to convert loads before using this utility. It may be that the screen is needed for game play or that you just like to have a screen to watch whilst the game loads. There are three types of "save" available, and except in certain cases, the choice is yours. STAGE ONE Having loaded in CU5f, rewind your game to its start, and press and play the master tape. The initial basic, code and short tone block to 2E will load. The program name will be displayed during the load. When 2E has loaded you will be warned to STOP the Tape (do this quickly!) and PRESS ANY KEY. A buzzer is sounded as well. At this stage you are required to choose one of 3 OPTIONS, numbered "1", "3" or "5". In certain instances you are warned to use OPTION 5 - see later under ADVANCED NOTES. Having pressed a key the following OPTIONS and DATA information are displayed: Program Name:- 1. Tape Save = all memory 3. Special save = details displayed below panel 5. Drive Save = the normal 23296,4096 + 27392,38144 Other details:- Code Load Address XXXXX Main Code length YYYYY Stack Pointer AAAAA Rand USR ZZZZZ l = load c = cancel n = next The DATA information gives you the address into which the MAIN machine code for the game is loaded into, and then the MAIN CODE length - that is how many bytes long it is. Your game may also need the screen to run it as well. After that you are told the CLEAR NUMBER you need (STACK POINTER can be regarded as the same thing), and finally the RANDOMISE USR number from which the game normally runs. This information is handy for TAPE to DRIVE transfer. Press the number key of your choice "1", "3" or "5" - having made your choice normally you then press key "n" to take you onto STAGE TWO. However you can, instead press "c" which will CANCEL the CHOICE, allowing you to change your mind: OR "l" will return you to the start of STAGE ONE again. (i.e. the letter "l") WHICH OPTION? This really depends on your personal preference AND your machine AND drive unit. OPTION 5: FOR MOST TAPE TO DRIVE TRANSFERS. Is normally recommended for MOST drive users, and is the same as our other utilities in that, later on, we save out to TAPE two blocks of CODE - the first is 4096 bytes long from address 23296, and the second 38144 bytes long from address 27392. The screen area is therfore NOT saved. The blocks are given the name of the original program, but the tenth character is changed to "1" and "2" respectively. OPTION 1: FOR TAPE to TAPE. This saves the whole of memory - that is in addition to the blocks saved in OPTION 5, the screen is also saved with the tenth character of the original programs name as "0". So for TAPE to TAPE backup press OPTION 1. If you are only going to do TAPE to TAPE transfers then don't bother reading anything about OPTION 3, and go straight on to STAGE 2. Option 1 can be useful for drive transfer if the screen, or part of it, is needed for game play. You will have to write your own BASIC loader, and "move" code using our "BYTES MOVER" program. It is probably best to consult our information sheets. OPTION 3: TAPE to DRIVE - special SAVE. This OPTION is for those programs that NEED THE SCREEN - usually to play the game, but sometimes the screen is needed for some other reason. Whether or not you can use this option for ANY GIVEN GAME depends upon the value of the STACK POINTER and your DRIVE system. In simple terms the STACK POINTER can be regarded as the same as the CLEAR NUMBER so if STACK POINTER = 24799, then you will be using a CLEAR 24799 in the BASIC loader. The value of RAMTOP is also the same at 24799. The following table will help as a guide. APPROXIMAT E VALUES OF THE LOWEST STACK NUMBER: Microdrive = 24799 Wafadrive = 26799 Plus3 = 23999 +d/disciple = 24799 Opus = 24799 Opus with turbo = 24999 Tape - no restrictions at all, using our BASIC loader provided. So suppose you have a +d/disciple. Provided that, for your game, the value of the STACK POINTER is over 24799 you can use this option. Note that this is only a guide, and you might manage a slightly lower value - say 24790. e.g. If you have a MICRODRIVE, allowing some space for a simple BASIC loader like 10 CLEAR 24799:LOAD*"m";1;"fred 1"code 16384: LOAD*"m";1;"fred 2"CODE 24800:RANDOMISE USR 32768 your drive will accept a CLEAR as low as 24799, then provided that the STACK POINTER for a game is 24799 or over, then you can use OPTION 3. Why is this? Well different DRIVES us different amounts of memory when they are used, and allowing for some BASIC to load in the machine code from your drive into the Spectrum, the value of CLEAR you use must be equal to that given by the STACK POINTER for that individual game. If the game needs a STACK POINTER or CLEAR of say 24700, but your drive says "RAMTOP NO GOOD" then your drive can't cope with this option for this game. Option 3, if selected, saves out 2 blocks of code, with the original program name, but the 10th character changed to "1" and "2" respectively. The first block always re-loads into 16384 as this is the SCREEN, and the second, into the address given as "CODE LOAD ADDRESS" (the number of bytes will be given by "Main Code length"). STAGE TWO - saving some BASIC to TAPE. Only for m/drive, w/drive, tape, +d and Disciple owners, and Tape to Tape. The option number you selected at STAGE ONE will be shown by the border colour. i.e. BLUE was option 1, MAGENTA was option 3, and CYAN option 5. The DATA information (Code load address, Main code length, Stack pointer, RAND usr) is still shown on the screen, and you should make a note of the various addresses at this stage if doing a TAPE to DRIVE transfer. The following choices are now available to you depending upon the option number you chose at STAGE ONE. "q" = quit "w" = wafa save "m" = m/drive, +d/disciple "t"= tape save (always available) "n" = takes you to STAGE THREE "Q" (capital "q") will reset your machine - i.e. does a NEW. "w", "m", and "t" are designed to save a BASIC LOADER to TAPE Simply start your recording, and press the appropriate key so: "w" for Wafadrive "m" for microdrive, +d, or disciple "t" for tape to tape. You can repeat this as many times as you like. When you have completed this stage, OR if you don't have any of these drives (say a Beta drive) then go onto STAGE 3 by pressing the "n" key for NEXT. If you chose OPTION 3 at STAGE ONE, and are doing a DRIVE transfer then simply press "n" to go onto STAGE 3 as you can't save a BASIC LOADER - you will be writing your own loader instead. If you chose OPTION 3 at STAGE ONE you can press "t" is you are doing a TAPE to TAPE backup. STAGE THREE The screen will clear and give you the final instructions. All you do is to press and start playing your original tape again from the exact place you stopped it in STAGE ONE. When loading is complete, the border will go the colour of the OPTION you selected. Now start recording again with your fresh tape, and press key "1" (the number "1"), and saving to TAPE will then take place according to the OPTION chosen at STAGE ONE. After this saving is complete, you can press key "1" again to do another save to tape, or key "5" which will start the game. BEWARE some programs take a fair time to start, e.g SK*TEBOARD KIDZ AND SENT*NEL. IF YOU ARE DOING A TAPE TO TAPE CONVERSION, SAVING IS NOW COMPLETE. ALL YOU DO TO LOAD BACK IN IS TO USE LOAD "", AND PLAY YOUR CONVERTED TAPE. NOTE FOR TAPE TO TAPE YOU CAN CHOOSE ANY OF THE OPTION "1", "3", OR "5" - AN APPROPRIATE BASIC LOADER IS SAVED FOR YOU AUTOMATICALLY AT STAGE THREE. NOTE: Always reset your Spectrum prior to loading with RANDOMIZE USR 0. If any sort of error is met, (say with the m/drive attached you cause an error by pressing LOAD", instead of LOAD"", then you must again do a RANDOMIZE USR 0. STAGE FOUR DRIVE TRANSFER ONLY STEP 1. If you saved a BASIC LOADER at STAGE 2 then transfer it to your DRIVE using the techniques outlined for CU5 for BASIC to DRIVE transfer, with an appropriate auto-run line number. Now go to STEP 2. OPTION 3 - BASIC LOADER - for all drives. If you didn't save a BASIC LOADER at STAGE 2 because you used OPTION 3 then write the following BASIC, adjusted to the appropriate syntax of your drive and with the correct file names: 10 CLEAR AAAAA:LOAD *---"name1 "CODE 16384:LOAD*---"name2" CODE XXXXX:RANDOMISE USR ZZZZZ The values of AAAAA, XXXXX and ZZZZZ are given in the DATA information - AAAAA = Stack pointer, XXXXX=Code load address, and ZZZZZ is the RAND usr number for the game. PLUS3 owners should use the LOAD BASIC LOADER provided, with the RAND usr at line 100. OPTION 5 - BASIC LOADER - for non m/drive, +d/disciple or Wafa. If you didn't save a BASIC LOADER at STAGE 2, say because you don't have a m/drive, +d, etc, then you can now write your own as follows, with appropriate changes to the syntax to suit your drive and the programs name. Save to auto-run from line 10. 10 CLEAR VAL "23790":LOAD *---"name 1"CODE VAL "16384": LOAD *---"name 2"CODE VAL "27392: RANDOMISE USR VAL "16384" Plus 3 owners, should as usual, use the LOAD1 program, with the RAND usr at line 100. STEP 2. Transfer all code saved from STAGE 3 using your TRANSFER or other appropriate software. Note PLUS3 owners may have to change the names of the files as the PLUS3 is fussy about what names it will accept (e.g call the BASIC "fred", and code "fred1", "fred2", etc. DRIVE TRANSFER IS NOW COMPLETE. ADVANCED NOTES FOR DRIVE TRANSFER (only for those familiar with TRANSPACK transfers) 1. For TAPE to TAPE some programs can use any of the options, but programs such as PARAB*LA load code into 23296 and will over load the basic reloader from tape UNLESS OPTION 5 is selected, ie the reload will crash from tape. Drive transfer with OPTION 5 does NOT have this problem as the code 23296,4096 is automatically loaded into the screen at 16384 by the basic loader saved by the program. OPTION 3 can be used by drive users to save space as the code length is only some 20000 bytes. It cannot be loaded directly at 23296 or it will overload the system variables and your machine will crash. You can transfer the OPTION 3 codes to drive and write basic to load "1" at 16384 "2" at say 27000 and write BM code to move 20992 bytes from 27000 to 23296, set the Stack Pointer to 50000, and jump to 34040. Load this code at 58001, POKE 58000,243 and RAND 58000 will start the game. The poke is needed to ensure the machine does not crash as the system variables are overloaded. 2. Other drive users can use OPTIONs 3 or 5 depending on their drive and the STACK POINTER that can be used with your drive. For a program called "FRED":- 10 CLEAR 26390: LOAD * "FRED 1" CODE 16384: LOAD * "FRED 2" CODE 27392: LET X = USR 16384 will work on all OPTION 5 saves where * represents the syntax for your drive. OPTION 3 saves will have to be tailored to the program. 3. Some more examples:- Stargl*der 1 XXXXX = 27392 YYYYY = 36336 AAAAA = 27391 ZZZZZ = 56088 Any OPTION for almost ANY drive as RAMTOP = 27391 is high enough for most drives. OPTION 3 is good as the screen is nice. Ch*l* XXXXX = 27904 YYYYY = 36352 AAAAA = 65535 ZZZZZ = 40288 OPTION 3 is best for drive as the final screen is needed. RAMTOP at 65535 should cause no problems when loading the code from drive at 27904. Brainst*rm XXXXX = 32768 YYYYY = 32768 AAAAA = 31000 ZZZZZ = 32768 ANY OPTION is viable. OPTION 3 saves space on your drive. Earthl*ght XXXXX = 24576 YYYYY = 40960 AAAAA = 24500 ZZZZZ = 24576 ANY OPTION for tape BUT OPTION 5 for drive UNLESS your drive accepts RAMTOP at 24500 eg +3. Sidew*se XXXXX = 24832 YYYYY = 38912 AAAAA = 24800 ZZZZZ = 63744 ANY OPTION for most drives. Wafa owners must use OPTION 5. I B*ll XXXXX = 24100 YYYYY = 41440 AAAAA = 24099 ZZZZZ = 53048 OPTION 5 for most drives. I B*ll 2 XXXXX = 25000 YYYYY = 40590 AAAAA = 24999 ZZZZZ = 43950 OPTION 5 for wafa otherwise OPTION 3 or 5. Skateb*ard Kidz XXXXX = 24500 YYYYY = 41035 AAAAA = 24499 ZZZZZ = 25600 Option 5 for most drives. 4. If the code loads in too low for your drive AND the screen is needed you have TWO further options. a. Use our other utilities on the long block from OPTION 3. SPLIT the code into 27000- XXXXX, use BM to move this code from the least corrupting part of the screen to XXXXX set the Stack Pointer to AAAAA and jump to ZZZZZ. Follow our usual transfer instructions to reload the game. b. Use Code Compressor 1 on the long block from OPTION 3. 5. You could always follow the instructions in our information books, which will list ANY problem programs that we have found. Most programs of this type ALREADY appear in the information sheets and these can be used for reference if needed. 6. A decryption error will be generated if the utility cannot understand the program code. SORRY but NOT all programs will be converted with this utility. It can manage most 48K programs. 7. It is possible for the program to crash in certain instances. 8. It is always best to play the game AFTER a save. If the game works then the conversion has worked. AGAIN beware of those programs that take an age to start after loading eg SENTIN*L. 9. If a conversion fails, please let us know and we will put the transfer into an information sheet and modify our Conversion Utility. 10. The basic loaders can be "merged" and the code blocks have headers correct in length BUT a start address of 0. The load address for direct loading MUST be specified - e.g. LOAD "FRED 2" CODE 27392. LERM Jan 1990