The Final Replay: Difference between revisions
Count Zero (talk | contribs) |
Count Zero (talk | contribs) mNo edit summary |
||
Line 9: | Line 9: | ||
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. | 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 == | == 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. | 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 == | == Setting an IP address == | ||
Line 20: | Line 22: | ||
Use the SETIP.EXE tool to set the IP inside the ROM. Linux users will have to compile the setip.cpp file. | 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) | |||
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) | |||
== Features == | == Features == | ||
Line 33: | Line 34: | ||
* [[The Final Replay#ML Monitor|Machine language monitor]] | * [[The Final Replay#ML Monitor|Machine language monitor]] | ||
* [[The Final Replay#Network server CodeNet|Network server for data transfer (CodeNet)]] | * [[The Final Replay#Network server CodeNet|Network server for data transfer (CodeNet)]] | ||
== BASIC extensions == | == BASIC extensions == | ||
Line 48: | Line 50: | ||
* SETIP - Temporarily change the IP address. | * SETIP - Temporarily change the IP address. | ||
* INFO - Show information about hardware and network addresses. | * INFO - Show information about hardware and network addresses. | ||
== Network drive == | == Network drive == | ||
Line 64: | Line 67: | ||
You can also enter D64 files as subdirectory, but currently only read access is allowed. | 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. | Currently no other DOS commands are supported. No deleting of files, no renaming of files and no formatting of disks. | ||
== ML Monitor == | == 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. | 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 === | === Monitor commands === | ||
M 200 300 - hex-dump memory from $0200 to $0300 | |||
M 200 300 - hex-dump memory from $0200 to $0300 | I 200 300 - PETSCII-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 | ||
EC 200 300 - char-dump memory from $0200 to $0300 | ES 200 300 - sprite-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 | ||
D 200 300 - disassemble memory from $0200 to $0300 | A C000 LDA #$66 - assemble LDA #$66 to $C000 | ||
A C000 LDA #$66 - assemble LDA #$66 to $C000 | G 2000 - execute program at address $2000 | ||
G 2000 - execute program at address $2000 | X - leave monitor | ||
X - leave monitor | F 3000 3800 AE - fill memory from $3000-$37FF with $AE | ||
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 | ||
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 | ||
T 1000 2000 8080 - transfer memory from $1000-$1FFF to $8080 | |||
=== Memory banking === | === Memory banking === | ||
O7 - enable BASIC ROM, Kernal ROM and I/O access | |||
O7 - enable BASIC ROM, Kernal ROM and I/O access | O0 - enable full C64 RAM access: | ||
O0 - enable full C64 RAM access: | OD - drive memory access | ||
OD - drive memory access | O9 - drive memory access for drive 9 | ||
O9 - drive memory access for drive 9 | OV - VDC RAM access (C128 only) | ||
OV - VDC RAM access (C128 only) | OW - VDC register 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 === | === Number conversion === | ||
$123456 - convert hexadecimal number $123456 to decimal 1193046 | $123456 - convert hexadecimal number $123456 to decimal 1193046 | ||
#12345678 - convert adecimal number 12345678 to hexadecimal $BC614E | #12345678 - convert adecimal number 12345678 to hexadecimal $BC614E | ||
=== Disk access/Drive access === | === Disk access/Drive access === | ||
*R 12 5 C0 - read disk sector 18,5 to memory at $C000 | *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 | *W 1 4 10 - write disk sector 1,4 from memory at $1000 | ||
Line 119: | Line 117: | ||
@9 - change active device number to 9 | @9 - change active device number to 9 | ||
@$ - show directory | @$ - show directory | ||
=== Illegal opcodes === | === Illegal opcodes === | ||
£ - turn on/off illegal opcodes | £ - turn on/off illegal opcodes | ||
=== Different number formats === | === Different number formats === | ||
Line 131: | Line 128: | ||
The monitor allows binary, decimal and hexadecimal numbers as addresses and arguments: | The monitor allows binary, decimal and hexadecimal numbers as addresses and arguments: | ||
LDA #%10110101 | LDA #%10110101 | ||
LDX #0 | LDX #0 | ||
Line 138: | Line 134: | ||
INX | INX | ||
BNE *-7 | BNE *-7 | ||
=== Scrolling === | === Scrolling === | ||
Scrolling through memory is possible in upwards and downwards direction by either using the cursor keys or via F3 and F5. | Scrolling through memory is possible in upwards and downwards direction by either using the cursor keys or via F3 and F5. | ||
== Network server "CodeNet" == | == 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'' 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 === | === CodeNet Description === | ||
Line 177: | Line 175: | ||
CODENET -x test.prg | CODENET -x test.prg | ||
== History == | == History == | ||
=== V0.1 (9.5.05) === | === V0.1 (9.5.05) === |
Revision as of 18:25, 17 September 2010
The Final Replay Manual
text included from the The Final Replay Homepage courtesy of John Selck (Graham).
Introduction
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)
Features
- Fastloader
- Pre-defined function-keys
- BASIC extensions
- Freezer
- Network device
- Machine language monitor
- Network server for data transfer (CodeNet)
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
- 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
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 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):
CODENET -r
- Sending the file "test.prg" to a C64 and executing it (default IP address 192.168.1.64 used):
CODENET -x test.prg
History
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.