So as promised I spent a bit of the bank holiday weekend hacking on the FPGA Spectrum to fix a few bugs. In the end I got carried away and finished up with a full implementation of the 128K Spectrum +2A running ResiDOS and loading emulator images from an SD card. It’s still not cycle accurate, but it is feature complete apart from the disk controller, which isn’t really needed thanks to the ZXMMC+ compatibility that went in as well.
Emulating bus contention and improving the cycle accuracy of the T80 core is definitely on the cards, but for now the ability to finally load emulator images from SD makes the machine extremely usable. An explanation of how to get this up and running is a job for another post (hint: format the card as IDEDOS and bootstrap ResiDOS into the extra RAM), but for the time being here is a detailed write-up and the full VHDL source.
And let’s not forgot the obligatory eye candy…
Wonderful new features – using ZXMMC to interface the SD Card is a clever move.. no having to write or modify a disk system as it’s already been done on the real hardware 🙂
One of the things I’ve got planned is a break-out board with kempston and sinclair joystick ports, +3 disk drive hardware and a ps/2 mouse port which gets converted into a “k-mouse” signal. I had been planning to interface a real divIDE too – but your MMC solution trumps that!
The additional hardware will come later however. The new screenmodes etc will come first (and I’ll also be taking a look at that issue with interrupts, R register etc)
A nice Multiface implementation could be good 🙂
Looking for a suitable board on eBay (I’m still fairly new to FPGA devices), would this be suitable for the Speccy?
Possibly. The FPGA is quite a bit smaller than the one on the DE1, but the Speccy doesn’t even come close to filling the 2C20 so it will probably be OK. You would need to modify the pin mappings and change the PLL to work with the 50 MHz clock, which you can do using the megafunction wizard, and obviously also change the target device to match the one on this board. You don’t need the hardware to do this so you can find out if it is going to fit before you buy one.
Thanks Mike, I’ll do just that.