Here's how to use SpeccyBoot:
BOOTP & TFTP server configuration
You will need to install and/or activate servers for BOOTP and TFTP on a computer in your local network. BOOTP/TFTP server software is freely available for most platforms.
Most UNIX variants either include a TFTP server by default, or allow you to install one quite easily. There are third-party TFTP servers for Microsoft Windows too.
BOOTP & TFTP server in Ubuntu 20.04
For Ubuntu 20.04, I recommend running dnsmasq
(which handles both BOOTP and TFTP).
- Install
dnsmasq
:sudo apt install dnsmasq
(You may get an error message about
dnsmasq
being unable to start, due the DNS port being busy. Don't worry: the configuration below fixes this.) - Ensure there is a directory for the TFTP server:
sudo mkdir -p /var/tftp
- Edit
/etc/dnsmasq.conf
to something like the following:port=0 # disable dnsmasq's DNS (SpeccyBoot won't use it anyway) # Set aside this range for static assignments dhcp-range=192.168.82.0,static dhcp-authoritative # Assign a fixed IP address to SpeccyBoot's MAC address. # (If this dnsmasq.conf file doesn't have any other dhcp-range or dhcp-host # entries, no other BOOTP/DHCP requests are accidentally replied to.) dhcp-host=4e:23:e7:1b:7a:b3,192.168.82.48,infinite # Example: # point SpeccyBoot to another server for TFTP. Note that no boot file name # is given here (hence the comma before the IP address). If a boot file name # is given, it is assumed to be a snapshot and loaded immediately (no menu). # dhcp-boot=,192.168.123.234 # Example: # set SpeccyBoot to always load the same snapshot (no menu). # dhcp-boot=Arkanoid.z80 enable-tftp tftp-root=/var/tftp
Preparing a directory of snapshots
Your .z80 snapshots need to be made accessible to your TFTP server. Different TFTP servers use different directories, so check your documentation. (In the dnsmasq example configuration above, this directory is /var/tftp; other TFTP servers likely use something else.)
Copy your .z80 snapshots to this directory:
SNAPDIR=/var/tftp # <-- adapt this path to match your setup sudo mkdir -p $SNAPDIR sudo cp <path-to-snapshots>/*.z80 $SNAPDIR
Updating the snapshot index
After you have created the directory above, and whenever
you add or remove a snapshot to/from this directory,
you will need to update the SpeccyBoot index menu.dat
.
The Python script speccyboot-update
generates a menu.dat
file for you. This script is located in the utils
directory of the SpeccyBoot source code, and is installed
into /usr/local/bin
by running make
install
from the speccyboot/utils directory
in the SpeccyBoot source tree.
Once speccyboot-update is installed, you can update the snapshot index at any time (such as when you have added a new snapshot to your TFTP directory) by typing
sudo speccyboot-update
Loading snapshots
If the TFTP server configuration above went well, you should now be able to turn on your Spectrum, see it figure out its IP address as well as that of the TFTP server, and present your list of snapshots. Use the arrow keys to navigate the list, the alphabetic keys to jump directly to snapshots whose name begin with that letter, and Enter to load the selected snapshot.
To boot into BASIC rather than the SpeccyBoot menu, press Caps Shift and keep it pressed while power-cycling/resetting the Spectrum.
Troubleshooting
If the SpeccyBoot seems stuck, look at the border colour:
Border colour | Error | Explanation | Remedy |
---|---|---|---|
red |
file not found | The TFTP server responded with a TFTP ERROR . This usually means the requested file could not be found on the server. |
Check your TFTP configuration and re-run speccyboot-update .
|
white |
communication time-out |
The border is white during normal operation, so a white border is not in itself an indication of any error. However, if SpeccyBoot gets stuck for more than ten seconds with a white border it is likely due to a missing (or faulty) server response:
|
Check your BOOTP and/or TFTP server configuration. Wireshark can be useful for determining what's gone wrong. |