Spectrum +2A boot menu
I’ve been promising for years to put the source for my FPGA retro-computing bits up on GitHub. Well I’ve finally gone and done it.
These are essentially just the 2011 releases that are already available for download from here, but with the full development history intact. I know that others have been doing some excellent work based on both of these projects, both in terms of adding new features and porting to other boards. If anyone feels like forking and patching in their changes I will gladly accept pull requests in order to keep things together.
You can clone the BBC Micro from here, and the Spectrum from here, and if you missed the accompanying write-ups and videos you can find them up the top under Retro FPGA.
Laurent Mitnik has ported my FPGA Sinclair Spectrum to the Terasic DE2-70 board, and has very kindly allowed me to publish his changes. The port is based on the 200110901 release from the Downloads page.
I don’t have a DE2-70 on which to test this, but Laurent provided the screenshot to the right showing his board running Monty On The Run.
You can download the port from here for now, with the longer term plan being to move the source for both onto Github (when I have some time to convert the existing SVN repo).
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…
As promised, some more detailed design notes for my BBC B design are now available.
Planning to revisit the Spectrum design next for some bug fixes, as it is clear there is still quite a bit of interest in that.
I added a video of the FPGA BBC in action, shot straight off the TV.
You can see the MMBEEB ROM extensions providing access to multiple disk images on the SD card, then some messing about on Chuckie Egg and Boffin.
BBC Micro boot screen running on FPGA
It’s been a while since the Spectrum project and, although there is still work left to do on that, I eventually gave in and did another great British computer from my childhood – the BBC B. Getting this machine up and running has been an interesting job given its complexity. For something that first came out in 1981 it really is a sophisticated computer, and one that I’m sure anyone who grew up in the UK in the 80’s and early 90’s will remember.
I’ve written this one up on its own page so that it doesn’t disappear, and the Speccy will get the same treatment in the next few weeks. A bitstream image is provided for you to run on your own DE1 board, if you have one, and the full VHDL source code is available too.
A detailed description of the design is also in the works, and should be ready in a day or two.
Sorry it took so long, but I’ve finally cleaned up the source code ready for publishing, and here it is. This contains a Quartus project file, so it should load and compile straight away. I used Quartus 9.1 Web Edition, available from the Altera website. There is also a pre-compiled .sof image which should work straight away if you have a DE1.
A full write-up will follow, but here is a quick summary:
Last week I was made aware of this post on RS DesignSpark about a project, currently in the very early planning stage, to build a Sinclair Spectrum on an FPGA. As it happens I have a similar project well under way, and I have promised to write it up…
Several years ago I implemented most of the ULA in VHDL on a MAX7000 CPLD, mainly as an exercise to brush up on my HDL. I didn’t have enough space to fit the keyboard interface so it was pretty useless, but it did boot! The complete system used a pair of SRAMs, real Z80 and the Sinclair ROM in flash.
Back at the beginning of this year I decided to brush up on my HDL again and I bought myself an Altera DE1 development kit. The heart of this board is a Cyclone II FPGA with a range of support hardware including 512KB SRAM, 8MB SDRAM, 4MB flash, an I2S audio codec, VGA port and the usual switches, LEDs and buttons. I would highly recommend it for anyone looking for a relatively cheap way to play with FPGAs.