********* Welcome to Project 64! The goal of Project 64 is to preserve Commodore 64 related documents in electronic text format that might otherwise cease to exist with the rapid advancement of computer technology and declining interest in 8- bit computers on the part of the general population. If you would like to help by converting C64 related hardcopy documents to electronic texts please contact the manager of Project 64, Cris Berneburg, at 74171.2136@compuserve.com. Extensive efforts were made to preserve the contents of the original document. However, certain portions, such as diagrams, program listings, and indexes may have been either altered or sacrificed due to the limitations of plain vanilla text. Diagrams may have been eliminated where ASCII-art was not feasible. Program listings may be missing display codes where substitutions were not possible. Tables of contents and indexes may have been changed from page number references to section number references. Please accept our apologies for these limitations, alterations, and possible omissions. Document names are limited to the 8.3 file convention of DOS. The first characters of the file name are an abbreviation of the original document name. The version number of the etext follows next. After that a letter may appear to indicate the particular source of the document. Finally, the document is given a .TXT extension. The author(s) of the original document and members of Project 64 make no representations about the accuracy or suitability of this material for any purpose. This etext is provided "as-is". Please refer to the warantee of the original document, if any, that may included in this etext. No other warantees, express or implied, are made to you as to the etext or any medium it may be on. Neither the author(s) nor the members of Project 64 will assume liability for damages either from the direct or indirect use of this etext or from the distribution of or modification to this etext. ********* The Project 64 etext of the Action Replay MK VI Professional manual with undocumented commands. Converted to etext by anonymous, supplied by Alex Slater , some editing by The Basic Bombardier. Fully debugged & proof-read by "Frank" Jeno E. Kontros , the Non Stop Cracker. AR6PRO12.TXT, September 1996, etext #73. This replaces AR6PRO11.TXT. ********* The Project 64 etext of the Action Replay MK VI Professional manual. ********* ACTION REPLAY MK VI PROFESSIONAL Congratulations on purchasing the finest utility cartridge for your Commodore 64 or Commodore 128 in 64 mode. Please read Section 1 of this manual before installing your Action Replay Cartridge. CONTENTS 1. GETTING STARTED 1.1 Installing the Cartridge 1.2 The Reset Button 1.3 The Freeze Button 1.4 The Startup Menu 2. MAKING BACKUPS 2.1 Preparing to Make a Backup 2.2 The Backup Process 2.3 Saving Backups to Disk 2.4 Saving Backups to Tape 2.5 How to Load Your Backups 2.6 Troubleshooting 3. GRAPHICS FACILITIES 3.1 The Sprite Killer 3.2 The Sprite Monitor 3.3 Saving HiRes Pictures 3.4 The Printer Dump 3.5 The Text Editor 4. POKES & PARAMETERS 4.1 How to Enter Pokes 4.2 The Pokefinder General 5. THE UTILITIES MENU 5.1 Formatting a Disk 5.2 The Disk Filecopier 5.3 The Whole Disk Copier 6. FASTLOAD UTILITIES 6.1 The Ramloader 6.2 The Warp*25 Disk Turbo 6.3 The Turbo Linker 6.4 Single Stroke Commands 6.5 Toolkit Commands 6.6 The Tape Turbo 6.7 The Centronics interface 7. MACHINE CODE MONITOR 7.1 Command Summary 7.2 Description of Commands 7.3 Disk Monitor Functions 7.4 Freeze & Break Points 1. GETTING STARTED 1.1. - INSTALLING THE CARTRIDGE The cartridge fits into the expansion port of your computer. Looking from the front, this is on the right hand side at the rear of the machine. IMPORTANT: Before inserting or removing the cartridge, ensure that the computer is switched OFF, otherwise both cartridge and computer may be damaged. Insert the cartridge with the label side uppermost and the two buttons to the right, looking from the front. Firm pressure may be necessary, but excessive force should not be used. Now switch the computer on. If your computer is a 128 or 128D, it will powerup in 64 mode. The Cartridge Version and Startup Menu will be displayed. 1.2. - THE RESET BUTTON This is the right most button at the rear of the cartridge. Pressing this returns you to the Startup Menu. The contents of memory are not destroyed, but any Basic program will be 'newed'. 1.3. - THE FREEZE BUTTON This is the inner button at the rear of the cartridge. Pressing this interrupts the normal operation of the computer and transfers control to the Freeze Menu, from which Action Replay's powerful Backup. Graphics and Monitor functions are accessed. IMPORTANT: The Freeze Button does not work if the computer has "crashed" i.e. if the microprocessor has stopped processing. To re-enable the system, press the Reset Button or switch off and on again. IMPORTANT: Do not hold the Freeze Button down for more than a second or the program may not be frozen. Give it one quick press and then let if go. You cannot freeze an already 'frozen' program. 1.4. - THE STARTUP MENU F1 - CONFIGURE MEMORY F3 - NORMAL RESET F5 - UTILITIES - See Section 5. F7 - INSTALL FASTLOAD - See Section 6. NORMAL RESET switches the cartridge off, making "invisible" to the system. CONFIGURE MEMORY fills memory with a single Byte value before resetting. This makes Action Replay's Backup Compaction System more efficient. You should select this option before loading a program to be backed up. 2. MAKING BACKUPS A Backup is a complete, working copy of any program. Action Replay makes backups by taking a 'snapshot' of the whole of the computers memory, together with all graphics and timing information, which is then saved in compacted form to disk or tape. 2.1 - PREPARING TO MAKE A BACKUP Have a blank tape or disk handy for saving the backup. If a disk is new it needs to be formatted (see Section 5). Select CONFIGURE MEMORY from the Startup Menu (Section 4). 2.2 - THE BACKUP PROCESS Load the program you wish to copy. When the program has loaded and is running, it may be frozen at any time by pressing the Freeze Button. Select BACKUP from the Freeze Menu. The border will flash for 10-20 seconds while the compactor is operating, after which the program is ready to save. 2.3 - SAVING TO DISK Before saving the program you may wish to add a 'loader' to the disk which allows backups to be loaded independently of the cartridge. The Loader uses spare blocks in the directory and is best saved as the first file on a disk. However,the Loader may be saved at any time via the Backup or Utilities Menu. Backups can be saved to disk in one or more of three styles: 1. TURBO - Single file using the Action Replay Standard Turbo. 2. WARP*25 - Single file save using a special format for super fast loading. IMPORTANT: Read Section 6.2 for a full description of Warp*25. 3. STANDARD - Uses the normal kernal routines, or FAST DOS parallel routines if fitted. Programs over 202 blocks are saved in two parts. Select the required option and enter the filename of your choice (up to 15 characters). Press RETURN to start the Save. If the drive fails to respond switch it on and on and try again. This is not usually necessary, but may be important if the original was a commercial disk program. All being well, your backup is now complete. You may now save again in a different style, restart the program or exit as required. If there is insufficient space on the disk, you will receive the message 'DISK FULL' or 'FILE TOO LARGE'. Insert a fresh, formatted disk and try again. On average 3 backups will fit on one disk side. 2.4 - SAVING TO TAPE There are two speed options: 1. TURBO Save at 5-6 times standard speed - that's about the same speed as commercial Tape Turbos. This is a highly reliable speed which will never give loading problems. Use this if data is the primary consideration. Backups load in 3-4 minutes. 2. SUPERTURBO Saves at 8-10 times standard speed - data is packed much more and backups load in around 2 minutes. This speed requires a tape deck in good condition and high quality, short length tape for reliable loading. Same tape decks cannot record cannot record data at this speed it you find that your programs do not load, then stick to Turbo speed. 2.5 - HOW TO LOAD YOUR BACKUPS All tape backups have their own built in Turboloader. Just press SHIFT/RUN in the normal way and the program will load and run. The cartridge does not need to be present. Ensure that the tape is wound to the correct point. To ensure reliable loading, keep the tape deck away from the computer or TV set and clean your tape heads regularly. The best way to load disk programs is with the cartridge, via FASTLOAD. LOADING FROM THE DIRECTORY WITH FASTLOAD 1. Press F3 or $ (dollar) to display the Disk Directory (press STOP if a long directory scrolls the screen). 2. Move the cursor over the name of the program you wish to load. 3. Press F1 and the program will load and run. LOADING WITHOUT THE CARTRIDGE PRESENT 1. LOAD"LOADER",8 and RUN. The Loader must previously have been saved to the disk. 2. Move the cursor over the name of the file and press RETURN. Programs over 202 blocks in length, and all Warp*25 files must be loaded either by the cartridge or the Loader. No alternative loading system can handle Warp files, but some can handle long, normal format files. Shorter programs and two part programs saved by the standard Save option can be loaded by the normal CBM kernal, or any sensibly written hardware based disk fastloader. If a two part program is loaded by the loader only the first part will load at high speed. NOTE: The LOADER does not work with the 1581 drive. 2.6 TROUBLE SHOOTING 1) PROGRAM WILL NOT SAVE TO DISK. Try switching the drive off and on before starting to save. If you get "DRIVE NOT READY" it probably means that the disk is unformatted. Format the disk and try again. 'DISK FULL' means that there is insufficient free space for the program. Use a fresh disk. Other error messages indicate a faulty disk. 2) PROGRAM TO BE COPIED WILL NOT LOAD. Switch the computer off and on and select NORMAL RESET from the Startup Menu before loading the program. A few programs will not load if a disk drive is present. Switch the drive off and switch on after freezing the program. 3. GRAPHICS FACILITIES 3.1 - THE SPRITE KILLER To operate the Killer, freeze the program and select SPRITE KILLER. You may then disable collisions between two sprites or collisions between sprites and background data or both. The program will then restart and, if successful, you will find that when two sprites collide nothing happens. You can then sail through the whole program without losing a life. Results will vary from program to program. Shapes which appear to be sprites may actually be user defined characters, or the programmer may be using coordinate information rather than the VIC system to detect collisions. In such cases the Sprite Killer will have no effect. In general, the Killer is more effective on older programs. 3.2 - THE SPRITE MONITOR To enter the Sprite Monitor, freeze the program and select VIEW SPRITES from the Menu. Any sprite shape in memory can now be displayed on screen. You can scan through the whole memory and the sprites will move across the display. Seven sprites at a time are displayed on screen. The central sprite is displayed double size,and is referred to as the CURRENT SPRITE. Key functions are: < and > - Move up or down B - Change video bank. The computer has 4 video banks each of which can be accessed in turn. M - Change mode. Sprites have two display modes. Standard and Multicolour. Displayed colours will be different from the actual ones, but these will be restored when you restart the program. S - Save. The current sprite can be saved to disk or tape. L - Load. Any sprite previously saved can be loaded back in to the current sprite position. W - Wipe. 'Removes' the current sprite by making it invisible. Using these functions you can customize your programs by altering the sprite shapes. Press RUN/STOP to exit. You can then restart the program, together with any alterations you have made. NOTES: Most sprite positions are not used and will be displayed as random patterns. When loading a sprite from tape, you must enter the exact filename, or you can press RETURN to specify no name, and the next sprite on the tape will load. Press the RUN/STOP key to abort. As with the Sprite Killer, there are many variations in the way sprites are handled in programs, so unexpected results may occur. 3.3 - SAVING HIRES PICTURES Multicolour pictures may be saved to disk or tape. Freeze the program when the required picture is displayed, select PICTURE SAVE from the menu and follow the on-screen prompts. If the display mode is not Multicolour HiRes, you will receive an error Press RUN/STOP to return to the Main Menu. Pictures can be Saved in numerous formats to tape or disk for loading into various graphics programs. When entering the filename, you should omit any special prefix, as this will be added automatically. Pictures must be saved in Blazing Paddles format if you want to display them with the built-in Tape Slideshow (see Section 5.5). 3.4 - PRINTER DUMP If you have a CBM printer with dot graphics capability or an Epson compatible printer (with suitable cable), this facility allows you to printout the contents of the screen. Follow this simple procedure: 1) Freeze the program when the screen you want to print is displayed. 2) Press F7 to view the screen which will be printed. The background colours can be changed if you wish, with F3 and F5. 3) Select PRINTER DUMP and enter the appropriate PRINTTYPE NUMBER (described below). Adjust the paper position. 4) Press RETURN to start printing. When the dump is complete or if you press RUN/STOP, you will return to the Freeze Menu. The printer dump can be used in any graphics mode, but it performs best in multicolour bitmap mode - shades of gray are printed to simulate colour shading. Sprites will not be printed. Some screens are 'Raster Split' - in such cases only part of the screen display will produce a sensible printed output. 3.5 - TROUBLESHOOTING Some serial printers 'hang' on the serial bus - you may need to switch the printer off and on to reinitialize it. If you have a parallel interface connected to the serial port, you may need to send a command string to initialize it. You can do this via the machine code monitor with the @P command - see Section 6.6 for details of this. The print type numbers are described below: 0 for CBM 801,803 or equivalent. 1 for Epson compatibles. 128 same as 0 but produces a 'negative' printout. 129 same as 1 but produces a 'negative' printout 33 same as 1 but adds an extra linefeed 161 same as 129 but adds an extra linefeed Use number 33 or 161 if you find that the paper doesn't move up. If you find that there is a narrow space between printed lines, try adding 64 to any of the above numbers e.g. 129 becomes 129+64=193. Users of the STAR NL10 with CBM serial interface can use the Epson numbers to give a higher density output. 3.6 - THE TEXT EDITOR This allows you to edit a frozen text based screen. You can use all the normal screen editing keys, such as the CURSOR keys, INSERT, DELETE, etc., plus some extra ones: CTRL-I inserts a line CTRL-D deletes a line. F3 changes the border colour F5 changes the background colour. You can change the text colour in the normal way - hold down the CTRL or CBM key and press keys 1-8. Press RETURN to exit. The editor works with text based screens only - you cannot get useful results on a bit mapped screen. Also, if the program uses a different character set, the display characters may not correspond with those printed on the keyboard so a little experimentation may be necessary - try pressing SHIFT and CBM together to change characters. The screen editor can be used to insert your own messages on the game title screens. It is also a useful programming aid, because the cursor column and row, and the screen address are displayed - which helps in designing screen layouts. The editor replaces the Text Modifier in old Editions of the cartridge. Text searching is more easily achieved via the monitor. Enter the monitor and type I (RETURN). This displays memory in the form of ASCII characters. You can scan through the whole of the memory looking for text strings - to change any text simply type over it and RETURN. Make sure you don't type over non-text areas. You can also display screen codes by typing I*(RETURN). Type X to leave the monitor. Refer to Section 7 of this manual for more details of the monitor. 4. POKES & PARAMETERS 4.1 - HOW TO ENTER "POKES" Computer magazines often publish "pokes" which can be entered into programs to add features such as infinite lives to game programs. These often require the machine to be reset. To reset the machine, press the RESET button and select NORMAL RESET from the startup Menu. In addition, the cartridge allows you to enter pokes after a program has been frozen. Select POKES, enter the required poke or pokes (one at a time), and press RUN/STOP. The program can then be restarted. 4.2 - THE POKEFINDER GENERAL This is an automatic infinite lives finder for games. Until now finding pokes was a difficult long-winded procedure requiring specialized knowledge. Using Pokefinder, you can generate that elusive poke, even if you don't understand a word of machine code! Just follow this procedure: 1) Load up and run your game. When play starts note how many lives you begin with and press the Freeze Button. 2) Select POKEFINDER. You will be asked 'HOW MANY LIVES NOW?' - enter the number of lives you started with. Pokefinder will now analyze the memory and display a list of possible pokes. Usually there will be many of these, so you will be prompted to 'LOSE A LIFE AND REFREEZE'. 3) Restart the game and continue to play until you lose a life. Make sure that you lose ONE LIFE ONLY. Wait for any "death sequence" to complete. When play resumes, press the Freeze Button. 4) Select POKEFINDER again. You will get one of three messages: a) LOSE A LIFE AND REFREEZE go back to 3. above. b) ABORTED - Pokefinder has failed. c) INSTALLED the poke (or pokes) have been found and entered into the program. Write down the displayed poke(s) for future use. If Pokefinder fails if may be because the programmer used an unusual method of counting the number of lives remaining. However it can be that you got the starting number of lives wrong or accidentally lost more man one life between passes - so its worth going through the procedure again in case you made a mistake the first time. Tests show a success rate of over 80% - very high for this type of program. Some multiload programs need a different poke for each level in which case you should repeat the above procedure after each Load. 5. THE UTILITIES MENU The Utilities Menu is accessed from the Startup Menu. Some of the utilities can also be called from Fastload (see Section 6). 5.1 - FORMATTING A DISK When a disk is new it needs to be "formatted" before if can store any programs. When you select this option you will be asked to enter the disk NAME, which can be any name up to 16 characters in length, and the ID number which can be any two characters press RETURN and the disk will be formatted at high speed. The directory of the disk will be displayed. Occasionally, last formats do not "take" first time. If the directory does not show 664 BLOCKS FREE try again and everything should be OK. if a disk persistently fails to format, a faulty disk is indicated. NOTE: Formatting a disk destroys any previous information which may have been on the disk. Be certain that you have the correct disk inserted before selecting this option. 5.2 - THE DISK FILECOPIER The Filecopier will handle Program, Sequential, User and WARP*25 files up to 247 blocks in length (255 in the case of Warp files). Programs may also be converted from PRG to Warp*25 or vice versa. The utility can be used with one or two drives. The MULTI OUTPUT option allows several copies to be taken from each pass. When you have selected your options press SPACE and each file in the directory will be displayed in turn. Press Y if you want to copy that file, otherwise press N and if will be ignored. Any tiles which cannot be handled e.g. Relative Files, will be skipped. At the end of the directory the selected files will be loaded. Several passes may be necessary, depending on the length and number of files selected. You will be prompted to swap disks when necessary. The SOURCE DISK is the disk which is being loaded FROM and the OUTPUT DISK is the disk which is being saved TO. The Output Disk (or disks if you have selected MultiOutput) should be formatted in advance. NOTE: The Filecopier cannot copy the Action Replay Loader. This must be Saved using the separate option on the Utilities Menu. 5.3 - THE WHOLE DISK COPIER The Disk Copier is for the 1541 (and compatibles) only. You can use the copier with one or two 1541 drives. With a single drive you will be prompted to insert the Source and Destination Disks in turn. BAM COPY - if selected only the occupied tracks will be copied. This can save a lot of time when copying partially filled disks. IGNORE ERRORS - if selected, the written data will not be checked. Otherwise, the written data will be verified against memory - this takes longer but gives greater security for important data. NOTE: Any deleted Warp files on the disk may cause spurious error reports. NOTE: If you have any difficulty in using the disk copier with the 1570 or 1571 drives, enter the following disk command: @U0>M0 (RETURN). This forces the drive into 1541 mode. FASTLOAD is the turbo and utilities area of Action Replay. Operating in the Basic environment, numerous extra commands and facilities are available. To install, select INSTALL FASTLOAD from the Startup Menu, or hold down the CBM key when you power up or press the Reset Button. 6. FASTLOAD UTILITIES 6.1 - THE RAMLOADER RAMLOADER is a Disk Turbo - but a very special one . Special because it is fast - very fast ! It uses standard GCR format, so it works with all your existing programs without special conversion. RAMLOADER will load a 202 block program in around 9 seconds, whereas a "normal" Disk Turbo would take between 20-30 seconds, and can load files of any length. It is fully independent of computer memory. It works with all drives from the 1541 upwards (including the 1581, and the 1571 in two-sided mode). 6.2 - THE WARP*25 DISK TURBO Warp*25 is, we believe, the fastest serial disk loader in the world. It will load an Action Replay program in 6-7 seconds. This speed rivals that of the best parallel systems. However, some restrictions apply: 1) Warp*25 files are Saved in a special form which the normal CBM DOS cannot recognise. This means that Warp files can ONLY be loaded by Fastload or the independent loader, if present on the disk. 2) Warp files are slightly longer than normal files. 3) You cannot validate a disk which contains Warp files. Warp files need to be Saved on continuous tracks, therefore, you may find that the system will return 'DISK FULL' when there is apparently ample space on the disk. To avoid this, if is best not to mix normal and Warp tiles on the same disk. The Filecopier (Section 5.2) can be used to 'pack' Warp files, thus making additional disk space available. To Save a program in Warp form add the suffix ,W to the filename: SAVE "PROGNAME,W",8 NOTE: Warp*25 does NOT work with the 1581 or 1571 in two sided mode. Because the new Ramloader is so fast, it is not really necessary to use Warp*25, except when backups are to be loaded via the independent loader. Warp is faster but less convenient than normal format. The Disk Turbo can be switched out with the command OFF. Load and Save will then be at slow speed (or parallel speed if such a device is fitted to your system) . Type ON to re-enable the Turbo. The Ramloader can be switched off and on with the commands @K- and @K+ . This reduces loading speed but doesn't blank the screen during load. NOTE: Some commercial programs will override the Disk Turbo. 6.3 - THE TURBOLINKER When you load and run a commercial program with Fastload, you will often find that the cartridge Turbo System is disabled for any subsequent Load/Save operations. This can be remedied by the Turbolinker. Select TURBOLINKER from the menu and select the device to be linked. Then restart the program. Loads and Saves will now be redirected to that device. Note that if the program incorporates it's own Turbo system, or does not use the normal Load/Save commands, the Turbolinker will not work. If you link the Tape Turbo, remember that you can only load programs if they have already been Saved by the Fastload Tape Turbo. NOTES FOR THE 1571 DRIVE Switch to double sided mode with the following. @U0>M1 or OPEN 15,8,15,"U0>M1":CLOSE 15 In this mode, both sides of the disk are used, giving twice the storage space when the disk is formatted. To switch to single sided (1541) mode: @U0>M0 or OPEN 15,8,15,"U0>M0":CLOSE 15 The drive powers up in 1541 mode when connected to a 64, so enter the aforementioned command if you wish to use double sided mode. NOTE: Side two of a double-sided disk cannot be read by a 1541 drive. NOTES FOR THE 1581 DRIVE Some samples of this drive are not very happy when working with a 64 or 128 in 64 mode. If you find that the system hangs when reading the directory or error channel you should press RUN/RESTORE and enter the following commands: @U0>B0 or OPEN 15,8,15,"U0>B0": @U0>B0 or PRINT#15,"U0>B0":CLOSE 15 NOTE: How the same command is entered twice. It is only necessary with early samples of the drive and should be entered each time you switch on the drive or reset the system. 6.4 - SINGLE STROKE COMMANDS. To make your programming life easier, a number of single stroke commands are available from Fastload: 1) FUNCTION KEYS. These are defined as follows: F1 equivalent of LOAD "0:*",8,1. Press F1 then RETURN to load the first file on the disk. F2 equivalent of LOAD "0:*",8 & RUN F3 display disk directory without corrupting memory F4 change background colour F5 LIST F6 goto Freeze Menu just as if you had pressed the freeze button. F7 RUN F8 enter the Machine Code Monitor (see Section 7) 2) EASY LOAD/SAVE COMMANDS /PROGNAME equivalent to LOAD "PROGNAME",8,1 ^PROGNAME equivalent to LOAD "PROGNAME",8 & RUN &PROGNAME equivalent to VERIFY "PROGNAME",8,1 {POUND_SIGN}PROGNAME equivalent to SAVE "PROGNAME",8 {POUND_SIGN}PROGNAME,W - as above but saves in WARP*25 form Loading with these commands will only set the Basic End pointers if the program loads to the start of Basic. Also, the Filename does not corrupt the Basic String area two points. useful to the machine code programmer. Very long tiles can be saved with the {POUND_SIGN} command where the normal save command would give an OUT OF MEMORY ERROR. LOADING FROM THE DIRECTORY If you display the directory and then move the cursor onto a line containing an entry, you can load that program simply by pressing F2 to load and run or F1 to load without running. This is a very convenient way of loading a program. 3) EASY ACCESS TO THE ERROR CHANNEL. Instead of using OPEN 15,8,15 "COMMANDSTRING":CLOSE 15, you may use the "@" key to send disk commands and read the error channel: @ or @8 or @9 - reads the error channel. @I - initialise the drive @V - validate (cannot be used on Warp*25 disks) @R:NEWNAME=OLDNAME - rename a file. @N:NAME - clear the directory of a previously used disk. @N:NAME,ID - format a new disk. @$ or $ - display directory. @S:PROGNAME - scratch (delete) a program from the disk. @H:NAME,ID - a new command not available in the normal DOS. This changes the name and ID of the disk without clearing the directory. If you use a two drive system, the second drive can be accessed by reading its error channel, e.g. @9 Subsequent single stroke commands will be to device 9. If a Filename contains leading or trailing spaces, if may be enclosed in quotes, e.g. /" PROGNAME". When the format or scratch command is entered, you are prompted 'ARE YOU SURE?'. Press 'Y' to continue. Any other key to quit. Consult your disk drive manual for further information about the error channel. 6.5. TOOLKIT COMMANDS. A number of extra basic commands are provided, which operate in direct mode. The commands may be abbreviated by typing just the first three characters, e.g. MON will be interpreted the same as MONITOR. OLD will recover a basic program which has just been NEWed. DELETE will delete a block of program lines. Syntax is like LIST except that the first line to be deleted must be specified e.g. DEL 1000-2000 will delete lines 1000 to 2000 inclusive. DEL 1000- will delete from line 1000 to the end of the program. LINESAVE will save to disk a section of a basic program e.g.: LIN "PROGNAME",8,1000-2000 will save program lines from 1000 to 2000 inclusive. Lines saved in this way may be loaded back as separate basic programs, or MERGED into other programs. MERGE loads a basic program from disk and combines it with a program in memory if two lines have the same number, the new line replaced the existing line. A program may also be merged with new line numbers e.g.: MERGE "PROGNAME",8 merges a program with the program in memory. MERGE "PROGNAME",8,1000,10 will renumber the lines before they are merged, starting with line 1000 and incrementing in steps of 10 GOTO & GOSUB statements will not be renumbered. Merging into a long program is a lengthy process, so be patient. APPEND differs from MERGE in that the new program is tagged onto the end of the previous one. It also occurs at turbo speed, e.g.: APP "PROGNAME",8 loads the program starting at the end of the previous one. For Append to be useful, the program to be appended should have line numbers greater than the existing program. AUTO provides automatic line numbering as you type in a program, e.g.: AUTO 1000,10 starts automatic line numbering at line 1000 and increments in steps of 10. To turn AUTO off, press RETURN against a blank line. If you subsequently want to continue automatic numbering type AUTO on its own and numbering will continue from the last line number which was automatically displayed. BOOT will load a machine code file and jump to the first address loaded, e.g. if you have a program which you would normally load with LOAD "PROGNAME",8,1 followed by a SYS number. BOOT will perform the same function . NOTE that BOOT will only work when the program is started by SYSing to the first address loaded. Syntax: BOOT "PROGNAME",8. PLIST will list any basic program directly from disk to a CBM printer (device 4), without overwriting the program in memory. Syntax: PLIST "PROGNAME",8 . This command can also be used to print the directory PLIST"$",8 . PLIST won't work with machine code and sequential files. SLIST is the same as PLIST except that output is to the screen. OFF & ON - used to switch the disk turbo routines off and on. COPY or @C - Filecopy - see Section 5.2. BACKUP or @B Whole Disk Backup - see Section 5.3. Hex ($), binary (%) and octal (&) numbers can also be included in basic expressions, e.g. SYS 49152 could be entered as SYS $C000. 6.6 - THE TAPE TURBO A programmers Tape Turbo is built into Fastload. This is quite different from the Tape Turbo used on backups. All tape backups load completely independently of the cartridge. An important point to note about Tape Turbos is that all different Tape Turbos use their own special format for saving programs to tape. This means that this Tape Turbo can only load programs which have been saved by itself. Normal speed programs and those recorded by other Tape Turbos CANNOT be loaded by the Fastload Tape Turbo. When you enable Fastload, the Tape Turbo is OFF. It can be switched in and out as required by the following command: @1 (press RETURN). You get the message: TAPE TURBO ON. To switch the Turbo out enter @1 again: TAPE TURBO OFF. So it is easy to convert your existing, slow load programs to Turbo: 1) Switch the Tape Turbo OFF with @1 (RETURN). 2) Load your slow load program. 3) Switch the Tape Turbo ON with @1 (RETURN). 4) Insert a new tape and save the program with SAVE "PROGNAME". The Turbo works exactly like the standard, slow routines, except that speed is increased by 5-6 times - a very reliable speed which will never give loading problems, provided that you take simple precautions: a) Keep your heads clean. b) Keep the tape deck away from sources of electromagnetic interference such as the computer or TV set. c) Leave a gap between programs and keep a note of the tape counter reading for each program, so that you can easily locate it on the tape. This Tape Turbo also works with sequential files. Speed increase is not quite as great, because time needs to be allowed for the tape motor to pick up speed as each buffer is loaded. An alternative method of switching between Slow and Turbo Tape Speed is by means of the device number. Normally the device number is 1 for tape. Device 7 switches the Turbo ON and device 6 switches OFF again. LOAD "PROGNAME",7 Turbo ON for that load and subsequent loads. LOAD "PROGNAME",8 Turbo OFF for that load and subsequent loads. Remember, you can only load a program with Fastload's Tape Turbo if it was previously saved by Fastload. Turbo Commercial tape programs should be loaded with the cartridge switched out (see Section 2). 6.7 - CENTRONICS PRINTER INTERFACE AR VI can drive a Centronics printer connected to the computer a parallel port. Any output to the printer (device 4) will automatically be sent to the parallel port if a parallel device is connected and active. Note that you need a suitable connecting cable before you can use a parallel printer. The interface will normally perform any necessary character translation, including most graphic characters, but you can also send untranslated characters or "escape codes" e.g. to change style and formatting. To print a Basic program enter OPEN 4,4:CMD4:LIST When printing is complete enter PRINT#4:CLOSE 4 To send special printer codes and untranslated characters you need to open a special channel (secondary channel 9). Here is an example: 10 OPEN 4,4 : REM OPEN A NORMAL CHANNEL TO THE PRINTER 20 OPEN 9,4,9 : REM OPEN A'COMMAND' CHANNEL 30 PRINT#9,CHR$(27)+CHR$(87)+CHR$(1);: REM EXPANDED PRINT ON 40 PRINT#4,"THE QUICK BROWN FOX" 50 PRINT#9,CHR$(27)+CHR$(87)+CHR$(0);: REM EXPANDED PRINT OFF 60 PRINT#4,"THE QUICK BROWN FOX" 70 CLOSE 4:CLOSE 9: REM CLOSE PRINTER CHANNELS This short example should print "THE QUICK BROWN FOX" in double width characters and again in normal size characters. Note the semicolon (;) at the end of the command string - this prevents a carriage return from being sent at the end of the command string. Refer to your printer manual for details of other special commands. Most, but not all commands begin with the "escape character" CHR$(27). The interface prints according to the screen mode - you switch between "Business" and "Graphics" modes by pressing SHIFT & CBM together. If you find that everything gets printed on the same line, you need to set a special "Dip Switch" on your printer to make the paper move down at the end of each line (a "Linefeed"). Again, refer to your printer manual .If your printer cannot do this, you can send a special command to Action Replay which forces a linefeed with each carriage return: @PLF - causes a linefeed to be sent with every carriage return. You can also print characters direction with @P, e.g. @P"THE QUICK BROWN FOX" @P 27,87,1 "THE QUICK BROWN FOX" 27,87,0 "THE QUICK BROWN FOX'" The second example does the same as the Basic program listed above. Note how you can mix command sequences and strings on the same line. The @P command works in Direct mode, or in the Machine Code Monitor, but not from within a program. @P* - dumps the entire text content of the screen. @P** - works in the Freeze Monitor, it dumps the frozen screen. Refer to Section 3.4 of the manual for details of the graphic screen dumps. 7. MACHINE CODE MONITOR Action Replay includes a powerful extended Machine Code Monitor. To call the Monitor from Fastload, enter MON and press F8. The Monitor is also available from the Freeze Menu. In this mode all of the memory including the screen, stack and zero page may be examined in its condition at the point at which the program was frozen. All 64K of memory remains unaffected by the Freeze Monitor. Any alterations made will be incorporated into the program when it is restarted or saved. A working knowledge of 6502 assembly language and Hex notation is required by the user, if the Monitor is to be used effectively. Some of the Monitor instructions can cause the system to crash if the user is not fully aware of what is going on. 7.1 - COMMAND SUMMARY X - Exit to Basic or Freeze Menu. A - Assemble. D - Disassemble. M - Display memory in Hex. I - Interpret memory as ASCII codes. I* - Interpret memory as CBM codes. * - Toggle RAM/ROM modes. R - Display registers at entry or freeze time. F - Fill memory. C - Compare memory. T - Transfer memory. G - Execute program as per register display. N - Number conversion. P - (prefix). Direct output to the printer (device 4). B - Execute a Basic command. L,S,V - Load, Save, Verify. I/O - Displays I/O registers (freeze mode only). @ - Read error channel or send disk command. $ - Display directory. @*8 - Access drive memory (device 8). @*9 - Access drive memory (device 9). @* - Return access to computer memory. @ME - Execute memory in disk drive. @BR - Read a disk sector into computer memory. @BW - Write a sector from computer memory to disk. 7.2 - DESCRIPTION OF COMMANDS NOTE: When an end address is specified it should be exclusive. The end address is one Byte greater than the last address to be operated on e.g.: .S" PROGNAME",8,C000,D000 saves up to but not including D000. EXAMINING MEMORY. Memory may be examined in Hex/ASCII, Disassembly, or Interpreted as ASCII or screen codes e.g.: .D C000 D000 - disassemble from $C000 to $D000. .M C000 D000 - display memory from $C000 to $D000. .I C000 D000 - interpret ASCII from $C000 to $D000. .D C000 - disassemble one instruction at $C000. .M C000- - display memory from $C000 onwards. .D - disassemble from the current address onwards. .I* - interpret Screen Codes from the current address. The display can be controlled in two ways: a) Function keys F5 and F7 cause continual scrolling up or down respectively. Set for fast scanning through memory. Any other key will stop or start the display. F5 and F7 change the direction of the scroll. STOP or CURSOR DOWN returns to the input prompt. b) Cursor Up and Cursor Down will scroll the display by one line at the top or bottom of the screen and return to input prompt. Best for editing. Memory may be altered - type over any byte, code or mnemonic and press RETURN. A question mark indicates an error. 1) BANK SWITCHING. On entry, the Monitor is in RAM mode - all systems ROM's are switched out during memory access. To access the ROM's and I/O devices, use the * command, which toggles between the two modes. 2) ASSEMBLY. E.g.: .A C000 LDA #$01 Assemble an instruction in standard 6502 mnemonics at $C000. The next memory address will be displayed ready for the next instruction. 3) REGISTER DISPLAY. .R The program counter, A, X & Y registers, location 1 and the stack pointer are displayed in Hex. The Status register is displayed in Binary. Alter registers by typing over the relevant byte or flag. 4) FILL MEMORY. E.g.: .F C000 D000 AA Fill memory from $C000 to $D000 with the byte $AA. 5) HUNT MEMORY. E.g.: .H C000 D000 01 02 03 .H C000 D000 "STRING" Hunt through memory for a sequence of bytes or an ASCII string. If any occurrence is detected, the address will be displayed. 6) COMPARE. E.g.: .C C000 D000 E000 Compare the area of memory from $C000 to $D000 with memory starting at $E000. If there is any discrepancy, the memory locations will be displayed together with the bytes at those locations. 7) TRANSFER MEMORY. E.g.: .T C000 D000 E000 Move memory starting at $C000 and ending at $D000 and move it to memory starting at $E000. This is an intelligent transfer - memory areas may overlap and may be moved either up or down in memory. 8) GO. E.g.: .G C000 Load registers as per the register display and start executing the machine code program starting at $C000. The program may end with either a BRK or an RTS instruction. 9) NUMBER CONVERSION. E.g.: .N $C000 .N 49152 .N %10101010 .N $C000+$FF .N $FF-1+$4000 .N $FF00/(2 * $AA) Displays the result of an expression in HEX, DECIMAL and BINARY. If the expression is a single byte value, a PETASCII character is displayed. 10) OUTPUT TO PRINTER. E.g.: .PM C000 D000 .PH C000 D000 "STRING" P is used as a prefix to another command. Memory display will be directed to the printer (device 4). Hold STOP to quit. 11) EXECUTE A BASIC COMMAND. E.g.: .BPRINT 8*256 .BPRINT "TEST" .BPLIST 12) LOAD, SAVE & VERIFY. E.g.: .L"PROGNAME" .L"PROGNAME",8,C000 .L"",1,C000 .S"PROGNAME",8,C000,D000 .S"PROGNAME",8,C000,D000,E000 .V"PROGNAME" Load, Save, Verify. If a load address is specified, the program will be loaded to that location, otherwise it will be loaded to the address from which it was saved. Save requires a start and end address, which should be one byte after the last address to be saved. If an additional address is added to the save addresses, this will be saved as the reload address of the program (disk only). All disk I/O uses RAM locations. NOTE: You cannot load and save memory below $0800 if the Monitor was entered from the Freeze Menu. 13) I/O REGISTERS. .IO Displays the I/O registers $DC00-$DC0F,$DD00-$DD0F & $D000-$D02E. Any alternations will be incorporated on Restart or Backup. This command only works if the Monitor was called from the Freeze Menu. 7.3 DISK MONITOR FUNCTIONS. You can use the Monitor to access drive memory with the @* command. Syntax: @* (read device) (write device). Device 0 indicates that the "device" is computer Ram. If no write device is specified, the write device will be set to the read device number. If no parameters are specified then the monitor reverts to its default (read and write to computer Ram) e.g.: @*8 Read and write to device 8. @*89 Read from device 8, write to device 9. @*80 Read from device 8, write to computer Ram. @*08 Read from computer Ram, write to device 8. @* Return to default. All the Monitor's memory access commands can be used with drive memory. Memory can be transferred between devices by setting up the required parameters before using the T command. The Compare command does not work with drive memory. OTHER DISK COMMANDS. @ME (address) - executes a program in drive memory. @BR (TRACK) (SECTOR) (MEMORY PAGE). @BW (TRACK) (SECTOR) (MEMORY PAGE). These are block read and write commands. If no memory page is specified then page $CF will be used e.g.: @BR 12 01 40 - Read track 18, sector 1 to page $4000. @BW 11 00 40 - Write page $40 to track 17, sector 0. You can specify decimal notation for the track and sector numbers by prefixing with the + character. Separate the parameters with a comma, e.g.: @BR +18,+1,40 - same as the above example. Take care when writing a disk block - if you accidentally specify the wrong parameters you could trash the disk. 7.4 - FREEZE & BREAK POINTS. >From the Freeze Monitor, you can set explicit Freeze and Break points in a program. Up to five Freeze or Break points can be set, which are cleared when program control passes to the Monitor. To set a Freeze point disassemble the required part of the program and type SF against the required address, e.g.: .> C000 A9 41 LDA #$41 .> C002 20 D2 FF JSR $FFD2 .> C005 60 RTS modify like this: .> C002 SF D2 FF JSR $FFD2 entering the line gives: .> C002 20 D3 DF JSR $DFD3 enter: .G C000 Control will pass to the Freeze Monitor at address $C002 and the original instruction (JSR $FFD2) is restored. Break points are set in the same way except that you type SB instead of SF. You can explicitly clear a Freeze or Break point by typing CB or CF against the address. Freeze and Break points act exactly as if you had pressed the freeze button, but you can precisely control the point at which the program is frozen. Breaks pass through the IRQ vector at $FFFE and the break vector at $0316, so they are not suitable for programs which modify these vectors. Freeze points don't use these vectors, so they are particularly useful for programs (e.g. most games) which switch out the kernal ROM. However, because they use three bytes of code, you need to be careful not to place a Freeze at a point where program control may hit the second or third bytes of the freeze instruction, or you will crash the machine. The I/O ROM ($D000) must also be switched in. Freeze points can be set only from the Freeze Monitor. You can directly place a freeze instruction (JSR $DFD3) using either Monitor, in which case it will act as a subroutine, calling the Freeze Monitor and returning to the next instruction, or you can call the freezer from a Basic program with SYS 57299. On restart, the program will continue. Remember - if you find that a program will not load when the cartridge is plugged in - switch the computer off and on, and select NORMAL RESET instead of configuring the memory, before loading the program. ********* End of the Project 64 etext of the Action Replay MK VI Professional manual. ********* The Project 64 etext of Frank's A.R. MK VI Pro undocumented commands, by "Frank" Jeno E. Kontros , the Non Stop Cracker. ********* Here some not documented functions of Mk6. FREEZE Menu =========== PARAMETERS (P) -------------- Loads parameter file from disk or tape. If the file begins with "T." - it loads from tape, but if the file begins with "E." - from disk device 8. Example: if your Action Replay ENHANCEMENT DISK in your drive 8, and if you try enter "E.SS" as filename you loads SCENE STEALER prg (this program enables view, find & save freezed characters in memory). You may write some parameter files, if you think able to do this. Please notice, the parameter file not need any memory from your program and Mk6 saves it to hidden (Mk6) memory location for later use (see Z hotkey above). TURBO LINKER (L) ---------------- It reenables different turbos of Mk6 by changing LOAD ($330) and SAVE ($332) vectors. Here some trick if prg crashes after running from FASTLOAD. NORMAL RESET (F1 or CTRL+RESET) then FREEZE, TURBO LINKER, device(8), ANY KEY, RESTART PROGRAM. After this 90% of programs runs well. (Z) --- This key you can't see before you load any parameter file (if you load, you may see after letter Z the name of parameter file (e.g. E.SS). You may restart your parameter file without reloading it. NOTE: Did you know how to hack GEOS v1.3 and higher with Mk6? Its simple! Boot GEOS & start its CONFIGURE program. Turn all drives offs. Now FREEZE, BACKUP & SAVE. You have a working FREEZED copy of GEOS. UTILITIES Menu ============== NOVA TRANSFER TO DISK --------------------- This not function on Mk6. Its now on Action Replay PARAMETER disk. FASTLOAD turbos & interfaces ============================ The FASTSAVE & DISKCOPY uses interleave 8. The WARP*25 uses interleave 2. The WARP*25 files approx. 6% longer than normal files, because in one each contain 240 bytes (instead of 254). Disk containing WARP*25 files can't copied by normal DISKCOPY because WARP blocks marked with ERROR 23. The CENTRONICS interface emulates channel 4 & 5 serial printers. If you have both serial & centronics printers the first have higher prior (use ONLINE of printers if necessary). Without secondary addr your printer emulates MPS801 characters. But with secondary address 9 on CENTRONICS, you opens transparent (native) mode of your printer. FASTLOAD & TOOLKIT ================== FASTLOAD commands ----------------- %filename - loads program as LOAD"filename",x,1:RUN ^filename - loads program as LOAD"filename",x:RUN (bug in Mk's manual) If your filename in save was "*" now your program saved as unnamed (you may not load it, but scratch it). The x means actual device. Floppy commands --------------- @=8 or @=9 - changes internal device number of actual device @H:diskname,id - you may see changes after @I (bug in Mk7) @R*=filename - makes your file unnamed @S:filename - deletes your WARP*25 file too (you not need specify it with ,W) Different number notations under TOOLKIT ---------------------------------------- You may convert numbers in range of floating point number of BASIC. Try: ? $4E65DF,%101010101111110100110101010,&343245325254124 TOOLKIT commands ---------------- @K+ or @K- Turns on/off FREEZE TURBO. FREEZE TURBO (by name) used automatically after FREEZE. Slower as normal DISK TURBO, but don't blank screen and works in all memory (TOOLKIT default:off). Never turn on DISK TURBO in freeze mode (it kills your prg area $0000-$09FF). The TOOLKIT command OFF turns off this turbo too. @P"text"[:]code[;]... Prints a text or control code (0-65535) in low-high order. Colon and semicolon may be used as seperators. @PLF Turns off/on auto line feed for printer (default:off). CBM Dummy command (for future extensions). In early Mk-s it was ZAP command, which RESET-s computer. MONITOR commands ================ Before numbers the "+" prefix means decimal numbers (0-255). You may also use words, if you enter two "+" prefixed numbers in High/Low order. In commands "-" sign after first address means that command must work til it memory ends ($FFFF). * Turns between RAM and ROM configurations (the prompt always indicates actual mode). In FREEZE you have doubled another memory area: $0000-$09FF. In this mode normal prompt indicates your program area and revers prompt the Mk6 work area. @BR xx yy zz and @BR xx yy zz In FREEZE you may view/modify diskblocks without any loose of your program in memory if you turns mode * and use addr of buffer (zz) $09 ($0900). @P or @MP or @BP Functions as @P in TOOLKIT. B You may use all different number notations and BASIC commands but nor any TOOLKIT commands. Only first command recognizes. S "filename",d,xxxx,yyyy,zzzz If you want save $FFFF addr too, you must enter for yyyy the addr $0000. Never try to access location $DE00-$DEFF, because internal configuration register latch up by any read or write command. --------------------------------- Some bugs noticed and fixed by me ================================= 1. In automatic line numbering mode after line numbers now you may see space. 2. Fixed @H bug. 3. Some function key layout & script changed. 4. After FREEZE+RESTART channel 3 of SID always disabled (now enabled). 5. Added feature SHIFT+RUN in FASTLOAD: LOADS & RUNS program. 6. Upgraded the ROM with 32k (on hacked version of Mk6). Now it contains menu driven user defined programs called within TOOLKIT command CBM (like TURBO-ASS, RE-ASS, SUPERCRUNCH, CRUELCRUNCH, etc.). ------------------ Interesting BUG??? ------------------ Do you know why Action Replays don't work with SuperCPU turbo mode? Not? I find some (LDT $0000,y ($BF) illegal opcode at offset addr $0F5C of Mk's EPROM). Probably thats why! If you have any questions about Mk-s, upgrades, schematic, ROM images, memory maps, etc., please don't hesitate, contact me, Frank Kontros (The Non Stop Cracker), E-mail:jeno@kontr.uzhgorod.ua ********* End of the Project 64 etext of Frank's A.R. MK VI Pro undocumented commands. ********* The Project 64 etext of the Action Replay MK VI Professional manual with undocumented commands. *********