Main Content

An Interface One / Microdrive Emulation for the ZX Spectrum
This device plugs into the back of a 48K ZX Spectrum and provides the functionality of the original 1984 “ZX Spectrum Expansion System”. It emulates a ZX Interface One with 8 ZX Microdrives.

The device is completely compatible with all 1980s software. It uses no ROM modifications or other hacks. To my knowledge there are no limitations or caveats to its use.

The first version is complete and supports the ZX Microdrives as designed; the RS232 and ZX Net features of the Interface One might follow.

The project is open source, open hardware design, distributed under the GPL licence.

It is functionally complete:

- Spectrum can read and write all 8 microdrives
- Uses “MDR” image format for “cartridges”, fully compatible with emulators
- Full ZX Interface One ROM support, all native BASIC commands and extensions work as designed
- MDR files loaded from, and saved back to, SD card
- User interface uses file selector to choose and “insert” a cartridge
- Cartridge eject, allowing cartridges to be changed as required
- Configuration file allows auto-insertion of selected cartridges at start up

I’d be interested to receive feedback from anyone who tries to build one.


It should be fairly obvious. Select the Microdrive with the rotary encoder, click the right button to bring up the file selector, use the rotary to select a cartridge file, then click the right button again. The left button cancels.

The file selector only brings up files named *.mdr, and it doesn’t do subdirectories. This could be improved.

If you create a file in the root of your SD card called zxes_config.txt (that’s not a typo, I have an issue open to rename that file to match the rest of the project) and enter up to 8 lines, each with a filename giving the name of an MDR file on your SD card, those cartridge images will be loaded into the Microdrives on startup. (Startup meaning the Pico startup, not the Spectrum start up.)”

Link to article