Microelectronics | Z80 Minicomputer

Synopsis

You might ask a legit question: why would you build a Z80-based computer in 2008? There is no right or wrong answer to this question. In simple terms, it might be nostalgia and educational purposes. And since the technology advanced drastically over the years, it is still possible to integrate 1970s tech with modern 2000s technological advancements such as CPLDs. This way, a minimal amount of glue logic is necessary, effectively reducing logic component count.

I chose the Z80 CPU since it is (still) widely available and it is very easy to program.

Here is what this system should do.

  • Implement two independent serial communication channels. One will be used for software program and instructions transmission, and the other one for various other tasks.
  • Implement a VGA-compatible signal generator to be able to see things happening on a standardized graphical display.
  • Talk to a host PC via one of the two serial communications channels, to share its resources (keyboard, mouse, hard disk drive, and so on).

Given these requirements, the hardware implementations is relatively simple and the components are readily available. Maybe a bit more difficult is to find a Xilinx CPLD programmer circuit, and the CPLD itself. I've build a CPLD programmer myself, based on the official Xilinx documentation.

The list of integrated circuits, as follows.

  • Z80-CPU
  • Z80-SIO
  • Xilinx XC9572 as VGA controller
  • 32 K ROM
  • 32 K RAM
  • 64 K VRAM (2 x 32 K SRAM as video memory)
  • MAX232 as serial port transceiver
  • 74HC32
  • 74HC14
  • three quartz oscillators for Z80-CPU, Z80-SIO, and VGA controller

The Mini Z80 is controlled completely from a host PC. The link is done through the first serial port connected to SIO Channel A. This way, all PC resources can be redirected to the Z80 system. However, data transmission speed is slow, as expected.

Schematic Diagram

Let's now check the electrical schematic diagram.

Fig. 1: Electrical Principial Schematic

Fig. 2: Top Layer Printed Circuit Board

Fig. 3: Bottom Layer Printed Circuit Board

The schematic diagram is generally based on official Zilog documentation and datasheets.

Firmware

The contents of the 27C256 UV-erasable EPROM is split in three distinct parts, as follows.

  • Video ROM BIOS (video display routines)
  • System ROM BIOS (system peripheral addressing routines)
  • OS/MC for Mini Z80 (Operating System / MicroComputer for Mini Z80 - a variant of my original OS/MC, Copyright (C) 1998-2008 Alexandru Groza)

OS/MC is responsible for communication with the host computer.

On the host computer, there is a small program that I've wrote, called Mini Z80 Controller (mz80ctl.exe). At the moment of writing this article, the program is a prototype.

Construction and Pictures

Here are a few pictures of the printed circuit board and the component soldering process. The PCB is made at home with the toner transfer method. It was etched with ferric chloride (FeCl3).

This is the top layer of the mainboard

And this is the bottom layer.

In order to reduce ferric chloride consumption, I designed thick ground planes for both top and bottom layers.

The toner transfer method gave unexpectedly good results this time.

Then I proceeded to installing of the various electronic components.

More parts found their way on the PCB assembly.

I haven't pushed the Xilinx XC9572 CPD completely, yet. At this point, I am still doing tests that depend on successive erase-programming cycles.

A detailed view for the D-sub 9 (RS-232) and D-sub 15 (VGA) connectors.

Detailed view on the graphics processing unit, video RAM, system ROM, and RAM. Also you can see the three crystal oscillators for the CPU, SIO, and VGA.

Detailed view on the power supply section and the serial port data transmission activity indicator LEDs.

Following is a view of the solder side.

An overview of the printed circuit board assembly.

And a view from a different angle.

I would say that the architecture of this system is similar to the client-server topology. In this case, the server is the host computer, and the client is the Z80 minicomputer. But, is this a useful system? Can it do meaningful things? Well, yes, if education and experimentation is your primary goal. Otherwise, it is questionable as its architecture is totally non-standard.

For the record, here is a follow-up to this project: Z80 Microcomputer.

Thank you for reading this page, and I hope you found it useful.


Copyright © 2004- Alexandru Groza
All rights reserved.
VER. 1.0 | REV. A