So, you may well remember that I entered Retro Challenge 18 months ago, and what a fun crazy busy time that was! Well, the January Retro Challenge competition is about to kick off in just over 2 weeks.
If you’re not familiar with Retro Challenge, shame on you! But you can de-shame yourself by heading over to http://www.retrochallenge.org/ and seeing what it’s all about. Essentially, it’s a month long bi-annual competition where the entrants set themselves a goal based around old school computing and blog, tweet and share their experiences. The goals are pretty loose, as long as they are based on something from last centuary (modern emulators of old kit is fine).
The challenge I set myself was to take a breadboard based Z80 computer and bring it to life in modular PCB form in such a way that I could spell out my name on. Have a look back through my blog to see how I did. Spoiler —->
A lot has has happened in the last 18 months, and the RC2014, as my Z80 modular computer has come to be known, now has it’s own blog, some tweaks and is on sale in kit form on Tindie. This is all very well and exciting, but I can’t rest on my laurels. I have to come up with something to top it for 2016. I don’t think simply renaming my RC2014 computer as RC2016 will quite cut it!
According to the entrants list, I have defined my challenge as
Following the success of the simple Z80 I made for Retro Challenge 2014 (which I creatively named RC2014), I have decided to build on this and make it the basis of a classic 80’s computer clone. It already shares some similarities with the likes of the ZX80, ZX81, Jupiter Ace, Spectrum and a bunch of other machines, so adding in some modules with the circuitry bespoke to these machines and the appropriate ROM should give me a working replica.
Of course, this could all go badly wrong and I spend a fortune designing PCBs that don’t work, but, hey, that’s the fun of Retro Challenge, right!
So, what will this involve? Well, essentially this is a reverse engineering challenge. And a PCB design challenge. And putting-it-all-together-and-hoping-it-will-work challenge.
Firstly, the reverse engineering part. As far as computers go, there’s nothing too complicated about the Jupiter Ace or ZX80. The ZX81 is actually much simpler than the ZX80 due to a whole load of circuitry being condensed in to a single chip (ULA – Uncommitted Logic Array). The Spectrum has it’s own ULA and a whole load of extra circuitry too. At the moment, I am resisting the urge to look at the circuit diagrams for these machines (that’ll be cheating if I started now!), but from memory the keyboard stuff is the same or very similar across all these machines, and the video side is pretty similar. CPU and ROM are pretty much the same, and although RAM size will vary, that is kind of the same too. I’ve just got to take various RC2014 parts (CPU, ROM, RAM) out of the other machines and work out what’s left and how it goes together. I am expecting to have a module for keyboard interface, a module for video output, a module for cassette interface (although I might not bother with this), and something else to stick it all together.
The PCB design side of things shouldn’t be too bad – although due to how long it takes to get a board made in China and shipped over, I have got to get things worked out pretty quickly if I stand a chance of completing things within 4 weeks. The RC2014 was designed with Veroboard in mind, so if I’m really up against it, that could work in my favour. The other thing I might be limited by is that the RC2014 header only has 4 spare bus pins (6 really, if I’m not using the serial IO board), so I need all the modules to be as self-contained as possible.
Putting it all together should be ok, although if there’s any design problems I won’t have time to spin up some new PCBs – so there might be a lot of bodge wires involved. Maybe even some board to board interconnects – although I’d like to avoid that.
Can I do it? Well, we’ll see. But due to the simplicity of the ZX81 with it’s ULA, I’d say that has the highest chance of success – although of course, it’ll mean sacrificing a working ZX81 to get the ULA out. A working ZX80 replica is my real target, as this uses all standard logic chips. I think this should be quite possible, although there might be some big unweildly boards. The Jupiter Ace isn’t too dissimilar, although it does have some weird memory stuff going on (it has 6k of memory although it’s doubled up so only 3k is available), that might pose some issues. A ZX Spectrum based on the RC2014 is actually a bit of a pipe dream. Even using a ULA out of a Speccy, there’s still a lot of support circuitry that makes a Speccy a Speccy.
Hopefully, as a by-product of doing this, though, I will have working modules for things like keyboards, tape or video interfaces that will add to RC2014s general usability.
If you use Twitter, follow @ZXSpectROM for updates, or check back here throughout January for my tales of woe and exctiement!