ESXDOS Manual
ESXDOS%20manual
User Manual: Pdf
Open the PDF directly: View PDF
.
Page Count: 4
ESXDOS manual
Welcome to ESXDOS, the most advanced firmware for mass storage interfaces for the ZX Spectrum.
At this moment (2013) ESXDOS is continuously in development, thus being the best future-safe
choice for your ZX Spectrum interface.
ESXDOS features
Works with HDD/CD-ROM/ZIP/LS120/CF (DivIDE)
Works with SD (DivMMC)
Full FAT16/FAT32 read/write support
Device and filesystem abstraction layer; uses drivers to access filesystems
Provides new BASIC commands
o Support for external commands in /BIN dir of system drive (see "DOT" commands)
o BASIC command integration using +3DOS headers for FAT filesystems
Provides RST 8 hooks for user applications
TAPE emulator supports reading/writing from/to .TAP files
o Can read/write to the same .TAP file!
o .TAP attaching functions are available to external programs
POSIX-based API usable by .commands and external programs.
o Functions available on rst $08: open, read, write, close, opendir, readdir, seek, sync,
fstat, getcwd, chdir, unlink...
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 access
Betadisk/TR-DOS Emulation: Supports (trimmed) .TRD files on all 4 drives
o Uses new configuration file /SYS/CONFIG/TRDOS.CFG, which should be self-explanatory
DivMMC Support: Supports the DivMMC standard
o Available on the Zx-One FPGA core and Mario Prato's DivMMC interface
Tape Emulator: Compatibility should be much higher now
NMI Browser: Onscreen help is available at any time by pressing the "H" key.
Can attach and auto-LOAD .TRD files (check help screen)
New/Updated Commands: .divideo, .vdisk, .playwav, .dskprobe, .snapload, .gramon, .speakcz
Currently unsupported features / known bugs
No 64K clusters
No extended partitions
No long file names
ATAPI/ARMD support is untested this time, bugreports from LS120/ZIP users are welcome!
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: +3DOS header is set on file creation and never updated when file size changes
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 (beware of a mismatch)
TR-DOS: FORMAT and MOVE commands don't work yet + too many to list ;)
Cold start
To perform a cold start without powering off your ZX Spectrum, press the reset-button and hold the
SPACE key while resetting.
This way ESXDOS reinitializes.
Drive Naming Convention
Drives are named according to their type and partition number.
For the first hard drive and partition, it would be named hd0 (or sd0 if using DivMMC).
You can see a list of drive names when ESXDOS runs it's initial BIOS drive detection (on a cold start).
BASIC commands
On all BASIC commands that use a drive parameter, you can use * for the current drive.
[…] means its an optional parameters.
GOTO [drive] ["path"]
Example:
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 [drive]
Example:
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"
Example:
LOAD *"/test/blabla", etc
SAVE drive "path/filename" [LINE]|[CODE]|[SCREEN$]
Example:
SAVE *"filename" SCREEN$, etc
ERASE [drive] "path/filename"
Example:
ERASE "filename", ERASE *"filename", etc

System commands
Files located in the /BIN directory are system commands.
These system commands can be executed from BASIC by typing: ".command <args>".
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.
Most commands are self-explanatory or show onscreen help when run without arguments (or with
the -h parameter).
An example of the onscreen help:
.tapeout
tapeOUT v0.1 (c) phoenix
Usage: tapeout [args] [tapfile]
-c: Close file
-o: Overwrite file
.ls
Show directory listing
.cd somedir
Change directory
.tapein somefile.tap
Attach .tap file for reading
.tapeout somefile.tap
Attach .tap file for writing
.chmod +h somefile.sys
Set/unset attributes on file/dir
.mkdir newdir
Create a new directory
.mv oldname newname
Rename/move file/dir
.cp source target
Copy file
.more textfile
Display the contents of a textfile
New commands in v0.8.5:
.divideo
.vdisk
.playwav
.dskprobe
.snapload
.gramon
.speakcz
TR-DOS emulator
Either use the NMI browser to attach/auto-LOAD .TRDs, or use the .vdisk command:
.vdisk unit <filename>
Unit 0 = Drive A, Unit 1 = Drive B, etc.
If you specify just the unit, it will eject the virtual drive.
You can use .dskprobe to check the contents of the vdisk.
Instructions on how to use TR-DOS are out of the scope of this document.
Note: TR-DOS emulation is not available in MapRAM mode (BETADISK.SYS will not be loaded)

NMI menu
Pressing the NMI button will bring up the NMI file selector menu.
From that menu the following keyboard shortcuts can be used.
Up, Down
Move cursor on page
Left, Right
Change page
Enter
RUN .sna, .z80, files with ZX header of type 'basic', view screen (same as 'v' except for .sna files),
attach .tap file to input slot and soft reset with autoload
r
Reset(Warm)
s
Create snapshot (auto incrementing name starting with snap0000.sna on initialisation of ESXDOS).
If you get ERROR 18 it’s because file already exists, try again.
1
Go to parent directory (chdir to ‘..’)
v
Show screen from .scr and .sna files (or files with ZX header of type ‘CODE’)
i
Attach tape file to input slot
Space
Exit from NMI mode
H
Onscreen help
ESXDOS (c) 2005-2013 by Papaya Dezign
Questions or bugreports about ESXDOS or complaints about lack of LFN/instructions?
Ask on the World of Spectrum or e-mail: bugs@esxdos.org
http://www.esxdos.org/
Document version 2013-06-23
Manual created by Ben Versteeg
http://benophetinternet.nl
These sources are used:
http://dl.dropboxusercontent.com/u/50121782/ESXDOS%20Single%20Sheet%20Manual%20v0_2.pdf
http://velesoft.speccy.cz/zx/divide/divide-esxdos.htm
ESXDOS 0.8.5. release notes