Go Down

Topic: Wiring a Z80 to Arduino... (Read 16078 times) previous topic - next topic


D0..D7 is the Z80 data bus, just as A0..A15 is the address bus.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


D0..D7 is the Z80 data bus, just as A0..A15 is the address bus

I think it is the thought of wiring all that lot up more than anything else turned me on to microcontrollers!
My FYP was a 6800 controlled rover, and I damn near sprained my wrist wire-wrapping it.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


I don't get the D0-7

0..D7 is the Z80 data bus, just as A0..A15 is the address bus.

Doh, I must have written that before my first cup of coffee.

All the data lines should show 0v I would think, if that's not the case then the chip must be stuffed.

Rob Gray aka the GRAYnomad www.robgray.com


This project sounds prime for an FPGA


"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


Hello !
Sorry for the long delay (delayWeeks(), a new Arduino function...  :)), but
I was waiting for my Z80 - and other electronic stuff - from Jameco (which costed me 44 € for shipping PLUS
44 € for customs... ouch... never again !), and then I became father for the second time... So I'm just beginning
to have a little spare time for me again, before going back to work tomorrow (ouch again).
While waiting for the Z80, I made some tests with a 6502, and it worked perfectly. So, I've done the same tests
with the new Z80, and it works great.
- I've bought a 1Mhz oscillator, but it's too fast for the Arduino to keep up the pace, even with a basic test.
So I'm still using the Arduino as the source of CLK.
- The Arduino plays the role of an memory simulator (using the Arduino RAM for the Z80). For the time being,
I write my Z80 code and compile it on PC, then insert it into a byte array in the Arduino code.
(eg: char bytes[]={0x3E,0x20,0xD3,0,0x3C,0xC3,2,0};). Every time the Z80 requests a byte from memory, it is taken
from this array. Thank you Rob for the suggestion.
- It also serves as an I/O IC simulator : every time the Z80 outs a byte to 0, the Arduino sends it
back to the PC via Serial and then I can display it on my PC screen. I will use the same mechanism, in
the opposite direction, to provide a virtual keyboard to my Z80 computer.

Things I'd like to do now:
- use a real memory instead of the Arduino. Since I don't have an EEPROM programmer, I'm trying to use a NVRAM
but for now, it doesn't work (whenever I reset my circuit, some bytes - sometimes a lot- from the NVRAM get corrupted, don't know
why. Maybe a write occurs during the RESET with the WriteEnabled pin unstable ?). When it will work, I will set up a assembly chain,
so that I can write code on my pc, then assemble and download it into the NVRAM, with some kind of bootloader at the start of the
NVRAM (the Arduino will "listen" to IORQ queries on address X, and provide the data to the bootloader so it can write it into RAM - don't
know if I'm clear !?)
- use latches to provide more than 64 kbytes of memory (switching banks)
- connect a parallel 40x2 LCD display directly to the Z80, so it can output text by itself
- build or connect some kind of keyboard.
- connect some kind of mass storage. I've only a few ideas right now, like using the SPI interface of an SD-card.
- connect it to a VGA monitor. The tricky part for me, right now.
- write an O/S (multitask would be great, but is it possible without hardware NMI ?) and maybe a compiler before (or use some kind of C compiler for Z80,
like SDCC)
- make it multi-processor
- etc, etc...
Well, that's a lot to do ! It will eventually require a few years...
Thank you again for your advices and help !

cr0sh : sorry, I did'nt have enough time to explain why I'm doing this.
- first, I didn't know you could still find DIP40 Z80 (I knew of the Rabbit one, but where's the fun ?)
- I'm not interested in repairing it to have it work (I've had a 6128 CPC Amstrad, in the 80's, and emulators are enough for me)
- it's really for the sake of the educational value : I've always wanted to design and build my own computer,
but I work in the software businness, which is a really separate world (when you don't work with embedded devices).
- I was sure the Amstrad was in bad condition. When people sell you this kind of stuff, at a very low price, and without
the power cord (because they "could'nt find it"), 99 % of the time it's because it's not working anymore.



OK I know this thread is as old as my granddad.

If you're still there Boz, did you do any more with this?

Rob Gray aka the GRAYnomad www.robgray.com


Really enjoyed reading this thread and remembered having some old books lurking about some where.


graynomad said "I had a Microprofessor development board once"

Me too, left it at the office, went on annual leave (late 1983 iirc?... shit, exactly 30 years ago...), and some bar-steward stole it. I was not best pleased.....
Johannesburg hams call me: ZS6JMB on Highveld rep 145.7875 (-600 & 88.5 tone)
Dr Perry Cox: "Help me to help you, help me to help you...."
Your answer may already be here: https://forum.arduino.cc/index.php?topic=384198.0


Hi, I still have mine...

Tom... :)
Everything runs on smoke, let the smoke out, it stops running....


I still have mine...

I bet you don't use it much :)

Rob Gray aka the GRAYnomad www.robgray.com


I bet you don't use it much smiley

No not much. lol.

Tom... :)
Everything runs on smoke, let the smoke out, it stops running....


Z80s as microcontrollers now exist, if that matters to you.  Zilog makes "eZ80", Z8 "Neo", and "Z16" (16 bit architecture) as well as 8051 microcontrollers.  You may be able to sample them.  They also provide a free compiler and a very cheap programmer.

Compiler/IDE:  Search for "ZDS II - eZ80Acclaim! version 5.2.1 with RZK and TCP/IP Object Code" on Google (it's at the Zilog Store but there is no direct link).

I was able to get simple projects running with the Z8 Encore, eZ80, and the Z16 microcontrollers using the linked programmer and the free software.
I will never ask you to do anything that I wouldn't do myself.


Hi bozgrul35 ,
                             The Z80 I remember that, did a lot of work on that, in fact learnt most of my stuff on it back in the 80's.
Take a look here:  http://melsaunders.x10.bz/


Open your mind! But not too far, your brains might fall out.
Also like Photography, model building and my 300+ Cacti and Succs.


Love that stuff Mel, do you still use it?

Last I looked (maybe a year ago) you could still buy all the Z80 chips, SIO, PIO, CTC, etc etc. Over that period I have designed several modern boards with LPCs/SAMs etc but they all get too complicated for a one-man band to develop and produce in a reasonable time frame, and of course they are out of date two weeks later and also there are so many great 32-bit boards around now for about $1.50 I see little point in producing yet another one.

So, maybe the answer is to go retro, after all there won't be any competition :)

A Z80 board with an AVR co-processor that acts as an EPROM emulator would be a simple and fun project, but the question is what the heck would you do with it? Once you get it working and flashing a few LEDs what's next?

If I could think of an answer it might be worth doing.

@Joe, that $29 dev kit is "Z8 Encore! XP F08xA Series Dev Kit" but lower down it also says "For Use With/Related Products   Z8 Encore!®, Z8 Encore! XP®, eZ80Acclaim!®, ZNEO™ Dev Boards" so I guess that's the compiler/assembler one could use for the Z80.

Is that correct?

So for the Z80 you would not use the hardware in that kit, just the IDE/compiler?

Rob Gray aka the GRAYnomad www.robgray.com

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131