So I picked up a ZX Spectrum +2 (the first grey model, if you’re wondering!) off ebay recently, listed as “for parts or spares” due to a faulty power supply. I figured it’d make a neat little part-time project getting it working again, and seeing how far I can upgrade it now I know more about electronics (a little) than I did in back in the 80s (nothing whatsoever.)
I had a Spectrum 48k as a child, which I sold when I got my Amstrad CPC 464, and recently came across the Spectrum Next – alas, too late to be a part of the Kickstarter for it, so I wanted to get a little bit of that retro feel for myself.
Ordering a bunch of useful spares (capacitors, transistors, replacement Z80, compatible power supply, and a few other bits+pieces) at the same time, I was ready to get to work when it arrived.
It was dead. Completely dead. A quick clean of the motherboard, and unplugging and plugging all the interior connectors back in actually fixed that – now there was a red power LED. But nothing else. I tried a few methods of getting video out of it, but of course don’t have anything that takes an old style RF lead any longer, which meant trying out a composite mod. Nope, no go. Ordered an RGB to SCART lead for the RGB connector… nothing.
So, onto the common problems. Replaced TR8 (ZTX213) and TR9(ZTX650)
Now we’re getting somewhere!
Alas, this turned out to be faulty RAM. I didn’t have anything suitable for replacing the ICs, and they’re somewhat hard to get hold of nowadays. In the end it seemed cheaper and easier to just get a new 100% working motherboard, as there was one listed on ebay for a decent price.
Switching that in, we have life!
… and then the video on that died a couple of days later. But, grabbing the brand new TR8 and TR9 from the old board and switching these in fixed that up nicely (having that old board around for spares is probably going to be useful!)
I’ve also got a shiny new DivMMC Enjoy! Pro Mini Lite from bytedelight.com attached to this now, which means I can load software directly off a SD card rather than using that archaic tortoise-speed tape deck. Which led me to thinking, how much closer can I get this to a Spectrum Next?
Obviously I don’t have the onboard memory of a Next, or that fantastic FPGA in the middle… but, I *can* do a few bits and pieces I think.
First up, I’m thinking of mounting a Raspberry Pi W on the onboard serial port, which potentially gives me access to use it as an “accelerator”, as well as wifi and USB. I was originally thinking an ESP8266, but then I figured – if I’m doing that I may as well go full Pi. Unfortunately, the +2 used a weird-ass connector similar to a BT telephone socket but with 6 pins populated instead of 4. Rather than try to obtain the right cable I’m just going to desolder that and put a standard 9-pin RS232 D connector in it’s place.
Memory. This one’s more of a long shot, as I’m not really sure where to start with it yet. But, theoretically, if I can figure out how to integrate it with the Spectrum’s banking mechanism (do I just read the relevant banking register, or do I implement a whole new banking mechanism on top of it?) , I could potentially shove a couple of big, modern RAM ICs onto a circuit board and connect that via the edge connector (note to self – will need a through-connector so I can keep using the SD card expansion too).
Connectivity. There’s the Pi for Wifi, and possibly USB. But what about directly connecting via the edge connector – it shouldn’t be too hard to find out how to make a Z80 talk to I2C and/or SPI, which would add a whole host of new device possibilities (in fact, this might be a better option than the memory expansion, if I can connect to the Pi over SPI and potentially use it as a giant RAM disk…). How about a mouse? (The common method with the Spectrum seems to be to have them emulate a Kempston joystick)
Coding. Once I get Wifi connectivity, it’d be really cool to put together a quick HTTP downloader (I’m thinking a ESXDOS “dot command”) for grabbing files directly off the internet. I wonder if it’d be possible to get CP/M working on this… there’s only ROM support in the +2A/B and +3, so I’d have to look into what I’m missing on a +2.
Video. I’ve seen various discussions of getting a Pi to replace the Spectrum’s ULA for video, by putting it directly onto the Z80 bus so it can scan the specific area of video RAM and emulate the display. That could potentially lead to a blend of the Spectrum’s video output and the Pi… sprite overlays? full motion video? a whole windowing system where the screen output can be onscreen with Z80 debugging at the same time?
Right now it’s feeling like the sky’s the limit on this!