ESXDOS v0.8.6 is out!

Best news this week!! ESXDOS v0.8.6 is out officially!

Well done Miguel!!

Check out these upgrade instructions for your DivMMC EnJOY! (you need to enable ROM writing first and follow the correct procedure of putting the new files on the card to avoid boot problems).

Here’s the link to the v0.8.6 zip file.

Some highlights of this new release:
– Auto-BOOT a BASIC file
Check out this video for an example:

– Limited 128K BASIC support
You can get to 128 BASIC without command line ESXDOS support, but you can load a snapshot file.
This might be very interesting for +3 users to access floppy drive (not tested +3 floppy access with that myself yet)!
Here’s a video showing it works:

– New exciting DOT-commands

This new release does not include the NMI Navigator by David, although Miguel did some improvements on his NMI Browser with this release.
The NMI Navigator however includes a poke feature, to add about all the important Multiface functions to your DivMMC.
If you want to check out the NMI Navigator, head over to this page.

Here are the complete release notes of ESXDOS v0.8.6:

esxDOS v0.8.6
(c) 2005-2018 Papaya Dezign

This version has the following (notable) new features (for detailed info checkout the changelog):

* 128K BASIC Support: For now only using a specific ROM (check the changelog) and still very experimental (use .128 command to test).
* Auto-BOOT Support: Supports loading /SYS/AUTOBOOT.BAS on cold/warm boot (configured in /SYS/CONFIG/ESXDOS.CFG).
* TR-DOS Navigator: If ‘AlwaysBoot=1’ is set in TRDOS.CFG, TR-DOS Navigator will be loaded whenever there is no BOOT file in the TR-DOS disk.
* Beta 48 (CAS and CBI) Support: Experimental and activated by setting ‘Beta48=1’ in TRDOS.CFG.
* New/Updated Commands: .playtfm, .playpt3, .ls, .tapein, .tapeout, .partinfo, .launcher, .rm, .hexview, .drives, .mktrd and .128

How to (safely) install/upgrade:

1. Copy esxide.tap/esxmmc.tap (depending on if you have a DivIDE or DivMMC, obviously) to your CF/SD/HDD, load it and follow the instructions. Power Off and remove media.
2. Copy the SYS, BIN (and create /TMP if using DivIDE) directories to your CF/SD/HDD.
3. Insert media. Power On. Reset while keeping space pressed to reinit if needed.


a) If you replace the SYS directory *before* flashing the new ROM, your previous ROM of esxDOS will not boot correctly.
b) Questions? Bugreports? Complaints about lack of LFN/instructions? Ask on the usual places or send an e-mail to: bugs at esxdos dot org


[12/06/2013] auto-LOAD: Changed auto-LOAD mechanism to be more transparent, and fixed bug that affected SQ-Tracker, RETURN from TR-DOS (lordcoxis + reported by Factor 6/Velesoft)
[12/06/2013] TR-DOS: Fixed a bug that affected TR-DOS Navigator (code version), related to TR-DOS version detection (lordcoxis + reported by Velesoft)
[14/06/2013] NMI: Fixed bug when pressing NMI without system loaded (lordcoxis + reported by Velesoft)
[14/06/2013] TR-DOS: Added a workaround to make Outrun Europa .TRD load as it calls 48k ROM from interrupt (lordcoxis + reported by Ilyad)
[20/06/2013] TR-DOS: Added a few missing routines to add more compatibility (lordcoxis based on several bug-reports)
[20/06/2013] TR-DOS: Added a new option “AlwaysBoot”, which can be set to enable the loading of a custom TR-DOS Boot file when none is present in the disk. Included TR-DOS Navigator (code version) with the authors permission (lordcoxis + thanks to Velesoft)
[25/06/2013] TR-DOS: Fixed long delay when detecting drive/disk using #3d2f calls (lordcoxis)
[08/07/2013] NMI: Changed 128kB RAM bank detection to use random bytes instead of a fixed string (lordcoxis + reported by Velesoft)
[08/07/2013] Kernel: Fixed a crash when a .command returned to BASIC with a custom error string (lordcoxis + reported by John Barker)
[09/07/2013] NMI: Fixed a bug in NMI entry which could corrupt AF and R in some circumstances (lordcoxis)
[09/07/2013] NMI: TR-DOS paged byte was being set with an invalid value in 128kB snapshots, which led to the snapshots not loading on certain emulators (ub880d + reported by ZXHistory on WOS)
[13/07/2013] TR-DOS: Added experimental Beta 48 (CAS and CBI) support (lordcoxis + thanks to Flavio Matsumoto)
[21/09/2013] FAT Driver: Fixed a bug in the handling of FAT32 volumes – when the last cluster was set to $FFFFFFFF in the FSINFO sector, writing was not possible (lordcoxis)
[21/11/2013] Kernel: Added RTC.SYS support (lordcoxis)
[13/08/2016] auto-LOAD: Added POKE 23388,16 to auto-LOAD syscall to improve 128k compatibility (lordcoxis + reported by ub880d and velesoft)
[30/06/2017] Kernel: Removed v6Z80P Turbo I/O routine as it caused COVOX interference (lordcoxis + reported by various)
[07/10/2017] BASIC: Loading a BASIC program sometimes wouldn’t clear the existing one (lordcoxis + reported by Andrew Owen)
[07/10/2017] auto-LOAD: Fixed FLAGS variable (ub880d + reported by ellvis)
[07/10/2017] Kernel: Fixed wrong calculation of parameters pointer in M_EXECCMD (lordcoxis + reported by ub880d)
[10/10/2017] FAT Driver: Fixed carry flag set on return from F_FGETPOS (lordcoxis + reported by ub880d)
[17/02/2018] Commands: Added .128 command to test 128K mode using Velesoft’s “zx128rom-for-divide” ROM (lordcoxis)
[17/02/2018] auto-BOOT: Added preliminary auto-BOOT support (lordcoxis)
[07/03/2018] Commands: Added .playpt3 (replaces old command since this one also plays 6 channel tunes) and .playtfm commands (tygrys)
[07/03/2018] Kernel: M_EXECCMD was still broken when there were no parameters for executed command (ub880d)
[07/03/2018] auto-BOOT: Caps Shift changes the autoboot setting with a XOR 3 (lordcoxis + suggested by Carlos Sanchez)
[07/03/2018] Kernel: Added possibility to use full path to command in M_EXECCMD if path begins with “/” (ub880d)
[09/03/2018] Commands: Added .rm, .hexview and .drives commands (Dr. Slump)
[09/03/2018] Commands: Added improved .ls, .tapein, .tapeout, fixed .partinfo and new .launcher (ub880d)
[09/03/2018] Commands: Added .mktrd (laesq)
[10/03/2018] Commands: Added improved .partinfo (ub880d)
[12/05/2018] auto-BOOT: Load /SYS/AUTOBOOT.BAS directly instead of changing CWD to /SYS (lordcoxis + reported by various)
[13/05/2018] FAT Driver: Fixed a long standing bug, where the last directory entry created in a sector was corrupted (lordcoxis + reported by Carlos Sanchez)
[13/05/2018] NMI: Added empty TMP folder to archive, for lazy people 😉 (lordcoxis)
[15/05/2018] FAT: Clear whole clusters when creating directory entries, instead of just the next sector (lordcoxis/ub880d + reported by cygnus, z00m)


Greets to all the usual peeps (y’all know who you are – just check v0.8.5’s README if in doubt!).
Special thanks to all the great “hardware benefactors”: Ben Versteeg, Pavel Urbancik, SpecNext Team, Tygrys, UB880D, Zaxon!

Known Bugs

128K Support: Need to run an esxDOS BASIC command before .commands will work
BASIC/Tape Emulator: You can overwrite ESXDOS system using LOAD CODE that crosses $2000
Commands: Proper argument/syntax checking is not done yet on most commands
Commands/BASIC: No wildcards yet
FAT Driver: rename() isn’t even remotely posix compliant
FAT Driver: Directories read-only attribute isn’t always respected
BIOS: Version of system file isn’t checked against the ROM version (bad things will happen if there’s a mismatch)
TR-DOS: FORMAT and MOVE commands don’t work yet + too many to list 😉

18.05.2018 / Papaya Dezign – All rights perversed

We have to make some apologies to people waiting for their orders or questions to be answered, as we’re coping with a huge backlog.

We’re (still) finishing the new ByteDelight HQ, which is now almost done.
At the moment we’re working in a tiny workplace, which is far from efficient.

Here are some photos of the progress, starting with the old working corner (and me):

2 large dormers were installed 2 weeks ago:

A couple of days ago the main painting was finished, and on this photo we were still working on the desks:

Also an AC was installed to stay cool at summers.

The work is almost done: the desks are completely installed now.
That took more time than expected because of some custom build-up parts on the desks, but those are also assembled.

Remaining things todo at this moment are:
– Painting of the desks and build-up parts
– Installing the floor

Should be done in a day or two.
After that we can finally install ourselves in the new ByteDelight HQ, and get back to full speed and service again – and lots of new products!

If you like to see the result, stay tuned here at for the update that will come in a couple of days, or head over to Facebook where we post updates regularly as well.

Ben Versteeg

Dual Floppy Drive set improvements

The Dual Floppy Drive sets are still selling well.
I keep ordering new old stock drives from time to time.

Do you know how much effort is put in to manually craft these?
Let me show you.

Also, I’ve made some small improvements today because of some feedback I received, take a look!

The photo above shows some of the tools used to manually craft each of these Drive sets.
The Dremel and saw are used to carefully cut ot the front hole, which is then filed.

The first improvement I will make from now on are adding two spacers: because of how the set is assembled, often the space between the shells at the front is slightly bigger than at the back.
The two spacers make sure the distance will keep even in the future:

This is the result:

Another improvement is the way I fix the Floppy ribbon cable.
In the past I used glue on both sides of the cable at the shell edge, which was noticeable from the outside.
I will use super glue inside only, to mount the cable to the case:

As you can see in the photo above, I solder the power wires directly to the drives.
Using a connector may cause problems in the future, especially since the drives are not meant to take apart.

You may wonder why it can’t be taken apart. Well, that’s easy: there is no better suitable case on the market for these drives.
I’ve looked over and over again, but this is really the best (standard) case.

But the screw holes at the front of the this case are to close to eachother to have the drives in between.
That’s why I cut and file away the screw holes.
To be able to close the case, I use double adhesive tape, which makes it fit perfectly.

After completing the assembly, the result is this:

Hope you like it!

There are a lot of enthusiasts that still like working with Floppy disks.
It’s a true nostalgic experience.

These Dual Floppy drives work with any Shugart (retrocomputer) Disk interface.
So for ZX Spectrum Disk interfaces, but also for Sinclair QL, and lots of other brands like BBC.

Get over to to order one!

USR0 mode and the lack of +3 BASIC support with ESXDOS explained

I often get the question if people can still use the floppy drive on a ZX Spectrum +3 in case they order a DivMMC EnJOY! interface.
So let’s find out.

Accessing the floppy drive on a ZX Spectrum +3

To access the floppy drive in a ZX Spectrum +3, you need the commands that are available in +3 BASIC.
When you enter 48 BASIC, these commands are unavailable, so you really need +3 BASIC.

ESXDOS and USR0 mode

ESXDOS, the firmware for any DivMMC interface, currently only supports 48K BASIC in USR0 mode.
USR0 mode means you will have all the 128KB memory and the 3-channel sound available, but +3 BASIC is not enabled.

ZX Spectrum toast rack, +2 and +2A

The black ZX Spectrum +2A uses the same ROMs as in the +3 so also has +3 BASIC, and the toast rack and grey +2 use 128 BASIC.
All of these enhanced BASICs are disabled once booting wth ESXDOS into USR0 mode from a DivMMC interface.

Will ESXDOS support 128 BASIC or +3 BASIC in the future?

It doesn’t seem so.
The focus is on new features like RTC support and Long FileName support, but since there are not many people involved, speed of development is well, let’s say, not as high as many wish for.

So can the floppy drive be used with a DivMMC interface or not at all?

Yes, it is possible, but.. not easy and very limited.
Currenly the only way of using +3 BASIC with the DivMMC, is by using the +3e ROMs.
The +3e ROM modifications introduce its own way of formatting and using the SD card.
It’s far more complicated to use compared to ESXDOS, and will not support .TAP or snapshot files.


If someone would just write some DOT-command that mimics the +3 floppy drive commands, that would be great.
A DOT-command is the flexible way of adding BASIC commands to ESXDOS, and since the floppy hardware is simply still present and available on a +3 when a DivMMC interface is connected, why not use it?

Hey, maybe if I find the time for that myself some day..

New “NMI Navigator” (NMI.sys) for ESXDOS

Out of the blue david_ps on has developed a new NMI system for ESXDOS.
The most important new features:
– Support for Kempston joystick
– Poke feature from NMI navigator

At the time of writing he’s at version 0.0.14, which sounds ‘early’, but it seems to be quite complete already!

Some more features of the current version:
– Extra features to load TRD files
– Mount up to 4 TRD drive images!
– Smaller font – now let’s hope ESXDOS 0.9 with LFN is out soon (Long File Name support should be integrated into ESXDOS first before it can be used by the NMI Navigator).

Keep an eye on his ESXDOS Board thread:

Here are some screenshots I just took (yes, I should have connected the ZX-HD 😉 ).

The new NMI Navigator running on a DivMMC EnJOY! PRO ONE:

The Help-menus (by pressing ‘H’ in the NMI Navigator):

Info about the current version, ESXDOS version, and the machine it is running on is shown:

Easy poking! Finally!

Press ‘P’ and enter address and value: