Action Replay MK6 Manual Project64.txt

From ReplayResources
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Action Replay MK6 Manual

text included from Project64

Please check the text for credits!


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

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.



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.


1.1  Installing the Cartridge
1.2  The Reset Button
1.3  The Freeze Button
1.4  The Startup Menu

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.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.1  How to Enter Pokes
4.2  The Pokefinder General

5.1  Formatting a Disk
5.2  The Disk Filecopier
5.3  The Whole Disk Copier

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.1  Command Summary
7.2  Description of Commands
7.3  Disk Monitor Functions
7.4  Freeze & Break Points



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.


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'.


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'


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.


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


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).


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.


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.


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.


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.


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.


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.



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.


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.



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.


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

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.


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).


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

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.


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

Users  of  the  STAR  NL10  with CBM serial interface can use the
Epson numbers to give a higher density output.


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

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.



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.


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

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

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.


The Utilities Menu is accessed from the Startup Menu. Some of the
utilities can also be called from Fastload (see Section 6).


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.


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.


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

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.



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).


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:


NOTE: Warp*25  does  NOT  work with the 1581 or 1571 in two sided

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.


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.


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


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


To  make  your programming life easier, a number of single stroke
commands are available from Fastload:


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
F6 goto Freeze Menu just as if you had pressed the freeze button.
F8 enter the Machine Code Monitor (see Section 7)


/PROGNAME equivalent to LOAD "PROGNAME",8,1
^PROGNAME equivalent to LOAD "PROGNAME",8 & RUN
&PROGNAME equivalent to VERIFY "PROGNAME",8,1
{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.


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.


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.


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

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

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.


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).


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


When printing is complete enter


To  send  special  printer  codes and untranslated characters you
need  to  open  a  special channel (secondary channel 9). Here is
an example:


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.



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.


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.


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.


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

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

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

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

.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

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.

.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

.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.

.BPRINT 8*256

12)  LOAD, SAVE & VERIFY.  E.g.:
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.

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


You  can  use  the  Monitor  to  access  drive memory with the @*

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.


@ME (address) - executes a program in drive memory.

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.


>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 <RETURN>
entering the line gives: .> C002 20 D3 DF JSR $DFD3
enter:                   .G C000 <RETURN>

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


The Project 64 etext of Frank's A.R. MK VI Pro undocumented commands,
by "Frank" Jeno E. Kontros <>, the Non Stop


Here some not documented functions of Mk6.


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).

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
90% of programs runs well.

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


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 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

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.

? $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.

Prints  a  text  or  control  code  (0-65535)  in  low-high  order.
Colon and semicolon may be used as seperators.

Turns off/on auto line feed for printer (default:off).

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

@P or @MP or @BP
Functions as @P in TOOLKIT.

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

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
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
   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),


End of the Project 64 etext of Frank's A.R. MK VI Pro undocumented


The Project 64 etext of the Action Replay MK VI Professional manual
with undocumented commands.