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:
- Based on a Z80 microprocessor, because I was familiar with those from my Spectrum days.
- Use parts still in production, for easy availability of spares, and to avoid all that faffing around with ebay fakes.
- Discrete logic chips, no programmable logic devices, because once you go down that route you end up putting the whole machine in an FPGA and there's nothing left to build.
- Thru-hole components, no surface-mount stuff. Makes for simpler construction, and it's easier to hack around any PCB design errors.
- Modular design, so I could build and test subsystems individually, and redesign and replace any that warranted improvement.
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:
- The midplane, or, how it all fits together
- The video card
- The CPU card
- The memory and logic cards
- The I/O card
- The keyboard
- Early software
- The BASIC interpreter
- 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.