Created by Sinclair, Finn, last modified on Oct 02, 2017
8-bit retro goodness implemented with CMOS on a mixture of breadboard and prototype PCB.
This project is designed to implement a fully functioning 8-bit computer using specs relatively close to what the minicomputers of the 1970s home computing revolution used. Static RAM is used instead of dynamically refreshed RAM, which would have been more historically accurate. The EEPROM used is much more advanced than what would have been available at the time. In addition, Arduinos and other modern devices are used to support the homebrew computer, provide clock signals, monitor address and data bus activity, monitor CPU activity, and to flash the EEPROM with the bootloader, ASM code, or any other data that needs to be given to the Z80.
The memory-mapped UART module may not be included in the final build, as the 6850/68B50 ACIA is extremely hard to find online.
Given the lack of a proper UART, I will probably not be running Grant Searle's full Microsoft Basic, as that requires a fully functioning serial terminal connection. The primary use case for this computer will probably be running simple assembly programs, and showing the bus activity and CPU activity.
Specs:
Zilog Z80 with variable clock, either powered from a discrete 555 timer circuit or from the Arduino helper unit
32K Static RAM
8K EEPROM
8-bit omnidirectional data bus, full 16-bit memory address space
Full data and address bus monitoring, either with basic LEDs or monitored by the helper Arduino
Challenges:
Never designed PCBs before
Breadboards introduce signal noise, dirty rise/fall transitions, etc
Monitoring circuit: too many lines, need demultiplexer/encoder for Arduino
Perhaps use Raspberry Pi for more GPIO?
Custom EEPROM flasher powered by Arduino Nano, with a custom PCB.
References:
http://searle.hostei.com/grant/z80/SimpleZ80.html - Schematic for Z80-powered system. His site includes full ROM files for an interrupt-powered bootloader and BASIC, but I probably won't use these files as I will probably not use a full serial terminal interface.