It has been a while since I entered Retro Challenge, but I think I remember what to do. It goes something along the lines of stating at the start of the month by saying that you are going to design a ZX81 module for the RC2014, and then at the end of the month report back in with minimal progress. Looking back, I seem pretty good at that. Retro Challenge 2016/1 started off like this and ended like this. Then later for Retro Challenge 2016/10 it looked like this.
I hope you will excuse me for using the same image I finished on 8 years ago, but, honestly nothing has changed. The ZX81 module is still in this state.
So, before we get to far ahead of ourselves, lets take a look at how we got to this point. My original goal was to recreate either a ZX Spectrum, ZX81, ZX80 or Jupiter Ace module for the RC2014. They are all fairly similar architecture, although the Jupiter Ace has weird dual port memory RAM. They all have a Z80 CPU, some ROM, some RAM and a clock, the same(ish) as theRC2014, so those parts of the schematic can all be ticked off. The ZX80 does everything else with conventional 74 series logic. The ZX81 is almost identical, except that 74 series logic is all smooshed in to a ULA. The Spectrum is similar except the ULA does more stuff (which can also be done with 74 series logic).
I ended up choosing the ZX81 as a good place to start because it is pretty much just a ULA chip with a little bit of support circuitry. The ULA is no longer manufactured, which will mean taking one from a working ZX81 to get this up and running. There are, however, modern FPGA replacements available, so I might well end up getting one of those to swap in at some point. So in January 2016 I translated the relevant parts of the ZX81 schematic in to KiCad and designed a module around that. I got some boards made, but that was as far as things got. Then later that year I soldered in 9 components.
To get started this year I need to do two things. Firstly, familiarise myself with the ZX81 circuit and the one I designed 8 years ago. I seem to remember being fairly confident it would work, but at this stage I have Schrodingers PCB. It both works and does not work simultaneously, needing a test to clarify the actual state. The second thing is that I need to check my stock of ZX81 and select a donor one that the ULA can be borrowed from. I probably want to make note of some of the pin voltages or signal traces before taking it out so I can check those when it is in the module.
There is a chance that I will end up waiting for parts, so the secondary part of my Retro Challenge challenge is to talk to my RC2014 with as many of my retro computers as possible. This may include but not be limited to;
- Atari Portfolio
- Cambridge Z88
- Psion Organiser II
- Psion Organiser 3a
- Sinclair Spectrum (with Interface I)
- Sinclair Spectrum 128
- Sinclair Spectrum +2 or +3
- Sinclair QL
- Amstrad PPC640
- Toshiba T1200
I think this will be limited to serial communication, and luckily I have a few MAX232 chips and boards here. I expect it will mainly be using the device as a serial terminal for the RC2014, but it would be nice to maybe send a Spectrum loading screen from the RC2014 to the Spectrum. It might sound trivial, but understanding how the serial ports work on those devices, and finding/writing software to use them could be the challenging part.