Bookmark and Share
Z80 Microcomputer

Leave comment
The top side:


The bottom side:

This is an actual computer, built completely from scratch. I began the project in the spring of 2006, while I was taking a course on microcomputers. My Z80 system will remain a work in progress as long as I can think of new things to add to it.

The current specs are:
  • 2MHz 8 bit Zilog Z80 processor
  • 56 KB static RAM (7 x 8k x 8)
  • 8 KB EEPROM
  • 1 Mb Flash Memory "hard drive"
  • Interrupt controller with 8 interrupt levels
  • 20 character x 2 line backlit LCD with contrast control
  • RS232 serial port
  • 2 programmable timers
  • Programmable beeper
  • 8X DIP switch and 8X LED's for general purpose I/O
  • Strobe button for clocked input from the DIP switches
  • Parallel port programming interface with parity

I am often asked "what does it do." The answer I always give is, "Whatever I program it to." I've written a good number of different programs for it, mainly to test the various features.

I do all the programming on my PC, using Z80 assembly. I wrote a simple drag and drop utility in C++ that uploads the assembled code into the microcomputer's EEPROM chip.

The Z80 system has two modes, which I call "program mode" and "run mode." In program mode, the system bus is disabled, the wait line on the CPU is activated (prevents the CPU from doing anything), and the onboard parallel port interface is given control over the EEPROM.

The parallel port interface works with 3 registers, 2 to store an address and one to store a data byte. In program mode, the outputs of these registers are connected to the EEPROM. To program a byte into the EEPROM, the programming utility transmits the address and data into these three registers over the parallel port. It then activates the EEPROM's write line, which loads the byte into memory at the desired address. The programming utility reads through the assembled code and writes each byte using this method, incrementing the address on each step.

The parallel port interface also has a parity chip which sends the parity of each byte back over the parallel port to my PC. By reading back the parity after each write cycle, I am able to detect single bit errors.

In run mode, the parallel port interface is disabled, the wait line is deactivated, and the system bus is enabled. When the reset button is pressed, the address 0 is loaded into Z80's program counter register. As the EEPROM is located at address 0, this causes the Z80 to execute whatever code I have stored in the EEPROM.



Comments:
A Teeling (from Virginia Beach, VA) October 17, 2008, 4:12 pm
Your homebrew computer looks pretty good.

I too am looking to build a scratch computer. Do you have a recommended textbook on the subject, perhaps similar to the" Build your own 8088 based microcomputer."
manolo (from mexico) November 10, 2008, 8:33 pm
its really cool!! great work, im currently working on my own home made computer, hope to finish it soon.
Marek Kuczynski (from Nottingham, UK) February 15, 2009, 6:18 am
Looks great! I'm dabbling with a Z80 at the moment. Could you tell me where you got your Z80 assembler that runs on a PC? Thanks, Marek
Blake February 15, 2009, 6:38 am
www.blake-foster.com
Marek,
I can send it to you if you want. Just send me an email with my contact form (use the contact link at the bottom of my page).
-Blake
raymund July 28, 2009, 3:31 am
that is great... anyway can you help me in programming z80,
can you post any schematic or design that can program z80.. pls..
Matthew (from England) September 27, 2009, 4:03 pm
Dude, a mini computer built from scratch. I've taken electronics for my GCSE's,so this interests me greatly. A mini computer...wow...
Connor February 12, 2010, 12:14 am
www.connorsdomain.com
AWSOME I've always wished I would get this far into electronics and be able to do something simalar to this but its not like there is a microprocesser class right around the corner and its not like i can just get up and go to one i might try to find one over the summer but its gona be hard to fine a class that teaches THIS and i know the basics i got lent a $5,000 ocillicope and it works great i also have a ajustable power supply and i can buy a few things considering the fact that i saved up over $100 dollars so now is the time to learn great z80 microcomputer! i hope i can do this too soon!
Anonymous April 12, 2010, 10:32 am
awsome
Leave comment

Name (optional):

Location (optional):

Website (optional):

Comment:

Characters remaining: 600


Please enter the code that appears in the above image to verify that you are human: