Build Your Own Z80 Microcomputer

23,585

277

19

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

Intro: Build Your Own Z80 Microcomputer

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

-8K ROM, 8K RAM


-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)

3FE0H: STACK START ADRESS

3F00H-3F45H: SYSTEM VARIABLES

Communication format is; 2400-8-N-1

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

NOTE: MONITOR PROGRAM IN THIS INSTRUCTABLE CHANGED. Please download new v3 hex file;

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

Step 3:

Operation;

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

Share

    Recommendations

    • Electronics Tips & Tricks Challenge

      Electronics Tips & Tricks Challenge
    • Plastics Contest

      Plastics Contest
    • Optics Contest

      Optics Contest

    19 Discussions

    0
    None
    Istarian

    3 years ago on Introduction

    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
    0
    None
    mkpekerIstarian

    Reply 1 year ago

    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;

    https://mkpeker.wixsite.com/efex


    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

    0
    None
    mkpekerIstarian

    Reply 1 year ago


    This is alternative server:
    https://mkpeker.wixsite.com/efex

    0
    None
    mkpekerIstarian

    Reply 3 years ago

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

    0
    None
    ДеянД

    2 years ago

    Really creative ;)

    0
    None
    8bitbeliever

    3 years ago on Introduction

    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!

    0
    None
    mkpeker

    3 years ago

    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

    0
    None
    silentbogo

    3 years ago on Introduction

    Nice!

    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

    0
    None
    DIY Brothers

    3 years ago

    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
    0
    None
    mkpekerDIY Brothers

    Reply 3 years ago on Introduction

    Thank you very much.

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

    0
    None
    Brusk101

    3 years ago

    very nice

    0
    None
    pfred2

    3 years ago on Introduction

    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.

    0
    None
    amberrayh

    3 years ago on Introduction

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

    1 reply