Skip to the content
2 layers160 × 100.3 mmZ80-SOUND, the printed circuit board in 3D

To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

Size
160 × 100.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
105
Nets
217
Pads
652
Tracks, vias
2,600, 333
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
12 Oct 2022
Updated
3 Jan 2025

Overview

Z80-SOUND is an open-source printed circuit board by dennis9819, from the dennis9819/Z8C-Homebrew-Computer repository on GitHub. It is a 2-layer board of 160 × 100.3 mm with 105 parts on 217 nets, routed with 2,600 tracks and 333 vias.

It is built around the 74HC245D, 74LS125DC and 74HC138, with the 74HC590D, 74LS00SC and 74LS02PC among its other parts. Its parts include 27 capacitors, 27 resistors, 20 ICs, 8 diodes and 7 connectors. It belongs with the retro computing and games and audio and music boards of this library.

Main components

8

README

README.md

Z8C-Homebrew-Computer

Using the build tools

The Z8C uses the zmac macro assembler (http://48k.ca/zmac.html)

To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script:

  • zmac assembly
  • object file creation (for xmodem upload)
  • monitor file creation (creates monitor commands for ascii upload)
  • symbol table include file generation
  • eeprom programming for the minipro

Prequisites

Building a project

./build.sh <dir> <asm filename>

  • dir: Path to the location of the asm file
  • asm filename: name of the assembly file without suffix
text
    # e.g.:
    cd ./Utility
    ./build.sh ../OperatingSystem/monitor_v2  
    ./build.sh ../OperatingSystem/software  

Building a project with a properties file

./build.sh <dir>

  • dir: Path to the location of the asm file

The directory must contain a file called properties.env This file can contain project-specific options.

Example:

text
export OPT_GEN_SYMBOLTABLE=1
export OPT_GEN_MONFILE=0
export OPT_GEN_OBJFILE=1
export OPT_WRITEROM=1
export FILENAME=main

Options

  • OPT_GEN_SYMBOLTABLE if set to 1: Generates the symbols.s file
  • OPT_GEN_MONFILE if set to 1: Generates the monitor file
  • OPT_GEN_OBJFILE if set to 1: Generates the object file
  • OPT_WRITEROM if set to 1: Starts eeprom programmer
  • FILENAME same as the <asm filename> paramter of the build script
  • ROOT_DIR overrides the project root path. required if git is not used
  • EEPROM_PART sets EEPROM part for minipro. Default: AT28C256

System design

The Z80 Hombrew computer is modular computer system, designed arround a custom backplane.

Available modules

Z8C CPU/COM Board

  • Z80 ZPU @ 4MHz (6MHz planned)
  • 64 KiB SRAM
  • 32 KiB EEPROM (R/W switchable)
  • Z80 CTC with external 1.8432MHz Clock switchable per channel
  • Z80 SIO (Up to 115200 BAUD possible @ X16 SIO prescaler)
  • 1 FTDI Connector
  • 1 RS232 DSUB-9 Port
  • 8 front-facing DIP switches (currently used for baud-rate setup)
  • Power-On-Reset Circuit
text
Memory Layout
       Default ($00 = 0x00)  Mode 1 ($00 = 0x02)  Mode 2 ($00 = 0x01)             
$0000 +--------------------+--------------------+--------------------+
      | EEPROM Lower 16KiB | EEPROM Upper 16KiB | SRAM               |
$4000 +--------------------+--------------------+                    |
      | SRAM               | SRAM               |                    | 
      |                    |                    |                    |
      |                    |                    |                    |
$FFFF +--------------------+--------------------+--------------------+

Note: In default mode and mode 1, the MEMAQ pin (pin a5 on backplane) 
      can be used to inject an external memory device in the $0000-$3FFF 
      window.

IO Addresses:
$00 Memory register
$01 DIP Switches
$04 CTC (First address)
$08 SIO (First address)

Z8C MIO Board

  • Z80 PIO (Used for GPIO and non Z80 compliant interrupt handling)
  • VT82C42 PS/2 controller
  • AM5911A (only usable with CPU-Clock under 3 MHz)
  • PFC8584 I2C Controller
  • DS1307 RTC
  • 8-Bit GPIO Port

//TODO: Add more Info

Z8C Disk Interface Board

  • Intel 82C55 based IDE Interface
  • FDC9266 Floppy Disk Controller

//TODO: Add more Info

Parts

105
QtyValueFootprintReferences
17100nFCapacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mmC1, C2, C3, C4, C5, C14, C15, C16, C20, C21, C22, C23, C24, C25, C26, C27 +1
171kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8, R12, R15, R16, R17, R18, R25, R26, R27 +1
510KPotentiometer_THT:Potentiometer_Bourns_3299W_VerticalRV1, RV2, RV3, RV4, RV5
4100RResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR19, R20, R21, R22
41N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4
42k2Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR10, R11, R13, R14
45.1VDiode_THT:D_DO-34_SOD68_P7.62mm_HorizontalD5, D6, D7, D8
3220uFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC17, C18, C19
32N3904Package_TO_SOT_THT:TO-92_InlineQ1, Q2, Q3
32n2Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mmC6, C12, C13
374HC245Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU2, U3, U4
210kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR23, R24
210uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC10, C11
21uCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC8, C9
26N137Package_DIP:DIP-8_W7.62mmU15, U16
2Conn_01x16Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_VerticalJ2, J7
2FerriteBeadResistor_THT:R_Axial_DIN0414_L11.9mm_D4.5mm_P15.24mm_HorizontalFB1, FB2
2R_Network04Resistor_THT:R_Array_SIP5RN1, RN3
11MHzOscillator:Oscillator_DIP-14X1
13-103JResistor_THT:R_Array_SIP8RN2
174HC138Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU8
174HC590Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU10
174LS00Package_DIP:DIP-14_W7.62mm_SocketU14
174LS02Package_DIP:DIP-14_W7.62mm_SocketU7
174LS04Package_DIP:DIP-14_W7.62mm_SocketU13
174LS125Package_DIP:DIP-14_W7.62mm_SocketU12
174LS688Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU1
1AY-3-8910Package_DIP:DIP-40_W15.24mm_SocketU9
1Conn_02x04_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ6
1DB15Connector_Dsub:DSUB-15_Female_Horizontal_P2.77x2.84mm_EdgePinOffset9.90mm_Housed_MountingHolesOffset11.32mmJ5
1L78L09_TO92Package_TO_SOT_THT:TO-92_InlineU17
1L79L09_TO92Package_TO_SOT_THT:TO-92_InlineU18
1MONO_SWDennis:DPDT_VerticalSW1
1OutLDennis:RCA_ReicheltJ3
1OutRDennis:RCA_ReicheltJ4
1R_Network04Resistor_THT:R_Array_SIP9RN4
1SIO0-DIP-40Package_DIP:DIP-40_W15.24mm_SocketIC1
1SN76489ANPackage_DIP:DIP-16_W7.62mm_SocketU6
1TL074Package_DIP:DIP-14_W7.62mm_SocketU11
1YM2612Package_DIP:DIP-24_W15.24mm_SocketU5
1Z8C_CardDennis:Z8C CardJ1
1~Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalU19

More from dennis9819/Z8C-Homebrew-Computer

11
  • 4 layers160 × 100.3 mmZ80-VDP, the printed circuit board in 3D

    Z80-VDP

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    80 parts2
  • 2 layers160 × 100.3 mmZ80-MIO, the printed circuit board in 3D

    Z80-MIO

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    77 parts2
  • 2 layers160.1 × 100.5 mmZ80-MIO, the printed circuit board in 3D

    Z80-MIO

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    71 parts2
  • 2 layers160 × 100.3 mmZ80, the printed circuit board in 3D

    Z80

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    65 parts2
  • 2 layers160 × 100.3 mmZ80-IDE, the printed circuit board in 3D

    Z80-IDE

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    62 parts2
  • 2 layers160.5 × 100.5 mmZ80, the printed circuit board in 3D

    Z80

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    59 parts2
  • 2 layers160 × 100.3 mmZ80-MIDI, the printed circuit board in 3D

    Z80-MIDI

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    34 parts2
  • 2 layers160 × 100.3 mmZ80-MIDI, the printed circuit board in 3D

    Z80-MIDI

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    33 parts2
  • 2 layers160 × 100.3 mm007-MemoryExpansion, the printed circuit board in 3D

    007-MemoryExpansion

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    31 parts2
  • 2 layers181.4 × 127.8 mmZ80-Backplane, the printed circuit board in 3D

    Z80-Backplane

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    28 parts2
  • 2 layers30 × 127.8 mmZ80-Backplane, the printed circuit board in 3D

    Z80-Backplane

    dennis9819/Z8C-Homebrew-Computer

    To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…

    20 parts2

Similar boards

  • 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
  • 4 layers304.8 × 215.9 mm64 256KB SYSTEM BOARD, the printed circuit board in 3D

    64 256KB SYSTEM BOARD

    kev-ju/PC-Retro-MTM

    Modern KiCad version of the IBM 5150 system board originally created by MTM Scientific, Inc.

    197 parts4
  • 2 layers301.5 × 367.3 mmOSI 600D Superboard II Cherry Solder Mask, the printed circuit board in 3D

    OSI 600D Superboard II Cherry Solder Mask

    Bambelweeny57/OSI-600D-SuperBoard-II

    KiCad 10 recreation of the Ohio Scientific Superboard II Model 600 rev D (1980) with Cherry MX keyswitches, 27C16/2816 ROMs, full schematic and assembly guide.

    314 parts
  • 2 layers379.1 × 273.4 mmNE Delta, the printed circuit board in 3D

    NE Delta

    frubem/NE_Delta_Schematics

    Forked from https://codeberg.org/hkzlab/NE_Delta_Schematics

    185 parts
  • 2 layers209.5 × 125.1 mmM16rf, the printed circuit board in 3D

    M16rf

    rcapaverde/cubo

    Arquitetura de processador conceitual

    55 parts
  • 4 layers304.5 × 217.2 mmLatest Full Backplane, the printed circuit board in 3D

    Latest Full Backplane

    Trilobyte-CPU/8-bit-computer

    A DIY 8-bit computer built mostly with discrete logic chips

    478 parts2
  • 4 layers147.5 × 134 mm8-bit computer, the printed circuit board in 3D

    8-bit computer

    Davoskio/8-bit-computer

    based off Ben Eater's 8-bit-computer videos

    261 parts
  • 2 layers233.4 × 280 mmCft dfp, the printed circuit board in 3D

    Cft dfp

    alexiosc/cft

    The CFT homebrew minicomputer

    227 parts6GPL-3.0

Questions

How big is the Z80-SOUND PCB?

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

What parts does the Z80-SOUND use?

105 parts, built around the 74HC245D, 74LS125DC, 74HC138 and 74HC590D. 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-SOUND KiCad files?

From the dennis9819/Z8C-Homebrew-Computer repository on GitHub, at the commit this page was made from: the board is Modules/005-Z80-Sound/z80-SOUND.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

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

Its repository states no licence, so its author keeps all rights: ask dennis9819 before reusing the design.