Introduction: Build Your Own Z80 Microcomputer

Picture of 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

Picture of 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:

Picture of

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:

Picture of

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

Comments

mkpeker (author)2017-04-12

for latest version, please check this instructable;

https://www.instructables.com/id/Z80-Monitor-Type-Operating-System-and-SBC/

Istarian (author)2015-04-14

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

mkpeker (author)Istarian2017-04-10

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

mkpeker (author)Istarian2017-04-09


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

mkpeker (author)Istarian2015-04-15

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

ДеянД (author)2015-11-03

Really creative ;)

8bitbeliever (author)2015-05-15

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!

FieldingBlue (author)2015-04-16

Fantastic trip down memory lane for me. I built a TEC-1b in '87 which is Z-80 based and it was the best fun. It still works too. http://en.wikipedia.org/wiki/TEC-1

Thank you

mkpeker (author)2015-04-15

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

silentbogo (author)2015-04-12

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

billbillt (author)2015-04-12

GENIUS!!!!.....

onderyilmaz (author)2015-04-09

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

mkpeker (author)onderyilmaz2015-04-10

Teşekkürler.

DIY Brothers (author)2015-04-10

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.

mkpeker (author)DIY Brothers2015-04-10

Thank you very much.

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

Brusk101 (author)2015-04-10

very nice

pfred2 (author)2015-04-09

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.

amberrayh (author)2015-04-08

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

mkpeker (author)amberrayh2015-04-08

Thank you Amber, I will... :)

About This Instructable

22,158views

273favorites

Bio: Orthopaedic Surgeon, Paragliding, Skiing, Digital electronics, Microcomputer lover.
More by mkpeker:MP-4  Simplest 4 Bit TTL CPUZ80 Monitor Type Operating System and SBCSimple FM radio (sure works!)
Add instructable to: