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 – Friday, 1st August 2008
- Experimenting with a 32KB RAM – Monday, 4th August 2008
- Emulators and neatened wiring – Tuesday, 12th August 2008
- Z80 Light-flasher – Wednesday, 13th August 2008
- Z80 computer with a primitive I/O board – Wednesday, 20th August 2008
- 2MHz should be enough for anyone – Wednesday, 27th August 2008
- Running BBC BASIC on a home-built computer – Sunday, 7th September 2008
- Bank-Switching Memory and I2C – Thursday, 11th September 2008
- Times, backlights and off-page calls – Sunday, 14th September 2008
- 64KB RAM and a CHIP-8/SCHIP interpreter – Monday, 22nd September 2008
- Fixed and scaled CHIP-8/SCHIP interpreter – Wednesday, 24th September 2008
- Z80 computer - Lines, cubes and inverted text – Sunday, 5th October 2008
- Decoding SIRCS commands with a PIC16F84 – Sunday, 1st March 2009
- Thinking about CP/M – Wednesday, 24th February 2010
- Combining a Z80 and an ATmega644P to boot CP/M – Monday, 14th June 2010
- Keyboard input and RAM disks make CP/M more useful – Wednesday, 16th June 2010
- Booting CP/M 3 from an SD card – Wednesday, 23rd June 2010
- Integrating the dsPIC33 VDC with the Z80 computer – Saturday, 31st July 2010
- Mounting circuit boards and rear panel connectors – Monday, 9th August 2010
- A useful Z80 computer in a project box – Saturday, 14th August 2010
- A clock and a serial port for the Z80 computer – Tuesday, 17th August 2010
- A parallel port and a demonstration of the Z80 computer – Sunday, 5th September 2010
- Adding 11KB of RAM to a CP/M 3 system with a single NAND gate chip – Wednesday, 30th August 2023
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.