Close
0%
0%

ISA-bus slave Z8001 board construction

Building Jacques Pelletier's CPLD-and-SRAM based version of Steve Ciarcia's Trump Card.

Similar projects worth following
149 views
0 followers
Jaques' design looks like a great way to get a working Z8000 system for the fewest components. I had to have a go!

2025-09-30 Jacques added the schematic and parts list to his project page. I have all the silicon chips.

2025-10-08 Ordered kit of 0603 resistors and capacitors.

2025-10-28 Fitted CPU socket and SMD passives.

2025-10-30 2816 EEPROM chips programmed.

2025-11-19 Ordered a Terasic USB Blaster. Not cheap but I need it to work. See https://www.downtowndougbrown.com/2024/06/fixing-a-knockoff-altera-usb-blaster-that-never-worked/

2025-11-27 USB blaster arrived.

Blockers

I need:

  • to fit the programming header
  • to program the CPLD
  • an ISA bus host computer

Z8000-processor.zip

The zip file I created to let me install the extensions from the Ghidra graphical interface (without any sudo commands).

Zip Archive - 18.27 kB - 07/08/2026 at 15:21

Download

TrumpCard.zip

Zip Archive - 223.71 kB - 10/14/2025 at 17:06

Download

TrumpCard.pof

pof - 7.83 kB - 10/14/2025 at 16:56

Download

  • USB upgrade idea

    Keithan hour ago 0 comments

    I recently had an idea about adapting USB-FIFO modules into the many different retro UARTs. 

    Then I realised that adapting modules to a static RAM chip pinout was a better idea, because most retro machines have at least one of these. Even a ROM chip would have D0-7, A0 and /RD in the same position.

    Using a memory chip socket allows an adapter to fit boards that don't even have a UART.

    Like the Trump Card!

    This is very desirable for me, as it avoids having to 

    • get hold of an ISA bus PC
    • install and run MSDOS
    • install the Trump card software
    • find an analogue CRT based monitor

    I know for some people that is part of the retro fun, but this board remake is already using a CPLD instead of TTL.

    I just want to be able to talk to a Z8000 processor.

    Having a modern PC replacing the original PC has these advantages:

    I have a project about retro-fitting USB-FIFO modules to existing machines, including a log about fitting a module using an SRAM socket.

    Hardware

    The USB module needs to appear at Z8000 address 1. 

    The Trump card has a single FIFO which it calls a 'bucket', and has to handshake to give ownership to one processor at a time.

    A USB-FIFO module has two separate FIFOs, one for transmit and one for receive. So no ownership exchange needed.

    The Z8000 simply needs to read the status flags to see if the receive FIFO has data or the transmitter FIFO is ready to accept data. The Trump card already decodes address 3, so this seems the sensible place to put it.

    The Trump card had the ability for the PC to give an NMI to the Z8000, e.g. after filling the 'bucket' with data bytes  and telling the Z8000 to collect them.

    The USB module has no way to choose whether or not to interrupt its CPU. It might be simplest to interrupt the Z8000 every time the receive buffer has data. The PC can then never be ignored. The Z8000 has no time-critical duties to do (like managing a disk drive), so an NMI should not be a problem.

    Software

    As with all the best toys say, "some assembly required". You will need to modify the Z8000 firmware but you will only be simplifying the communications routines a bit rather than adding lots of code.

  • Addressing inconsistency clarified

    Keith2 hours ago 0 comments

    Jacques found that the Trump Card ports are not mapped as found in the Byte magazine. 

    It uses 3EB, 3ED and 3EF instead of 3E8, 3EC and 3EE.

          98 7654 32 10 <-- PCbus address bit
    
    3E8 = 11 1110 10 00    From LDZSYS.CO
    3EC = 11 1110 11 00
    3EE = 11 1110 11 10
    
    3EB = 11 1110 10 11    From Byte magazine text
    3ED = 11 1110 11 01
    3EF = 11 1110 11 11

    The magazine article says:

    "The 8088 selects the bucket when it performs either an /IOW (I/O write) or /IOR (I/O read) in the range of the IBM's regular memory-address space from hexadecimal 03E8 to 03EE. Accesses to these addresses are decoded by IC28 to generate the Trump Card's /PCSEL signal."

    Looking at IC28 (a 74LS133) in the circuit (page 48 of the Byte article), we can see it detects the PC bus address 0x3EC. IC31 and 32 (page 49) clear or increment the counters.

    98 7654 32 10 <-- PCbus address bit
    11 1110 1x xx IC28 decodes 3E8 to 3EF
    11 1110 1x 1x IC31 decodes 3E8,3E9,3EC,3ED to clear counters (write)
    11 1110 1x 1x IC32 decodes 3E8,3E9,3EC,3ED to increment counters

    IC32 asserts the increment signal whether reading or writing, but the clearing when writing will override the increment.

    So the article words and circuit are consistent.

    PC address line 0 is ignored, so 3EE = 3EF and 3EC = 3ED in action.

    3E8 and 3EB differ in A0 (harmlessly) but also A1.

    Looking at IC9 on page 49, we can see that reset is assert when PC address line A2 is low.

    Which means any address from 3E8 to 3EB.

    So, mystery solved. The firmware is not wrong, it just uses different 'don't care. bits.

  • Ghidra and Z8000 extensions

    Keith2 days ago 0 comments

    Analysing binary software has usually been done by disassembling, deciding which bytes are code or not, telling the disassembler what is code, ascii, pointers, tables, and then repeating iteratively. It is painstaking work.

    The American National Security Agency needed to do this to examine code for malware, and they developed the Ghidra program to make this easier to do. Load the binary, have an initial disassembly, and then you can go through it marking sections to be disassembled as code, or various types of data.

    Installation

    To install Ghidra, you must install the required Java Development Kit (JDK), download the official zip file, and extract it to your system. Ghidra does not use a traditional executable installer; the extracted directory contains the entire application.

    1. Install the Prerequisites

      Ghidra relies heavily on Java. The latest versions of Ghidra officially require JDK 21 (64-bit).

      Windows: Download and run the JDK 21 installer from Adoptium Temurin or Oracle.

      Linux (Debian/Ubuntu/Kali): Open your terminal and run:

      sudo apt update && sudo apt install openjdk-21-jdk

      macOS: Install via Homebrew using brew install openjdk@21 or download the installer package from Adoptium.

    2. Download Ghidra

      Navigate to the official Ghidra GitHub Releases page.

      Under the Assets drop-down of the latest public release, click the zip file to download it (e.g., ghidra_11.x.x_PUBLIC_xxxxxxxx.zip).

      Note: Do not download the "Source code" files, as they require manually building the software.

    3. Extract the Files

      Choose a permanent folder location on your machine where you want Ghidra to live.

      Windows: Right-click the downloaded .zip file and select Extract All.

      Move the folder somewhere stable, like C:\Tools\Ghidra.

      Linux / macOS: Extract it to your preferred directory (such as /opt/ or your home directory) using the terminal:

      sudo unzip ghidra_11.x.x_PUBLIC_xxxxxxxx.zip -d /opt/
    4. Launch Ghidra

      Open the extracted folder to run the application:

      Windows: Double-click ghidraRun.bat.

      Linux / macOS: Open a terminal in that directory and execute ./ghidraRun.

    Adding Z8000

    To add support for the Zilog Z8000 processor to Ghidra, you must manually install a third-party processor module, as Ghidra only supports the standard 8-bit Z80 out of the box.Because the Z8000 is an entirely different 16-bit architecture rather than a simple extension, you need a dedicated module containing the necessary .sla, .pspec, and .cspec definition files.

    Step 1: Obtain a Z8000 Processor Module

    You will need to download a SLEIGH-based language module for the Z8000.

    • Community extensions (such as those shared on developer repositories like GitHub) typically bundle these files.
    • Make sure your downloaded module matches your architecture needs, whether you are analyzing the non-segmented Z8002 or the segmented Z8001 variant.

    https://github.com/jpelletier/Z8000/tree/main

    Step 2: Install via the Ghidra GUI

    The easiest way to add an extension module is through the application interface:

    1. Launch Ghidra and stay on the main active project window.
    2. Click on File in the top menu bar, then select Install Extensions.
    3. Click the + (Add extension) icon in the upper-right corner of the Extensions window.
    4. Browse to and select the downloaded .zip file containing the Z8000 processor module.
    5. Click Apply or OK.
    6. Restart Ghidra to allow the software to compile the new SLEIGH language files.

    Step 3: Alternative Manual Installation

    NB Linux did not let me do this, because I did not have the required permissions. This is correct behaviour. Windows may let you do this.

    If you downloaded raw language definition files instead of a zipped extension, you can place them directly into Ghidra's directory structure:

    1. Close Ghidra completely.
    2. Navigate to your Ghidra installation directory.
    3. Go to the processors folder: Ghidra/Processors/
    4. Create a new folder named exactly Z8000.
    5. Inside that folder, recreate the data subfolder path:
      Z8000/data/languages/
    6. Move all your Z8000...
    Read more »

  • Host PC

    Keith09/21/2025 at 16:44 0 comments

    I have a PC104 computer, but it does not have a case.

    I have a nicely cased PC I use for my antique device programming/reading work, but that does get a bit hot and will lock up if I don't leave space between it and the device programmer. There is just enough space for one ISA board inside. I don't know if the board will reduce the airflow enough to cause overheating.

    Ideally I would like a case that will show off the Z8000. Perhaps something with a glass side?

  • Gathering materiel

    Keith09/21/2025 at 15:07 0 comments

    Z8001 and Z8581 chips

    Already owned.

    Two 74LS373, two 74LS245

    I have these. I may change them for HCT versions, to reduce power a bit. And to see if the board still works with HCT.

    Printed circuit board

    2025-09-20 Arrived in the post! 

    EPM7128STC100-15

    This was very generously supplied with the PCB, by Jaques. Merci! Some of the corner pins have been bent in transit, despite being in a sturdy box. Maybe it rattled onto the sides? Not a disaster, I am able to carefully push them back into place. I would have liked a microscope and a hotplate to help me do this. I have mounted it by hand, and it was hard to do. I need to clean it up with IPA and inspect with a microscope.

    CY62157ELL-45ZSXI

    This 512k x 16 bit SRAM is rated at 4.5 to 5.5 volts VCC, perfect for 5V technology. They cost about £5 from suppliers, but eBay is often much more expensive. This tiny chip provides as much RAM as the 32 DRAM chips in the original design, in a fraction of the space. I have mounted it by hand.

    I ordered two CY62157ELL-45ZSXI chips (one for spare, or another project), and they have arrived.

    Two 2K ROM chips (2716)

    I have one of these,  and over a hundred 64K EPROMs! Small devices are harder to find and often dearer than larger chips, but sockets are only 24 pins. I would like to make adapters so that I can fit larger, and possibly EEPROM, memories. The AT28C16 is a 24-pin EEPROM. An adapter would allow larger memories, allowing the board to boot directly into a monitor or BASIC, without the need for loading by a host PC.

    I ordered and received two PQ2816 chips. These will allow me to get started without having to make adaptor boards. These are pin compatible, pin 21 being VPP or /WR, and pulled up on the board.

    2K SRAM chip

    Ordered and received 4 chips.

    Silver solder and flux in a syringe

    This makes nicer joints than the usual lead-tin solder. I don't use lead-free solder for hobby work, because it does not make joints as easy as leaded. I think the environment can cope with my few hobby boards. These have arrived from eBay. It turned out to be silver-tin, no lead. I didn't find it was very 'wet', so it reverted to normal lead-tin solder..

    Crystal, 12 MHz

    I have a 6 MHz processor. Low-height crystals are less prone to damage. I have 12 MHz.

    DIP20, DIP24, and DIP18 sockets

    I used two DIP24 sockets for the DIP48 CPU. All sockets fitted.

    Various SMD passives

    I usually work in labs with access to reels of these things, but I am between contracts right now.
    I don't have access to surface-mounting equipment either, so I made do with what I have at home. Jacques told me that R25 is 22 Ohms, all the others are 10k.

    2025-10-11

    Ordered 0603 resistor and capacitor kits, and a few 0805 capacitors, from eBay. All have been fitted.

View all 5 project logs

Enjoy this project?

Share

Discussions

Keith wrote 11/13/2025 at 03:50 point

I read reviews and some of the cheaper ones had bad reviews, like not working with the programming software. So I'm inclined to order a £30 dongle than an £8 dongle. My time is scarce and expensive.

  Are you sure? yes | no

Jacques Pelletier wrote 11/13/2025 at 02:11 point

You can find the dongle on ebay or AliExpress for cheap. Search for Altera USB (byte) blaster.

I added more detailed intructions on the BBTC page about the programming of the CPLD.

I ordered a Nano 8088 kit and a passive motherboard but the Nano 8088 doesn't seem to work right now, so I'm currently making 'Alien probes' for the PC-XT, the 8088 and the Z8001. They're based on the STM32F405VGT6. I'll publish these project soon.

The Alien probes allow to control each address, data and control bits individually, for checking and debugging the hardware at the lowest level. 

The PC-XT probe is an ISA card connected to the serial port of another computer/terminal. The 8088 and Z8001 probes are fitted in the CPU socket with a special connector made with lead frames. It will not damage the CPU socket (machined or dual leaf ones).

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates