LERM TAPE UTILITY C C O N T E N T S PAGE ITEM ---- -------------------------------- 1. Introductory section. 3. Technical information. 4. Manual for Conversion Utility 5. 10. Alkatr* Mode manual. 11. Manual for TYPE. 12. Manual for Tape Utility C (TUc). 16. The "B" mode. 19. Helpful hints. ---------------------------------------- TUc-1-Copyright LERM 1989 TAPE UTILITY "C" - INTRODUCTORY SECTION --------------------------------------- In your TUc package you are provided with three programs - TAPE UTILITY C (TUc) and CONVERSION UTILITY 5 (CU5). This is the order in which they have been placed on your tape, with a short gap between them. A third program on the tape is called "TYPE", and is used to help you with CU5. DO NOT USE THESE UTILITIES TO BREAK COPYRIGHT LAWS - YOU HAVE BEEN WARNED. If ON RECEIPT you are not satisfied with the package then return it to us marked "REFUND". If the tape becomes faulty within 6 months of purchase then return it to us marked "FAULTY". In all cases an SAE will speed up the process. We can't give advice on using these utilities with individual programs. LERM, 11 BEACONSFIELD CLOSE, WHITLEY BAY, TYNE AND WEAR ------------------------------------------------------- NE25 9UW. Tel (091) 2533615 --------------------------- GENERAL COMMENTS ---------------- To LOAD in TUc ensure that you have an EMPTY Spectrum i.e enter RANDOMIZE USR 0 (it must be loaded in 48k BASIC) - then simply use LOAD"" and play in the program from your LERM tape. Do the same for CU5 except for 128k owners when loading a 128k game, in which case use the TAPE LOADER mode OR they can enter 128k Basic and use LOAD"". The third program in this package called "TYPE" can be loaded using LOAD"" in 48k or 128k mode. If the load fails rewind the tape and adjust the volume control on your recorder, and try again. DISCIPLE owners should have their INHIBIT button IN. This package of programs has been protected against hardware devices; e.g Multiface, the magic buttons, etc. TECHNICAL INFORMATION --------------------- In order for you to try and understand your Spectrum a little more, and to help you with transfers of the more difficult programs, we have included this section. Please read it carefully (perhaps several times), as soon as you can. TONE leader, BYTES, BLOCK of code, and PROGRAM PART --------------------------------------------------- (i) TONE leader. (abbreviated T) ---------------------------- When you save or load in a program the first thing you see on the screen is some THICK RED and CYAN border stripes. This is called the TONE LEADER (TONE for short). It is used as an introduction to ensure that your code is taken into the computer's memory at the correct time. (ii) JERKY TONE leader (abbreviated J) --------------------------------- To try to stop copying, a "jerky" or "clicky" tone leader was developed. Instead of you seeing a smooth tone leader of red/cyan stripes they appear to jerk up and down making a short click at the end of each jerk. It sounds like "ping", "ping", "ping", etc. This is used extensively by Ocean, US Gold, etc. Use CU5 for these, as well as those with COUNTDOWN loaders. (iii) BYTES (abbreviated B) --------------------- After the TONE there are some BYTES. These are usually easily spotted because you normally see NARROW yellow and blue stripes. In fact they can be made other colours, or by using machine code, the border colour can remain unchanged. BYTES are the actual numbers (in the range 0-255) that are put into the computer's memory. i.e BYTES include basic, machine code and - 1 - data. They are all BYTES, they just have different purposes. (iv) BLOCK of Code ------------- A tone leader, together with the bytes that follow are called a BLOCK of code. (v) PROGRAM PART ------------ Suppose you load in a simple piece of BASIC into your computer. What happens? First you will see T (Tone), then a short burst of B (bytes). This is the first block. Secondly, after a short time, you will see a second T, followed by a longer burst of B, the time that this second B lasts depends upon how long your program is. You have thus a second BLOCK of code. +-------v | BLOCK 1 short BLOCK 2 summary | T B time T B | ^ gap ^ ^ | |_____Tone leader__| | | (THICK RED/CYAN) | | Bytes | +-----(NARROW yellow/blue)---+ The two blocks combined we shall call a PROGRAM part. Thus if you save some BASIC (TB TB) and then say an array of data (TB TB) you have saved TWO program parts, as your complete program has two "parts" to it. If on the other hand you save some Basic, and then some code, and then an array, then your program would have 3 program parts. Finally note that the BYTES (B) although usually NARROW yellow/blue can be changed by a programmer to other combinations. You can really recognise BYTES by the fact that the lines are NARROW rather than by their colour. In a similar way the colour of the TONE may be altered. BAUD RATE --------- Normally the Spectrum loads/saves programs at a particular SPEED. It is called the BAUD rate. Normally for a Spectrum it is 1500. It is possible for a programmer to increase or decrease this speed. If you speed up the rate and reduce loading time you pay the penalty of more unreliable loading. Many modern programs use a faster Baud rate, and TUc copes with these. They are most easily spotted by the fact that: (i) when the bytes are loaded the gaps between yellow/blue (OR perhaps another colour combination) are NARROWER than usual; (ii) the pitch of the noise that is made is HIGHER and more "scratchy". MORE ABOUT TONE LEADERS ----------------------- To improve their security, various companies have made up their own TONE leaders. The first PROGRAM PART has to be "normal" or the Spectrum wouldn't load it. After this, however, by writing some machine code, the programmer can by-pass the usual loading system and create his own. This is an outline of some of the possibilities. (i) Create a TONE leader rather NARROWER or WIDER than normal. (ii) Do a very short tone leader (say a tenth of a second) instead of the usual 2-5 seconds. (e.g TUc has these). The border goes THICK yellow/blue for a very short time. - 2 - (iii)It is possible to save a program (using machine code) without any sound gap between the BLOCKS of code. e.g T B T B T B We are going to call this TONING. We have done this in TUc and, if you listen to the tape, continuous sound is heard. This can fool copiers as they assume that there will be a sound gap. What happens is that they get confused, the border doesn't go thick yellow/blue when they hear the T and thus they save the tone leader as bytes by mistake. LIST OF MAIN SECURITY TECHNIQUES -------------------------------- (a) Making the program very long (even more than 48k) and/or check that all the bytes are correct. (b) Use of different baud rate (e.g Automan**). (c) Jerky tone leaders (e.g Decath***) - use CU5. (d) Toning (e.g. Chuckie E**, TUc, some Firebir* programs). (e) Short tone leaders (e.g Starbl*** and some FIREBIR* games). (f) Count down (number or time in minutes and seconds) - use CU5 (g) A combination of the above (Decath*** loads at faster than normal speed and Firebir* use multiple short tones). This is not a complete list either (see HEADERLESS blocks below) HEADER ------ Above, we didn't quite tell the whole story. Suppose again you load in a simple Basic program. FIRST you see the thick RED/CYAN stripes of the TONE leader (i.e an introductory sound to prepare for loading). SECOND you see a SHORT burst of NARROW yellow/blue; i.e you have the first BLOCK T B. This FIRST burst of B is called the HEADER, and is short since a HEADER contains only 17 bytes (or numbers). The HEADER tells the Spectrum the type of program it is loading in, where to load it, and its name. That's why just after this you see a message like Program: Fred or Bytes: Fred After this the second block would be loaded in. First the TONE (T), and LAST you see some more yellow/blue narrow border lines which show the Basic bytes being loaded in. summary: when loading in a single program part we see BLOCK 1 time BLOCK 2 T H gap T B NOTE we have now abbreviated the header as H, and changed from TB TB to TH TB. HEADER DATA - Optional reading ------------------------------ When using our TAPE UTILITY in the "M" mode you are given the program's "header data"; Spectrum's have 17 numbers in their headers. This tells the Spectrum the program's name and other vital information. When TUc meets a header the screen will appear something like eg. BASIC LINE: 10-250-50 The number or numbers shown will depend on the file type - see below. File is a general word for any program part; e.g BASIC, CODE, ARRAYS are all files. What does the information displayed by TUc mean? ------------------------------------------------ Headers These are now displayed in the following form:- BASIC LINE: XXXXX - YYYYY - ZZZZZZ XXXXX is the auto line number. A number greater than 32768 is a NON auto-run program. YYYYY is the program length, including - 3 - variables and ZZZZZ is the variables length. CODE : XXXXX,YYYYY XXXXX is the original save address and YYYYY is the code length. NUMERIC ARRAY : XXXXX XXXXX is the array length. CHARACTER ARRAY : A/Z$ - XXXXX as above, but the array name a$ - z$ is also displayed. In the example above: it is BASIC with an auto-run line of 10, total length is 250 bytes, of which 50 bytes are variables and 200 bytes are the basic program. eg.2. CODE 36074,780 means CODE of length 780 bytes which would start to be loaded in from address 36074. HEADERLESS PROGRAMS ------------------- All programs must start with a header, and then some bytes; i.e. T H T B After this the machine code programmer can do without "headers" altogether, as they can control where the bytes are to be loaded. These are so-called "HEADERLESS" blocks. e.g T H T B T B CONVERSION UTILITY FIVE (CU5) ----------------------------- INTRODUCTION ------------ Over the past few years 2 security systems, one called SPEEDLOC* (now in at least 3 general versions), the other ALKATRA*, have been developed. They are used on hundreds of programs by, for example, Ocean, US Gold, and on some Ultimate programs. CU5 will deal only with these programs. HOW TO DECIDE THE TYPE OF YOUR PROGRAM -------------------------------------- Early SPEEDLOC* programs are characterised by "jerky" or "clicky" sounding tone leaders. On loading the border, rather than having a smooth tone colour of red/cyan, appears to jerk - we will call this STANDARD SPEEDLOC* or TYPE 1. The next version of SPEEDLOC* (called NEW SPEEDLOC* or TYPE 2) might not have a jerky tone leader. After loading a small amount of basic, it then loads a large block of code, then the border flashes for a while, and no loading actually occurs. "Random" noises may be heard at this stage while the tape is left running. The screen display in these Type 2 SPEEDLOC* programs does not appear for a while, then it seems to instantly appear during the loading, and there is frequently a TIMED COUNTDOWN (say starting at 2mins 35secs) within the display. Finally, the latest SPEEDLOC*, Type 3, begins with a large single Basic file, and again usually has a time countdown loader. ALKATRA* programs have a screen display which loads in a patterned way (perhaps the middle of the screen, then a bit of the border, then the top few lines, etc). It also has a DIGITAL COUNTER (starting at perhaps 450), that returns to zero after loading is complete. We have provided you with some help to decide which program you have. For additional information see manual for "TYPE". - 4 - GETTING STARTED --------------- Rewind your LERM tape to the start of the Conversion Utility - it is the second program on the tape. 48k owners ensure that you have an empty Spectrum and use LOAD"" (and ENTER), then PLAY on your recorder. Wait until loading is complete. 128k owners press the reset button and use the TAPE LOADER for 128k programs, but use 48k BASIC for 48k programs. After loading CU5 you will then be required to press the "1" key (number one) for STANDARD SPEEDLOC* (Type 1) - 48k only "2" for NEW SPEEDLOC* (Type 2) - 48k and 128k "3" for eXtra SPEEDLOC* (Type 3) - 48k and 128k "4" for ALKATRA* programs - 48k only We will call these modes CU5S, CU5N, CU5X, and CU5A respectively, so that the last letter indicates "S" for standard, "N" for new, "X" for eXtra, and "A" for Alkatr*. FOR ALL TYPES OF SPEEDLOC* Programs - PART 1 -------------------------------------------- If your program is Type 2 or Type 3 then you will be asked if the program is 48k or 128k. Press key "1" or "2" as appropriate. For 48k programs "N" and "X" will be replaced by "n" and x" in the screen title. a. Loading in the main BASIC ---------------------------- Rewind your SPEEDLOC* program to its start. Press PLAY on your cassette and the ENTER key on your Spectrum. CU5 will now load in the first BASIC part of your program and will give the program's name as the "header" passes. Note that the name found on this header is subsequently used by CU5 when saving BASIC and machine code blocks. Eventually CU5 will meet the "main" BASIC or code which contains the encoded SPEEDLOC* loader. When this has been loaded stop the tape as directed. The screen displays the message: M/code Start Address = ????? where the ????? indicates the RANDOMIZE USR address of the converted program, for those subsequently loaded from drive or disc. Also, the following "menu" of options is given at the BOTTOM of the screen for 48K programs. 128k will NOT have "m" or "w". Key Purpose --- ---------------------------------------------- l Start LOADING in another SPEEDLOC* program. t Save BASIC for TAPE use m Save BASIC and code for m/drive conversion. w Save BASIC and code for Wafa drive conversion. c Save code only - for Disc drive transfer. n for NEXT stage of operation. Used to start loading in the main program. CS/BR (Caps shift and break) - program NEWS itself. ------------------------------------------------------ It is possible that CU5 will give a message "Decoding error - ENTER TO RESTART". If this happens, rewind your original to its start, press ENTER, and then PLAY to try again. If the message is repeated then assume that CU5 can't manage the program - check that it is a SPEEDLOC* program. It could also be that you have chosen the wrong TYPE of SPEEDLOC*. - 5 - b. Saving some BASIC and code ----------------------------- At this stage, if you want to, you can return back to the start at step a, by simply pressing the letter "l" key. More usually however you will place a fresh TAPE into your cassette, start recording and then press the "t", "m", "w", or "c" keys. For TAPE to TAPE transfer press "t". For 48k games TAPE to MD, +D, or DIS press "m" (indeed press "m" for any drive that copes with the microdrive syntax of LOAD *"m";1;"fred" CODE, etc). For 48k TAPE to WD press "w". For ALL 128k and ALL other drive systems press "c". Firstly, by pressing any key EXCEPT "c", you will save a BASIC program that will load in the rest of the program's machine code. This is a so called BASIC LOADER. The BASIC will have the equivalent of LOAD "a" CODE for TAPE to TAPE, LOAD *"m";1;"FRED" CODE for m/drive, +D, and DIS, or LOAD*"a"CODE,34000 for WD. In fact all we are doing is saving you a little work as all drive owners could simply press "c" and each time write their own BASIC LOADER as indicated later. Secondly, for other than TAPE to TAPE, an additional block of machine code is saved. FOR DISC OWNERS (who press "c") the syntax of your drive system is unknown to CU5 so you will have to write your own BASIC LOADER (see later), but you will still need to save the CODE by pressing the "c" key. e.g. if the message says M/code start address = 64211, then this number must be NOTED DOWN. The reason for this is that although the original program has a USR number of its own, your converted program has another USR number which must be used. In fact the code saved by pressing "c" will be loaded into the same address (64211 in the above example) which is also the new USR number. c. Dealing with the main code blocks (Part 2 - irreversible) ------------------------------------------------------------ Having saved onto tape from step b, place your original tape back into your recorder ready to deal with the main program blocks. Now press the "n" key, and you will see the following MENU: Press ENTER and Start Tape Leave Tape Running Until Border Turns Magenta Final Key Functions 1 - Save Code (Drive/Tape) 5 - Start Game Caps Shift/Break - New Start loading ALL of the code blocks (INCLUDING ANY SHORT ONES - usually at the start) by rewinding back your tape so that some of the BASIC or CODE is being played, then press ENTER. e.g. T H T B T H T B T B T B BASIC M/CODE ^ Blocks of CODE | Have tape playing in some of this code before pressing ENTER Some programs don't have a sound gap between the M/CODE and the other blocks of code. You can, using the above technique, avoid missing any of the CODE blocks. - 6 - With CU5N (type 2) the border will flash for 10 - 20 seconds before loading begins. Wait until CU5 has loaded in the entire program - the border will be magenta when this has been done successfully. (With CU5N - Type 2 - a black border on loading indicates an error). In the event of an error it will be necessary to NEW the Spectrum (Caps Shift/Break) and reload CU5. d. Saving a converted code block -------------------------------- At this stage the options that are available to you DO NOT appear. The MENU is the one described in section c above (i.e. you can press keys 1, 5 or Caps Shift Break). Place your saving tape in your recorder, start recording and then press key "1". Wait until the program has been completely saved. When TAPE to TAPE conversions are reloaded the program will halt once the screen display has loaded. Pressing ENTER at this stage will allow the game to continue its normal execution. IF YOU ARE TRANSFERRING TAPE TO TAPE THE JOB IS NOW COMPLETE - YOU CAN NOW MOVE AHEAD TO SECTION ON ALKATRA* PROGRAMS. IF YOU ARE DOING A 128K GAME FROM TAPE TO DRIVE TURN TO THE SECTION "TRANSFERRING 128K PROGRAMS" IN THE TRANSPACK MANUAL. CU5 (48k programs) will always save two blocks of code with headers followed by a single headerless block. This last block is required for tape transfer only and corresponds to the screen display. The first two blocks of code have the same name as the original program but with the 10th character set to "1" and "2", and are ALWAYS OF LENGTH 4096 and 38144 bytes, respectively. eg. Program name is "FRED", CU5 will save code blocks "FRED 1" with start address 23296 and length 4096 "FRED 2" with start address 27392 and length 38144 The code saved in step b will have the name "FRED 0". When you have finished saving the program with CU5 you may either play the game, by pressing key "5" or new the machine by pressing Caps Shift/Break. e. EXTRA STEP for SOME DRIVE OWNERS - making a BASIC loader ----------------------------------------------------------- If at step b, you pressed the "c" key you saved only the machine code but NO BASIC. It is now necessary for you to write a short BASIC program to load in all the blocks of CODE saved by CU5. 128k TRANSFERS - see the TRANSPACK MANUAL for the BASIC LOADER. e.g. Suppose you have converted a program called "FRED". When you press key "c" during stage b you will have saved a block of code called "FRED 0" for which the machine code start address was given as 65411. The blocks of code saved during stage c will have names "FRED 1" and "FRED 2". You must WRITE and SAVE the following BASIC LOADER program (to autorun from line 10) : 10 CLEAR 27390: BORDER VAL "0": PAPER VAL "0": INK VAL "0": CLS 20 LOAD "FRED 1" CODE 16384 PLUS 3 owners 30 LOAD "FRED 2" CODE 27392 see notes below! 40 LOAD "FRED 0" CODE 65411 50 RANDOMIZE USR 65411 (must be LINE 100 for +3) It is ESSENTIAL that you alter the syntax of the above program to suit your drive. - 7 - NOTES: (i) For each block of code saved onto tape you must have a line of BASIC to load it. (ii) The block of code saved at step b ("FRED 0" in our example) MUST BE LOADED LAST and into the start address given by CU5. (iii) The code saved at step d must be loaded in first, as in the example - the shorter code ("FRED 1") always into address 16384 and the longer ("FRED 2") always into 27392. (iv) The RANDOMIZE USR number is always the same as the start address of the code produced in step b (65411 in the example). (v) PLUS 3 owners will see that the printer buffer is NOT used so they can place the above Basic - LINES 10 to 40 - into our "LOAD1" program in the space provided between lines 5 and 24. The RANDOMIZE USR line MUST be line 100 so: 100 RANDOMIZE USE 65411 You can now save to your +3 drive with auto-run line 5. f. The final step (all DRIVE owners) ------------------------------------ FOR THOSE THAT USED CU5 TO MAKE A BASIC LOADER (you pressed "m" or "w" at stage b). You must now transfer the BASIC LOADER to your drive. To do this: (a) Empty your Spectrum. (b) Use MERGE"" (then press ENTER), and play on your recorder to load in the BASIC program saved by CU5 at stage b. (c) After loading is completed you will see the BASIC for yourself. Save it to your drive to auto-run from LINE 1. i.e SAVE * "fred" LINE 1 altering the name as appropriate. ALL DRIVE OWNERS: You must now transfer ALL blocks of machine code to your drive that CU5 saved at step d. (The last single headerless block is required for tape to tape conversion only and may he disregarded for transfer to micro/wafa/disc drive.) The 3 blocks of machine code you have on your tape (file names ending "1", "2" and "0"). WAFA DRIVE owners can use WAFATAPE to transfer the three files to their drives. Other drive owners should use the TRANSFER program with which they should already be familiar. Transfer is now complete. g. Program examples for DRIVE transfer -------------------------------------- Raid over Mosco* - 2 jerky blocks Structure of JB JB jerky blocks short jerky long jerky - loads into 20 bytes into screen at 16384, and is 32768 48640 bytes long. M/code start address = 65347 Load in CU5. Select key "1" for CU5S. Follow the instructions in the manual, saving: (i) STAGE b: BASIC and CODE (key "m"=MD, +D, or DIS. "w"=w/drive only) OR code only with the "c" key for other systems. - 8 - (ii)STAGE d: (using key "1") CODE "rm 1", and "rm 2". Don't bother with the last headerless block. COPY BASIC LOADER TO DRIVE: Those who used "m" or "w" keys at stage b should use the MERGE"" technique to load in the BASIC LOADER, and then manually save it to your drive to auto-run from line 1. Copy CODE TO DRIVE (all DRIVE Owners): Drive owners should transfer the CODE from TAPE to their drives using our TRANSFER program. WRITE A BASIC LOADER (for those who pressed "c" at stage b): Finally write the following BASIC, (syntax altered to suit your drive) to auto-run from line 10: 10 CLEAR 27390:BORDER VAL "0":PAPER VAL "0":INK VAL "0":CLS 20 LOAD "FRED 1" CODE 16384 30 LOAD "FRED 2" CODE 27392 40 LOAD "FRED 0" CODE 65347 50 RANDOMIZE USR 65347 PLUS 3 BASIC ------------ a. Load in your "LOAD1" program. b. Write lines 10, 20, 30, and 40 above with appropriate names but make them lines 15, 16, 17, and 18 instead. c. Now replace line 50 with line 100 so: 100 RANDOMIZE USR 65347 d. Save the BASIC to auto-run from line 1. e.g.2 Wizbal* - Speedloc* (NEW type) Structure: T H T B T H T B Random noises T B T B short bytes red/black border short long basic flashes approx blue/black 13 secs then border. gap Follow the same instructions as the last example except: (i) after loading in CU5 select key "2" for NEW SPEEDLOC*. (ii) the USR number is 65137. - 9 - OPERATING INSTRUCTIONS FOR CU5A: ALKATRA* MODE - 48K ---------------------------------------------------- ALKATRA* is a protection system introduced by a number of the leading software houses (eg. Ocea*, US Gol* and The Edg*). It is characterised by a loading sequence which has no flashing border, colour, a screen display which is loaded in an unusual order and a 3-digit counter which reduces to zero as loading proceeds. Some of the more popular games which have ALKATRA* protection include Fairligh* II, Cobr* Stallone and Bobb* Bearing. CU5A now enables you to convert software protected by ALKATRA* to standard tape format for more reliable loading from tape, microdrive or disk. The process is fully automatic for tape and MD, +D, and DIS and nearly so for other drive owners - just follow the on-screen instructions. At any stage of operation of CU5A, when a key response is expected, the machine may be reset by pressing Caps shift/break. STEP 1 ------ Load in CU5 and press key "4". Once you have selected the ALKATRA* mode of CU5 press ENTER and start your tape. When the first block of the program has loaded stop the tape as instructed. CU5A provides you with the OPTION of saving Microdrive syntax and/or Tape loaders for the converted software. Be sure to start your tape (on record) before pressing either "m" or "t". If transferring to a DISC or other form of drive you will miss out this step - Disc loaders will be described later. STEP 2 ------ When you are ready to proceed press "n". CU5A will then decode the first stage of ALKATRA* changing the border colour as it progresses. If a decoding error is detected an error message is given and CU5A restarted. On successful completion of this first stage you will be instructed to load the next block of code - the main ALKATRA* loader. Once loaded halt the tape as instructed. STEP 3 ------ Decoding of this second stage proceeds as the first; the border colour will flash to show that all is well. If a decoding error is detected a message will be given and CU5A restarted as before. Following successful decoding you will be instructed to start the tape once again. CU5A will then load the remainder of the software exactly as the original program. However, when the screen counter reaches zero a successful load will result in a jumbled screen display and a magenta border colour. If the screen display remains unaltered with a black border a tape loading error has been detected and it will be necessary to clear the program (Caps shift/break) and reload CU5. STEP 4 ------ When you have successfully loaded the ALKATRA* software (with a magenta border showing) start your tape (on record) and press the "1" key (number one). This applies irrespective of whether you are saving for tape, MD or other drives. CU5A will save 3 blocks of code with the original BASIC name but the 10th character altered to 0, 1, and 2. Repeat copies may be obtained, by pressing the "1" key, or the program cleared by pressing Caps - 10 - shift/break. Alternatively, you can play the game by pressing "5" and the ENTER. IF YOU ARE CONVERTING SIMPLY TO TAPE the job is now complete - you have saved a Basic loader from STEP 1, and three pieces of code at STEP 4. STEP 5 - FOR DRIVE TRANSFER ONLY ------ The 3 pieces of CODE produced at STEP 4 should now be transferred to your drive using our TRANSFER program. THE NUMBER OF BYTES IS ALWAYS 20200 FOR THE FIRST BLOCK, 20536 FOR THE SECOND, AND 6912 FOR THE THIRD. FINAL STAGE: CU5A automatically provides a BASIC loader for tape and microdrive syntax drives. If you used the "m" key at STEP 1, then use the MERGE"" technique to transfer the BASIC LOADER made by CU5 to your drive with auto-run line 1. Transfer will now be complete for all drives with the MD loading syntax. PLUS 3 owners see below. Other drive owners should write a BASIC LOADER of the following form: 10 CLEAR 24799:LOAD*"1" CODE 24800:LOAD*"2" CODE 45000 20 LOAD*"0" CODE 16384 30 RANDOMIZE USR 16384 (ALWAYS the same addresses!) - save onto disc to auto-run LINE 10, and transfer will now be complete. NOTE: ---- When converted ALKATRA* software is reloaded from tape, microdrive or disc, the screen will be jumbled during loading but will eventually change to normal with the counter at 0. PRESS ENTER to let the program run normally. PLUS 3 OWNERS (a) Load in your "LOAD1" program, (b) Type in the above BASIC but change line 20 to line 15, line 30 must be line 100, and change the names as appropriate. Your BASIC will now have lines 1, 10, 15, 25, and 100. (c) SAVE to auto-run from line 1. MANUAL FOR "TYPE" PROGRAM ------------------------- INTRODUCTION and LOADING ------------------------ This simple program was written to help you decide which TYPE of program you have - SPEEDLOC* Type 1, or 2, or 3, or Alkatra*. It is NOT foolproof. It could be that your program is none of these or TYPE could fail to recognise the program and not work. TYPE is the last program on your tape. To load it in, enter the command RANDOMIZE USR 0 if you have a 48k Spectrum, or use the RESET button on a 128k machine and place into 128k BASIC. Now do a LOAD"" followed by ENTER, and play the tape. (+3 owners will need to do a LOAD "t:" command first). - 11 - COPYING TYPE ------------ After loading, enter BREAK. To copy TYPE to TAPE enter the command GOTO 40, and press RECORD on your cassette player. The program will now save both BASIC and BYTES (or CODE). Simply press the keys when prompted. To copy to a drive system simply alter lines 40 and 50 to suit the syntax of your drive and enter GOTO 40. HOW TO USE TYPE --------------- After loading (the program runs from line 15), simply rewind your program to the start and press any key then play on your tape. After loading in TYPE will tell you if your game was SPEEDLOC* TYPE 1 or SPEEDLOC* TYPE 2 or UNKNOWN or SPEEDLOC* TYPE 3 or ALKATRA* After this you can press any key to take you back to the start to do another test. If your program has both BASIC then some machine code (or bytes), then repeat the above but this time get TYPE to examine the machine code. e.g. your program has the following structure: T H T B T H T B then T B etc Basic Code Use TYPE to test both the Basic and Code program parts. MANUAL FOR TAPE UTILITY c (TUc) ------------------------------- INTRODUCTION ------------ This program could be regarded as 3 programs in one. When loaded you are into the first program or MODE- we will call this the "M" (for MAIN) MODE. The COUNT option is also available from this mode. The other MODE is the "B" mode. It is designed for TAPE to TAPE backup. It can also be used to desecure programs for TAPE to DRIVE transfer - usually with the aid of our INFORMATION SHEETS. SECTION A: HOW TO BACK-UP MANY PROGRAMS USING THE "M" MODE ---------------------------------------------------------- WHAT CAN IT DO? The "M" mode can handle programs by loading them in CONTINUOUSLY provided that the total of ALL the blocks doesn't exceed approx 41630 bytes. It handles short tone leaders AND TONING automatically. WHAT CAN'T IT DO? As it is user friendly and simple to use, it can't manage high baud rate parts, or a SINGLE "long block" over 41630 bytes. HOWEVER you will usually use this mode to copy the FIRST header and BYTES of your program. NOTE that TUc can only handle about 100 program parts at any ONE continuous load. 1. MAKING A BACK-UP COPY ------------------------ What follows under this main section is the QUICK and EASY guide to copy MANY programs. It is designed to get you going quickly, leaving the more difficult aspects until later on. All you - 12 - basically have to do is to load in your program as you normally would, except that it is now under TUc's control. After loading enter BREAK. Then you save it back out again. It is that simple for MANY programs. Try it and see, but leave your latest programs until last as they may take more effort, needing perhaps the "B" mode or CU5. 2. LOADING IN THE PROGRAM TO BE COPIED -------------------------------------- (a) Rewind the program to be copied to its start. (b) Press PLAY on your recorder and then the letter "l" key on your Spectrum. (The "l" key can manage short tone leaders automatically but NOT toning.) (c) After loading is completed enter BREAK, and stop your recorder playing. (d) You will be asked if there are any more parts to be loaded in. On the assumption that the answer is no press key "n". If there are then press "y" and start your recorder playing again. LOADING USING the "t" KEY: ------------------------- Instead of pressing "l" to LOAD, you can press "t". This will cope automatically with TONING but doesn't print out the program name on loading. Otherwise it is the same as the "l" key. You may well prefer to use this all the time and ignore the "l" key. SAVING A COPY ------------- (a) Put a fresh tape into your recorder and start it RECORDING. (b) Press key "s" (for SAVE) on your Spectrum and wait until saving is complete. PRESSING "a" (for advance) instead takes you back to the LOADING step (b). This is included in case you accidentally load in a block/program and don't wish to make a copy. REPEAT COPIES ------------- After saving, stop your recorder. If you want to make another copy press "y" for YES, and you are taken back to SAVING step (a). Pressing "n" for NO takes you back to LOADING step (a), ready to copy another program. TO GET RID OF TUc - while at the LOADING step (b) you can get the computer to new itself by entering CAPITAL "N". 3. OTHER FEATURES ----------------- Having got used to the above, you can now get used to some of the extra features that are provided for you. Before reading this we are going to assume that you have read and understood the TECHNICAL INFORMATION section of the manual. ABORT ----- (a) If you enter BREAK at any time during LOADING, the loading process is discontinued (or ABORTED), and you are taken to Section 2(d) ready to save what has been loaded, or load in more program parts. TUc will copy exactly what it has taken in, up to the time of entering BREAK. (b) If you enter BREAK during saving your TUc will stop saving, and take you to the repeat copy stage. Note you may have to hold down the BREAK for a little while to effect this step. DELETE ------ While at SAVING step (a) a number will appear on the left-hand side at the bottom of the centre of the screen. This tells you how many BLOCKS are in TUc's memory. (A simple BASIC program - 13 - would have 2). Every time the "d" key is pressed the number of blocks is reduced by ONE - TUc forgets the last block loaded. e.g. if your program has 5 blocks pressing the "d" key twice removes the last 2 blocks, and only the first 3 played into TUc's memory would be saved. PAUSE ----- Some programs have gaps between their various parts; e.g. after loading in some Basic, a tune is played, the screen is altered, etc. The next program part doesn't appear on the tape for perhaps 5 seconds or so. Thus your copy needs these "gaps" placing between them. After saving any BLOCK TUc checks to see if you are HOLDING DOWN the "p" key. YOU MUST PRESS AND HOLD DOWN THE "p" KEY WHILE TUc is SAVING THE BYTES OF THE BLOCK BEFORE THE GAP TO BE INSERTED. If you aren't holding down the "p" key then TUc saves the next block. If you are it waits until you release the "p" key. Try this out and experiment to see the effect! eg. a program has T H T B ^ T H T B | you want a 5 second gap here After TUc has saved the T H T and is saving the FIRST B, hold down the "p" key. When it has finished saving the FIRST B count to 5, then release the "p" key. It will then save the last T H and then T B. You can put gaps even between the H and next T if you want. SAVE WITH NO GAPS ----------------- Press "S" - CAPS "S" - and all program parts in memory will be saved with no gaps; i.e TONED. (There will be a short gap between blocks, when the header information is printed). SAVE WITH SHORT TONES AND NO GAPS --------------------------------- PRESS "G" - CAPS "G". This is similar to the type of program by Firebir*. It is recommended that EACH GROUP consisting of a number of blocks from 47 to 140 be loaded and saved as the one group. This overcomes the difficulties of knowing where you are in these blocks. If TUc runs out of memory, on the very long groups, then save what you have in memory and wind back a block or TWO on the master tape. Continue from there. The "p" key is still available during these saves. RESETTING TO NORMAL TONES/GAPS ------------------------------ This is automatic when you are asked for "MORE COPIES". NOTE: NO change option is included during saving. COUNT ----- Pressing key "c" at the main menu screen; ie. NO programs in memory - enters the COUNT mode. ANY SINGLE block of bytes at ANY speed can be played and TUc will tell you the number of bytes that it has counted in that block. It is possible to "FOOL" TUc. A block of bytes over 65535 bytes will print a ridiculously LOW number for the loading time; e.g. SKOOLDAZ* and BACK TO SK**L. Simply add 65534 to the number given by TUc. 4. THE MORE DIFFICULT PROGRAMS ------------------------------ To cope with other security techniques (e.g very long blocks, - 14 - high speed loaders, etc) the general rule here is: (i) copy what you can using the method outlined in PART 2 (ii) use the "B" mode for the rest of the program (see later). 5. FINAL NOTE ON "M" MODE: MEMORY SHORTAGE ------------------------------------------ Provided that the total of all the program parts is less than approx 41630 bytes, TUc in the "M" mode can manage all the blocks, providing that the total number of blocks is not greater than about 100. It is possible however (e.g Scrabble), that there isn't enough room for the whole program. USUALLY TUc will warn you if it is likely that you aren't going to have enough room. If so then: (i) Stop your tape as soon as the warning message appears, and save onto a fresh tape what you already have in TUc. (ii) Now load in the last long part separately and save. i.e do the copying in 2 stages rather than continuously. Block number 1 2 3 4 5 e.g T H T B T H T B T B ^ ^ copy up to here first stopping your | copy this last recorder as soon as the last byte long part of block 4 has been loaded separately. If this single block is too long (more than approx. 41630 bytes) then you will have to use the "B" mode program for that BLOCK ONLY. NOTE: If a part is loading and TUc runs out of memory then you will get a "WARNING NOT ENOUGH MEMORY" and that part WILL BE DELETED from memory. This can occur on long headerless blocks or a mixture of blocks OR that there are TOO MANY individual blocks in memory. SUMMARY OF KEYS FOR "M" MODE ---------------------------- When ready to LOAD Key Purpose --- ------------------------------- l Normal load. t Loads looking for tone leaders. N Does a NEW (capital N), B Enters "B" mode (capital B). c COUNTS the number of bytes in a SINGLE block. When ready to SAVE Key Purpose --- ------------------------------- s Normal SAVE a Advances - skips out the saving process P Gives PAUSES between blocks. G Sets tone length to short and there are NO GAPS between blocks. S Sets the saves to NO GAPS between blocks d deletes the last block loaded. SECTION B: THE "B" MODE ----------------------- What is it for? The "B" mode copies blocks, ONE AT A TIME, of virtually any length (many over 48k) including high speed loading parts, NON-standard and VERY SHORT tone leaders. In fact you could use it all the time, rather than bothering with the "M" mode. It DOESN'T cope with TONING (i.e if there is no sound gap between - 15 - the END of one block and the tone leader of the next. HOWEVER all you need do is to stop the tape as shown below; T H T B T B T B NO SOUND GAP HERE ^ ^ |_______|_______________ ^ ^ Stop tape here and copy each separately SUMMARY: Use for blocks the "M" mode can't cope with. NOTE: YOU WILL FIND THE "B" MODE USUALLY DISPLACES THE SCREEN PICTURE BY 1 TO 3 PRINT SQUARES TO THE RIGHT. THIS IS NOT AN ERROR. APART FROM THIS USUALLY ANY SCREEN BLOCK WILL BE NORMAL. Note also that this mode is MUCH MORE volume sensitive, and that YOU MAY have to make a few attempts at LOADING with different volume settings. How to enter the "B" mode ------------------------- Simply press CAPITAL "B" from the "M" mode menu. Upon entering the "B" mode, you will be asked to press "y" or "n" to confirm the "B" option. Key "n" takes you back to the main option screen whilst the ""y"" key enters the "B" mode option. THE SCREEN WILL BE BLACK and the BORDER MAGENTA. There is now NO way back to the "M" mode. NOTE THAT THE "b" KEY IN THE "B" MODE IS USED FOR MEASURING. IF A PROGRAM BLOCK IS VERY LONG THE PART OF THE PROGRAM THAT CONTROLS THE "b" KEY IS OVERWRITTEN AND THEREFORE CAN'T BE USED ANY MORE. This mode is quite complex and will take some getting used to - sorry but the diversity of programs makes this necessary. This is the menu of options. Use the "M" mode to copy, the first normal Basic, and then enter this mode to copy the rest. i.e USE THIS MODE TO COPY ALL BLOCKS EXCEPT JERKY TONE LEADERS! NOTE that some programs may have a loader that will give a corrupted screen picture with TUc. Key Purpose --- ---------------------------------------- l LOAD blocks up to approx 48320 bytes. c Used for 1st LOAD for long block only. 2 Used for 2nd LOAD for long block only. s SAVE blocks. 0 Saves at normal speed with a normal tone leader. (this is key number zero, not the letter "o") Makes border green. t Saves with a SHORT tone. b Measures the BAUD rate. Border RED after use. q Quit - does a NEW. A Abort - does a Clear screen. Makes border yellow. ------------------------------------------------ a. WHAT TO DO FIRST - USING THE "b" BAUD RATE MEASURER ------------------------------------------------------ The BAUD RATE (speed of loading/saving) is set up initially as "normal" for the Spectrum when you first enter this mode. If the block you are trying to copy is faster/slower than normal then you must use either the "t" or "b" key to measure the baud rate FIRST before attempting to load or save a block. This is how to use the "b" key to measure the speed (baud rate): (i) Rewind your tape to the start of the block you are wanting - 16 - to copy. Press play, and let the TONE LEADER pass through. (ii) When bytes are going through (NOT TONE LEADER), simply tap the "b" key. Try to find a nice "noisy" section of the bytes, not one with a pitch of the same level; e.g. when saving a screen picture frequently there are say 200 bytes all the same thus producing a sound of a single pitch level. Thus you get a "smooth" sound, and the yellow/cyan bands would be the same width. We want a mixed up (or noisy) section where a mixture of bytes is being played. Thus try to tap the "b" key during a "noisy" part. If you are not happy that you have found an appropriate part, then repeat step (ii) again. AFTER USE, THE BORDER WILL GO RED. NOTE: Some programs have different BAUD RATES for each block, so before using one of the load keys you will have to measure the baud rate using "b" first. If the program has the same rate for each block then you will only need to use "b" once. Finally you can test to see if it has measured the baud rate correctly if the program has a screen string. Simply try loading it in, using the "l" option, and if the picture together with the colour attributes are normal (but displaced by one print square to the right), then the setting was correct. Unfortunately IT COULD STILL BE CORRECT EVEN IF THE COLOURS AREN'T NORMAL (e.g this happens with Wiz.Lair). b. The "t" key -------------- The use of this key has been changed and now allows you to save a block of code with a SHORT tone leader. Useful for Alkatra* type programs. c. SUMMARY OF THE LOADING/SAVING TECHNIQUES ------------------------------------------- If the block you are trying to copy is under approx 48320 bytes then all you use .is the "l" key to load in the block. If the block is longer than this however, you will have to load the block in TWICE. The first time you use the "c" (for count) key, and the second time the "2" (for second) key. (i) Copying blocks under approximately 48320 bytes -------------------------------------------------- Rewind your tape to the start of the block. Press "l" and then the PLAY key, and wait until loading is complete. Remove your original tape from your recorder and replace with the fresh one. Press record on your cassette and then press the "s" for save key. Wait until saving is complete and repeat this process until you have copied each block. SUMMARY: The "l" key loads in blocks up to approx 48320 bytes in length. Screen picture will be displaced by a print square. No corruption occurs when copied. This is your main loading-in option and should be used provided the block is under 48320 bytes long. e.g T H T B : T B T B T B Basic : All blocks high speed perhaps with : short tone leader - all under 48320 Usually use "M" mode: bytes long, none very short either. for this part. : Use "B" mode for these parts. (could use "B" mode): Use "b" key to measure the speed : then "l" to load and "s" save. : The baud rate might be different for : each block and thus the "b" measurer : would have to be used FIRST for : each block before loading. - 17 - (ii) Copying very long blocks - over 48320 bytes ------------------------------------------------ This is what you must do for very long blocks (high speed or otherwise). We will assume that you have already measured the baud rate and tone leader (if required); e.g Fairligh*, Elit*. a. Rewind tape to the start of the long block. Press the "c" key (for count) and then the PLAY key on your recorder. Wait until the border changes to BLACK, then stop the tape and REWIND it back to the start of that long block. You will find that the screen picture flashes/alters for a while, and eventually the border will change to CYAN. b. Now press the "2" key, PLAY on your tape, and wait until loading is complete. c. Stop your tape. Replace with your fresh tape, set your cassette recording, and then press the "s" key for SAVE. You have now completed copying the long block. Using this method you can copy very long high speed blocks, many even 51k long 100% accurately!! We have loaded and saved programs of 55K, in a 48K Spectrum! Though we do not expect that every program of this length can be managed; e.g. "E. ones a Wally", and "H. dummy run" have very long high speed last blocks that require the use of the "b" key to measure the BAUD RATE, and both "c" and the "2" keys. NOTE: It is possible to have a program at normal baud rate that the "M" mode of TUc can't manage. e.g T H T B T B Basic Headerless block. If the "M" mode fails to copy the program correctly then use the "M" mode to copy the first program part, enter the "B" mode and use it to copy the rest. d. Another saving option - DRIVE TRANSFER ----------------------------------------- The "0" key converts for drive transfer or study. If you have a high speed loader and want to convert it to normal for POSSIBLE drive transfer then press key "0" (the number zero) before pressing "s". (You may need our information books for successful transfer). It alters the saving setting to the "normal" speed. Thus if you want to do both tape to tape and a drive conversion copy, save under "s" the first time, then press "0" and the "s" for the second - the original speed is "forgotten" by TUc and so pressing "s" again will still save at normal speed. To summarise: pressing "0" (zero) sets the saving to "normal" speed. To reset to other speeds you will have to use the "b" key again. e. THE "q" KEY Pressing "q" gets the program to NEW itself. -------------- f. THE "a" KEY This clears the screen and resets the baud -------------- rate - i.e. it sets everything to the same position as it was when you pressed capital "B" to enter this mode. g. THE "t" KEY Pressing the "t" key will save the program -------------- with a short tone. Some high baud rate programs eg. Fairligh* have a short tone leader on the last block of code. This option has been included in TUc. The "0" option is still effective but of little practical use in these circumstances. - 18 - HELPFUL HINTS ------------- Trying to make a BACK-UP copy of fast speed loaders is tricky because it makes everything much more critical. Here are some general hints, but you will have to EXPERIMENT with YOUR EQUIPMENT. Usually your copy will load, it is just a question of finding the correct volume level. (i) You must have a decent recorder (preferably one without an automatic volume control when saving). The heads must be clean, and in alignment. Your tape must be high quality, and your original in a fit enough state. If it loads in only one time in four, the chances are you will need at least 4 attempts to copy it successfully!! (ii) Load it into the copier at the volume level you would normally use for the program. (iii) It is highly likely that the copy you have made will be saved at a HIGHER level than the original. It is therefore VERY VOLUME SENSITIVE, and it is HIGHLY LIKELY that you will have to experiment to see what volume your copy will load in at. We generally thus advise that you try to load in at a reduced volume (say 30% less than usual). When you find the correct volume NOTE IT DOWN ON YOUR TAPE, so that in future you will not have to make several attempts to get it to load. (iv) We have sometimes found that it is only one part of the copy that is wrong. e.g Suppose the program has this structure T H T B T B T B T B Block 1 2 3 4 5 The copy loads in but crashes at the end of block 3. However, upon loading the copy, but stopping at the end of block 2, loading FROM THE ORIGINAL its block 3, and then going back to the copy for blocks 4 and 5, the program then ran as normal. Thus it is clear that only block 3 was wrongly copied, and it is necessary to remake that part. (v) Completely fresh tape is always the best to use. If you have previously used the tape, and are copying over it, then your recorder has to erase first, and then save. Sometimes the erase head isn't all that efficient, and thus there is still some background noise. (vi) Do be patient. Managing these programs isn't easy, and don't expect TUc to manage all programs. It can't. PLEASE DON'T ASK US HOW TO BACKUP INDIVIDUAL PROGRAMS - WE CAN -------------------------------------------------------------- ONLY GIVE ADVICE ON THE USE OF THE PACKAGE. This must be ------------------------------------------ strictly observed. Incidentally we met several programs by PSS (e.g. Swords and Sorcer*) which LOOKED as if they had a jerky tone leader. In fact you simply use the "B" mode, measure the baud rate, and then HOLD DOWN the letter "l" key to load in the blocks. The copied blocks have a normal smooth tone leader when saved, but the program will still run as normal. TUC -v.1 - 19 -