Many of us will have at some point encountered a Z80 microprocessor, whether we’ve bare-metal programmed for it, or simply had a go at blasting some invaders on a game system using one. Like all the processors of its era, it’s got a relatively simple and accessible internal block diagram, so there’s a good chance that readers well even know how it works, too. But do any of know how it really works, down to the gate, transistor, and net level? [Goran] does, because he’s written a Z80 netlist simulator that allows the running of code alongside the examination of the chip and its signals. It’s not particularly fast, achieving a modest 2.3kHz clock speed when run of a fairly high-end PC, but we’re guessing readers needing to run Z80 code for anything other than learning would use the real thing anyway.
There’s a video of the software in operation which we’ve placed below the break, and we can see it will be a fascinating tool even to people who aren’t dedicated reverse engineers. To be able to bring up a logic analyzer view of the internals of a processor while it is in operation is truly astounding if you are used to it as a black box, and to have logic diagrams at your fingertips rather than puzzling out individual transistors really gives a window into what is going on.
This isn’t the only such simulator out there, in the past we’ve mentioned Visual6502, when we covered the Monster 6502.
Super, Super interesting!
WHat the hell is a “Grok”?
Grok is a term originated by Robert Heinlein in his novel Stranger in a Strange Land almost 60 years ago.
It’s been a common term among techies for a long time. It means, roughly, to understand on a deeper, intuitive or empathetic level—almost as if you are one with it—as opposed to a more superficial understanding.
https://en.m.wikipedia.org/wiki/Grok#Descriptions_of_grok_in_Stranger_in_a_Strange_Land
As opposed to the Unix command “grep”.
“to drink”
“to drink grog”
FTFY
B^)
the word on a superficial level would mean something similar to “drink” but more along the lines of “understand” but very, very deeply understand. Joe Z has the origin story.
Either you grok grok or you don’t grok grok.
Much less grok it in its fullness.
What the he k is a microporcessor? ;)
Micro is from ancient Greek meaning “tiny”
Porc is from ancient Latin “porcine”; relating to pigs (pork).
essor is from Olde English, meaning “a person who”, such as a professor is “a person who proofs(proves)”.
Therefore, microporcessor is “a person who makes(raises) miniature pigs”.
You’re welcome!
Because,
BACON!
Ah, a small person who porcs. Right.
I keep coming back to wanting to build a z80 system. Not from a kit, but based on the fundamentals.
Back in the 90s a couple of local hobbyists had built their own z80 based system and were running BBS on them that supported multiple dial-in users at a time. I think the systems ran a forth interpreter.
I know one of them still used 8″ floppies for years and whenever the disc failed he’d have to dig up another one and we lost a few forum posts.
It was quite archaic and that’s why the local community loved it.
Dang, that’s impressive!
That is truly mind blowing!
Having made a full Z80 editor / assembler / debugger IDE in bare metal in about 1989-1991 on my Spectravideo SVI328 (and assembled it in itself), only increases my appreciation and admiration for what Goran Devic has achieved in this project. Well done!
Now, if only I could find my cassette tapes of my IDE
‘truly mind blowing’ … I agree. My mind would have wondered off long ago. Grok is right… and some ‘super’ perseverance to see the project through is another, even given the time to work on the project!
My experience with a Z-80 was first on a DEC Rainbow. But not low level. Next was a big assembly program running on a custom board for SCADA RTUs. I just ‘fixed’ a few bugs, didn’t help write the initial (very well documented) code base. Sure appreciate the work that went into it though. Keep wanting to get a SBC Z-80 to play with…. maybe when I retire.
Amazing work! His documentation for this is also top notch!
I looked at Z80 layout a few years ago and gave up. I grew up on ZX Spectrum and I can still code some assembly, with the help of google. Yeah, this is next level.