Emulate DIVMMC in FUSE ZX Spectrum

1) get latest esxdos (0.8.6) and unzip it

(version at least 0.8.6 is a must as earlier versions doesn't support autoboot feature we need)

$ wget 'http://www.esxdos.org/files/esxdos086.zip'

$ mkdir esxdos086.zip.dir

$ unzip -d esxdos086.zip.dir esxdos086.zip

2) edit esxdos086.zip.dir/SYS/CONFIG/ESXDOS.CFG, set AutoBoot=1

3) prepare hdf with esxdos

$ hdfmonkey create test.hdf 64M

$ hdfmonkey put test.hdf esxdos086.zip.dir/SYS /

$ hdfmonkey put test.hdf esxdos086.zip.dir/BIN /

$ hdfmonkey put test.hdf esxdos086.zip.dir/TMP /

4) prepare flashed esxdos image

$ fuse --no-divide --divmmc --no-divmmc-write-protect esxdos086.zip.dir/ESXMMC.TAP

enter debugger, set breakpoint on 0 (break 0) and close debugger

LOAD ""

<press a key to flash>

enable divmmc writeprotect

HARD(!) reset (hard reset is needed to release mapram mode which flasher sets)

when debugger pops up (on breakpoint), do not close debugger and just save snapshot as flashed.szx

exit fuse

5) prepare basic program to be loaded on boot (to autoload external tap after boot of esxdos)

$ fuse flashed.szx --divmmc-file test.hdf

(ignore "no such file or dir" error, it is because we don't have autoboot.bas yet)

.cd sys

10 LOAD ""

SAVE *"AUTOBOOT.BAS" LINE 10

exit fuse (save changes to hdf)

6) test autoloading of external tap file:

$ fuse flashed.szx --divmmc-file test.hdf test.tap