This Z80 Computer Bootstraps Itself

[Plasmode] has created several Z80-compatible board designs, at least four of them using the oddball Z280. The Z280 was a special variant of a Z80 that could bootstrap itself with no external PROM, making it ideal for anyone trying to build a system on a breadboard. According to his post, the cost to build the board is about $35.

Although the 8080 CPU got a lot of glory, it was much harder to use than the Zilog Z80. The Z80 only required a single clock and power supply, so it was much easier to build a system, even on a breadboard. On top of that, the bus wasn’t multiplexed and it could refresh DRAM memory by itself. Maybe that’s why you can still get Z80-derived chips readily. There was one thing, though, you needed an EPROM or some other way to run some initial code to bootstrap your system. Zilog knew this was a problem. In those days, you had to use a special tool to burn a PROM and, unless it was erasable and you had the special UV light to erase it, any mistakes cost you a chip.

With the Z280, it was possible to load files via the bootloader to make the device program its own EPROM, as this board does. The bootloader is simple. It loads 256 bytes of memory from the serial port and runs it. The chip has two modes with a 16-bit data bus and 24 address bits. However, it can also operate in a Z80-compatible mode. The chip had many innovative features like a memory management unit and cache, but failed to become a success.

As a CP/M board, though, this should be an easy build. The CPU runs with a 12 MHz bus and has a cool megabyte of memory split between RAM and EPROM. There’s a 44-pin IDE interface and two RC2014 expansion connectors.

While $35 doesn’t seem like much, you can get by with a lot less using a classic Z80. If you don’t mind using an Arduino for support, you can spend as little as $4.

32 thoughts on “This Z80 Computer Bootstraps Itself

        1. It’s Z80 compatible including most but not all of the illegals (in fact most of the illegals became documented instructions). Unfortunately the processor is incredibly buggy and this never really got fixed.

          It’ll actually run a lot more Z80 code than say a Z180 or an eZ80.

  1. > has a cool megabyte of memory split between RAM and EPROM
    24 address bits => 2^24=16MiB
    From wikipedia: Zilog added a memory management unit (MMU) to expand the addressing range to 16 MB.

    1. The 1802 (1973) had kind of a bootloader mode as well. Just that it was a parallel bootloader mode. You set it up for this mode (set /CLEAR and /WAIT to 0), and can then put parallel bits on the bus, pulse /DMA IN, and load memory in that way.

      If you add a UART and a little bit of control logic to toggle /DMA IN when a byte has arrived, you can easily turn it into a serial boot loader. Granted: you do need extra chips for that. ;)

    1. Or, you could build a 6502 from scratch instead of a kit and learn a lot more. Step by step videos with a walk through of the logic.
      https://eater.net/6502

      If you really are interested in the Z80, I don’t have a suggestion on that. Just thought the 6502 might be more fun for the learning aspect.

      1. If I wanted to dive in that deep into ASIC design I’d go with the NAND-to-Tetris course, or a J1 CPU. But I kind of do that for a living, I’d rather physically build something familiar to me and program it, like a Z80.

    2. Seems like a gimmick to me. I can’t think of any application that would use it. It’s only useful if you want a romless system. Maybe useful to make a base system that normally boots from rom, but with the ability of booting something else if you want (without removing or replacing the rom). But I would guess that you will end up never using that bootloader mode.

      What does look pretty interesting to me is the fact that it has program and supervisor mode (and MMU). Which means that you could run a quite serious multitasking operating system on this device. I don’t know if anything is available that uses this feature. But it would allow you to build a serious multitasking system, where user programs (running in program mode) cannot access peripherals other than going through the OS (running in supervisor mode), making for a much more stable system.

      But well, why would you want to make such a thing, while there is an alternative that’s much more powerful, has similar features, and is much nicer to program: the 68010. :) Only thing going for the Z280 over the 68010 is that the Z280 has a bunch of built-in peripherals, which will bring down the chip count.

      1. I developed the EPROM monitor using that feature. It is pretty handy, I don’t need to pull off the chip, program on TL866, and put it back. Your point is well taken; if people already has an EPROM programmer, why bother with learning to program EPROM on another machine. However, for newbie to retrocomputers without an EPROM programmer, this feature may be useful to program itself and other retrocomputers that use EPROM.

        UZI280 (unix-like OS) and RSX280 (RSX-11M-like OS) have been ported to Z280.

      2. While I’m sure the 68010 is a nice chip, I’m still struggling to either find an MMU for it or learn how to construct my own. The Internet seems to only describe what an MMU /is/ or how it works from a software perspective, but not how it works in terms of what logic gates I need to build. Seems like everyone who needed one jumped to the ’20 or ’30

    1. OTOH: https://hackaday.com/2019/01/02/fail-of-the-week-eproms-rats-nests-tanning-lamps-and-cardboard-on-fire/

      I tried the “leave ’em outside” trick for a week, and everything else I could think of, with very little success. Your chips may vary.

      For $15 shipped on a slow boat from China, an eraser is just the ticket. (If you can even still get them, and they haven’t all been torn apart for their precious germicidal UV bulbs…)

    2. Tried that. Failed. Even after months, all the data was still there. It might work if you live on the South Pole, under the hole in the Ozone Layer, but otherwise? You need UV-C light (253.7 nm) to erase the cells, and that’s being blocked by the Ozone layer.

    3. I tried this trick once with some 2732 or 2764 chips. Left them outside in direct sun for 3-4 days, nothing. Left them another 3-4 days and I found a handful of 0 bits had indeed evaporated. Then it occurred to me to at least angle the chips – they had been lying flat. That increased the erase rate tremendously, but iirc after a month or so, the parts were mostly blank, but there were still a bunch stubborn 0s. (Fwiw, 43 degrees N, in August, clear blue sky about 4 out of every 5 days)

      One experiment I wanted to try but never got to, was to set up a Xenon flash tube and try that, bc that story of the photographer’s flash wiping out someone’s demo due to an uncovered eprom.

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.