Talking DIY Z-80 Retrocomputer Complete with Dev Tools

[Scott Baker] wanted to take on a new retrocomputing project. He decided to build an RC2104. Lucky for us, he documented everything along the way. In addition to the main board, [Scott] built bus monitoring and debugging tools, a front panel, a real time clock, an analog to digital converter, and a speech synthesizer.

You can follow along in the 8-part post that includes videos. He started with the basic kit:

  • CPU – The Z80
  • ROM – 27C512 64 KB ROM, selectable in 8KB banks
  • RAM – 62256 32 KB RAM
  • Clock – 7.3728 Mhz crystal that drives a 74HC04 hex inverter (for the CPU and the UART)
  • Serial I/O – MC68B50 UART

In addition, he picked up a digital I/O board.

The custom boards cover a wide range of functions:

  • Real Time Clock (RTC) and digital output
  • Bus Supervisor – A Raspberry Pi to control the bus for development
  • Bus Monitor – Display address and data busses
  • Front Panel – Switches and LEDs as an I/O device
  • Single Stepper / Slow Stepper – Slow down execution (without it, the bus monitor isn’t very useful)
  • Speech Synthesizer – A 1980s-style voice using a SP0256A-AL2

This is a great exposition of building and designing a vintage Z-80 computer. There’s a good discussion of the interfacing and bus operation. This system would have been way beyond state of the art in 1979.

We’ve talked about the RC2014 before. We’ve even covered projects using the venerable SPO256 speech synthesizer.

26 thoughts on “Talking DIY Z-80 Retrocomputer Complete with Dev Tools

  1. I like the RC2014 a lot and it’s a great easy build that you can get running with strip-board. I perhaps am not so fond of the harder to get chips and I don’t know why he just didn’t use FLASH instead of EPROM. Probably just to keep it authentic to the era.

    EPROM is so hard to program with bits of junk lying around because of the odd voltage requirements. At least with FLASH you can stick it into a Arduino Mega and download code. Then there is the UV exposure to erase it.

    I’m fairly amazed that he can get the CPU to clock at 7+ MHz on strip-board with all the parasitic capacitance and the lack of a bus terminator.

    I would do much the same if the target is strip-board but the limitation of 34 strips on a strip-board and hence a bus width that has to drop signals like BUSRQ and BUSAK means that you can’t drop in a micro-controller and USB to serial bridge for code development.

    I am tempted to try something similar if I loose any more sanity. 50 pin headers for the bus. Slide in cards like the old racks. All signal from the bus to other components on cards going through CPLD so solve routing issues, allow for simple upgrades or changes to configuration, and of course the glue logic and also so single sided boards can be used.

    Also just to clarify – the speech chip was called sp zero two five six and not spo two five six. I see it written wrong around the net quite a lot.

    Correct – SP0256

  2. That RC2014 is a definitely a winner; it seems like it showing up everywhere lately. I would make a few improvements though: edge connectors to keep the plugin boards cheaper, and an easy-to-program microcontroller to simulate the ROM instead of dabbling with EPROM or EEPROM. I’m thinking of making one with a 65C02.

    1. The main bus connector is just single row pin headers and you can’t get cheaper than that. It all grew out of strip-board so you can make it single sided.

      For ROM, I thought FLASH would be best but live programming is not a thing that I can see happening because the Bus Request and Bus Acknowledge signals were discarded so that it all fits onto standard width strip board.

      1. With a Propeller there are plenty of pins to monitor the address bus and control an SRAM chip. It’s fairly easy to let a Propeller bitbang the bus to let the CPU (Z80 or 6502) boot from a short program that fills the SRAM from data that the microcontroller delivers to the processor (I’ve done this in my Propeddle and L-Star projects). Then reboot the CPU and let the Propeller be a live address decoder to put the SRAM chip on the bus in read-only or read-write mode or a combination. With a Propeller, putting a binary file (e.g. a binary ROM image) into the firmware is as easy as changing a FILE command in the source code and downloading it via a (USB) serial port. I’m thinking it might even be easier if the Propeller runs software that can receive XModem, YModem or ZModem or something so you don’t have to recompile the firmware every time you want to change the ROM image.

        And if you’re not familiar with the Propeller, you can probably do something similar with an ATMega 1284 or something. No EPROM erasers or special circuits required, and no long waits either.

      1. Yeah the 6502 bus is a bit simpler than the Z80. Just a clock, a R/!W pin, 16 address bus lines and 8 data bus lines. If I recall correctly, the Z80 uses four pins to control the bus: two to read/write memory and two to read/write I/O devices. Putting a 6502 on a Z80 bus has been done before (many times) so the logic to do it is easy to find.

        I have a project on Hackaday working on some ideas about a 6502 version of RC2014 but I haven’t done much so it’s private at this time. I’m thinking of using ISA bus card edge connectors, they’re ubiquitous and cheap.

        1. ISA bus edge connectors died for a reason lol. They can’t handle dust or vibration very well. It may work with the constant re-plunging while your developing but after that you find the re-plugging may need to continue once it’s otherwise finished.

        2. Does anybody knows which ‘modern’ chips (CPU only or MCUs) have an external parallel bus (address/data) that could replace the Z80 in this design?

          I remember that some microcontrollers (like the 68HC11) could use internal or external RAM/ROM, but I don’t know if modern microcontrollers support that, given they now come with much more RAM/EEPROM/Flash than the 68HC11.

          1. A great question and I wish I had the answer but I will offer some observations.

            The Z80 is still in production as a DIP or QFP but it is 5 Volt. There is also some Z8 and Z180 micro-controllers but I am not sure what voltage they are of if the support external RAM / ROM.

            There are versions of the 6502? 6802? and 68000 still in production. If there is a 3v3 version then it would be good to go with modern support chips.

            The course for these chips seems to have been
            1) CPU only using external peripherals, RAM, ROM, IO
            2) Micro-controller that optionally can use external RAM or ROM but has peripherals and IO built in.
            3) Micro-controller only with inbuilt SRAM, FLASH and has no data or address buses.

            It would great if someone can answer the original quest from [replacement_cpu?] and also mention the voltage Vcc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s