How to build one yourself

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!

Building the hardware

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):

ComponentCost (EUR)
ENC28J60-H development board15
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.

DGBoot: an alternate design for the Didaktik Gama

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.

Building the software

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

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.)

Building for DGBoot

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 rangeContents
0–8191SpeccyBoot software, built with make DGBOOT=1
16384–32767Didaktik Gama '89 ROM

Installing the software on the device

  1. Boot to BASIC.
  2. Load the file speccyboot.wav, produced by building the software above, to the Spectrum. After about a minute of loading, you should see the following screen:
  3. Remove the JP1 jumper to enable EEPROM (if you hadn't already).
  4. Press 1, 2 or 3 (depending on the EEPROM model you use). The new software is written to EEPROM. If you chose to use software-controlled write protection, this stage will take about six seconds, otherwise it will take about one.
  5. A message indicating success (or failure) is displayed:

    If this step fails, repeat from step 1, and ensure JP1 is set correctly.
  6. Reboot your Spectrum. It should now be running the recently loaded SpeccyBoot software.