General Info:

* Firmware written primarily for the DivIDE interface, maybe for others in future.
* Inspired by our (Phoenix & LaesQ) old 'backbone' project + inspiration from +D
* Works with HDD/CD-ROM/ZIP/LS120
* Uses drivers to access filesystems (either in RAM or ROM)
* Provides new BASIC commands
* Provides RST 8 hooks for user-land apps
* Device and filesystem abstraction layer.
* Full FAT16/FAT32 read/write support (no 64K clusters, no extended partitions, no LFN).
* Needs system file ESXDOS.SYS in the rootdir of first detected drive (system drive).
* Support for external commands in /C dir of system drive (see "DOT" commands).
* TAPE emulator supports reading/writing from/to .TAP files. Can read/write to the same file.
  .TAP attaching functions are available to external programs.
* POSIX-based API usable by .commands and external programs. Functions available on rst $08:
  open, read, write, close, opendir, readdir, seek, sync, fstat, getcwd, chdir, unlink...
* BASIC command integration using +3DOS headers for FAT filesystems.
* Support for seamless IM2 loading/saving, from BASIC and machine code.
* Posibility of getting absolute LBA sector and device on an opened file (for direct I/O).

Known bugs/missing features:

* ATAPI/ARMD support is untested this time, bugreports from LS120/ZIP users are welcome!
* FAT32 FSINFO sector is not used/updated yet.
* TAPE emulator is not perfect yet, it will be re-written soon.
* Cache system is very simple atm, and there's no write cache yet (so some operations are slow).
* Only the first copy of the FAT is being updated (no problems detected as of yet).
* You can overwrite ESXDOS system using LOAD, so don't do it ;-)
* Send all bugreports to bugs@esxdos.org!


How to get it working

First of all: THIS IS BETA SOFTWARE AND BUGS ARE TO BE EXPECTED! So don't go around plugging in your CF card with the source code of your latest and greatest demo (and your pr0n collection) ;-)

That being said, just copy everything to the root of your HDD/CF's first partition and run the flasher. You might want to set attrs on ESXDOS.SYS to Hidden and Read-Only while you're at it...

If you are running an ESXDOS version above 0.5, don't overwrite ESXDOS.SYS until after you flash, or the mismatch between ROM/SYS version will render your system unusable! (probably)

"DOT" commands

Inspired by BS-DOS command syntax, .commands reside in /C and are loaded on the fly. Each .command has 7.5K of RAM available and may call any ESXDOS syscall. Commands can also exit to BASIC with a custom error message.

Usually, if you type the .command without args you will get command usage help (or it'll run if it needs no arguments). Example:


tapeOUT v0.1 (c) phoenix

Usage: tapeout [args] [tapfile]

-c: Close file
-o: Overwrite file

Drive Naming Convention

Drives are named according to their type and partition number. So for the first hard drive and partition, it would be named hd0. You can see a list of drive names when ESXDOS runs it's initial BIOS drive detection (on a cold start or hard restart with space pressed). The command that shows available drives was not finished in time for this release.

BASIC commands

BASIC commands operate on native +3DOS files (but there's only compatibility with +3DOS at file level). On all BASIC commands that use a drive parameter, * means current drive.

Optional parameters are like [this].


      GOTO (show current drive/path)
      GOTO [drive] ["path"]

Eg. GOTO hd0"demos"
This will change the current drive and directory to hd0:/demos. You can use it to change the current drive, dir, or both.

* CAT:

      CAT [drive]
      Eg. CAT, CAT *, CAT hd1
      Without specifying a drive a fast CAT is done (no speccy header info is displayed).


      LOAD drive "path/filename" [CODE]|[SCREEN$]
      MERGE drive "path/filename"
      Eg. LOAD *"/test/condomed", etc


      SAVE drive "path/filename" [LINE]|[CODE]|[SCREEN$]
      Eg. SAVE *"filename" SCREEN$, etc


      ERASE [drive] "path/filename"
      Eg. ERASE "filename", ERASE *"filename", etc


DOWNLOAD - official versions of ESXDOS

ESXDOS 0.8.5
- new official ESXDOS version with TR-DOS emulation and new commands (for TR-DOS support can't run in mapram mode)
WOS link: http://www.worldofspectrum.org/forums/showthread.php?t=44046
ESXDOS 0.7.3 Public BETA
( contain bugs - please not use save to disc )
- first beta version of ESXDOS (version for flash to DIVIDE eeprom)
WOS link : http://www.worldofspectrum.org/forums/showthread.php?p=410461#post410461

ESXDOS 0.7.3 Public BETA with MAPRAM fix
( contain bugs - please not use save to disc )
- first beta version of ESXDOS (modified for compatibility with MAPRAM mode)
WOS link: http://www.worldofspectrum.org/forums/showpost.php?p=412827&postcount=4

ESXDOS 0.7.4 - (bugfixed version 0.7.3)
- this is version 0.7.3 with fixed some critical bugs. Now is usable SAVE to FAT16/FAT32.
WOS link: http://www.worldofspectrum.org/forums/showthread.php?t=38594
ESXDOS 0.8.0
- new bugfixed and stable version with file browser
WOS link: http://www.worldofspectrum.org/forums/showthread.php?t=38991

DOWNLOAD - unofficial versions of ESXDOS

( testing and use at own risk )
( contain bugs - please not use save to disc )
- modification of ESXDOS 0.7.3 (compatible with MAPRAM mode). This version support automatic booting of AUTOEXEC.TAP file from root directory on FAT16/32. Boot work only after power on or reinit (reset+space). Author of modification : UB880D


DOWNLOAD - new unofficial commands and utilities for ESXDOS

- three new ESXDOS commands for play PT3, SQT, STC music files. By GASMAN
WOS link : http://www.worldofspectrum.org/forums/showpost.php?p=422794&postcount=5

NEW COMMANDS for Esxdos 0.7.3
- new ESXDOS commands CP, DUMPMEM, HEXDUMP, LS, MORE by Dusky (UB880D). All this commands is writed only for ESXDOS version 0.7.3 !

- first bootable firmware selector v0.1 for ESXDOS 073 (AUTOEXEC version) by VELESOFT 2011

- next bootable firmware selector v0.2 for ESXDOS 073 (AUTOEXEC version) by VELESOFT 2011
(all instalation files included)



Official old ESXDOS web page - (contain old info for rare esxdos version)

Video on YOUTUBE : http://www.youtube.com/watch?v=PsV8hw1tB0U