From IndividualComputers
Jump to: navigation, search
RR-Net MK2
RR-Net MK3 in C64
RR-Net MK3 on Chameleon
RR-Net MK3 on Retro Replay
RR-Net MK3 on MMC Replay
RR-Net MK3 on MMC64
RR-Net MK3 on Nordic Replay



RR-Net is a 10MBit networking card that is designed for the commodore C64, for use on the Retro Replay freezer cartridge or the MMC64 cartridge.

  • RR-Net MK2

A second version with a different mechanical shape but full software compatibility was designed for the MMC Replay and also perfectly fits the Chameleon cartridge.

  • RR-Net MK3

With RR-Net MK3, we're answering the calls from many C64 users who wanted Ethernet, but refused to buy a "carrier card" that features the clockport that was previously required for operating one of the predecessor models (for example Retro Replay, MMC64, MMC Replay or Chameleon). The result of this new development is that the new design can be used in two ways: You can either connect it to the clockport of a carrier-card (exactly the same way like the predecessor RR-Net MK2), or you can plug it directly to the expansion port of the C64.

One added feature of this new design is the 8k flash rom. This is used as a startup-ROM if the unit is plugged directly to a C64. The startup code will initialize the MAC address and also contains a codenet server, which solves the "chicken and egg" problem and makes transferring disks very easy.

If you plug RR-Net MK3 to the clockport of a "carrier card", only a few bytes of the ROM are available - just enough to store the MAC address of the unit, and put an end to the constant guessing that you had to do with the predecessor models.

Using the RR-Net MK3 directly as a cartridge without a carrier card does not work with SX-64 and very old C64 mainboard versions.

Both versions will also work on the Amiga with a clock-port, but it is not recommended: RR-Net does not support IRQs, and it hardly fits mechanically. If you need network for your Amiga, use an X-Surf board.


Register mapping

The register mapping depends on the place where RR-Net is connected. The standard location for the clockport on the C64 is $de00, which is what most software expects and what is used in the tables below. Note that on MMC64 the clockport may be relocated.

Although RR-Net is designed for the C64, we're also providing the offset addresses for the Amiga. Check the corresponding hardware documentations for the carrier cards to obtain the base addresses of the clockport.

RR-Net is based on the Cirrus logic CS8900a (Crystal LAN). The chip is used in 8-bit mode, so the 8 registers of an NE2000 are spread over 16 registers in an 8-bit system. The 8-bit mode of the chip does not support IRQs (see Cirrus logic application note AN181).

When RR-Net is connected to the clockport of a "carrier card", do not forget to enable the clockport (by setting bit 0 in $de01 on Retro Replay), see MMC64, MMC Replay or Chameleon for more information.

RR-Net CS8900a registers
C64 register Amiga offset read/write? meaning
n/a $00/$04 read-only interrupt status queue (*)
$de02/$de03 $08/$0c read/write PacketPage pointer
$de04/$de05 $10/$14 read/write PacketPage Data (Port 0)
$de06/$de07 $18/$1c read/write PacketPage Data (Port 1)
$de08/$de09 $20/$24 read/write Receive/Transmit Data (Port 0)
$de0a/$de0b $28/$2c read/write Receive/Transmit Data (Port 1)
$de0c/$de0d $30/$34 write-only TxCMD (Transmit Command)
$de0e/$de0f $38/$3c write-only TxLength (Transmit Length)

(all 16bit register pairs appear as little endian, ie the low byte first, then the high byte)

(*) Although the Amiga makes the interrupt status queue registers available, it does not have any effect. Even if you try to activate the chip's IRQ features, it will not have any effect. The IRQ line of the chip is not wired on RR-Net at all!

If you compare this register map to the register map in AN181, you might notice that the first and the second half of the register set is swapped. This has been done because the accessory connector of the Retro Replay does not provide the full range of registers available on the Amiga clockport. The first two bytes are control registers of the freezer cartridge, and this swapping moves the unnecessary register-pair (IRQ status queue) into the "invisible" area of the cartridge.

MK3 Cartridge ROM

When the RR-Net MK3 is used in cartridge mode, the eeprom will serve as a regular 8k ROM cartridge.

RR-Net MK3 ROM enable
C64 register read/write? meaning
$de80 write-only ROM_ENABLE write any value to enable ROM
$de88 write-only ROM_DISABLE write any value to disable ROM

When the ROM is enabled, it is mapped to $8000 (ROML) using ultimax mode when reading. that means it works slightly different to a regular 8k game cartridge, in particular the ROM can not be disabled using $01, so to read from the RAM at the same address you will have to disable the ROM via de88.

When the flash jumper is used, the ROM will be disabled after a reset, and writing to the ROM is possible after enabling it via de80 (see datasheet) in flash mode writes go only to the ROM, not to the RAM at the same address as it happens with regular game cartridges.


MAC address

RR-Net and RR-Net MK2 do not have an EEprom to store the MAC address, so it should be stored somewhere else: The flash rom of Retro Replay, MMC Replay, Chameleon, the disk of the Contiki operating system by Adam Dunkels, or Kickflash OS4 for the Amiga. As a valid default value 28:CD:4C:FF:FB:FF was reserved in Individual Computers range.

RR-Net MK3 comes with a unique MAC address stored on its eeprom. Also when it is used as a cartridge, the MAC address will get initialized by the startup code.

Detecting MK3

If the RR-Net MK3 is connected to a clockport, then the last 4 bytes of the eeprom are visible by reading the last 4, normally write-only, registers as in this table:

C64 register Amiga offset read/write? meaning
$de0c $30 read-only MAC_HI second last byte of MAC address
$de0d $34 read-only MAC_LO last byte of MAC address
$de0e $38 read-only CHKSUM0 MAC_HI ^ MAC_LO ^ $55
$de0f $3c read-only CHKSUM1 (MAC_HI + MAC_LO + CHKSUM0) ^ $aa

When both checksums match, the CS8900a should be initialized to use the MAC Address 28:CD:4C:FF:<HI>:<LO>. Else use a user defined/saved value, you may use 28:CD:4C:FF:FB:FF as default.

Calculating the checksum

 ; calculate the checksum used for the MAC address
 ; in: 
 ;       A/X  MAC_LO/MAC_HI (last/second last byte of MAC address)
 ; out:
 ;       A = CHKSUM0 = MAC_HI ^ MAC_LO ^ $55
 ;       X = CHKSUM1 = (MAC_HI + MAC_LO + CHKSUM0) ^ $aa

 chksumtmp = $02 ; two bytes used

        .export rrnet_chksum

        sta chksumtmp   ; MAC_LO
        stx chksumtmp+1 ; MAC_HI

        eor chksumtmp+1 ; MAC_HI ^ MAC_LO
        eor #$55        ;  ^ $55
        pha             ; == CHKSUM0

        adc chksumtmp   ; + MAC_LO
        adc chksumtmp+1 ; + MAC_HI
        eor #$aa        ;  ^ $aa
        tax             ; == CHKSUM1 

        pla             ; CHKSUM0

Reset pullup modification

RR-Net MK2 needs an additional 10KOhm pullup resistor at !RESET and !IRQ to work on the Chameleon in standalone mode. (RR-Net MK3 has that already)

Networking software supporting RR-Net

The following programs are not products from Individual Computers. Please understand that we can't give any further support for this software.

C64 Libraries

  • ip65 is a TCP/IP stack for 6502 based computers.

C64 Tools

  • setmac by devia - a simple tool to set the MAC address for those users that do not use a ROM that already does that (not required when using the chameleon, or the final replay ROM)
  • The Final Replay by Oxyron - alternative ROM Image for Retro Replay, MMC Replay that includes a Codenet server.
  • Contiki operating system by Adam Dunkels - This download page lets you configure the IP address, subnet mask, gateway and DNS server addresses before you download.
  • geoLink features the IP65 TCP/IP stack for Rrnet for Geos. It also implements a small chat client.
  • GuruTerm is a Telnet terminal for RR-Net. It requires The Final Replay ROM in a Retro Replay, Nordic Replay, MMC Replay or Chameleon to work.
  • HTTP-Load can load files from HTTP servers.
  • netboot65 is a suite of several networking tools including booting from TFTP, SID player, web application server and terminal functions (Kipperterm).
  • Singular Browser - a graphical web browser for the C64/C128

C64 Games


  • Codenet client
  • Warpcopy64 - a lightning fast D64 transfer solution
  • 0xPaint V1.2 - This paint program runs on a PC and lets you transfer files using CodeNet. This allows you to view your work on a real C64 without the need to transfer it to a disk firs.
  • 64net/2 for RR-Net (German only). This new version of 64net/2 allows connecting more than one C64 to a PC fileserver for transferring files and video streaming.
  • Arc64 V2.3 - This tool deals with D64, T64, LNX and ZipCode archives. You can add, extract and run files from a D64 archive and send them through Codenet to the C64.
  • Diskimagery64 - This is a portable drag&drop D64 Disk Image Editod for Mac OS X, Linux and Windows. Network support: Download programs or share disk images as NetDrives with a single click to a real C64 with RR-Net and The Final Repaly ROM. This program includes full WarpCopy support.
  • MWC by Jockstrap is a linux command line warpcopy client
  • netmon by Hannenz is a debug stub and client implementing a couple of traditional "ml monitor" features.
  • UDPSlave - UDPSlave is a transfer utility that lets you send over PRG files from a PC (or Mac, or Unix box) to a C64 with an RR-Net interface. The main features are that the program is small enough to be typed in, and doesn't require anything except a cartridge with a clockport and RR-Net.

Physical Dimensions

The relative positions of the clockport, indicator LEDs and RJ45 connector are the same at the MK2 and MK3.




Please shop locally. Our partners are listed in alphabetical order.

Personal tools