Grok The Z80 With This Simulator

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.

18 thoughts on “Grok The Z80 With This Simulator

    1. 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.

      1. 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!

  1. 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.

  2. 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

  3. ‘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.

  4. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.