This Page contains some info mostly valuable for developers and maybe some interested
betatesters. Please notice that all files on this page are considered being heavily
"beta" - If you want something that is complete, tested and works 100% as expected, wait for v1.0 :=P
This Page is also contained in the release packages for everyone to have a look
at what the fuzz is all about ;=) The same is also true for all files linked from this page, so there
really is no need to download them separately.
what is it ?!
The RR Toolchain is an universal Crosslink-Environment with built-in debugging-, fileserver- and
One common use of such a program is to let programmers upload data to the memory of the target, to
let him inspect, modify, execute it etc. This is usually referred to as cross-developing, -linking, -debugging.
The second most common use is probably to put it into fileserver mode and access files on the host from the
target, either by using a special code-library on the target or by patching the targets kernel i/o in a way
that usual disc (or whatever media) access goes to the fileserver. This is sometimes referred to as "hard
additionally the RR Toolchain comes with a handful of little tools that may make life a little easier;
a disassembler, an editor and assembler-driver as well as some small scripts as examples on further
capabilities of the RR Toolchain.
: the target is the computer you develop software FOR, usually a small
microcomputer, game-console or prototyping board.
: the host is the machine you use to develop software for the target. If
the host is the same as the target, we are talking about native development. If host
and target are different it is referred to as cross-development, and this what this
page is all about.
- someone who implements silversurfer_polling.s
equivalent routines for swithlink/turbo232 or normal kernal rs232.
Contents of this Page
Info related to the RR Host Software:
Info related to the RR Target Software:
- the debug stub
The debug-stub is a little program that runs on the target, waiting for
commands received from the host. In other words, for any of the remote-
functionality to work, the debug-stub must be running.
- the generic debug library
The generic debug library (written in Ansi-C) consists of a generic debug-stub as well as
a good bunch of functions for using the generic console-fileserver.
Any standard-compliant compiler should be able to translate this
code, for the c64 i am using cc65.
To use this library, the host should be running RR in console-mode with
the fileserver switched to "generic" mode.
please notice: i am busy working on cleaning up this code (among a dozen
other things) so please be patient... library and sources will be there when they are
- "debuglibtest" debugtest.c
generic debug-library test program.
- third party applications
look below for a list of useful stuff.
Target specific Software
- "testterminal" rrterminal.s
simpliest terminal loop... use that for connection-testing.
- "termdump" rrdump.s
even simpler, prints received data as hexcode.
The first thing you should do whenever you installed a new version of
the rr toolchain (or for any other reason why you aren't sure that the connection works)
is testing the link using dump terminal mode.
- load "testterminal" on the c64 and run it.
- type rr term on the host-commandline.
now whatever you type on the c64 should show up in the host console, and
vice versa. possible reasons for failure maybe:
- wrong port-setup in rr.ini.
- on a serial connection you aren't using a full null-modem cable. please
notice that cheap 3-wire connections will NOT work.
retro replay rom
08.01.2006 3.8b (Pal)
patched by Hannenz.
Using the debug-stub
development version of the native c64 debug stub, jump to $ce00 for quick test
or transfer or periodically call $ce03 from within your own code. - this
will be fully integrated into the Retro Replay Rom in the future.
batchfile/shellscript for testing general functionality.
- load "debugstub$ce00" on the c64 and start it at $ce00, the
c64 is now ready to receive commands from the rr toolchain.
- to test your setup (and demonstrate functionality)
type rrtest-target on the host-commandline. The
test first checks if transfer works without errors, then uses the provided example
batchfiles for showing a koala-picture and playing a sid-tune, and finally starts
- use "debugstub$ce00" and RR in a similar way for any of the
other provided functions.
Some examples on how to abuse the rr toolchain program for different purposes.
- <=>rrkoa.bat rrkoa
batchfile/shellscript that shows a koala pic on the c64 with just the help of the
- <=>rrsid.bat rrsid
batchfile/shellscript that plays a sidtune on the c64.
source of the little sidplay helper program.
Target Hardware Information
Info related to the Retro Replay Cartridge
technical specification of the Retro-Replay Hardware, written by Jens Schoenfeld.
Info related to the SilverSurfer serial interface:
additional Hardware Information
Info related to NULLMODEM / RS232 Cables
3rd party applications supported by the rr toolchain
Retro-Replay Flash-Tool (by Countzero)
The Flashtool has an option to update the eeprom via the serial cable. To use
this feature proceed the same way as if flashing from disc, except in the final step
you first choose "flash from silversurfer" in the mainmenu, and then type rr
on the host commandline.
08.01.2006 Flash-Util 3.8p
patched by Hannenz.
another attempt to implement a fileserver via a serial line. the rr console
supports most of its basic functionality, but not all. (in other words,
you can use c64 programs written for the serial slave, to do this you
have to be in console mode and the fileserver set to "serialslave")
cc65 suite (by Ullrich von Bassewitz)
this is a full featured cross-development suite, ranging from a
powerful assembler to an almost fully ansi-c compatible c-compiler. full
support of debug information, possibly also sourcelevel debugging is
planned for a later revision of the debugger.
beta-releases will be available as dos-, win32-, or i86-linux executables
depending on my current workflow. once the code is more stabilized it should
be no problem to compile all these versions in one go.
Ports to several other operating-systems (such as amiga-os, and
mac-os, maybe risc-os) are planned, but scheduled to a (much) later date - don't bother
complaining yet :o)
Also please notice that all public releases of the rr toolchain have support
for targets other than the C64 disabled for now.
current development version:
(core files) 23.06.2005
(i86 linux binaries) 23.06.2005
(amd64 linux binaries) 23.06.2005
(win32 binaries) 23.06.2005
unpack the core files and binaries into the same directory (preserving subdirectories in the zip), then read rrhelp.txt for further instructions.
(please always check if problems didn't occur in previous versions)