There are three parts of building a SpeccyBoot: building the hardware, building the software stack, and getting the software onto the hardware.
NOTE: I assume no responsibility for what happens if you connect this to your Spectrum. This design works well for me, but please be aware that a mistake (yours or mine) may destroy your dear Spectrum. You have been warned!
The schematic design is available here.
I built the device on a basic lab board. I'm not much of a soldering wizard, but you should probably have some rudimentary soldering experience to pull this off. A few notes on the design:
Approximate component cost (excluding board, connectors etc):
| Component | Cost (EUR) |
|---|---|
| ENC28J60-H development board | 15 |
| 28C64 EEPROM | 2 |
| Other (74HCT32N decoder, 74HCT139N decoder, 74HCT244N buffer, 74HCT273N flip-flop, 5V + 3.3V regulators) | 2 |
| Total | ≈ 20 |
If you want to use the ENC28J60 chip as-is (rather than the Olimex board), you will have to add a few more external components (such as an Ethernet connector, obviously). This will also reduce the total component cost to about EUR 10. Refer to the ENC28J60 data sheet for details.
If you have a Didaktik Gama, there is an even easier way to connect the ENC28J60 board. This Czechoslovakian ZX Spectrum clone has a few special features, including an '8255 parallel port. The ENC28J60-H board can be connected directly to this port without any additional active components (except the 3.3V supply). The bus expansion port remains free for other peripherals.
The modified SpeccyBoot software (see below for software build instructions) is combined with the original Didaktik Gama BASIC in a double-capacity EPROM (27C256, 32Kx8), which replaces the original chip in the internal socket.
The DGBoot design was kindly contributed by Imrich Konkol. More information, including schematics, is available in his blog. It's all in Slovak, but Google Translate is always an option.
To obtain and build the software, you will need the following tools:
In Mac OS X, install the developer tools (from the OS X DVD) and SDCC (I used version 2.9.0). I had to compile objcopy (from binutils 2.19) separately though.
In Ubuntu 12.04, just do this:
sudo apt-get install binutils gcc make sdcc subversion
Then check out the release you want (for example, 1.5) and build it:
svn co https://speccyboot.svn.sourceforge.net/svnroot/speccyboot/tags/speccyboot-1.5 cd speccyboot-1.5 make
Later releases of SDCC have problems compiling some of the macros in the SpeccyBoot source code. To keep things simple, I suggest sticking with SDCC 2.9.0.
When the build completes, you should have a file named speccyboot.wav in your working directory. This WAV file includes the SpeccyBoot software and a loader application, both in the format expected by the Spectrum. (I load the WAV file to my phone, and play it to the Spectrum from there.)
If you want to build the software for the DGBoot design instead, use this make command instead:
make clean && make DGBOOT=1
This image then needs to be included in the new 32K (EP)ROM as follows:
| Address range | Contents |
|---|---|
| 0–8191 | SpeccyBoot software, built with make DGBOOT=1 |
| 8192–16383 | 0xFF |
| 16384–32767 | Didaktik Gama '89 ROM |
