Z80 Computer

This is a simple Z80 computer. It's being worked on so the specs will hopefully get better and the OS will improve. I'd chiefly like to run the CPU at the full 10MHz.
The CPU is only running at 2MHz as the graphical LCD is comparatively slow (requiring a 900nS read or write cycle) and slowing the CPU down was easier than building the state machine to insert Z80 wait states.
Current Hardware Specifications
- 10MHz Z80 CPU running at 2MHz.
- 128×64 pixel graphical monochrome LCD (PG12864LRS-ANN-H).
- 128KB Flash OS ROM (available as 8 16KB pages).
- 64KB RAM (32KB always-available user memory, 16KB OS memory switchable for 16KB extra user memory).
- Two PS/2 ports for keyboard and mouse.
- Internal I2C bus.
- DS1307 real time clock.
Software Features
- Richard Russel's BBC BASIC supplies the interface and programming capabilities.
- Text input and output via a console.
- Keyboard input (fixed at UK layout, other layouts require the OS ROM to be reassembled).
- I2C bus routines.
- Date and time parsing and string formatting routines.
- CHIP-8/SCHIP interpreter.
- Line-drawing routines.
- Read-only file system using external 24LC256 EEPROMs.
Video
I recorded this brief video to discuss some of the problems in the design.
Journal Posts
The following journal posts have a lot of pictures and information on the project. They are arranged in ascending date order, so start at the top and work your way down if you want to follow the progress!
- Back to Hardware
- Experimenting with a 32KB RAM
- Emulators and neatened wiring
- Z80 Light-flasher
- Z80 computer with a primitive I/O board
- 2MHz should be enough for anyone
- Running BBC BASIC on a home-built computer
- Bank-Switching Memory and I2C
- Times, backlights and off-page calls
- 64KB RAM and a CHIP-8/SCHIP interpreter
- Fixed and scaled CHIP-8/SCHIP interpreter
- Z80 computer - Lines, cubes and inverted text
- Decoding SIRCS commands with a PIC16F84
- Thinking about CP/M
- Combining a Z80 and an ATmega644P to boot CP/M
- Keyboard input and RAM disks make CP/M more useful
- Booting CP/M 3 from an SD card
- Integrating the dsPIC33 VDC with the Z80 computer
- Mounting circuit boards and rear panel connectors
- A useful Z80 computer in a project box
- A clock and a serial port for the Z80 computer
- A parallel port and a demonstration of the Z80 computer
- Adding 11KB of RAM to a CP/M 3 system with a single NAND gate chip
Photos
Here are some more photos of the computer's hardware. They are not the most up-to-date photos, but should give you a rough overview of the hardware involved.

The complete computer in action. Click for a larger image.

Memory board, with Z80 CPU, 128KB Flash EEPROM and two 32KB SRAM ICs. Click to toggle labels.

The I/O board, with LCD pin header, control port and two PS/2 ports. The I2C bus driver circuit is also present.

Two 8-pin I2C chips; a DS1307 real-time clock with 32,768Hz crystal in the foreground with a 24LC256 32KB EEPROM behind it.

Early version of the hardware with the Z80, 128KB Flash EEPROM and single 32KB SRAM ICs on breadboard.

Early LCD test using a PICAXE-28X1 microcontroller.

Early RAM test using a PICAXE-28X1 microcontroller to record and play back an analogue signal.