Protoboard Z80 Computer Teaches The Basics

As curious people, we’re all incredibly fortunate to live in an age where information can so easily be obtained. If you want to learn how something works, from a cotton gin to an RBMK reactor, you’re just a few keystrokes away from articles, diagrams, and videos on the subject. But as helpful as all of that information can be, we also know that there’s no substitute for hands-on experience.

While we can’t recommend you try building a miniature graphite-moderated nuclear reactor, there’s plenty of other devices that you can study by constructing your own functioning model. For example, when [Jorisclayton] wanted to really know what was going on inside a computer, they decided to go back to basics and build their own Z80 machine. To maximize the experience, they skipped any of the existing kit designs and instead wired the whole thing up by hand across a few perfboards.

The main board contains a 4 MHz Z80 processor, paired with 32K ROM and 64K RAM. Here you’ll also find the clock generator, I/O decoder, serial port, voltage regulator, and a trio of expansion slots that use a long strip of 2.54 mm pin headers as the interface. In the first expansion slot you’ve got a primordial “graphics card” based around the TMS9918 video display controller (VDC) and 16K of additional RAM. The second expansion card has a CompactFlash reader and an LED array mapped to I/O address 0x00h so it can be used for various notifications.

[Jorisclayton] says the final expansion board is still being worked on, but the idea is for it to handle user input through a PS/2 keyboard connector, as well as provide ports for a pair of Super Nintendo (or compatible) controllers. Everything is held together with a minimalist 3D printed frame to show off all that careful soldering.

Obviously there’s no PCB design files to share for this one, but [Jorisclayton] has posted a schematic for wiring everything up if you’re looking for resources to build your own Z80 computer. Sure the chips themselves might no longer be in production, but that doesn’t mean this venerable CPU is going anywhere just yet.

16 thoughts on “Protoboard Z80 Computer Teaches The Basics

  1. Makes me wonder if there is a big enough market these days to create an ASIC graphics chip based on either an old design or something more modern? Given the extremely high costs of going ASIC would there even be a demand, when you could make it in FPGA and have it on a DIP form factor PCB?

    1. I don’t think there is enough demand to make an ASIC practical. Most people would just use an FPGA. It doesn’t even take a very large FPGA to make a simple graphics controller.

  2. Makes me wonder if there would be a big enough market for a custom ASIC graphics chip (either replicating an old thing or a more modern creation) for projects like these? Given the costs, or would a FPGA on a DIP PCB be sufficient?

    1. Is this what you mean:
      https://www.fpgasid.de/

      But why stop there? Back in 2004 Jerry Ellsworth designed the “CommodoreC64 Direct-to-TV” in a joystick that got sold for some time. Z80 is probably at Opencores.org too, but for some reason I can’t seem to browse the projects on that site at the moment.

    2. I don’t know if the market would be big enough, but IMO it would have to be encased in plastic DIP package to appeal to some hackers. As others noticed, there are projects with BGA chips on a PCB, but that just doesn’t look good when paired with a vintage 6502 or Z80. For all I know the vintage CPUs you can get on AliExpress nowadays could as well contain ARM cores with Z80 emulator firmware, but as long as I don’t know that and I don’t _see_ that, I’m kind of okay with that.

      And as for the graphics chips, I’d love to see a drop-in TMS9118 replacement with some embedded RAM supporting, say, 640×480 with at least 256 colors. And a 80×25 text mode for a proper CP/M terminal. If it also had double buffering and a rudimentary BITBLT engine, oh, that would be awesome.

  3. This is a great build. The next cool step would be to build the legacy TRS80. I don’t mean an emulator running on some other platform but a true TRSDOS/DOSPlus/DRDos booting hardware. Since floppies are history an emulator offered on eBay would work and since tubes are gone a basic LCD screen would do. Also there is a graphic addon card available too. Probably the boot ROMs are still patented but could be reverse engineered to work with the modern hardware. Just a thought as other legacy computers have been recreated. Maybe this has already been done but if not…the challenge is on.

  4. It’s a bit of a s shame there are no pictures of the backside of the PCB to show the wiring mess. I can sort of understand wanting to hide that mess, but showing it like it is, is also informational.

    The board with the memory card shows thick insulated wires. I also started off in that way, some 35 years ago. Later I learned to use “enameled” wire. This is much easier to use because you don’t have to strip it first. The much thinner wire also makes much less of a mess. For most connections I use 0.2mm is good up to around 300mA With even thinner wire, then mechanical strength may become an issue.

    To work with enamaled wire, you do need a solder station that can be set to a higher temperature. Even better is to have two soldering stations. One “stationary” to burn off the lacquer and pre-tin the wires. the other with a lower temperature, so flux does not evaporate as quickly and there is less chance of damage to both the pcb and the wire at unintended locations.

    1. Good suggestions. I did have trouble once with enameled wire, because there was enough crosstalk between the wires to cause glitches, but those were wires about 200mm long. My go-to at the time was Kynar-insuated wire-wrap wire, and I ran out one day, but Kynar had its own problem: the insulation melted too easily, so I had to make sure a wire wasn’t touching another wire when I soldered it. The two-iron solution sounds good, though: once a tip is too old to keep tinned well, it gets a second life as a stripping tip.

      1. The thinner insulation of enameled wire does indeed promote crosstalk, but there is an easy remedy. Do not make nice looking bundles of your wire but route the wires a bit haphazardly. It “looks uglier”, but it is much better from an electrical point of view. Having a little bit of extra wire length also both helps with making “bows” in the wire to prevent parallel runs, and you can move the wires aside when you need to solder in between them.

        If you want your project to last for a long while, you can glue the wires in place after testing / verifying the circuit works. If you use hot melt glue, then it is even easily re-enterable if repairs need to be made. Hot melt glue mostly disintegrates in alcolhol (burning / bio-ethanol, spirit, isopropanol). You could even use a water based glue so it can be dissolved later if needed. The stuff used for wallpaper may even be a good choice, but I have not tried.

        I have one-off projects made this way running reliably for 20+ years now. This method is just as reliable as an etched PCB. For one-offs I guess extra time needed for laying and soldering the wires is offset by the time saved by not having to design the PCB. Although, lately I am at least doing parts placement and partial routing in KiCad, because it helps with planning how dense the parts can be placed on the vero / matrix board.

        The biggest problem with this method is a lack of a GND plane, which reduces signal integrity.
        I guess it would be nice to have proto boards, in which one side is filled with singular pads, and the other side is a big GND plane. None of the holes should be plated, and the GND plane should keep some clearance from the holes too to prevent shorts.

  5. Yeah, this was the biggest problem for me growing up in the 80s and 90s.
    Getting access to documentation on a subject.
    For instance, we had a RiscOS computer at home (A3000) and lots of them at school.
    The only way we had to develop RiscOS desktop applications was collect other applications that happen to be written in BASIC and reverse engineer them.
    So most of our information came word of mouth from other school children.

    1. You could’ve requested the TRMs from your local library. There was also plenty of info in Acorn User magazine about writing desktop apps. It was free to read in WHSmith :⁠-⁠)

  6. “In the first expansion slot you’ve got a primordial “graphics card” based around the TMS9918 video display controller (VDC) and 16K of additional RAM. ”

    The later version, the V9936, is such a much more enjoyable VDP, I think.
    The TMS9918 and V9936 compare like CGA vs MCGA.

    The 9918 might be a nostalgic piece of hardware, but it’s as much of a” graphics chip” as the Motorola 6845 is (that’s a text generator, really).

    To be fair, though, it’s cheap and good for tinkering. It’s also good if those 9918 parts get used up, finally. The fewer there are out there, the better. ;)

    Users who want more will likely upgrade anyway or switch to something else.

    Btw, here’s an overview of different VDPs:
    https://www.msx.org/wiki/Category:VDP

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.