Retrocomputing Projects

"We remain unhindered by progress"

I find 8-bit machines of the late 1970s and early 1980s fascinating. They are simple to understand but can be suprisingly capable. Considered obsolete by many, I think these machines still have great educational and entertainment value. Modern computers have layer upon layer of abstraction which makes it very hard for the user to build a cognitive model of how the machine actually works. Conversely with an 8-bit machine it's hard to get anything done without developing that understanding.


socz80 was my first Z80 project, started in October 2013. It is a fast Z80 machine implemented in an FPGA, with a lot of memory (for an 8-biter). Running at over 120MHz and with a paged memory management unit, 8MB SDRAM and 16KB cache memory, it is esentially a Z80 pimped with some mid-'90s hardware features. As well as designing the hardware and writing a monitor program I've ported a few operating systems to this machine, including CP/M 2.2, MP/M-II and UZI, a multi-user multi-tasking UNIX.

Building this was a great way to learn about FPGAs, hardware design, the Z80 microprocessor and the operating systems of the early '80s.

Read more (includes link to download FPGA bitstream and full source code for hardware and software. Open source GPL3 licensed)

Retrobrew Computers ECB-USB-FIFO

A EuroCard Bus board providing a fast interface between ECB machines and modern PCs over USB. Full documentation can be found in the Retrobrew Computers wiki

Retrobrew Computers ECB Mini Backplane

A EuroCard Bus backplane for 3 cards. Full documentation can be found in the Retrobrew Computers wiki

Retrobrew Computers KISS-68030

A homebrew 32-bit machine constructed entirely from through-hole components. 32MHz 68030 CPU, 256MB DRAM, two IDE ports, two serial ports. I've ported Linux to this machine. It runs a modern kernel (Linux 4.5.0) and userspace (Debian "stretch"). Self hosting: all the software that runs on the machine can be built on the machine itself (if you're very patient). My first homebrew machine with an internet connection.


FLASH4 is a CP/M program which can read, write and verify Flash ROM contents to or from an image file stored on a CP/M filesystem. It is intended for in-system programming of Flash ROM chips on N8VEM Z80 and Z180 systems. I originally wrote it for the N8VEM Mark IV single board computer and then extended it to support all the N8VEM Z80/Z180 based machines. It also supports the DX Designs P112, RC2014, and a range of other Z80/Z180 machines.

FLASH4 aims to be fast (it's more than twice as fast as my USB EEPROM programmer) and to support a range of Flash ROM chips and single board computers. The latest version supports programming a single image spanning multiple flash ROMs.

Download the latest release (includes compiled executable and full source code. Open source GPL3 licensed). Also on github.


FATPIPE is a CP/M program for fast file transfers to the N8VEM Mark IV SBC.

Read more.


TERP is an interactive fiction interpreter. It is a port of Jzip to CP/M 2.2 using the SDCC C compiler. It uses additional memory banks to contain the Z-machine memory which allows modern (ie large) stories to be played. Supports versions 3, 5 and 8 games and VT100 terminals.

This is still in development (July 2014). The interpreter works well and stories up to around 400KB in size can be played. I still need to add save, restore and undo support, and caching support for larger games. I am waiting for the BIOS (UNA, RomWBW) to support allocating memory pages to applications (currently I rather hackily use memory banks that I expect to be unused).

Expected release: September 2014.


UNA CP/M is a CP/M 2.2 operating system for computers running UNA BIOS (ie, N8VEM Z80 hardware). It has some novel features.

UNA CP/M is structured as a two-stage program. The first stage handles the initialisation of the system and constructs the second (residual) stage in memory. When the initialisation code has finished it is discarded, with control passing to the residual second stage which implements CP/M and a minimal CBIOS.

This two-stage approach and load-time relocation of CP/M allows the user to choose a balance between the number of drives available to CP/M and the size of the transient program area (TPA).

Once running, the included REMAP program can be used to restart CP/M with a different drive mapping.

Download the latest release (includes compiled executables and full source code. Open source GPL3 licensed). Also on github.

Replica 1 TE

The Briel Computers Replica 1 is a functional clone of the Apple 1 computer created by Steve Wozniak in 1976. It includes an RS232 serial port but this is lacking flow control which makes uploading software slow and unreliable.

With just a few wires and some new firmware I have added hardware flow control which allows reliable and error-free operation at 115,200bps.