


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.
For the source code for the programmer, click here.
To download the programmer, click here.
its really cool!! great work, im currently working on my own home made computer, hope to finish it soon.
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
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
that is great... anyway can you help me in programming z80,
can you post any schematic or design that can program z80.. pls..
Dude, a mini computer built from scratch. I've taken electronics for my GCSE's,so this interests me greatly. A mini computer...wow...
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!
awsome
Hi!!!, I found yor website searching for Z80 information, I think your work is interesting and inspiring, but I have some questions about de schematic that you hhttp://www.blake-foster.com/project.php?p=16ave, the first is what is the name or number of the parity chip, the 8x debouncer?? other question that I have it´s in the reset part what do you use?? it´s a relay or it´s a switch and a coil conected in parallel, I hope you can help me, because I want to start a proyect with a Z80 uP. Do you have other type of schematic for see more detail in the conections that you made???
www.blake-foster.com
Miguel,
The parity chip is a 74180, the debouncer is an EDE2008, and that's a relay in the reset circuit. That schematic is the only one I have available. You might want to check out these two projects:
http://www.blake-foster.com/project.php?p=36
http://www.blake-foster.com/project.php?p=33
The first is a digital clock, built with a Z80 processor. The schematic has a little more detail. The second is an EEPROM programmer, which I used to program it.
Thank you so much. I will check out this links, again thank you
I have also completed a Z80 computer recently. The book "Build your Own Z80 Computer" by Steve Ciarcia was my primary source for my computer. The book is also good as a reference, because it is a very practical guide.
Jerry
www.embedded-system.co
i am building a z80 SBC at the moment.
Good Job! Your next step? Did You like RS-485? Follow A Teeling advice... build ISA-bus to slot controller. Good luck!
yes it's great job , many yours and days for wrapping all nets me i use microprofessor MPF1-B from Multitech in 1988 now it's very outdated but for me i like found stuff for Z80. gérard thanks
Man, I wrote to you a few years ago, I`m continue with my Z80 computer and once again, back to see your work, its amazing, I study your schematic, and every time I watch it, I learn more, about your design, I want ask you about the memory map of you Z80 computer thats help me a lot to understand the design of your computer, to apply something like that in my design, thank you so much for reading :P and help.
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."