$Id: DiskEmulation,v 1.3 2002/01/14 23:54:48 james Exp $

The Emulated Filing System
==========================

There are now two emulated filesystems for xbeeb.  The original version
that I created before anyone had really much idea of what we were going
to want to do, probably some time back in the mid 1990's, and a new
one that uses the more common .inf files.

The default is now to use the .inf files.  This works best in
combination with the XDFS ROM below, which is also the default setup.
In this case the emulator can be pointed to a directory of .inf
format files using the -d flag and it fakes up a disk image inside
the emulator containing those files.

The emulated disk system (EFS.[ch]) requires a directory containing
a set of files present on a given disk, exactly as they would appear
on a BBC disk.  In addition, there's a file called "__CATALOG__"
which contains the name, load/execution address, length and sector
number for each file as it would be displayed by *INFO.

The sector number is unused in this emulation -- it's just there for
the sake of completeness.  In a future release, I may make the EFS
code more like the disk implementation, at which point the sector
number may become useful.

The emulation is not complete -- it's also not easy to implement all the
features the normal DFS. For example, without XDFS, *CAT displays the disk
catalog in the text window that Xbeeb was run from, not on the Xbeeb screen.
The other major problem at the moment is that, unlike the beeb, filenames
are case sensitive.

To "change" a "disk", press the "Enter" key on the keypad.  Xbeeb will
then display the current "disk" directory name and prompt for a new
one.  The "~" character may be used to represent $HOME and "+" may be
used to represent the compiled in value of XBEEBDISKS (in Config.h).

A demo "disk" is set up in the efs-demo directory.


XDFS Extensions
===============

Thanks to some wonderful work by David Stacey and Rick Gough, a much
nicer disk emulation, layered on top of the EFS code and requiring an
additional ROM (see the roms directory) which should be put in the
same directory as the OS and BASIC language ROMs.

To get XDFS support, just make sure you set the XDFS #define in
src/Config.h.  That's all there is to it.  You may also want to read
roms/README to get a better idea of what's supported.

A demo "disk" is set up in the xdfs-demo directory.


Revision History
================

$Log: DiskEmulation,v $
Revision 1.3  2002/01/14 23:54:48  james
Updates for v0.4

Revision 1.2  1996/10/10 22:28:58  james
Documented DRS's XDFS code.

Revision 1.1  1996/09/21 19:14:31  james
Added new documenation files : doc/Configuration doc/DataXfer
doc/DiskEmulation doc/Keyboard doc/KnownBugs doc/MailingLists doc/Options
doc/RomPatches doc/WorkingSoftware

