ZZ80RC-CF, Enhanced ZZ80RC

Note: ZZ80RC-CF and its close relative ZZ80RC are obsolete because of an asynchronous serial clock bug of Z280. The replacement design is ZZRCC.


ZZ80RC-CF is ZZ80RC with a CF interface. It has the same 100mm x 50mm pc board and remain hobbyist-friendly with through-hole and easy-to-solder surface-mount components.




  • Z280 CPU configured to Z80-compatible mode running at 24MHz with selectable bus speed of 12 MHz or 6 MHz
  • 1/2 megbyte of non-volatile RAM
  • RAM-only system, programs are loaded into the non-volatile RAM in UART-bootstrap mode.
  • CP/M 2.2 and CP/M 3 ready.
  • CF interface supports 4 CF drives
  • One internal UART at 115200 baud, odd parity, no handshake
  • bootstrap to ZZ80Mon, a simple monitor
  • A standalone single-board computer with I/O expansion bus compatible with RC2014 I/O bus

Modes of Operation

ZZ80CF has two modes of operation as determined by the Bootstrap jumper at power up (see picture below for location of bootstrap jumper). Jumper moved to the corner of the board (T11) set the UART bootstrap mode; jumper moved to (T9) set the RAM bootstrap mode.

UART Bootstrap

At power up the Z280 CPU is held in idle state until 256 bytes of instruction is uploaded to UART (115200 baud, odd parity, and no handshake) which is then copied to memory starting from location 0x0. Afterward the CPU starts execution from 0x0. In UART bootstrap mode, the program “LoadnGo.run” is send to the UART. LoadnGo contains a 256 bytes binary file that loads the following ZZ80Mon in Intel Hex format and then jump to the starting address of ZZ80Mon. This is the mode to load programs into the non-volatile RAM prior to booting via the RAM bootstrap mode.

RAM Bootstrap

This is normal mode of operation. At powerup, the MMU is disabled and CPU fetches program from physical location 0 which contains the bootstrap monitor. The bootstrap monitor enables the MMU and write protect physical page 0 where bootstrap monitor resides. It then makes a copy of itself to 0xB000-0xBFFF and jump to it. Lastly the physical page 0 is replaced with logical page 0 which mapped to different physical page. This way the physical page 0 containing the bootstrap monitor is write protected and moved out of way. The application program will have unfettered access to all 64K space of ZZ80.

Design Files

Schematic, the schematic is created using IVEX's WinDraft which is an obsoleted software. Only the PDF file is usable.

Gerber photoplots, the pc board was manufactured by Seeed Studio

Bill of Materials

Engineering Changes, ← no engineering changes so far.

Build log


UART Bootstrap software, LoadnGo.run, loads the 256-byte bootstrap first which, in turn, loads ZZ80CFMon and transfer control to it. If TeraTerm is the terminal software, set the serial port transmission delay to 1 msec/line and check the 'Binary' box in 'Send file…' menu. The transmission delay and checked Binary box are necessary only for loading LoadnGo.run. All subsequent file loads are with zero transmission delay and Binary box unchecked.

SCMonitor is a sophisticated monitor developed by Steve Cousins. It has many features, among them a version of MS BASIC that runs well on ZZ80RC. This version of SCMonitor is compiled for Z280RC but works well in ZZ80RC.

SCMonitor_startrek is SCMonitor with the popular StarTrek BASIC program included. Upload the hex file, then type 'g0000' to run SCMonitor; type 'wbasic' to warm-start the BASIC v4.7b; and 'run' to execute the StarTrek BASIC program

ZZ80CFMon is the bootstrap monitor for ZZ80RC. It has simple commands to load files, edit/display memory, display RAM disk, zero/fill memory, test memory, copy bootstrap to physical page 0, copy CP/M to RAM disk, and boot CP/M. The software is assembled using Zilog ZDS v3.68.

ZZ80CPM22 is CP/M2.2 executable tailored for ZZ80CF. It is loaded into 0xDC00-0xFFFF with ZZ80CFMon. Use 'c2' command to store it in CF disk and use 'b2' command to boot into CP/M2.2. The software is assembled using Zilog ZDS v3.68.

XM is XMODEM file transfer program. This is the very first program created in a new CF disk. Use ZZ80CFMon to upload the XM.HEX into memory, then type 'b2' to boot inot CP/M 2.2. type 'save 18 xm.com' to save the memory content as a file named xm.com. XM.COM is used to load all remaining files into CF disk. The command format is

xm filename /r/x3/z9

CPM22DRI is system files for CP/M2.2. Unzip the file to CPM22DRI.ARJ then use XM to transfer it to CP/M. Once transferred, use unarj.com to decompress the files. CPM22DRI image is created using cpmtools.

CPM3LDR, This is the CP/M 3 Loader. Upload CPM3LDR.hex and type 'c3' to install it in the reserved sectors in CF drive. type 'b3' to boot CP/M 3

CP/M 3 files. These CP/M 3 files do not contain the Y2K patches. Unzip the file to CPM3ALL.ARJ which is an ARJ compressed file. Use XM to transfer it to CP/M and then decompressed into drive A: with “unarj e cpm3all”.

unarj.com. This is the CP/M executable to un-compress cpm22dri.arj and cpm3all.arj files. The command format is

unarj e filename

zz80cf_a.img. This is the drive A image for CP/M2.2 distribution files. It contains the following files:

  • asm.com
  • bios.asm
  • cpm.sys
  • ddt.com
  • deblock.asm
  • diskdef.lib
  • dump.asm
  • dump.com
  • ed.com
  • load.com
  • pip.com
  • stat.com
  • submit.com
  • xsub.com
  • xmodem.com
  • mbasic80.com
  • asciiart.txt

copy the image to a CF disk and insert the CF disk in ZZ80RC-CF. You should find the above files on the disk.

Initialize a new CF disk with TeraTerm Macro

For Windows users using TeraTerm terminal emulation software, this zipped file contains all the programs above and a TeraTerm macro to load the program serially into the CF disk. This is an automated process that takes about 8-10 minutes to run. Unzip the files into c:\teraterm\zz80cf. While in ZZ80 monitor prompt, go to TeraTerm menu “Control→Macro” navigate to c:\teraterm\zz80cf and select “newzz80cf.ttl”. The macro will do a quick test; format drive A/B/C/D; load CP/M2 and CP/M3; copy XM.hex; start CP/M2; save XM.COM; use XM to load CP/M2, CP/M3, Zork; decompress CP/M2, CP/M3, and Zork into drive B, A, D.

Instructions and Manuals

Getting Started guide

ZZ80Mon operating manual

Pictorial assembly instructions


Z280 Preliminary Technical Manual. This 'preliminary' manual is in fact the latest manual available.

builderpages/plasmo/zz80cf.txt · Last modified: 2020/12/09 22:47 by plasmo
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0