The Final Replay
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 192.168.8.1 you should set the IP of the C64 to 192.168.8.64.
Use the SETIP.EXE tool to set the IP inside the ROM. Linux users will have to compile the setip.cpp file.
SETIP 192.168.0.64 192.168.0.1 (This will set the C64 IP to 192.168.0.64 and the IP of the PC to 192.168.0.1)
- Pre-defined function-keys
- BASIC extensions
- Network device
- Machine language monitor
- Network server for data transfer (CodeNet)
- 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.
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.
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.
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
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
$123456 - convert hexadecimal number $123456 to decimal 1193046
- 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
£ - 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).
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 192.168.8.64:
CODENET -w test.prg -n 192.168.8.64
- Filling the memory from $1000 to $3FFF with $C0(default IP address 192.168.1.64 used):
CODENET -f $1000 $4000 $C0
- Jumping to address $2000 in C64 memory (default IP address 192.168.1.64 used):
CODENET -e $2000
- Executing a PRG file with RUN (default IP address 192.168.1.64 used):
- Sending the file "test.prg" to a C64 and executing it (default IP address 192.168.1.64 used):
CODENET -x test.prg
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.
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.
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.
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.
Fixed: Monitor now works again.
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.
Fixed: SETIP now also has effect on CodeNet and not only NetDrive.