Emulating the +3e and/or ResiDOS
There are a multitude of Spectrum emulators available, and many now have
support for hard disk/compactflash emulation, and so can be used to
emulate the +3e or ResiDOS.
Here's a short list of the emulators I know about containing at least
some level of support:
- RealSpectrum (DOS/Windows)
- This was the first emulator to support hard disk emulation. Unfortunately, it does
not emulate multi-sector read/writes, and so is only suitable for emulating earlier
versions of the +3e (v1.12 and below).
- Fuse (Linux/UNIX/Mac OS X)
- Fuse has excellent hard disk emulation, supporting the simple 8-bit interface as
well as the ZXATASP, ZXCF and divIDE interfaces. It can emulate both the +3e and
ResiDOS. Note, however, that the current release build (0.7.0) is rather
old and does not include support for multi-sector read/writes, so you currently
need to download the sources from CVS and build it yourself...
- SPIN (Windows)
- Emulates the +3e with simple 8-bit interface. There is currently a bug in the auto-detection
on this emulator, so to format a HDF image you will have to use the old v1.11 ROMs
provided with Spin. The current ROMs should work fine once you have a formatted HDF image.
- EightyOne (Windows)
- Emulates both the +3e and ResiDOS on a wide range of interfaces, including
ZXCF, divIDE and the simple 8-bit interface. It also has the ability to directly access
an attached compactflash card (or hard disk) under emulation. You currently need to download
the "Test2" version for IDE support.
HDF image file utilities
The .HDF hard disk image files used by emulators can be read from and written back to real
hard disks or compactflash cards in a variety of ways.
The following utilities are available:
- HDFutils (DOS)
- Basic DOS utilities for reading/writing HDF files to real hard disks. Not recommended for use
- Drimg (Windows)
- Full-featured drive image utility from Pera Putnik.
- hdfmonkey (Linux)
- Tool for creating FAT filesystems in HDF files, and adding/retrieving files to them. Therefore
useful for ResiDOS users, but not +3e users (as there is no current support for +3DOS filesystems).
Reading/writing HDF image files without a dedicated utility
For users of Unix/Linux/Mac OS X, you can use the dd utility to read and write hard disks
or compactflash cards. Be careful, however, as you can easily damage your system if you don't know
what you're doing!
Here is the method I have used under Mac OS X:
- 1. Create a header for the .HDF file
You only need to do this once for any particular hard disk/compactflash card. First, use createhdf
from fuse-utils (distributed with the Fuse emulator)
to create a dummy .HDF file using the same cylinders/heads/sectors as your card (you can determine this by
typing CAT TAB on the +3e). eg:
createhdf 490 8 32 dummy.hdf
Save the first 128 bytes of this as your header, eg to create hdfheader.bin:
split -b 128 dummy.hdf hdfheader
mv hdfheaderaa hdfheader.bin
- 2. To read your card/disk to an .HDF file
Determine the device number of your card by doing ls /dev/* before and after
attaching it. On my Mac OS X system this was found to be /dev/disk2. Then use dd to
read the data, and combine it with your pre-generated header:
dd if=/dev/disk2 of=cfcard.raw bs=512
cat hdfheader.bin cfcard.raw > cfcard.hdf
- 3. To write a .HDF file back to card/disk
Assuming your card is on the same device, do:
dd ibs=128 obs=512 skip=1 if=cfcard.hdf of=/dev/disk2
Back to ZX Spectrum +3e