007 TRANSMASTER A unique selection of utility programs with a very powerful MULTICHOP program which can GENUINELY transfer the majority of programs from: TAPE-TO-TAPE TAPE-TO-DISC DISC-TO-DISC DISC-TO-TAPE Some of the techniques are semi-automatic and can be applied to programs not covered by this Book. (Includes technique for some of the more popular but awkward games/programs). Another genuine User friendly product from G.A. BOBKER of ZX-GUARANTEED *************************************************************************** * © COPYRIGHT G.A. BOBKER of ZX-GUARANTEED 1988 * *************************************************************************** (Can transfer games the Multiface 3 fails on) G.A.BOBKER 29 Chadderton Drive, Unsworth, Bury, Lancs. Tel: 061-766 5712 =================================================== PLEASE NOTE When Loading/Saving it is better to only have ONE of the cables connected to the tape machine. If problems reloading tapes saved out of your +3, a 0.1mfd capacitor across the Load lead wil cure this. Suggested adapter for this (DIY or get Radio TV repair shop or a component supplier to make it) 3.5mm socket =0.1mfd 3.5mm Jack. ________________________________________________________ FURTHER IMPROVEMENT IN SAVE/LOAD A much better SAVE signal can be obtained form then RGB socket. Make up a 3-pin DIN plug to 3.5mm jack plug. (Pin 3 is Signal. Pin 2 is ground). ====================================================== PROGRAMS ON SIDE A 007 SPY........A powerful general purpose tape copier. DEPULSER.......Makes Back-Up tapes of most Jerky type programs AND removes the "pulses" DP-TRANS........Transfers tapes made by Depulser to Disc X-TRANS...........Transfers Discs to Tape (and back again) PROGRAMS ON SIDE B (Side B can be CATed and programs loaded by name). 007BEEP.........Tape copier for games with "counters" 007BLOCK.......Makes Back-Up copies of the games which consist of 100s of small parts. 007DPOLD.......Tape copier for older type "Jerkies" 007TRANS........Loads and Transfers machine-code parts to Disc. (Use for SCRABBLE, etc). 007MULTI..........Chops very long programs into parts 007FILE.............Puts Headers onto Headerless programs 007SERCH........Find the Start address, etc, of above. 007SW...............Switches +3 to be in 48K mode. 007MOVE..........A powerful Block Mover to assist in the transferring. (Includes 007SW action). 007VAL..............Use to "VAL" Basic to make shorter. 007 TRANS-MASTER INDEX Page Order Utilities Transfer methods 2 007TRANS (using) 5 Tape Structure 3 DP-TRANS 20 Tapes (Headerless) 4 007SW 24 TAPE-TO-DISC 4 007VAL 25 Using 007TRANS 5 007FILE 25 Line 0 Change 6 007SERCH 26 Using 007SW 7 007MOVE 27 SUMMARY OF TRANS 8 007MULTI 28 Single CODE progs 8 X-TRANS 29 METEOR Trans 8 Using 007MOVE 9 Tape Copiers Long or 48K 9 HEADERLESS FILES 11 007SPY 16 Headerless trans 12 007DEPULSER 19 Using 007SERCH 12 007DPOLD 21 "JERKY" TO DISC 13 007BEEP 22 M/Code Loaders 14 007BLOCK 23 Horace Trans 14 _____________________ SCRABBLE Trans 15 Program Transfers 007SPY 16-18 007DEPULSER 19 COOKIE 4 DP-TRANS 20 METEOR STORM 8 007DPOLD 21 CYRUS CHESS 11 007BEEP 22 HORACE 14 007BLOCK 23 SCRABBLE 15 007SW 24 RAMBO 31 007VAL 25 KNIGHTLORE 32 007FILE 25 TLL 32 007SERCH 26 CHUKIE EGG 33 007MOVE 27 CHUKIE EGG II 33 007MULTI 28 VALHALLA 34 X-TRANS 29 SHERLOCK 34 FAULTY DISCS 30 HIGHWAY ENC' 35 Awkward programs 31 UNDERWORLDE 36 *****************USEFUL TIP ON PAGE 24 **************** ********************************************************************************* * © COPYRIGHT G.A. BOBKER of ZX-GUARANTEED 1988 * ********************************************************************************* TRANSFER METHODS There are basically THREE methods of transferring tapes to Disc. 1. Load "007TRANS" then play in tape. Each time a block of Code has been Loaded program stops and gives you the Option to change the title or can simply press C to Copy onto Disc. When all Code parts transferred, RESET Spectrum Enter LOAD "t:": MERGE "" then play in the Basic of the game and change all LOAD "" CODE commands to be LOAD "name" CODE as each part must have a name to reload off a Disc. Now Save this modified Basic to Disc. 2. For "Jerky" or "Pulsating Tone" games such as; V, PING-PONG, ALIEN HIGHWAY, GALIVAN, ENDURO-RACER, LEADER-BOARD, etc, etc. First a Back-Up copy tape has to be made (using 007DEPULSER), which removes the "Jerks". A second program called DP-TRANS is loaded, then the full Back-Up copy tape is played in and auto-transfers onto Disc. 3. Very long programs, or programs which try to overwrite the Systems Variable area have to be split into 2 smaller parts using 007MULTI. These are then arranged such that one part Loads into correct address and the "awkward" part is put onto the screen area. When all has loaded, the part on the screen is Block Moved to correct location and game will RUN. Games written for 48K Spectrum often use the Printer Buffer area. In 128K mode this area is used for "Paging" and extra System Variables. Obviously we must be in 128K mode when loading in Discs. ZX-GUARANTEED has solved this problem by a routine which is simply MERGEd into the programs and switches the Spectrum into 48K mode AFTER the Disc has loaded. TRANS-MASTER can transfer the programs Multiface 3 fails on. We also include a PAUSE 99 in our routines to ensure Disc STOP after loading is complete. Very simple and effective. Page 2 G.A. BOBKER of ZX-GUARANTED 29 Chadderton Drive, Unsworth, Bury, Lancs. ________________________________________________ Before starting it's useful to have some knowledge of the structure of programs on a tape. Normal Basic or Code programs have TWO parts: This is 17 Bytes long and tells Spectrum HEADER the Name, Length & Program Type. Also the Start location if Code, or Auto Run line if a Basic which auto-starts. MAIN BLOCK This is the actual program Bytes. The gap between a Header and Main part is 1 second. The Spectrum knows if it is the Header or the Main Block by the first Byte it reads off each Block. If a 0, it is a Header. If a 255, then its a Main Block. Headerless Files are simply programs WITH- OUT a Header and should have a "Code" of 255. In practise, Headerlss programs can be made to have a "Code" of any value between 0-255. Older games had all been "normal" and can be copied by using a HEADER READER to find out the length, etc, of the various Blocks. Each part was simply Loaded into the Computer, then Saved out. Even the longest programs had been limited to 16K to ensure they would load in the 16K or 48K Spectrum. If a game part was, say 9000 Bytes long and started at 16384 we could simply load it higher by entering; LOAD "" CODE 30000 and after Loading it could Save by; SAVE "name" CODE 30000, 9000. To load and Run the copy, simply reload by giving original address I.E. LOAD "" CODE 16384. A large range of programs can be copied by this loading higher method, then reload into correct address. Could be used to transfer programs onto a Disc, but would have to reload off the Disc into the higher address and use a Machine-Code routine to "Block Move" program to correct location. This is very easy using the programs on the 007 TRANS-MASTER and you DON'T need to understand Machine-Code as the programs on the TRANS Disc do majority of the work for you. Page 3 The Spectrum CANNOT Load programs which are Header -less or had been Saved at Higher Speeds! Games using such will first Load in a Code Block which is really a modified copy of the Sinclair ROM Loader routine. This is then activated and loads in the weird Blocks. Due to there being thousands of different ways to make awkward programs (such as Speedlok), it is NOT possible to make a program capable of copying or transferring all games. The 007 TRANS-MASTER altho' the most powerful Transfer and Copier suite available, regrettably cannot do everything. (It can transfer a large range which the expensive Multiface 3 hardware unit can't). This booklet also includes techniques for various awkward programs/games which can be transferred by spectial actions without using a transfer program. ================================================= TAPE-TO-DISC This section explains how to transfer tape to Disc. In order to see some instant results, transfer one of the old ULTIMATE games such as; JETPAC, TRANS-AM, PSST, COOKIE, etc, or try SCRABBLE. Or any normal type game but do NOT use a game having any code parts over 41465 Bytes long. DO NOT USE HORACE GOES SKIING. THIS IS A TRAP FOR THE UNWARY AND TRANSFER METHOD IS EXPLAINED LATER. In all cases we have to know something about the game. Enter CAT "t:" then play in your game tape. The +3 will print the Header info from the tape. If game was COOKIE, it'll print; "COOKIE " LINE 10 (BASIC) Note the way the "CSP " CODE 16384, 6912 titles are always "0 " CODE 24320,8192 padded out to be "1 " CODE 23424,15 ten characters "2 " CODE 23728,1 long. "3 " CODE 23672,2 Altho' +3 makes all titles ten characters long, you can load the game by entering LOAD "COOKIE" Page 4 The info displayed would be virtually the same for all ULTIMATE games. Method to transfer is as below; 1. Load "007TRANS" from side B of the Master Disc. When loaded, the message appears; PLAY IN TAPE. 2. Play in game tape from very beginning. The 007- TRANS will ignore the Basic part (s). 3. When a Code part is encountered, the name from the Header will be printed, then the Bytes of the Code will be Loaded. When they have Loaded in, message apper; C=COPY N=NAME R=RESTART Stop the tape immediately. 4. Pressing R will restart 007TRANS and part just loaded in will be ignored. Useful if you have several games on one long tape and you've fed- in the wrong one. Pressing C will Copy the part loaded onto a Disc with the name shown. In most cases it is better to press N which lets you enter a new name of upto 8 characters long. If game was COOKIE, it makes more sense to rename the parts COOKIE1, COOKIE2, etc, and later Save the Basic as COOKIE. After pressing N enter a new name (or enter same name if you change your mind). Either enter 8 characters (MUST be entered slowly) or press Enter key if less than 8 characters. If you make a mistake, press the Enter key and the message C=COPY, etc, will reappear and can then press N and re-enter the name required. When ready, and C=COPY, etc, is on the screen, prss C to transfer to Disc. 5. Play in next part and continue part at a time until all Code Blocks have been transferred. 6. When all finished, can press Break key to Stop the 007TRANS program. 7. RESET Spectrum then enter; LOAD "t:": MERGE "" and play in the Basic from the game tape. Note that with a game with two short Basics, it is the second one we require. Change all of the LOAD "" CODE commands to load the parts by the title or the new titles you had chosen AND put the TRUE Code start found from the CAT "t:" previously. For example the part which loads the "CSP" in our example, this would become; LOAD "COOKIE" CODE 16384. This is essential as Page 5 the 007TRANS action would have moved them elsewhere in memory when it is loaded them in. The Basic wil usually have several PRINT ATs and BEEPs in it. With a few programs the changing of the Load commands can make the Basic too long and causes problems. To be on the safe side it is suggested that you always make the Basic as short as possible by taking out all the BEEPS and PRINT ATs. Actually it is better to scrap the original Basic and write your own. It is still necessary to MERGE in the Basic to check if there is a CLEAR value and to find the value used in a RANDOMIZE, RUN or PRINT USR command which starts the game RUNning. It is also best to change this to be a LET X=USR xxxxx as some programs will only RUN if this method used to start them. 9. Save this modified Basic to Disc. In example we would use; SAVE "COOKIE" LINE 10 ******************************************************************************* PROBLEM: Some Basics use a Line 0 and give trouble. Entering POKE 23756,1 would change it to be Line 1. It may be necessary to reload the Basic by MERGE and do the POKE at same time by entering; LOAD "t:": MERGE "": POKE 23756,1 ******************************************************************************* All the ULTIMATE games load a part into the Printer Buffer area of 23296-23551. This area cannot be used in 128K mode as it is used by the page switching action and obviously we must be in 128K mode when reloading the Disc. Fortunately the part which was intended for the Printer Buffer area can be ran elsewhere in memory and to make sure it doesn't clash with other Blocks of Code, it is safest to move it onto the screen. In our example it is the Block called "1" which is the offending Block. To move it (to near centre of screen) the load command in the Basic can be changed to be LOAD "1" CODE 20480 (or the new name if you've changed it). Also the RANDOMIZE or PRINT USR command in the Basic has to be changed to point to this new address of 20480. Page 6 The method explained will transfer most of the old programs such as SCRABBLE and the Ultimate games BUT some will require an "extra" adding to them. The new Basic to Load our example would be; 10 LOAD "COOKIE1" CODE 16384 To save Bytes the 20 LOAD "COOKIE2" CODE 24320 Loads should all 30 LOAD "COOKIE3" CODE 20480 be put in one long 40 LOAD "COOKIE4" CODE 23728 multi-statment. 50 LOAD "COOKIE5" CODE 23672 9999 PAUSE 99: LET X=USR 20480 The action is as follows; Lines 10 to 50 Loads all the parts, with the part intended originally for the printer buffer going instead onto the screen. Line 9999 will start the game RUNning. BUT may require the "Extra". NOTE: In a game such as SCRABBLE or games which do not require any parts moving to other addresses, the method is as explained and would work. "EXTRA" As a safety measure to help ensure games all RUN, it is best to always add this extra action. The method is to transfer the game using 007TRANS and then make-up the Basic for it, then MERGE in the program called "007SW" from Side B of TRANS-MASTER Enter GOTO 9000 and it'll ask for the USR value. Enter the USR value you found in the original Basic and this will be split into two values and printed on the screen as S and T. Write these down then substitue the S and T in line 9999 for these. Delet line 9000 as it was only used to calculate the values for you. The new Basic for the Game is now ready for Saving to Disc. What the above does is to "patch-in" an extra which switches the Spectrum into 48K mode before starting the Game. The Pause 99 at start of line 9999 is to ensure Drive stops after game Loaded. Page 7 SUMMARY OF TRANS ACTION 1. Enter CAT "t:" and play in game tape to get the info on the game blocks. 2. LOAD "007TRANS" then play in and transfer all the Code parts ot Disc. 3. RESET Spectrum. Enter LOAD "t:" ; MERGE "" then play in the Basic of the game to check if there is a CLEAR and get the RANDOMIZE, RUN or PRINT USR value. 4. RESET Spectrum to clear out this Basic and then type in your own Loader Basic with line 9999 being a LET X=USR value. 5. To ensure no problems, it is best to MERGE in and use the 007SW switching action. 6. Save this new Basic to your game Disc. This isn't as complicated as it first appeared. After transferring a few game, method is very easy Note that the 007TRANS Byte to +3 Disc can handle a block of Code upto 41465 Bytes long. If length is greater than this then the 007MULTI program has to be used to chop it into managable lengths. In practise blocks will usually be much less or much more than 41465 Bytes. MULTI is explained later. ================================================= SINGLE BLOCK OF CODE Some games are just one block of Code without any Basic. (They are loaded by LOAD "" CODE and they Auto RUN). Taking METEOR STORM as a typical example, this starts at address 16384 and is 8700 Bytes long. This starts below Basic memory area, goes over the Printer Buffer, System Variables and thro' inot Basic area. Trying to load directly into correct address off a Disc will NEW the computer. Sounds an enormous problem to overcome, but in reality all we do is to Load/Save it from Higher in memory and use the 007MOVE to Block Move it back to correct location. Method is as follows: 1. Transfer the game to Disc either by using the 007TRANS or by entering; LOAD "t:": LOAD "t:": LOAD "" CODE 30000: SAVE "METEORC" CODE 30000, 8700 Page 8 2. Load in 007MOVE and it will ask four questions: Answer them as follows; MOVE FROM? Enter 3000 MOVE TO? Enter 16384 LENGTH? Enter 8700 USR? Enter 0 Program will then stop with the values entered split into A,B,C,D,E,F,G,H and I and displays line 9999. Write down A to I with the values against them. Press Enter key then substitute the A to I in line 9999 for values wrote down. 3. Delete line 9000 as it was only used to do the calculations and is no longer required. 4. type in a new line 10, thus; 10 LOAD "METEORC" CODE 30000 5. Save to Disc by entering; SAVE "METEOR" LINE 10 Note: The 007MOVE has the "switch-to-48k" action built into it so don't need to Merge in 007SW. Action when game Loaded from Disc is Line 10 Loads in the Code into address 30000 then line 9999 wukk instantly Block Move to correct address and RUN it. ================================================= LONG OR 48K PROGRAMS Altho' the 007TRANS can transfer programs of upto 41465 Bytes, we have a problem if it is a single block and it starts at 16384 (the screen area) as it would not be possible to load it higher if it is very long. The method used is to chop program into two smaller parts using 007MULTI. If program originally started to load into 16384 (the screen) then 007MULTI action can be selected which will chop-off the screen and split the rest into two parts. Part 1 would be 4000 Bytes and part 2 would be the remainder. Action for ALL full 48K programs would be identical and is as follows: 1. Load "007MULTI" from side B and select option 4 This Option will chop-off screen part and split the rest into a Block of 4000 Bytes and a Block of the remander (38240 Bytes if was a full 48K) Page 9 2. Play in the very long Block of the game; MULTI doesn't care if it is Headerless or not as it ALWAYS saves out Blocks with Headers on them. 3. When all loaded in, press Enter will start the Save to a Blank tape. Computer will RESET when both Blocks have been Saved out. 4. RESET computer then enter LOAD "t:" 5. Enter LOAD "" CODE 16384: SAVE "name2" CODE 16384, 4000 Play in the "copy tape" but STOP the tape when the Drive starts. 6. Enter CLEAR 27295: LOAD "" CODE 27296: SAVE "name1" CODE 27296, 38240 Play in the second Block of the "copy tape" and when all in it'll Save to the Disc. 7. RESET Spectrum then load in "007MOVE" and answer the four questions it asks as follows; MOVE FROM? Enter 16384 MOVE TO? Enter 23296 LENGTH? Enter 4000 USR? Enter 0 Write down A to I with the values shown against them. Press Enter then substitute the A-I for the values written down. 8. Delete line 9000 as it is no longer required. Add in these new lines to load the Code; 10 CLEAR 27295: LOAD "name1" CODE 27296 20 LOAD "name2" CODE 16384 10. Save this new Basic to Disc as; SAVE "name" LINE 10 NOTE: If the original game used machine code to load this long Block, it is possible, but very unlikely that it does a Jump at the end to start the game RUNning. The only way to check this is to either use a Disassembler on the part BEFORE the long Block, or to use the 007SERCH program. Since this is very unlikely to be necessary here, it is suggested that you simply try and load the game from the Disc. If it works, good. If not, then use 007SERCH to check the part BEFORE the long block on the original tape. See page 26 for using SERCH. Page 10 HEADERLESS FILES These CANNOT be transferred! Dissappointed? What we do is to convert them into a normal Bytes type by using the 007FILE program which can put a Header onto ANY Headerless File. The main problem here is that we have to find out what was the original address the File was intended to load into, and is there a RANDOMIZE USR value to make it RUN. As the program was Headerless we cannot use the CAT "t:" to get this info. The Header which 007FILE puts on will be an intelligent guess at the address (but only if it was a full 48K could it hope to be correct). How does the Spectrum get this info' normally? When original tape is loaded the part on the tape BEFORE the Headerless part contains the necessary info. This means we must look thro' this previous part. Whilst this should really be done with a Disassembler, the 007SERCH program can be used as it is a psuedo Disassembler specially designed to search for Headerless-File type loaders. With most games the Headerless-File IS the game and all the rest can be ignored. (It is still worth checking any Basic as it could possibly hold the RANDOMIZE USR value for the game) Method used is as follows; a. Use the 007FILE program (see page 25) to put a Header on the File. b. Use the 007SECH program (see page 26) to get the Start Address, Length and "RANDOMIZE" VALUE. After the above has been done with Headed File can be transferred to Drive. EXAMPLE which follows is using CYRUS IS CHESS as it was a high selling Chess game. a. Load in 007FILE then press P as File is obviously not very long, then play in the Headerless-File. When all in, press Enter to Save out to a tape (with a Header on it). b. RESET Spectrum then load in the Code part which is just before the File, by LOAD "" CODE 30000. Page 11 It does NOT matter what the correct address is as we are only going to look for the "loader" for the Headerless part. c. Load in 007SERCH. It will ask for the address to searxch the search from. As we loaded the Code into 30000, we enter 30000. The SEARCH program looks thro' the Code for the grouping of Coding which is a Loader for Headerless programs. When it finds this it will print it as shown below: 30030 LD IX,24576 THIS IS START 30034 LD DE, 16384 length 30037 LD A,255 30039 CALL 1366 30042 JUMP 24576 THIS IS "RUN" The messages shown WILL be clearly printed on the screen. Numbers on the left are the locations it found these, but these can be ignored. What the example above tells us is that the Headerless-File has a start address of 24576, a length of 16384 Bytes and to RUN it we have to do a RANDOMIZE USR 24576. This means our "HEADED FILE" could be loaded by LOAD "" CODE 24576: RANDOMIZE USR 24576 To transfer it to Disc all we have to do is enter; LOAD "" CODE 24576: SAVE "CHESSc" CODE 24576,16384 A simple Basic Loader could be; 10 LOAD "CHESSc" CODE 24576 20 PAUSE 99: RANDOMIZE USR 24576 Save this to Disc by; SAVE "CHESS" LINE 10 PROBLEM: Sometimes the 007SERCH finds nothing. This will happen if the Machine-Code loader is in a Basic program as a DATA statement. If so, MERGE in the Basic and look thro' it. It will contain a FOR loop to move the DATA into somewhere in memory. Change the values in the FOR loop so it puts the DATA into 30000 onwards. Also in the Basic will be a RANDOMIZE value to activate the DATA after it has been moved into memory. Change this to be STOP. The method here is simply to make the DATA load into 30000 onwards. We can then Save this to Disc and then use the 007SERCH to look thro' it. Page 12 "JERKY" TYPES TO DISC This is games such as ALIEN HIGHWAY, PING-PONG, V, GREEN BERET, ENDURO RACER, LEADER-BOARD, etc. The leading tones on some parts have a "pulsating" sound in them...sometimes called Jerky Tones. The transfer of these is fairly easy and first we make a Back-Up copy of the original tape using the 007 DEPULSER program. This will remove the funny tones and can make the copy at Normal Speed. See page 19 for instruction on using 007 DEPULSER. The Back-Up copy tapes made by 007 DEPULSER will all have a standard format and can then be transferred to Disc by using DP-TRANS program. Method to transfer the Jerky tone games is as follows: 1. RESET computer and put TRANS-MASTER in Drive with Side A uppermost. Press Enter. Select the 007 DEPULSER from the Menu which appears. 2. Make a Back-Up copy of the game at normal speed by using the 007 DEPULSER. 3. RESET computer then press Enter. Select DP-TRAN It will request you to enter the name you want for the game. It will expect name to be eigth character maximum. If over 8 it will take the first 8 characters as the name. 4. CHANGE THE DISC TO DISC GAME IS TO BE SAVED ON. 5. Play in ALL the "copy tape" made by DEPULSER. ONLY if the Loading is perfect (program checks for Loading errors) will it transfer it to Disc. If Drive doesn't start OR you can still hear the program Loading sounds but the loading lines have stopped, adjust volume control and start again. Jerky programs transferred to Disc by this method will always auto start when Loaded. Page 13 MACHINE CODE LOADERS A few games use a simple routine to Load in parts which appear to be normal. One suprising example is HORACE GOES SKIING. Obviously having a Disassembler would be helpful. To Load a Headerless File by machine code...shown earlier, requires that the IX,DE and A registers are set to the Start, Length & Code type. If Loading a normal Block, then also have to load in the Header which isn't really wanted. Usual method is to Load the Header Bytes into Location 0, which means into ROM area! This is impossible and really means "throw it away". Disassembling start of HORACE (the "ski" CODE part) gives: LD IX,0 This is throw away the Header, which LD DE,16 they have made 16 Bytes instead of XOR A 17. The XOR A is the same as LD A,0 SCF which is the "Code" for a Header. CALL 1366 CALL 1366 is a GOSUB to ROM Loader. _________________ LD IX,23760 The last Block is really Loaded into LD DE,694 location 23760 and is 694 Bytes long. LD A,255 The JP 24432 tells us that the game SCF is started by Jumping to the address CALL 1366 24432, which means we must start it JP 24432 by a RANDOMIZE USR 24432. The above also means that altho' we can easily transfer the game to Disc, we CANNOT use the RANDOMIZE value we see in the Basic as this would activate the above machine-code routine which then tries to load in a part from off a TAPE. The method we have to use for this game is to make a Basic Loader to load in ALL the parts and then bypass the Loader by doing a RANDOMIZE USR 24432. The complete Horace to +3 Disc routine using the 007TRANS program would be; 1. Load 007TRANS. 2. Play in HORACE tape from the beginning. The 007 TRANS will ignore the Basic. Each time a Block of Code has been loaded in and C=COPY etc, is on the screen, press N and rename the parts so that they become HORACE1, HORACE2 and HORACE3. Page 14 3. When all transferred, press Break to stop the program, then RESET the Spectrum. 4. Load 007MOVE and answer the questions thus; MOVE FROM? Enter 16384 MOVE TO? Enter 23760 LENGTH? 694 USR? 24432 Program will stop with values you've entered shown against A-I. Write down A-I with the values against them. Substitute the A to I in line 9999 for these new values. 5. Delete line 9000 as it is no longer required. 6. Enter this new Basic loader; 10 LOAD "horace1" CODE 16384 20 LOAD "horace2" CODE 24576 30 LOAD "horace3" CODE 16384 7. Save this to Disc by; SAVE "horace" LINE 10 When game is loaded form Disc, line 10,20 and 30 load in the Code blocks but loads HORACE3 to 16384 then line 9999 Block Moves it to correct location and game will then RUN. In theory we could load HORACE3 into a blank area as this is a short game. In practise it is more reliable to use the screen. ================================================= SCRABBLE TO +3 DISC This is easy to transfer to Disc but you MUST do a CAT "t:" and play it in to get the Header info as there are several version of this game, each using a different length for the last long Code block. Version described here was last block 24400, 41135 1. Load 007TRANS, then play in Scrabble tape. The Trans program will ignore the Basic. When a Code part loaded, change the name to SCRABBL1 before pressing C to transfer to Disc. 2. Play in next block of Code and change the name to SRABBL2 before pressing C to transfer to Disc. 3. Press Break to stop program, then NEW computer. 4. MERGE in the Basic and change the two LOAD "" CODE commands to be LOAD "SCRABBL1" CODE 16384 and LOAD "SCRABBL2" CODE 24400 5. Save this modified Basic to Disc by; SAVE "SCRABBLE" LINE 10 Page 15 Suggested method to familiarise yourself with the actions of the 007SPY is to start off by making Back-Up copies of short NORMAL type programs first such as JETPAC or HORACE GOES SKIING. Then progress to longer ones such as SCRABBLE. Next a game such as ANT ATTACK or TLL, then a 48K game. For making Back-Up copies of your tapes there are FIVE programs we could use. (Explain next). 007SPY INSTRUCTIONS Load by LOAD " " When Loaded, screen shows: START ADDRESS or LENGTH OF FILE LINE NUMBER IF BASIC. _____________________________VARIABLE INFO. Name : :RED=THIS FILE If is a : NAME, START, LENTH, VARY :GREEN=LAST FILE Header : :(Add to START to : FILE LENGTH MEM : find start of FILE No. : : Variables area) Flashes : : if Load : ___________________ : Error. : ! !:Number of free : ! MESSAGE or MODE !:Bytes left : !___________________!: : :Length of File ______________________________ For short programs such as JETPAC, HORACE, etc, simply press L to Load and play in complete game. When all Loaded press the Break key. Place Blank tape in recorder, set to to record, then press S to SAVE. Note the way the Name of each part is printed (if a Header played in), etc, and note that each "FILE" (Block of noise on the tape) is treated seperately. This means a normal Basic will be TWO Files. _________________________________________________ Key L... LOADs all Files of a program displaying all info. Press BREAK key to exit. Key S... SAVEs all Files you have Loaded. (Press Break to Exit). Pressing & Holding P key whilst SAVEing will PAUSE after the File Saved out. Use to make gaps longer. Page 16 Key A... AUTOSTART removed from a Basic. ONLY works if the Basic Header was File 1. Note: To use, press A before press S. Key C... CONTINUES Loading without erasing Files already fed in. Use if you want to load a few Files, then Save them out, then Load more and Save out the lot together. Key K... KONTINUE SAVE. Allows you to continue Saving remaining Files after Break key was pressed after a SAVE and before last File had been Saved out. Useful if you Load in two games. After SAVEing out the first game, press Break. Put another Blank tape in recorder, then press K and second game SAVEd out. Key D... DELETE last File loaded in. Could repeat pressing of D to Delete more Files. Key Y... Y-MODE. Use to copy programs with shorter than normal tones at beginning of the Files. Once this key pressed, ALL further Files fed in will be accepted if normal or short tone, until L is pressed to revert to normal. (Once use Y option if necessary as it is very sensitive and can cause problems if noisy tapes). Key Q... QUIT. Clears and totally resets Spectrum. NOTE: TOTAL length of a game such as SCRABBLE is too long to load into 007SPY all in one go. The Solution is to load in all except final very long part, press Break key, then with a Blank tape in a recorder set to record, then press S to Save out. Then press L and load in final part of game. When all Loaded in, press Break and again press S to Save to your tape. With even longer programs, copy all except very long last part by using L to Load (then press Break key when just before start of long final part, and copy out using S). Select E or M mode. Play in long final part then copy out. NOTE: ONLY USE OPTION E or M TO COPY A SINGLE LONG FILE. CANNOT RETURN TO OTHER OPTIONS AFTER E or M. Page 17 Key E... EXTENDED-MODE. Extends copying area by using screen as work space. Copies a single File upto 49114 Bytes long. Key M... MAXI-MODE. Copies a single File of upto 65279 Bytes. This is a two phase copier: Phase 1... Reads in File but only calcultaes length. Phase 2... Loads in the File calculated. Enter=Save. Key F... FAST (HYPER). Switches 007SPY to FAST MODE. Calculates Baud Rate whenever F is pressed. This Should be done on a Fast part of the program but NOT on a screen$ part. Press F a few times, until the most consistent Baud value is found. Then when this value is on screen, press Enter to exit. Copier now set to operate at this new speed. ALL keys perform same functions as before, including E & M modes but at this new Baud Speed. If after loading in the Fast part, the N key is pressed BEFORE pressing S, program will be Save out at Normal Speed, but Copy would NOT Load and RUN! (Could then be transferred to Drive, but you'd have to find the Randomize value). Normal Speed is 1500 Bauds. F key may give a different value as your tape machine speed would be different to machine original tape was made on. (This does not matter). Key N... NORMAL MODE. Switches copier back to the normal Speed. There are two additional actions 007SPY can do, but it Saves Out Headerless. (Much better to use the 007MULTI instead). Key P... Press P then enter number of Bytes to be chopped of the beginning of a File when it is Saved out. Key H... Press H then enter number of Bytes to Save counting from beginning of the File. This Option only affects File 1. Page 18 007DEPULSER Make Back-Up copy tapes of "Jerky" programs such as V, GREEN BERET, PING-PONG, GALIVAN, ENDURO-RAC' , etc These type of games are made up of; ON TAPE DEPULSER NAMES COMMENTS Header Normal These two normal program Main Part 1 File 1 parts have hidden Code in part 2 which is much Header Normal longer and different to Main Part 2 File 2 the earlier games. ____________ Short Pulser File 3 These two parts have the (Part 3) "jerky" noises in their Long Pulser File 4 leading tones. (Part 4) _________________________________________________ USING 007DEPULSER 1. RESET computer then with Side A of TRANS-MASTER uppermost in Drive, press Enter key and a Menu will load. Press key 1 to select 007DEPULSER. 2. Press Enter then play in your game. First normal part will load in and then gives message NORMAL FILE ONE LOADED 3. Press Enter to save out this File 1 to a tape. 4. Press Enter and play in more of your game tape (next normal part). Stop tape when Loaded. It is very important that you DON'T let tape run into next section yet. 5. NORMAL FILE TWO CONVERTED appears, to show File is ready to Save. (Saves out at NORMAL Speed) 6. Press Enter to Save this out to your Back-Up tape. When Save vompleted, message appears; Press ENTER to load pulsar files 7. Press Enter (screen goes Black), then play in rest of tape. 8. When all loaded, press S key to Save out to your Back-Up tape (Saves out TWO Blocks at the NORMAL Speed, ready for tranfer to Disc). 9. SUPRISE...Press the A key and game will start. To play your Back-Up copy, Load it by LOAD "t:": LOAD "" and when all loaded, press A key to start. Page 19 TO CHANGE BAUD RATE OF BACK-UP (Don't alter Speed if intend tranferring to Disc). 1. Reload the 007DEPULSER 2. Press Enter and play in Back-Up tape till message appears. 3. Press Enter to Save out to second Back-Up tape. 4. Press Enter then play in more of original Back-Up tape. (Stop the tape when second part has fully loaded). 5. Select Baud Rate (1,2 or 3). Rate 3 may be too Fast for your tape machine to handle...all should work at Baud Rate 2 (Rate 1 is Normal). 6. Press Enter to Save out the File 2 onto your second Back-Up tape. 7. Press Enter (screen does NOT go black), then use key A and S. A=LOAD S=SAVE, for EACH converted File. Will be necessary to rewind tape slightly each time as only short gaps between the Files. It doesn't matter if rewound slightly too much as it waits for a File beginning. (Cannot press A to restart here). To play this Back-Up copy, Load it by LOAD "t:": LOAD "" When it has loaded waits for you to press the A key to RUN the game. _________________________________________________ DP-TRANS DP-TRANS on Side A of TRANS-MASTER transfers the Back-Up tapes made by 007DEPULSER onto Disc. 1. RESET Spectrum then press Enter and Menu loads in. Press 3 to select DP-TRANS. 2. Enter a title of upto 8 characters then play in all of the Back-Up copy tape. When all loaded will auto-transfer to a Disc. The DP-TRANS program checks for loading error. This means if it doesn't transfer after all loaded OR you can hear there is more program on the tape, but loading lines have stopped, adjust volume and start again. Page 20 007DPOLD 007DPOLD on Side B of TRANS-MASTER copies the OLDER type of "Pulsating programs", such as KNIGHLORE, UNDERWURLDE, DECATH', ALIEN 8, RAID OVER MOSCOW, DAM BUSTERS, GHOSTBUST', BEACH HEAD, etc, etc. Copies have the daft pulses removed and speed dropped down to normal. This ensures that the copy Loads more reliably than the original. Majority of these Pulsing programs consist of one normal Basic part, a short pulsing part, (which sounds like a Header), then 1,2 or 3 Files. If more than one Basic part, copy first one using 007SPY. The main part being at a normal speed, means it could be transferred to Drive, but it would be necessary to use a Disassembler to find the RANDOMIZE USR value to make program RUN. (A few example are given in this book on pages 29-53). a. Load by LOAD "007DPOLD" Title and Copyright message will appear when Loaded. b. Play in the normal part of your game. When Loaded the message CONVERSION COMPLETE will appear. STOP YOUR TAPE immediately. c. Place a Blank tape in recorder, set to record, then press the ENTER key to Save out. c. Press ENTER then play in next part of your game. The short pulsing tone (next on tape) is ignored (but copier expects you still to Load it in) and the longer pulsing part generally builds-up a picture. (Again ENTER=SAVE). All further parts are Loaded in by pressing ENTER and then Saved out by pressing ENTER key. If you have MATCHDAY, this program WILL copy it but stay by your computer whilst making the copy as it is easy to accidentally omit the file after the long part as it is fairly short. Page 21 007BEEP This Copier is ONLY for games having a fancy load- ing screen with a Counter and usually no Border. These include COBRA, FAIRLIGHT 2, etc, etc. Some parts of these are normal, some fast and some parts have an extremely short leading tone (just a quick BEEP). 007BEEP changes these BEEPs into normal steady leading tones, thus ensuring they load easier in future. NOTE: 007BEEP may not work on noisy Copies and/or with some noisy tape machines. Sometimes reducing volume can help. If when a part is supposed to be loading the border shows only thin red lines, this indicates it is NOT loading. Rewind tape and try again. Holding down the Q key until the normal loading lines appear can sometimes help if noisy. - - - - - - - - - - - - Load by LOAD "007BEEP" when loaded, summary of key actions will appear on screen. The 007BEEP uses the screen as extra workspace which means the key summary will be overwriten later. Most of these games have a Normal Basic, a Fast part with usual long leading tones then a longer part with a very short leading tone. Games can consist of several parts and can have normal speed parts after the fast part(s). Note that EACH part is treated seperately. This means a normal Basic would be treated as TWO parts. EXAMPLE using the game COBRA. This consists of; a. A normal Basic. b. A Fast part with normal long leading tone. c. A long Fast part with very short leading tone. Complete action to make a Back-Up copy would be; 1. Press key 1 as it is normal speed, then press Q and play in the game tape. When the SINGLE part has loaded in, STOP the tape. Press W to Save. 2. Press Q and play in next part. STOP tape when this part has loaded in. Press W to Save out. Page 22 3. Press key 2 as next is a Fast part, then play in next part. When loaded in, STOP tape when it has loaded in the part. Press W to Save out. 4. Press key 3 as next part has a very short BEEP instead of the usual long steady leading tone. Play in this next part. STOP tape when it has loaded in. Press W to Save out. With a very few programs the last part is very long and you'll hear Loading sounds when copier has stopped accepting them in. If this happens, rewind tape to beginning of this very long part, press key 4 then press Q to load in this part. As before, press W to start Saving it out. If option 4 has been used, the reloaded copy will show some corruption on the initial screen, but game WILL run as intended. (After using option 4 the 007BEEP must be reloaded if to make further Back-Up copies ================================================= 007BLOCK Makes Back-Up copies of games having 100s of small blocks with short leading tones between them. The 007BLOCK can also copy normal parts but it is far easier to use 007SPY for all normal parts and use this only for the short tone parts. KEY ACTION Key L...LOAD. Use to load any part(s). Key S...SAVE. Saves with short leading tones. Key A...ADDITIONAL length to leading tone. SPACE...Press to indicate finished this loading. If key A is held down and then key S is pressed, then BOTH keys released after one second, then the leading tone will be one second long. If key S is pressed and held down whilst a part is saving out, program will pause at the end until key is released...could be used to put longer gaps between parts. If a game made after August 1987 cannot be copied or reloaded, start again but use key C to load. Page 23 EXAMPLE using the game MAD NURSE. This consists of 1. TWO normal program parts...therefore FOUR Files if copied using 007SPY first. 2. TWO multi-block short parts with short tones. Note also that there is a pause of approx 5 seconds between the two multi-blocks and this pause MUST be included on your Back-Up copy. Easiest method to make Back-Up copy is as follows: 1. Load 007SPY and copy the first FOUR Files. 2. Load 007BLOCK. When loaded, key actions appear. These will be overwritten later by the program being loaded as it uses screen for workspace. 3. Press L then play in all of the first multi- block. When it has loaded, press Space. 4. Put the tape it is to be copied onto into recorder and set to record. Press and hold the A key, then press and hold the S key key. (The leading tone will start to save out). After one second release both key and program will Save. When Save complete, let tape run on for at least 5 second to ensure gap as on original. 5. Press L then play in all of next multi-blocks. When all loaded, again set tape recorder to record and press A and S key then release both after one second. 6. A very few games have a normal speed part after the multi-block, if so, copy them using 007SPY. ================================================= 007SW This is used to switch computer to be in 48K mode to help ensure games RUN. It is NOT necessary if using 007MOVE as MOVE program includes this action. (See example of use on page 7). *************************************************************************** Method to Stop ALL the BASICs, even unMERGEable. 1. Load tape as normal, but STOP tape immediately title appears. 2. Press BREAK key. Type SAVE "t:": SAVE "x" and Save out to a tape, but STOP tape immediately Header has Saved out..computer would Pause here. 3. RESET computer. Enter LOAD "t:": LOAD "" then play in the tape with the "x" on it. Then play in rest of Basic from original tape. Page 24 007VAL This program will save Bytes in Basic programs by changing all numbers to be VALed. Changing GOTO 10 to GOTO VAL "10" would save three Bytes. In very long programs the saving can be upto about 7000! 007VAL can be loaded anywhere in memory, then you simply RANDOMIZE the address you loaded it into. Usually safest to put it on the screen. EXAMPLE: 1. Load your Basic program and Stop it. 2. Place TRANS-MASTER B side uppermost in Drive. Enter the following to Load and activate it. LOAD "007VAL" CODE 16384: RANDOMIZE USR 16384 3. After a pause, depending on your program length the O.K. message appears. LIST and all your program has been VALed. (Note: Gets confused in DEF FN statements. Check thro' listing and take out any VAL "" in DEF FN commands. VAL the DEF FN.s yourself). ================================================= 007FILE This program will put a Header onto ANY Headerless program. 1. LOAD "007FILE" when loaded TWO option appear. a. P=PROGRAM FILE. Use this Option P if your Headerless program is known to be short OR if when you Load normally this part does not include the screen draw-up. b. S=SCREEN+PROGRAM FILE. Ust this Option S if your Headerless program includes the screen$ when Loading normally. 2. Press P or S to select Option required, then play in the Headerless part. Note that it may cause "rubbish" to appear on the screen as this program uses the screen as work space. 3. When all Loaded, place a blank tape in recorder set to record, then press Enter key and your program will be saved out with a Header on it and will now have the title NEW HEADER. Note that the Header didn't really know the correct location for your File so it says it has a Page 25 Start address of 0, but will give the correct length. This means that if your File was the type which started on the screen, you could Load the saved out program by; LOAD "" CODE 16384. Note also that when using option S, the first few hundred Bytes will be corrupted. This will appear as just a few extra dot and lines on the screen. Doesn't matter as we would chop-off the screen before transferring to Disc. ================================================= 007SERCH Used to find the info from Headerless File Loaders. These Loaders will be on your tape BEFORE the File itself. 1. Load in the Code part before your File by; LOAD "t:": LOAD "" CODE 30000 2. LOAD "007SERCH" (On side B of TRANS-MASTER). 3. Enter the address to start Searching from. This would be 30000 if you loaded your Code as per note 1 above. When found the info will be printed in plain English. Example print could be; 30100 LD IX 34567 THIS IS START 30104 LD DE 5555 length 30107 LD A 255 30109 SCF 30110 CALL 1366 30113 JUMP 35000 THIS IS "RUN" This tells you that your Headerless File is intended to load into address 34567 and is 5555 Bytes long. The RANDOMIZE USR value to start this program running, in this example, is 35000. Note the order may differ slightly from the above. 4. If it prints NOTHING, then it didn't find the Loader. This can happen if the Loader is in a Basic program (in a REM or in a DATA statement) 5. IF IN A REM The simplest solution is to Load in the Basic with the REM in it, then MERGE in 007SERCH and enter GOTO 9999 and tell it to start Search from address 23755. If this is not possible, then Load in the Basic and Stop it (use the 007SPY if necessary to remove any Auto-Start). Page 26 IF IN A DATA STATEMENT List the Basic and find the FOR loop which moves the DATA into memory, and change it to move the DATA into 30000 onwards. Note that if there are 20 values in the DATA statement, then you'd change the FOR to be; FOR x=30000 to 30019: etc, etc. Find the line which contains the RANDOMIZE USR which normally "RANDOMIZEs" this DATA after it had been moved, and change the RANDOMIZE USR xxxxx to be STOP. RUN the FOR loop line so that the DATA is moved into 3000 onwards, then Save this Data to Disc by; SAVE "x" CODE 30000, L with L being number of Bytes to be saved. Reset Spectrum. Load in the "x" just Saved then load in "007SERCH" then tell it to start Searching from 30000. ================================================= OO7MOVE This is a machine-code Block Mover routine which could "move" 64K in less than 1 second. The MOVER has to be told addresses Moving FROM, TO and the LENGTH. In order to enable us to Block Move programs and RUN them without exiting from Machine Code, the "RANDOMIZE USR" value for a game can also be entered. If no RANDOMIZE USR value, then enter 0. Try this Demo Example: 1. Load in "007MOVE" When Loaded, it asks you the FROM,TO, LENGTH & USR values. Answer these as follows (for this example): MOVE FROM? Type in 30000 MOVE TO? Type in 16384 LENGTH? Type in 6912 USR? Type in 0 The USR value would normally be the RANDOMIZE USR value for the game which is usually found in the Basic part. If none, then enter 0. 2. Program will now display the values you entered split into A to I and Lists line 9999. Page 27 3. Use the cursor keys to position the cursor as necessary and change the letters A to I in line 9999 for the values displayed. Delete line 9000 as it is only there to calculate the values and can now be removed. 4. For this Demo example, add in a line 10, thus; 10 LOAD "" CODE 30000: PAUSE 0 5. RUN program, then play in screen$ from a game tape. When Loaded, screen will be blank as the picture has been Loaded into 30000 onwards. 7. Press Enter key, and picture will instantly be Block Moved from the 30000 area to the screen. ================================================= 007MULTI This consists of FOUR programs to chop your long games down to size and/or remove screen$ part of a full 48K game. All programs work with Headed or Headerless-Files, and ALWAYS Saves out blocks with Headers on them. Load "007MULTI" and menu of options will appear. 1...Chop off 1st 6912 2...Save the 1st 6912 3...Split 4000 +REM 4...Chop-Split (1 & 3) OPTION 1. Will remove the screen part from programs which load onto screen and continue Loading more all in one block. OPTION 2. Saves just the first 6912 Bytes. Could be used to save out just the screen$. OPTION 3. Splits whatever is fed in, into two parts. Part 1 would be 4000 Bytes and part 2 would be the remainder. OPTION 4. Combines the actions of 1 & 3 above. Very useful on full 48K programs as it Chops-off the screen and splits the rest into two managable blocks. NOTE 1: Option 2 will restart Multichop after use. If less then 6912 Bytes loaded on Option 2 program, will reject it. After using Options 1,3 or 4, when the Saves is completed, Spectrum will Reset. Page 28 X-TRANS Transfers Disc-To-Disc, Disc-To-Tape, Tape-To-Disc AND gives Header info of Disc Programs. The Tape To Disc action is NOT for normal tape transferring. 1. Load X-TRANS by pressing RESET button and then press Enter with the TRANS-MASTER in Drive with Side A uppermost. When a Menu appears, press 4. Options will appear F=FILE S=SECTOR. Place a Disc in Drive, then press F or S. If ever a DOS ERROR message appears it means there is a fault on the Disc. See notes on page 30. S...SECTOR. Will display a list of all Sectors, stating if they are used or empty. Not a lot of use, but Option S MUST be used if you want to transfer programs which don't appear in a normal CAT (such as some Games Discs). F...FILE. Will Display list of programs on a Disc showing their Size and Base. Base means the address program loads into if CODE, or Auto- Run line if BASIC. The Auto Run line can only be upto line 9999. In a Spectrum, BASIC progs which DON'T auto-run hold this value as over 32767. This simply means that if an Auto Start value is 32768 or greater, then that BASIC does NOT auto-run. Some programs will appear more than once in the Header info list as the Disc system will allocate more than one Header if a program is very long. In end column marker ATRB will be a B if BASIC, C if CODE or an H if Headerless. Also would be a P if Protected program, S if System and/or an A if Archive. Amstrad's state that the A (Archive Status) has no real use in a +3. P...PROTECTED program. Cannot be Erased by the normal ERASE command. S...SYSTEM program. The only action is that it would not appear in a CAT. Page 29 2. Options on bottom of screen would be; M=MORE C=COPY A=ABORT Whenever A to Abort appears, pressing A then pressing Enter key TWICE will restart X-TRANS. M will display More if there is more. Pressing C to COPY gives message; SELECT MEDIA; T=TAPE D=DISC Press T or D and program requests File Number. If 0 entered, ALL programs will be transferred. If a program appears twice in the listing, then both parts must be transferred (one at a time). If you change your mind, enter a large number and program will restart. If T was pressed, program asks if to Load or Save. Note the Load from tape is ONLY of use for Loading back in programs transferred to tape using X-TRANS previously. The Tape Load & Save of X-TRANS is purely to transfer a Disc onto a tape, thus freeing a Disc for other purposes. 3. To transfer programs which don't appear in a normal CAT, the S=SECTOR option has to be used. ================================================= FAULTY DISCS Main cause of faulty Discs is inserting/removing Discs whilst motor is running. In most cases this is not disastrous since you can press I to Ignore when error message appears when Loading or doing a CAT. Also, trying to Copy the Disc by the command; COPY "a:" to "b:" give "Unreckonized Format". The answer is to Copy the Disc via RAMDISK using a program as shown below...assume you have on the Disc "game1", "game2" and "game3" 10 copy "game1" to "m:" Insert the "faulty" 20 copy "game2" to "m:" Disc and run this. 30 copy "game3" to "m:" When the error message 100 copy "m:game1" to "b:" appears, press I to 110 copy "m:game2" to "b:" ignore, then obey the 120 copy "m:game3" to "b:" screen changing Disc 130 erase "m:" as Directed. If you have a lot of long programs on the Disc, it would be necessary to transfer just a few at a time by this method. When all transferred, check out copy Disc, then re FORMAT faulty Disc. Page 30 AWKWARD PROGRAMS Some transfers which use the Back-Up copy made by the 007DPOLD will have the main Blocks as Headerless Files. These will require Headers to be put on them by using 007FILE, or could make "False Headers" for them as follows: To make a False Headers for a Code program which is 6912 Bytes long; Enter SAVE "x" CODE 0,6912 and Save out to a Blank tape but STOP the tape IMMEDIATELY the computer Pauses. This means IMMEDIATELY after the first lot of coloured bars on the screen clears. This really means we have Saved out a HEADER for 0,6912 and can be used to load in any Headerless File made by 007DPOLD if it is 6912 Bytes long. This False Header can load in ANY normal screen$ from a tape by entering LOAD "" CODE 16384 and then playing in the "x" just made, then playing in a screen$ AFTER its Header. (Pointless, but try it) _________________________________________________ RAMBO Need to make a Back-Up copy tape using 007DPOLD. 1. Make TWO False Headers. First for 31327 Bytes and second for 11628 Bytes. 2. Load 31327 False Header by; LOAD "t:": LOAD "" CODE 26384. 3. Play in the first long Headerless File of your RAMBO Back-Up tape made by 007DPOLD. 4. Save to Drive as; "RAMBO1" CODE 35500,22211 5. Load 11628 False Header by; LOAD "" CODE 30000 6. Play in the second long Headerless File of your RAMBO Back-Up tape. 7. Save to Drive as; "RAMBO2" CODE 30000,11628 8. Type in this Basic Loader; 10 CLEAR 25499: LOAD "RAMBO1" CODE 25500 20 LOAD "RAMBO2" CODE 53396 30 PAUSE 99: DATA 243,62,48,50,92,91,1,252, 127,237,121,251,195,0,103: FOR J=20400 TO 20414: READ A: POKE J,A:NEXT J:RUN USR 20400 9. Save to Drive as; "RAMBO" LINE 10 Page 31 KNIGHTLORE 1. Use the 007SPY (option A) to get a STOPPED copy of the Basic, or use the method on page 24. 2. Enter; LOAD "t:": CLEAR 60000: LOAD "" then play in the STOPPED Basic part of KNIGHTLORE. 3. Enter POKE 24791, 195: POKE 63872,251: POKE 63873, 51: POKE 63874,51: POKE 63875,201: RANDOMIZE USR 24744 4. Press NEW then enter (program is safe in mem') 5. Enter POKE 62410,251: POKE 62411,201: RANDOMIZE USR 62374 6. Play in all the rest of KNIGHTLORE tape. 7. Save to Disc by; SAVE"KNIGHTc"CODE 24832, 30720 8. Type in this Basic Loader; 10 LOAD "KNIGHTc" CODE 24832 9999 PAUSE 99: RANDOMIZE USR 24832 9. Save to Disc by; SAVE "KNIGHT" LINE 10 (If this gives problems, MERGE in and use 007SW) ------------------------------------------------------------ TORNADO LOW LEVEL The older version can be transferred by using the 007FILE to put a Header on the Headerless part, and transfer after using 007MULTI as it is nearly a full 48K. This routine is for the later version with "invisible" Basic). This version Loads the Headerless part into 16352 onwards. Altho' 49052 Bytes long, only 39104 Bytes are required AND a POKE must be added or else it will crash when reloaded. 1. Type in and RUN the following, then play in the long Headerless part only...ignore any error messages after loading. 10 CLEAR 65535: DATA 221,33,224,63,17,156,191, 62,255,55,205,86,5,207 20 FOR X=65430 TO 65443: READ Z: POKE X,Z: NEXT X 30 RANDOMIZE USR 65430 2. Save to Disc by; SAVE "TLLc" CODE 26300, 39104 3. Type in this Basic Loader; 10 CLEAR 65535: LOAD "TLLc" CODE 26300 20 POKE 65435,153 9999 PAUSE 99:RANDOMIZE USR 36258 4. Save to Disc by; SAVE "TLL" LINE 10 (If this gives problems MERGE in and use 007SW). Page 32 CHUKIE-EGG (original version) Not really difficult except the Headerless part is really TWO Headerless parts with no gap between them. First File is actually just two Bytes long. 1. Type in this program; 10 RESTORE 10: DATA 221,33,0,0,17,2,0,55,62,255, 205,86,5,221,33,20,130,17,180,70,55,62,255, 205,86,5,201 20 FOR X=30000 TO 30026: READ Z: POKE X,Z: NEXT X 30 RANDOMIZE USR 30000 2. Set CHUKI tape to start of the first Headerless part, then RUN above program and play in tape. 3. Save to Disc by; SAVE "CHUKIEc" CODE 33300,18100 4. Type in this Basic Loader; 10 PAPER 0: INK 0: BORDER 0: CLS: LOAD "CHUKIEc" CODE 33300 20 POKE 23613,1: POKE 23614,0: 9999 PAUSE 99: RANDOMIZE USR 42000 5. Save to Disc by; SAVE "CHUKIE" LINE 10 The Loader discards the 2 Byte File but this is required in the program...hence the two POKEs. ==================================================== CHUKIE EGG II This is a full 48K Headerless File. The method used is to Load the program into the ROM area to chop-off a large chunk, the Save the required part to a TAPE. 1. Enter this program but do NOT run it yet; 10 CLEAR 65535 20 FOR J=65300 TO 65332: READ A: POKE J,A: NEXT J 30 DATA 221,33,62,31,17,0,192,62,255,55,205,86, 5,33,45,221,17,239,253,1,46,157,237,184,33, 193,96,34,178,92,195,183,17 40 RANDOMIZE USR 65300 2. Type in SPECTRUM then press Enter as we MUST have computer in 48K at this stage. 3. Press key r then press Enter. Play in the long Headerless File of the game. When it has Loaded Spectrum will NEW but the program is still held safely in memory. Page 33 Place a Blank tape in recorder. 5. Enter; SAVE "CHUKIEc" CODE 24770, 40238 and save this to the tape. 6. RESET Spectrum and select 128K mode. 7. Enter; LOAD "t:": LOAD "" then play in the tape just made. 8. Save to Disc by; SAVE"CHUKIc"CODE 24770,40238 9. Type in this short program; 10 CLEAR 24769: LOAD "CHUKIEc" CODE 24770 9999 PAUSE 99: RUN USR 24770 10. Save to Disc by; SAVE "CHUKIE" LINE 10 (If problems, MERGE in and use the 007SW program) ====================================================== VALHALLA The awkward part of this game is knowing which parts we need to transfer. 1. Enter; LOAD "t:": LOAD "vmc" CODE 30000 2. Play in the part called "vmc" 3. Save to Disc by;; DAVE "VHALL1" CODE 30000,12185 4. Enter; MERGE "vdrive" 6. Play in the "vdrive" part. After Loading it will take approx 2 minutes before O.K. appears. 7. Save to Disc by; SAVE "VHALL2" LINE 9800 8. Type in this Basic Loader; 10 CLEAR 53349: LOAD "VHALL1" CODE 53350 9999 LOAD "VHALL2" 9. Save to Disc by; SAVE "VHALLA" LINE 10 ======================================================= SHERLOCK This again is mainly awkward in knowing which part we need for the game. Only the part called "p" is required. This has to be split into three parts & we'll do this by a different method to demonstrate an alternative way of splitting programs. 1. Enter; LOAD "t:": LOAD "p" CODE 16384 then play in the part "p". This will start Loading Bytes onto the screen area. STOP the tape IMMEDIATELY the colours start to appear (this means when colour blocks start on the top of the screen...don't worry as long as you stop the tape before these reach bottome of the screen). Page 34 2. Save to Disc by; SAVE "SHERLOCK1" CODE 16384,4000 3. Rewind tape to start of "p" again. 4. Enter CLEAR 27935: LOAD "p" CODE 27936 then play in all of the part "p" again. 5. Save to Disc by; SAVE "SHERLOK2" CODE 31936, 33600 6. This part MUST be done in 48K mode. Type in the word spectrum then press Enter key. Enter CLEAR 44319: LOAD "p" CODE 44320 and play in all of "p" again. Loading so high makes last part cycle round through the ROM and the last 4000 Bytes we want will go onto screen area. 7. Save to TAPE by; SAVE "part3"CODE 16382,4000 8. Press RESET and get back into 128K mode. 9. Enter; LOAD "t:": LOAD "" CODE 30000 then play in the part just Saved to Tape. Save it to Disc by entering; SAVE "SHERLOK3" CODE 30000,4000 10. Type in this Basic Loader (includes a MOVER); 10 CLEAR 27935: LOAD "SHERLOK3" CODE 61536 20 LOAD "SHERLOK2" CODE 27936 30 LOAD "SHERLOK1" CODE 16382 40 DATA 49,127,93,33,0,64,17,128,93,1,160,15, 237,176,195,64,160 50 FOR X=20480 TO 20496: READ Z: POKE X,Z: NEXT X 60 RANDOMIZE USR 20480 11. Save to Drive as; "SHERLOCK" LINE 10 =============================================================== HIGHWAY ENCOUNTER Make a a Back-Up copy tape using 007DPOLD. This Back-Up made by 007DPOLD is different in that it DOES copy the short "clicking" part after the Basic. Make a False Header for 39168 Bytes. 1. Set the Back-Up copy tape to be just at the start of the last long Headerless File. 2. Enter the following; LOAD "t:": CLEAR 26383: LOAD "" CODE 26384 then play in the False Header you made, then play in the Back-Up tape. 3. Save by entering; SAVE "HE1" CODE 33296,3000 then Save again by; SAVE "HE2" CODE 36396,29256 4. Type in this Basic Loader which includes its own MOVE type routine; Page 35 10 CLEAR 65535: LOAD "HE2" CODE 26296 20 LOAD "HE1" CODE 55808 30 DATA 243,62,48,50,92,91,1,253,127,237,121 251,33,0,128,17,0,91,1,184,11,237,176,6,128, 237, 95,128,237,79,195,225,176 40 FOR X=20400 TO 20432: READ Z:POKE X,Z: NEXT X 50 RANDOMIZE USR 20400 5. Save by; SAVE "HE" LINE 10 =============================================================== UNDERWURLDE 1. Use the 007SPY (Option A) to get a STOPPED copy of the Basic. (Or use method given on page 24). 2. Enter; LOADE "t:": LOAD "" then play in the STOPPED Basic part of UNDERWURLDE. 3. Enter POKE 24791, 251: POKE 24792,207 Enter RANDOMIZE USR 24740 4. Enter POKE 62410,251: POKE 62411,201 Enter RANDOMIZE USR 62374 5. Play in all the rest of UNDERWURLDE after its first Basic. Save to Disc By; SAVE "UNDERWc" CODE 26610,34820 6. Type in this Basic Loader; 10 LOAD "UNDERWc" CODE 26610 20 PAUSE 99: RANDOMIZE USR 26610 7. Save to Disc by; SAVE "UNDERW" LINE 10 (If this gives problems, MERGE in and use 007SW) ================================================================ 007DEL There is an extra program on Side 2 of the Disc called 007DEL (this does not appear in the Menu). This program can be used to delete several lines of a Basic program. Can be very useful when you are developing your own Basics. Suggest you load this by; LOAD "007DEL" and then read the info it prints on the screen. ******************************************************* * (C) COPYRIGHT G.A. BOBKER of ZX-GUARANTEED 1988 * ******************************************************* Page 36 007 DISASSEMBLER A full Z80 Disassembler using only 2048 Bytes. Can be loaded onto the top third of the screen, thus leaving rest of the memory free for very long Code blocks. Displays in DECIMAL or HEX and by pressing D or H will instantly change display from one to the other, clearly showing Hex/Deci conversions. £5.95 Post Free to U.K./BFPO/Ireland ============================================================== LEARN MACHINE CODE Trying to learn from a book is possible but doesn't answer any of your questions. Newsletters which form a complete course to teach you Machine code in a more interesting and practical way is the solution. The initial newsletter is sent with the Disassembler dscribed above and Loader tape plus a booklet on Hex, Binary and Decimal and complete list of Z80 commands. If you join late all the Back issues are sent to ensure you don't miss anything. Course is based on the Spectrum and includes using the ROM routines. Within days you'll be writing and understanding Machine-Code. Addresses will be stated in DECIMAL as it is absolutely vital to know precisely locations you are using (Hex has its place and is covered). Note that you are encouraged to write with any queries/problems related to the course. Membership for complete course is as follows: £15 U.K. £19 Europe. £22 Elsewhere ========================================================= DISC-DOCTOR Can be used to ERASE/UNERASE, PROTECT/UNPROTECT or RENAME programs. CATs Discs with its HEADER READER giving Start, Length, Auto-Line info. Can Format Discs to Copy non-standard Format of Game Discs. Also includes 007REVEAL: Lists Tapes or Disc programs in HEX,DECIMAL, ASCII or use to List BASIC and will reveal TRUE BASIC on programs POKEd to confuse Hackers. Could Reveal hidden messages. £6.95 on YOUR Disc (+£2 if we supply Disc) 007 SUPERFILE 2 and LISTFILE 3 SUPERFILE can hold upto 500 name/address Records & can found any one instantly. Superfast Machine Code used for SEARCH, ALPHA-SORTs, etc. Prints out to ANY printer as RECORDS or LABELs by SEARCH,SORT or string of characters. LISTFILE holds 1,000 single line Records and can find any one instantly. Superfast Machine-Code for SEARCH, SORT, RENUMBER, DELETE, etc, etc. BOTH programs supplied on one Disc. Note that both can print out to RS232 or Centronic printers. (Also available for Microdrive/Opis/Beta). £6.95 on YOUR Disc (+£2 if we supply Disc) ---------------------------------------------------- MENU-MASTER Simply insert a Disc and press a key and full CAT is held in Record (upto 2300 records). Can SEARCH and find any INSTANTLY stating Disc and Site it is on and can load it by single key press. £5.95 on YOUR Disc (+£2 if we supply Disc) ===================================================== PLEASE NOTE If forwarding a Disc, only send genuine AMSTRAD or MAXELL Discs. (We ONLY use these makes as other makes are not reliable. Any Discs producing grating or rubbing noises when being Formatted would NOT be used as they liable to fail. (Any White or Blue cased Discs are rubbish). ______________________________________________________ ZX-GUARANTEED 29 Chadderton Drive, Unsworth, Bury, Lancs. Tel: 061-766 5712