Zolatron 64: 6502-based homebrew computer
The Zolatron 64 is my 65C02-based homebrew microcomputer—a project that propels mankind’s technological capabilities slap-bang into the late 1970s. It evolved out of nostalgia for my first true love—the BBC Micro—and a desire to understand computers better by getting down’n’dirty at a very low level.
This is a backplane design because that allows me to work, fix and improve various parts of the design.
The main CPU board has the 65C02 CPU, 32KB of SRAM, either 16KB of EEPROM or a flash ROM (depending on variant) with the operating system code, a 1MHz clock and decoding for ROM, RAM and the /RD_EN & /WR_EN signals.
Each I/O board has its own address decoding.
Currently, the other modules are:
VIA Interface boards: 65C22 VIA chip providing general-purpose I/O. One of these boards is currently used to drive a 16x2 character LCD display and five status LEDs. The other provides two eight-bit user ports.
(Serial board: 6551-based UART used for console connection - not currently in use).
Dual UART board: NXP SC28L92 providing two serial ports and other general-purpose I/O. One of the serial ports has now taken over the role of providing console access to the Z64.
Raspberry Pi board: Has a 65C22 VIA talking to a Raspberry Pi Zero 2 W which provides terminal access (via the serial port) and acts as a mass storage device.
Parallel port board: Uses a 65C22 VIA connecting to a 25-pin Centronics-like port for connecting to my dot-matrix printer.
Extended memory board: Has a 128KB RAM chip providing 16 x 8KB memory banks mapped in at address $8000. The four lowest slots (0-3) can also be used to address EEPROMs. Switching between EEPROMs and RAM is via jumpers. Selecting which of the 16 banks is currently mapped in is via software. Using an ATF1502ASL CPLD on this board for decoding.
SPI Interface board / RTC / SRAM / SD Card. This uses SPI65 in a CPLD to provide a SPI interface. Up to eight devices are supported, three of which are built into the board:
Battery-backed real-time clock (RTC).
Battery-backed Serial RAM (64KB).
SD card drive.
All code is written in 65C02 assembly. I’m using Beebasm as the assembler. Other, supporting code for this project is written in C++, Go and Python.
Key articles
You can search on the #zolatron tag for all the articles relating to the zolatron, but here are some of the key ones:
Zolatron: A homebrew computer of my own — a general introduction.
First steps to building a homebrew computer — looking at some of the fundamental decisions you have to make.
The hardware architecture of a homebrew computer — these choices shape your computer in many ways.
Homebrew computing: address decoding basics — address decoding is a crucial part of the architecture.
Clocking in: creating a homebrew computer’s pulse — creating the clock signal that will drive the computer.
Simple I/O address decoding for your homebrew computer — how to talk to input and output devices.
Git repo
There is a GitHub repo for this project with source code, schematics, Gerbers, documentation and more. The project is fully operational source under a CC-BY-NC-SA 4.0 licence, should you feel brave enough to make one yourself.
This page will be updated as the project progresses.


