The Final Replay

From ReplayResources
Jump to navigationJump to search
Final Replay Homepage Image.jpg

The Final Replay Manual

text included from the The Final Replay Homepage courtesy of John Selck (Graham).


The Final Replay is a new ROM image to be used with the Retro Replay cartridge and the RR-Net ethernet adapter. This ROM is an attempt to combine the advantages of the two major cartridges for the C64, the FC3 and AR6 and bring it to the Retro Replay. Unlike the existing Retro Replay ROM this cartridge does not build upon older cartridge ROM's but is written from scratch.

Flashing the ROM

The ROM itself can be flashed with the Flash Utility V3.8p. Please keep in mind that the network settings stored inside this ROM have to be modified before flashing. Read on to learn more.

Setting an IP address

Since the ROM has a server for data transfer inside, you need to set an IP address which is useable in your LAN. If your PC has an IP of you should set the IP of the C64 to

Use the SETIP.EXE tool to set the IP inside the ROM. Linux users will have to compile the setip.cpp file (using g++ setip.cpp).

SETIP (This will set the C64 IP to and the IP of the PC to

NEW: ReplayConfig supports setting up The Final Replay as well.


BASIC extensions

  • DLOAD - Load files from disk.
  • DSAVE - Save files to disk.
  • DOS - Send DOS command to drive, change device number or display disk directory.
  • FLUSH - Clear entire memory.
  • KILL - Disable cartridge.
  • OLD - Make BASIC programs available again.
  • MONITOR - Enter Machine language monitor.
  • CODENET - Enter CodeNet server.
  • $ - Hexadecimal numbers.
  • NET - Redirect all Kernal calls to network drive.
  • SETIP - Temporarily change the IP address.
  • INFO - Show information about hardware and network addresses.

Network drive

The network device which comes with the TFR is accessible via device number 6. It can be used to access a directory tree on a PC with the server running. To use it, enter DOS"6" to change the device number to 6 or enter NET to redirect other device numbers to the network drive.

Before you can access the PC Harddisk, you need to start the Network Drive server. It is required to set a root path via the command line parameters. Example:

NETDRIVE -r "D:/c64/archive/d64/"

It is not possible to access any files outside this root path, so your other files are safe.

You may enter subdirectories via sending a DOS command: DOS"CD:(dirname)" You can also enter D64 files as subdirectory, but currently only read access is allowed. Currently no other DOS commands are supported. No deleting of files, no renaming of files and no formatting of disks.

ML Monitor

An important feature of most cartridges was their machine language monitor. Also this cartridge comes with one which is similar the the FC3 monitor. It is activated by entering the MONITOR command which is also available on the F2 key.

Monitor commands

M 200 300 - hex-dump memory from $0200 to $0300
I 200 300 - PETSCII-dump memory from $0200 to $0300
EC 200 300 - char-dump memory from $0200 to $0300
ES 200 300 - sprite-dump memory from $0200 to $0300
D 200 300 - disassemble memory from $0200 to $0300
A C000 LDA #$66 - assemble LDA #$66 to $C000
G 2000 - execute program at address $2000
X - leave monitor
F 3000 3800 AE - fill memory from $3000-$37FF with $AE
F 3000 3800 1 0 2 - fill memory from $3000-$37FF with pattern $01,$00,$02
T 1000 2000 8080 - transfer memory from $1000-$1FFF to $8080

Memory banking

O7 - enable BASIC ROM, Kernal ROM and I/O access
O0 - enable full C64 RAM access: 
OD - drive memory access
O9 - drive memory access for drive 9
OV - VDC RAM access (C128 only)
OW - VDC register access (C128 only)

Almost all monitor commands refer to the currently selected memory. One exception is the G command which always refers to the C64 CPU and the T command which allows redirection of the target. Example:

T 1000 1200 D:400 - will transfer the memory from $1000 to $11FF to drive memory location $0400

Number conversion

$123456 - convert hexadecimal number $123456 to decimal 1193046

  1. 12345678 - convert adecimal number 12345678 to hexadecimal $BC614E

Disk access/Drive access

  • R 12 5 C0 - read disk sector 18,5 to memory at $C000
  • W 1 4 10 - write disk sector 1,4 from memory at $1000
  • E 400 - execute program in drive memory at $0400

@I - send DOS command "I" to active drive @9 - change active device number to 9 @$ - show directory

Illegal opcodes

£ - turn on/off illegal opcodes

Different number formats

The monitor allows binary, decimal and hexadecimal numbers as addresses and arguments:

LDA #%10110101 LDX #0 STA 400,X STA &49152,X INX BNE *-7


Scrolling through memory is possible in upwards and downwards direction by either using the cursor keys or via F3 and F5.

Network server CodeNet

CodeNet is a special transfer server which allows sending of binary data or program files directly into the C64 memory and sending of an execute command. You can use it for easy cross assembling. The server is started by entering the CODENET command (available on the F6 key).

CodeNet Description

The Final Replay comes with a network server dedicated to cross assembling and remote program execution. It is started upon entering the "CODENET" command which is also preset on the F6 key. The server is used from a remote Windows or Linux PC only via the CodeNet client. It can be used to transfer PRG files directly into the memory of the C64 and also allows some other actions like filling memory and ofcourse starting a program with RUN or a jump to a defined memory address.

  • Sending the file "test.prg" to a C64 with the network address
CODENET -w test.prg -n

  • Filling the memory from $1000 to $3FFF with $C0(default IP address used):
CODENET -f $1000 $4000 $C0

  • Jumping to address $2000 in C64 memory (default IP address used):
CODENET -e $2000

  • Executing a PRG file with RUN (default IP address used):

  • Sending the file "test.prg" to a C64 and executing it (default IP address used):
CODENET -x test.prg

CodeNet Protocol Documentation


Final Replay

V0.1 (9.5.05)

Initial release

V0.2 (17.5.05)

Fixed: Startup message now should work with modified Kernal (i.e. SpeedDOS).
Fixed: RUN/STOP-RESTORE doesn't crash monitor anymore.
Fixed: Programs executed from the monitor now get a valid return address for RTS.
Fixed: *W monitor command repaired.
Added: *R and *W now display error channel.
Added: *E monitor command added.
Added: Smart fast format available through dos command "F:".
Changed: Increased maximum receive buffer size for CodeNet from 128 to 150 Bytes.

V0.3 (12.12.05)

Fixed: BASIC lines starting with ':' will no longer produce a syntax error.
Fixed: Monitor memory access improved and bugfixed ($0800-$08FF now is handled correctly).
Added: Network device introduced.

V0.4 (21.12.05)

Fixed: Deadlock on access of non available IP removed.
Fixed: RUN/STOP + RESTORE during network access now works.
Added: FLUSH command now supports an integer argument to clear memory with non zero values.
Added: NET command to redirect Kernal calls to network drive.

V0.5 (1.2.06)

Fixed: Incompability of the CHKIN routine now gone. WarpCopy file access should work again.
Fixed: Instability of freezing in BASIC editor fixed.
Fixed: Kernal replacements now enforce BASIC ROM, so more programs should work with them now.
Added: Netdrive driver for GETIN Kernal routine.

V0.6 (2.2.06)

Fixed: Monitor now works again.

V0.7 (29.3.07)

Fixed: Fast format available again.
Fixed: Removed a possible crash in the DOS command.
Fixed: Monitor can now save RAM below $A000-$BFFF ROM.
Added: New BASIC command SETIP to change IP address.
Added: New DOS"D:(header),(id)" command to change disk header.
Added: INFO command now shows network addresses and number of rasterlines.

V0.8 (30.3.07)

Fixed: SETIP now also has effect on CodeNet and not only NetDrive.


V0.4 (16.5.11)

Fixed: Timeout handling didn't work.

V0.3 (6.11.10)

Added: Better network error handling.

V0.2 (17.5.05)

Maintenance release

V0.1 (9.5.05)

Initial release