Close

Introduction

A project log for Zara80

A modern-retro computer based on the Z80.

trevor-rh-clarkeTrevor R.H. Clarke 04/17/2023 at 16:280 Comments

This is a homebrew Z80 based retroish computer that I'm designing and building. This post provides some background on why I'm working on this project, how I got to the design, and what my end goals are.

Why am I building another Z80 based retro computer? This one is easy. I'm old enough that I cut my teeth on early home computers in the 1980s. I started with an Apple //e and moved on to an XT clone but I never had one of the classic S-100 based systems. There are many options today for one of these including purchasing an original Altair or IMSEI, building a clone, or using a modern work-alike system like the RC2014. I wanted to learn all I can about the details and design considerations so I opted to create my own system from scratch. I'd like it to work with classic or modern modules in case I decide to pop in an old 8" floppy, etc.

One of the design requirements is to stick with the general feel and soul of a classic S-100 system but not limit myself to original components which can be tough to find and sometimes expensive. I'm using modern CMOS components, denser memories, etc. while still keeping the overall design features of the classic hardware. I went with a CMOS Z80 since you can buy them new but the architecture is essentially the same as it was in the '70s. The CMOS is more tolerant to noise on the bus and has higher fanout than the NMOS devices. The modern Z80s can also run at higher clock speeds.

Next I had to decide on a bus. Since I've building most of this myself, it doesn't matter as much as if I'd planned to use existing modules from the start. Originally I was going to stick with S-100 but there is a lot of glue logic needed to put a Z80 on an S-100 bus, mostly because the bus originally coincided with the pinout on the 8080. There are also a lot of pins used to allow for temporary bus masters and DMA, functions I'm not interested in implementing this time around. The next obvious choice is the RC2014, a bus designed to get a Z80 system running with minimal effort. It is a breakout of the Z80 pins with power. However, it has a number of problems, it's not well designed from a robustness standpoint. It's not designed for latching of address and data values, it has only one (or two in the extended version) ground pin, it only has 5V lines, lacks multi-level interrupts, and isn't laid out with signal integrity in mind.

After spending too much time thinking about and designing for S-100 I wanted to get something done so I switch to RC2014 with a few changes I'll detail in another post.

In addition to a CPU board with a ROM chip, I'm creating a RAM board, a dual serial board with a PC16552 compatible UART, a front panel/debug board, and some sort of TBD storage (likely an SD card simulating a floppy). User I/O will be through a VT420 terminal.

Discussions