A 6502-based homebrew computer. This will be nothing fancy. It’ll be slow and very basic. But it’s a way of improving my understanding of how computers work. And it’s about having fun.
This is likely to be a long-running project. It’s named after my beloved spaniel who departed this life a few years ago, and who can be seen channelling Steve Jobs in the image on the right.
I’m going to be adding full documentation bit-by-bit as I get time. So keep checking back.
- Memory Map
- ZolOS operating system
- ZolaDOS file system
- Zolaterm (Go program on RPi)
The machine is based on the 65C02 run at a stately 1MHz. It’s a backplane design with all components on plug-in boards. These attach to the backplane via DIN 41612 A/C 64-pin connectors.
The boards are:
- CPU board: 65C02 microprocessor; AS6C62256 32KB RAM chip; AT28C256 EEPROM (32KB but I’m only using half for the system ROM); 1MHz oscillator; reset button.
- General-purpose interface board: a 65C22S Versatile Interface Adapter (VIA), providing 16 general-purpose I/O (GPIO) connections, timers and more. I typically use 2-3 of these at any one time. One drives a 20×4 character LCD display and some status LEDs.
- Serial console board: This uses a 6551 ACIA to provide a serial connection which I’m using as my main I/O. The serial line is connected to a Raspberry Pi. I SSH into the Pi to use the Zolatron.
- Dual UART board. Based on the NXP SC28L92 chip, this provides two UARTs for serial applications. This has now replaced the Serial console board.
- Raspberry Pi board: This hosts a Raspberry Pi Zero 2W which talks to the Zolatron via an on-board 65C22 VIA. The Pi provides a serial console (see serial console board above) and mass storage via my homebrewed ZolaDOS software.
- Parallel printer board: Using (again) a 65C22 VIA, this has a Centronics compatible 25-pin connector for hooking up to my dot matric printer.
- Extended memory board: This hosts a 128KB SRAM chip, which is available to the computer as 16 8KB banks. The bottom four banks (0-3) can be replaced with ROMs using onboard jumpers.