Well, currently it's compatible with TFE which also uses the CS8900A chip. The only difference between TFE/64Net and RR-net AFAIK is the fact that the upper/lower half of the registers are swapped on RR-net because of the RR registers at $de00/01. Hence, it's only a matter of changing a few bytes to make your programs work. Note how TFE/64Net has the "correct" register mapping according to the CS8900A specs, while RR-net's registers are swapped:
Code:
RR-net:
rxtxreg = $de08
txcmd = $de0c
txlen = $de0e
packetpp = $de02
ppdata = $de04
TFE/64Net:
rxtxreg = $de00
txcmd = $de04
txlen = $de06
packetpp = $de0a
ppdata = $de0c
In other words the difference for RR-net registers low byte could be expressed as something like
rr-net_reg = (original_reg+8) AND 15. I'm sure it's possible to figure out some fast and clever code to write a "combined" driver by using indirect instructions and pointers. But essentially, all you need is the above register definitions to be able to compile your programs for RR-net or TFE/64Net.
Also, care has to be taken to the fact that since TFE/64Net registers begin at $de00 where RR registers are located, all RR related code should be omitted when running/compiling under TFE/64Net.