[ 2020-05-21 ] The ZX81 Clone: Part 1

After many years of toying with the idea of building a Z80 computer, I finally decided on making a ZX81 clone.

The early Sinclair computer designs are characterized by the hack that is the video generator. An ingenious combination of software and a few common logic chips allows generating a 32x24 character in text mode, or 256x192 pixels in graphical mode. Other home computers of the same era used special video generator chips, e.g VIC-II (Commodore 64) or TMS9918 (TI-99/4), or lots of logic chips and ROMs (ABC80).

Video generation matters to me because:

While the ZX81 was a four chip design (CPU, RAM, ROM, and ULA), the last chip was just a gate array that contained the video and glue logic of the ZX80 with some improvements. Thus, it is possible to make a ZX81 clone with an acceptable amount of logic chips replacing the proprietary ULA, while retaining the improvements over the ZX80.

When I was looking for schematics and resources, I eventually found Tynesmouth Software, which provides kits and circuit boards for different retro computer clones and accessories. The web shop was closed at the time due to the COVID-19 lockdown (which coincidentally was the reason I had time on my hands to get started with this project), so I ended up drawing by own board based on their schematics and ordering from JLCPCB. I don’t want to undermine TS, so I don’t plan on opensourcing my hardware design in this case. TS have since reopened their shop.

My design is slightly different, because I don’t aim it to be mechanically compatible with existing ZX81 hardware. The board edge connector is replaced by a pinheader, so a custom daughterboard can be stacked on top. The keyboard connector is replaced by a boxed pinheader, to allow an IDC cable to connect to a separate keyboard PCB with mechanical switches. I’ve also changed the RAM and ROM footprints to support both 28 and 32 pin chips.

A few days ago the PCBs arrived from China, and components are on their way from Digikey. To be continued :)

Update: Part 2: Bringup