Skip to the content
2 layers101.6 × 53.3 mmZ80-cpu mem, the printed circuit board in 3D

RCBus Z80 CPU and Memory Module designed with discrete logic

Size
101.6 × 53.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
108
Pads
318
Tracks, vias
1,514, 78
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
30 Jun 2025
Updated
29 Nov 2025

Overview

Z80-cpu mem is an open-source printed circuit board by skiselev, from the skiselev/Z80-CPM repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 101.6 × 53.3 mm with 32 parts on 108 nets, routed with 1,514 tracks and 78 vias.

It is built around the 74AHCT32D, 74AHCT00D and 74AHCT138D, with the DS1233 among its other parts. Its parts include 11 capacitors, 9 ICs, 1 connector, 1 switch and 1 crystal. It belongs with the retro computing and games boards of this library.

Main components

4

README

README.md

Z80-CPM

RCBus Z80 CPU, 512 KiB SRAM, and 512 KiB Flash ROM module for RCBus systems designed using discrete logic

Table of Content

Overview

Z80-CPM is an RCBus and RC2014* compatible module, designed to run RomWBW firmware including CP/M, ZSDOS, and various applications under these OSes. Z80-CPM combines functionality of the following RC2014* modules on a single module, thus saving space on the backplane:

  • Z80 CPU Module
  • 512k ROM 512k RAM Module - Simplified version, compatible with RomWBW firmware
  • Clock and Reset Module

Minimal CP/M computer system can be built using Z80-CPM module, a backplane, and a serial port module, for example Steve Cousins' SC716 or SC725 Z80 SIO modules, or MC68B50 ACIA. A Compact Flash module can be added for additional storage. For a compact system, a 3-slot SC723 can be used.

Z80-CPM Assembled Board

Specifications

  • Processor: Zilog* Z80 CPU (CMOS version - Z84C00)
  • Memory: 512 KiB SRAM, 512 KiB Flash ROM, RomWBW compatible memory pager
  • Bus: RCBus, RC2014* compatible
  • Microprocessor Supervisor for system reset generation

Assembly Instructions

Please refer to Assembly Instructions document

Hardware Documentation

Schematic and PCB Layout

Memory Configuration Input/Output Ports

Z80-CPM supports up to 512 KiB of RAM and up to 512 KiB of Flash ROM. It has a simple memory bank switching mechanism with two 32 KiB memory banks, inspired by Steve Cousin's SC602 Memory Module. This memory bank mechanism provides minimal required functionality for the RomWBW RCZ80_std.rom image to be used without any modifications. The upper 32 KiB bank is always mapped to the top 32 KiB of the physical RAM. The lower 32 KiB bank can be mapped to any 32 KiB size page in the physical memory. The memory page is selected by writting either 0x78 or 0x79 I/O ports, that are mapped to the same page select register.

0x78 or 0x79 - Memory Page Select Register (Write-only)
PortBit #FunctionValue
0x78, 0x790Not implementedCan be set to either 0 or 1
0x78, 0x795-1Page number for bank #0 0x0000-0xr7FFF0-31 - Page number
0x78, 0x797-6Not implementedShould be set to 0
  • Notes:
    • The register is reset to '0' on power-on or reset, which maps the lower 32 KiB of the Flash ROM to bank #0.
    • Bit 5 selects between the Flash ROM (bit 5 = 0) and the RAM (bit 5 = 1).

Jumpers Settings

JP1 - RAM Size Configuration
Jumper PositionDescription
1-2512 KiB SRAM
2-3128 KiB SRAM
JP2 - Connect on-board oscillator clock to the CPU
Jumper PositionDescription
ClosedX1 oscillator is connected to the CPU
OpenX1 oscillator is not connected to the CPU
JP3 - Connect the RCBus CLK1 signal to the CPU
Jumper PositionDescription
ClosedCLK1 signal is connected to the CPU
OpenCLK1 signal is not connected to the CPU
JP2 and JP3 Configuration Notes

The module supports the following options for the CPU clock:

  1. Default: CPU uses the clock frequency generated by the X1 oscillator, and the X1 clock frequency is output to CLK1 signal on RCBus. Install both JP2 and JP3 for this option.
  2. CPU uses the clock frequency provided by another module on RCBus. Install only JP3 for this option.
  3. CPU uses the clock frequency generated by the X1 oscillator, while other modules use different CLK1 signal. This might be useful, for example, when running the CPU on a frequency other than 7.3728 MHz. Install only JP2 for this option.

Connectors

J1 - RC2014* Bus
PinSignal NameDescriptionPinSignal NameDescription
1A15Address A15; Output41p41Reserved; Not connected
2A14Address A14; Output42/BAIBus Acknowledge In; Not connected
3A13Address A13; Output43/BAOBus Acknowledge Out; Not connected
4A12Address A12; Output44p44Reserved; Not connected
5A11Address A11; Output45p45Reserved; Not connected
6A10Address A10; Output46p46Reserved; Not connected
7A9Address A9; Output47p47Reserved; Not connected
8A8Address A8; Output48p48Reserved; Not connected
9A7Address A7; Output49A23Address A23; Not connected
10A6Address A6; Output50A22Address A22; Not connected
11A5Address A5; Output51A21Address A21; Not connected
12A4Address A4; Output52A20Address A20; Not connected
13A3Address A3; Output53A19Address A19; Output
14A2Address A2; Output54A18Address A18; Output
15A1Address A1; Output55A17Address A17; Output
16A0Address A0; Output56A16Address A16; Output
17GNDGround57GNDGround
18VCCPower Supply - +5V58VCCPower Supply - +5V
19/M1Machine Cycle One; Output59/RFSHDRAM refresh; Output
20/RESETReset; Output60PAGEPage ROM/RAM input; Not connected
21CLK1CPU Clock; Output61CLK2UART Clock; Not connected
22/INTInterrupt; Input62/BUSACKDMA Bus Acknowledge; Output
23/MREQMemory Request; Output63/HALTHalt; Output
24/WRWrite Request; Output64/BUSREQDMA Bus Request; Input
25/RDRead Request; Output65/WAITWait; Input
26/IORQInput/Output Request; Output66/NMINon-maskable Interrupt; Input
27D0Data D0; Input/Output67D8Data D8; Input/Output; Not connected
28D1Data D1; Input/Output68D9Data D9; Input/Output; Not connected
29D2Data D2; Input/Output69D10Data D10; Input/Output; Not connected
30D3Data D3; Input/Output70D11Data D11; Input/Output; Not connected
31D4Data D4; Input/Output71D12Data D12; Input/Output; Not connected
32D5Data D5; Input/Output72D13Data D13; Input/Output; Not connected
33D6Data D6; Input/Output73D14Data D14; Input/Output; Not connected
34D7Data D7; Input/Output74D15Data D15; Input/Output; Not connected
35TXChannel 1, Transmit Data; Not Connected75TX2Channel 2, Transmit Data; Not Connected
36RXChannel 1, Receive Data; Not Connected76RX2Channel 2, Receive Data; Not Connected
37/IRQ1Interrupt Request 1; Not connected77/IRQ2Interrupt Request 2; Not connected
38IEIInterrupt Enable In; Not connected78p78Reserved; Not connected
39IEOInterrupt Enable Out; Not connected79p79Reserved; Not connected
40USER4User Pin 4; Not connected80USER8User Pin 8; Not connected

Bill of Materials

Version 1.0

Mouser projects - All components except of the PCB and the CPU:

  • Z80-CPM project
    • Note that optional CPU supervisor parts: U9 DS1233 CPU supervisor, C11 1 nF capacitor, and SW1 tactile switch are included in this project.

Z80-CPM project on Tindie:

Component typeReferenceDescriptionQuantityPossible sources and notes
PCBZ80-CPM PCB - Version 1.01Buy from my Tindie store: Complete kit; Z80-CPM PCB, or order from a PCB manufacturer of your choice using provided Gerber or KiCad files
Integrated CircuitU1Z84C00xxVEG - Z80 CPU, CMOS, 44 pin PLCC1Mouser 692-Z84C0010VEG
Integrated CircuitU2SST39SF040 - 512 KiB Flash ROM, 32 pin PLCC1Mouser 804-39SF0407CNHE
Integrated CircuitU3AS6C4008 - 512 KiB SRAM, 32 pin DIP1Mouser 913-AS6C4008-55PCN
Integrated CircuitU474AHCT174 - Hex D-Type Flip Flop, 16 pin DIP1Mouser 595-SN74AHCT174N
Integrated CircuitU574HCT138 - 3-to-8 Decoder, 16 pin DIP1Mouser 595-CD74HCT138E
Integrated CircuitU6, U774AHCT32 - Quad 2-Input OR Gate, 14 pin DIP2Mouser 595-SN74AHCT32N
Integrated CircuitU874AHCT00 - Quad 2-Input NAND Gate, 14 pin DIP1Mouser 595-SN74AHCT00N
Integrated CircuitU9DS1233-5 - CPU Supervisor, 5V, TO-92-31Mouser 700-DS1233-5. Note U9 is an optional on-board CPU supervisor.
OscillatorX17.3728 MHz, CMOS oscillator, half can1Mouser 774-MXO45HS-3C-7.3 or 520-2200B-073
Pin HeaderJ140x2 pin header, 2.54 mm pitch, right angle1Mouser 737-PH2RA-80-UA, 517-5121TG
Pin HeaderJP13x1 pin header, 2.54 mm pitch, vertical1Mouser 649-68000-203HLF.
Pin HeaderJP2, JP32x2 pin header, 2.54 mm pitch, vertical1Mouser 649-67996-104HLF.
JumperJP1 - JP3Shunt, 2 pin 2.54 mm pitch3Mouser 806-SX1100-B.
Tactile switchSW1Tactile switch, 6 mm, right angle1Mouser 653-B3F-3152. SW1 is an optional reset switch.
CapacitorC1 - C90.1 uF, 50V, MLCC, 5 mm pitch9Mouser 594-K104K15X7RF53H5.
CapacitorC1047 uF, 25V, electrolytic, 5 x 11 mm, 2 mm pitch1Mouser 667-EEU-FR1E470
CapacitorC111 nF, 50V, MLCC, 5 mm pitch1Mouser 594-K102K15X7RF5TH5. Note: C11 is optional, required if U9 installed and manual reset functionality is desired.
Resistor ArrayRN14.7 kohm, bussed, 9 pin SIP1Mouser 652-4609X-1LF-4.7K or 652-4609X-AP1-472LF
Resistor ArrayRN24.7 kohm, bussed, 6 pin SIP1Mouser 652-4606X-1LF-4.7K or 652-4606X-AP1-472LF
IC SocketU144 pin PLCC, through hole1Mouser 737-PLCC-44-AT, 517-8444-11B1-RK-TP
IC SocketU232 pin PLCC, through hole1Mouser 737-PLCC-32-AT, 517-8432-11B1-RK-TP
IC SocketU332 pin DIP1Mouser 737-ICS-632-T, 517-4832-6000-CP
IC SocketU4, U516 pin DIP2Mouser 737-ICS-316-T, 517-4816-3000-CP.
IC SocketU6 - U814 pin DIP3Mouser 737-ICS-314-T, 517-4816-3000-CP.
Oscillator SocketX14 pin DIP, Half Can1Mouser 535-1108800

Release Notes

Changes

  • Version 1.1

    • Fix cosmetic issues:
      • Swap C5 with C8 and C4 with C6.
      • Modify C10 footpring to clearly show negative terminal.
  • Version 1.0

    • Initial version.

Known Issues

  • Version 1.0
    • Cosmetic issues:
      • C5 and C8, and C6 and C4 should be swapped.
      • C10 should have more clear marking for the negative terminal.

Red Tape

Licensing

Z80-CPM is an open source hardware project. The hardware design itself, including schematic and PCB layout design files are licensed under the strongly-reciprocal variant of CERN Open Hardware Licence version 2. Documentation, including this file, is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

CERN-OHL-2.0-S, GPL-3.0, CC-BY-SA-4.0

Trademarks

  • "RC2014" is a registered trademark of RFC2795 Ltd.
  • Other names and brands may be claimed as the property of others.

Parts

32
QtyValueFootprintReferences
90.1uFMy_Components:Cap_Cer_508C1, C2, C3, C4, C5, C6, C7, C8, C9
274AHCT32My_Components:IC_DIP14_300U6, U7
11nFMy_Components:Cap_Cer_508C11
14.7kMy_Components:Conn_SIL9RN1
14.7kMy_Components:Conn_SIL6RN2
147uFMy_Components:Cap_Elec_Radial_5mmC10
17.3728MHzMy_Components:OSC_Half_Can_DIP8X1
174AHCT00My_Components:IC_DIP14_300U8
174AHCT138My_Components:IC_DIP16_300U5
174AHCT174My_Components:IC_DIP16_300U4
1AS6C4008My_Components:IC_DIP32_600U3
1DS1233My_Components:Transistor_TO92_EBC_254U9
1Logo_Open_Hardware_LargeSymbol:OSHW-Logo2_7.3x6mm_SilkScreenLOGO1
1M3MountingHole:MountingHole_3.2mm_M3_DIN965H1
1Onboard OSC CLK to CPUMy_Components:Conn_Pin_Header_2x1_2.54mmJP2
1RAM: 512KiB/128KiBMy_Components:Conn_Pin_Header_3x1_2.54mmJP1
1RCBUS_LogoMy_Components:RCBUS_LogoLOGO2
1RCBusMy_Components:Conn_Pin_Header_40x2_2.54mm_Right_Angle_RCBus80J1
1RCBus CLK1 to CPUMy_Components:Conn_Pin_Header_2x1_2.54mmJP3
1RESETMy_Components:Switch_Tactile_6mm_RightSW1
1SST39SF040My_Components:IC_PLCC32_THU2
1Z84C00-PLCCMy_Components:IC_PLCC44_THU1

The 31 most common of 32 parts.

Similar boards

  • 4 layers170.1 × 170.1 mmOtterX, the printed circuit board in 3D

    OtterX

    RetroRemake/OtterX

    8-Bit computer compatible with Commander X16

    188 parts40CERN-OHL-W-2.0
  • 2 layers160 × 160.8 mmAcez380, the printed circuit board in 3D

    Acez380

    flypie/Ace-2019

    Reimplimentation of the Jupiter ACE with slightly more modern hardware. https://www.jupiter-ace.co.uk/ the KiCad versions are the up to date designs which are available at https://jupiterdeuce.blogspot.com and…

    146 parts13GPL-3.0
  • 2 layers160 × 161.3 mmFlypie Ace-2019 acez180, the printed circuit board in 3D

    Flypie Ace-2019 acez180

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    143 parts1
  • 4 layers160 × 70 mmAfternoonBlend, the printed circuit board in 3D

    AfternoonBlend

    dumaiss/PercolatorLabs

    Repo for all the Coffee Series pBITz multimedia cards

    81 parts
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    skiselev/omega

    Omega Home Computer

    248 parts459GPL-3.0
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    merlinkv/Omega_MSX2

    Update of the Omega Home Computer Project

    265 parts40GPL-3.0
  • 2 layers137.2 × 73.7 mmFullInterlockingPlant, the printed circuit board in 3D

    FullInterlockingPlant

    RobertPHeller/RPi-RRCircuits

    A collection of circuit designs for various MCUs, not just Raspberry Pis relating to Model Railroading

    128 parts24
  • 6 layers100 × 45 mmEsphome rgbcct led controller, the printed circuit board in 3D

    Esphome rgbcct led controller

    mikelawrence/esphome-rgbcct-led-controller

    ESPHome RGBCCT LED Controller is a PCB design that support a 5-Channel LED arrangement with Red, Green, Blue, Warm White and Cool White LEDs.

    83 parts1CERN-OHL-P-2.0

Questions

How big is the Z80-cpu mem PCB?

It measures 101.6 × 53.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Z80-cpu mem use?

32 parts, built around the 74AHCT32D, 74AHCT00D, 74AHCT138D and DS1233. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Z80-cpu mem KiCad files?

From the skiselev/Z80-CPM repository on GitHub, at the commit this page was made from: the board is KiCad/z80-cpu-mem.kicad_pcb and its schematic KiCad/z80-cpu-mem.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Z80-cpu mem design in my own project?

Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).