Build Your Own Z80 Microcomputer





Introduction: Build Your Own Z80 Microcomputer

About: Orthopaedic Surgeon, Paragliding, Skiing, Digital electronics, Microcomputer lover.

First Efex computer designed in 1998 by myself and dedicated to my son Efe, initial version was 4Mhz, 4 kb memory and simple out of standard serial comunication protocols.
This winter I decided to re-design and improve this Project and let other hobbiests can build their own z-80 computers.
Current version is V2 and added following fetures;
-Standard 2400 baud software UART
-Moduler monitor software design
-RS-232 port
-Intel hex file download over serial port


-Cassette interface (under construction)
-LCD interface (under construction)
-Minimal chip count version (under construction) this 3 features will be added shortly and will be publish here

Step 1: Circuit

Circuit composed of clock circuit (74LS04), Adress decoder (74LS139),CPU, EPROM, RAM, two PIO’s (82c55), Rs-232 level converter (Max 232), 4x4 keypad encoder (74c922).

As you can see there is no critical and hard to find parts (may be 74c922 but I promise in newer versions it wont be necessary).

Main idea was simplicity so that I connected 7 segment displays directly to 82c55 outs. Dont worry there is enough sink current to drive leds. In new produced board I used common anode type displays but you can find common anode version rom program in software page below.

By software UART, maximum baudrate can achieve is 2400 BAUD.

For cassette interface recommended baudrate is 110.

I realised circuit by wire wrapping. (efex.dsn file is for proteus circuit design suite.)

Step 2: Monitor Program

Here is Monitor program in intel hex format.

In test circuit I used AT29c010A instead of 27c64 EPROM.

You may use any kind of ROM (even NVRAMS)

Memory organisation is as follows;

0000H-1FFFH: ROM

2000H-3FFFH:RAM (Memory organisation is important for stack and system variables)



Communication format is; 2400-8-N-1

INTEL HEX download routine: Display adress jumps automaticaly to downloaded program's start adress


Whats new; Intel hex save added, User definable RUN adress added bug free version

Step 3:


Computer boots with a hot start. No memory change. This mean if you use battery backuped RAM, you may save your programs.

Display Shows version name shortly then 2100H and the data contained by prompted adress.

when you typed hex keypad, last two displays shows the data that you pressed.

if you press enter, computer writes the data into promt adress, shows shortly to verify then adress increases and shows its content again.

To run program, you wrote or download you must press 'Shift' key first and RUN key (on 3) simultaneously.

than follow messages on display. If you press reset button, no data loose. just starts from 0000h

RUN: SHIFT + 3 (Asks adress and Runs user programs)

LOAD: SHIFT + 2 (Downloads intelhex programs over serial port by terminal software)

SAVE : SHIFT +1 (Saves programs as intel hex file by serial port)

To change display adress: Press ADDRIN buton continously during typing in hex keypad

Whats Next: CSAVE and CLOAD (cassette saving), FILL and COPY commands, DUMP command and DISASSEMBLY coming soon.. :)

Step 4:

If you realise this Project, please inform me with pictures.

Prize will be source code of this version and some hiddedn features of ROM program.

Thank you for your interest

Dr.Mustafa Kemal PEKER

Aydin, Turkey



    • Casting Contest

      Casting Contest
    • Clocks Contest

      Clocks Contest
    • Woodworking Contest

      Woodworking Contest

    We have a be nice policy.
    Please be positive and constructive.




    Interesting. Why not use a hardware UART? Are parts hard to come by there?

    I would think a cassette interface for a recent design would be something of a historical curiosity. Any particular rationale for that choice as opposed to simply loading over the serial port or some kind of removable storage (a lot of people seem to like sd cards)?

    3 replies

    Hi Istarian,

    At last my monitor type OS (with inline assembler and disassembler )is ready
    Please setup and try this v1.0b
    you can find all necessary information in my Efex pages;

    please send me your comments than I can improve software

    Thank you

    Please note that new os is not for efexV3 hardware, you must change setup of circuit with new memory map

    This is alternative server:

    Thanx for your comment. I will add hardware uart in next version.

    Awesome build! I am trying to build one as advanced as you one day! I am currently just building one with real I/O and I am trying to program a basic monitor after I get that. Awesome build man!

    My dear followers. Im writing new tty rom for this microcomputer and trying to add inline one pass assembler to this project any help appreciated. Thank you


    As a kid I used to go to my neighbor to play on ZX Spectrum.

    His machine had some cool addons, like extra 64K of RAM, Beta Disk and external 5.25" floppy drive. That's how I got involved with programming: started with GWBASIC and TURTLE

    Hocam gerçekten tebrik ederim, başarılarının devamını dilerim.

    1 reply


    Very cool project. I'm studying the Z80 cpu at school. I think that I'll try to realise this awesome project. Thank you for sharing it.

    1 reply

    Thank you very much.

    If you experience issues during realising this project, please dont hesitate to contact me. All queries will be answered.

    Pretty cool. I made a Z-80 computer in the 90s myself. It was hard back then being as I had no other computer to use while I was making it. Ever try to hand program an EPROM? I have. It didn't work for me. I did make an EEPROM work though. One pass is a lot easier.

    Great project. Thanks for sharing! I hope we see more from you on Instructables in the future!

    1 reply

    Thank you Amber, I will... :)