Skip to the content
2 layers100 × 100 mmZx2022, the printed circuit board in 3D

Another DIY Z80 Computer With CP/M

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
106
Pads
380
Tracks, vias
1,893, 52
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
29 Sep 2022
Updated
10 Mar 2023

Overview

Zx2022 is an open-source printed circuit board by michalin, from the michalin/ZX2022 repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 100 × 100 mm with 34 parts on 106 nets, routed with 1,893 tracks and 52 vias.

It is built around the 74LS02PC and 74LS00SC. Its parts include 12 resistors, 9 ICs, 6 connectors, 5 capacitors and 1 switch.

Main components

2

README

README.md

ZX 2022

Yet another homebuilt Z80 Computer, but this one works without any FPGAs or Microcontrollers, but components that were available at the time when the Z80 processor was state of the art. It can run historic CP/M programs like Multiplan, Wordstar and MBasic, as well as some games. This is a reminiscense to the Sinclair ZX81 computer. In contrast to its predecessor, the ZX2020, this one uses a 32 kilobyte EE Prom to reliably store the CP/M BDOS and BIOS. Furthermore a PS/2, or PS/2 compatible USB keyboard can be connected. With an optional TMS99x8 based video card, a TV or monitor can also be used. This repository contains gerber files for both the ZX2022 and the video card. So it can now be easily replicated.

Features

  • Zilog Z80 processor @6MHz, higher clock rates might also work.
  • 128 Kilobytes of static RAM, can be switched in banks of 32k
  • 32 Kilobytes of EEprom
  • 2 Serial UART ports 187.5 kBaud (Clock freqency/32):
    • Terminal emulation, (Putty works best)
    • File transfer. Files in a special folder on the PC show up as drive B>
  • EEprom provides 15 Kilobytes of file memory (drive A>). CP/M executables are started automatically after reset or power on
  • IDE (PATA) interface. Provides 4x16 Kilobyte organized as drives C>..F>
  • CP/M 3.0
  • 64-Pin connector for up to 6 Extension modules
  • Optional graphics card with TMS99x8.
    • 256x192 pixels and 15 colors
    • 32 Sprites (8x8, 16x16 or 32x32 upscaled)
    • NTSC (TMS9918) or PAL (TMS9928)
  • Supports PS/2 or PS/2 compatible USB keyboards. New USB keyboards or wireless keyboards may NOT work.
  • Now programmable in C using SDCC (Small Device C Compiler)

To build the ZX 2022, do the following

  • Wire the parts on a breadboard or prototype board according to the schematic.
  • OR: Make or order a PCB based on the gerber files ./Schematic/Mainboard/gerber-main.zip (Recommended)
  • Load the Arduino Sketch loader/loader.ino into an Arduino Mega
  • Plug the Arduino Mega on the Bus connector, where it is marked on the silkscreen
  • Connect the TxB and RxB pins of the DART with Pin 0 (TX0) and 1 (RX0) of your Arduino Mega
  • Start a serial terminal emulation, for example "Putty", set 187500 Baud, 8 Bit, 1 Stopbit, no parity
  • On Windows, run the tool bin/loader.exe. Click on "ROM Image" and select the file CPM/rom.img
  • When a welcome message and the CP/M prompt "B>" appears on your terminal emulation, the ZX2020 is ready to use. If you have a PATA compatible hard drive connected, you need to format it under CP/M with the "mkdsk.com" tool before you can use it. Note that all data on the disk will be lost.

Using The Serial Disk Drive

Connect RX0 of the Arduino with TxB and TX0 with RxB of the ZX2022. It is not necessary to plug the Arduino into the pin header. Instead of an Arduino, a USB to serial converter may be used here as well. Select the serial port in the drop down menu and check the "Connect" check box to establish the serial connection. After a reset, the serial disk drive can be accessed as drive B>.

The folder CPM/serdisk contains the CP/M programs in up to 16 user folders numbered from 0 to 15. If any of these files have changed, click the "Reload" Button to apply the changes. To access the files from CP/M, type B, followed by the user number 1-15 and a colon. For example B5: gives access to the files under CPM/serdisk/5

Connecting a Hard Drive

IDE (PATA) hard drives can be connected through a 40-Pin connector. I recommend using a CompactFlash with a CF to IDE adapter. Best suitable are adapters that support power supply over pin 20 like this one: https://amzn.to/3SFdIag. call ´mkdsk.com´ on the serial disk drive B> to format the drive.

The Autostart Feature

Clicking the File button in the loader app uploads an executable CP/M file (*.com) that is executed after each power-on or reboot. The loader app detects when there is a new version of this "autostart program" and restarts the ZX2022 with this new version. This function is particularly useful for writing new software.

Connecting a PS/2 Keyboard

Connect a PS/2 Keyboard like shown below:

PS/2 Keyboard Connection

Connecting a USB Keyboard

USB Keyboards can also be connected if they support the PS/2 protocol. Most older keyboards do so, but newer or wireless keyboards often don't. These will not work. I recommend to make an adapter cable from an USB extension cable as shown below:

USB Keyboard Connection

Changing the keyboard layout

This is only necessary with PS/2 or USB keyboards. With terminal connections, the settings of the Windows-OS apply. To change the keyboard layout, set the KBLAYOUT variable in the file CPM/SYSCFG.LIB either to DE or EN (default) and rebuild the CP/M rom image.

Using With the TMS9918 Video Card

You find the schematic and gerber files in Schematic/Video/. Set a jumper or solder a bridge at the position IO2 on the pin header J3. This configures the card for IO addresses starting at 20h. This setting must match the p$vdp constant in CPM/SYSCFG.LIB

The TMS9918 can only display 40 columns, while terminals display 80 columns. This CP/M version is built for 80 columns, but it can be changed to 40 columns. To do this, open the file gencpm.dat, change the constant PAGWID to 28 (Which is 40 in hex) and rebuild the CP/M rom image.

Parts

34
QtyValueFootprintReferences
1210kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12
4100nCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1, C2, C3, C4
374LS02Package_DIP:DIP-14_W7.62mm_SocketU5, U7, U8
110µCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC5
128C256_PLC32Package_LCC:PLCC-32_THT-SocketU3
1628128Package_DIP:DIP-32_W15.24mm_SocketU2
174LS00Package_DIP:DIP-14_W7.62mm_SocketU6
174LS138Package_DIP:DIP-16_W7.62mm_SocketU9
1Buszx2022:PinHeader_2x32_P2.54mm_VerticalJ2
1OSC 4MHZOscillator:Oscillator_DIP-14X1
1PATAzx2022:BoxConn_2x20_P2.54mm_HorizontalJ5
1PS/2 Keyoardzx2022:PinHeader_1x04_P2.54mm_HorizontalJ7
1Powerzx2022:PinHeader_1x02_P2.54mm_HorizontalJ6
1Resetzx2022:SW_PUSH_6mmSW1
1Ser. DiskConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ4
1TerminalConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ3
1Z80CPUPackage_DIP:DIP-40_W15.24mm_SocketU1
1Z80DARTPackage_DIP:DIP-40_W15.24mm_SocketU4

More from michalin/ZX2022

2
  • 2 layers100 × 100 mmTMS9918, the printed circuit board in 3D

    TMS9918

    michalin/ZX2022

    Another DIY Z80 Computer With CP/M

    20 parts41GPL-3.0
  • 2 layers100 × 100 mmTemplate, the printed circuit board in 3D

    Template

    michalin/ZX2022

    Another DIY Z80 Computer With CP/M

    2 parts41GPL-3.0

Similar boards

  • 2 layers370.8 × 298.5 mm8 Bit Computer, the printed circuit board in 3D

    8 Bit Computer

    The-Invent0r/8-bit-Computer-PCB

    These are the KiCAD files for my 8-Bit Computer.

    323 parts142
  • 4 layers149.9 × 110 mmSch, the printed circuit board in 3D

    Sch

    DownUnderCTF/Challenges_2024_Public

    Files + Solutions for DownUnderCTF 2024 Challenges

    47 parts116
  • 2 layers357.8 × 124.5 mmVic2020mainboard, the printed circuit board in 3D

    Vic2020mainboard

    danwerner21/vic2020

    A Vic-20 clone created with [almost] all readily available parts

    142 parts78
  • 2 layers407 × 184 mmTRS-80-Model I G E1, the printed circuit board in 3D

    TRS-80-Model I G E1

    RetroStack/TRS-80-Model-I-G-E1

    Hardware Replica of the TRS-80 Model I Revision G

    230 parts57MIT
  • 4 layers337.6 × 105.7 mmISA CGA, the printed circuit board in 3D

    ISA CGA

    hkzlab/CGA_Redux

    The Color Graphics Adapter Redux board is a more or less faithful clone of the original IBM CGA, based on the original schematics

    170 parts56
  • 2 layers155.2 × 78.6 mm80ColumnCard, the printed circuit board in 3D

    80ColumnCard

    btb/80ColumnCard

    An Apple II 80-Column Card. Based on the Videx Videoterm

    47 parts43Apache-2.0
  • 4 layers243.8 × 170.2 mmHEC1, the printed circuit board in 3D

    HEC1

    Andy18650/HEC-Model-Z1

    A Z80 computer with protected mode support

    126 parts36GPL-3.0
  • 2 layers333.2 × 205.9 mmDragon64, the printed circuit board in 3D

    Dragon64

    danwerner21/Dragon64

    A clone board for the Dragon64 and Tandy Color Computer

    232 parts34

Questions

How big is the Zx2022 PCB?

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

What parts does the Zx2022 use?

34 parts, built around the 74LS02PC and 74LS00SC. 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 Zx2022 KiCad files?

From the michalin/ZX2022 repository on GitHub, at the commit this page was made from: the board is Schematic/Mainboard/zx2022.kicad_pcb and its schematic Schematic/Mainboard/zx2022.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Zx2022 design in my own project?

Its repository publishes it under the GPL-3.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).