All The Good Ones Were Taken

The Z1a - A Homebrew 8-Bit Computer

What?

The Z1a is a 1980s-style 8-bit home computer which I have designed, built from chips and custom printed circuit boards, and written a BASIC interpreter for.

Why?

My first home computer was a 48k Sinclair ZX Spectrum. I loved that little black box, but it did have its limitations, and as my teens went by I bumped into them more and more. At the time, I would have loved to be able to build something similar but better. Faster, more memory, better I/O, more colours, more colours that you could actually assign to individual pixels, and so on.

Once I was gainfully employed I moved onto bigger and arguably better computers, finally ending up with the Intel x86-based PCs that we all know and... that we all know. But I never quite lost the desire to build something of my own. Finally a combination of nostalgia, the availability of cheap mail-order Chinese PCB fabrication, a hankering to build something moderately complicated and electronicsy, and inspiration from projects like the RC2014 and Quinn Dunki's Veronica, drove me to have a go.

The Goal

While there are some fine modern 8-bit platforms like the the aforementioned RC2014, I decided it would be more of a challenge to go my own way and design something pretty much from scratch, the sort of thing I might have built back in the 8-bit days if I'd had the means.

I had a few design principles in mind:

The Name

"Z1a" was a placeholder name that, as placeholder names so often do, stuck around. Partly in honour of Konrad Zuse's Z1 which I'd just read about at the time, partly as a nod to Sir Clive Sinclair's various Z- product names, and partly because it's short for "Z180", the Z80-derivative CPU that I ended up using. Like most short sequences of letters and numbers, it's probably the name of some kind of motor vehicle too.

The Web Pages

These pages may not make much sense to anyone not already well-versed in this sort of thing. The photography leaves a lot to be desired, like proper lighting and a camera that isn't a cheap phone with scratched glass over the lens.

I've tried to arrange the sub-pages in some kind of narrative order, listed here:

  1. The midplane, or, how it all fits together
  2. The video card
  3. The CPU card
  4. The memory and logic cards
  5. The I/O card
  6. The keyboard
  7. Early software
  8. The BASIC interpreter
  9. Future plans

Specifications

CPU Zilog Z180, rated to 33 MHz
ROM 64 kB flash
System RAM 1 MB static
Video RAM 64 kB dual port static
Graphics VGA, 60 Hz, 256×240 (upscaled to 640×480), 8-bit colour
Display controller AVR ATMega644P generating addresses and sync signals
Storage IDE port, with a Compact Flash adaptor plugged into it
GPIO 4 × 8-bit input, 4 × 8-bit output (one of each used for keyboard)

Open Source

Once I've cleaned them up a bit, I'll be uploading KiCAD schematics and PCB layout files, and as much of the source code as I can release without dying of embarrassment. A link to the repo will appear here.