Home » Archimedes archive » Acorn User » AU 1998-04 A.adf » PD » Atterer/!raFS/Docs/tech_html

Atterer/!raFS/Docs/tech_html

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1998-04 A.adf » PD
Filename: Atterer/!raFS/Docs/tech_html
Read OK:
File size: 8ECC bytes
Load address: 0000
Exec address: 0000
File contents
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Manual for the raFS filing system</TITLE>
<META NAME="Author" CONTENT="Richard Atterer">
<META NAME="Keywords" CONTENT="Atterer, Augsburg, Acorn, raFS, filing, system, long, filename, filenames, directory, directories, file, files">
<META NAME="Description" CONTENT="Manual for the raFS filing system written by Richard Atterer">
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#8800BB"
ALINK="#FF0000">

<H1 ALIGN="center"><A
HREF="http://home.augsburg.baynet.de/richard.atterer/"><IMG ALT="raFS"
SRC="rafs.gif" WIDTH=206 HEIGHT=88 BORDER=0></A></H1>

<P><HR>

<P><H2><A NAME="top">Technical Details</A></H2>

This part of the manual describes more technical aspects of raFS. It is not
necessary for you to read it, but there are a few things here that aren't
mentioned in the User Manual.

<P>
<UL>
<LI><A HREF="#integrity">Corrupted discs</A> and how they are dealt with
<LI><A HREF="#behave">Behaviour in special situations</A>
<LI><A HREF="#limits">Limits of raFS</A>
<LI><A HREF="#goddamnbugs">Known problems</A>
<LI><A HREF="#cli">Command line interface</A>: <KBD><A HREF="#cli_filer">Desktop_raFSFiler</A>, <A HREF="#cli_fs">raFS</A>, <A HREF="#cli_create">raFS_Create</A>, <A HREF="#cli_flush">raFS_Flush</A>, <A HREF="#cli_discs">raFS_Discs</A>, <A HREF="#cli_mount">Mount</A>, <A HREF="#cli_dismount">Dismount</A>, <A HREF="#cli_free">Free</A>, <A HREF="#cli_name">NameDisc</A>, <A HREF="#cli_unsafe">raFS_Unsafe</A>, <A HREF="#cli_safe">raFS_Safe</A>, <A HREF="#cli_opt">raFS_Opt</A></KBD>
<LI><A HREF="#call">Calling raFS from assembler</A>: <KBD><A HREF="#call_info">raFS_Info</A>, <A HREF="#call_nrofdiscs">raFS_NrOfDiscs</A>, <A HREF="#call_enumeratediscs">raFS_EnumerateDiscs</A>, <A HREF="#call_finddisc">raFS_FindDisc</A>, <A HREF="#call_discinfo">raFS_DiscInfo</A>, <A HREF="#call_memcopy">raFS_MemCopy</A>, <A HREF="#call_readvar">raFS_ReadVar</A>, <A HREF="#call_setvar">raFS_SetVar</A></KBD>
<LI><A HREF="#format">File formats</A>
</UL>



<P><HR>

<P><H2><A NAME="integrity">Corrupted discs</A></H2>

raFS includes code to deal as cleanly as possible with discs that contain
invalid directories or file references. For example, a disc may become
corrupted due to changed but not yet saved directory data being lost when the
computer crashes.

<P>Whenever directory data is loaded into memory, the filing system performs
a number of checks to ensure that it really represents a valid directory -
incorrect directories could have disastrous effects. An error message of the
form <SAMP>directory data in 'ADFS::4.$.A0.A0.A0' is invalid</SAMP> is given
in this case.

<P>Before a new file or directory is written to the host filing system, raFS
also ensures that the directory doesn't contain any files with invalid names.
If a file is found whose name is not one of the 77 names <TT>A0</TT> to
<TT>Z1</TT>, the save operation fails with <SAMP>Name inside the directory
containing a raFS disc is not of the form 'A0.A0.A0'</SAMP>

<P>Finally, special code deals with files on raFS which refer to files on the
host filing system that either don't exist or that have a different time/date
stamp. If a file is missing, a dummy file (length zero, file type zero, date
stamp 01-01-1900) is created to prevent other files from being assigned that
ID. (Depending on the configured TimeZone of your machine, the year may also
be displayed as 2248 instead of 1900.)

<P>If the date stamp, file type or the file length does not match the
directory entry, all open, load, save, delete and create operations on files
will only produce an error like <SAMP>'ADFS::4.$.A0.A0.A0' does not belong to
this directory entry - verify the raFS disc.</SAMP> In this state, the only
possible operations are renaming the file, stamping it (or changing its
access details) and deleting it (<EM>only</EM> if it refers to a dummy file).
Stamping the file causes the data to be synchronized, so that any operation
can be applied to it again, but <EM>only do this if you are very sure about
it!</EM>

<P>Because there are filing systems that cannot store the date stamp in
centiseconds like the native RiscOS filing systems do, the stamp will still
be considered valid if it doesn't differ by more than 24 hours from what the
raFS directory entry contains. Some filing systems don't allow file stamps at
all. Consequently, it is possible to disable the checks by setting the system
variable raFS$NoChecks to a comma-seperated list of filing system names
before mounting discs on those filing systems. The names are matched
case-sensitively.

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="behave">Behaviour in special situations</A></H2>

There are a few points worth noting about how raFS behaves in certain
situations. 

<UL>

<LI>As a result of raFS' ability to have a file opened more than once, it is
also possible to save on top of an opened file. In this case, the file extent
will be set to the size of the file that is saved.

<LI>Once a file is opened multiple times, it is possible that the file extent
becomes smaller than the sequential pointer. This happens only for those
sequential pointers that don't belong to the file handle used for changing
the extent, i.&nbsp;e. if file handles A and B were returned when a file was
opened twice, and file handle A is used to set the extent, then the
sequential pointer of A will be set to the extent if it is greater whereas
the sequential pointer of B won't be. This is not a bug, the behaviour is
intended!

<LI>At present, you cannot rename or delete open files, but I'm thinking
about enabling you to do this. Is there any reason why it shouldn't be
possible?

<LI>raFS will sometimes automatically close files on its discs. This happens
when you use <KBD>Close</KBD> on one of raFS' host filing systems. For
example, if you issue <KBD>ADFS:Close</KBD> and you have one raFS disc on
ADFS and one on SCSIFS, any open files on the raFS disc stored on ADFS will
be closed, but open files on the other disc remain unaffected.

<P>raFS claims FindV (called by OS_Find) and FSCV (called by OS_FSControl)
and will close its own files before FileSwitch closes them on the host filing
system. This is done either only for one filing system in the case of
OS_Find&nbsp;0,0 (close all files on current filing system), or for all
filing systems in the case of OS_FSControl&nbsp;22 (close all open files) and
OS_FSControl&nbsp;23 (shutdown all filing systems).

<LI>Try running the following program on a file on a FileCore disc which is
locked and has no write access, only read access. It uses OS_Args&nbsp;6 to
ensure an open file's size:

<P><CODE>a%=OPENIN"ADFS::4.$.</CODE><I>Filename</I><CODE>"
<BR>SYS"OS_Args",6,a%,512&lt;&lt;10</CODE>

<P>Whereas FileCore ensures the specified size regardless of whether or not
write access was granted, raFS gets it right and ignores FSEntry_Args&nbsp;6
if the file is read-only. (By the way: Could this be used to compromise
security when a FileCore-based filing system is shared over a network? Just a
thought...)

<LI>raFS supports OS_FSControl&nbsp;55, which was introduced in
RiscOS&nbsp;3.6 to allow reading the free space on discs bigger than 4GB.
However, the code is untested. (Buy me a 4GB drive and I <EM>will</EM> test
it...)

</UL>

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="limits">Limits of raFS</A></H2>

The following gives some information about the limits imposed by raFS on its
discs. In practice. you are very unlikely to reach any of them, though.

<UL COMPACT>

<LI>The maximum number of discs that can be mounted at the same time is 50.
(This can easily be altered to up to 255 in the source code.)

<LI>One disc may contain at most 76&middot;77&middot;77 = 450604 objects (an
object is a directory or file). Note that FileCore-based filing systems
cannot store more than 32766 disc objects on a disc.

<LI>Consequently, you can theoretically have up to 450603 entries in a
directory...

<LI>The limit for the length of filenames is about 500 characters, though
FileSwitch imposes a limit of nearly 256 characters and the Filer will only
handle properly up to 63 characters.

<LI>Disc names can be up to 63 characters long. For longer names no error is
given, instead the name is truncated. (However, at present RiscOS insists on
a disc name length of 2 to 10 characters with OS_FSControl&nbsp;50 - you must
use <KBD>NameDisc</KBD> for longer names.)

<LI>Up to 65535 directories may be cached at the same time, otherwise things
start going wrong.

<LI>raFS is not re-entrant. This means that you cannot use raFS as the host
filing system for another raFS disc - this wouldn't serve any purpose,
anyway. Because this is no image filing system, it doesn't need to be
re-entrant.

</UL>

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="goddamnbugs">Known problems</A></H2>

<UL>

<LI>One user has experienced a problem with raFS which <EM>may</EM> have been
caused by a bug, but then it may also have been another program's fault. It
caused a character to be inserted into the string raFS used for accessing a
storage directory, in such a way that instead of a harddisc called 'Bigfoot',
one called 'Bi<B>o</B>gfoot' was being demanded for the saving of the buffer
contents.

<P>I haven't found a bug responsible for this, but I'm aware that if there is
one, it's a serious problem. The <KBD>path</KBD> switch that was added to
<KBD><A HREF="tech.html#cli_mount">Mount</A></KBD> will hopefully provide a
work-around for this problem.

<LI>If access to a directory becomes extremely slow as soon as it contains
several hundred files, this is no problem at all: Just increase the size of
the directory cache!

<LI>Several users have experienced <SAMP>Cannot extend raFS buffers</SAMP>
errors when there was still enough free memory left. This <EM>may</EM> be
caused by the ANT internet suite - please send me the output of
<KBD>Help&nbsp;Modules</KBD> on your machine if it happens to you!

<LI>If you get the error <SAMP>Name inside the directory containing an
raFS disc is not of the form A0.A0.A0</SAMP> then this is probably caused by
an older version of the ImageFSFix module - ArcFS version, <EM>earlier</EM>
than V0.30 (25-Aug-1996). Note that the ImageFSFix modules supplied with
SparkFS (e.&nbsp;g. V0.04) do not cause any problems.

<LI>raFSFiler doesn't look for <I>!Mount</I> files in the root of image files
in order to prevent address exceptions generated by older versions of SparkFS
when the archive was corrupted.

<LI>raFS may ask you to verify a disc that it thinks is corrupted.
Unfortunately, the verify operation has not yet been implemented. If there is
an undeliable file on your disc which causes an error to be displayed, the
safest way is to create a new raFS disc and to move the contents of the
corrupted disc across.

<LI>For every file on a raFS disc that is opened, raFS will open another one
on the host filing system. Because file handles are used up twice as quickly,
it is theoretically possible that e.&nbsp;g. the FontManager causes the main
application to run out of file handles. However, this is unlikely to happen.

<LI>Some filing system calls that are supported by FileCore for backward
compatibility are now deprecated in favour of other calls. They are not
implemented in raFS:

<UL>

<LI>OS_GBPB&nbsp;5 (read name and boot option) - use OS_FSControl&nbsp;37
and/or&nbsp;47

<LI>OS_GBPB&nbsp;6 or&nbsp;7 (read directory name and privilege byte) - use
OS_FSControl&nbsp;37

<LI>OS_GBPB&nbsp;8 (read directory entries) - use OS_GBPB&nbsp;9

</UL>

<LI>If Filer_Action fails with <SAMP>Internal error, no stack for trap
handler: Internal error: Branch through zero at...</SAMP> while deleting
files, the reason is that it has attempted to access a directory in order to
see whether it is empty, but the file on the host filing system which
contains the directory data is not there. If you double-click on the relevant
directory, you will get an error message saying something like <SAMP>Error
when reading 'raFS::DiscName.$.X.Dir' - 'ADFS::HardDisc4.$.MyDisc.A0.V8.U2'
not found</SAMP>

<P>A similar thing happens when you try to rename an object whose file isn't
found on the host filing system. This is a bug in the Filer_Action module.
(The module's programmer assumed that there will never be an error under
certain circumstances.)

<LI>You may occasionally notice that the <B>Dismount</B> submenu is closed
after a click with Adjust. This incorrect behaviour is also caused by the
Filer.

<LI>If an error occurs on the host filing system at a certain point during
renaming a file, you may end up with two directory entries pointing to the
same file. Don't attempt to delete one of them - this will also delete the
actual file, so the second entry won't work any longer! [Still to be written:
<KBD>Verify</KBD> <I>&lt;path of disc on host FS&gt;</I> to fix this and
similar things. For the time being, all you can do is to move one of the
files somewhere where it doesn't bother you.]

<P>In practice, this is very unlikely to happen.

<LI>Do not use <I>Memphis</I> (a memory-based filing system) as the host
filing system for a raFS disc with the pre-RiscOS&nbsp;3.5 version of raFS
(i.&nbsp;e. the one that uses the sprite area, just like Memphis does). This
seems to work for a while, but sooner or later something causes data loss. I
cannot be 100% sure, but my log files indicate that Memphis and not raFS
itself is the culprit (Data that I write to Memphis and then re-load
immediately afterwards is corrupted).

<P>The reason for the problem might lie in the fact that Memphis might not
expect that data saved to it is somewhere in the sprite area: raFS makes a
call to FileSwitch to save data to Memphis. Upon receiving the query from
FileSwitch, Memphis does some housekeeping, during which the size of one of
its sprites is altered, so that the sprite that belongs to raFS is copied to
a different memory location. Then Memphis "saves" the area of memory
specified by FileSwitch, but this no longer points to the correct data! The
correct behaviour of Memphis would be to check whether the data to be saved
is in the sprite area, and if it is, to update its pointer to it whenever a
sprite with a lower address changes size.<BR>[By the way: At present, raFS
itself doesn't perform these checks either...]

<P>It should be possible to use Memphis at the same time as raFS as long as
it is not the host filing system. However, don't blame me if something screws
up...

<LI>...there might be the odd bug.

</UL>

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="cli">Command line interface</A></H2>

<P>The raFSFiler module provides one <TT>*</TT>command:

<DL>

<DT><KBD><A NAME="cli_filer">Desktop_raFSFiler</A></KBD>
<I>[</I><KBD>-choices</KBD><I>] [</I><KBD>-newdisc</KBD><I>]
[</I><KBD>-left</KBD><I>] [</I><KBD>-right</KBD><I>]
[</I><KBD>-priority</KBD> <I>&lt;nr&gt;]</I>

<DD>If issued without any arguments, this command causes raFS to install its
icon on the icon bar. You can change the position of the icon bar icon by
adding <KBD>-left</KBD>, <KBD>-right</KBD> and <KBD>-priority</KBD> switches
to the command <EM>in the !Run file.</EM>

<P>The <KBD>-choices</KBD> and <KBD>-newdisc</KBD> switches are useful for
executing when the icon bar icon is clicked on. They open the "Choices" and
"Create new disc" windows, respectively.

<P><KBD>Desktop_raFSFiler</KBD> also supports <KBD>-mount</KBD>,
<KBD>-select</KBD> and <KBD>-adjust</KBD> switches, but these are intended
for internal use only.

</DL>

<P>raFS provides several <TT>*</TT>commands. While the raFSFiler module
offers a more convenient way of working with discs, you may sometimes prefer
using the command line instead.

<DL>

<DT><KBD><A NAME="cli_fs">raFS</A></KBD>

<DD>This command selects raFS as the current filing system. For raFS commands
that are also supported by other filing systems, like <KBD>Mount</KBD>, you
must switch to raFS with this command before using them. (Alternatively, you
can use <KBD>raFS:Mount</KBD> to switch to raFS temporarily.)

<DT><KBD><A NAME="cli_create">raFS_Create</A></KBD> <I>&lt;directory&gt;
&lt;DiscName&gt;</I> <I>[</I><KBD>-app</KBD> <I>&lt;SpriteName&gt;]</I>

<DD>This command sets up a storage directory for a disc, so that you can
subsequently mount it with <KBD>Mount</KBD> <I>&lt;directory&gt;</I>. If you
use a whole hard or floppy disc just for raFS, use the root directory "$" as
the storage directory, otherwise choose a directory as near to the root as
possible.

<P>The storage directory is the directory to which all files saved to the
disc will be written. If the specified directory does not already exist, it
is created. If it isn't empty, raFS will give an error.

<P>If the given directory's leafname begins with "!", the optional
<KBD>-app</KBD> switch can be used to specify the name of a sprite to use for
this application, for example <KBD>-app&nbsp;directory</KBD> to make it look
like an ordinary directory. This sprite must be present in the Wimp's pool
when the command is issued. raFS also saves a <I>!Run</I> file so that
double-clicking on the application will mount the disc and open its root
directory. The <KBD>-app</KBD> switch has no effect if the first character of
the leafname is not "!".

<P>To delete a complete raFS disc, make sure it has been dismounted and then
<KBD>Wipe</KBD> the storage directory.

<DT><KBD><A NAME="cli_flush">raFS_Flush</A></KBD>

<DD>This command saves the directory information of any altered directories
to the host filing system. However, in contrast to <KBD>Dismount</KBD> the
cached directories remain in memory. It is useful to ensure that a subsequent
crash will not cause data to be lost.

<DT><KBD><A NAME="cli_discs">raFS_Discs</A></KBD>

<DD><KBD>raFS_Discs</KBD> or the equivalent <KBD>raFS_Disks</KBD> gives a
list of all discs that are mounted at the time the command is entered. One
line of text will be printed for each disc, consisting of the disc name
followed by a space character and the name of the disc's storage directory.

<P>Future versions of raFS may print out additional information after that
described above, with further items appended to the printed lines after
spaces. Take this into account when writing programs that make use of this
command's output.

<DT><KBD><A NAME="cli_mount">Mount</A></KBD> <I>&lt;directory&gt;</I>
<I>[</I><KBD>-readonly</KBD><I>] [</I><KBD>-path</KBD><I>]
[</I><KBD>-X</KBD><I>]</I>

<DD>This command makes sure that you can access the raFS disc stored in the
specified directory, e.&nbsp;g. that you can open the root directory
"raFS::<I>DiscName</I>.$". It will also set the current directory to the
disc's root directory, unset the User Root Directory (URD), and set the
system variable raFS$Disc to the new disc's name.

<P>Two discs with the same name cannot be mounted at the same time - an error
will be given if this is attempted. However, if you try to mount a disc that
is already mounted (i.&nbsp;e. the disc of that name has the same storage
directory as specified in the <KBD>Mount</KBD> command), raFS will give no
error and will ignore the command.

<P>raFS automatically decides whether or not the disc is read-only by looking
at the file <I>!Atterer.</I> If this file does not have write access (either
because it resides on a read-only filing system or because you set its
attributes in order to permanently "write protect" the disc), all attempts to
modify files or directories will be faulted.

<P>The optional <KBD>-readonly</KBD> switch (short <KBD>-ro</KBD>) write
protects the disc even if <I>!Atterer</I> has write access.

<P>Any <KBD>-path</KBD> switch appended to the command will only come into
effect if the disc stored in the specified directory has the same name as one
of the currently mounted discs. In this case, it is assumed that the name of
that disc's storage directory has changed (e.&nbsp;g. because you renamed a
directory in the path) and that raFS should update its workspace accordingly.
<EM>Use this with care!</EM> You mustn't use this feature to set the path to
the storage directory of a different disc!

<P>When mounting discs without an <KBD>-X</KBD> switch appended to the
<KBD>Mount</KBD> command, raFS looks for a file called <I>!Mount</I> in the
storage directory. If the file is not present, the disc is just mounted, but
if <I>!Mount</I> is found, it is <KBD>Run</KBD>. Apart from that, nothing
happens; the disc is <EM>not</EM> mounted if <I>!Mount</I> is run. However,
it can be an Obey file containing the command
"<KBD>raFS:Mount&nbsp;&lt;Obey$Dir&gt;&nbsp;-X</KBD>". The presence of the
<KBD>-X</KBD> switch indicates to raFS that the disc should be mounted
without searching for <I>!Mount.</I> (Be careful not to create a loop by
forgetting to add the <KBD>-X</KBD> switch!) With this system, it is possible
to execute *commands before and after the disc is mounted.

<DT><KBD><A NAME="cli_dismount">Dismount</A></KBD> <I>[&lt;DiscName&gt;]</I>

<DD>This command does the opposite of <KBD>Mount</KBD>, removing the
specified disc (or all mounted discs if you omit the name) from its internal
list and saving any cached directory data. Discs must <EM>always</EM> be
dismounted before you reset or switch off the computer, but usually you don't
need to use <KBD>Dismount</KBD> because raFS is automatically called when the
desktop shuts down and when you issue <KBD>Shutdown.</KBD>

<P>Note that in case raFS is <KBD>RMKill</KBD>ed, it will try to dismount all
discs. However, any errors while doing this will be ignored, and the module
will <EM>not</EM> refuse to die, which means you lose data! It behaves like
this because if it refused to be <KBD>RMKill</KBD>ed, you would not be able
to reload it unless you reset the machine.

<P>Before a disc is dismounted, raFS sets the system variable raFS$DDisc to
its name and tries to run any file called <I>!Dismount</I> residing in the
storage directory. If errors occur during its execution, they are ignored;
the disc is always dismounted. You must not dismount raFS discs in a
<I>!Dismount</I> file. When the module is <KBD>RMKill</KBD>ed, the
<I>!Dismount</I> files are <EM>not</EM> executed.

<DT><KBD><A NAME="cli_name">NameDisc</A></KBD> <I>&lt;OldDiscName&gt;
&lt;NewDiscName&gt;</I>

<DD>This command (or also <KBD>NameDisk</KBD>) is used to change the name of
a disc. Obviously, the disc must have been mounted for it to work.

<DT><KBD><A NAME="cli_free">Free</A></KBD>

<DD>The <KBD>Free</KBD> command is just passed on to the host filing system
that the currently selected raFS directory is stored on, e.&nbsp;g. if the
disc is on ADFS, <KBD>ADFS:Free</KBD> will be executed.

<DT><KBD><A NAME="cli_unsafe">raFS_Unsafe</A></KBD>

<DD>By default, raFS only saves changed directory data to the host filing
system after a delay. Usually, this is desirable because it is faster, but
sometimes you may want to temporarily switch on write-through of the cache,
so any changes are saved immediately. Instead of
<KBD>raFS_Opt&nbsp;-dd&nbsp;1</KBD>, you can also switch on write-through
with this command.

<DT><KBD><A NAME="cli_safe">raFS_Safe</A></KBD>
<I>[</I><KBD>-smash</KBD><I>]</I>

<DD>This does the opposite of <KBD>raFS_Unsafe</KBD>, re-enabling the chosen
delay values for saving directory cache contents. Note that an internal
counter is kept, which means that in order to disable write-through after
issuing <KBD>raFS_Unsafe</KBD> twice, you would also have to execute
<KBD>raFS_Safe</KBD> twice. (After that, any additional <KBD>raFS_Safe</KBD>
will have no effect.) If the number of <KBD>raFS_Unsafe</KBD> commands is
unknown, you can use <KBD>raFS_Safe&nbsp;-smash</KBD> to disable
write-through immediately.

<P><KBD>raFS_Unsafe</KBD> and <KBD>raFS_Safe</KBD> can be added to a Wimp
application's !Run file if the application tends to crash the computer, in
such a way that write-through is disabled once the application is quit:

<P><I>other commands, e.&nbsp;g. WimpSlot, IconSprites etc.</I>
<BR><CODE>raFS_Unsafe</CODE>
<BR><CODE>Run &lt;</CODE><I>App</I><CODE>$Dir&gt;.!RunImage %*0</CODE>
<BR><CODE>raFS_Safe</CODE>

<DT><KBD><A NAME="cli_opt">raFS_Opt</A></KBD> <I>[</I><KBD>-DirCache</KBD>
<I>&lt;kB&gt;]</I> <I>[</I><KBD>-DirsaveDelay</KBD> <I>&lt;cs&gt;]</I>
<I>[</I><KBD>-DirsaveMods</KBD> <I>&lt;nr&gt;]</I> <I>[</I><KBD>-DirUpcall
0|1</KBD><I>] [</I><KBD>-LoadMessages</KBD> <I>&lt;name&gt;]</I>

<DD>This command is used to influence various miscellaneous aspects of raFS'
behaviour, or to output the current settings if no parameters are given. Each
of the optional keywords is followed by a value, in some cases just
<KBD>0</KBD> or <KBD>1</KBD> to switch on and off. The keywords can be
abbreviated to the characters written in uppercase, e.&nbsp;g. <KBD>-dc</KBD>
instead of <KBD>-DirCache.</KBD> However, case doesn't matter on the command
line; <KBD>-dircache</KBD> or <KBD>-dC</KBD> are the same as
<KBD>-DirCache.</KBD>

<P>Currently, the following keywords have an effect:

<UL>

<LI><A NAME="cli_optdc"><KBD>-DirCache</KBD></A> <I>&lt;kBytes&gt;</I>
selects the amount of memory that will be used for cacheing directory
information. There is one directory cache for all discs. You can switch
directory cacheing off completely by specifying <KBD>-DirCache&nbsp;0</KBD>,
but this makes raFS <EM>very</EM> slow. The recommended minimum for the cache
size is 16k - when the filing system module is loaded, the value defaults to
30k.

<LI><A NAME="cli_optdd"><KBD>-DirsaveDelay</KBD></A>
<I>&lt;centiseconds&gt;</I> sets the delay between the last change to a
directory and the moment it is saved to the host filing system. Supplying a
value of <KBD>0</KBD> causes no automatic saving whereas a value of
<KBD>1</KBD> makes raFS save immediately after each change. The default value
is 500 - five seconds.

<P>If both this and <KBD>-DirsaveMods</KBD> below are enabled at the same
time, the directory will be saved when the delay or the number of changes is
reached, whichever comes first.

<LI><A NAME="cli_optdm"><KBD>-DirsaveMods</KBD></A> <I>&lt;number&gt;</I>
allows you to specify the number of changes allowed to be made to a buffered
directory before it must be saved to the host filing system. For instance, if
you want to have the directory saved after every 5 files
written/deleted/renamed, use <KBD>-DirsaveMods&nbsp;5</KBD>. Again, supplying
a value of <KBD>0</KBD> switches the counting off and a value of <KBD>1</KBD>
forces immediate write-through. The maximum for this value is 255, the
default is 10.

<P>When the number of changes is counted, stamping of files, changing their
access details or closing open files is not taken into account. This is
necessary to ensure a Filer copy operation only increases the count by 1.

<LI><A NAME="cli_optdu"><KBD>-DirUpcall</KBD></A> followed by <KBD>0</KBD> or
<KBD>1</KBD> disables or enables whether raFS will cause directory displays
to be updated immediately when the size of a directory changes. (Unlike with
other filing systems, the directory size is not fixed and when it changes,
this will be reflected.) By default, this is switched off because it causes a
lot of flickering when the Filer continually updates its displays. Even when
the Upcalls are switched off, the directory size is updated eventually when
you re-open the parent of that directory or write to it.

<P>By the way: Have you noticed that RiscOS does not have an Upcall for
informing that an object's size has changed? I'm using OS_Upcall&nbsp;3,1
(Writing catalogue information), but even this excludes the size.

<LI><A NAME="cli_optlm"><KBD>-LoadMessages</KBD></A> followed by the name of
a Messages file is special in that it doesn't set internal variables.
Instead, this is used to override the hard-coded English defaults used for
error messages, help texts and the !Mount/!Run files.

<P>You can use <KBD>-LoadMessages&nbsp;null:</KBD> to discard the messages
and revert to the default ones.

</UL>

</DL>

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="call">Calling raFS from assembler</A></H2>

<P>As of version 1.10, there is a way of calling certain routines inside the
raFS module directly from assembler. raFSFiler uses these calls to get
information about discs and current settings.

<P>To call an raFS routine, you must first find out the address of the module
workspace with:

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;SYS "XOS_Module",18,"raFS" TO
R0%,R1%,R2%,R3%,workspace%</CODE>

<P>Move the returned value into R11 before calling raFS with the following
instructions:

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;MOV LR,PC
<BR>&nbsp;&nbsp;&nbsp;&nbsp;LDR PC,[R11,#rout_offset%]</CODE>

<P>If you use <CODE>MOV LR,PC</CODE> (and not <CODE>ADD LR,PC,#0</CODE>)
before calling the routine, the N, Z and C flags will be preserved. When
calling raFS from SVC code, you must use <CODE>MOV</CODE>, otherwise the
processor will switch to USR mode once the call returns.

<P>The <CODE>rout_offset%</CODE> is zero for the routine described first
below, and increases in the order the routines are described. The Docs
directory contains a small BASIC program which sets up the offsets with a
horrible EVAL trick and which also provides a macro for the BASIC assembler
so the above can be reduced to, e.&nbsp;g. <CODE>FNcall(raFS_Info)</CODE>.

<P>Registers not mentioned in "On exit" are preserved. (Of course, R14 is
corrupted.) For all calls, R11 must point to the workspace of the raFS
module. Processor must be in USR or SVC mode, R13 must point to a full
descending stack with at least 1k free.

<P>In the following descriptions, any bits in fields that are not described
are reserved. It should not be assumed that they are zero, and when setting
the word's value, they must be preserved.

<DL>

<DT><CODE><A NAME="call_info">raFS_Info</A></CODE>

<DD><B>On entry:</B>
<BR>-
<P><B>On exit:</B>
<BR>R0 = module version number * 100
<BR>R1 = maximum number of discs this version can have mounted
<BR>R2 = bit 0 set =&gt; module's heap is in sprite area, bits 24-31 = country number (1 for UK, 7 for Germany)
<BR>R3-R5 corrupted
<P>Never returns an error.


<DT><CODE><A NAME="call_nrofdiscs">raFS_NrOfDiscs</A></CODE>

<DD><B>On entry:</B>
<BR>-
<P><B>On exit:</B>
<BR>R0 = number of discs currently mounted
<P>Never returns an error.


<DT><CODE><A NAME="call_enumeratediscs">raFS_EnumerateDiscs</A></CODE>

<DD><B>On entry:</B>
<BR>R9 = -1 for first call
<P><B>On exit:</B>
<BR>R0 = word-aligned pointer to zero-terminated disc name
<BR>R1 = word-aligned pointer to unterminated name of storage directory
<BR>R2 = length of name of storage directory
<BR>R9 = disc number (also value of R9 for next call to this routine) or -1 and C set if no more discs

<P>Never returns an error. The information must be copied away immediately;
it may change during any call to raFS (except raFS_MemCopy) or accesses to
the filing system.

<P>After the disc name there are 1 to 4 zero bytes, up to the next word
boundary, so you can find the length faster by first loading words and only
looking at the high byte with <CODE>TST Rx,#&amp;FF&lt;&lt;24</CODE>


<DT><CODE><A NAME="call_finddisc">raFS_FindDisc</A></CODE>

<DD><B>On entry:</B>
<BR>R1 =&gt; zero-terminated disc name
<P><B>On exit:</B>
<BR>R0 = word-aligned pointer to zero-terminated disc name
<BR>R1 = word-aligned pointer to unterminated name of storage directory
<BR>R2 = length of name of storage directory
<BR>R8 = internal ID of the disc's root directory
<BR>R9 = disc number
<BR>R14 = length of disc name

<P>If a disc of the given name is not mounted, an error is returned. Again,
the returned pointers to the disc name (whose case may differ from that
passed to the routine) and storage directory are read-only and must be copied
away immediately.


<DT><CODE><A NAME="call_discinfo">raFS_DiscInfo</A></CODE>

<DD><B>On entry:</B>
<BR>R9 = disc number
<P><B>On exit:</B>
<BR>R0 = word-aligned pointer to zero-terminated disc name
<BR>R1 = word-aligned pointer to unterminated name of storage directory
<BR>R2 = length of name of storage directory
<BR>R3 = flags:
<BR>&nbsp;&nbsp;&nbsp;&nbsp;bit 0 set =&gt; the disc is read-only
<BR>&nbsp;&nbsp;&nbsp;&nbsp;bit 1 set =&gt; integrity checks are performed (raFS$NoChecks)
<BR>R8 = internal ID of the disc's root directory
<BR>or C set if disc of that number not mounted

<P>If the given disc number is in the valid range (zero to maximum number -
1) and a disc of that number does not exist, this returns with C set.
Obviously, this call is much faster than raFS_FindDisc because it doesn't
have to search for the disc name.


<DT><CODE><A NAME="call_memcopy">raFS_MemCopy</A></CODE>

<DD><B>On entry:</B>
<BR>R2 =&gt; source (word-aligned)
<BR>R3 =&gt; destination (word-aligned)
<BR>R4 = number of bytes to copy (multiple of 4)
<P><B>On exit:</B>
<BR>Registers preserved
<P>The memory areas may overlap.


<DT><CODE><A NAME="call_readvar">raFS_ReadVar</A></CODE>

<DD><B>On entry:</B>
<BR>R0 = number of variable to read
<P><B>On exit:</B>
<BR>R0 = value / pointer to string (depending on variable type)
<BR>R1 corrupted

<P>Currently, the following variables are supported:
<UL>
<LI>0 =&gt; DirCache (kBytes) - is internally stored as bytes, so don't set to a value higher than &amp;3fffff
<LI>1 =&gt; DirsaveDelay (centiseconds)
<LI>2 =&gt; DirsaveMods (nr)
<LI>3 =&gt; Misc flags:
<BR>&nbsp;&nbsp;&nbsp;&nbsp;Bit 0 set =&gt; DirUpcall happens
</UL>


<DT><CODE><A NAME="call_setvar">raFS_SetVar</A></CODE>

<DD><B>On entry:</B>
<BR>R0 = number of variable to set value of
<BR>R1 = new value
<P><B>On exit:</B>
<BR>R0, R1 corrupted
<P>R0 on entry contains the same values as for raFS_ReadVar


</DL>



<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I><P><HR
WIDTH="41%">



<P><H2><A NAME="format">File formats</A></H2>

This section outlines the format of a raFS disc for the curious and for those
who can't wait for me to implement <KBD>Verify</KBD> :-(

In the following descriptions, an ID word is of the form &amp;00zzyyxx where
xx is the first level directory, yy the second, and zz the leaf name, e.g.
&amp;00010203 is the file 'B0.A2.A1'. The root directory is always
'A0.A0.A0'.

<H3>The <I>!Atterer</I> file</H3>

<P><PRE>Size Description
64   disc name, null terminated, padded with zeroes
4    there is guaranteed no unused ID lower than this one
4    attribute flags for root directory (0 at present)
4    0 (unimplemented)
4    o = number of buffer settings following (always 0 at present)
??*o buffer settings</PRE>

<H3>Directory format</H3>

<P><PRE>Size Description
4    n = nr of entries
4    m = 0 (unimplemented)
4    ID of parent (max. 76.76.76.0) - word contains -1 for root
4    &80000000 (unimplemented)
4*n  offset to start of directory entries
     (words must be sorted in ascending order, file names in ASCII order,
     offsets are relative to start of these offsets)
4*m  if any, offset to... (unimplemented)
4    offset to first unused byte after dir entries/dir names (also from
     beginning of offsets, so that if there are no entries, this contains the
     value 4)</PRE>

<P>This is followed by the individual entries, if any:

<P><PRE>4    load address
4    exec address
4    length (or FileSwitch handle if flag bit 12 set)
4    attributes
4    raFS attributes/flags:
     bits 0-1: 0 (unimplemented)
          2-3: 0 (unimplemented)
          4-5: 0 (unimplemented)
          6-7: 0=normal file, 1/2 unimplemented, 3=directory
          12:  if set, file is open =&gt; 'length' contains FileSwitch handle
4    0 (unimplemented)
4    ID of file/directory
4*?  name of file/directory, zero-terminated, padded with zeroes to the next
     multiple of 4.
4*?  (unimplemented, always null at present)
</PRE>

<P>If an entry with bit 12 set is encountered upon loading directory data,
raFS checks whether its own list of files contains that file ID together with
the FileSwitch handle found in the directory entry. If there is no such entry
in the list of open files, it is assumed that the machine crashed and the
length is restored.

<P ALIGN="right"><I><A HREF="#top">Back to the top of the page</A></I>

</BODY></HTML>
00000000  3c 21 44 4f 43 54 59 50  45 20 48 54 4d 4c 20 50  |<!DOCTYPE HTML P|
00000010  55 42 4c 49 43 20 22 2d  2f 2f 57 33 43 2f 2f 44  |UBLIC "-//W3C//D|
00000020  54 44 20 48 54 4d 4c 20  33 2e 32 2f 2f 45 4e 22  |TD HTML 3.2//EN"|
00000030  3e 0a 3c 48 54 4d 4c 3e  0a 3c 48 45 41 44 3e 0a  |>.<HTML>.<HEAD>.|
00000040  3c 54 49 54 4c 45 3e 4d  61 6e 75 61 6c 20 66 6f  |<TITLE>Manual fo|
00000050  72 20 74 68 65 20 72 61  46 53 20 66 69 6c 69 6e  |r the raFS filin|
00000060  67 20 73 79 73 74 65 6d  3c 2f 54 49 54 4c 45 3e  |g system</TITLE>|
00000070  0a 3c 4d 45 54 41 20 4e  41 4d 45 3d 22 41 75 74  |.<META NAME="Aut|
00000080  68 6f 72 22 20 43 4f 4e  54 45 4e 54 3d 22 52 69  |hor" CONTENT="Ri|
00000090  63 68 61 72 64 20 41 74  74 65 72 65 72 22 3e 0a  |chard Atterer">.|
000000a0  3c 4d 45 54 41 20 4e 41  4d 45 3d 22 4b 65 79 77  |<META NAME="Keyw|
000000b0  6f 72 64 73 22 20 43 4f  4e 54 45 4e 54 3d 22 41  |ords" CONTENT="A|
000000c0  74 74 65 72 65 72 2c 20  41 75 67 73 62 75 72 67  |tterer, Augsburg|
000000d0  2c 20 41 63 6f 72 6e 2c  20 72 61 46 53 2c 20 66  |, Acorn, raFS, f|
000000e0  69 6c 69 6e 67 2c 20 73  79 73 74 65 6d 2c 20 6c  |iling, system, l|
000000f0  6f 6e 67 2c 20 66 69 6c  65 6e 61 6d 65 2c 20 66  |ong, filename, f|
00000100  69 6c 65 6e 61 6d 65 73  2c 20 64 69 72 65 63 74  |ilenames, direct|
00000110  6f 72 79 2c 20 64 69 72  65 63 74 6f 72 69 65 73  |ory, directories|
00000120  2c 20 66 69 6c 65 2c 20  66 69 6c 65 73 22 3e 0a  |, file, files">.|
00000130  3c 4d 45 54 41 20 4e 41  4d 45 3d 22 44 65 73 63  |<META NAME="Desc|
00000140  72 69 70 74 69 6f 6e 22  20 43 4f 4e 54 45 4e 54  |ription" CONTENT|
00000150  3d 22 4d 61 6e 75 61 6c  20 66 6f 72 20 74 68 65  |="Manual for the|
00000160  20 72 61 46 53 20 66 69  6c 69 6e 67 20 73 79 73  | raFS filing sys|
00000170  74 65 6d 20 77 72 69 74  74 65 6e 20 62 79 20 52  |tem written by R|
00000180  69 63 68 61 72 64 20 41  74 74 65 72 65 72 22 3e  |ichard Atterer">|
00000190  0a 3c 4d 45 54 41 20 48  54 54 50 2d 45 51 55 49  |.<META HTTP-EQUI|
000001a0  56 3d 22 43 6f 6e 74 65  6e 74 2d 74 79 70 65 22  |V="Content-type"|
000001b0  20 43 4f 4e 54 45 4e 54  3d 22 74 65 78 74 2f 68  | CONTENT="text/h|
000001c0  74 6d 6c 3b 20 63 68 61  72 73 65 74 3d 69 73 6f  |tml; charset=iso|
000001d0  2d 38 38 35 39 2d 31 22  3e 0a 3c 2f 48 45 41 44  |-8859-1">.</HEAD|
000001e0  3e 0a 0a 3c 42 4f 44 59  20 42 47 43 4f 4c 4f 52  |>..<BODY BGCOLOR|
000001f0  3d 22 23 46 46 46 46 46  46 22 20 54 45 58 54 3d  |="#FFFFFF" TEXT=|
00000200  22 23 30 30 30 30 30 30  22 20 4c 49 4e 4b 3d 22  |"#000000" LINK="|
00000210  23 30 30 30 30 46 46 22  20 56 4c 49 4e 4b 3d 22  |#0000FF" VLINK="|
00000220  23 38 38 30 30 42 42 22  0a 41 4c 49 4e 4b 3d 22  |#8800BB".ALINK="|
00000230  23 46 46 30 30 30 30 22  3e 0a 0a 3c 48 31 20 41  |#FF0000">..<H1 A|
00000240  4c 49 47 4e 3d 22 63 65  6e 74 65 72 22 3e 3c 41  |LIGN="center"><A|
00000250  0a 48 52 45 46 3d 22 68  74 74 70 3a 2f 2f 68 6f  |.HREF="http://ho|
00000260  6d 65 2e 61 75 67 73 62  75 72 67 2e 62 61 79 6e  |me.augsburg.bayn|
00000270  65 74 2e 64 65 2f 72 69  63 68 61 72 64 2e 61 74  |et.de/richard.at|
00000280  74 65 72 65 72 2f 22 3e  3c 49 4d 47 20 41 4c 54  |terer/"><IMG ALT|
00000290  3d 22 72 61 46 53 22 0a  53 52 43 3d 22 72 61 66  |="raFS".SRC="raf|
000002a0  73 2e 67 69 66 22 20 57  49 44 54 48 3d 32 30 36  |s.gif" WIDTH=206|
000002b0  20 48 45 49 47 48 54 3d  38 38 20 42 4f 52 44 45  | HEIGHT=88 BORDE|
000002c0  52 3d 30 3e 3c 2f 41 3e  3c 2f 48 31 3e 0a 0a 3c  |R=0></A></H1>..<|
000002d0  50 3e 3c 48 52 3e 0a 0a  3c 50 3e 3c 48 32 3e 3c  |P><HR>..<P><H2><|
000002e0  41 20 4e 41 4d 45 3d 22  74 6f 70 22 3e 54 65 63  |A NAME="top">Tec|
000002f0  68 6e 69 63 61 6c 20 44  65 74 61 69 6c 73 3c 2f  |hnical Details</|
00000300  41 3e 3c 2f 48 32 3e 0a  0a 54 68 69 73 20 70 61  |A></H2>..This pa|
00000310  72 74 20 6f 66 20 74 68  65 20 6d 61 6e 75 61 6c  |rt of the manual|
00000320  20 64 65 73 63 72 69 62  65 73 20 6d 6f 72 65 20  | describes more |
00000330  74 65 63 68 6e 69 63 61  6c 20 61 73 70 65 63 74  |technical aspect|
00000340  73 20 6f 66 20 72 61 46  53 2e 20 49 74 20 69 73  |s of raFS. It is|
00000350  20 6e 6f 74 0a 6e 65 63  65 73 73 61 72 79 20 66  | not.necessary f|
00000360  6f 72 20 79 6f 75 20 74  6f 20 72 65 61 64 20 69  |or you to read i|
00000370  74 2c 20 62 75 74 20 74  68 65 72 65 20 61 72 65  |t, but there are|
00000380  20 61 20 66 65 77 20 74  68 69 6e 67 73 20 68 65  | a few things he|
00000390  72 65 20 74 68 61 74 20  61 72 65 6e 27 74 0a 6d  |re that aren't.m|
000003a0  65 6e 74 69 6f 6e 65 64  20 69 6e 20 74 68 65 20  |entioned in the |
000003b0  55 73 65 72 20 4d 61 6e  75 61 6c 2e 0a 0a 3c 50  |User Manual...<P|
000003c0  3e 0a 3c 55 4c 3e 0a 3c  4c 49 3e 3c 41 20 48 52  |>.<UL>.<LI><A HR|
000003d0  45 46 3d 22 23 69 6e 74  65 67 72 69 74 79 22 3e  |EF="#integrity">|
000003e0  43 6f 72 72 75 70 74 65  64 20 64 69 73 63 73 3c  |Corrupted discs<|
000003f0  2f 41 3e 20 61 6e 64 20  68 6f 77 20 74 68 65 79  |/A> and how they|
00000400  20 61 72 65 20 64 65 61  6c 74 20 77 69 74 68 0a  | are dealt with.|
00000410  3c 4c 49 3e 3c 41 20 48  52 45 46 3d 22 23 62 65  |<LI><A HREF="#be|
00000420  68 61 76 65 22 3e 42 65  68 61 76 69 6f 75 72 20  |have">Behaviour |
00000430  69 6e 20 73 70 65 63 69  61 6c 20 73 69 74 75 61  |in special situa|
00000440  74 69 6f 6e 73 3c 2f 41  3e 0a 3c 4c 49 3e 3c 41  |tions</A>.<LI><A|
00000450  20 48 52 45 46 3d 22 23  6c 69 6d 69 74 73 22 3e  | HREF="#limits">|
00000460  4c 69 6d 69 74 73 20 6f  66 20 72 61 46 53 3c 2f  |Limits of raFS</|
00000470  41 3e 0a 3c 4c 49 3e 3c  41 20 48 52 45 46 3d 22  |A>.<LI><A HREF="|
00000480  23 67 6f 64 64 61 6d 6e  62 75 67 73 22 3e 4b 6e  |#goddamnbugs">Kn|
00000490  6f 77 6e 20 70 72 6f 62  6c 65 6d 73 3c 2f 41 3e  |own problems</A>|
000004a0  0a 3c 4c 49 3e 3c 41 20  48 52 45 46 3d 22 23 63  |.<LI><A HREF="#c|
000004b0  6c 69 22 3e 43 6f 6d 6d  61 6e 64 20 6c 69 6e 65  |li">Command line|
000004c0  20 69 6e 74 65 72 66 61  63 65 3c 2f 41 3e 3a 20  | interface</A>: |
000004d0  3c 4b 42 44 3e 3c 41 20  48 52 45 46 3d 22 23 63  |<KBD><A HREF="#c|
000004e0  6c 69 5f 66 69 6c 65 72  22 3e 44 65 73 6b 74 6f  |li_filer">Deskto|
000004f0  70 5f 72 61 46 53 46 69  6c 65 72 3c 2f 41 3e 2c  |p_raFSFiler</A>,|
00000500  20 3c 41 20 48 52 45 46  3d 22 23 63 6c 69 5f 66  | <A HREF="#cli_f|
00000510  73 22 3e 72 61 46 53 3c  2f 41 3e 2c 20 3c 41 20  |s">raFS</A>, <A |
00000520  48 52 45 46 3d 22 23 63  6c 69 5f 63 72 65 61 74  |HREF="#cli_creat|
00000530  65 22 3e 72 61 46 53 5f  43 72 65 61 74 65 3c 2f  |e">raFS_Create</|
00000540  41 3e 2c 20 3c 41 20 48  52 45 46 3d 22 23 63 6c  |A>, <A HREF="#cl|
00000550  69 5f 66 6c 75 73 68 22  3e 72 61 46 53 5f 46 6c  |i_flush">raFS_Fl|
00000560  75 73 68 3c 2f 41 3e 2c  20 3c 41 20 48 52 45 46  |ush</A>, <A HREF|
00000570  3d 22 23 63 6c 69 5f 64  69 73 63 73 22 3e 72 61  |="#cli_discs">ra|
00000580  46 53 5f 44 69 73 63 73  3c 2f 41 3e 2c 20 3c 41  |FS_Discs</A>, <A|
00000590  20 48 52 45 46 3d 22 23  63 6c 69 5f 6d 6f 75 6e  | HREF="#cli_moun|
000005a0  74 22 3e 4d 6f 75 6e 74  3c 2f 41 3e 2c 20 3c 41  |t">Mount</A>, <A|
000005b0  20 48 52 45 46 3d 22 23  63 6c 69 5f 64 69 73 6d  | HREF="#cli_dism|
000005c0  6f 75 6e 74 22 3e 44 69  73 6d 6f 75 6e 74 3c 2f  |ount">Dismount</|
000005d0  41 3e 2c 20 3c 41 20 48  52 45 46 3d 22 23 63 6c  |A>, <A HREF="#cl|
000005e0  69 5f 66 72 65 65 22 3e  46 72 65 65 3c 2f 41 3e  |i_free">Free</A>|
000005f0  2c 20 3c 41 20 48 52 45  46 3d 22 23 63 6c 69 5f  |, <A HREF="#cli_|
00000600  6e 61 6d 65 22 3e 4e 61  6d 65 44 69 73 63 3c 2f  |name">NameDisc</|
00000610  41 3e 2c 20 3c 41 20 48  52 45 46 3d 22 23 63 6c  |A>, <A HREF="#cl|
00000620  69 5f 75 6e 73 61 66 65  22 3e 72 61 46 53 5f 55  |i_unsafe">raFS_U|
00000630  6e 73 61 66 65 3c 2f 41  3e 2c 20 3c 41 20 48 52  |nsafe</A>, <A HR|
00000640  45 46 3d 22 23 63 6c 69  5f 73 61 66 65 22 3e 72  |EF="#cli_safe">r|
00000650  61 46 53 5f 53 61 66 65  3c 2f 41 3e 2c 20 3c 41  |aFS_Safe</A>, <A|
00000660  20 48 52 45 46 3d 22 23  63 6c 69 5f 6f 70 74 22  | HREF="#cli_opt"|
00000670  3e 72 61 46 53 5f 4f 70  74 3c 2f 41 3e 3c 2f 4b  |>raFS_Opt</A></K|
00000680  42 44 3e 0a 3c 4c 49 3e  3c 41 20 48 52 45 46 3d  |BD>.<LI><A HREF=|
00000690  22 23 63 61 6c 6c 22 3e  43 61 6c 6c 69 6e 67 20  |"#call">Calling |
000006a0  72 61 46 53 20 66 72 6f  6d 20 61 73 73 65 6d 62  |raFS from assemb|
000006b0  6c 65 72 3c 2f 41 3e 3a  20 3c 4b 42 44 3e 3c 41  |ler</A>: <KBD><A|
000006c0  20 48 52 45 46 3d 22 23  63 61 6c 6c 5f 69 6e 66  | HREF="#call_inf|
000006d0  6f 22 3e 72 61 46 53 5f  49 6e 66 6f 3c 2f 41 3e  |o">raFS_Info</A>|
000006e0  2c 20 3c 41 20 48 52 45  46 3d 22 23 63 61 6c 6c  |, <A HREF="#call|
000006f0  5f 6e 72 6f 66 64 69 73  63 73 22 3e 72 61 46 53  |_nrofdiscs">raFS|
00000700  5f 4e 72 4f 66 44 69 73  63 73 3c 2f 41 3e 2c 20  |_NrOfDiscs</A>, |
00000710  3c 41 20 48 52 45 46 3d  22 23 63 61 6c 6c 5f 65  |<A HREF="#call_e|
00000720  6e 75 6d 65 72 61 74 65  64 69 73 63 73 22 3e 72  |numeratediscs">r|
00000730  61 46 53 5f 45 6e 75 6d  65 72 61 74 65 44 69 73  |aFS_EnumerateDis|
00000740  63 73 3c 2f 41 3e 2c 20  3c 41 20 48 52 45 46 3d  |cs</A>, <A HREF=|
00000750  22 23 63 61 6c 6c 5f 66  69 6e 64 64 69 73 63 22  |"#call_finddisc"|
00000760  3e 72 61 46 53 5f 46 69  6e 64 44 69 73 63 3c 2f  |>raFS_FindDisc</|
00000770  41 3e 2c 20 3c 41 20 48  52 45 46 3d 22 23 63 61  |A>, <A HREF="#ca|
00000780  6c 6c 5f 64 69 73 63 69  6e 66 6f 22 3e 72 61 46  |ll_discinfo">raF|
00000790  53 5f 44 69 73 63 49 6e  66 6f 3c 2f 41 3e 2c 20  |S_DiscInfo</A>, |
000007a0  3c 41 20 48 52 45 46 3d  22 23 63 61 6c 6c 5f 6d  |<A HREF="#call_m|
000007b0  65 6d 63 6f 70 79 22 3e  72 61 46 53 5f 4d 65 6d  |emcopy">raFS_Mem|
000007c0  43 6f 70 79 3c 2f 41 3e  2c 20 3c 41 20 48 52 45  |Copy</A>, <A HRE|
000007d0  46 3d 22 23 63 61 6c 6c  5f 72 65 61 64 76 61 72  |F="#call_readvar|
000007e0  22 3e 72 61 46 53 5f 52  65 61 64 56 61 72 3c 2f  |">raFS_ReadVar</|
000007f0  41 3e 2c 20 3c 41 20 48  52 45 46 3d 22 23 63 61  |A>, <A HREF="#ca|
00000800  6c 6c 5f 73 65 74 76 61  72 22 3e 72 61 46 53 5f  |ll_setvar">raFS_|
00000810  53 65 74 56 61 72 3c 2f  41 3e 3c 2f 4b 42 44 3e  |SetVar</A></KBD>|
00000820  0a 3c 4c 49 3e 3c 41 20  48 52 45 46 3d 22 23 66  |.<LI><A HREF="#f|
00000830  6f 72 6d 61 74 22 3e 46  69 6c 65 20 66 6f 72 6d  |ormat">File form|
00000840  61 74 73 3c 2f 41 3e 0a  3c 2f 55 4c 3e 0a 0a 0a  |ats</A>.</UL>...|
00000850  0a 3c 50 3e 3c 48 52 3e  0a 0a 3c 50 3e 3c 48 32  |.<P><HR>..<P><H2|
00000860  3e 3c 41 20 4e 41 4d 45  3d 22 69 6e 74 65 67 72  |><A NAME="integr|
00000870  69 74 79 22 3e 43 6f 72  72 75 70 74 65 64 20 64  |ity">Corrupted d|
00000880  69 73 63 73 3c 2f 41 3e  3c 2f 48 32 3e 0a 0a 72  |iscs</A></H2>..r|
00000890  61 46 53 20 69 6e 63 6c  75 64 65 73 20 63 6f 64  |aFS includes cod|
000008a0  65 20 74 6f 20 64 65 61  6c 20 61 73 20 63 6c 65  |e to deal as cle|
000008b0  61 6e 6c 79 20 61 73 20  70 6f 73 73 69 62 6c 65  |anly as possible|
000008c0  20 77 69 74 68 20 64 69  73 63 73 20 74 68 61 74  | with discs that|
000008d0  20 63 6f 6e 74 61 69 6e  0a 69 6e 76 61 6c 69 64  | contain.invalid|
000008e0  20 64 69 72 65 63 74 6f  72 69 65 73 20 6f 72 20  | directories or |
000008f0  66 69 6c 65 20 72 65 66  65 72 65 6e 63 65 73 2e  |file references.|
00000900  20 46 6f 72 20 65 78 61  6d 70 6c 65 2c 20 61 20  | For example, a |
00000910  64 69 73 63 20 6d 61 79  20 62 65 63 6f 6d 65 0a  |disc may become.|
00000920  63 6f 72 72 75 70 74 65  64 20 64 75 65 20 74 6f  |corrupted due to|
00000930  20 63 68 61 6e 67 65 64  20 62 75 74 20 6e 6f 74  | changed but not|
00000940  20 79 65 74 20 73 61 76  65 64 20 64 69 72 65 63  | yet saved direc|
00000950  74 6f 72 79 20 64 61 74  61 20 62 65 69 6e 67 20  |tory data being |
00000960  6c 6f 73 74 20 77 68 65  6e 20 74 68 65 0a 63 6f  |lost when the.co|
00000970  6d 70 75 74 65 72 20 63  72 61 73 68 65 73 2e 0a  |mputer crashes..|
00000980  0a 3c 50 3e 57 68 65 6e  65 76 65 72 20 64 69 72  |.<P>Whenever dir|
00000990  65 63 74 6f 72 79 20 64  61 74 61 20 69 73 20 6c  |ectory data is l|
000009a0  6f 61 64 65 64 20 69 6e  74 6f 20 6d 65 6d 6f 72  |oaded into memor|
000009b0  79 2c 20 74 68 65 20 66  69 6c 69 6e 67 20 73 79  |y, the filing sy|
000009c0  73 74 65 6d 20 70 65 72  66 6f 72 6d 73 0a 61 20  |stem performs.a |
000009d0  6e 75 6d 62 65 72 20 6f  66 20 63 68 65 63 6b 73  |number of checks|
000009e0  20 74 6f 20 65 6e 73 75  72 65 20 74 68 61 74 20  | to ensure that |
000009f0  69 74 20 72 65 61 6c 6c  79 20 72 65 70 72 65 73  |it really repres|
00000a00  65 6e 74 73 20 61 20 76  61 6c 69 64 20 64 69 72  |ents a valid dir|
00000a10  65 63 74 6f 72 79 20 2d  0a 69 6e 63 6f 72 72 65  |ectory -.incorre|
00000a20  63 74 20 64 69 72 65 63  74 6f 72 69 65 73 20 63  |ct directories c|
00000a30  6f 75 6c 64 20 68 61 76  65 20 64 69 73 61 73 74  |ould have disast|
00000a40  72 6f 75 73 20 65 66 66  65 63 74 73 2e 20 41 6e  |rous effects. An|
00000a50  20 65 72 72 6f 72 20 6d  65 73 73 61 67 65 20 6f  | error message o|
00000a60  66 20 74 68 65 0a 66 6f  72 6d 20 3c 53 41 4d 50  |f the.form <SAMP|
00000a70  3e 64 69 72 65 63 74 6f  72 79 20 64 61 74 61 20  |>directory data |
00000a80  69 6e 20 27 41 44 46 53  3a 3a 34 2e 24 2e 41 30  |in 'ADFS::4.$.A0|
00000a90  2e 41 30 2e 41 30 27 20  69 73 20 69 6e 76 61 6c  |.A0.A0' is inval|
00000aa0  69 64 3c 2f 53 41 4d 50  3e 20 69 73 20 67 69 76  |id</SAMP> is giv|
00000ab0  65 6e 0a 69 6e 20 74 68  69 73 20 63 61 73 65 2e  |en.in this case.|
00000ac0  0a 0a 3c 50 3e 42 65 66  6f 72 65 20 61 20 6e 65  |..<P>Before a ne|
00000ad0  77 20 66 69 6c 65 20 6f  72 20 64 69 72 65 63 74  |w file or direct|
00000ae0  6f 72 79 20 69 73 20 77  72 69 74 74 65 6e 20 74  |ory is written t|
00000af0  6f 20 74 68 65 20 68 6f  73 74 20 66 69 6c 69 6e  |o the host filin|
00000b00  67 20 73 79 73 74 65 6d  2c 20 72 61 46 53 0a 61  |g system, raFS.a|
00000b10  6c 73 6f 20 65 6e 73 75  72 65 73 20 74 68 61 74  |lso ensures that|
00000b20  20 74 68 65 20 64 69 72  65 63 74 6f 72 79 20 64  | the directory d|
00000b30  6f 65 73 6e 27 74 20 63  6f 6e 74 61 69 6e 20 61  |oesn't contain a|
00000b40  6e 79 20 66 69 6c 65 73  20 77 69 74 68 20 69 6e  |ny files with in|
00000b50  76 61 6c 69 64 20 6e 61  6d 65 73 2e 0a 49 66 20  |valid names..If |
00000b60  61 20 66 69 6c 65 20 69  73 20 66 6f 75 6e 64 20  |a file is found |
00000b70  77 68 6f 73 65 20 6e 61  6d 65 20 69 73 20 6e 6f  |whose name is no|
00000b80  74 20 6f 6e 65 20 6f 66  20 74 68 65 20 37 37 20  |t one of the 77 |
00000b90  6e 61 6d 65 73 20 3c 54  54 3e 41 30 3c 2f 54 54  |names <TT>A0</TT|
00000ba0  3e 20 74 6f 0a 3c 54 54  3e 5a 31 3c 2f 54 54 3e  |> to.<TT>Z1</TT>|
00000bb0  2c 20 74 68 65 20 73 61  76 65 20 6f 70 65 72 61  |, the save opera|
00000bc0  74 69 6f 6e 20 66 61 69  6c 73 20 77 69 74 68 20  |tion fails with |
00000bd0  3c 53 41 4d 50 3e 4e 61  6d 65 20 69 6e 73 69 64  |<SAMP>Name insid|
00000be0  65 20 74 68 65 20 64 69  72 65 63 74 6f 72 79 0a  |e the directory.|
00000bf0  63 6f 6e 74 61 69 6e 69  6e 67 20 61 20 72 61 46  |containing a raF|
00000c00  53 20 64 69 73 63 20 69  73 20 6e 6f 74 20 6f 66  |S disc is not of|
00000c10  20 74 68 65 20 66 6f 72  6d 20 27 41 30 2e 41 30  | the form 'A0.A0|
00000c20  2e 41 30 27 3c 2f 53 41  4d 50 3e 0a 0a 3c 50 3e  |.A0'</SAMP>..<P>|
00000c30  46 69 6e 61 6c 6c 79 2c  20 73 70 65 63 69 61 6c  |Finally, special|
00000c40  20 63 6f 64 65 20 64 65  61 6c 73 20 77 69 74 68  | code deals with|
00000c50  20 66 69 6c 65 73 20 6f  6e 20 72 61 46 53 20 77  | files on raFS w|
00000c60  68 69 63 68 20 72 65 66  65 72 20 74 6f 20 66 69  |hich refer to fi|
00000c70  6c 65 73 20 6f 6e 20 74  68 65 0a 68 6f 73 74 20  |les on the.host |
00000c80  66 69 6c 69 6e 67 20 73  79 73 74 65 6d 20 74 68  |filing system th|
00000c90  61 74 20 65 69 74 68 65  72 20 64 6f 6e 27 74 20  |at either don't |
00000ca0  65 78 69 73 74 20 6f 72  20 74 68 61 74 20 68 61  |exist or that ha|
00000cb0  76 65 20 61 20 64 69 66  66 65 72 65 6e 74 20 74  |ve a different t|
00000cc0  69 6d 65 2f 64 61 74 65  0a 73 74 61 6d 70 2e 20  |ime/date.stamp. |
00000cd0  49 66 20 61 20 66 69 6c  65 20 69 73 20 6d 69 73  |If a file is mis|
00000ce0  73 69 6e 67 2c 20 61 20  64 75 6d 6d 79 20 66 69  |sing, a dummy fi|
00000cf0  6c 65 20 28 6c 65 6e 67  74 68 20 7a 65 72 6f 2c  |le (length zero,|
00000d00  20 66 69 6c 65 20 74 79  70 65 20 7a 65 72 6f 2c  | file type zero,|
00000d10  20 64 61 74 65 0a 73 74  61 6d 70 20 30 31 2d 30  | date.stamp 01-0|
00000d20  31 2d 31 39 30 30 29 20  69 73 20 63 72 65 61 74  |1-1900) is creat|
00000d30  65 64 20 74 6f 20 70 72  65 76 65 6e 74 20 6f 74  |ed to prevent ot|
00000d40  68 65 72 20 66 69 6c 65  73 20 66 72 6f 6d 20 62  |her files from b|
00000d50  65 69 6e 67 20 61 73 73  69 67 6e 65 64 20 74 68  |eing assigned th|
00000d60  61 74 0a 49 44 2e 20 28  44 65 70 65 6e 64 69 6e  |at.ID. (Dependin|
00000d70  67 20 6f 6e 20 74 68 65  20 63 6f 6e 66 69 67 75  |g on the configu|
00000d80  72 65 64 20 54 69 6d 65  5a 6f 6e 65 20 6f 66 20  |red TimeZone of |
00000d90  79 6f 75 72 20 6d 61 63  68 69 6e 65 2c 20 74 68  |your machine, th|
00000da0  65 20 79 65 61 72 20 6d  61 79 20 61 6c 73 6f 0a  |e year may also.|
00000db0  62 65 20 64 69 73 70 6c  61 79 65 64 20 61 73 20  |be displayed as |
00000dc0  32 32 34 38 20 69 6e 73  74 65 61 64 20 6f 66 20  |2248 instead of |
00000dd0  31 39 30 30 2e 29 0a 0a  3c 50 3e 49 66 20 74 68  |1900.)..<P>If th|
00000de0  65 20 64 61 74 65 20 73  74 61 6d 70 2c 20 66 69  |e date stamp, fi|
00000df0  6c 65 20 74 79 70 65 20  6f 72 20 74 68 65 20 66  |le type or the f|
00000e00  69 6c 65 20 6c 65 6e 67  74 68 20 64 6f 65 73 20  |ile length does |
00000e10  6e 6f 74 20 6d 61 74 63  68 20 74 68 65 0a 64 69  |not match the.di|
00000e20  72 65 63 74 6f 72 79 20  65 6e 74 72 79 2c 20 61  |rectory entry, a|
00000e30  6c 6c 20 6f 70 65 6e 2c  20 6c 6f 61 64 2c 20 73  |ll open, load, s|
00000e40  61 76 65 2c 20 64 65 6c  65 74 65 20 61 6e 64 20  |ave, delete and |
00000e50  63 72 65 61 74 65 20 6f  70 65 72 61 74 69 6f 6e  |create operation|
00000e60  73 20 6f 6e 20 66 69 6c  65 73 0a 77 69 6c 6c 20  |s on files.will |
00000e70  6f 6e 6c 79 20 70 72 6f  64 75 63 65 20 61 6e 20  |only produce an |
00000e80  65 72 72 6f 72 20 6c 69  6b 65 20 3c 53 41 4d 50  |error like <SAMP|
00000e90  3e 27 41 44 46 53 3a 3a  34 2e 24 2e 41 30 2e 41  |>'ADFS::4.$.A0.A|
00000ea0  30 2e 41 30 27 20 64 6f  65 73 20 6e 6f 74 20 62  |0.A0' does not b|
00000eb0  65 6c 6f 6e 67 20 74 6f  0a 74 68 69 73 20 64 69  |elong to.this di|
00000ec0  72 65 63 74 6f 72 79 20  65 6e 74 72 79 20 2d 20  |rectory entry - |
00000ed0  76 65 72 69 66 79 20 74  68 65 20 72 61 46 53 20  |verify the raFS |
00000ee0  64 69 73 63 2e 3c 2f 53  41 4d 50 3e 20 49 6e 20  |disc.</SAMP> In |
00000ef0  74 68 69 73 20 73 74 61  74 65 2c 20 74 68 65 20  |this state, the |
00000f00  6f 6e 6c 79 0a 70 6f 73  73 69 62 6c 65 20 6f 70  |only.possible op|
00000f10  65 72 61 74 69 6f 6e 73  20 61 72 65 20 72 65 6e  |erations are ren|
00000f20  61 6d 69 6e 67 20 74 68  65 20 66 69 6c 65 2c 20  |aming the file, |
00000f30  73 74 61 6d 70 69 6e 67  20 69 74 20 28 6f 72 20  |stamping it (or |
00000f40  63 68 61 6e 67 69 6e 67  20 69 74 73 0a 61 63 63  |changing its.acc|
00000f50  65 73 73 20 64 65 74 61  69 6c 73 29 20 61 6e 64  |ess details) and|
00000f60  20 64 65 6c 65 74 69 6e  67 20 69 74 20 28 3c 45  | deleting it (<E|
00000f70  4d 3e 6f 6e 6c 79 3c 2f  45 4d 3e 20 69 66 20 69  |M>only</EM> if i|
00000f80  74 20 72 65 66 65 72 73  20 74 6f 20 61 20 64 75  |t refers to a du|
00000f90  6d 6d 79 20 66 69 6c 65  29 2e 0a 53 74 61 6d 70  |mmy file)..Stamp|
00000fa0  69 6e 67 20 74 68 65 20  66 69 6c 65 20 63 61 75  |ing the file cau|
00000fb0  73 65 73 20 74 68 65 20  64 61 74 61 20 74 6f 20  |ses the data to |
00000fc0  62 65 20 73 79 6e 63 68  72 6f 6e 69 7a 65 64 2c  |be synchronized,|
00000fd0  20 73 6f 20 74 68 61 74  20 61 6e 79 20 6f 70 65  | so that any ope|
00000fe0  72 61 74 69 6f 6e 0a 63  61 6e 20 62 65 20 61 70  |ration.can be ap|
00000ff0  70 6c 69 65 64 20 74 6f  20 69 74 20 61 67 61 69  |plied to it agai|
00001000  6e 2c 20 62 75 74 20 3c  45 4d 3e 6f 6e 6c 79 20  |n, but <EM>only |
00001010  64 6f 20 74 68 69 73 20  69 66 20 79 6f 75 20 61  |do this if you a|
00001020  72 65 20 76 65 72 79 20  73 75 72 65 20 61 62 6f  |re very sure abo|
00001030  75 74 0a 69 74 21 3c 2f  45 4d 3e 0a 0a 3c 50 3e  |ut.it!</EM>..<P>|
00001040  42 65 63 61 75 73 65 20  74 68 65 72 65 20 61 72  |Because there ar|
00001050  65 20 66 69 6c 69 6e 67  20 73 79 73 74 65 6d 73  |e filing systems|
00001060  20 74 68 61 74 20 63 61  6e 6e 6f 74 20 73 74 6f  | that cannot sto|
00001070  72 65 20 74 68 65 20 64  61 74 65 20 73 74 61 6d  |re the date stam|
00001080  70 20 69 6e 0a 63 65 6e  74 69 73 65 63 6f 6e 64  |p in.centisecond|
00001090  73 20 6c 69 6b 65 20 74  68 65 20 6e 61 74 69 76  |s like the nativ|
000010a0  65 20 52 69 73 63 4f 53  20 66 69 6c 69 6e 67 20  |e RiscOS filing |
000010b0  73 79 73 74 65 6d 73 20  64 6f 2c 20 74 68 65 20  |systems do, the |
000010c0  73 74 61 6d 70 20 77 69  6c 6c 20 73 74 69 6c 6c  |stamp will still|
000010d0  0a 62 65 20 63 6f 6e 73  69 64 65 72 65 64 20 76  |.be considered v|
000010e0  61 6c 69 64 20 69 66 20  69 74 20 64 6f 65 73 6e  |alid if it doesn|
000010f0  27 74 20 64 69 66 66 65  72 20 62 79 20 6d 6f 72  |'t differ by mor|
00001100  65 20 74 68 61 6e 20 32  34 20 68 6f 75 72 73 20  |e than 24 hours |
00001110  66 72 6f 6d 20 77 68 61  74 20 74 68 65 0a 72 61  |from what the.ra|
00001120  46 53 20 64 69 72 65 63  74 6f 72 79 20 65 6e 74  |FS directory ent|
00001130  72 79 20 63 6f 6e 74 61  69 6e 73 2e 20 53 6f 6d  |ry contains. Som|
00001140  65 20 66 69 6c 69 6e 67  20 73 79 73 74 65 6d 73  |e filing systems|
00001150  20 64 6f 6e 27 74 20 61  6c 6c 6f 77 20 66 69 6c  | don't allow fil|
00001160  65 20 73 74 61 6d 70 73  20 61 74 0a 61 6c 6c 2e  |e stamps at.all.|
00001170  20 43 6f 6e 73 65 71 75  65 6e 74 6c 79 2c 20 69  | Consequently, i|
00001180  74 20 69 73 20 70 6f 73  73 69 62 6c 65 20 74 6f  |t is possible to|
00001190  20 64 69 73 61 62 6c 65  20 74 68 65 20 63 68 65  | disable the che|
000011a0  63 6b 73 20 62 79 20 73  65 74 74 69 6e 67 20 74  |cks by setting t|
000011b0  68 65 20 73 79 73 74 65  6d 0a 76 61 72 69 61 62  |he system.variab|
000011c0  6c 65 20 72 61 46 53 24  4e 6f 43 68 65 63 6b 73  |le raFS$NoChecks|
000011d0  20 74 6f 20 61 20 63 6f  6d 6d 61 2d 73 65 70 65  | to a comma-sepe|
000011e0  72 61 74 65 64 20 6c 69  73 74 20 6f 66 20 66 69  |rated list of fi|
000011f0  6c 69 6e 67 20 73 79 73  74 65 6d 20 6e 61 6d 65  |ling system name|
00001200  73 0a 62 65 66 6f 72 65  20 6d 6f 75 6e 74 69 6e  |s.before mountin|
00001210  67 20 64 69 73 63 73 20  6f 6e 20 74 68 6f 73 65  |g discs on those|
00001220  20 66 69 6c 69 6e 67 20  73 79 73 74 65 6d 73 2e  | filing systems.|
00001230  20 54 68 65 20 6e 61 6d  65 73 20 61 72 65 20 6d  | The names are m|
00001240  61 74 63 68 65 64 0a 63  61 73 65 2d 73 65 6e 73  |atched.case-sens|
00001250  69 74 69 76 65 6c 79 2e  0a 0a 3c 50 20 41 4c 49  |itively...<P ALI|
00001260  47 4e 3d 22 72 69 67 68  74 22 3e 3c 49 3e 3c 41  |GN="right"><I><A|
00001270  20 48 52 45 46 3d 22 23  74 6f 70 22 3e 42 61 63  | HREF="#top">Bac|
00001280  6b 20 74 6f 20 74 68 65  20 74 6f 70 20 6f 66 20  |k to the top of |
00001290  74 68 65 20 70 61 67 65  3c 2f 41 3e 3c 2f 49 3e  |the page</A></I>|
000012a0  3c 50 3e 3c 48 52 0a 57  49 44 54 48 3d 22 34 31  |<P><HR.WIDTH="41|
000012b0  25 22 3e 0a 0a 0a 0a 3c  50 3e 3c 48 32 3e 3c 41  |%">....<P><H2><A|
000012c0  20 4e 41 4d 45 3d 22 62  65 68 61 76 65 22 3e 42  | NAME="behave">B|
000012d0  65 68 61 76 69 6f 75 72  20 69 6e 20 73 70 65 63  |ehaviour in spec|
000012e0  69 61 6c 20 73 69 74 75  61 74 69 6f 6e 73 3c 2f  |ial situations</|
000012f0  41 3e 3c 2f 48 32 3e 0a  0a 54 68 65 72 65 20 61  |A></H2>..There a|
00001300  72 65 20 61 20 66 65 77  20 70 6f 69 6e 74 73 20  |re a few points |
00001310  77 6f 72 74 68 20 6e 6f  74 69 6e 67 20 61 62 6f  |worth noting abo|
00001320  75 74 20 68 6f 77 20 72  61 46 53 20 62 65 68 61  |ut how raFS beha|
00001330  76 65 73 20 69 6e 20 63  65 72 74 61 69 6e 0a 73  |ves in certain.s|
00001340  69 74 75 61 74 69 6f 6e  73 2e 20 0a 0a 3c 55 4c  |ituations. ..<UL|
00001350  3e 0a 0a 3c 4c 49 3e 41  73 20 61 20 72 65 73 75  |>..<LI>As a resu|
00001360  6c 74 20 6f 66 20 72 61  46 53 27 20 61 62 69 6c  |lt of raFS' abil|
00001370  69 74 79 20 74 6f 20 68  61 76 65 20 61 20 66 69  |ity to have a fi|
00001380  6c 65 20 6f 70 65 6e 65  64 20 6d 6f 72 65 20 74  |le opened more t|
00001390  68 61 6e 20 6f 6e 63 65  2c 20 69 74 20 69 73 0a  |han once, it is.|
000013a0  61 6c 73 6f 20 70 6f 73  73 69 62 6c 65 20 74 6f  |also possible to|
000013b0  20 73 61 76 65 20 6f 6e  20 74 6f 70 20 6f 66 20  | save on top of |
000013c0  61 6e 20 6f 70 65 6e 65  64 20 66 69 6c 65 2e 20  |an opened file. |
000013d0  49 6e 20 74 68 69 73 20  63 61 73 65 2c 20 74 68  |In this case, th|
000013e0  65 20 66 69 6c 65 20 65  78 74 65 6e 74 0a 77 69  |e file extent.wi|
000013f0  6c 6c 20 62 65 20 73 65  74 20 74 6f 20 74 68 65  |ll be set to the|
00001400  20 73 69 7a 65 20 6f 66  20 74 68 65 20 66 69 6c  | size of the fil|
00001410  65 20 74 68 61 74 20 69  73 20 73 61 76 65 64 2e  |e that is saved.|
00001420  0a 0a 3c 4c 49 3e 4f 6e  63 65 20 61 20 66 69 6c  |..<LI>Once a fil|
00001430  65 20 69 73 20 6f 70 65  6e 65 64 20 6d 75 6c 74  |e is opened mult|
00001440  69 70 6c 65 20 74 69 6d  65 73 2c 20 69 74 20 69  |iple times, it i|
00001450  73 20 70 6f 73 73 69 62  6c 65 20 74 68 61 74 20  |s possible that |
00001460  74 68 65 20 66 69 6c 65  20 65 78 74 65 6e 74 0a  |the file extent.|
00001470  62 65 63 6f 6d 65 73 20  73 6d 61 6c 6c 65 72 20  |becomes smaller |
00001480  74 68 61 6e 20 74 68 65  20 73 65 71 75 65 6e 74  |than the sequent|
00001490  69 61 6c 20 70 6f 69 6e  74 65 72 2e 20 54 68 69  |ial pointer. Thi|
000014a0  73 20 68 61 70 70 65 6e  73 20 6f 6e 6c 79 20 66  |s happens only f|
000014b0  6f 72 20 74 68 6f 73 65  0a 73 65 71 75 65 6e 74  |or those.sequent|
000014c0  69 61 6c 20 70 6f 69 6e  74 65 72 73 20 74 68 61  |ial pointers tha|
000014d0  74 20 64 6f 6e 27 74 20  62 65 6c 6f 6e 67 20 74  |t don't belong t|
000014e0  6f 20 74 68 65 20 66 69  6c 65 20 68 61 6e 64 6c  |o the file handl|
000014f0  65 20 75 73 65 64 20 66  6f 72 20 63 68 61 6e 67  |e used for chang|
00001500  69 6e 67 0a 74 68 65 20  65 78 74 65 6e 74 2c 20  |ing.the extent, |
00001510  69 2e 26 6e 62 73 70 3b  65 2e 20 69 66 20 66 69  |i.&nbsp;e. if fi|
00001520  6c 65 20 68 61 6e 64 6c  65 73 20 41 20 61 6e 64  |le handles A and|
00001530  20 42 20 77 65 72 65 20  72 65 74 75 72 6e 65 64  | B were returned|
00001540  20 77 68 65 6e 20 61 20  66 69 6c 65 20 77 61 73  | when a file was|
00001550  0a 6f 70 65 6e 65 64 20  74 77 69 63 65 2c 20 61  |.opened twice, a|
00001560  6e 64 20 66 69 6c 65 20  68 61 6e 64 6c 65 20 41  |nd file handle A|
00001570  20 69 73 20 75 73 65 64  20 74 6f 20 73 65 74 20  | is used to set |
00001580  74 68 65 20 65 78 74 65  6e 74 2c 20 74 68 65 6e  |the extent, then|
00001590  20 74 68 65 0a 73 65 71  75 65 6e 74 69 61 6c 20  | the.sequential |
000015a0  70 6f 69 6e 74 65 72 20  6f 66 20 41 20 77 69 6c  |pointer of A wil|
000015b0  6c 20 62 65 20 73 65 74  20 74 6f 20 74 68 65 20  |l be set to the |
000015c0  65 78 74 65 6e 74 20 69  66 20 69 74 20 69 73 20  |extent if it is |
000015d0  67 72 65 61 74 65 72 20  77 68 65 72 65 61 73 0a  |greater whereas.|
000015e0  74 68 65 20 73 65 71 75  65 6e 74 69 61 6c 20 70  |the sequential p|
000015f0  6f 69 6e 74 65 72 20 6f  66 20 42 20 77 6f 6e 27  |ointer of B won'|
00001600  74 20 62 65 2e 20 54 68  69 73 20 69 73 20 6e 6f  |t be. This is no|
00001610  74 20 61 20 62 75 67 2c  20 74 68 65 20 62 65 68  |t a bug, the beh|
00001620  61 76 69 6f 75 72 20 69  73 0a 69 6e 74 65 6e 64  |aviour is.intend|
00001630  65 64 21 0a 0a 3c 4c 49  3e 41 74 20 70 72 65 73  |ed!..<LI>At pres|
00001640  65 6e 74 2c 20 79 6f 75  20 63 61 6e 6e 6f 74 20  |ent, you cannot |
00001650  72 65 6e 61 6d 65 20 6f  72 20 64 65 6c 65 74 65  |rename or delete|
00001660  20 6f 70 65 6e 20 66 69  6c 65 73 2c 20 62 75 74  | open files, but|
00001670  20 49 27 6d 20 74 68 69  6e 6b 69 6e 67 0a 61 62  | I'm thinking.ab|
00001680  6f 75 74 20 65 6e 61 62  6c 69 6e 67 20 79 6f 75  |out enabling you|
00001690  20 74 6f 20 64 6f 20 74  68 69 73 2e 20 49 73 20  | to do this. Is |
000016a0  74 68 65 72 65 20 61 6e  79 20 72 65 61 73 6f 6e  |there any reason|
000016b0  20 77 68 79 20 69 74 20  73 68 6f 75 6c 64 6e 27  | why it shouldn'|
000016c0  74 20 62 65 0a 70 6f 73  73 69 62 6c 65 3f 0a 0a  |t be.possible?..|
000016d0  3c 4c 49 3e 72 61 46 53  20 77 69 6c 6c 20 73 6f  |<LI>raFS will so|
000016e0  6d 65 74 69 6d 65 73 20  61 75 74 6f 6d 61 74 69  |metimes automati|
000016f0  63 61 6c 6c 79 20 63 6c  6f 73 65 20 66 69 6c 65  |cally close file|
00001700  73 20 6f 6e 20 69 74 73  20 64 69 73 63 73 2e 20  |s on its discs. |
00001710  54 68 69 73 20 68 61 70  70 65 6e 73 0a 77 68 65  |This happens.whe|
00001720  6e 20 79 6f 75 20 75 73  65 20 3c 4b 42 44 3e 43  |n you use <KBD>C|
00001730  6c 6f 73 65 3c 2f 4b 42  44 3e 20 6f 6e 20 6f 6e  |lose</KBD> on on|
00001740  65 20 6f 66 20 72 61 46  53 27 20 68 6f 73 74 20  |e of raFS' host |
00001750  66 69 6c 69 6e 67 20 73  79 73 74 65 6d 73 2e 20  |filing systems. |
00001760  46 6f 72 0a 65 78 61 6d  70 6c 65 2c 20 69 66 20  |For.example, if |
00001770  79 6f 75 20 69 73 73 75  65 20 3c 4b 42 44 3e 41  |you issue <KBD>A|
00001780  44 46 53 3a 43 6c 6f 73  65 3c 2f 4b 42 44 3e 20  |DFS:Close</KBD> |
00001790  61 6e 64 20 79 6f 75 20  68 61 76 65 20 6f 6e 65  |and you have one|
000017a0  20 72 61 46 53 20 64 69  73 63 20 6f 6e 0a 41 44  | raFS disc on.AD|
000017b0  46 53 20 61 6e 64 20 6f  6e 65 20 6f 6e 20 53 43  |FS and one on SC|
000017c0  53 49 46 53 2c 20 61 6e  79 20 6f 70 65 6e 20 66  |SIFS, any open f|
000017d0  69 6c 65 73 20 6f 6e 20  74 68 65 20 72 61 46 53  |iles on the raFS|
000017e0  20 64 69 73 63 20 73 74  6f 72 65 64 20 6f 6e 20  | disc stored on |
000017f0  41 44 46 53 20 77 69 6c  6c 0a 62 65 20 63 6c 6f  |ADFS will.be clo|
00001800  73 65 64 2c 20 62 75 74  20 6f 70 65 6e 20 66 69  |sed, but open fi|
00001810  6c 65 73 20 6f 6e 20 74  68 65 20 6f 74 68 65 72  |les on the other|
00001820  20 64 69 73 63 20 72 65  6d 61 69 6e 20 75 6e 61  | disc remain una|
00001830  66 66 65 63 74 65 64 2e  0a 0a 3c 50 3e 72 61 46  |ffected...<P>raF|
00001840  53 20 63 6c 61 69 6d 73  20 46 69 6e 64 56 20 28  |S claims FindV (|
00001850  63 61 6c 6c 65 64 20 62  79 20 4f 53 5f 46 69 6e  |called by OS_Fin|
00001860  64 29 20 61 6e 64 20 46  53 43 56 20 28 63 61 6c  |d) and FSCV (cal|
00001870  6c 65 64 20 62 79 20 4f  53 5f 46 53 43 6f 6e 74  |led by OS_FSCont|
00001880  72 6f 6c 29 0a 61 6e 64  20 77 69 6c 6c 20 63 6c  |rol).and will cl|
00001890  6f 73 65 20 69 74 73 20  6f 77 6e 20 66 69 6c 65  |ose its own file|
000018a0  73 20 62 65 66 6f 72 65  20 46 69 6c 65 53 77 69  |s before FileSwi|
000018b0  74 63 68 20 63 6c 6f 73  65 73 20 74 68 65 6d 20  |tch closes them |
000018c0  6f 6e 20 74 68 65 20 68  6f 73 74 20 66 69 6c 69  |on the host fili|
000018d0  6e 67 0a 73 79 73 74 65  6d 2e 20 54 68 69 73 20  |ng.system. This |
000018e0  69 73 20 64 6f 6e 65 20  65 69 74 68 65 72 20 6f  |is done either o|
000018f0  6e 6c 79 20 66 6f 72 20  6f 6e 65 20 66 69 6c 69  |nly for one fili|
00001900  6e 67 20 73 79 73 74 65  6d 20 69 6e 20 74 68 65  |ng system in the|
00001910  20 63 61 73 65 20 6f 66  0a 4f 53 5f 46 69 6e 64  | case of.OS_Find|
00001920  26 6e 62 73 70 3b 30 2c  30 20 28 63 6c 6f 73 65  |&nbsp;0,0 (close|
00001930  20 61 6c 6c 20 66 69 6c  65 73 20 6f 6e 20 63 75  | all files on cu|
00001940  72 72 65 6e 74 20 66 69  6c 69 6e 67 20 73 79 73  |rrent filing sys|
00001950  74 65 6d 29 2c 20 6f 72  20 66 6f 72 20 61 6c 6c  |tem), or for all|
00001960  0a 66 69 6c 69 6e 67 20  73 79 73 74 65 6d 73 20  |.filing systems |
00001970  69 6e 20 74 68 65 20 63  61 73 65 20 6f 66 20 4f  |in the case of O|
00001980  53 5f 46 53 43 6f 6e 74  72 6f 6c 26 6e 62 73 70  |S_FSControl&nbsp|
00001990  3b 32 32 20 28 63 6c 6f  73 65 20 61 6c 6c 20 6f  |;22 (close all o|
000019a0  70 65 6e 20 66 69 6c 65  73 29 20 61 6e 64 0a 4f  |pen files) and.O|
000019b0  53 5f 46 53 43 6f 6e 74  72 6f 6c 26 6e 62 73 70  |S_FSControl&nbsp|
000019c0  3b 32 33 20 28 73 68 75  74 64 6f 77 6e 20 61 6c  |;23 (shutdown al|
000019d0  6c 20 66 69 6c 69 6e 67  20 73 79 73 74 65 6d 73  |l filing systems|
000019e0  29 2e 0a 0a 3c 4c 49 3e  54 72 79 20 72 75 6e 6e  |)...<LI>Try runn|
000019f0  69 6e 67 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |ing the followin|
00001a00  67 20 70 72 6f 67 72 61  6d 20 6f 6e 20 61 20 66  |g program on a f|
00001a10  69 6c 65 20 6f 6e 20 61  20 46 69 6c 65 43 6f 72  |ile on a FileCor|
00001a20  65 20 64 69 73 63 20 77  68 69 63 68 20 69 73 0a  |e disc which is.|
00001a30  6c 6f 63 6b 65 64 20 61  6e 64 20 68 61 73 20 6e  |locked and has n|
00001a40  6f 20 77 72 69 74 65 20  61 63 63 65 73 73 2c 20  |o write access, |
00001a50  6f 6e 6c 79 20 72 65 61  64 20 61 63 63 65 73 73  |only read access|
00001a60  2e 20 49 74 20 75 73 65  73 20 4f 53 5f 41 72 67  |. It uses OS_Arg|
00001a70  73 26 6e 62 73 70 3b 36  20 74 6f 0a 65 6e 73 75  |s&nbsp;6 to.ensu|
00001a80  72 65 20 61 6e 20 6f 70  65 6e 20 66 69 6c 65 27  |re an open file'|
00001a90  73 20 73 69 7a 65 3a 0a  0a 3c 50 3e 3c 43 4f 44  |s size:..<P><COD|
00001aa0  45 3e 61 25 3d 4f 50 45  4e 49 4e 22 41 44 46 53  |E>a%=OPENIN"ADFS|
00001ab0  3a 3a 34 2e 24 2e 3c 2f  43 4f 44 45 3e 3c 49 3e  |::4.$.</CODE><I>|
00001ac0  46 69 6c 65 6e 61 6d 65  3c 2f 49 3e 3c 43 4f 44  |Filename</I><COD|
00001ad0  45 3e 22 0a 3c 42 52 3e  53 59 53 22 4f 53 5f 41  |E>".<BR>SYS"OS_A|
00001ae0  72 67 73 22 2c 36 2c 61  25 2c 35 31 32 26 6c 74  |rgs",6,a%,512&lt|
00001af0  3b 26 6c 74 3b 31 30 3c  2f 43 4f 44 45 3e 0a 0a  |;&lt;10</CODE>..|
00001b00  3c 50 3e 57 68 65 72 65  61 73 20 46 69 6c 65 43  |<P>Whereas FileC|
00001b10  6f 72 65 20 65 6e 73 75  72 65 73 20 74 68 65 20  |ore ensures the |
00001b20  73 70 65 63 69 66 69 65  64 20 73 69 7a 65 20 72  |specified size r|
00001b30  65 67 61 72 64 6c 65 73  73 20 6f 66 20 77 68 65  |egardless of whe|
00001b40  74 68 65 72 20 6f 72 20  6e 6f 74 0a 77 72 69 74  |ther or not.writ|
00001b50  65 20 61 63 63 65 73 73  20 77 61 73 20 67 72 61  |e access was gra|
00001b60  6e 74 65 64 2c 20 72 61  46 53 20 67 65 74 73 20  |nted, raFS gets |
00001b70  69 74 20 72 69 67 68 74  20 61 6e 64 20 69 67 6e  |it right and ign|
00001b80  6f 72 65 73 20 46 53 45  6e 74 72 79 5f 41 72 67  |ores FSEntry_Arg|
00001b90  73 26 6e 62 73 70 3b 36  0a 69 66 20 74 68 65 20  |s&nbsp;6.if the |
00001ba0  66 69 6c 65 20 69 73 20  72 65 61 64 2d 6f 6e 6c  |file is read-onl|
00001bb0  79 2e 20 28 42 79 20 74  68 65 20 77 61 79 3a 20  |y. (By the way: |
00001bc0  43 6f 75 6c 64 20 74 68  69 73 20 62 65 20 75 73  |Could this be us|
00001bd0  65 64 20 74 6f 20 63 6f  6d 70 72 6f 6d 69 73 65  |ed to compromise|
00001be0  0a 73 65 63 75 72 69 74  79 20 77 68 65 6e 20 61  |.security when a|
00001bf0  20 46 69 6c 65 43 6f 72  65 2d 62 61 73 65 64 20  | FileCore-based |
00001c00  66 69 6c 69 6e 67 20 73  79 73 74 65 6d 20 69 73  |filing system is|
00001c10  20 73 68 61 72 65 64 20  6f 76 65 72 20 61 20 6e  | shared over a n|
00001c20  65 74 77 6f 72 6b 3f 20  4a 75 73 74 20 61 0a 74  |etwork? Just a.t|
00001c30  68 6f 75 67 68 74 2e 2e  2e 29 0a 0a 3c 4c 49 3e  |hought...)..<LI>|
00001c40  72 61 46 53 20 73 75 70  70 6f 72 74 73 20 4f 53  |raFS supports OS|
00001c50  5f 46 53 43 6f 6e 74 72  6f 6c 26 6e 62 73 70 3b  |_FSControl&nbsp;|
00001c60  35 35 2c 20 77 68 69 63  68 20 77 61 73 20 69 6e  |55, which was in|
00001c70  74 72 6f 64 75 63 65 64  20 69 6e 0a 52 69 73 63  |troduced in.Risc|
00001c80  4f 53 26 6e 62 73 70 3b  33 2e 36 20 74 6f 20 61  |OS&nbsp;3.6 to a|
00001c90  6c 6c 6f 77 20 72 65 61  64 69 6e 67 20 74 68 65  |llow reading the|
00001ca0  20 66 72 65 65 20 73 70  61 63 65 20 6f 6e 20 64  | free space on d|
00001cb0  69 73 63 73 20 62 69 67  67 65 72 20 74 68 61 6e  |iscs bigger than|
00001cc0  20 34 47 42 2e 0a 48 6f  77 65 76 65 72 2c 20 74  | 4GB..However, t|
00001cd0  68 65 20 63 6f 64 65 20  69 73 20 75 6e 74 65 73  |he code is untes|
00001ce0  74 65 64 2e 20 28 42 75  79 20 6d 65 20 61 20 34  |ted. (Buy me a 4|
00001cf0  47 42 20 64 72 69 76 65  20 61 6e 64 20 49 20 3c  |GB drive and I <|
00001d00  45 4d 3e 77 69 6c 6c 3c  2f 45 4d 3e 20 74 65 73  |EM>will</EM> tes|
00001d10  74 0a 69 74 2e 2e 2e 29  0a 0a 3c 2f 55 4c 3e 0a  |t.it...)..</UL>.|
00001d20  0a 3c 50 20 41 4c 49 47  4e 3d 22 72 69 67 68 74  |.<P ALIGN="right|
00001d30  22 3e 3c 49 3e 3c 41 20  48 52 45 46 3d 22 23 74  |"><I><A HREF="#t|
00001d40  6f 70 22 3e 42 61 63 6b  20 74 6f 20 74 68 65 20  |op">Back to the |
00001d50  74 6f 70 20 6f 66 20 74  68 65 20 70 61 67 65 3c  |top of the page<|
00001d60  2f 41 3e 3c 2f 49 3e 3c  50 3e 3c 48 52 0a 57 49  |/A></I><P><HR.WI|
00001d70  44 54 48 3d 22 34 31 25  22 3e 0a 0a 0a 0a 3c 50  |DTH="41%">....<P|
00001d80  3e 3c 48 32 3e 3c 41 20  4e 41 4d 45 3d 22 6c 69  |><H2><A NAME="li|
00001d90  6d 69 74 73 22 3e 4c 69  6d 69 74 73 20 6f 66 20  |mits">Limits of |
00001da0  72 61 46 53 3c 2f 41 3e  3c 2f 48 32 3e 0a 0a 54  |raFS</A></H2>..T|
00001db0  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 67 69 76  |he following giv|
00001dc0  65 73 20 73 6f 6d 65 20  69 6e 66 6f 72 6d 61 74  |es some informat|
00001dd0  69 6f 6e 20 61 62 6f 75  74 20 74 68 65 20 6c 69  |ion about the li|
00001de0  6d 69 74 73 20 69 6d 70  6f 73 65 64 20 62 79 20  |mits imposed by |
00001df0  72 61 46 53 20 6f 6e 20  69 74 73 0a 64 69 73 63  |raFS on its.disc|
00001e00  73 2e 20 49 6e 20 70 72  61 63 74 69 63 65 2e 20  |s. In practice. |
00001e10  79 6f 75 20 61 72 65 20  76 65 72 79 20 75 6e 6c  |you are very unl|
00001e20  69 6b 65 6c 79 20 74 6f  20 72 65 61 63 68 20 61  |ikely to reach a|
00001e30  6e 79 20 6f 66 20 74 68  65 6d 2c 20 74 68 6f 75  |ny of them, thou|
00001e40  67 68 2e 0a 0a 3c 55 4c  20 43 4f 4d 50 41 43 54  |gh...<UL COMPACT|
00001e50  3e 0a 0a 3c 4c 49 3e 54  68 65 20 6d 61 78 69 6d  |>..<LI>The maxim|
00001e60  75 6d 20 6e 75 6d 62 65  72 20 6f 66 20 64 69 73  |um number of dis|
00001e70  63 73 20 74 68 61 74 20  63 61 6e 20 62 65 20 6d  |cs that can be m|
00001e80  6f 75 6e 74 65 64 20 61  74 20 74 68 65 20 73 61  |ounted at the sa|
00001e90  6d 65 20 74 69 6d 65 20  69 73 20 35 30 2e 0a 28  |me time is 50..(|
00001ea0  54 68 69 73 20 63 61 6e  20 65 61 73 69 6c 79 20  |This can easily |
00001eb0  62 65 20 61 6c 74 65 72  65 64 20 74 6f 20 75 70  |be altered to up|
00001ec0  20 74 6f 20 32 35 35 20  69 6e 20 74 68 65 20 73  | to 255 in the s|
00001ed0  6f 75 72 63 65 20 63 6f  64 65 2e 29 0a 0a 3c 4c  |ource code.)..<L|
00001ee0  49 3e 4f 6e 65 20 64 69  73 63 20 6d 61 79 20 63  |I>One disc may c|
00001ef0  6f 6e 74 61 69 6e 20 61  74 20 6d 6f 73 74 20 37  |ontain at most 7|
00001f00  36 26 6d 69 64 64 6f 74  3b 37 37 26 6d 69 64 64  |6&middot;77&midd|
00001f10  6f 74 3b 37 37 20 3d 20  34 35 30 36 30 34 20 6f  |ot;77 = 450604 o|
00001f20  62 6a 65 63 74 73 20 28  61 6e 0a 6f 62 6a 65 63  |bjects (an.objec|
00001f30  74 20 69 73 20 61 20 64  69 72 65 63 74 6f 72 79  |t is a directory|
00001f40  20 6f 72 20 66 69 6c 65  29 2e 20 4e 6f 74 65 20  | or file). Note |
00001f50  74 68 61 74 20 46 69 6c  65 43 6f 72 65 2d 62 61  |that FileCore-ba|
00001f60  73 65 64 20 66 69 6c 69  6e 67 20 73 79 73 74 65  |sed filing syste|
00001f70  6d 73 0a 63 61 6e 6e 6f  74 20 73 74 6f 72 65 20  |ms.cannot store |
00001f80  6d 6f 72 65 20 74 68 61  6e 20 33 32 37 36 36 20  |more than 32766 |
00001f90  64 69 73 63 20 6f 62 6a  65 63 74 73 20 6f 6e 20  |disc objects on |
00001fa0  61 20 64 69 73 63 2e 0a  0a 3c 4c 49 3e 43 6f 6e  |a disc...<LI>Con|
00001fb0  73 65 71 75 65 6e 74 6c  79 2c 20 79 6f 75 20 63  |sequently, you c|
00001fc0  61 6e 20 74 68 65 6f 72  65 74 69 63 61 6c 6c 79  |an theoretically|
00001fd0  20 68 61 76 65 20 75 70  20 74 6f 20 34 35 30 36  | have up to 4506|
00001fe0  30 33 20 65 6e 74 72 69  65 73 20 69 6e 20 61 0a  |03 entries in a.|
00001ff0  64 69 72 65 63 74 6f 72  79 2e 2e 2e 0a 0a 3c 4c  |directory.....<L|
00002000  49 3e 54 68 65 20 6c 69  6d 69 74 20 66 6f 72 20  |I>The limit for |
00002010  74 68 65 20 6c 65 6e 67  74 68 20 6f 66 20 66 69  |the length of fi|
00002020  6c 65 6e 61 6d 65 73 20  69 73 20 61 62 6f 75 74  |lenames is about|
00002030  20 35 30 30 20 63 68 61  72 61 63 74 65 72 73 2c  | 500 characters,|
00002040  20 74 68 6f 75 67 68 0a  46 69 6c 65 53 77 69 74  | though.FileSwit|
00002050  63 68 20 69 6d 70 6f 73  65 73 20 61 20 6c 69 6d  |ch imposes a lim|
00002060  69 74 20 6f 66 20 6e 65  61 72 6c 79 20 32 35 36  |it of nearly 256|
00002070  20 63 68 61 72 61 63 74  65 72 73 20 61 6e 64 20  | characters and |
00002080  74 68 65 20 46 69 6c 65  72 20 77 69 6c 6c 20 6f  |the Filer will o|
00002090  6e 6c 79 0a 68 61 6e 64  6c 65 20 70 72 6f 70 65  |nly.handle prope|
000020a0  72 6c 79 20 75 70 20 74  6f 20 36 33 20 63 68 61  |rly up to 63 cha|
000020b0  72 61 63 74 65 72 73 2e  0a 0a 3c 4c 49 3e 44 69  |racters...<LI>Di|
000020c0  73 63 20 6e 61 6d 65 73  20 63 61 6e 20 62 65 20  |sc names can be |
000020d0  75 70 20 74 6f 20 36 33  20 63 68 61 72 61 63 74  |up to 63 charact|
000020e0  65 72 73 20 6c 6f 6e 67  2e 20 46 6f 72 20 6c 6f  |ers long. For lo|
000020f0  6e 67 65 72 20 6e 61 6d  65 73 20 6e 6f 20 65 72  |nger names no er|
00002100  72 6f 72 20 69 73 0a 67  69 76 65 6e 2c 20 69 6e  |ror is.given, in|
00002110  73 74 65 61 64 20 74 68  65 20 6e 61 6d 65 20 69  |stead the name i|
00002120  73 20 74 72 75 6e 63 61  74 65 64 2e 20 28 48 6f  |s truncated. (Ho|
00002130  77 65 76 65 72 2c 20 61  74 20 70 72 65 73 65 6e  |wever, at presen|
00002140  74 20 52 69 73 63 4f 53  20 69 6e 73 69 73 74 73  |t RiscOS insists|
00002150  20 6f 6e 0a 61 20 64 69  73 63 20 6e 61 6d 65 20  | on.a disc name |
00002160  6c 65 6e 67 74 68 20 6f  66 20 32 20 74 6f 20 31  |length of 2 to 1|
00002170  30 20 63 68 61 72 61 63  74 65 72 73 20 77 69 74  |0 characters wit|
00002180  68 20 4f 53 5f 46 53 43  6f 6e 74 72 6f 6c 26 6e  |h OS_FSControl&n|
00002190  62 73 70 3b 35 30 20 2d  20 79 6f 75 20 6d 75 73  |bsp;50 - you mus|
000021a0  74 0a 75 73 65 20 3c 4b  42 44 3e 4e 61 6d 65 44  |t.use <KBD>NameD|
000021b0  69 73 63 3c 2f 4b 42 44  3e 20 66 6f 72 20 6c 6f  |isc</KBD> for lo|
000021c0  6e 67 65 72 20 6e 61 6d  65 73 2e 29 0a 0a 3c 4c  |nger names.)..<L|
000021d0  49 3e 55 70 20 74 6f 20  36 35 35 33 35 20 64 69  |I>Up to 65535 di|
000021e0  72 65 63 74 6f 72 69 65  73 20 6d 61 79 20 62 65  |rectories may be|
000021f0  20 63 61 63 68 65 64 20  61 74 20 74 68 65 20 73  | cached at the s|
00002200  61 6d 65 20 74 69 6d 65  2c 20 6f 74 68 65 72 77  |ame time, otherw|
00002210  69 73 65 20 74 68 69 6e  67 73 0a 73 74 61 72 74  |ise things.start|
00002220  20 67 6f 69 6e 67 20 77  72 6f 6e 67 2e 0a 0a 3c  | going wrong...<|
00002230  4c 49 3e 72 61 46 53 20  69 73 20 6e 6f 74 20 72  |LI>raFS is not r|
00002240  65 2d 65 6e 74 72 61 6e  74 2e 20 54 68 69 73 20  |e-entrant. This |
00002250  6d 65 61 6e 73 20 74 68  61 74 20 79 6f 75 20 63  |means that you c|
00002260  61 6e 6e 6f 74 20 75 73  65 20 72 61 46 53 20 61  |annot use raFS a|
00002270  73 20 74 68 65 20 68 6f  73 74 0a 66 69 6c 69 6e  |s the host.filin|
00002280  67 20 73 79 73 74 65 6d  20 66 6f 72 20 61 6e 6f  |g system for ano|
00002290  74 68 65 72 20 72 61 46  53 20 64 69 73 63 20 2d  |ther raFS disc -|
000022a0  20 74 68 69 73 20 77 6f  75 6c 64 6e 27 74 20 73  | this wouldn't s|
000022b0  65 72 76 65 20 61 6e 79  20 70 75 72 70 6f 73 65  |erve any purpose|
000022c0  2c 0a 61 6e 79 77 61 79  2e 20 42 65 63 61 75 73  |,.anyway. Becaus|
000022d0  65 20 74 68 69 73 20 69  73 20 6e 6f 20 69 6d 61  |e this is no ima|
000022e0  67 65 20 66 69 6c 69 6e  67 20 73 79 73 74 65 6d  |ge filing system|
000022f0  2c 20 69 74 20 64 6f 65  73 6e 27 74 20 6e 65 65  |, it doesn't nee|
00002300  64 20 74 6f 20 62 65 0a  72 65 2d 65 6e 74 72 61  |d to be.re-entra|
00002310  6e 74 2e 0a 0a 3c 2f 55  4c 3e 0a 0a 3c 50 20 41  |nt...</UL>..<P A|
00002320  4c 49 47 4e 3d 22 72 69  67 68 74 22 3e 3c 49 3e  |LIGN="right"><I>|
00002330  3c 41 20 48 52 45 46 3d  22 23 74 6f 70 22 3e 42  |<A HREF="#top">B|
00002340  61 63 6b 20 74 6f 20 74  68 65 20 74 6f 70 20 6f  |ack to the top o|
00002350  66 20 74 68 65 20 70 61  67 65 3c 2f 41 3e 3c 2f  |f the page</A></|
00002360  49 3e 3c 50 3e 3c 48 52  0a 57 49 44 54 48 3d 22  |I><P><HR.WIDTH="|
00002370  34 31 25 22 3e 0a 0a 0a  0a 3c 50 3e 3c 48 32 3e  |41%">....<P><H2>|
00002380  3c 41 20 4e 41 4d 45 3d  22 67 6f 64 64 61 6d 6e  |<A NAME="goddamn|
00002390  62 75 67 73 22 3e 4b 6e  6f 77 6e 20 70 72 6f 62  |bugs">Known prob|
000023a0  6c 65 6d 73 3c 2f 41 3e  3c 2f 48 32 3e 0a 0a 3c  |lems</A></H2>..<|
000023b0  55 4c 3e 0a 0a 3c 4c 49  3e 4f 6e 65 20 75 73 65  |UL>..<LI>One use|
000023c0  72 20 68 61 73 20 65 78  70 65 72 69 65 6e 63 65  |r has experience|
000023d0  64 20 61 20 70 72 6f 62  6c 65 6d 20 77 69 74 68  |d a problem with|
000023e0  20 72 61 46 53 20 77 68  69 63 68 20 3c 45 4d 3e  | raFS which <EM>|
000023f0  6d 61 79 3c 2f 45 4d 3e  20 68 61 76 65 20 62 65  |may</EM> have be|
00002400  65 6e 0a 63 61 75 73 65  64 20 62 79 20 61 20 62  |en.caused by a b|
00002410  75 67 2c 20 62 75 74 20  74 68 65 6e 20 69 74 20  |ug, but then it |
00002420  6d 61 79 20 61 6c 73 6f  20 68 61 76 65 20 62 65  |may also have be|
00002430  65 6e 20 61 6e 6f 74 68  65 72 20 70 72 6f 67 72  |en another progr|
00002440  61 6d 27 73 20 66 61 75  6c 74 2e 20 49 74 0a 63  |am's fault. It.c|
00002450  61 75 73 65 64 20 61 20  63 68 61 72 61 63 74 65  |aused a characte|
00002460  72 20 74 6f 20 62 65 20  69 6e 73 65 72 74 65 64  |r to be inserted|
00002470  20 69 6e 74 6f 20 74 68  65 20 73 74 72 69 6e 67  | into the string|
00002480  20 72 61 46 53 20 75 73  65 64 20 66 6f 72 20 61  | raFS used for a|
00002490  63 63 65 73 73 69 6e 67  20 61 0a 73 74 6f 72 61  |ccessing a.stora|
000024a0  67 65 20 64 69 72 65 63  74 6f 72 79 2c 20 69 6e  |ge directory, in|
000024b0  20 73 75 63 68 20 61 20  77 61 79 20 74 68 61 74  | such a way that|
000024c0  20 69 6e 73 74 65 61 64  20 6f 66 20 61 20 68 61  | instead of a ha|
000024d0  72 64 64 69 73 63 20 63  61 6c 6c 65 64 20 27 42  |rddisc called 'B|
000024e0  69 67 66 6f 6f 74 27 2c  0a 6f 6e 65 20 63 61 6c  |igfoot',.one cal|
000024f0  6c 65 64 20 27 42 69 3c  42 3e 6f 3c 2f 42 3e 67  |led 'Bi<B>o</B>g|
00002500  66 6f 6f 74 27 20 77 61  73 20 62 65 69 6e 67 20  |foot' was being |
00002510  64 65 6d 61 6e 64 65 64  20 66 6f 72 20 74 68 65  |demanded for the|
00002520  20 73 61 76 69 6e 67 20  6f 66 20 74 68 65 20 62  | saving of the b|
00002530  75 66 66 65 72 0a 63 6f  6e 74 65 6e 74 73 2e 0a  |uffer.contents..|
00002540  0a 3c 50 3e 49 20 68 61  76 65 6e 27 74 20 66 6f  |.<P>I haven't fo|
00002550  75 6e 64 20 61 20 62 75  67 20 72 65 73 70 6f 6e  |und a bug respon|
00002560  73 69 62 6c 65 20 66 6f  72 20 74 68 69 73 2c 20  |sible for this, |
00002570  62 75 74 20 49 27 6d 20  61 77 61 72 65 20 74 68  |but I'm aware th|
00002580  61 74 20 69 66 20 74 68  65 72 65 20 69 73 0a 6f  |at if there is.o|
00002590  6e 65 2c 20 69 74 27 73  20 61 20 73 65 72 69 6f  |ne, it's a serio|
000025a0  75 73 20 70 72 6f 62 6c  65 6d 2e 20 54 68 65 20  |us problem. The |
000025b0  3c 4b 42 44 3e 70 61 74  68 3c 2f 4b 42 44 3e 20  |<KBD>path</KBD> |
000025c0  73 77 69 74 63 68 20 74  68 61 74 20 77 61 73 20  |switch that was |
000025d0  61 64 64 65 64 20 74 6f  0a 3c 4b 42 44 3e 3c 41  |added to.<KBD><A|
000025e0  20 48 52 45 46 3d 22 74  65 63 68 2e 68 74 6d 6c  | HREF="tech.html|
000025f0  23 63 6c 69 5f 6d 6f 75  6e 74 22 3e 4d 6f 75 6e  |#cli_mount">Moun|
00002600  74 3c 2f 41 3e 3c 2f 4b  42 44 3e 20 77 69 6c 6c  |t</A></KBD> will|
00002610  20 68 6f 70 65 66 75 6c  6c 79 20 70 72 6f 76 69  | hopefully provi|
00002620  64 65 20 61 0a 77 6f 72  6b 2d 61 72 6f 75 6e 64  |de a.work-around|
00002630  20 66 6f 72 20 74 68 69  73 20 70 72 6f 62 6c 65  | for this proble|
00002640  6d 2e 0a 0a 3c 4c 49 3e  49 66 20 61 63 63 65 73  |m...<LI>If acces|
00002650  73 20 74 6f 20 61 20 64  69 72 65 63 74 6f 72 79  |s to a directory|
00002660  20 62 65 63 6f 6d 65 73  20 65 78 74 72 65 6d 65  | becomes extreme|
00002670  6c 79 20 73 6c 6f 77 20  61 73 20 73 6f 6f 6e 20  |ly slow as soon |
00002680  61 73 20 69 74 20 63 6f  6e 74 61 69 6e 73 0a 73  |as it contains.s|
00002690  65 76 65 72 61 6c 20 68  75 6e 64 72 65 64 20 66  |everal hundred f|
000026a0  69 6c 65 73 2c 20 74 68  69 73 20 69 73 20 6e 6f  |iles, this is no|
000026b0  20 70 72 6f 62 6c 65 6d  20 61 74 20 61 6c 6c 3a  | problem at all:|
000026c0  20 4a 75 73 74 20 69 6e  63 72 65 61 73 65 20 74  | Just increase t|
000026d0  68 65 20 73 69 7a 65 20  6f 66 0a 74 68 65 20 64  |he size of.the d|
000026e0  69 72 65 63 74 6f 72 79  20 63 61 63 68 65 21 0a  |irectory cache!.|
000026f0  0a 3c 4c 49 3e 53 65 76  65 72 61 6c 20 75 73 65  |.<LI>Several use|
00002700  72 73 20 68 61 76 65 20  65 78 70 65 72 69 65 6e  |rs have experien|
00002710  63 65 64 20 3c 53 41 4d  50 3e 43 61 6e 6e 6f 74  |ced <SAMP>Cannot|
00002720  20 65 78 74 65 6e 64 20  72 61 46 53 20 62 75 66  | extend raFS buf|
00002730  66 65 72 73 3c 2f 53 41  4d 50 3e 0a 65 72 72 6f  |fers</SAMP>.erro|
00002740  72 73 20 77 68 65 6e 20  74 68 65 72 65 20 77 61  |rs when there wa|
00002750  73 20 73 74 69 6c 6c 20  65 6e 6f 75 67 68 20 66  |s still enough f|
00002760  72 65 65 20 6d 65 6d 6f  72 79 20 6c 65 66 74 2e  |ree memory left.|
00002770  20 54 68 69 73 20 3c 45  4d 3e 6d 61 79 3c 2f 45  | This <EM>may</E|
00002780  4d 3e 20 62 65 0a 63 61  75 73 65 64 20 62 79 20  |M> be.caused by |
00002790  74 68 65 20 41 4e 54 20  69 6e 74 65 72 6e 65 74  |the ANT internet|
000027a0  20 73 75 69 74 65 20 2d  20 70 6c 65 61 73 65 20  | suite - please |
000027b0  73 65 6e 64 20 6d 65 20  74 68 65 20 6f 75 74 70  |send me the outp|
000027c0  75 74 20 6f 66 0a 3c 4b  42 44 3e 48 65 6c 70 26  |ut of.<KBD>Help&|
000027d0  6e 62 73 70 3b 4d 6f 64  75 6c 65 73 3c 2f 4b 42  |nbsp;Modules</KB|
000027e0  44 3e 20 6f 6e 20 79 6f  75 72 20 6d 61 63 68 69  |D> on your machi|
000027f0  6e 65 20 69 66 20 69 74  20 68 61 70 70 65 6e 73  |ne if it happens|
00002800  20 74 6f 20 79 6f 75 21  0a 0a 3c 4c 49 3e 49 66  | to you!..<LI>If|
00002810  20 79 6f 75 20 67 65 74  20 74 68 65 20 65 72 72  | you get the err|
00002820  6f 72 20 3c 53 41 4d 50  3e 4e 61 6d 65 20 69 6e  |or <SAMP>Name in|
00002830  73 69 64 65 20 74 68 65  20 64 69 72 65 63 74 6f  |side the directo|
00002840  72 79 20 63 6f 6e 74 61  69 6e 69 6e 67 20 61 6e  |ry containing an|
00002850  0a 72 61 46 53 20 64 69  73 63 20 69 73 20 6e 6f  |.raFS disc is no|
00002860  74 20 6f 66 20 74 68 65  20 66 6f 72 6d 20 41 30  |t of the form A0|
00002870  2e 41 30 2e 41 30 3c 2f  53 41 4d 50 3e 20 74 68  |.A0.A0</SAMP> th|
00002880  65 6e 20 74 68 69 73 20  69 73 20 70 72 6f 62 61  |en this is proba|
00002890  62 6c 79 20 63 61 75 73  65 64 20 62 79 0a 61 6e  |bly caused by.an|
000028a0  20 6f 6c 64 65 72 20 76  65 72 73 69 6f 6e 20 6f  | older version o|
000028b0  66 20 74 68 65 20 49 6d  61 67 65 46 53 46 69 78  |f the ImageFSFix|
000028c0  20 6d 6f 64 75 6c 65 20  2d 20 41 72 63 46 53 20  | module - ArcFS |
000028d0  76 65 72 73 69 6f 6e 2c  20 3c 45 4d 3e 65 61 72  |version, <EM>ear|
000028e0  6c 69 65 72 3c 2f 45 4d  3e 0a 74 68 61 6e 20 56  |lier</EM>.than V|
000028f0  30 2e 33 30 20 28 32 35  2d 41 75 67 2d 31 39 39  |0.30 (25-Aug-199|
00002900  36 29 2e 20 4e 6f 74 65  20 74 68 61 74 20 74 68  |6). Note that th|
00002910  65 20 49 6d 61 67 65 46  53 46 69 78 20 6d 6f 64  |e ImageFSFix mod|
00002920  75 6c 65 73 20 73 75 70  70 6c 69 65 64 20 77 69  |ules supplied wi|
00002930  74 68 0a 53 70 61 72 6b  46 53 20 28 65 2e 26 6e  |th.SparkFS (e.&n|
00002940  62 73 70 3b 67 2e 20 56  30 2e 30 34 29 20 64 6f  |bsp;g. V0.04) do|
00002950  20 6e 6f 74 20 63 61 75  73 65 20 61 6e 79 20 70  | not cause any p|
00002960  72 6f 62 6c 65 6d 73 2e  0a 0a 3c 4c 49 3e 72 61  |roblems...<LI>ra|
00002970  46 53 46 69 6c 65 72 20  64 6f 65 73 6e 27 74 20  |FSFiler doesn't |
00002980  6c 6f 6f 6b 20 66 6f 72  20 3c 49 3e 21 4d 6f 75  |look for <I>!Mou|
00002990  6e 74 3c 2f 49 3e 20 66  69 6c 65 73 20 69 6e 20  |nt</I> files in |
000029a0  74 68 65 20 72 6f 6f 74  20 6f 66 20 69 6d 61 67  |the root of imag|
000029b0  65 20 66 69 6c 65 73 0a  69 6e 20 6f 72 64 65 72  |e files.in order|
000029c0  20 74 6f 20 70 72 65 76  65 6e 74 20 61 64 64 72  | to prevent addr|
000029d0  65 73 73 20 65 78 63 65  70 74 69 6f 6e 73 20 67  |ess exceptions g|
000029e0  65 6e 65 72 61 74 65 64  20 62 79 20 6f 6c 64 65  |enerated by olde|
000029f0  72 20 76 65 72 73 69 6f  6e 73 20 6f 66 20 53 70  |r versions of Sp|
00002a00  61 72 6b 46 53 0a 77 68  65 6e 20 74 68 65 20 61  |arkFS.when the a|
00002a10  72 63 68 69 76 65 20 77  61 73 20 63 6f 72 72 75  |rchive was corru|
00002a20  70 74 65 64 2e 0a 0a 3c  4c 49 3e 72 61 46 53 20  |pted...<LI>raFS |
00002a30  6d 61 79 20 61 73 6b 20  79 6f 75 20 74 6f 20 76  |may ask you to v|
00002a40  65 72 69 66 79 20 61 20  64 69 73 63 20 74 68 61  |erify a disc tha|
00002a50  74 20 69 74 20 74 68 69  6e 6b 73 20 69 73 20 63  |t it thinks is c|
00002a60  6f 72 72 75 70 74 65 64  2e 0a 55 6e 66 6f 72 74  |orrupted..Unfort|
00002a70  75 6e 61 74 65 6c 79 2c  20 74 68 65 20 76 65 72  |unately, the ver|
00002a80  69 66 79 20 6f 70 65 72  61 74 69 6f 6e 20 68 61  |ify operation ha|
00002a90  73 20 6e 6f 74 20 79 65  74 20 62 65 65 6e 20 69  |s not yet been i|
00002aa0  6d 70 6c 65 6d 65 6e 74  65 64 2e 20 49 66 20 74  |mplemented. If t|
00002ab0  68 65 72 65 20 69 73 0a  61 6e 20 75 6e 64 65 6c  |here is.an undel|
00002ac0  69 61 62 6c 65 20 66 69  6c 65 20 6f 6e 20 79 6f  |iable file on yo|
00002ad0  75 72 20 64 69 73 63 20  77 68 69 63 68 20 63 61  |ur disc which ca|
00002ae0  75 73 65 73 20 61 6e 20  65 72 72 6f 72 20 74 6f  |uses an error to|
00002af0  20 62 65 20 64 69 73 70  6c 61 79 65 64 2c 20 74  | be displayed, t|
00002b00  68 65 0a 73 61 66 65 73  74 20 77 61 79 20 69 73  |he.safest way is|
00002b10  20 74 6f 20 63 72 65 61  74 65 20 61 20 6e 65 77  | to create a new|
00002b20  20 72 61 46 53 20 64 69  73 63 20 61 6e 64 20 74  | raFS disc and t|
00002b30  6f 20 6d 6f 76 65 20 74  68 65 20 63 6f 6e 74 65  |o move the conte|
00002b40  6e 74 73 20 6f 66 20 74  68 65 0a 63 6f 72 72 75  |nts of the.corru|
00002b50  70 74 65 64 20 64 69 73  63 20 61 63 72 6f 73 73  |pted disc across|
00002b60  2e 0a 0a 3c 4c 49 3e 46  6f 72 20 65 76 65 72 79  |...<LI>For every|
00002b70  20 66 69 6c 65 20 6f 6e  20 61 20 72 61 46 53 20  | file on a raFS |
00002b80  64 69 73 63 20 74 68 61  74 20 69 73 20 6f 70 65  |disc that is ope|
00002b90  6e 65 64 2c 20 72 61 46  53 20 77 69 6c 6c 20 6f  |ned, raFS will o|
00002ba0  70 65 6e 20 61 6e 6f 74  68 65 72 20 6f 6e 65 0a  |pen another one.|
00002bb0  6f 6e 20 74 68 65 20 68  6f 73 74 20 66 69 6c 69  |on the host fili|
00002bc0  6e 67 20 73 79 73 74 65  6d 2e 20 42 65 63 61 75  |ng system. Becau|
00002bd0  73 65 20 66 69 6c 65 20  68 61 6e 64 6c 65 73 20  |se file handles |
00002be0  61 72 65 20 75 73 65 64  20 75 70 20 74 77 69 63  |are used up twic|
00002bf0  65 20 61 73 20 71 75 69  63 6b 6c 79 2c 0a 69 74  |e as quickly,.it|
00002c00  20 69 73 20 74 68 65 6f  72 65 74 69 63 61 6c 6c  | is theoreticall|
00002c10  79 20 70 6f 73 73 69 62  6c 65 20 74 68 61 74 20  |y possible that |
00002c20  65 2e 26 6e 62 73 70 3b  67 2e 20 74 68 65 20 46  |e.&nbsp;g. the F|
00002c30  6f 6e 74 4d 61 6e 61 67  65 72 20 63 61 75 73 65  |ontManager cause|
00002c40  73 20 74 68 65 20 6d 61  69 6e 0a 61 70 70 6c 69  |s the main.appli|
00002c50  63 61 74 69 6f 6e 20 74  6f 20 72 75 6e 20 6f 75  |cation to run ou|
00002c60  74 20 6f 66 20 66 69 6c  65 20 68 61 6e 64 6c 65  |t of file handle|
00002c70  73 2e 20 48 6f 77 65 76  65 72 2c 20 74 68 69 73  |s. However, this|
00002c80  20 69 73 20 75 6e 6c 69  6b 65 6c 79 20 74 6f 20  | is unlikely to |
00002c90  68 61 70 70 65 6e 2e 0a  0a 3c 4c 49 3e 53 6f 6d  |happen...<LI>Som|
00002ca0  65 20 66 69 6c 69 6e 67  20 73 79 73 74 65 6d 20  |e filing system |
00002cb0  63 61 6c 6c 73 20 74 68  61 74 20 61 72 65 20 73  |calls that are s|
00002cc0  75 70 70 6f 72 74 65 64  20 62 79 20 46 69 6c 65  |upported by File|
00002cd0  43 6f 72 65 20 66 6f 72  20 62 61 63 6b 77 61 72  |Core for backwar|
00002ce0  64 0a 63 6f 6d 70 61 74  69 62 69 6c 69 74 79 20  |d.compatibility |
00002cf0  61 72 65 20 6e 6f 77 20  64 65 70 72 65 63 61 74  |are now deprecat|
00002d00  65 64 20 69 6e 20 66 61  76 6f 75 72 20 6f 66 20  |ed in favour of |
00002d10  6f 74 68 65 72 20 63 61  6c 6c 73 2e 20 54 68 65  |other calls. The|
00002d20  79 20 61 72 65 20 6e 6f  74 0a 69 6d 70 6c 65 6d  |y are not.implem|
00002d30  65 6e 74 65 64 20 69 6e  20 72 61 46 53 3a 0a 0a  |ented in raFS:..|
00002d40  3c 55 4c 3e 0a 0a 3c 4c  49 3e 4f 53 5f 47 42 50  |<UL>..<LI>OS_GBP|
00002d50  42 26 6e 62 73 70 3b 35  20 28 72 65 61 64 20 6e  |B&nbsp;5 (read n|
00002d60  61 6d 65 20 61 6e 64 20  62 6f 6f 74 20 6f 70 74  |ame and boot opt|
00002d70  69 6f 6e 29 20 2d 20 75  73 65 20 4f 53 5f 46 53  |ion) - use OS_FS|
00002d80  43 6f 6e 74 72 6f 6c 26  6e 62 73 70 3b 33 37 0a  |Control&nbsp;37.|
00002d90  61 6e 64 2f 6f 72 26 6e  62 73 70 3b 34 37 0a 0a  |and/or&nbsp;47..|
00002da0  3c 4c 49 3e 4f 53 5f 47  42 50 42 26 6e 62 73 70  |<LI>OS_GBPB&nbsp|
00002db0  3b 36 20 6f 72 26 6e 62  73 70 3b 37 20 28 72 65  |;6 or&nbsp;7 (re|
00002dc0  61 64 20 64 69 72 65 63  74 6f 72 79 20 6e 61 6d  |ad directory nam|
00002dd0  65 20 61 6e 64 20 70 72  69 76 69 6c 65 67 65 20  |e and privilege |
00002de0  62 79 74 65 29 20 2d 20  75 73 65 0a 4f 53 5f 46  |byte) - use.OS_F|
00002df0  53 43 6f 6e 74 72 6f 6c  26 6e 62 73 70 3b 33 37  |SControl&nbsp;37|
00002e00  0a 0a 3c 4c 49 3e 4f 53  5f 47 42 50 42 26 6e 62  |..<LI>OS_GBPB&nb|
00002e10  73 70 3b 38 20 28 72 65  61 64 20 64 69 72 65 63  |sp;8 (read direc|
00002e20  74 6f 72 79 20 65 6e 74  72 69 65 73 29 20 2d 20  |tory entries) - |
00002e30  75 73 65 20 4f 53 5f 47  42 50 42 26 6e 62 73 70  |use OS_GBPB&nbsp|
00002e40  3b 39 0a 0a 3c 2f 55 4c  3e 0a 0a 3c 4c 49 3e 49  |;9..</UL>..<LI>I|
00002e50  66 20 46 69 6c 65 72 5f  41 63 74 69 6f 6e 20 66  |f Filer_Action f|
00002e60  61 69 6c 73 20 77 69 74  68 20 3c 53 41 4d 50 3e  |ails with <SAMP>|
00002e70  49 6e 74 65 72 6e 61 6c  20 65 72 72 6f 72 2c 20  |Internal error, |
00002e80  6e 6f 20 73 74 61 63 6b  20 66 6f 72 20 74 72 61  |no stack for tra|
00002e90  70 0a 68 61 6e 64 6c 65  72 3a 20 49 6e 74 65 72  |p.handler: Inter|
00002ea0  6e 61 6c 20 65 72 72 6f  72 3a 20 42 72 61 6e 63  |nal error: Branc|
00002eb0  68 20 74 68 72 6f 75 67  68 20 7a 65 72 6f 20 61  |h through zero a|
00002ec0  74 2e 2e 2e 3c 2f 53 41  4d 50 3e 20 77 68 69 6c  |t...</SAMP> whil|
00002ed0  65 20 64 65 6c 65 74 69  6e 67 0a 66 69 6c 65 73  |e deleting.files|
00002ee0  2c 20 74 68 65 20 72 65  61 73 6f 6e 20 69 73 20  |, the reason is |
00002ef0  74 68 61 74 20 69 74 20  68 61 73 20 61 74 74 65  |that it has atte|
00002f00  6d 70 74 65 64 20 74 6f  20 61 63 63 65 73 73 20  |mpted to access |
00002f10  61 20 64 69 72 65 63 74  6f 72 79 20 69 6e 20 6f  |a directory in o|
00002f20  72 64 65 72 20 74 6f 0a  73 65 65 20 77 68 65 74  |rder to.see whet|
00002f30  68 65 72 20 69 74 20 69  73 20 65 6d 70 74 79 2c  |her it is empty,|
00002f40  20 62 75 74 20 74 68 65  20 66 69 6c 65 20 6f 6e  | but the file on|
00002f50  20 74 68 65 20 68 6f 73  74 20 66 69 6c 69 6e 67  | the host filing|
00002f60  20 73 79 73 74 65 6d 20  77 68 69 63 68 0a 63 6f  | system which.co|
00002f70  6e 74 61 69 6e 73 20 74  68 65 20 64 69 72 65 63  |ntains the direc|
00002f80  74 6f 72 79 20 64 61 74  61 20 69 73 20 6e 6f 74  |tory data is not|
00002f90  20 74 68 65 72 65 2e 20  49 66 20 79 6f 75 20 64  | there. If you d|
00002fa0  6f 75 62 6c 65 2d 63 6c  69 63 6b 20 6f 6e 20 74  |ouble-click on t|
00002fb0  68 65 20 72 65 6c 65 76  61 6e 74 0a 64 69 72 65  |he relevant.dire|
00002fc0  63 74 6f 72 79 2c 20 79  6f 75 20 77 69 6c 6c 20  |ctory, you will |
00002fd0  67 65 74 20 61 6e 20 65  72 72 6f 72 20 6d 65 73  |get an error mes|
00002fe0  73 61 67 65 20 73 61 79  69 6e 67 20 73 6f 6d 65  |sage saying some|
00002ff0  74 68 69 6e 67 20 6c 69  6b 65 20 3c 53 41 4d 50  |thing like <SAMP|
00003000  3e 45 72 72 6f 72 0a 77  68 65 6e 20 72 65 61 64  |>Error.when read|
00003010  69 6e 67 20 27 72 61 46  53 3a 3a 44 69 73 63 4e  |ing 'raFS::DiscN|
00003020  61 6d 65 2e 24 2e 58 2e  44 69 72 27 20 2d 20 27  |ame.$.X.Dir' - '|
00003030  41 44 46 53 3a 3a 48 61  72 64 44 69 73 63 34 2e  |ADFS::HardDisc4.|
00003040  24 2e 4d 79 44 69 73 63  2e 41 30 2e 56 38 2e 55  |$.MyDisc.A0.V8.U|
00003050  32 27 0a 6e 6f 74 20 66  6f 75 6e 64 3c 2f 53 41  |2'.not found</SA|
00003060  4d 50 3e 0a 0a 3c 50 3e  41 20 73 69 6d 69 6c 61  |MP>..<P>A simila|
00003070  72 20 74 68 69 6e 67 20  68 61 70 70 65 6e 73 20  |r thing happens |
00003080  77 68 65 6e 20 79 6f 75  20 74 72 79 20 74 6f 20  |when you try to |
00003090  72 65 6e 61 6d 65 20 61  6e 20 6f 62 6a 65 63 74  |rename an object|
000030a0  20 77 68 6f 73 65 20 66  69 6c 65 20 69 73 6e 27  | whose file isn'|
000030b0  74 0a 66 6f 75 6e 64 20  6f 6e 20 74 68 65 20 68  |t.found on the h|
000030c0  6f 73 74 20 66 69 6c 69  6e 67 20 73 79 73 74 65  |ost filing syste|
000030d0  6d 2e 20 54 68 69 73 20  69 73 20 61 20 62 75 67  |m. This is a bug|
000030e0  20 69 6e 20 74 68 65 20  46 69 6c 65 72 5f 41 63  | in the Filer_Ac|
000030f0  74 69 6f 6e 20 6d 6f 64  75 6c 65 2e 0a 28 54 68  |tion module..(Th|
00003100  65 20 6d 6f 64 75 6c 65  27 73 20 70 72 6f 67 72  |e module's progr|
00003110  61 6d 6d 65 72 20 61 73  73 75 6d 65 64 20 74 68  |ammer assumed th|
00003120  61 74 20 74 68 65 72 65  20 77 69 6c 6c 20 6e 65  |at there will ne|
00003130  76 65 72 20 62 65 20 61  6e 20 65 72 72 6f 72 20  |ver be an error |
00003140  75 6e 64 65 72 0a 63 65  72 74 61 69 6e 20 63 69  |under.certain ci|
00003150  72 63 75 6d 73 74 61 6e  63 65 73 2e 29 0a 0a 3c  |rcumstances.)..<|
00003160  4c 49 3e 59 6f 75 20 6d  61 79 20 6f 63 63 61 73  |LI>You may occas|
00003170  69 6f 6e 61 6c 6c 79 20  6e 6f 74 69 63 65 20 74  |ionally notice t|
00003180  68 61 74 20 74 68 65 20  3c 42 3e 44 69 73 6d 6f  |hat the <B>Dismo|
00003190  75 6e 74 3c 2f 42 3e 20  73 75 62 6d 65 6e 75 20  |unt</B> submenu |
000031a0  69 73 20 63 6c 6f 73 65  64 0a 61 66 74 65 72 20  |is closed.after |
000031b0  61 20 63 6c 69 63 6b 20  77 69 74 68 20 41 64 6a  |a click with Adj|
000031c0  75 73 74 2e 20 54 68 69  73 20 69 6e 63 6f 72 72  |ust. This incorr|
000031d0  65 63 74 20 62 65 68 61  76 69 6f 75 72 20 69 73  |ect behaviour is|
000031e0  20 61 6c 73 6f 20 63 61  75 73 65 64 20 62 79 20  | also caused by |
000031f0  74 68 65 0a 46 69 6c 65  72 2e 0a 0a 3c 4c 49 3e  |the.Filer...<LI>|
00003200  49 66 20 61 6e 20 65 72  72 6f 72 20 6f 63 63 75  |If an error occu|
00003210  72 73 20 6f 6e 20 74 68  65 20 68 6f 73 74 20 66  |rs on the host f|
00003220  69 6c 69 6e 67 20 73 79  73 74 65 6d 20 61 74 20  |iling system at |
00003230  61 20 63 65 72 74 61 69  6e 20 70 6f 69 6e 74 20  |a certain point |
00003240  64 75 72 69 6e 67 0a 72  65 6e 61 6d 69 6e 67 20  |during.renaming |
00003250  61 20 66 69 6c 65 2c 20  79 6f 75 20 6d 61 79 20  |a file, you may |
00003260  65 6e 64 20 75 70 20 77  69 74 68 20 74 77 6f 20  |end up with two |
00003270  64 69 72 65 63 74 6f 72  79 20 65 6e 74 72 69 65  |directory entrie|
00003280  73 20 70 6f 69 6e 74 69  6e 67 20 74 6f 20 74 68  |s pointing to th|
00003290  65 0a 73 61 6d 65 20 66  69 6c 65 2e 20 44 6f 6e  |e.same file. Don|
000032a0  27 74 20 61 74 74 65 6d  70 74 20 74 6f 20 64 65  |'t attempt to de|
000032b0  6c 65 74 65 20 6f 6e 65  20 6f 66 20 74 68 65 6d  |lete one of them|
000032c0  20 2d 20 74 68 69 73 20  77 69 6c 6c 20 61 6c 73  | - this will als|
000032d0  6f 20 64 65 6c 65 74 65  20 74 68 65 0a 61 63 74  |o delete the.act|
000032e0  75 61 6c 20 66 69 6c 65  2c 20 73 6f 20 74 68 65  |ual file, so the|
000032f0  20 73 65 63 6f 6e 64 20  65 6e 74 72 79 20 77 6f  | second entry wo|
00003300  6e 27 74 20 77 6f 72 6b  20 61 6e 79 20 6c 6f 6e  |n't work any lon|
00003310  67 65 72 21 20 5b 53 74  69 6c 6c 20 74 6f 20 62  |ger! [Still to b|
00003320  65 20 77 72 69 74 74 65  6e 3a 0a 3c 4b 42 44 3e  |e written:.<KBD>|
00003330  56 65 72 69 66 79 3c 2f  4b 42 44 3e 20 3c 49 3e  |Verify</KBD> <I>|
00003340  26 6c 74 3b 70 61 74 68  20 6f 66 20 64 69 73 63  |&lt;path of disc|
00003350  20 6f 6e 20 68 6f 73 74  20 46 53 26 67 74 3b 3c  | on host FS&gt;<|
00003360  2f 49 3e 20 74 6f 20 66  69 78 20 74 68 69 73 20  |/I> to fix this |
00003370  61 6e 64 0a 73 69 6d 69  6c 61 72 20 74 68 69 6e  |and.similar thin|
00003380  67 73 2e 20 46 6f 72 20  74 68 65 20 74 69 6d 65  |gs. For the time|
00003390  20 62 65 69 6e 67 2c 20  61 6c 6c 20 79 6f 75 20  | being, all you |
000033a0  63 61 6e 20 64 6f 20 69  73 20 74 6f 20 6d 6f 76  |can do is to mov|
000033b0  65 20 6f 6e 65 20 6f 66  20 74 68 65 0a 66 69 6c  |e one of the.fil|
000033c0  65 73 20 73 6f 6d 65 77  68 65 72 65 20 77 68 65  |es somewhere whe|
000033d0  72 65 20 69 74 20 64 6f  65 73 6e 27 74 20 62 6f  |re it doesn't bo|
000033e0  74 68 65 72 20 79 6f 75  2e 5d 0a 0a 3c 50 3e 49  |ther you.]..<P>I|
000033f0  6e 20 70 72 61 63 74 69  63 65 2c 20 74 68 69 73  |n practice, this|
00003400  20 69 73 20 76 65 72 79  20 75 6e 6c 69 6b 65 6c  | is very unlikel|
00003410  79 20 74 6f 20 68 61 70  70 65 6e 2e 0a 0a 3c 4c  |y to happen...<L|
00003420  49 3e 44 6f 20 6e 6f 74  20 75 73 65 20 3c 49 3e  |I>Do not use <I>|
00003430  4d 65 6d 70 68 69 73 3c  2f 49 3e 20 28 61 20 6d  |Memphis</I> (a m|
00003440  65 6d 6f 72 79 2d 62 61  73 65 64 20 66 69 6c 69  |emory-based fili|
00003450  6e 67 20 73 79 73 74 65  6d 29 20 61 73 20 74 68  |ng system) as th|
00003460  65 20 68 6f 73 74 0a 66  69 6c 69 6e 67 20 73 79  |e host.filing sy|
00003470  73 74 65 6d 20 66 6f 72  20 61 20 72 61 46 53 20  |stem for a raFS |
00003480  64 69 73 63 20 77 69 74  68 20 74 68 65 20 70 72  |disc with the pr|
00003490  65 2d 52 69 73 63 4f 53  26 6e 62 73 70 3b 33 2e  |e-RiscOS&nbsp;3.|
000034a0  35 20 76 65 72 73 69 6f  6e 20 6f 66 20 72 61 46  |5 version of raF|
000034b0  53 0a 28 69 2e 26 6e 62  73 70 3b 65 2e 20 74 68  |S.(i.&nbsp;e. th|
000034c0  65 20 6f 6e 65 20 74 68  61 74 20 75 73 65 73 20  |e one that uses |
000034d0  74 68 65 20 73 70 72 69  74 65 20 61 72 65 61 2c  |the sprite area,|
000034e0  20 6a 75 73 74 20 6c 69  6b 65 20 4d 65 6d 70 68  | just like Memph|
000034f0  69 73 20 64 6f 65 73 29  2e 20 54 68 69 73 0a 73  |is does). This.s|
00003500  65 65 6d 73 20 74 6f 20  77 6f 72 6b 20 66 6f 72  |eems to work for|
00003510  20 61 20 77 68 69 6c 65  2c 20 62 75 74 20 73 6f  | a while, but so|
00003520  6f 6e 65 72 20 6f 72 20  6c 61 74 65 72 20 73 6f  |oner or later so|
00003530  6d 65 74 68 69 6e 67 20  63 61 75 73 65 73 20 64  |mething causes d|
00003540  61 74 61 20 6c 6f 73 73  2e 20 49 0a 63 61 6e 6e  |ata loss. I.cann|
00003550  6f 74 20 62 65 20 31 30  30 25 20 73 75 72 65 2c  |ot be 100% sure,|
00003560  20 62 75 74 20 6d 79 20  6c 6f 67 20 66 69 6c 65  | but my log file|
00003570  73 20 69 6e 64 69 63 61  74 65 20 74 68 61 74 20  |s indicate that |
00003580  4d 65 6d 70 68 69 73 20  61 6e 64 20 6e 6f 74 20  |Memphis and not |
00003590  72 61 46 53 0a 69 74 73  65 6c 66 20 69 73 20 74  |raFS.itself is t|
000035a0  68 65 20 63 75 6c 70 72  69 74 20 28 44 61 74 61  |he culprit (Data|
000035b0  20 74 68 61 74 20 49 20  77 72 69 74 65 20 74 6f  | that I write to|
000035c0  20 4d 65 6d 70 68 69 73  20 61 6e 64 20 74 68 65  | Memphis and the|
000035d0  6e 20 72 65 2d 6c 6f 61  64 0a 69 6d 6d 65 64 69  |n re-load.immedi|
000035e0  61 74 65 6c 79 20 61 66  74 65 72 77 61 72 64 73  |ately afterwards|
000035f0  20 69 73 20 63 6f 72 72  75 70 74 65 64 29 2e 0a  | is corrupted)..|
00003600  0a 3c 50 3e 54 68 65 20  72 65 61 73 6f 6e 20 66  |.<P>The reason f|
00003610  6f 72 20 74 68 65 20 70  72 6f 62 6c 65 6d 20 6d  |or the problem m|
00003620  69 67 68 74 20 6c 69 65  20 69 6e 20 74 68 65 20  |ight lie in the |
00003630  66 61 63 74 20 74 68 61  74 20 4d 65 6d 70 68 69  |fact that Memphi|
00003640  73 20 6d 69 67 68 74 20  6e 6f 74 0a 65 78 70 65  |s might not.expe|
00003650  63 74 20 74 68 61 74 20  64 61 74 61 20 73 61 76  |ct that data sav|
00003660  65 64 20 74 6f 20 69 74  20 69 73 20 73 6f 6d 65  |ed to it is some|
00003670  77 68 65 72 65 20 69 6e  20 74 68 65 20 73 70 72  |where in the spr|
00003680  69 74 65 20 61 72 65 61  3a 20 72 61 46 53 20 6d  |ite area: raFS m|
00003690  61 6b 65 73 20 61 0a 63  61 6c 6c 20 74 6f 20 46  |akes a.call to F|
000036a0  69 6c 65 53 77 69 74 63  68 20 74 6f 20 73 61 76  |ileSwitch to sav|
000036b0  65 20 64 61 74 61 20 74  6f 20 4d 65 6d 70 68 69  |e data to Memphi|
000036c0  73 2e 20 55 70 6f 6e 20  72 65 63 65 69 76 69 6e  |s. Upon receivin|
000036d0  67 20 74 68 65 20 71 75  65 72 79 20 66 72 6f 6d  |g the query from|
000036e0  0a 46 69 6c 65 53 77 69  74 63 68 2c 20 4d 65 6d  |.FileSwitch, Mem|
000036f0  70 68 69 73 20 64 6f 65  73 20 73 6f 6d 65 20 68  |phis does some h|
00003700  6f 75 73 65 6b 65 65 70  69 6e 67 2c 20 64 75 72  |ousekeeping, dur|
00003710  69 6e 67 20 77 68 69 63  68 20 74 68 65 20 73 69  |ing which the si|
00003720  7a 65 20 6f 66 20 6f 6e  65 20 6f 66 0a 69 74 73  |ze of one of.its|
00003730  20 73 70 72 69 74 65 73  20 69 73 20 61 6c 74 65  | sprites is alte|
00003740  72 65 64 2c 20 73 6f 20  74 68 61 74 20 74 68 65  |red, so that the|
00003750  20 73 70 72 69 74 65 20  74 68 61 74 20 62 65 6c  | sprite that bel|
00003760  6f 6e 67 73 20 74 6f 20  72 61 46 53 20 69 73 20  |ongs to raFS is |
00003770  63 6f 70 69 65 64 20 74  6f 0a 61 20 64 69 66 66  |copied to.a diff|
00003780  65 72 65 6e 74 20 6d 65  6d 6f 72 79 20 6c 6f 63  |erent memory loc|
00003790  61 74 69 6f 6e 2e 20 54  68 65 6e 20 4d 65 6d 70  |ation. Then Memp|
000037a0  68 69 73 20 22 73 61 76  65 73 22 20 74 68 65 20  |his "saves" the |
000037b0  61 72 65 61 20 6f 66 20  6d 65 6d 6f 72 79 0a 73  |area of memory.s|
000037c0  70 65 63 69 66 69 65 64  20 62 79 20 46 69 6c 65  |pecified by File|
000037d0  53 77 69 74 63 68 2c 20  62 75 74 20 74 68 69 73  |Switch, but this|
000037e0  20 6e 6f 20 6c 6f 6e 67  65 72 20 70 6f 69 6e 74  | no longer point|
000037f0  73 20 74 6f 20 74 68 65  20 63 6f 72 72 65 63 74  |s to the correct|
00003800  20 64 61 74 61 21 20 54  68 65 0a 63 6f 72 72 65  | data! The.corre|
00003810  63 74 20 62 65 68 61 76  69 6f 75 72 20 6f 66 20  |ct behaviour of |
00003820  4d 65 6d 70 68 69 73 20  77 6f 75 6c 64 20 62 65  |Memphis would be|
00003830  20 74 6f 20 63 68 65 63  6b 20 77 68 65 74 68 65  | to check whethe|
00003840  72 20 74 68 65 20 64 61  74 61 20 74 6f 20 62 65  |r the data to be|
00003850  20 73 61 76 65 64 0a 69  73 20 69 6e 20 74 68 65  | saved.is in the|
00003860  20 73 70 72 69 74 65 20  61 72 65 61 2c 20 61 6e  | sprite area, an|
00003870  64 20 69 66 20 69 74 20  69 73 2c 20 74 6f 20 75  |d if it is, to u|
00003880  70 64 61 74 65 20 69 74  73 20 70 6f 69 6e 74 65  |pdate its pointe|
00003890  72 20 74 6f 20 69 74 20  77 68 65 6e 65 76 65 72  |r to it whenever|
000038a0  20 61 0a 73 70 72 69 74  65 20 77 69 74 68 20 61  | a.sprite with a|
000038b0  20 6c 6f 77 65 72 20 61  64 64 72 65 73 73 20 63  | lower address c|
000038c0  68 61 6e 67 65 73 20 73  69 7a 65 2e 3c 42 52 3e  |hanges size.<BR>|
000038d0  5b 42 79 20 74 68 65 20  77 61 79 3a 20 41 74 20  |[By the way: At |
000038e0  70 72 65 73 65 6e 74 2c  20 72 61 46 53 0a 69 74  |present, raFS.it|
000038f0  73 65 6c 66 20 64 6f 65  73 6e 27 74 20 70 65 72  |self doesn't per|
00003900  66 6f 72 6d 20 74 68 65  73 65 20 63 68 65 63 6b  |form these check|
00003910  73 20 65 69 74 68 65 72  2e 2e 2e 5d 0a 0a 3c 50  |s either...]..<P|
00003920  3e 49 74 20 73 68 6f 75  6c 64 20 62 65 20 70 6f  |>It should be po|
00003930  73 73 69 62 6c 65 20 74  6f 20 75 73 65 20 4d 65  |ssible to use Me|
00003940  6d 70 68 69 73 20 61 74  20 74 68 65 20 73 61 6d  |mphis at the sam|
00003950  65 20 74 69 6d 65 20 61  73 20 72 61 46 53 20 61  |e time as raFS a|
00003960  73 20 6c 6f 6e 67 20 61  73 0a 69 74 20 69 73 20  |s long as.it is |
00003970  6e 6f 74 20 74 68 65 20  68 6f 73 74 20 66 69 6c  |not the host fil|
00003980  69 6e 67 20 73 79 73 74  65 6d 2e 20 48 6f 77 65  |ing system. Howe|
00003990  76 65 72 2c 20 64 6f 6e  27 74 20 62 6c 61 6d 65  |ver, don't blame|
000039a0  20 6d 65 20 69 66 20 73  6f 6d 65 74 68 69 6e 67  | me if something|
000039b0  20 73 63 72 65 77 73 0a  75 70 2e 2e 2e 0a 0a 3c  | screws.up.....<|
000039c0  4c 49 3e 2e 2e 2e 74 68  65 72 65 20 6d 69 67 68  |LI>...there migh|
000039d0  74 20 62 65 20 74 68 65  20 6f 64 64 20 62 75 67  |t be the odd bug|
000039e0  2e 0a 0a 3c 2f 55 4c 3e  0a 0a 3c 50 20 41 4c 49  |...</UL>..<P ALI|
000039f0  47 4e 3d 22 72 69 67 68  74 22 3e 3c 49 3e 3c 41  |GN="right"><I><A|
00003a00  20 48 52 45 46 3d 22 23  74 6f 70 22 3e 42 61 63  | HREF="#top">Bac|
00003a10  6b 20 74 6f 20 74 68 65  20 74 6f 70 20 6f 66 20  |k to the top of |
00003a20  74 68 65 20 70 61 67 65  3c 2f 41 3e 3c 2f 49 3e  |the page</A></I>|
00003a30  3c 50 3e 3c 48 52 0a 57  49 44 54 48 3d 22 34 31  |<P><HR.WIDTH="41|
00003a40  25 22 3e 0a 0a 0a 0a 3c  50 3e 3c 48 32 3e 3c 41  |%">....<P><H2><A|
00003a50  20 4e 41 4d 45 3d 22 63  6c 69 22 3e 43 6f 6d 6d  | NAME="cli">Comm|
00003a60  61 6e 64 20 6c 69 6e 65  20 69 6e 74 65 72 66 61  |and line interfa|
00003a70  63 65 3c 2f 41 3e 3c 2f  48 32 3e 0a 0a 3c 50 3e  |ce</A></H2>..<P>|
00003a80  54 68 65 20 72 61 46 53  46 69 6c 65 72 20 6d 6f  |The raFSFiler mo|
00003a90  64 75 6c 65 20 70 72 6f  76 69 64 65 73 20 6f 6e  |dule provides on|
00003aa0  65 20 3c 54 54 3e 2a 3c  2f 54 54 3e 63 6f 6d 6d  |e <TT>*</TT>comm|
00003ab0  61 6e 64 3a 0a 0a 3c 44  4c 3e 0a 0a 3c 44 54 3e  |and:..<DL>..<DT>|
00003ac0  3c 4b 42 44 3e 3c 41 20  4e 41 4d 45 3d 22 63 6c  |<KBD><A NAME="cl|
00003ad0  69 5f 66 69 6c 65 72 22  3e 44 65 73 6b 74 6f 70  |i_filer">Desktop|
00003ae0  5f 72 61 46 53 46 69 6c  65 72 3c 2f 41 3e 3c 2f  |_raFSFiler</A></|
00003af0  4b 42 44 3e 0a 3c 49 3e  5b 3c 2f 49 3e 3c 4b 42  |KBD>.<I>[</I><KB|
00003b00  44 3e 2d 63 68 6f 69 63  65 73 3c 2f 4b 42 44 3e  |D>-choices</KBD>|
00003b10  3c 49 3e 5d 20 5b 3c 2f  49 3e 3c 4b 42 44 3e 2d  |<I>] [</I><KBD>-|
00003b20  6e 65 77 64 69 73 63 3c  2f 4b 42 44 3e 3c 49 3e  |newdisc</KBD><I>|
00003b30  5d 0a 5b 3c 2f 49 3e 3c  4b 42 44 3e 2d 6c 65 66  |].[</I><KBD>-lef|
00003b40  74 3c 2f 4b 42 44 3e 3c  49 3e 5d 20 5b 3c 2f 49  |t</KBD><I>] [</I|
00003b50  3e 3c 4b 42 44 3e 2d 72  69 67 68 74 3c 2f 4b 42  |><KBD>-right</KB|
00003b60  44 3e 3c 49 3e 5d 0a 5b  3c 2f 49 3e 3c 4b 42 44  |D><I>].[</I><KBD|
00003b70  3e 2d 70 72 69 6f 72 69  74 79 3c 2f 4b 42 44 3e  |>-priority</KBD>|
00003b80  20 3c 49 3e 26 6c 74 3b  6e 72 26 67 74 3b 5d 3c  | <I>&lt;nr&gt;]<|
00003b90  2f 49 3e 0a 0a 3c 44 44  3e 49 66 20 69 73 73 75  |/I>..<DD>If issu|
00003ba0  65 64 20 77 69 74 68 6f  75 74 20 61 6e 79 20 61  |ed without any a|
00003bb0  72 67 75 6d 65 6e 74 73  2c 20 74 68 69 73 20 63  |rguments, this c|
00003bc0  6f 6d 6d 61 6e 64 20 63  61 75 73 65 73 20 72 61  |ommand causes ra|
00003bd0  46 53 20 74 6f 20 69 6e  73 74 61 6c 6c 20 69 74  |FS to install it|
00003be0  73 0a 69 63 6f 6e 20 6f  6e 20 74 68 65 20 69 63  |s.icon on the ic|
00003bf0  6f 6e 20 62 61 72 2e 20  59 6f 75 20 63 61 6e 20  |on bar. You can |
00003c00  63 68 61 6e 67 65 20 74  68 65 20 70 6f 73 69 74  |change the posit|
00003c10  69 6f 6e 20 6f 66 20 74  68 65 20 69 63 6f 6e 20  |ion of the icon |
00003c20  62 61 72 20 69 63 6f 6e  20 62 79 0a 61 64 64 69  |bar icon by.addi|
00003c30  6e 67 20 3c 4b 42 44 3e  2d 6c 65 66 74 3c 2f 4b  |ng <KBD>-left</K|
00003c40  42 44 3e 2c 20 3c 4b 42  44 3e 2d 72 69 67 68 74  |BD>, <KBD>-right|
00003c50  3c 2f 4b 42 44 3e 20 61  6e 64 20 3c 4b 42 44 3e  |</KBD> and <KBD>|
00003c60  2d 70 72 69 6f 72 69 74  79 3c 2f 4b 42 44 3e 20  |-priority</KBD> |
00003c70  73 77 69 74 63 68 65 73  0a 74 6f 20 74 68 65 20  |switches.to the |
00003c80  63 6f 6d 6d 61 6e 64 20  3c 45 4d 3e 69 6e 20 74  |command <EM>in t|
00003c90  68 65 20 21 52 75 6e 20  66 69 6c 65 2e 3c 2f 45  |he !Run file.</E|
00003ca0  4d 3e 0a 0a 3c 50 3e 54  68 65 20 3c 4b 42 44 3e  |M>..<P>The <KBD>|
00003cb0  2d 63 68 6f 69 63 65 73  3c 2f 4b 42 44 3e 20 61  |-choices</KBD> a|
00003cc0  6e 64 20 3c 4b 42 44 3e  2d 6e 65 77 64 69 73 63  |nd <KBD>-newdisc|
00003cd0  3c 2f 4b 42 44 3e 20 73  77 69 74 63 68 65 73 20  |</KBD> switches |
00003ce0  61 72 65 20 75 73 65 66  75 6c 20 66 6f 72 0a 65  |are useful for.e|
00003cf0  78 65 63 75 74 69 6e 67  20 77 68 65 6e 20 74 68  |xecuting when th|
00003d00  65 20 69 63 6f 6e 20 62  61 72 20 69 63 6f 6e 20  |e icon bar icon |
00003d10  69 73 20 63 6c 69 63 6b  65 64 20 6f 6e 2e 20 54  |is clicked on. T|
00003d20  68 65 79 20 6f 70 65 6e  20 74 68 65 20 22 43 68  |hey open the "Ch|
00003d30  6f 69 63 65 73 22 20 61  6e 64 0a 22 43 72 65 61  |oices" and."Crea|
00003d40  74 65 20 6e 65 77 20 64  69 73 63 22 20 77 69 6e  |te new disc" win|
00003d50  64 6f 77 73 2c 20 72 65  73 70 65 63 74 69 76 65  |dows, respective|
00003d60  6c 79 2e 0a 0a 3c 50 3e  3c 4b 42 44 3e 44 65 73  |ly...<P><KBD>Des|
00003d70  6b 74 6f 70 5f 72 61 46  53 46 69 6c 65 72 3c 2f  |ktop_raFSFiler</|
00003d80  4b 42 44 3e 20 61 6c 73  6f 20 73 75 70 70 6f 72  |KBD> also suppor|
00003d90  74 73 20 3c 4b 42 44 3e  2d 6d 6f 75 6e 74 3c 2f  |ts <KBD>-mount</|
00003da0  4b 42 44 3e 2c 0a 3c 4b  42 44 3e 2d 73 65 6c 65  |KBD>,.<KBD>-sele|
00003db0  63 74 3c 2f 4b 42 44 3e  20 61 6e 64 20 3c 4b 42  |ct</KBD> and <KB|
00003dc0  44 3e 2d 61 64 6a 75 73  74 3c 2f 4b 42 44 3e 20  |D>-adjust</KBD> |
00003dd0  73 77 69 74 63 68 65 73  2c 20 62 75 74 20 74 68  |switches, but th|
00003de0  65 73 65 20 61 72 65 20  69 6e 74 65 6e 64 65 64  |ese are intended|
00003df0  0a 66 6f 72 20 69 6e 74  65 72 6e 61 6c 20 75 73  |.for internal us|
00003e00  65 20 6f 6e 6c 79 2e 0a  0a 3c 2f 44 4c 3e 0a 0a  |e only...</DL>..|
00003e10  3c 50 3e 72 61 46 53 20  70 72 6f 76 69 64 65 73  |<P>raFS provides|
00003e20  20 73 65 76 65 72 61 6c  20 3c 54 54 3e 2a 3c 2f  | several <TT>*</|
00003e30  54 54 3e 63 6f 6d 6d 61  6e 64 73 2e 20 57 68 69  |TT>commands. Whi|
00003e40  6c 65 20 74 68 65 20 72  61 46 53 46 69 6c 65 72  |le the raFSFiler|
00003e50  20 6d 6f 64 75 6c 65 0a  6f 66 66 65 72 73 20 61  | module.offers a|
00003e60  20 6d 6f 72 65 20 63 6f  6e 76 65 6e 69 65 6e 74  | more convenient|
00003e70  20 77 61 79 20 6f 66 20  77 6f 72 6b 69 6e 67 20  | way of working |
00003e80  77 69 74 68 20 64 69 73  63 73 2c 20 79 6f 75 20  |with discs, you |
00003e90  6d 61 79 20 73 6f 6d 65  74 69 6d 65 73 20 70 72  |may sometimes pr|
00003ea0  65 66 65 72 0a 75 73 69  6e 67 20 74 68 65 20 63  |efer.using the c|
00003eb0  6f 6d 6d 61 6e 64 20 6c  69 6e 65 20 69 6e 73 74  |ommand line inst|
00003ec0  65 61 64 2e 0a 0a 3c 44  4c 3e 0a 0a 3c 44 54 3e  |ead...<DL>..<DT>|
00003ed0  3c 4b 42 44 3e 3c 41 20  4e 41 4d 45 3d 22 63 6c  |<KBD><A NAME="cl|
00003ee0  69 5f 66 73 22 3e 72 61  46 53 3c 2f 41 3e 3c 2f  |i_fs">raFS</A></|
00003ef0  4b 42 44 3e 0a 0a 3c 44  44 3e 54 68 69 73 20 63  |KBD>..<DD>This c|
00003f00  6f 6d 6d 61 6e 64 20 73  65 6c 65 63 74 73 20 72  |ommand selects r|
00003f10  61 46 53 20 61 73 20 74  68 65 20 63 75 72 72 65  |aFS as the curre|
00003f20  6e 74 20 66 69 6c 69 6e  67 20 73 79 73 74 65 6d  |nt filing system|
00003f30  2e 20 46 6f 72 20 72 61  46 53 20 63 6f 6d 6d 61  |. For raFS comma|
00003f40  6e 64 73 0a 74 68 61 74  20 61 72 65 20 61 6c 73  |nds.that are als|
00003f50  6f 20 73 75 70 70 6f 72  74 65 64 20 62 79 20 6f  |o supported by o|
00003f60  74 68 65 72 20 66 69 6c  69 6e 67 20 73 79 73 74  |ther filing syst|
00003f70  65 6d 73 2c 20 6c 69 6b  65 20 3c 4b 42 44 3e 4d  |ems, like <KBD>M|
00003f80  6f 75 6e 74 3c 2f 4b 42  44 3e 2c 20 79 6f 75 0a  |ount</KBD>, you.|
00003f90  6d 75 73 74 20 73 77 69  74 63 68 20 74 6f 20 72  |must switch to r|
00003fa0  61 46 53 20 77 69 74 68  20 74 68 69 73 20 63 6f  |aFS with this co|
00003fb0  6d 6d 61 6e 64 20 62 65  66 6f 72 65 20 75 73 69  |mmand before usi|
00003fc0  6e 67 20 74 68 65 6d 2e  20 28 41 6c 74 65 72 6e  |ng them. (Altern|
00003fd0  61 74 69 76 65 6c 79 2c  20 79 6f 75 0a 63 61 6e  |atively, you.can|
00003fe0  20 75 73 65 20 3c 4b 42  44 3e 72 61 46 53 3a 4d  | use <KBD>raFS:M|
00003ff0  6f 75 6e 74 3c 2f 4b 42  44 3e 20 74 6f 20 73 77  |ount</KBD> to sw|
00004000  69 74 63 68 20 74 6f 20  72 61 46 53 20 74 65 6d  |itch to raFS tem|
00004010  70 6f 72 61 72 69 6c 79  2e 29 0a 0a 3c 44 54 3e  |porarily.)..<DT>|
00004020  3c 4b 42 44 3e 3c 41 20  4e 41 4d 45 3d 22 63 6c  |<KBD><A NAME="cl|
00004030  69 5f 63 72 65 61 74 65  22 3e 72 61 46 53 5f 43  |i_create">raFS_C|
00004040  72 65 61 74 65 3c 2f 41  3e 3c 2f 4b 42 44 3e 20  |reate</A></KBD> |
00004050  3c 49 3e 26 6c 74 3b 64  69 72 65 63 74 6f 72 79  |<I>&lt;directory|
00004060  26 67 74 3b 0a 26 6c 74  3b 44 69 73 63 4e 61 6d  |&gt;.&lt;DiscNam|
00004070  65 26 67 74 3b 3c 2f 49  3e 20 3c 49 3e 5b 3c 2f  |e&gt;</I> <I>[</|
00004080  49 3e 3c 4b 42 44 3e 2d  61 70 70 3c 2f 4b 42 44  |I><KBD>-app</KBD|
00004090  3e 20 3c 49 3e 26 6c 74  3b 53 70 72 69 74 65 4e  |> <I>&lt;SpriteN|
000040a0  61 6d 65 26 67 74 3b 5d  3c 2f 49 3e 0a 0a 3c 44  |ame&gt;]</I>..<D|
000040b0  44 3e 54 68 69 73 20 63  6f 6d 6d 61 6e 64 20 73  |D>This command s|
000040c0  65 74 73 20 75 70 20 61  20 73 74 6f 72 61 67 65  |ets up a storage|
000040d0  20 64 69 72 65 63 74 6f  72 79 20 66 6f 72 20 61  | directory for a|
000040e0  20 64 69 73 63 2c 20 73  6f 20 74 68 61 74 20 79  | disc, so that y|
000040f0  6f 75 20 63 61 6e 0a 73  75 62 73 65 71 75 65 6e  |ou can.subsequen|
00004100  74 6c 79 20 6d 6f 75 6e  74 20 69 74 20 77 69 74  |tly mount it wit|
00004110  68 20 3c 4b 42 44 3e 4d  6f 75 6e 74 3c 2f 4b 42  |h <KBD>Mount</KB|
00004120  44 3e 20 3c 49 3e 26 6c  74 3b 64 69 72 65 63 74  |D> <I>&lt;direct|
00004130  6f 72 79 26 67 74 3b 3c  2f 49 3e 2e 20 49 66 20  |ory&gt;</I>. If |
00004140  79 6f 75 0a 75 73 65 20  61 20 77 68 6f 6c 65 20  |you.use a whole |
00004150  68 61 72 64 20 6f 72 20  66 6c 6f 70 70 79 20 64  |hard or floppy d|
00004160  69 73 63 20 6a 75 73 74  20 66 6f 72 20 72 61 46  |isc just for raF|
00004170  53 2c 20 75 73 65 20 74  68 65 20 72 6f 6f 74 20  |S, use the root |
00004180  64 69 72 65 63 74 6f 72  79 20 22 24 22 20 61 73  |directory "$" as|
00004190  0a 74 68 65 20 73 74 6f  72 61 67 65 20 64 69 72  |.the storage dir|
000041a0  65 63 74 6f 72 79 2c 20  6f 74 68 65 72 77 69 73  |ectory, otherwis|
000041b0  65 20 63 68 6f 6f 73 65  20 61 20 64 69 72 65 63  |e choose a direc|
000041c0  74 6f 72 79 20 61 73 20  6e 65 61 72 20 74 6f 20  |tory as near to |
000041d0  74 68 65 20 72 6f 6f 74  20 61 73 0a 70 6f 73 73  |the root as.poss|
000041e0  69 62 6c 65 2e 0a 0a 3c  50 3e 54 68 65 20 73 74  |ible...<P>The st|
000041f0  6f 72 61 67 65 20 64 69  72 65 63 74 6f 72 79 20  |orage directory |
00004200  69 73 20 74 68 65 20 64  69 72 65 63 74 6f 72 79  |is the directory|
00004210  20 74 6f 20 77 68 69 63  68 20 61 6c 6c 20 66 69  | to which all fi|
00004220  6c 65 73 20 73 61 76 65  64 20 74 6f 20 74 68 65  |les saved to the|
00004230  0a 64 69 73 63 20 77 69  6c 6c 20 62 65 20 77 72  |.disc will be wr|
00004240  69 74 74 65 6e 2e 20 49  66 20 74 68 65 20 73 70  |itten. If the sp|
00004250  65 63 69 66 69 65 64 20  64 69 72 65 63 74 6f 72  |ecified director|
00004260  79 20 64 6f 65 73 20 6e  6f 74 20 61 6c 72 65 61  |y does not alrea|
00004270  64 79 20 65 78 69 73 74  2c 20 69 74 0a 69 73 20  |dy exist, it.is |
00004280  63 72 65 61 74 65 64 2e  20 49 66 20 69 74 20 69  |created. If it i|
00004290  73 6e 27 74 20 65 6d 70  74 79 2c 20 72 61 46 53  |sn't empty, raFS|
000042a0  20 77 69 6c 6c 20 67 69  76 65 20 61 6e 20 65 72  | will give an er|
000042b0  72 6f 72 2e 0a 0a 3c 50  3e 49 66 20 74 68 65 20  |ror...<P>If the |
000042c0  67 69 76 65 6e 20 64 69  72 65 63 74 6f 72 79 27  |given directory'|
000042d0  73 20 6c 65 61 66 6e 61  6d 65 20 62 65 67 69 6e  |s leafname begin|
000042e0  73 20 77 69 74 68 20 22  21 22 2c 20 74 68 65 20  |s with "!", the |
000042f0  6f 70 74 69 6f 6e 61 6c  0a 3c 4b 42 44 3e 2d 61  |optional.<KBD>-a|
00004300  70 70 3c 2f 4b 42 44 3e  20 73 77 69 74 63 68 20  |pp</KBD> switch |
00004310  63 61 6e 20 62 65 20 75  73 65 64 20 74 6f 20 73  |can be used to s|
00004320  70 65 63 69 66 79 20 74  68 65 20 6e 61 6d 65 20  |pecify the name |
00004330  6f 66 20 61 20 73 70 72  69 74 65 20 74 6f 20 75  |of a sprite to u|
00004340  73 65 20 66 6f 72 0a 74  68 69 73 20 61 70 70 6c  |se for.this appl|
00004350  69 63 61 74 69 6f 6e 2c  20 66 6f 72 20 65 78 61  |ication, for exa|
00004360  6d 70 6c 65 20 3c 4b 42  44 3e 2d 61 70 70 26 6e  |mple <KBD>-app&n|
00004370  62 73 70 3b 64 69 72 65  63 74 6f 72 79 3c 2f 4b  |bsp;directory</K|
00004380  42 44 3e 20 74 6f 20 6d  61 6b 65 20 69 74 20 6c  |BD> to make it l|
00004390  6f 6f 6b 0a 6c 69 6b 65  20 61 6e 20 6f 72 64 69  |ook.like an ordi|
000043a0  6e 61 72 79 20 64 69 72  65 63 74 6f 72 79 2e 20  |nary directory. |
000043b0  54 68 69 73 20 73 70 72  69 74 65 20 6d 75 73 74  |This sprite must|
000043c0  20 62 65 20 70 72 65 73  65 6e 74 20 69 6e 20 74  | be present in t|
000043d0  68 65 20 57 69 6d 70 27  73 20 70 6f 6f 6c 0a 77  |he Wimp's pool.w|
000043e0  68 65 6e 20 74 68 65 20  63 6f 6d 6d 61 6e 64 20  |hen the command |
000043f0  69 73 20 69 73 73 75 65  64 2e 20 72 61 46 53 20  |is issued. raFS |
00004400  61 6c 73 6f 20 73 61 76  65 73 20 61 20 3c 49 3e  |also saves a <I>|
00004410  21 52 75 6e 3c 2f 49 3e  20 66 69 6c 65 20 73 6f  |!Run</I> file so|
00004420  20 74 68 61 74 0a 64 6f  75 62 6c 65 2d 63 6c 69  | that.double-cli|
00004430  63 6b 69 6e 67 20 6f 6e  20 74 68 65 20 61 70 70  |cking on the app|
00004440  6c 69 63 61 74 69 6f 6e  20 77 69 6c 6c 20 6d 6f  |lication will mo|
00004450  75 6e 74 20 74 68 65 20  64 69 73 63 20 61 6e 64  |unt the disc and|
00004460  20 6f 70 65 6e 20 69 74  73 20 72 6f 6f 74 0a 64  | open its root.d|
00004470  69 72 65 63 74 6f 72 79  2e 20 54 68 65 20 3c 4b  |irectory. The <K|
00004480  42 44 3e 2d 61 70 70 3c  2f 4b 42 44 3e 20 73 77  |BD>-app</KBD> sw|
00004490  69 74 63 68 20 68 61 73  20 6e 6f 20 65 66 66 65  |itch has no effe|
000044a0  63 74 20 69 66 20 74 68  65 20 66 69 72 73 74 20  |ct if the first |
000044b0  63 68 61 72 61 63 74 65  72 20 6f 66 0a 74 68 65  |character of.the|
000044c0  20 6c 65 61 66 6e 61 6d  65 20 69 73 20 6e 6f 74  | leafname is not|
000044d0  20 22 21 22 2e 0a 0a 3c  50 3e 54 6f 20 64 65 6c  | "!"...<P>To del|
000044e0  65 74 65 20 61 20 63 6f  6d 70 6c 65 74 65 20 72  |ete a complete r|
000044f0  61 46 53 20 64 69 73 63  2c 20 6d 61 6b 65 20 73  |aFS disc, make s|
00004500  75 72 65 20 69 74 20 68  61 73 20 62 65 65 6e 20  |ure it has been |
00004510  64 69 73 6d 6f 75 6e 74  65 64 20 61 6e 64 20 74  |dismounted and t|
00004520  68 65 6e 0a 3c 4b 42 44  3e 57 69 70 65 3c 2f 4b  |hen.<KBD>Wipe</K|
00004530  42 44 3e 20 74 68 65 20  73 74 6f 72 61 67 65 20  |BD> the storage |
00004540  64 69 72 65 63 74 6f 72  79 2e 0a 0a 3c 44 54 3e  |directory...<DT>|
00004550  3c 4b 42 44 3e 3c 41 20  4e 41 4d 45 3d 22 63 6c  |<KBD><A NAME="cl|
00004560  69 5f 66 6c 75 73 68 22  3e 72 61 46 53 5f 46 6c  |i_flush">raFS_Fl|
00004570  75 73 68 3c 2f 41 3e 3c  2f 4b 42 44 3e 0a 0a 3c  |ush</A></KBD>..<|
00004580  44 44 3e 54 68 69 73 20  63 6f 6d 6d 61 6e 64 20  |DD>This command |
00004590  73 61 76 65 73 20 74 68  65 20 64 69 72 65 63 74  |saves the direct|
000045a0  6f 72 79 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |ory information |
000045b0  6f 66 20 61 6e 79 20 61  6c 74 65 72 65 64 20 64  |of any altered d|
000045c0  69 72 65 63 74 6f 72 69  65 73 0a 74 6f 20 74 68  |irectories.to th|
000045d0  65 20 68 6f 73 74 20 66  69 6c 69 6e 67 20 73 79  |e host filing sy|
000045e0  73 74 65 6d 2e 20 48 6f  77 65 76 65 72 2c 20 69  |stem. However, i|
000045f0  6e 20 63 6f 6e 74 72 61  73 74 20 74 6f 20 3c 4b  |n contrast to <K|
00004600  42 44 3e 44 69 73 6d 6f  75 6e 74 3c 2f 4b 42 44  |BD>Dismount</KBD|
00004610  3e 20 74 68 65 0a 63 61  63 68 65 64 20 64 69 72  |> the.cached dir|
00004620  65 63 74 6f 72 69 65 73  20 72 65 6d 61 69 6e 20  |ectories remain |
00004630  69 6e 20 6d 65 6d 6f 72  79 2e 20 49 74 20 69 73  |in memory. It is|
00004640  20 75 73 65 66 75 6c 20  74 6f 20 65 6e 73 75 72  | useful to ensur|
00004650  65 20 74 68 61 74 20 61  20 73 75 62 73 65 71 75  |e that a subsequ|
00004660  65 6e 74 0a 63 72 61 73  68 20 77 69 6c 6c 20 6e  |ent.crash will n|
00004670  6f 74 20 63 61 75 73 65  20 64 61 74 61 20 74 6f  |ot cause data to|
00004680  20 62 65 20 6c 6f 73 74  2e 0a 0a 3c 44 54 3e 3c  | be lost...<DT><|
00004690  4b 42 44 3e 3c 41 20 4e  41 4d 45 3d 22 63 6c 69  |KBD><A NAME="cli|
000046a0  5f 64 69 73 63 73 22 3e  72 61 46 53 5f 44 69 73  |_discs">raFS_Dis|
000046b0  63 73 3c 2f 41 3e 3c 2f  4b 42 44 3e 0a 0a 3c 44  |cs</A></KBD>..<D|
000046c0  44 3e 3c 4b 42 44 3e 72  61 46 53 5f 44 69 73 63  |D><KBD>raFS_Disc|
000046d0  73 3c 2f 4b 42 44 3e 20  6f 72 20 74 68 65 20 65  |s</KBD> or the e|
000046e0  71 75 69 76 61 6c 65 6e  74 20 3c 4b 42 44 3e 72  |quivalent <KBD>r|
000046f0  61 46 53 5f 44 69 73 6b  73 3c 2f 4b 42 44 3e 20  |aFS_Disks</KBD> |
00004700  67 69 76 65 73 20 61 0a  6c 69 73 74 20 6f 66 20  |gives a.list of |
00004710  61 6c 6c 20 64 69 73 63  73 20 74 68 61 74 20 61  |all discs that a|
00004720  72 65 20 6d 6f 75 6e 74  65 64 20 61 74 20 74 68  |re mounted at th|
00004730  65 20 74 69 6d 65 20 74  68 65 20 63 6f 6d 6d 61  |e time the comma|
00004740  6e 64 20 69 73 20 65 6e  74 65 72 65 64 2e 20 4f  |nd is entered. O|
00004750  6e 65 0a 6c 69 6e 65 20  6f 66 20 74 65 78 74 20  |ne.line of text |
00004760  77 69 6c 6c 20 62 65 20  70 72 69 6e 74 65 64 20  |will be printed |
00004770  66 6f 72 20 65 61 63 68  20 64 69 73 63 2c 20 63  |for each disc, c|
00004780  6f 6e 73 69 73 74 69 6e  67 20 6f 66 20 74 68 65  |onsisting of the|
00004790  20 64 69 73 63 20 6e 61  6d 65 0a 66 6f 6c 6c 6f  | disc name.follo|
000047a0  77 65 64 20 62 79 20 61  20 73 70 61 63 65 20 63  |wed by a space c|
000047b0  68 61 72 61 63 74 65 72  20 61 6e 64 20 74 68 65  |haracter and the|
000047c0  20 6e 61 6d 65 20 6f 66  20 74 68 65 20 64 69 73  | name of the dis|
000047d0  63 27 73 20 73 74 6f 72  61 67 65 20 64 69 72 65  |c's storage dire|
000047e0  63 74 6f 72 79 2e 0a 0a  3c 50 3e 46 75 74 75 72  |ctory...<P>Futur|
000047f0  65 20 76 65 72 73 69 6f  6e 73 20 6f 66 20 72 61  |e versions of ra|
00004800  46 53 20 6d 61 79 20 70  72 69 6e 74 20 6f 75 74  |FS may print out|
00004810  20 61 64 64 69 74 69 6f  6e 61 6c 20 69 6e 66 6f  | additional info|
00004820  72 6d 61 74 69 6f 6e 20  61 66 74 65 72 20 74 68  |rmation after th|
00004830  61 74 0a 64 65 73 63 72  69 62 65 64 20 61 62 6f  |at.described abo|
00004840  76 65 2c 20 77 69 74 68  20 66 75 72 74 68 65 72  |ve, with further|
00004850  20 69 74 65 6d 73 20 61  70 70 65 6e 64 65 64 20  | items appended |
00004860  74 6f 20 74 68 65 20 70  72 69 6e 74 65 64 20 6c  |to the printed l|
00004870  69 6e 65 73 20 61 66 74  65 72 0a 73 70 61 63 65  |ines after.space|
00004880  73 2e 20 54 61 6b 65 20  74 68 69 73 20 69 6e 74  |s. Take this int|
00004890  6f 20 61 63 63 6f 75 6e  74 20 77 68 65 6e 20 77  |o account when w|
000048a0  72 69 74 69 6e 67 20 70  72 6f 67 72 61 6d 73 20  |riting programs |
000048b0  74 68 61 74 20 6d 61 6b  65 20 75 73 65 20 6f 66  |that make use of|
000048c0  20 74 68 69 73 0a 63 6f  6d 6d 61 6e 64 27 73 20  | this.command's |
000048d0  6f 75 74 70 75 74 2e 0a  0a 3c 44 54 3e 3c 4b 42  |output...<DT><KB|
000048e0  44 3e 3c 41 20 4e 41 4d  45 3d 22 63 6c 69 5f 6d  |D><A NAME="cli_m|
000048f0  6f 75 6e 74 22 3e 4d 6f  75 6e 74 3c 2f 41 3e 3c  |ount">Mount</A><|
00004900  2f 4b 42 44 3e 20 3c 49  3e 26 6c 74 3b 64 69 72  |/KBD> <I>&lt;dir|
00004910  65 63 74 6f 72 79 26 67  74 3b 3c 2f 49 3e 0a 3c  |ectory&gt;</I>.<|
00004920  49 3e 5b 3c 2f 49 3e 3c  4b 42 44 3e 2d 72 65 61  |I>[</I><KBD>-rea|
00004930  64 6f 6e 6c 79 3c 2f 4b  42 44 3e 3c 49 3e 5d 20  |donly</KBD><I>] |
00004940  5b 3c 2f 49 3e 3c 4b 42  44 3e 2d 70 61 74 68 3c  |[</I><KBD>-path<|
00004950  2f 4b 42 44 3e 3c 49 3e  5d 0a 5b 3c 2f 49 3e 3c  |/KBD><I>].[</I><|
00004960  4b 42 44 3e 2d 58 3c 2f  4b 42 44 3e 3c 49 3e 5d  |KBD>-X</KBD><I>]|
00004970  3c 2f 49 3e 0a 0a 3c 44  44 3e 54 68 69 73 20 63  |</I>..<DD>This c|
00004980  6f 6d 6d 61 6e 64 20 6d  61 6b 65 73 20 73 75 72  |ommand makes sur|
00004990  65 20 74 68 61 74 20 79  6f 75 20 63 61 6e 20 61  |e that you can a|
000049a0  63 63 65 73 73 20 74 68  65 20 72 61 46 53 20 64  |ccess the raFS d|
000049b0  69 73 63 20 73 74 6f 72  65 64 20 69 6e 20 74 68  |isc stored in th|
000049c0  65 0a 73 70 65 63 69 66  69 65 64 20 64 69 72 65  |e.specified dire|
000049d0  63 74 6f 72 79 2c 20 65  2e 26 6e 62 73 70 3b 67  |ctory, e.&nbsp;g|
000049e0  2e 20 74 68 61 74 20 79  6f 75 20 63 61 6e 20 6f  |. that you can o|
000049f0  70 65 6e 20 74 68 65 20  72 6f 6f 74 20 64 69 72  |pen the root dir|
00004a00  65 63 74 6f 72 79 0a 22  72 61 46 53 3a 3a 3c 49  |ectory."raFS::<I|
00004a10  3e 44 69 73 63 4e 61 6d  65 3c 2f 49 3e 2e 24 22  |>DiscName</I>.$"|
00004a20  2e 20 49 74 20 77 69 6c  6c 20 61 6c 73 6f 20 73  |. It will also s|
00004a30  65 74 20 74 68 65 20 63  75 72 72 65 6e 74 20 64  |et the current d|
00004a40  69 72 65 63 74 6f 72 79  20 74 6f 20 74 68 65 0a  |irectory to the.|
00004a50  64 69 73 63 27 73 20 72  6f 6f 74 20 64 69 72 65  |disc's root dire|
00004a60  63 74 6f 72 79 2c 20 75  6e 73 65 74 20 74 68 65  |ctory, unset the|
00004a70  20 55 73 65 72 20 52 6f  6f 74 20 44 69 72 65 63  | User Root Direc|
00004a80  74 6f 72 79 20 28 55 52  44 29 2c 20 61 6e 64 20  |tory (URD), and |
00004a90  73 65 74 20 74 68 65 0a  73 79 73 74 65 6d 20 76  |set the.system v|
00004aa0  61 72 69 61 62 6c 65 20  72 61 46 53 24 44 69 73  |ariable raFS$Dis|
00004ab0  63 20 74 6f 20 74 68 65  20 6e 65 77 20 64 69 73  |c to the new dis|
00004ac0  63 27 73 20 6e 61 6d 65  2e 0a 0a 3c 50 3e 54 77  |c's name...<P>Tw|
00004ad0  6f 20 64 69 73 63 73 20  77 69 74 68 20 74 68 65  |o discs with the|
00004ae0  20 73 61 6d 65 20 6e 61  6d 65 20 63 61 6e 6e 6f  | same name canno|
00004af0  74 20 62 65 20 6d 6f 75  6e 74 65 64 20 61 74 20  |t be mounted at |
00004b00  74 68 65 20 73 61 6d 65  20 74 69 6d 65 20 2d 20  |the same time - |
00004b10  61 6e 20 65 72 72 6f 72  0a 77 69 6c 6c 20 62 65  |an error.will be|
00004b20  20 67 69 76 65 6e 20 69  66 20 74 68 69 73 20 69  | given if this i|
00004b30  73 20 61 74 74 65 6d 70  74 65 64 2e 20 48 6f 77  |s attempted. How|
00004b40  65 76 65 72 2c 20 69 66  20 79 6f 75 20 74 72 79  |ever, if you try|
00004b50  20 74 6f 20 6d 6f 75 6e  74 20 61 20 64 69 73 63  | to mount a disc|
00004b60  20 74 68 61 74 0a 69 73  20 61 6c 72 65 61 64 79  | that.is already|
00004b70  20 6d 6f 75 6e 74 65 64  20 28 69 2e 26 6e 62 73  | mounted (i.&nbs|
00004b80  70 3b 65 2e 20 74 68 65  20 64 69 73 63 20 6f 66  |p;e. the disc of|
00004b90  20 74 68 61 74 20 6e 61  6d 65 20 68 61 73 20 74  | that name has t|
00004ba0  68 65 20 73 61 6d 65 20  73 74 6f 72 61 67 65 0a  |he same storage.|
00004bb0  64 69 72 65 63 74 6f 72  79 20 61 73 20 73 70 65  |directory as spe|
00004bc0  63 69 66 69 65 64 20 69  6e 20 74 68 65 20 3c 4b  |cified in the <K|
00004bd0  42 44 3e 4d 6f 75 6e 74  3c 2f 4b 42 44 3e 20 63  |BD>Mount</KBD> c|
00004be0  6f 6d 6d 61 6e 64 29 2c  20 72 61 46 53 20 77 69  |ommand), raFS wi|
00004bf0  6c 6c 20 67 69 76 65 20  6e 6f 0a 65 72 72 6f 72  |ll give no.error|
00004c00  20 61 6e 64 20 77 69 6c  6c 20 69 67 6e 6f 72 65  | and will ignore|
00004c10  20 74 68 65 20 63 6f 6d  6d 61 6e 64 2e 0a 0a 3c  | the command...<|
00004c20  50 3e 72 61 46 53 20 61  75 74 6f 6d 61 74 69 63  |P>raFS automatic|
00004c30  61 6c 6c 79 20 64 65 63  69 64 65 73 20 77 68 65  |ally decides whe|
00004c40  74 68 65 72 20 6f 72 20  6e 6f 74 20 74 68 65 20  |ther or not the |
00004c50  64 69 73 63 20 69 73 20  72 65 61 64 2d 6f 6e 6c  |disc is read-onl|
00004c60  79 20 62 79 20 6c 6f 6f  6b 69 6e 67 0a 61 74 20  |y by looking.at |
00004c70  74 68 65 20 66 69 6c 65  20 3c 49 3e 21 41 74 74  |the file <I>!Att|
00004c80  65 72 65 72 2e 3c 2f 49  3e 20 49 66 20 74 68 69  |erer.</I> If thi|
00004c90  73 20 66 69 6c 65 20 64  6f 65 73 20 6e 6f 74 20  |s file does not |
00004ca0  68 61 76 65 20 77 72 69  74 65 20 61 63 63 65 73  |have write acces|
00004cb0  73 20 28 65 69 74 68 65  72 0a 62 65 63 61 75 73  |s (either.becaus|
00004cc0  65 20 69 74 20 72 65 73  69 64 65 73 20 6f 6e 20  |e it resides on |
00004cd0  61 20 72 65 61 64 2d 6f  6e 6c 79 20 66 69 6c 69  |a read-only fili|
00004ce0  6e 67 20 73 79 73 74 65  6d 20 6f 72 20 62 65 63  |ng system or bec|
00004cf0  61 75 73 65 20 79 6f 75  20 73 65 74 20 69 74 73  |ause you set its|
00004d00  0a 61 74 74 72 69 62 75  74 65 73 20 69 6e 20 6f  |.attributes in o|
00004d10  72 64 65 72 20 74 6f 20  70 65 72 6d 61 6e 65 6e  |rder to permanen|
00004d20  74 6c 79 20 22 77 72 69  74 65 20 70 72 6f 74 65  |tly "write prote|
00004d30  63 74 22 20 74 68 65 20  64 69 73 63 29 2c 20 61  |ct" the disc), a|
00004d40  6c 6c 20 61 74 74 65 6d  70 74 73 20 74 6f 0a 6d  |ll attempts to.m|
00004d50  6f 64 69 66 79 20 66 69  6c 65 73 20 6f 72 20 64  |odify files or d|
00004d60  69 72 65 63 74 6f 72 69  65 73 20 77 69 6c 6c 20  |irectories will |
00004d70  62 65 20 66 61 75 6c 74  65 64 2e 0a 0a 3c 50 3e  |be faulted...<P>|
00004d80  54 68 65 20 6f 70 74 69  6f 6e 61 6c 20 3c 4b 42  |The optional <KB|
00004d90  44 3e 2d 72 65 61 64 6f  6e 6c 79 3c 2f 4b 42 44  |D>-readonly</KBD|
00004da0  3e 20 73 77 69 74 63 68  20 28 73 68 6f 72 74 20  |> switch (short |
00004db0  3c 4b 42 44 3e 2d 72 6f  3c 2f 4b 42 44 3e 29 20  |<KBD>-ro</KBD>) |
00004dc0  77 72 69 74 65 0a 70 72  6f 74 65 63 74 73 20 74  |write.protects t|
00004dd0  68 65 20 64 69 73 63 20  65 76 65 6e 20 69 66 20  |he disc even if |
00004de0  3c 49 3e 21 41 74 74 65  72 65 72 3c 2f 49 3e 20  |<I>!Atterer</I> |
00004df0  68 61 73 20 77 72 69 74  65 20 61 63 63 65 73 73  |has write access|
00004e00  2e 0a 0a 3c 50 3e 41 6e  79 20 3c 4b 42 44 3e 2d  |...<P>Any <KBD>-|
00004e10  70 61 74 68 3c 2f 4b 42  44 3e 20 73 77 69 74 63  |path</KBD> switc|
00004e20  68 20 61 70 70 65 6e 64  65 64 20 74 6f 20 74 68  |h appended to th|
00004e30  65 20 63 6f 6d 6d 61 6e  64 20 77 69 6c 6c 20 6f  |e command will o|
00004e40  6e 6c 79 20 63 6f 6d 65  20 69 6e 74 6f 0a 65 66  |nly come into.ef|
00004e50  66 65 63 74 20 69 66 20  74 68 65 20 64 69 73 63  |fect if the disc|
00004e60  20 73 74 6f 72 65 64 20  69 6e 20 74 68 65 20 73  | stored in the s|
00004e70  70 65 63 69 66 69 65 64  20 64 69 72 65 63 74 6f  |pecified directo|
00004e80  72 79 20 68 61 73 20 74  68 65 20 73 61 6d 65 20  |ry has the same |
00004e90  6e 61 6d 65 20 61 73 20  6f 6e 65 0a 6f 66 20 74  |name as one.of t|
00004ea0  68 65 20 63 75 72 72 65  6e 74 6c 79 20 6d 6f 75  |he currently mou|
00004eb0  6e 74 65 64 20 64 69 73  63 73 2e 20 49 6e 20 74  |nted discs. In t|
00004ec0  68 69 73 20 63 61 73 65  2c 20 69 74 20 69 73 20  |his case, it is |
00004ed0  61 73 73 75 6d 65 64 20  74 68 61 74 20 74 68 65  |assumed that the|
00004ee0  20 6e 61 6d 65 20 6f 66  0a 74 68 61 74 20 64 69  | name of.that di|
00004ef0  73 63 27 73 20 73 74 6f  72 61 67 65 20 64 69 72  |sc's storage dir|
00004f00  65 63 74 6f 72 79 20 68  61 73 20 63 68 61 6e 67  |ectory has chang|
00004f10  65 64 20 28 65 2e 26 6e  62 73 70 3b 67 2e 20 62  |ed (e.&nbsp;g. b|
00004f20  65 63 61 75 73 65 20 79  6f 75 20 72 65 6e 61 6d  |ecause you renam|
00004f30  65 64 20 61 0a 64 69 72  65 63 74 6f 72 79 20 69  |ed a.directory i|
00004f40  6e 20 74 68 65 20 70 61  74 68 29 20 61 6e 64 20  |n the path) and |
00004f50  74 68 61 74 20 72 61 46  53 20 73 68 6f 75 6c 64  |that raFS should|
00004f60  20 75 70 64 61 74 65 20  69 74 73 20 77 6f 72 6b  | update its work|
00004f70  73 70 61 63 65 20 61 63  63 6f 72 64 69 6e 67 6c  |space accordingl|
00004f80  79 2e 0a 3c 45 4d 3e 55  73 65 20 74 68 69 73 20  |y..<EM>Use this |
00004f90  77 69 74 68 20 63 61 72  65 21 3c 2f 45 4d 3e 20  |with care!</EM> |
00004fa0  59 6f 75 20 6d 75 73 74  6e 27 74 20 75 73 65 20  |You mustn't use |
00004fb0  74 68 69 73 20 66 65 61  74 75 72 65 20 74 6f 20  |this feature to |
00004fc0  73 65 74 20 74 68 65 20  70 61 74 68 20 74 6f 0a  |set the path to.|
00004fd0  74 68 65 20 73 74 6f 72  61 67 65 20 64 69 72 65  |the storage dire|
00004fe0  63 74 6f 72 79 20 6f 66  20 61 20 64 69 66 66 65  |ctory of a diffe|
00004ff0  72 65 6e 74 20 64 69 73  63 21 0a 0a 3c 50 3e 57  |rent disc!..<P>W|
00005000  68 65 6e 20 6d 6f 75 6e  74 69 6e 67 20 64 69 73  |hen mounting dis|
00005010  63 73 20 77 69 74 68 6f  75 74 20 61 6e 20 3c 4b  |cs without an <K|
00005020  42 44 3e 2d 58 3c 2f 4b  42 44 3e 20 73 77 69 74  |BD>-X</KBD> swit|
00005030  63 68 20 61 70 70 65 6e  64 65 64 20 74 6f 20 74  |ch appended to t|
00005040  68 65 0a 3c 4b 42 44 3e  4d 6f 75 6e 74 3c 2f 4b  |he.<KBD>Mount</K|
00005050  42 44 3e 20 63 6f 6d 6d  61 6e 64 2c 20 72 61 46  |BD> command, raF|
00005060  53 20 6c 6f 6f 6b 73 20  66 6f 72 20 61 20 66 69  |S looks for a fi|
00005070  6c 65 20 63 61 6c 6c 65  64 20 3c 49 3e 21 4d 6f  |le called <I>!Mo|
00005080  75 6e 74 3c 2f 49 3e 20  69 6e 20 74 68 65 0a 73  |unt</I> in the.s|
00005090  74 6f 72 61 67 65 20 64  69 72 65 63 74 6f 72 79  |torage directory|
000050a0  2e 20 49 66 20 74 68 65  20 66 69 6c 65 20 69 73  |. If the file is|
000050b0  20 6e 6f 74 20 70 72 65  73 65 6e 74 2c 20 74 68  | not present, th|
000050c0  65 20 64 69 73 63 20 69  73 20 6a 75 73 74 20 6d  |e disc is just m|
000050d0  6f 75 6e 74 65 64 2c 20  62 75 74 0a 69 66 20 3c  |ounted, but.if <|
000050e0  49 3e 21 4d 6f 75 6e 74  3c 2f 49 3e 20 69 73 20  |I>!Mount</I> is |
000050f0  66 6f 75 6e 64 2c 20 69  74 20 69 73 20 3c 4b 42  |found, it is <KB|
00005100  44 3e 52 75 6e 3c 2f 4b  42 44 3e 2e 20 41 70 61  |D>Run</KBD>. Apa|
00005110  72 74 20 66 72 6f 6d 20  74 68 61 74 2c 20 6e 6f  |rt from that, no|
00005120  74 68 69 6e 67 0a 68 61  70 70 65 6e 73 3b 20 74  |thing.happens; t|
00005130  68 65 20 64 69 73 63 20  69 73 20 3c 45 4d 3e 6e  |he disc is <EM>n|
00005140  6f 74 3c 2f 45 4d 3e 20  6d 6f 75 6e 74 65 64 20  |ot</EM> mounted |
00005150  69 66 20 3c 49 3e 21 4d  6f 75 6e 74 3c 2f 49 3e  |if <I>!Mount</I>|
00005160  20 69 73 20 72 75 6e 2e  20 48 6f 77 65 76 65 72  | is run. However|
00005170  2c 0a 69 74 20 63 61 6e  20 62 65 20 61 6e 20 4f  |,.it can be an O|
00005180  62 65 79 20 66 69 6c 65  20 63 6f 6e 74 61 69 6e  |bey file contain|
00005190  69 6e 67 20 74 68 65 20  63 6f 6d 6d 61 6e 64 0a  |ing the command.|
000051a0  22 3c 4b 42 44 3e 72 61  46 53 3a 4d 6f 75 6e 74  |"<KBD>raFS:Mount|
000051b0  26 6e 62 73 70 3b 26 6c  74 3b 4f 62 65 79 24 44  |&nbsp;&lt;Obey$D|
000051c0  69 72 26 67 74 3b 26 6e  62 73 70 3b 2d 58 3c 2f  |ir&gt;&nbsp;-X</|
000051d0  4b 42 44 3e 22 2e 20 54  68 65 20 70 72 65 73 65  |KBD>". The prese|
000051e0  6e 63 65 20 6f 66 20 74  68 65 0a 3c 4b 42 44 3e  |nce of the.<KBD>|
000051f0  2d 58 3c 2f 4b 42 44 3e  20 73 77 69 74 63 68 20  |-X</KBD> switch |
00005200  69 6e 64 69 63 61 74 65  73 20 74 6f 20 72 61 46  |indicates to raF|
00005210  53 20 74 68 61 74 20 74  68 65 20 64 69 73 63 20  |S that the disc |
00005220  73 68 6f 75 6c 64 20 62  65 20 6d 6f 75 6e 74 65  |should be mounte|
00005230  64 0a 77 69 74 68 6f 75  74 20 73 65 61 72 63 68  |d.without search|
00005240  69 6e 67 20 66 6f 72 20  3c 49 3e 21 4d 6f 75 6e  |ing for <I>!Moun|
00005250  74 2e 3c 2f 49 3e 20 28  42 65 20 63 61 72 65 66  |t.</I> (Be caref|
00005260  75 6c 20 6e 6f 74 20 74  6f 20 63 72 65 61 74 65  |ul not to create|
00005270  20 61 20 6c 6f 6f 70 20  62 79 0a 66 6f 72 67 65  | a loop by.forge|
00005280  74 74 69 6e 67 20 74 6f  20 61 64 64 20 74 68 65  |tting to add the|
00005290  20 3c 4b 42 44 3e 2d 58  3c 2f 4b 42 44 3e 20 73  | <KBD>-X</KBD> s|
000052a0  77 69 74 63 68 21 29 20  57 69 74 68 20 74 68 69  |witch!) With thi|
000052b0  73 20 73 79 73 74 65 6d  2c 20 69 74 20 69 73 20  |s system, it is |
000052c0  70 6f 73 73 69 62 6c 65  0a 74 6f 20 65 78 65 63  |possible.to exec|
000052d0  75 74 65 20 2a 63 6f 6d  6d 61 6e 64 73 20 62 65  |ute *commands be|
000052e0  66 6f 72 65 20 61 6e 64  20 61 66 74 65 72 20 74  |fore and after t|
000052f0  68 65 20 64 69 73 63 20  69 73 20 6d 6f 75 6e 74  |he disc is mount|
00005300  65 64 2e 0a 0a 3c 44 54  3e 3c 4b 42 44 3e 3c 41  |ed...<DT><KBD><A|
00005310  20 4e 41 4d 45 3d 22 63  6c 69 5f 64 69 73 6d 6f  | NAME="cli_dismo|
00005320  75 6e 74 22 3e 44 69 73  6d 6f 75 6e 74 3c 2f 41  |unt">Dismount</A|
00005330  3e 3c 2f 4b 42 44 3e 20  3c 49 3e 5b 26 6c 74 3b  |></KBD> <I>[&lt;|
00005340  44 69 73 63 4e 61 6d 65  26 67 74 3b 5d 3c 2f 49  |DiscName&gt;]</I|
00005350  3e 0a 0a 3c 44 44 3e 54  68 69 73 20 63 6f 6d 6d  |>..<DD>This comm|
00005360  61 6e 64 20 64 6f 65 73  20 74 68 65 20 6f 70 70  |and does the opp|
00005370  6f 73 69 74 65 20 6f 66  20 3c 4b 42 44 3e 4d 6f  |osite of <KBD>Mo|
00005380  75 6e 74 3c 2f 4b 42 44  3e 2c 20 72 65 6d 6f 76  |unt</KBD>, remov|
00005390  69 6e 67 20 74 68 65 0a  73 70 65 63 69 66 69 65  |ing the.specifie|
000053a0  64 20 64 69 73 63 20 28  6f 72 20 61 6c 6c 20 6d  |d disc (or all m|
000053b0  6f 75 6e 74 65 64 20 64  69 73 63 73 20 69 66 20  |ounted discs if |
000053c0  79 6f 75 20 6f 6d 69 74  20 74 68 65 20 6e 61 6d  |you omit the nam|
000053d0  65 29 20 66 72 6f 6d 20  69 74 73 20 69 6e 74 65  |e) from its inte|
000053e0  72 6e 61 6c 0a 6c 69 73  74 20 61 6e 64 20 73 61  |rnal.list and sa|
000053f0  76 69 6e 67 20 61 6e 79  20 63 61 63 68 65 64 20  |ving any cached |
00005400  64 69 72 65 63 74 6f 72  79 20 64 61 74 61 2e 20  |directory data. |
00005410  44 69 73 63 73 20 6d 75  73 74 20 3c 45 4d 3e 61  |Discs must <EM>a|
00005420  6c 77 61 79 73 3c 2f 45  4d 3e 20 62 65 0a 64 69  |lways</EM> be.di|
00005430  73 6d 6f 75 6e 74 65 64  20 62 65 66 6f 72 65 20  |smounted before |
00005440  79 6f 75 20 72 65 73 65  74 20 6f 72 20 73 77 69  |you reset or swi|
00005450  74 63 68 20 6f 66 66 20  74 68 65 20 63 6f 6d 70  |tch off the comp|
00005460  75 74 65 72 2c 20 62 75  74 20 75 73 75 61 6c 6c  |uter, but usuall|
00005470  79 20 79 6f 75 20 64 6f  6e 27 74 0a 6e 65 65 64  |y you don't.need|
00005480  20 74 6f 20 75 73 65 20  3c 4b 42 44 3e 44 69 73  | to use <KBD>Dis|
00005490  6d 6f 75 6e 74 3c 2f 4b  42 44 3e 20 62 65 63 61  |mount</KBD> beca|
000054a0  75 73 65 20 72 61 46 53  20 69 73 20 61 75 74 6f  |use raFS is auto|
000054b0  6d 61 74 69 63 61 6c 6c  79 20 63 61 6c 6c 65 64  |matically called|
000054c0  20 77 68 65 6e 20 74 68  65 0a 64 65 73 6b 74 6f  | when the.deskto|
000054d0  70 20 73 68 75 74 73 20  64 6f 77 6e 20 61 6e 64  |p shuts down and|
000054e0  20 77 68 65 6e 20 79 6f  75 20 69 73 73 75 65 20  | when you issue |
000054f0  3c 4b 42 44 3e 53 68 75  74 64 6f 77 6e 2e 3c 2f  |<KBD>Shutdown.</|
00005500  4b 42 44 3e 0a 0a 3c 50  3e 4e 6f 74 65 20 74 68  |KBD>..<P>Note th|
00005510  61 74 20 69 6e 20 63 61  73 65 20 72 61 46 53 20  |at in case raFS |
00005520  69 73 20 3c 4b 42 44 3e  52 4d 4b 69 6c 6c 3c 2f  |is <KBD>RMKill</|
00005530  4b 42 44 3e 65 64 2c 20  69 74 20 77 69 6c 6c 20  |KBD>ed, it will |
00005540  74 72 79 20 74 6f 20 64  69 73 6d 6f 75 6e 74 20  |try to dismount |
00005550  61 6c 6c 0a 64 69 73 63  73 2e 20 48 6f 77 65 76  |all.discs. Howev|
00005560  65 72 2c 20 61 6e 79 20  65 72 72 6f 72 73 20 77  |er, any errors w|
00005570  68 69 6c 65 20 64 6f 69  6e 67 20 74 68 69 73 20  |hile doing this |
00005580  77 69 6c 6c 20 62 65 20  69 67 6e 6f 72 65 64 2c  |will be ignored,|
00005590  20 61 6e 64 20 74 68 65  20 6d 6f 64 75 6c 65 0a  | and the module.|
000055a0  77 69 6c 6c 20 3c 45 4d  3e 6e 6f 74 3c 2f 45 4d  |will <EM>not</EM|
000055b0  3e 20 72 65 66 75 73 65  20 74 6f 20 64 69 65 2c  |> refuse to die,|
000055c0  20 77 68 69 63 68 20 6d  65 61 6e 73 20 79 6f 75  | which means you|
000055d0  20 6c 6f 73 65 20 64 61  74 61 21 20 49 74 20 62  | lose data! It b|
000055e0  65 68 61 76 65 73 20 6c  69 6b 65 0a 74 68 69 73  |ehaves like.this|
000055f0  20 62 65 63 61 75 73 65  20 69 66 20 69 74 20 72  | because if it r|
00005600  65 66 75 73 65 64 20 74  6f 20 62 65 20 3c 4b 42  |efused to be <KB|
00005610  44 3e 52 4d 4b 69 6c 6c  3c 2f 4b 42 44 3e 65 64  |D>RMKill</KBD>ed|
00005620  2c 20 79 6f 75 20 77 6f  75 6c 64 20 6e 6f 74 20  |, you would not |
00005630  62 65 20 61 62 6c 65 0a  74 6f 20 72 65 6c 6f 61  |be able.to reloa|
00005640  64 20 69 74 20 75 6e 6c  65 73 73 20 79 6f 75 20  |d it unless you |
00005650  72 65 73 65 74 20 74 68  65 20 6d 61 63 68 69 6e  |reset the machin|
00005660  65 2e 0a 0a 3c 50 3e 42  65 66 6f 72 65 20 61 20  |e...<P>Before a |
00005670  64 69 73 63 20 69 73 20  64 69 73 6d 6f 75 6e 74  |disc is dismount|
00005680  65 64 2c 20 72 61 46 53  20 73 65 74 73 20 74 68  |ed, raFS sets th|
00005690  65 20 73 79 73 74 65 6d  20 76 61 72 69 61 62 6c  |e system variabl|
000056a0  65 20 72 61 46 53 24 44  44 69 73 63 20 74 6f 0a  |e raFS$DDisc to.|
000056b0  69 74 73 20 6e 61 6d 65  20 61 6e 64 20 74 72 69  |its name and tri|
000056c0  65 73 20 74 6f 20 72 75  6e 20 61 6e 79 20 66 69  |es to run any fi|
000056d0  6c 65 20 63 61 6c 6c 65  64 20 3c 49 3e 21 44 69  |le called <I>!Di|
000056e0  73 6d 6f 75 6e 74 3c 2f  49 3e 20 72 65 73 69 64  |smount</I> resid|
000056f0  69 6e 67 20 69 6e 20 74  68 65 0a 73 74 6f 72 61  |ing in the.stora|
00005700  67 65 20 64 69 72 65 63  74 6f 72 79 2e 20 49 66  |ge directory. If|
00005710  20 65 72 72 6f 72 73 20  6f 63 63 75 72 20 64 75  | errors occur du|
00005720  72 69 6e 67 20 69 74 73  20 65 78 65 63 75 74 69  |ring its executi|
00005730  6f 6e 2c 20 74 68 65 79  20 61 72 65 20 69 67 6e  |on, they are ign|
00005740  6f 72 65 64 3b 0a 74 68  65 20 64 69 73 63 20 69  |ored;.the disc i|
00005750  73 20 61 6c 77 61 79 73  20 64 69 73 6d 6f 75 6e  |s always dismoun|
00005760  74 65 64 2e 20 59 6f 75  20 6d 75 73 74 20 6e 6f  |ted. You must no|
00005770  74 20 64 69 73 6d 6f 75  6e 74 20 72 61 46 53 20  |t dismount raFS |
00005780  64 69 73 63 73 20 69 6e  20 61 0a 3c 49 3e 21 44  |discs in a.<I>!D|
00005790  69 73 6d 6f 75 6e 74 3c  2f 49 3e 20 66 69 6c 65  |ismount</I> file|
000057a0  2e 20 57 68 65 6e 20 74  68 65 20 6d 6f 64 75 6c  |. When the modul|
000057b0  65 20 69 73 20 3c 4b 42  44 3e 52 4d 4b 69 6c 6c  |e is <KBD>RMKill|
000057c0  3c 2f 4b 42 44 3e 65 64  2c 20 74 68 65 0a 3c 49  |</KBD>ed, the.<I|
000057d0  3e 21 44 69 73 6d 6f 75  6e 74 3c 2f 49 3e 20 66  |>!Dismount</I> f|
000057e0  69 6c 65 73 20 61 72 65  20 3c 45 4d 3e 6e 6f 74  |iles are <EM>not|
000057f0  3c 2f 45 4d 3e 20 65 78  65 63 75 74 65 64 2e 0a  |</EM> executed..|
00005800  0a 3c 44 54 3e 3c 4b 42  44 3e 3c 41 20 4e 41 4d  |.<DT><KBD><A NAM|
00005810  45 3d 22 63 6c 69 5f 6e  61 6d 65 22 3e 4e 61 6d  |E="cli_name">Nam|
00005820  65 44 69 73 63 3c 2f 41  3e 3c 2f 4b 42 44 3e 20  |eDisc</A></KBD> |
00005830  3c 49 3e 26 6c 74 3b 4f  6c 64 44 69 73 63 4e 61  |<I>&lt;OldDiscNa|
00005840  6d 65 26 67 74 3b 0a 26  6c 74 3b 4e 65 77 44 69  |me&gt;.&lt;NewDi|
00005850  73 63 4e 61 6d 65 26 67  74 3b 3c 2f 49 3e 0a 0a  |scName&gt;</I>..|
00005860  3c 44 44 3e 54 68 69 73  20 63 6f 6d 6d 61 6e 64  |<DD>This command|
00005870  20 28 6f 72 20 61 6c 73  6f 20 3c 4b 42 44 3e 4e  | (or also <KBD>N|
00005880  61 6d 65 44 69 73 6b 3c  2f 4b 42 44 3e 29 20 69  |ameDisk</KBD>) i|
00005890  73 20 75 73 65 64 20 74  6f 20 63 68 61 6e 67 65  |s used to change|
000058a0  20 74 68 65 20 6e 61 6d  65 20 6f 66 0a 61 20 64  | the name of.a d|
000058b0  69 73 63 2e 20 4f 62 76  69 6f 75 73 6c 79 2c 20  |isc. Obviously, |
000058c0  74 68 65 20 64 69 73 63  20 6d 75 73 74 20 68 61  |the disc must ha|
000058d0  76 65 20 62 65 65 6e 20  6d 6f 75 6e 74 65 64 20  |ve been mounted |
000058e0  66 6f 72 20 69 74 20 74  6f 20 77 6f 72 6b 2e 0a  |for it to work..|
000058f0  0a 3c 44 54 3e 3c 4b 42  44 3e 3c 41 20 4e 41 4d  |.<DT><KBD><A NAM|
00005900  45 3d 22 63 6c 69 5f 66  72 65 65 22 3e 46 72 65  |E="cli_free">Fre|
00005910  65 3c 2f 41 3e 3c 2f 4b  42 44 3e 0a 0a 3c 44 44  |e</A></KBD>..<DD|
00005920  3e 54 68 65 20 3c 4b 42  44 3e 46 72 65 65 3c 2f  |>The <KBD>Free</|
00005930  4b 42 44 3e 20 63 6f 6d  6d 61 6e 64 20 69 73 20  |KBD> command is |
00005940  6a 75 73 74 20 70 61 73  73 65 64 20 6f 6e 20 74  |just passed on t|
00005950  6f 20 74 68 65 20 68 6f  73 74 20 66 69 6c 69 6e  |o the host filin|
00005960  67 20 73 79 73 74 65 6d  0a 74 68 61 74 20 74 68  |g system.that th|
00005970  65 20 63 75 72 72 65 6e  74 6c 79 20 73 65 6c 65  |e currently sele|
00005980  63 74 65 64 20 72 61 46  53 20 64 69 72 65 63 74  |cted raFS direct|
00005990  6f 72 79 20 69 73 20 73  74 6f 72 65 64 20 6f 6e  |ory is stored on|
000059a0  2c 20 65 2e 26 6e 62 73  70 3b 67 2e 20 69 66 20  |, e.&nbsp;g. if |
000059b0  74 68 65 0a 64 69 73 63  20 69 73 20 6f 6e 20 41  |the.disc is on A|
000059c0  44 46 53 2c 20 3c 4b 42  44 3e 41 44 46 53 3a 46  |DFS, <KBD>ADFS:F|
000059d0  72 65 65 3c 2f 4b 42 44  3e 20 77 69 6c 6c 20 62  |ree</KBD> will b|
000059e0  65 20 65 78 65 63 75 74  65 64 2e 0a 0a 3c 44 54  |e executed...<DT|
000059f0  3e 3c 4b 42 44 3e 3c 41  20 4e 41 4d 45 3d 22 63  |><KBD><A NAME="c|
00005a00  6c 69 5f 75 6e 73 61 66  65 22 3e 72 61 46 53 5f  |li_unsafe">raFS_|
00005a10  55 6e 73 61 66 65 3c 2f  41 3e 3c 2f 4b 42 44 3e  |Unsafe</A></KBD>|
00005a20  0a 0a 3c 44 44 3e 42 79  20 64 65 66 61 75 6c 74  |..<DD>By default|
00005a30  2c 20 72 61 46 53 20 6f  6e 6c 79 20 73 61 76 65  |, raFS only save|
00005a40  73 20 63 68 61 6e 67 65  64 20 64 69 72 65 63 74  |s changed direct|
00005a50  6f 72 79 20 64 61 74 61  20 74 6f 20 74 68 65 20  |ory data to the |
00005a60  68 6f 73 74 20 66 69 6c  69 6e 67 0a 73 79 73 74  |host filing.syst|
00005a70  65 6d 20 61 66 74 65 72  20 61 20 64 65 6c 61 79  |em after a delay|
00005a80  2e 20 55 73 75 61 6c 6c  79 2c 20 74 68 69 73 20  |. Usually, this |
00005a90  69 73 20 64 65 73 69 72  61 62 6c 65 20 62 65 63  |is desirable bec|
00005aa0  61 75 73 65 20 69 74 20  69 73 20 66 61 73 74 65  |ause it is faste|
00005ab0  72 2c 20 62 75 74 0a 73  6f 6d 65 74 69 6d 65 73  |r, but.sometimes|
00005ac0  20 79 6f 75 20 6d 61 79  20 77 61 6e 74 20 74 6f  | you may want to|
00005ad0  20 74 65 6d 70 6f 72 61  72 69 6c 79 20 73 77 69  | temporarily swi|
00005ae0  74 63 68 20 6f 6e 20 77  72 69 74 65 2d 74 68 72  |tch on write-thr|
00005af0  6f 75 67 68 20 6f 66 20  74 68 65 20 63 61 63 68  |ough of the cach|
00005b00  65 2c 0a 73 6f 20 61 6e  79 20 63 68 61 6e 67 65  |e,.so any change|
00005b10  73 20 61 72 65 20 73 61  76 65 64 20 69 6d 6d 65  |s are saved imme|
00005b20  64 69 61 74 65 6c 79 2e  20 49 6e 73 74 65 61 64  |diately. Instead|
00005b30  20 6f 66 0a 3c 4b 42 44  3e 72 61 46 53 5f 4f 70  | of.<KBD>raFS_Op|
00005b40  74 26 6e 62 73 70 3b 2d  64 64 26 6e 62 73 70 3b  |t&nbsp;-dd&nbsp;|
00005b50  31 3c 2f 4b 42 44 3e 2c  20 79 6f 75 20 63 61 6e  |1</KBD>, you can|
00005b60  20 61 6c 73 6f 20 73 77  69 74 63 68 20 6f 6e 20  | also switch on |
00005b70  77 72 69 74 65 2d 74 68  72 6f 75 67 68 0a 77 69  |write-through.wi|
00005b80  74 68 20 74 68 69 73 20  63 6f 6d 6d 61 6e 64 2e  |th this command.|
00005b90  0a 0a 3c 44 54 3e 3c 4b  42 44 3e 3c 41 20 4e 41  |..<DT><KBD><A NA|
00005ba0  4d 45 3d 22 63 6c 69 5f  73 61 66 65 22 3e 72 61  |ME="cli_safe">ra|
00005bb0  46 53 5f 53 61 66 65 3c  2f 41 3e 3c 2f 4b 42 44  |FS_Safe</A></KBD|
00005bc0  3e 0a 3c 49 3e 5b 3c 2f  49 3e 3c 4b 42 44 3e 2d  |>.<I>[</I><KBD>-|
00005bd0  73 6d 61 73 68 3c 2f 4b  42 44 3e 3c 49 3e 5d 3c  |smash</KBD><I>]<|
00005be0  2f 49 3e 0a 0a 3c 44 44  3e 54 68 69 73 20 64 6f  |/I>..<DD>This do|
00005bf0  65 73 20 74 68 65 20 6f  70 70 6f 73 69 74 65 20  |es the opposite |
00005c00  6f 66 20 3c 4b 42 44 3e  72 61 46 53 5f 55 6e 73  |of <KBD>raFS_Uns|
00005c10  61 66 65 3c 2f 4b 42 44  3e 2c 20 72 65 2d 65 6e  |afe</KBD>, re-en|
00005c20  61 62 6c 69 6e 67 20 74  68 65 20 63 68 6f 73 65  |abling the chose|
00005c30  6e 0a 64 65 6c 61 79 20  76 61 6c 75 65 73 20 66  |n.delay values f|
00005c40  6f 72 20 73 61 76 69 6e  67 20 64 69 72 65 63 74  |or saving direct|
00005c50  6f 72 79 20 63 61 63 68  65 20 63 6f 6e 74 65 6e  |ory cache conten|
00005c60  74 73 2e 20 4e 6f 74 65  20 74 68 61 74 20 61 6e  |ts. Note that an|
00005c70  20 69 6e 74 65 72 6e 61  6c 0a 63 6f 75 6e 74 65  | internal.counte|
00005c80  72 20 69 73 20 6b 65 70  74 2c 20 77 68 69 63 68  |r is kept, which|
00005c90  20 6d 65 61 6e 73 20 74  68 61 74 20 69 6e 20 6f  | means that in o|
00005ca0  72 64 65 72 20 74 6f 20  64 69 73 61 62 6c 65 20  |rder to disable |
00005cb0  77 72 69 74 65 2d 74 68  72 6f 75 67 68 20 61 66  |write-through af|
00005cc0  74 65 72 0a 69 73 73 75  69 6e 67 20 3c 4b 42 44  |ter.issuing <KBD|
00005cd0  3e 72 61 46 53 5f 55 6e  73 61 66 65 3c 2f 4b 42  |>raFS_Unsafe</KB|
00005ce0  44 3e 20 74 77 69 63 65  2c 20 79 6f 75 20 77 6f  |D> twice, you wo|
00005cf0  75 6c 64 20 61 6c 73 6f  20 68 61 76 65 20 74 6f  |uld also have to|
00005d00  20 65 78 65 63 75 74 65  0a 3c 4b 42 44 3e 72 61  | execute.<KBD>ra|
00005d10  46 53 5f 53 61 66 65 3c  2f 4b 42 44 3e 20 74 77  |FS_Safe</KBD> tw|
00005d20  69 63 65 2e 20 28 41 66  74 65 72 20 74 68 61 74  |ice. (After that|
00005d30  2c 20 61 6e 79 20 61 64  64 69 74 69 6f 6e 61 6c  |, any additional|
00005d40  20 3c 4b 42 44 3e 72 61  46 53 5f 53 61 66 65 3c  | <KBD>raFS_Safe<|
00005d50  2f 4b 42 44 3e 0a 77 69  6c 6c 20 68 61 76 65 20  |/KBD>.will have |
00005d60  6e 6f 20 65 66 66 65 63  74 2e 29 20 49 66 20 74  |no effect.) If t|
00005d70  68 65 20 6e 75 6d 62 65  72 20 6f 66 20 3c 4b 42  |he number of <KB|
00005d80  44 3e 72 61 46 53 5f 55  6e 73 61 66 65 3c 2f 4b  |D>raFS_Unsafe</K|
00005d90  42 44 3e 20 63 6f 6d 6d  61 6e 64 73 20 69 73 0a  |BD> commands is.|
00005da0  75 6e 6b 6e 6f 77 6e 2c  20 79 6f 75 20 63 61 6e  |unknown, you can|
00005db0  20 75 73 65 20 3c 4b 42  44 3e 72 61 46 53 5f 53  | use <KBD>raFS_S|
00005dc0  61 66 65 26 6e 62 73 70  3b 2d 73 6d 61 73 68 3c  |afe&nbsp;-smash<|
00005dd0  2f 4b 42 44 3e 20 74 6f  20 64 69 73 61 62 6c 65  |/KBD> to disable|
00005de0  0a 77 72 69 74 65 2d 74  68 72 6f 75 67 68 20 69  |.write-through i|
00005df0  6d 6d 65 64 69 61 74 65  6c 79 2e 0a 0a 3c 50 3e  |mmediately...<P>|
00005e00  3c 4b 42 44 3e 72 61 46  53 5f 55 6e 73 61 66 65  |<KBD>raFS_Unsafe|
00005e10  3c 2f 4b 42 44 3e 20 61  6e 64 20 3c 4b 42 44 3e  |</KBD> and <KBD>|
00005e20  72 61 46 53 5f 53 61 66  65 3c 2f 4b 42 44 3e 20  |raFS_Safe</KBD> |
00005e30  63 61 6e 20 62 65 20 61  64 64 65 64 20 74 6f 20  |can be added to |
00005e40  61 20 57 69 6d 70 0a 61  70 70 6c 69 63 61 74 69  |a Wimp.applicati|
00005e50  6f 6e 27 73 20 21 52 75  6e 20 66 69 6c 65 20 69  |on's !Run file i|
00005e60  66 20 74 68 65 20 61 70  70 6c 69 63 61 74 69 6f  |f the applicatio|
00005e70  6e 20 74 65 6e 64 73 20  74 6f 20 63 72 61 73 68  |n tends to crash|
00005e80  20 74 68 65 20 63 6f 6d  70 75 74 65 72 2c 20 69  | the computer, i|
00005e90  6e 0a 73 75 63 68 20 61  20 77 61 79 20 74 68 61  |n.such a way tha|
00005ea0  74 20 77 72 69 74 65 2d  74 68 72 6f 75 67 68 20  |t write-through |
00005eb0  69 73 20 64 69 73 61 62  6c 65 64 20 6f 6e 63 65  |is disabled once|
00005ec0  20 74 68 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  | the application|
00005ed0  20 69 73 20 71 75 69 74  3a 0a 0a 3c 50 3e 3c 49  | is quit:..<P><I|
00005ee0  3e 6f 74 68 65 72 20 63  6f 6d 6d 61 6e 64 73 2c  |>other commands,|
00005ef0  20 65 2e 26 6e 62 73 70  3b 67 2e 20 57 69 6d 70  | e.&nbsp;g. Wimp|
00005f00  53 6c 6f 74 2c 20 49 63  6f 6e 53 70 72 69 74 65  |Slot, IconSprite|
00005f10  73 20 65 74 63 2e 3c 2f  49 3e 0a 3c 42 52 3e 3c  |s etc.</I>.<BR><|
00005f20  43 4f 44 45 3e 72 61 46  53 5f 55 6e 73 61 66 65  |CODE>raFS_Unsafe|
00005f30  3c 2f 43 4f 44 45 3e 0a  3c 42 52 3e 3c 43 4f 44  |</CODE>.<BR><COD|
00005f40  45 3e 52 75 6e 20 26 6c  74 3b 3c 2f 43 4f 44 45  |E>Run &lt;</CODE|
00005f50  3e 3c 49 3e 41 70 70 3c  2f 49 3e 3c 43 4f 44 45  |><I>App</I><CODE|
00005f60  3e 24 44 69 72 26 67 74  3b 2e 21 52 75 6e 49 6d  |>$Dir&gt;.!RunIm|
00005f70  61 67 65 20 25 2a 30 3c  2f 43 4f 44 45 3e 0a 3c  |age %*0</CODE>.<|
00005f80  42 52 3e 3c 43 4f 44 45  3e 72 61 46 53 5f 53 61  |BR><CODE>raFS_Sa|
00005f90  66 65 3c 2f 43 4f 44 45  3e 0a 0a 3c 44 54 3e 3c  |fe</CODE>..<DT><|
00005fa0  4b 42 44 3e 3c 41 20 4e  41 4d 45 3d 22 63 6c 69  |KBD><A NAME="cli|
00005fb0  5f 6f 70 74 22 3e 72 61  46 53 5f 4f 70 74 3c 2f  |_opt">raFS_Opt</|
00005fc0  41 3e 3c 2f 4b 42 44 3e  20 3c 49 3e 5b 3c 2f 49  |A></KBD> <I>[</I|
00005fd0  3e 3c 4b 42 44 3e 2d 44  69 72 43 61 63 68 65 3c  |><KBD>-DirCache<|
00005fe0  2f 4b 42 44 3e 0a 3c 49  3e 26 6c 74 3b 6b 42 26  |/KBD>.<I>&lt;kB&|
00005ff0  67 74 3b 5d 3c 2f 49 3e  20 3c 49 3e 5b 3c 2f 49  |gt;]</I> <I>[</I|
00006000  3e 3c 4b 42 44 3e 2d 44  69 72 73 61 76 65 44 65  |><KBD>-DirsaveDe|
00006010  6c 61 79 3c 2f 4b 42 44  3e 20 3c 49 3e 26 6c 74  |lay</KBD> <I>&lt|
00006020  3b 63 73 26 67 74 3b 5d  3c 2f 49 3e 0a 3c 49 3e  |;cs&gt;]</I>.<I>|
00006030  5b 3c 2f 49 3e 3c 4b 42  44 3e 2d 44 69 72 73 61  |[</I><KBD>-Dirsa|
00006040  76 65 4d 6f 64 73 3c 2f  4b 42 44 3e 20 3c 49 3e  |veMods</KBD> <I>|
00006050  26 6c 74 3b 6e 72 26 67  74 3b 5d 3c 2f 49 3e 20  |&lt;nr&gt;]</I> |
00006060  3c 49 3e 5b 3c 2f 49 3e  3c 4b 42 44 3e 2d 44 69  |<I>[</I><KBD>-Di|
00006070  72 55 70 63 61 6c 6c 0a  30 7c 31 3c 2f 4b 42 44  |rUpcall.0|1</KBD|
00006080  3e 3c 49 3e 5d 20 5b 3c  2f 49 3e 3c 4b 42 44 3e  |><I>] [</I><KBD>|
00006090  2d 4c 6f 61 64 4d 65 73  73 61 67 65 73 3c 2f 4b  |-LoadMessages</K|
000060a0  42 44 3e 20 3c 49 3e 26  6c 74 3b 6e 61 6d 65 26  |BD> <I>&lt;name&|
000060b0  67 74 3b 5d 3c 2f 49 3e  0a 0a 3c 44 44 3e 54 68  |gt;]</I>..<DD>Th|
000060c0  69 73 20 63 6f 6d 6d 61  6e 64 20 69 73 20 75 73  |is command is us|
000060d0  65 64 20 74 6f 20 69 6e  66 6c 75 65 6e 63 65 20  |ed to influence |
000060e0  76 61 72 69 6f 75 73 20  6d 69 73 63 65 6c 6c 61  |various miscella|
000060f0  6e 65 6f 75 73 20 61 73  70 65 63 74 73 20 6f 66  |neous aspects of|
00006100  20 72 61 46 53 27 0a 62  65 68 61 76 69 6f 75 72  | raFS'.behaviour|
00006110  2c 20 6f 72 20 74 6f 20  6f 75 74 70 75 74 20 74  |, or to output t|
00006120  68 65 20 63 75 72 72 65  6e 74 20 73 65 74 74 69  |he current setti|
00006130  6e 67 73 20 69 66 20 6e  6f 20 70 61 72 61 6d 65  |ngs if no parame|
00006140  74 65 72 73 20 61 72 65  20 67 69 76 65 6e 2e 20  |ters are given. |
00006150  45 61 63 68 0a 6f 66 20  74 68 65 20 6f 70 74 69  |Each.of the opti|
00006160  6f 6e 61 6c 20 6b 65 79  77 6f 72 64 73 20 69 73  |onal keywords is|
00006170  20 66 6f 6c 6c 6f 77 65  64 20 62 79 20 61 20 76  | followed by a v|
00006180  61 6c 75 65 2c 20 69 6e  20 73 6f 6d 65 20 63 61  |alue, in some ca|
00006190  73 65 73 20 6a 75 73 74  0a 3c 4b 42 44 3e 30 3c  |ses just.<KBD>0<|
000061a0  2f 4b 42 44 3e 20 6f 72  20 3c 4b 42 44 3e 31 3c  |/KBD> or <KBD>1<|
000061b0  2f 4b 42 44 3e 20 74 6f  20 73 77 69 74 63 68 20  |/KBD> to switch |
000061c0  6f 6e 20 61 6e 64 20 6f  66 66 2e 20 54 68 65 20  |on and off. The |
000061d0  6b 65 79 77 6f 72 64 73  20 63 61 6e 20 62 65 0a  |keywords can be.|
000061e0  61 62 62 72 65 76 69 61  74 65 64 20 74 6f 20 74  |abbreviated to t|
000061f0  68 65 20 63 68 61 72 61  63 74 65 72 73 20 77 72  |he characters wr|
00006200  69 74 74 65 6e 20 69 6e  20 75 70 70 65 72 63 61  |itten in upperca|
00006210  73 65 2c 20 65 2e 26 6e  62 73 70 3b 67 2e 20 3c  |se, e.&nbsp;g. <|
00006220  4b 42 44 3e 2d 64 63 3c  2f 4b 42 44 3e 0a 69 6e  |KBD>-dc</KBD>.in|
00006230  73 74 65 61 64 20 6f 66  20 3c 4b 42 44 3e 2d 44  |stead of <KBD>-D|
00006240  69 72 43 61 63 68 65 2e  3c 2f 4b 42 44 3e 20 48  |irCache.</KBD> H|
00006250  6f 77 65 76 65 72 2c 20  63 61 73 65 20 64 6f 65  |owever, case doe|
00006260  73 6e 27 74 20 6d 61 74  74 65 72 20 6f 6e 20 74  |sn't matter on t|
00006270  68 65 20 63 6f 6d 6d 61  6e 64 0a 6c 69 6e 65 3b  |he command.line;|
00006280  20 3c 4b 42 44 3e 2d 64  69 72 63 61 63 68 65 3c  | <KBD>-dircache<|
00006290  2f 4b 42 44 3e 20 6f 72  20 3c 4b 42 44 3e 2d 64  |/KBD> or <KBD>-d|
000062a0  43 3c 2f 4b 42 44 3e 20  61 72 65 20 74 68 65 20  |C</KBD> are the |
000062b0  73 61 6d 65 20 61 73 0a  3c 4b 42 44 3e 2d 44 69  |same as.<KBD>-Di|
000062c0  72 43 61 63 68 65 2e 3c  2f 4b 42 44 3e 0a 0a 3c  |rCache.</KBD>..<|
000062d0  50 3e 43 75 72 72 65 6e  74 6c 79 2c 20 74 68 65  |P>Currently, the|
000062e0  20 66 6f 6c 6c 6f 77 69  6e 67 20 6b 65 79 77 6f  | following keywo|
000062f0  72 64 73 20 68 61 76 65  20 61 6e 20 65 66 66 65  |rds have an effe|
00006300  63 74 3a 0a 0a 3c 55 4c  3e 0a 0a 3c 4c 49 3e 3c  |ct:..<UL>..<LI><|
00006310  41 20 4e 41 4d 45 3d 22  63 6c 69 5f 6f 70 74 64  |A NAME="cli_optd|
00006320  63 22 3e 3c 4b 42 44 3e  2d 44 69 72 43 61 63 68  |c"><KBD>-DirCach|
00006330  65 3c 2f 4b 42 44 3e 3c  2f 41 3e 20 3c 49 3e 26  |e</KBD></A> <I>&|
00006340  6c 74 3b 6b 42 79 74 65  73 26 67 74 3b 3c 2f 49  |lt;kBytes&gt;</I|
00006350  3e 0a 73 65 6c 65 63 74  73 20 74 68 65 20 61 6d  |>.selects the am|
00006360  6f 75 6e 74 20 6f 66 20  6d 65 6d 6f 72 79 20 74  |ount of memory t|
00006370  68 61 74 20 77 69 6c 6c  20 62 65 20 75 73 65 64  |hat will be used|
00006380  20 66 6f 72 20 63 61 63  68 65 69 6e 67 20 64 69  | for cacheing di|
00006390  72 65 63 74 6f 72 79 0a  69 6e 66 6f 72 6d 61 74  |rectory.informat|
000063a0  69 6f 6e 2e 20 54 68 65  72 65 20 69 73 20 6f 6e  |ion. There is on|
000063b0  65 20 64 69 72 65 63 74  6f 72 79 20 63 61 63 68  |e directory cach|
000063c0  65 20 66 6f 72 20 61 6c  6c 20 64 69 73 63 73 2e  |e for all discs.|
000063d0  20 59 6f 75 20 63 61 6e  20 73 77 69 74 63 68 0a  | You can switch.|
000063e0  64 69 72 65 63 74 6f 72  79 20 63 61 63 68 65 69  |directory cachei|
000063f0  6e 67 20 6f 66 66 20 63  6f 6d 70 6c 65 74 65 6c  |ng off completel|
00006400  79 20 62 79 20 73 70 65  63 69 66 79 69 6e 67 20  |y by specifying |
00006410  3c 4b 42 44 3e 2d 44 69  72 43 61 63 68 65 26 6e  |<KBD>-DirCache&n|
00006420  62 73 70 3b 30 3c 2f 4b  42 44 3e 2c 0a 62 75 74  |bsp;0</KBD>,.but|
00006430  20 74 68 69 73 20 6d 61  6b 65 73 20 72 61 46 53  | this makes raFS|
00006440  20 3c 45 4d 3e 76 65 72  79 3c 2f 45 4d 3e 20 73  | <EM>very</EM> s|
00006450  6c 6f 77 2e 20 54 68 65  20 72 65 63 6f 6d 6d 65  |low. The recomme|
00006460  6e 64 65 64 20 6d 69 6e  69 6d 75 6d 20 66 6f 72  |nded minimum for|
00006470  20 74 68 65 20 63 61 63  68 65 0a 73 69 7a 65 20  | the cache.size |
00006480  69 73 20 31 36 6b 20 2d  20 77 68 65 6e 20 74 68  |is 16k - when th|
00006490  65 20 66 69 6c 69 6e 67  20 73 79 73 74 65 6d 20  |e filing system |
000064a0  6d 6f 64 75 6c 65 20 69  73 20 6c 6f 61 64 65 64  |module is loaded|
000064b0  2c 20 74 68 65 20 76 61  6c 75 65 20 64 65 66 61  |, the value defa|
000064c0  75 6c 74 73 20 74 6f 0a  33 30 6b 2e 0a 0a 3c 4c  |ults to.30k...<L|
000064d0  49 3e 3c 41 20 4e 41 4d  45 3d 22 63 6c 69 5f 6f  |I><A NAME="cli_o|
000064e0  70 74 64 64 22 3e 3c 4b  42 44 3e 2d 44 69 72 73  |ptdd"><KBD>-Dirs|
000064f0  61 76 65 44 65 6c 61 79  3c 2f 4b 42 44 3e 3c 2f  |aveDelay</KBD></|
00006500  41 3e 0a 3c 49 3e 26 6c  74 3b 63 65 6e 74 69 73  |A>.<I>&lt;centis|
00006510  65 63 6f 6e 64 73 26 67  74 3b 3c 2f 49 3e 20 73  |econds&gt;</I> s|
00006520  65 74 73 20 74 68 65 20  64 65 6c 61 79 20 62 65  |ets the delay be|
00006530  74 77 65 65 6e 20 74 68  65 20 6c 61 73 74 20 63  |tween the last c|
00006540  68 61 6e 67 65 20 74 6f  20 61 0a 64 69 72 65 63  |hange to a.direc|
00006550  74 6f 72 79 20 61 6e 64  20 74 68 65 20 6d 6f 6d  |tory and the mom|
00006560  65 6e 74 20 69 74 20 69  73 20 73 61 76 65 64 20  |ent it is saved |
00006570  74 6f 20 74 68 65 20 68  6f 73 74 20 66 69 6c 69  |to the host fili|
00006580  6e 67 20 73 79 73 74 65  6d 2e 20 53 75 70 70 6c  |ng system. Suppl|
00006590  79 69 6e 67 20 61 0a 76  61 6c 75 65 20 6f 66 20  |ying a.value of |
000065a0  3c 4b 42 44 3e 30 3c 2f  4b 42 44 3e 20 63 61 75  |<KBD>0</KBD> cau|
000065b0  73 65 73 20 6e 6f 20 61  75 74 6f 6d 61 74 69 63  |ses no automatic|
000065c0  20 73 61 76 69 6e 67 20  77 68 65 72 65 61 73 20  | saving whereas |
000065d0  61 20 76 61 6c 75 65 20  6f 66 0a 3c 4b 42 44 3e  |a value of.<KBD>|
000065e0  31 3c 2f 4b 42 44 3e 20  6d 61 6b 65 73 20 72 61  |1</KBD> makes ra|
000065f0  46 53 20 73 61 76 65 20  69 6d 6d 65 64 69 61 74  |FS save immediat|
00006600  65 6c 79 20 61 66 74 65  72 20 65 61 63 68 20 63  |ely after each c|
00006610  68 61 6e 67 65 2e 20 54  68 65 20 64 65 66 61 75  |hange. The defau|
00006620  6c 74 20 76 61 6c 75 65  0a 69 73 20 35 30 30 20  |lt value.is 500 |
00006630  2d 20 66 69 76 65 20 73  65 63 6f 6e 64 73 2e 0a  |- five seconds..|
00006640  0a 3c 50 3e 49 66 20 62  6f 74 68 20 74 68 69 73  |.<P>If both this|
00006650  20 61 6e 64 20 3c 4b 42  44 3e 2d 44 69 72 73 61  | and <KBD>-Dirsa|
00006660  76 65 4d 6f 64 73 3c 2f  4b 42 44 3e 20 62 65 6c  |veMods</KBD> bel|
00006670  6f 77 20 61 72 65 20 65  6e 61 62 6c 65 64 20 61  |ow are enabled a|
00006680  74 20 74 68 65 20 73 61  6d 65 0a 74 69 6d 65 2c  |t the same.time,|
00006690  20 74 68 65 20 64 69 72  65 63 74 6f 72 79 20 77  | the directory w|
000066a0  69 6c 6c 20 62 65 20 73  61 76 65 64 20 77 68 65  |ill be saved whe|
000066b0  6e 20 74 68 65 20 64 65  6c 61 79 20 6f 72 20 74  |n the delay or t|
000066c0  68 65 20 6e 75 6d 62 65  72 20 6f 66 20 63 68 61  |he number of cha|
000066d0  6e 67 65 73 20 69 73 0a  72 65 61 63 68 65 64 2c  |nges is.reached,|
000066e0  20 77 68 69 63 68 65 76  65 72 20 63 6f 6d 65 73  | whichever comes|
000066f0  20 66 69 72 73 74 2e 0a  0a 3c 4c 49 3e 3c 41 20  | first...<LI><A |
00006700  4e 41 4d 45 3d 22 63 6c  69 5f 6f 70 74 64 6d 22  |NAME="cli_optdm"|
00006710  3e 3c 4b 42 44 3e 2d 44  69 72 73 61 76 65 4d 6f  |><KBD>-DirsaveMo|
00006720  64 73 3c 2f 4b 42 44 3e  3c 2f 41 3e 20 3c 49 3e  |ds</KBD></A> <I>|
00006730  26 6c 74 3b 6e 75 6d 62  65 72 26 67 74 3b 3c 2f  |&lt;number&gt;</|
00006740  49 3e 0a 61 6c 6c 6f 77  73 20 79 6f 75 20 74 6f  |I>.allows you to|
00006750  20 73 70 65 63 69 66 79  20 74 68 65 20 6e 75 6d  | specify the num|
00006760  62 65 72 20 6f 66 20 63  68 61 6e 67 65 73 20 61  |ber of changes a|
00006770  6c 6c 6f 77 65 64 20 74  6f 20 62 65 20 6d 61 64  |llowed to be mad|
00006780  65 20 74 6f 20 61 20 62  75 66 66 65 72 65 64 0a  |e to a buffered.|
00006790  64 69 72 65 63 74 6f 72  79 20 62 65 66 6f 72 65  |directory before|
000067a0  20 69 74 20 6d 75 73 74  20 62 65 20 73 61 76 65  | it must be save|
000067b0  64 20 74 6f 20 74 68 65  20 68 6f 73 74 20 66 69  |d to the host fi|
000067c0  6c 69 6e 67 20 73 79 73  74 65 6d 2e 20 46 6f 72  |ling system. For|
000067d0  20 69 6e 73 74 61 6e 63  65 2c 20 69 66 0a 79 6f  | instance, if.yo|
000067e0  75 20 77 61 6e 74 20 74  6f 20 68 61 76 65 20 74  |u want to have t|
000067f0  68 65 20 64 69 72 65 63  74 6f 72 79 20 73 61 76  |he directory sav|
00006800  65 64 20 61 66 74 65 72  20 65 76 65 72 79 20 35  |ed after every 5|
00006810  20 66 69 6c 65 73 0a 77  72 69 74 74 65 6e 2f 64  | files.written/d|
00006820  65 6c 65 74 65 64 2f 72  65 6e 61 6d 65 64 2c 20  |eleted/renamed, |
00006830  75 73 65 20 3c 4b 42 44  3e 2d 44 69 72 73 61 76  |use <KBD>-Dirsav|
00006840  65 4d 6f 64 73 26 6e 62  73 70 3b 35 3c 2f 4b 42  |eMods&nbsp;5</KB|
00006850  44 3e 2e 20 41 67 61 69  6e 2c 20 73 75 70 70 6c  |D>. Again, suppl|
00006860  79 69 6e 67 0a 61 20 76  61 6c 75 65 20 6f 66 20  |ying.a value of |
00006870  3c 4b 42 44 3e 30 3c 2f  4b 42 44 3e 20 73 77 69  |<KBD>0</KBD> swi|
00006880  74 63 68 65 73 20 74 68  65 20 63 6f 75 6e 74 69  |tches the counti|
00006890  6e 67 20 6f 66 66 20 61  6e 64 20 61 20 76 61 6c  |ng off and a val|
000068a0  75 65 20 6f 66 20 3c 4b  42 44 3e 31 3c 2f 4b 42  |ue of <KBD>1</KB|
000068b0  44 3e 0a 66 6f 72 63 65  73 20 69 6d 6d 65 64 69  |D>.forces immedi|
000068c0  61 74 65 20 77 72 69 74  65 2d 74 68 72 6f 75 67  |ate write-throug|
000068d0  68 2e 20 54 68 65 20 6d  61 78 69 6d 75 6d 20 66  |h. The maximum f|
000068e0  6f 72 20 74 68 69 73 20  76 61 6c 75 65 20 69 73  |or this value is|
000068f0  20 32 35 35 2c 20 74 68  65 0a 64 65 66 61 75 6c  | 255, the.defaul|
00006900  74 20 69 73 20 31 30 2e  0a 0a 3c 50 3e 57 68 65  |t is 10...<P>Whe|
00006910  6e 20 74 68 65 20 6e 75  6d 62 65 72 20 6f 66 20  |n the number of |
00006920  63 68 61 6e 67 65 73 20  69 73 20 63 6f 75 6e 74  |changes is count|
00006930  65 64 2c 20 73 74 61 6d  70 69 6e 67 20 6f 66 20  |ed, stamping of |
00006940  66 69 6c 65 73 2c 20 63  68 61 6e 67 69 6e 67 20  |files, changing |
00006950  74 68 65 69 72 0a 61 63  63 65 73 73 20 64 65 74  |their.access det|
00006960  61 69 6c 73 20 6f 72 20  63 6c 6f 73 69 6e 67 20  |ails or closing |
00006970  6f 70 65 6e 20 66 69 6c  65 73 20 69 73 20 6e 6f  |open files is no|
00006980  74 20 74 61 6b 65 6e 20  69 6e 74 6f 20 61 63 63  |t taken into acc|
00006990  6f 75 6e 74 2e 20 54 68  69 73 20 69 73 0a 6e 65  |ount. This is.ne|
000069a0  63 65 73 73 61 72 79 20  74 6f 20 65 6e 73 75 72  |cessary to ensur|
000069b0  65 20 61 20 46 69 6c 65  72 20 63 6f 70 79 20 6f  |e a Filer copy o|
000069c0  70 65 72 61 74 69 6f 6e  20 6f 6e 6c 79 20 69 6e  |peration only in|
000069d0  63 72 65 61 73 65 73 20  74 68 65 20 63 6f 75 6e  |creases the coun|
000069e0  74 20 62 79 20 31 2e 0a  0a 3c 4c 49 3e 3c 41 20  |t by 1...<LI><A |
000069f0  4e 41 4d 45 3d 22 63 6c  69 5f 6f 70 74 64 75 22  |NAME="cli_optdu"|
00006a00  3e 3c 4b 42 44 3e 2d 44  69 72 55 70 63 61 6c 6c  |><KBD>-DirUpcall|
00006a10  3c 2f 4b 42 44 3e 3c 2f  41 3e 20 66 6f 6c 6c 6f  |</KBD></A> follo|
00006a20  77 65 64 20 62 79 20 3c  4b 42 44 3e 30 3c 2f 4b  |wed by <KBD>0</K|
00006a30  42 44 3e 20 6f 72 0a 3c  4b 42 44 3e 31 3c 2f 4b  |BD> or.<KBD>1</K|
00006a40  42 44 3e 20 64 69 73 61  62 6c 65 73 20 6f 72 20  |BD> disables or |
00006a50  65 6e 61 62 6c 65 73 20  77 68 65 74 68 65 72 20  |enables whether |
00006a60  72 61 46 53 20 77 69 6c  6c 20 63 61 75 73 65 20  |raFS will cause |
00006a70  64 69 72 65 63 74 6f 72  79 20 64 69 73 70 6c 61  |directory displa|
00006a80  79 73 0a 74 6f 20 62 65  20 75 70 64 61 74 65 64  |ys.to be updated|
00006a90  20 69 6d 6d 65 64 69 61  74 65 6c 79 20 77 68 65  | immediately whe|
00006aa0  6e 20 74 68 65 20 73 69  7a 65 20 6f 66 20 61 20  |n the size of a |
00006ab0  64 69 72 65 63 74 6f 72  79 20 63 68 61 6e 67 65  |directory change|
00006ac0  73 2e 20 28 55 6e 6c 69  6b 65 20 77 69 74 68 0a  |s. (Unlike with.|
00006ad0  6f 74 68 65 72 20 66 69  6c 69 6e 67 20 73 79 73  |other filing sys|
00006ae0  74 65 6d 73 2c 20 74 68  65 20 64 69 72 65 63 74  |tems, the direct|
00006af0  6f 72 79 20 73 69 7a 65  20 69 73 20 6e 6f 74 20  |ory size is not |
00006b00  66 69 78 65 64 20 61 6e  64 20 77 68 65 6e 20 69  |fixed and when i|
00006b10  74 20 63 68 61 6e 67 65  73 2c 0a 74 68 69 73 20  |t changes,.this |
00006b20  77 69 6c 6c 20 62 65 20  72 65 66 6c 65 63 74 65  |will be reflecte|
00006b30  64 2e 29 20 42 79 20 64  65 66 61 75 6c 74 2c 20  |d.) By default, |
00006b40  74 68 69 73 20 69 73 20  73 77 69 74 63 68 65 64  |this is switched|
00006b50  20 6f 66 66 20 62 65 63  61 75 73 65 20 69 74 20  | off because it |
00006b60  63 61 75 73 65 73 20 61  0a 6c 6f 74 20 6f 66 20  |causes a.lot of |
00006b70  66 6c 69 63 6b 65 72 69  6e 67 20 77 68 65 6e 20  |flickering when |
00006b80  74 68 65 20 46 69 6c 65  72 20 63 6f 6e 74 69 6e  |the Filer contin|
00006b90  75 61 6c 6c 79 20 75 70  64 61 74 65 73 20 69 74  |ually updates it|
00006ba0  73 20 64 69 73 70 6c 61  79 73 2e 20 45 76 65 6e  |s displays. Even|
00006bb0  20 77 68 65 6e 0a 74 68  65 20 55 70 63 61 6c 6c  | when.the Upcall|
00006bc0  73 20 61 72 65 20 73 77  69 74 63 68 65 64 20 6f  |s are switched o|
00006bd0  66 66 2c 20 74 68 65 20  64 69 72 65 63 74 6f 72  |ff, the director|
00006be0  79 20 73 69 7a 65 20 69  73 20 75 70 64 61 74 65  |y size is update|
00006bf0  64 20 65 76 65 6e 74 75  61 6c 6c 79 20 77 68 65  |d eventually whe|
00006c00  6e 0a 79 6f 75 20 72 65  2d 6f 70 65 6e 20 74 68  |n.you re-open th|
00006c10  65 20 70 61 72 65 6e 74  20 6f 66 20 74 68 61 74  |e parent of that|
00006c20  20 64 69 72 65 63 74 6f  72 79 20 6f 72 20 77 72  | directory or wr|
00006c30  69 74 65 20 74 6f 20 69  74 2e 0a 0a 3c 50 3e 42  |ite to it...<P>B|
00006c40  79 20 74 68 65 20 77 61  79 3a 20 48 61 76 65 20  |y the way: Have |
00006c50  79 6f 75 20 6e 6f 74 69  63 65 64 20 74 68 61 74  |you noticed that|
00006c60  20 52 69 73 63 4f 53 20  64 6f 65 73 20 6e 6f 74  | RiscOS does not|
00006c70  20 68 61 76 65 20 61 6e  20 55 70 63 61 6c 6c 20  | have an Upcall |
00006c80  66 6f 72 0a 69 6e 66 6f  72 6d 69 6e 67 20 74 68  |for.informing th|
00006c90  61 74 20 61 6e 20 6f 62  6a 65 63 74 27 73 20 73  |at an object's s|
00006ca0  69 7a 65 20 68 61 73 20  63 68 61 6e 67 65 64 3f  |ize has changed?|
00006cb0  20 49 27 6d 20 75 73 69  6e 67 20 4f 53 5f 55 70  | I'm using OS_Up|
00006cc0  63 61 6c 6c 26 6e 62 73  70 3b 33 2c 31 0a 28 57  |call&nbsp;3,1.(W|
00006cd0  72 69 74 69 6e 67 20 63  61 74 61 6c 6f 67 75 65  |riting catalogue|
00006ce0  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 29 2c 20 62  | information), b|
00006cf0  75 74 20 65 76 65 6e 20  74 68 69 73 20 65 78 63  |ut even this exc|
00006d00  6c 75 64 65 73 20 74 68  65 20 73 69 7a 65 2e 0a  |ludes the size..|
00006d10  0a 3c 4c 49 3e 3c 41 20  4e 41 4d 45 3d 22 63 6c  |.<LI><A NAME="cl|
00006d20  69 5f 6f 70 74 6c 6d 22  3e 3c 4b 42 44 3e 2d 4c  |i_optlm"><KBD>-L|
00006d30  6f 61 64 4d 65 73 73 61  67 65 73 3c 2f 4b 42 44  |oadMessages</KBD|
00006d40  3e 3c 2f 41 3e 20 66 6f  6c 6c 6f 77 65 64 20 62  |></A> followed b|
00006d50  79 20 74 68 65 20 6e 61  6d 65 20 6f 66 0a 61 20  |y the name of.a |
00006d60  4d 65 73 73 61 67 65 73  20 66 69 6c 65 20 69 73  |Messages file is|
00006d70  20 73 70 65 63 69 61 6c  20 69 6e 20 74 68 61 74  | special in that|
00006d80  20 69 74 20 64 6f 65 73  6e 27 74 20 73 65 74 20  | it doesn't set |
00006d90  69 6e 74 65 72 6e 61 6c  20 76 61 72 69 61 62 6c  |internal variabl|
00006da0  65 73 2e 0a 49 6e 73 74  65 61 64 2c 20 74 68 69  |es..Instead, thi|
00006db0  73 20 69 73 20 75 73 65  64 20 74 6f 20 6f 76 65  |s is used to ove|
00006dc0  72 72 69 64 65 20 74 68  65 20 68 61 72 64 2d 63  |rride the hard-c|
00006dd0  6f 64 65 64 20 45 6e 67  6c 69 73 68 20 64 65 66  |oded English def|
00006de0  61 75 6c 74 73 20 75 73  65 64 20 66 6f 72 0a 65  |aults used for.e|
00006df0  72 72 6f 72 20 6d 65 73  73 61 67 65 73 2c 20 68  |rror messages, h|
00006e00  65 6c 70 20 74 65 78 74  73 20 61 6e 64 20 74 68  |elp texts and th|
00006e10  65 20 21 4d 6f 75 6e 74  2f 21 52 75 6e 20 66 69  |e !Mount/!Run fi|
00006e20  6c 65 73 2e 0a 0a 3c 50  3e 59 6f 75 20 63 61 6e  |les...<P>You can|
00006e30  20 75 73 65 20 3c 4b 42  44 3e 2d 4c 6f 61 64 4d  | use <KBD>-LoadM|
00006e40  65 73 73 61 67 65 73 26  6e 62 73 70 3b 6e 75 6c  |essages&nbsp;nul|
00006e50  6c 3a 3c 2f 4b 42 44 3e  20 74 6f 20 64 69 73 63  |l:</KBD> to disc|
00006e60  61 72 64 20 74 68 65 20  6d 65 73 73 61 67 65 73  |ard the messages|
00006e70  0a 61 6e 64 20 72 65 76  65 72 74 20 74 6f 20 74  |.and revert to t|
00006e80  68 65 20 64 65 66 61 75  6c 74 20 6f 6e 65 73 2e  |he default ones.|
00006e90  0a 0a 3c 2f 55 4c 3e 0a  0a 3c 2f 44 4c 3e 0a 0a  |..</UL>..</DL>..|
00006ea0  3c 50 20 41 4c 49 47 4e  3d 22 72 69 67 68 74 22  |<P ALIGN="right"|
00006eb0  3e 3c 49 3e 3c 41 20 48  52 45 46 3d 22 23 74 6f  |><I><A HREF="#to|
00006ec0  70 22 3e 42 61 63 6b 20  74 6f 20 74 68 65 20 74  |p">Back to the t|
00006ed0  6f 70 20 6f 66 20 74 68  65 20 70 61 67 65 3c 2f  |op of the page</|
00006ee0  41 3e 3c 2f 49 3e 3c 50  3e 3c 48 52 0a 57 49 44  |A></I><P><HR.WID|
00006ef0  54 48 3d 22 34 31 25 22  3e 0a 0a 0a 0a 3c 50 3e  |TH="41%">....<P>|
00006f00  3c 48 32 3e 3c 41 20 4e  41 4d 45 3d 22 63 61 6c  |<H2><A NAME="cal|
00006f10  6c 22 3e 43 61 6c 6c 69  6e 67 20 72 61 46 53 20  |l">Calling raFS |
00006f20  66 72 6f 6d 20 61 73 73  65 6d 62 6c 65 72 3c 2f  |from assembler</|
00006f30  41 3e 3c 2f 48 32 3e 0a  0a 3c 50 3e 41 73 20 6f  |A></H2>..<P>As o|
00006f40  66 20 76 65 72 73 69 6f  6e 20 31 2e 31 30 2c 20  |f version 1.10, |
00006f50  74 68 65 72 65 20 69 73  20 61 20 77 61 79 20 6f  |there is a way o|
00006f60  66 20 63 61 6c 6c 69 6e  67 20 63 65 72 74 61 69  |f calling certai|
00006f70  6e 20 72 6f 75 74 69 6e  65 73 20 69 6e 73 69 64  |n routines insid|
00006f80  65 20 74 68 65 0a 72 61  46 53 20 6d 6f 64 75 6c  |e the.raFS modul|
00006f90  65 20 64 69 72 65 63 74  6c 79 20 66 72 6f 6d 20  |e directly from |
00006fa0  61 73 73 65 6d 62 6c 65  72 2e 20 72 61 46 53 46  |assembler. raFSF|
00006fb0  69 6c 65 72 20 75 73 65  73 20 74 68 65 73 65 20  |iler uses these |
00006fc0  63 61 6c 6c 73 20 74 6f  20 67 65 74 0a 69 6e 66  |calls to get.inf|
00006fd0  6f 72 6d 61 74 69 6f 6e  20 61 62 6f 75 74 20 64  |ormation about d|
00006fe0  69 73 63 73 20 61 6e 64  20 63 75 72 72 65 6e 74  |iscs and current|
00006ff0  20 73 65 74 74 69 6e 67  73 2e 0a 0a 3c 50 3e 54  | settings...<P>T|
00007000  6f 20 63 61 6c 6c 20 61  6e 20 72 61 46 53 20 72  |o call an raFS r|
00007010  6f 75 74 69 6e 65 2c 20  79 6f 75 20 6d 75 73 74  |outine, you must|
00007020  20 66 69 72 73 74 20 66  69 6e 64 20 6f 75 74 20  | first find out |
00007030  74 68 65 20 61 64 64 72  65 73 73 20 6f 66 20 74  |the address of t|
00007040  68 65 20 6d 6f 64 75 6c  65 0a 77 6f 72 6b 73 70  |he module.worksp|
00007050  61 63 65 20 77 69 74 68  3a 0a 0a 3c 50 3e 3c 43  |ace with:..<P><C|
00007060  4f 44 45 3e 26 6e 62 73  70 3b 26 6e 62 73 70 3b  |ODE>&nbsp;&nbsp;|
00007070  26 6e 62 73 70 3b 26 6e  62 73 70 3b 53 59 53 20  |&nbsp;&nbsp;SYS |
00007080  22 58 4f 53 5f 4d 6f 64  75 6c 65 22 2c 31 38 2c  |"XOS_Module",18,|
00007090  22 72 61 46 53 22 20 54  4f 0a 52 30 25 2c 52 31  |"raFS" TO.R0%,R1|
000070a0  25 2c 52 32 25 2c 52 33  25 2c 77 6f 72 6b 73 70  |%,R2%,R3%,worksp|
000070b0  61 63 65 25 3c 2f 43 4f  44 45 3e 0a 0a 3c 50 3e  |ace%</CODE>..<P>|
000070c0  4d 6f 76 65 20 74 68 65  20 72 65 74 75 72 6e 65  |Move the returne|
000070d0  64 20 76 61 6c 75 65 20  69 6e 74 6f 20 52 31 31  |d value into R11|
000070e0  20 62 65 66 6f 72 65 20  63 61 6c 6c 69 6e 67 20  | before calling |
000070f0  72 61 46 53 20 77 69 74  68 20 74 68 65 20 66 6f  |raFS with the fo|
00007100  6c 6c 6f 77 69 6e 67 0a  69 6e 73 74 72 75 63 74  |llowing.instruct|
00007110  69 6f 6e 73 3a 0a 0a 3c  50 3e 3c 43 4f 44 45 3e  |ions:..<P><CODE>|
00007120  26 6e 62 73 70 3b 26 6e  62 73 70 3b 26 6e 62 73  |&nbsp;&nbsp;&nbs|
00007130  70 3b 26 6e 62 73 70 3b  4d 4f 56 20 4c 52 2c 50  |p;&nbsp;MOV LR,P|
00007140  43 0a 3c 42 52 3e 26 6e  62 73 70 3b 26 6e 62 73  |C.<BR>&nbsp;&nbs|
00007150  70 3b 26 6e 62 73 70 3b  26 6e 62 73 70 3b 4c 44  |p;&nbsp;&nbsp;LD|
00007160  52 20 50 43 2c 5b 52 31  31 2c 23 72 6f 75 74 5f  |R PC,[R11,#rout_|
00007170  6f 66 66 73 65 74 25 5d  3c 2f 43 4f 44 45 3e 0a  |offset%]</CODE>.|
00007180  0a 3c 50 3e 49 66 20 79  6f 75 20 75 73 65 20 3c  |.<P>If you use <|
00007190  43 4f 44 45 3e 4d 4f 56  20 4c 52 2c 50 43 3c 2f  |CODE>MOV LR,PC</|
000071a0  43 4f 44 45 3e 20 28 61  6e 64 20 6e 6f 74 20 3c  |CODE> (and not <|
000071b0  43 4f 44 45 3e 41 44 44  20 4c 52 2c 50 43 2c 23  |CODE>ADD LR,PC,#|
000071c0  30 3c 2f 43 4f 44 45 3e  29 0a 62 65 66 6f 72 65  |0</CODE>).before|
000071d0  20 63 61 6c 6c 69 6e 67  20 74 68 65 20 72 6f 75  | calling the rou|
000071e0  74 69 6e 65 2c 20 74 68  65 20 4e 2c 20 5a 20 61  |tine, the N, Z a|
000071f0  6e 64 20 43 20 66 6c 61  67 73 20 77 69 6c 6c 20  |nd C flags will |
00007200  62 65 20 70 72 65 73 65  72 76 65 64 2e 20 57 68  |be preserved. Wh|
00007210  65 6e 0a 63 61 6c 6c 69  6e 67 20 72 61 46 53 20  |en.calling raFS |
00007220  66 72 6f 6d 20 53 56 43  20 63 6f 64 65 2c 20 79  |from SVC code, y|
00007230  6f 75 20 6d 75 73 74 20  75 73 65 20 3c 43 4f 44  |ou must use <COD|
00007240  45 3e 4d 4f 56 3c 2f 43  4f 44 45 3e 2c 20 6f 74  |E>MOV</CODE>, ot|
00007250  68 65 72 77 69 73 65 20  74 68 65 0a 70 72 6f 63  |herwise the.proc|
00007260  65 73 73 6f 72 20 77 69  6c 6c 20 73 77 69 74 63  |essor will switc|
00007270  68 20 74 6f 20 55 53 52  20 6d 6f 64 65 20 6f 6e  |h to USR mode on|
00007280  63 65 20 74 68 65 20 63  61 6c 6c 20 72 65 74 75  |ce the call retu|
00007290  72 6e 73 2e 0a 0a 3c 50  3e 54 68 65 20 3c 43 4f  |rns...<P>The <CO|
000072a0  44 45 3e 72 6f 75 74 5f  6f 66 66 73 65 74 25 3c  |DE>rout_offset%<|
000072b0  2f 43 4f 44 45 3e 20 69  73 20 7a 65 72 6f 20 66  |/CODE> is zero f|
000072c0  6f 72 20 74 68 65 20 72  6f 75 74 69 6e 65 20 64  |or the routine d|
000072d0  65 73 63 72 69 62 65 64  20 66 69 72 73 74 0a 62  |escribed first.b|
000072e0  65 6c 6f 77 2c 20 61 6e  64 20 69 6e 63 72 65 61  |elow, and increa|
000072f0  73 65 73 20 69 6e 20 74  68 65 20 6f 72 64 65 72  |ses in the order|
00007300  20 74 68 65 20 72 6f 75  74 69 6e 65 73 20 61 72  | the routines ar|
00007310  65 20 64 65 73 63 72 69  62 65 64 2e 20 54 68 65  |e described. The|
00007320  20 44 6f 63 73 0a 64 69  72 65 63 74 6f 72 79 20  | Docs.directory |
00007330  63 6f 6e 74 61 69 6e 73  20 61 20 73 6d 61 6c 6c  |contains a small|
00007340  20 42 41 53 49 43 20 70  72 6f 67 72 61 6d 20 77  | BASIC program w|
00007350  68 69 63 68 20 73 65 74  73 20 75 70 20 74 68 65  |hich sets up the|
00007360  20 6f 66 66 73 65 74 73  20 77 69 74 68 20 61 0a  | offsets with a.|
00007370  68 6f 72 72 69 62 6c 65  20 45 56 41 4c 20 74 72  |horrible EVAL tr|
00007380  69 63 6b 20 61 6e 64 20  77 68 69 63 68 20 61 6c  |ick and which al|
00007390  73 6f 20 70 72 6f 76 69  64 65 73 20 61 20 6d 61  |so provides a ma|
000073a0  63 72 6f 20 66 6f 72 20  74 68 65 20 42 41 53 49  |cro for the BASI|
000073b0  43 20 61 73 73 65 6d 62  6c 65 72 0a 73 6f 20 74  |C assembler.so t|
000073c0  68 65 20 61 62 6f 76 65  20 63 61 6e 20 62 65 20  |he above can be |
000073d0  72 65 64 75 63 65 64 20  74 6f 2c 20 65 2e 26 6e  |reduced to, e.&n|
000073e0  62 73 70 3b 67 2e 20 3c  43 4f 44 45 3e 46 4e 63  |bsp;g. <CODE>FNc|
000073f0  61 6c 6c 28 72 61 46 53  5f 49 6e 66 6f 29 3c 2f  |all(raFS_Info)</|
00007400  43 4f 44 45 3e 2e 0a 0a  3c 50 3e 52 65 67 69 73  |CODE>...<P>Regis|
00007410  74 65 72 73 20 6e 6f 74  20 6d 65 6e 74 69 6f 6e  |ters not mention|
00007420  65 64 20 69 6e 20 22 4f  6e 20 65 78 69 74 22 20  |ed in "On exit" |
00007430  61 72 65 20 70 72 65 73  65 72 76 65 64 2e 20 28  |are preserved. (|
00007440  4f 66 20 63 6f 75 72 73  65 2c 20 52 31 34 20 69  |Of course, R14 i|
00007450  73 0a 63 6f 72 72 75 70  74 65 64 2e 29 20 46 6f  |s.corrupted.) Fo|
00007460  72 20 61 6c 6c 20 63 61  6c 6c 73 2c 20 52 31 31  |r all calls, R11|
00007470  20 6d 75 73 74 20 70 6f  69 6e 74 20 74 6f 20 74  | must point to t|
00007480  68 65 20 77 6f 72 6b 73  70 61 63 65 20 6f 66 20  |he workspace of |
00007490  74 68 65 20 72 61 46 53  0a 6d 6f 64 75 6c 65 2e  |the raFS.module.|
000074a0  20 50 72 6f 63 65 73 73  6f 72 20 6d 75 73 74 20  | Processor must |
000074b0  62 65 20 69 6e 20 55 53  52 20 6f 72 20 53 56 43  |be in USR or SVC|
000074c0  20 6d 6f 64 65 2c 20 52  31 33 20 6d 75 73 74 20  | mode, R13 must |
000074d0  70 6f 69 6e 74 20 74 6f  20 61 20 66 75 6c 6c 0a  |point to a full.|
000074e0  64 65 73 63 65 6e 64 69  6e 67 20 73 74 61 63 6b  |descending stack|
000074f0  20 77 69 74 68 20 61 74  20 6c 65 61 73 74 20 31  | with at least 1|
00007500  6b 20 66 72 65 65 2e 0a  0a 3c 50 3e 49 6e 20 74  |k free...<P>In t|
00007510  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 64 65 73  |he following des|
00007520  63 72 69 70 74 69 6f 6e  73 2c 20 61 6e 79 20 62  |criptions, any b|
00007530  69 74 73 20 69 6e 20 66  69 65 6c 64 73 20 74 68  |its in fields th|
00007540  61 74 20 61 72 65 20 6e  6f 74 20 64 65 73 63 72  |at are not descr|
00007550  69 62 65 64 0a 61 72 65  20 72 65 73 65 72 76 65  |ibed.are reserve|
00007560  64 2e 20 49 74 20 73 68  6f 75 6c 64 20 6e 6f 74  |d. It should not|
00007570  20 62 65 20 61 73 73 75  6d 65 64 20 74 68 61 74  | be assumed that|
00007580  20 74 68 65 79 20 61 72  65 20 7a 65 72 6f 2c 20  | they are zero, |
00007590  61 6e 64 20 77 68 65 6e  20 73 65 74 74 69 6e 67  |and when setting|
000075a0  0a 74 68 65 20 77 6f 72  64 27 73 20 76 61 6c 75  |.the word's valu|
000075b0  65 2c 20 74 68 65 79 20  6d 75 73 74 20 62 65 20  |e, they must be |
000075c0  70 72 65 73 65 72 76 65  64 2e 0a 0a 3c 44 4c 3e  |preserved...<DL>|
000075d0  0a 0a 3c 44 54 3e 3c 43  4f 44 45 3e 3c 41 20 4e  |..<DT><CODE><A N|
000075e0  41 4d 45 3d 22 63 61 6c  6c 5f 69 6e 66 6f 22 3e  |AME="call_info">|
000075f0  72 61 46 53 5f 49 6e 66  6f 3c 2f 41 3e 3c 2f 43  |raFS_Info</A></C|
00007600  4f 44 45 3e 0a 0a 3c 44  44 3e 3c 42 3e 4f 6e 20  |ODE>..<DD><B>On |
00007610  65 6e 74 72 79 3a 3c 2f  42 3e 0a 3c 42 52 3e 2d  |entry:</B>.<BR>-|
00007620  0a 3c 50 3e 3c 42 3e 4f  6e 20 65 78 69 74 3a 3c  |.<P><B>On exit:<|
00007630  2f 42 3e 0a 3c 42 52 3e  52 30 20 3d 20 6d 6f 64  |/B>.<BR>R0 = mod|
00007640  75 6c 65 20 76 65 72 73  69 6f 6e 20 6e 75 6d 62  |ule version numb|
00007650  65 72 20 2a 20 31 30 30  0a 3c 42 52 3e 52 31 20  |er * 100.<BR>R1 |
00007660  3d 20 6d 61 78 69 6d 75  6d 20 6e 75 6d 62 65 72  |= maximum number|
00007670  20 6f 66 20 64 69 73 63  73 20 74 68 69 73 20 76  | of discs this v|
00007680  65 72 73 69 6f 6e 20 63  61 6e 20 68 61 76 65 20  |ersion can have |
00007690  6d 6f 75 6e 74 65 64 0a  3c 42 52 3e 52 32 20 3d  |mounted.<BR>R2 =|
000076a0  20 62 69 74 20 30 20 73  65 74 20 3d 26 67 74 3b  | bit 0 set =&gt;|
000076b0  20 6d 6f 64 75 6c 65 27  73 20 68 65 61 70 20 69  | module's heap i|
000076c0  73 20 69 6e 20 73 70 72  69 74 65 20 61 72 65 61  |s in sprite area|
000076d0  2c 20 62 69 74 73 20 32  34 2d 33 31 20 3d 20 63  |, bits 24-31 = c|
000076e0  6f 75 6e 74 72 79 20 6e  75 6d 62 65 72 20 28 31  |ountry number (1|
000076f0  20 66 6f 72 20 55 4b 2c  20 37 20 66 6f 72 20 47  | for UK, 7 for G|
00007700  65 72 6d 61 6e 79 29 0a  3c 42 52 3e 52 33 2d 52  |ermany).<BR>R3-R|
00007710  35 20 63 6f 72 72 75 70  74 65 64 0a 3c 50 3e 4e  |5 corrupted.<P>N|
00007720  65 76 65 72 20 72 65 74  75 72 6e 73 20 61 6e 20  |ever returns an |
00007730  65 72 72 6f 72 2e 0a 0a  0a 3c 44 54 3e 3c 43 4f  |error....<DT><CO|
00007740  44 45 3e 3c 41 20 4e 41  4d 45 3d 22 63 61 6c 6c  |DE><A NAME="call|
00007750  5f 6e 72 6f 66 64 69 73  63 73 22 3e 72 61 46 53  |_nrofdiscs">raFS|
00007760  5f 4e 72 4f 66 44 69 73  63 73 3c 2f 41 3e 3c 2f  |_NrOfDiscs</A></|
00007770  43 4f 44 45 3e 0a 0a 3c  44 44 3e 3c 42 3e 4f 6e  |CODE>..<DD><B>On|
00007780  20 65 6e 74 72 79 3a 3c  2f 42 3e 0a 3c 42 52 3e  | entry:</B>.<BR>|
00007790  2d 0a 3c 50 3e 3c 42 3e  4f 6e 20 65 78 69 74 3a  |-.<P><B>On exit:|
000077a0  3c 2f 42 3e 0a 3c 42 52  3e 52 30 20 3d 20 6e 75  |</B>.<BR>R0 = nu|
000077b0  6d 62 65 72 20 6f 66 20  64 69 73 63 73 20 63 75  |mber of discs cu|
000077c0  72 72 65 6e 74 6c 79 20  6d 6f 75 6e 74 65 64 0a  |rrently mounted.|
000077d0  3c 50 3e 4e 65 76 65 72  20 72 65 74 75 72 6e 73  |<P>Never returns|
000077e0  20 61 6e 20 65 72 72 6f  72 2e 0a 0a 0a 3c 44 54  | an error....<DT|
000077f0  3e 3c 43 4f 44 45 3e 3c  41 20 4e 41 4d 45 3d 22  |><CODE><A NAME="|
00007800  63 61 6c 6c 5f 65 6e 75  6d 65 72 61 74 65 64 69  |call_enumeratedi|
00007810  73 63 73 22 3e 72 61 46  53 5f 45 6e 75 6d 65 72  |scs">raFS_Enumer|
00007820  61 74 65 44 69 73 63 73  3c 2f 41 3e 3c 2f 43 4f  |ateDiscs</A></CO|
00007830  44 45 3e 0a 0a 3c 44 44  3e 3c 42 3e 4f 6e 20 65  |DE>..<DD><B>On e|
00007840  6e 74 72 79 3a 3c 2f 42  3e 0a 3c 42 52 3e 52 39  |ntry:</B>.<BR>R9|
00007850  20 3d 20 2d 31 20 66 6f  72 20 66 69 72 73 74 20  | = -1 for first |
00007860  63 61 6c 6c 0a 3c 50 3e  3c 42 3e 4f 6e 20 65 78  |call.<P><B>On ex|
00007870  69 74 3a 3c 2f 42 3e 0a  3c 42 52 3e 52 30 20 3d  |it:</B>.<BR>R0 =|
00007880  20 77 6f 72 64 2d 61 6c  69 67 6e 65 64 20 70 6f  | word-aligned po|
00007890  69 6e 74 65 72 20 74 6f  20 7a 65 72 6f 2d 74 65  |inter to zero-te|
000078a0  72 6d 69 6e 61 74 65 64  20 64 69 73 63 20 6e 61  |rminated disc na|
000078b0  6d 65 0a 3c 42 52 3e 52  31 20 3d 20 77 6f 72 64  |me.<BR>R1 = word|
000078c0  2d 61 6c 69 67 6e 65 64  20 70 6f 69 6e 74 65 72  |-aligned pointer|
000078d0  20 74 6f 20 75 6e 74 65  72 6d 69 6e 61 74 65 64  | to unterminated|
000078e0  20 6e 61 6d 65 20 6f 66  20 73 74 6f 72 61 67 65  | name of storage|
000078f0  20 64 69 72 65 63 74 6f  72 79 0a 3c 42 52 3e 52  | directory.<BR>R|
00007900  32 20 3d 20 6c 65 6e 67  74 68 20 6f 66 20 6e 61  |2 = length of na|
00007910  6d 65 20 6f 66 20 73 74  6f 72 61 67 65 20 64 69  |me of storage di|
00007920  72 65 63 74 6f 72 79 0a  3c 42 52 3e 52 39 20 3d  |rectory.<BR>R9 =|
00007930  20 64 69 73 63 20 6e 75  6d 62 65 72 20 28 61 6c  | disc number (al|
00007940  73 6f 20 76 61 6c 75 65  20 6f 66 20 52 39 20 66  |so value of R9 f|
00007950  6f 72 20 6e 65 78 74 20  63 61 6c 6c 20 74 6f 20  |or next call to |
00007960  74 68 69 73 20 72 6f 75  74 69 6e 65 29 20 6f 72  |this routine) or|
00007970  20 2d 31 20 61 6e 64 20  43 20 73 65 74 20 69 66  | -1 and C set if|
00007980  20 6e 6f 20 6d 6f 72 65  20 64 69 73 63 73 0a 0a  | no more discs..|
00007990  3c 50 3e 4e 65 76 65 72  20 72 65 74 75 72 6e 73  |<P>Never returns|
000079a0  20 61 6e 20 65 72 72 6f  72 2e 20 54 68 65 20 69  | an error. The i|
000079b0  6e 66 6f 72 6d 61 74 69  6f 6e 20 6d 75 73 74 20  |nformation must |
000079c0  62 65 20 63 6f 70 69 65  64 20 61 77 61 79 20 69  |be copied away i|
000079d0  6d 6d 65 64 69 61 74 65  6c 79 3b 0a 69 74 20 6d  |mmediately;.it m|
000079e0  61 79 20 63 68 61 6e 67  65 20 64 75 72 69 6e 67  |ay change during|
000079f0  20 61 6e 79 20 63 61 6c  6c 20 74 6f 20 72 61 46  | any call to raF|
00007a00  53 20 28 65 78 63 65 70  74 20 72 61 46 53 5f 4d  |S (except raFS_M|
00007a10  65 6d 43 6f 70 79 29 20  6f 72 20 61 63 63 65 73  |emCopy) or acces|
00007a20  73 65 73 20 74 6f 0a 74  68 65 20 66 69 6c 69 6e  |ses to.the filin|
00007a30  67 20 73 79 73 74 65 6d  2e 0a 0a 3c 50 3e 41 66  |g system...<P>Af|
00007a40  74 65 72 20 74 68 65 20  64 69 73 63 20 6e 61 6d  |ter the disc nam|
00007a50  65 20 74 68 65 72 65 20  61 72 65 20 31 20 74 6f  |e there are 1 to|
00007a60  20 34 20 7a 65 72 6f 20  62 79 74 65 73 2c 20 75  | 4 zero bytes, u|
00007a70  70 20 74 6f 20 74 68 65  20 6e 65 78 74 20 77 6f  |p to the next wo|
00007a80  72 64 0a 62 6f 75 6e 64  61 72 79 2c 20 73 6f 20  |rd.boundary, so |
00007a90  79 6f 75 20 63 61 6e 20  66 69 6e 64 20 74 68 65  |you can find the|
00007aa0  20 6c 65 6e 67 74 68 20  66 61 73 74 65 72 20 62  | length faster b|
00007ab0  79 20 66 69 72 73 74 20  6c 6f 61 64 69 6e 67 20  |y first loading |
00007ac0  77 6f 72 64 73 20 61 6e  64 20 6f 6e 6c 79 0a 6c  |words and only.l|
00007ad0  6f 6f 6b 69 6e 67 20 61  74 20 74 68 65 20 68 69  |ooking at the hi|
00007ae0  67 68 20 62 79 74 65 20  77 69 74 68 20 3c 43 4f  |gh byte with <CO|
00007af0  44 45 3e 54 53 54 20 52  78 2c 23 26 61 6d 70 3b  |DE>TST Rx,#&amp;|
00007b00  46 46 26 6c 74 3b 26 6c  74 3b 32 34 3c 2f 43 4f  |FF&lt;&lt;24</CO|
00007b10  44 45 3e 0a 0a 0a 3c 44  54 3e 3c 43 4f 44 45 3e  |DE>...<DT><CODE>|
00007b20  3c 41 20 4e 41 4d 45 3d  22 63 61 6c 6c 5f 66 69  |<A NAME="call_fi|
00007b30  6e 64 64 69 73 63 22 3e  72 61 46 53 5f 46 69 6e  |nddisc">raFS_Fin|
00007b40  64 44 69 73 63 3c 2f 41  3e 3c 2f 43 4f 44 45 3e  |dDisc</A></CODE>|
00007b50  0a 0a 3c 44 44 3e 3c 42  3e 4f 6e 20 65 6e 74 72  |..<DD><B>On entr|
00007b60  79 3a 3c 2f 42 3e 0a 3c  42 52 3e 52 31 20 3d 26  |y:</B>.<BR>R1 =&|
00007b70  67 74 3b 20 7a 65 72 6f  2d 74 65 72 6d 69 6e 61  |gt; zero-termina|
00007b80  74 65 64 20 64 69 73 63  20 6e 61 6d 65 0a 3c 50  |ted disc name.<P|
00007b90  3e 3c 42 3e 4f 6e 20 65  78 69 74 3a 3c 2f 42 3e  |><B>On exit:</B>|
00007ba0  0a 3c 42 52 3e 52 30 20  3d 20 77 6f 72 64 2d 61  |.<BR>R0 = word-a|
00007bb0  6c 69 67 6e 65 64 20 70  6f 69 6e 74 65 72 20 74  |ligned pointer t|
00007bc0  6f 20 7a 65 72 6f 2d 74  65 72 6d 69 6e 61 74 65  |o zero-terminate|
00007bd0  64 20 64 69 73 63 20 6e  61 6d 65 0a 3c 42 52 3e  |d disc name.<BR>|
00007be0  52 31 20 3d 20 77 6f 72  64 2d 61 6c 69 67 6e 65  |R1 = word-aligne|
00007bf0  64 20 70 6f 69 6e 74 65  72 20 74 6f 20 75 6e 74  |d pointer to unt|
00007c00  65 72 6d 69 6e 61 74 65  64 20 6e 61 6d 65 20 6f  |erminated name o|
00007c10  66 20 73 74 6f 72 61 67  65 20 64 69 72 65 63 74  |f storage direct|
00007c20  6f 72 79 0a 3c 42 52 3e  52 32 20 3d 20 6c 65 6e  |ory.<BR>R2 = len|
00007c30  67 74 68 20 6f 66 20 6e  61 6d 65 20 6f 66 20 73  |gth of name of s|
00007c40  74 6f 72 61 67 65 20 64  69 72 65 63 74 6f 72 79  |torage directory|
00007c50  0a 3c 42 52 3e 52 38 20  3d 20 69 6e 74 65 72 6e  |.<BR>R8 = intern|
00007c60  61 6c 20 49 44 20 6f 66  20 74 68 65 20 64 69 73  |al ID of the dis|
00007c70  63 27 73 20 72 6f 6f 74  20 64 69 72 65 63 74 6f  |c's root directo|
00007c80  72 79 0a 3c 42 52 3e 52  39 20 3d 20 64 69 73 63  |ry.<BR>R9 = disc|
00007c90  20 6e 75 6d 62 65 72 0a  3c 42 52 3e 52 31 34 20  | number.<BR>R14 |
00007ca0  3d 20 6c 65 6e 67 74 68  20 6f 66 20 64 69 73 63  |= length of disc|
00007cb0  20 6e 61 6d 65 0a 0a 3c  50 3e 49 66 20 61 20 64  | name..<P>If a d|
00007cc0  69 73 63 20 6f 66 20 74  68 65 20 67 69 76 65 6e  |isc of the given|
00007cd0  20 6e 61 6d 65 20 69 73  20 6e 6f 74 20 6d 6f 75  | name is not mou|
00007ce0  6e 74 65 64 2c 20 61 6e  20 65 72 72 6f 72 20 69  |nted, an error i|
00007cf0  73 20 72 65 74 75 72 6e  65 64 2e 20 41 67 61 69  |s returned. Agai|
00007d00  6e 2c 0a 74 68 65 20 72  65 74 75 72 6e 65 64 20  |n,.the returned |
00007d10  70 6f 69 6e 74 65 72 73  20 74 6f 20 74 68 65 20  |pointers to the |
00007d20  64 69 73 63 20 6e 61 6d  65 20 28 77 68 6f 73 65  |disc name (whose|
00007d30  20 63 61 73 65 20 6d 61  79 20 64 69 66 66 65 72  | case may differ|
00007d40  20 66 72 6f 6d 20 74 68  61 74 0a 70 61 73 73 65  | from that.passe|
00007d50  64 20 74 6f 20 74 68 65  20 72 6f 75 74 69 6e 65  |d to the routine|
00007d60  29 20 61 6e 64 20 73 74  6f 72 61 67 65 20 64 69  |) and storage di|
00007d70  72 65 63 74 6f 72 79 20  61 72 65 20 72 65 61 64  |rectory are read|
00007d80  2d 6f 6e 6c 79 20 61 6e  64 20 6d 75 73 74 20 62  |-only and must b|
00007d90  65 20 63 6f 70 69 65 64  0a 61 77 61 79 20 69 6d  |e copied.away im|
00007da0  6d 65 64 69 61 74 65 6c  79 2e 0a 0a 0a 3c 44 54  |mediately....<DT|
00007db0  3e 3c 43 4f 44 45 3e 3c  41 20 4e 41 4d 45 3d 22  |><CODE><A NAME="|
00007dc0  63 61 6c 6c 5f 64 69 73  63 69 6e 66 6f 22 3e 72  |call_discinfo">r|
00007dd0  61 46 53 5f 44 69 73 63  49 6e 66 6f 3c 2f 41 3e  |aFS_DiscInfo</A>|
00007de0  3c 2f 43 4f 44 45 3e 0a  0a 3c 44 44 3e 3c 42 3e  |</CODE>..<DD><B>|
00007df0  4f 6e 20 65 6e 74 72 79  3a 3c 2f 42 3e 0a 3c 42  |On entry:</B>.<B|
00007e00  52 3e 52 39 20 3d 20 64  69 73 63 20 6e 75 6d 62  |R>R9 = disc numb|
00007e10  65 72 0a 3c 50 3e 3c 42  3e 4f 6e 20 65 78 69 74  |er.<P><B>On exit|
00007e20  3a 3c 2f 42 3e 0a 3c 42  52 3e 52 30 20 3d 20 77  |:</B>.<BR>R0 = w|
00007e30  6f 72 64 2d 61 6c 69 67  6e 65 64 20 70 6f 69 6e  |ord-aligned poin|
00007e40  74 65 72 20 74 6f 20 7a  65 72 6f 2d 74 65 72 6d  |ter to zero-term|
00007e50  69 6e 61 74 65 64 20 64  69 73 63 20 6e 61 6d 65  |inated disc name|
00007e60  0a 3c 42 52 3e 52 31 20  3d 20 77 6f 72 64 2d 61  |.<BR>R1 = word-a|
00007e70  6c 69 67 6e 65 64 20 70  6f 69 6e 74 65 72 20 74  |ligned pointer t|
00007e80  6f 20 75 6e 74 65 72 6d  69 6e 61 74 65 64 20 6e  |o unterminated n|
00007e90  61 6d 65 20 6f 66 20 73  74 6f 72 61 67 65 20 64  |ame of storage d|
00007ea0  69 72 65 63 74 6f 72 79  0a 3c 42 52 3e 52 32 20  |irectory.<BR>R2 |
00007eb0  3d 20 6c 65 6e 67 74 68  20 6f 66 20 6e 61 6d 65  |= length of name|
00007ec0  20 6f 66 20 73 74 6f 72  61 67 65 20 64 69 72 65  | of storage dire|
00007ed0  63 74 6f 72 79 0a 3c 42  52 3e 52 33 20 3d 20 66  |ctory.<BR>R3 = f|
00007ee0  6c 61 67 73 3a 0a 3c 42  52 3e 26 6e 62 73 70 3b  |lags:.<BR>&nbsp;|
00007ef0  26 6e 62 73 70 3b 26 6e  62 73 70 3b 26 6e 62 73  |&nbsp;&nbsp;&nbs|
00007f00  70 3b 62 69 74 20 30 20  73 65 74 20 3d 26 67 74  |p;bit 0 set =&gt|
00007f10  3b 20 74 68 65 20 64 69  73 63 20 69 73 20 72 65  |; the disc is re|
00007f20  61 64 2d 6f 6e 6c 79 0a  3c 42 52 3e 26 6e 62 73  |ad-only.<BR>&nbs|
00007f30  70 3b 26 6e 62 73 70 3b  26 6e 62 73 70 3b 26 6e  |p;&nbsp;&nbsp;&n|
00007f40  62 73 70 3b 62 69 74 20  31 20 73 65 74 20 3d 26  |bsp;bit 1 set =&|
00007f50  67 74 3b 20 69 6e 74 65  67 72 69 74 79 20 63 68  |gt; integrity ch|
00007f60  65 63 6b 73 20 61 72 65  20 70 65 72 66 6f 72 6d  |ecks are perform|
00007f70  65 64 20 28 72 61 46 53  24 4e 6f 43 68 65 63 6b  |ed (raFS$NoCheck|
00007f80  73 29 0a 3c 42 52 3e 52  38 20 3d 20 69 6e 74 65  |s).<BR>R8 = inte|
00007f90  72 6e 61 6c 20 49 44 20  6f 66 20 74 68 65 20 64  |rnal ID of the d|
00007fa0  69 73 63 27 73 20 72 6f  6f 74 20 64 69 72 65 63  |isc's root direc|
00007fb0  74 6f 72 79 0a 3c 42 52  3e 6f 72 20 43 20 73 65  |tory.<BR>or C se|
00007fc0  74 20 69 66 20 64 69 73  63 20 6f 66 20 74 68 61  |t if disc of tha|
00007fd0  74 20 6e 75 6d 62 65 72  20 6e 6f 74 20 6d 6f 75  |t number not mou|
00007fe0  6e 74 65 64 0a 0a 3c 50  3e 49 66 20 74 68 65 20  |nted..<P>If the |
00007ff0  67 69 76 65 6e 20 64 69  73 63 20 6e 75 6d 62 65  |given disc numbe|
00008000  72 20 69 73 20 69 6e 20  74 68 65 20 76 61 6c 69  |r is in the vali|
00008010  64 20 72 61 6e 67 65 20  28 7a 65 72 6f 20 74 6f  |d range (zero to|
00008020  20 6d 61 78 69 6d 75 6d  20 6e 75 6d 62 65 72 20  | maximum number |
00008030  2d 0a 31 29 20 61 6e 64  20 61 20 64 69 73 63 20  |-.1) and a disc |
00008040  6f 66 20 74 68 61 74 20  6e 75 6d 62 65 72 20 64  |of that number d|
00008050  6f 65 73 20 6e 6f 74 20  65 78 69 73 74 2c 20 74  |oes not exist, t|
00008060  68 69 73 20 72 65 74 75  72 6e 73 20 77 69 74 68  |his returns with|
00008070  20 43 20 73 65 74 2e 0a  4f 62 76 69 6f 75 73 6c  | C set..Obviousl|
00008080  79 2c 20 74 68 69 73 20  63 61 6c 6c 20 69 73 20  |y, this call is |
00008090  6d 75 63 68 20 66 61 73  74 65 72 20 74 68 61 6e  |much faster than|
000080a0  20 72 61 46 53 5f 46 69  6e 64 44 69 73 63 20 62  | raFS_FindDisc b|
000080b0  65 63 61 75 73 65 20 69  74 20 64 6f 65 73 6e 27  |ecause it doesn'|
000080c0  74 0a 68 61 76 65 20 74  6f 20 73 65 61 72 63 68  |t.have to search|
000080d0  20 66 6f 72 20 74 68 65  20 64 69 73 63 20 6e 61  | for the disc na|
000080e0  6d 65 2e 0a 0a 0a 3c 44  54 3e 3c 43 4f 44 45 3e  |me....<DT><CODE>|
000080f0  3c 41 20 4e 41 4d 45 3d  22 63 61 6c 6c 5f 6d 65  |<A NAME="call_me|
00008100  6d 63 6f 70 79 22 3e 72  61 46 53 5f 4d 65 6d 43  |mcopy">raFS_MemC|
00008110  6f 70 79 3c 2f 41 3e 3c  2f 43 4f 44 45 3e 0a 0a  |opy</A></CODE>..|
00008120  3c 44 44 3e 3c 42 3e 4f  6e 20 65 6e 74 72 79 3a  |<DD><B>On entry:|
00008130  3c 2f 42 3e 0a 3c 42 52  3e 52 32 20 3d 26 67 74  |</B>.<BR>R2 =&gt|
00008140  3b 20 73 6f 75 72 63 65  20 28 77 6f 72 64 2d 61  |; source (word-a|
00008150  6c 69 67 6e 65 64 29 0a  3c 42 52 3e 52 33 20 3d  |ligned).<BR>R3 =|
00008160  26 67 74 3b 20 64 65 73  74 69 6e 61 74 69 6f 6e  |&gt; destination|
00008170  20 28 77 6f 72 64 2d 61  6c 69 67 6e 65 64 29 0a  | (word-aligned).|
00008180  3c 42 52 3e 52 34 20 3d  20 6e 75 6d 62 65 72 20  |<BR>R4 = number |
00008190  6f 66 20 62 79 74 65 73  20 74 6f 20 63 6f 70 79  |of bytes to copy|
000081a0  20 28 6d 75 6c 74 69 70  6c 65 20 6f 66 20 34 29  | (multiple of 4)|
000081b0  0a 3c 50 3e 3c 42 3e 4f  6e 20 65 78 69 74 3a 3c  |.<P><B>On exit:<|
000081c0  2f 42 3e 0a 3c 42 52 3e  52 65 67 69 73 74 65 72  |/B>.<BR>Register|
000081d0  73 20 70 72 65 73 65 72  76 65 64 0a 3c 50 3e 54  |s preserved.<P>T|
000081e0  68 65 20 6d 65 6d 6f 72  79 20 61 72 65 61 73 20  |he memory areas |
000081f0  6d 61 79 20 6f 76 65 72  6c 61 70 2e 0a 0a 0a 3c  |may overlap....<|
00008200  44 54 3e 3c 43 4f 44 45  3e 3c 41 20 4e 41 4d 45  |DT><CODE><A NAME|
00008210  3d 22 63 61 6c 6c 5f 72  65 61 64 76 61 72 22 3e  |="call_readvar">|
00008220  72 61 46 53 5f 52 65 61  64 56 61 72 3c 2f 41 3e  |raFS_ReadVar</A>|
00008230  3c 2f 43 4f 44 45 3e 0a  0a 3c 44 44 3e 3c 42 3e  |</CODE>..<DD><B>|
00008240  4f 6e 20 65 6e 74 72 79  3a 3c 2f 42 3e 0a 3c 42  |On entry:</B>.<B|
00008250  52 3e 52 30 20 3d 20 6e  75 6d 62 65 72 20 6f 66  |R>R0 = number of|
00008260  20 76 61 72 69 61 62 6c  65 20 74 6f 20 72 65 61  | variable to rea|
00008270  64 0a 3c 50 3e 3c 42 3e  4f 6e 20 65 78 69 74 3a  |d.<P><B>On exit:|
00008280  3c 2f 42 3e 0a 3c 42 52  3e 52 30 20 3d 20 76 61  |</B>.<BR>R0 = va|
00008290  6c 75 65 20 2f 20 70 6f  69 6e 74 65 72 20 74 6f  |lue / pointer to|
000082a0  20 73 74 72 69 6e 67 20  28 64 65 70 65 6e 64 69  | string (dependi|
000082b0  6e 67 20 6f 6e 20 76 61  72 69 61 62 6c 65 20 74  |ng on variable t|
000082c0  79 70 65 29 0a 3c 42 52  3e 52 31 20 63 6f 72 72  |ype).<BR>R1 corr|
000082d0  75 70 74 65 64 0a 0a 3c  50 3e 43 75 72 72 65 6e  |upted..<P>Curren|
000082e0  74 6c 79 2c 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |tly, the followi|
000082f0  6e 67 20 76 61 72 69 61  62 6c 65 73 20 61 72 65  |ng variables are|
00008300  20 73 75 70 70 6f 72 74  65 64 3a 0a 3c 55 4c 3e  | supported:.<UL>|
00008310  0a 3c 4c 49 3e 30 20 3d  26 67 74 3b 20 44 69 72  |.<LI>0 =&gt; Dir|
00008320  43 61 63 68 65 20 28 6b  42 79 74 65 73 29 20 2d  |Cache (kBytes) -|
00008330  20 69 73 20 69 6e 74 65  72 6e 61 6c 6c 79 20 73  | is internally s|
00008340  74 6f 72 65 64 20 61 73  20 62 79 74 65 73 2c 20  |tored as bytes, |
00008350  73 6f 20 64 6f 6e 27 74  20 73 65 74 20 74 6f 20  |so don't set to |
00008360  61 20 76 61 6c 75 65 20  68 69 67 68 65 72 20 74  |a value higher t|
00008370  68 61 6e 20 26 61 6d 70  3b 33 66 66 66 66 66 0a  |han &amp;3fffff.|
00008380  3c 4c 49 3e 31 20 3d 26  67 74 3b 20 44 69 72 73  |<LI>1 =&gt; Dirs|
00008390  61 76 65 44 65 6c 61 79  20 28 63 65 6e 74 69 73  |aveDelay (centis|
000083a0  65 63 6f 6e 64 73 29 0a  3c 4c 49 3e 32 20 3d 26  |econds).<LI>2 =&|
000083b0  67 74 3b 20 44 69 72 73  61 76 65 4d 6f 64 73 20  |gt; DirsaveMods |
000083c0  28 6e 72 29 0a 3c 4c 49  3e 33 20 3d 26 67 74 3b  |(nr).<LI>3 =&gt;|
000083d0  20 4d 69 73 63 20 66 6c  61 67 73 3a 0a 3c 42 52  | Misc flags:.<BR|
000083e0  3e 26 6e 62 73 70 3b 26  6e 62 73 70 3b 26 6e 62  |>&nbsp;&nbsp;&nb|
000083f0  73 70 3b 26 6e 62 73 70  3b 42 69 74 20 30 20 73  |sp;&nbsp;Bit 0 s|
00008400  65 74 20 3d 26 67 74 3b  20 44 69 72 55 70 63 61  |et =&gt; DirUpca|
00008410  6c 6c 20 68 61 70 70 65  6e 73 0a 3c 2f 55 4c 3e  |ll happens.</UL>|
00008420  0a 0a 0a 3c 44 54 3e 3c  43 4f 44 45 3e 3c 41 20  |...<DT><CODE><A |
00008430  4e 41 4d 45 3d 22 63 61  6c 6c 5f 73 65 74 76 61  |NAME="call_setva|
00008440  72 22 3e 72 61 46 53 5f  53 65 74 56 61 72 3c 2f  |r">raFS_SetVar</|
00008450  41 3e 3c 2f 43 4f 44 45  3e 0a 0a 3c 44 44 3e 3c  |A></CODE>..<DD><|
00008460  42 3e 4f 6e 20 65 6e 74  72 79 3a 3c 2f 42 3e 0a  |B>On entry:</B>.|
00008470  3c 42 52 3e 52 30 20 3d  20 6e 75 6d 62 65 72 20  |<BR>R0 = number |
00008480  6f 66 20 76 61 72 69 61  62 6c 65 20 74 6f 20 73  |of variable to s|
00008490  65 74 20 76 61 6c 75 65  20 6f 66 0a 3c 42 52 3e  |et value of.<BR>|
000084a0  52 31 20 3d 20 6e 65 77  20 76 61 6c 75 65 0a 3c  |R1 = new value.<|
000084b0  50 3e 3c 42 3e 4f 6e 20  65 78 69 74 3a 3c 2f 42  |P><B>On exit:</B|
000084c0  3e 0a 3c 42 52 3e 52 30  2c 20 52 31 20 63 6f 72  |>.<BR>R0, R1 cor|
000084d0  72 75 70 74 65 64 0a 3c  50 3e 52 30 20 6f 6e 20  |rupted.<P>R0 on |
000084e0  65 6e 74 72 79 20 63 6f  6e 74 61 69 6e 73 20 74  |entry contains t|
000084f0  68 65 20 73 61 6d 65 20  76 61 6c 75 65 73 20 61  |he same values a|
00008500  73 20 66 6f 72 20 72 61  46 53 5f 52 65 61 64 56  |s for raFS_ReadV|
00008510  61 72 0a 0a 0a 3c 2f 44  4c 3e 0a 0a 0a 0a 3c 50  |ar...</DL>....<P|
00008520  20 41 4c 49 47 4e 3d 22  72 69 67 68 74 22 3e 3c  | ALIGN="right"><|
00008530  49 3e 3c 41 20 48 52 45  46 3d 22 23 74 6f 70 22  |I><A HREF="#top"|
00008540  3e 42 61 63 6b 20 74 6f  20 74 68 65 20 74 6f 70  |>Back to the top|
00008550  20 6f 66 20 74 68 65 20  70 61 67 65 3c 2f 41 3e  | of the page</A>|
00008560  3c 2f 49 3e 3c 50 3e 3c  48 52 0a 57 49 44 54 48  |</I><P><HR.WIDTH|
00008570  3d 22 34 31 25 22 3e 0a  0a 0a 0a 3c 50 3e 3c 48  |="41%">....<P><H|
00008580  32 3e 3c 41 20 4e 41 4d  45 3d 22 66 6f 72 6d 61  |2><A NAME="forma|
00008590  74 22 3e 46 69 6c 65 20  66 6f 72 6d 61 74 73 3c  |t">File formats<|
000085a0  2f 41 3e 3c 2f 48 32 3e  0a 0a 54 68 69 73 20 73  |/A></H2>..This s|
000085b0  65 63 74 69 6f 6e 20 6f  75 74 6c 69 6e 65 73 20  |ection outlines |
000085c0  74 68 65 20 66 6f 72 6d  61 74 20 6f 66 20 61 20  |the format of a |
000085d0  72 61 46 53 20 64 69 73  63 20 66 6f 72 20 74 68  |raFS disc for th|
000085e0  65 20 63 75 72 69 6f 75  73 20 61 6e 64 20 66 6f  |e curious and fo|
000085f0  72 20 74 68 6f 73 65 0a  77 68 6f 20 63 61 6e 27  |r those.who can'|
00008600  74 20 77 61 69 74 20 66  6f 72 20 6d 65 20 74 6f  |t wait for me to|
00008610  20 69 6d 70 6c 65 6d 65  6e 74 20 3c 4b 42 44 3e  | implement <KBD>|
00008620  56 65 72 69 66 79 3c 2f  4b 42 44 3e 20 3a 2d 28  |Verify</KBD> :-(|
00008630  0a 0a 49 6e 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |..In the followi|
00008640  6e 67 20 64 65 73 63 72  69 70 74 69 6f 6e 73 2c  |ng descriptions,|
00008650  20 61 6e 20 49 44 20 77  6f 72 64 20 69 73 20 6f  | an ID word is o|
00008660  66 20 74 68 65 20 66 6f  72 6d 20 26 61 6d 70 3b  |f the form &amp;|
00008670  30 30 7a 7a 79 79 78 78  20 77 68 65 72 65 0a 78  |00zzyyxx where.x|
00008680  78 20 69 73 20 74 68 65  20 66 69 72 73 74 20 6c  |x is the first l|
00008690  65 76 65 6c 20 64 69 72  65 63 74 6f 72 79 2c 20  |evel directory, |
000086a0  79 79 20 74 68 65 20 73  65 63 6f 6e 64 2c 20 61  |yy the second, a|
000086b0  6e 64 20 7a 7a 20 74 68  65 20 6c 65 61 66 20 6e  |nd zz the leaf n|
000086c0  61 6d 65 2c 20 65 2e 67  2e 0a 26 61 6d 70 3b 30  |ame, e.g..&amp;0|
000086d0  30 30 31 30 32 30 33 20  69 73 20 74 68 65 20 66  |0010203 is the f|
000086e0  69 6c 65 20 27 42 30 2e  41 32 2e 41 31 27 2e 20  |ile 'B0.A2.A1'. |
000086f0  54 68 65 20 72 6f 6f 74  20 64 69 72 65 63 74 6f  |The root directo|
00008700  72 79 20 69 73 20 61 6c  77 61 79 73 0a 27 41 30  |ry is always.'A0|
00008710  2e 41 30 2e 41 30 27 2e  0a 0a 3c 48 33 3e 54 68  |.A0.A0'...<H3>Th|
00008720  65 20 3c 49 3e 21 41 74  74 65 72 65 72 3c 2f 49  |e <I>!Atterer</I|
00008730  3e 20 66 69 6c 65 3c 2f  48 33 3e 0a 0a 3c 50 3e  |> file</H3>..<P>|
00008740  3c 50 52 45 3e 53 69 7a  65 20 44 65 73 63 72 69  |<PRE>Size Descri|
00008750  70 74 69 6f 6e 0a 36 34  20 20 20 64 69 73 63 20  |ption.64   disc |
00008760  6e 61 6d 65 2c 20 6e 75  6c 6c 20 74 65 72 6d 69  |name, null termi|
00008770  6e 61 74 65 64 2c 20 70  61 64 64 65 64 20 77 69  |nated, padded wi|
00008780  74 68 20 7a 65 72 6f 65  73 0a 34 20 20 20 20 74  |th zeroes.4    t|
00008790  68 65 72 65 20 69 73 20  67 75 61 72 61 6e 74 65  |here is guarante|
000087a0  65 64 20 6e 6f 20 75 6e  75 73 65 64 20 49 44 20  |ed no unused ID |
000087b0  6c 6f 77 65 72 20 74 68  61 6e 20 74 68 69 73 20  |lower than this |
000087c0  6f 6e 65 0a 34 20 20 20  20 61 74 74 72 69 62 75  |one.4    attribu|
000087d0  74 65 20 66 6c 61 67 73  20 66 6f 72 20 72 6f 6f  |te flags for roo|
000087e0  74 20 64 69 72 65 63 74  6f 72 79 20 28 30 20 61  |t directory (0 a|
000087f0  74 20 70 72 65 73 65 6e  74 29 0a 34 20 20 20 20  |t present).4    |
00008800  30 20 28 75 6e 69 6d 70  6c 65 6d 65 6e 74 65 64  |0 (unimplemented|
00008810  29 0a 34 20 20 20 20 6f  20 3d 20 6e 75 6d 62 65  |).4    o = numbe|
00008820  72 20 6f 66 20 62 75 66  66 65 72 20 73 65 74 74  |r of buffer sett|
00008830  69 6e 67 73 20 66 6f 6c  6c 6f 77 69 6e 67 20 28  |ings following (|
00008840  61 6c 77 61 79 73 20 30  20 61 74 20 70 72 65 73  |always 0 at pres|
00008850  65 6e 74 29 0a 3f 3f 2a  6f 20 62 75 66 66 65 72  |ent).??*o buffer|
00008860  20 73 65 74 74 69 6e 67  73 3c 2f 50 52 45 3e 0a  | settings</PRE>.|
00008870  0a 3c 48 33 3e 44 69 72  65 63 74 6f 72 79 20 66  |.<H3>Directory f|
00008880  6f 72 6d 61 74 3c 2f 48  33 3e 0a 0a 3c 50 3e 3c  |ormat</H3>..<P><|
00008890  50 52 45 3e 53 69 7a 65  20 44 65 73 63 72 69 70  |PRE>Size Descrip|
000088a0  74 69 6f 6e 0a 34 20 20  20 20 6e 20 3d 20 6e 72  |tion.4    n = nr|
000088b0  20 6f 66 20 65 6e 74 72  69 65 73 0a 34 20 20 20  | of entries.4   |
000088c0  20 6d 20 3d 20 30 20 28  75 6e 69 6d 70 6c 65 6d  | m = 0 (unimplem|
000088d0  65 6e 74 65 64 29 0a 34  20 20 20 20 49 44 20 6f  |ented).4    ID o|
000088e0  66 20 70 61 72 65 6e 74  20 28 6d 61 78 2e 20 37  |f parent (max. 7|
000088f0  36 2e 37 36 2e 37 36 2e  30 29 20 2d 20 77 6f 72  |6.76.76.0) - wor|
00008900  64 20 63 6f 6e 74 61 69  6e 73 20 2d 31 20 66 6f  |d contains -1 fo|
00008910  72 20 72 6f 6f 74 0a 34  20 20 20 20 26 38 30 30  |r root.4    &800|
00008920  30 30 30 30 30 20 28 75  6e 69 6d 70 6c 65 6d 65  |00000 (unimpleme|
00008930  6e 74 65 64 29 0a 34 2a  6e 20 20 6f 66 66 73 65  |nted).4*n  offse|
00008940  74 20 74 6f 20 73 74 61  72 74 20 6f 66 20 64 69  |t to start of di|
00008950  72 65 63 74 6f 72 79 20  65 6e 74 72 69 65 73 0a  |rectory entries.|
00008960  20 20 20 20 20 28 77 6f  72 64 73 20 6d 75 73 74  |     (words must|
00008970  20 62 65 20 73 6f 72 74  65 64 20 69 6e 20 61 73  | be sorted in as|
00008980  63 65 6e 64 69 6e 67 20  6f 72 64 65 72 2c 20 66  |cending order, f|
00008990  69 6c 65 20 6e 61 6d 65  73 20 69 6e 20 41 53 43  |ile names in ASC|
000089a0  49 49 20 6f 72 64 65 72  2c 0a 20 20 20 20 20 6f  |II order,.     o|
000089b0  66 66 73 65 74 73 20 61  72 65 20 72 65 6c 61 74  |ffsets are relat|
000089c0  69 76 65 20 74 6f 20 73  74 61 72 74 20 6f 66 20  |ive to start of |
000089d0  74 68 65 73 65 20 6f 66  66 73 65 74 73 29 0a 34  |these offsets).4|
000089e0  2a 6d 20 20 69 66 20 61  6e 79 2c 20 6f 66 66 73  |*m  if any, offs|
000089f0  65 74 20 74 6f 2e 2e 2e  20 28 75 6e 69 6d 70 6c  |et to... (unimpl|
00008a00  65 6d 65 6e 74 65 64 29  0a 34 20 20 20 20 6f 66  |emented).4    of|
00008a10  66 73 65 74 20 74 6f 20  66 69 72 73 74 20 75 6e  |fset to first un|
00008a20  75 73 65 64 20 62 79 74  65 20 61 66 74 65 72 20  |used byte after |
00008a30  64 69 72 20 65 6e 74 72  69 65 73 2f 64 69 72 20  |dir entries/dir |
00008a40  6e 61 6d 65 73 20 28 61  6c 73 6f 20 66 72 6f 6d  |names (also from|
00008a50  0a 20 20 20 20 20 62 65  67 69 6e 6e 69 6e 67 20  |.     beginning |
00008a60  6f 66 20 6f 66 66 73 65  74 73 2c 20 73 6f 20 74  |of offsets, so t|
00008a70  68 61 74 20 69 66 20 74  68 65 72 65 20 61 72 65  |hat if there are|
00008a80  20 6e 6f 20 65 6e 74 72  69 65 73 2c 20 74 68 69  | no entries, thi|
00008a90  73 20 63 6f 6e 74 61 69  6e 73 20 74 68 65 0a 20  |s contains the. |
00008aa0  20 20 20 20 76 61 6c 75  65 20 34 29 3c 2f 50 52  |    value 4)</PR|
00008ab0  45 3e 0a 0a 3c 50 3e 54  68 69 73 20 69 73 20 66  |E>..<P>This is f|
00008ac0  6f 6c 6c 6f 77 65 64 20  62 79 20 74 68 65 20 69  |ollowed by the i|
00008ad0  6e 64 69 76 69 64 75 61  6c 20 65 6e 74 72 69 65  |ndividual entrie|
00008ae0  73 2c 20 69 66 20 61 6e  79 3a 0a 0a 3c 50 3e 3c  |s, if any:..<P><|
00008af0  50 52 45 3e 34 20 20 20  20 6c 6f 61 64 20 61 64  |PRE>4    load ad|
00008b00  64 72 65 73 73 0a 34 20  20 20 20 65 78 65 63 20  |dress.4    exec |
00008b10  61 64 64 72 65 73 73 0a  34 20 20 20 20 6c 65 6e  |address.4    len|
00008b20  67 74 68 20 28 6f 72 20  46 69 6c 65 53 77 69 74  |gth (or FileSwit|
00008b30  63 68 20 68 61 6e 64 6c  65 20 69 66 20 66 6c 61  |ch handle if fla|
00008b40  67 20 62 69 74 20 31 32  20 73 65 74 29 0a 34 20  |g bit 12 set).4 |
00008b50  20 20 20 61 74 74 72 69  62 75 74 65 73 0a 34 20  |   attributes.4 |
00008b60  20 20 20 72 61 46 53 20  61 74 74 72 69 62 75 74  |   raFS attribut|
00008b70  65 73 2f 66 6c 61 67 73  3a 0a 20 20 20 20 20 62  |es/flags:.     b|
00008b80  69 74 73 20 30 2d 31 3a  20 30 20 28 75 6e 69 6d  |its 0-1: 0 (unim|
00008b90  70 6c 65 6d 65 6e 74 65  64 29 0a 20 20 20 20 20  |plemented).     |
00008ba0  20 20 20 20 20 32 2d 33  3a 20 30 20 28 75 6e 69  |     2-3: 0 (uni|
00008bb0  6d 70 6c 65 6d 65 6e 74  65 64 29 0a 20 20 20 20  |mplemented).    |
00008bc0  20 20 20 20 20 20 34 2d  35 3a 20 30 20 28 75 6e  |      4-5: 0 (un|
00008bd0  69 6d 70 6c 65 6d 65 6e  74 65 64 29 0a 20 20 20  |implemented).   |
00008be0  20 20 20 20 20 20 20 36  2d 37 3a 20 30 3d 6e 6f  |       6-7: 0=no|
00008bf0  72 6d 61 6c 20 66 69 6c  65 2c 20 31 2f 32 20 75  |rmal file, 1/2 u|
00008c00  6e 69 6d 70 6c 65 6d 65  6e 74 65 64 2c 20 33 3d  |nimplemented, 3=|
00008c10  64 69 72 65 63 74 6f 72  79 0a 20 20 20 20 20 20  |directory.      |
00008c20  20 20 20 20 31 32 3a 20  20 69 66 20 73 65 74 2c  |    12:  if set,|
00008c30  20 66 69 6c 65 20 69 73  20 6f 70 65 6e 20 3d 26  | file is open =&|
00008c40  67 74 3b 20 27 6c 65 6e  67 74 68 27 20 63 6f 6e  |gt; 'length' con|
00008c50  74 61 69 6e 73 20 46 69  6c 65 53 77 69 74 63 68  |tains FileSwitch|
00008c60  20 68 61 6e 64 6c 65 0a  34 20 20 20 20 30 20 28  | handle.4    0 (|
00008c70  75 6e 69 6d 70 6c 65 6d  65 6e 74 65 64 29 0a 34  |unimplemented).4|
00008c80  20 20 20 20 49 44 20 6f  66 20 66 69 6c 65 2f 64  |    ID of file/d|
00008c90  69 72 65 63 74 6f 72 79  0a 34 2a 3f 20 20 6e 61  |irectory.4*?  na|
00008ca0  6d 65 20 6f 66 20 66 69  6c 65 2f 64 69 72 65 63  |me of file/direc|
00008cb0  74 6f 72 79 2c 20 7a 65  72 6f 2d 74 65 72 6d 69  |tory, zero-termi|
00008cc0  6e 61 74 65 64 2c 20 70  61 64 64 65 64 20 77 69  |nated, padded wi|
00008cd0  74 68 20 7a 65 72 6f 65  73 20 74 6f 20 74 68 65  |th zeroes to the|
00008ce0  20 6e 65 78 74 0a 20 20  20 20 20 6d 75 6c 74 69  | next.     multi|
00008cf0  70 6c 65 20 6f 66 20 34  2e 0a 34 2a 3f 20 20 28  |ple of 4..4*?  (|
00008d00  75 6e 69 6d 70 6c 65 6d  65 6e 74 65 64 2c 20 61  |unimplemented, a|
00008d10  6c 77 61 79 73 20 6e 75  6c 6c 20 61 74 20 70 72  |lways null at pr|
00008d20  65 73 65 6e 74 29 0a 3c  2f 50 52 45 3e 0a 0a 3c  |esent).</PRE>..<|
00008d30  50 3e 49 66 20 61 6e 20  65 6e 74 72 79 20 77 69  |P>If an entry wi|
00008d40  74 68 20 62 69 74 20 31  32 20 73 65 74 20 69 73  |th bit 12 set is|
00008d50  20 65 6e 63 6f 75 6e 74  65 72 65 64 20 75 70 6f  | encountered upo|
00008d60  6e 20 6c 6f 61 64 69 6e  67 20 64 69 72 65 63 74  |n loading direct|
00008d70  6f 72 79 20 64 61 74 61  2c 0a 72 61 46 53 20 63  |ory data,.raFS c|
00008d80  68 65 63 6b 73 20 77 68  65 74 68 65 72 20 69 74  |hecks whether it|
00008d90  73 20 6f 77 6e 20 6c 69  73 74 20 6f 66 20 66 69  |s own list of fi|
00008da0  6c 65 73 20 63 6f 6e 74  61 69 6e 73 20 74 68 61  |les contains tha|
00008db0  74 20 66 69 6c 65 20 49  44 20 74 6f 67 65 74 68  |t file ID togeth|
00008dc0  65 72 20 77 69 74 68 0a  74 68 65 20 46 69 6c 65  |er with.the File|
00008dd0  53 77 69 74 63 68 20 68  61 6e 64 6c 65 20 66 6f  |Switch handle fo|
00008de0  75 6e 64 20 69 6e 20 74  68 65 20 64 69 72 65 63  |und in the direc|
00008df0  74 6f 72 79 20 65 6e 74  72 79 2e 20 49 66 20 74  |tory entry. If t|
00008e00  68 65 72 65 20 69 73 20  6e 6f 20 73 75 63 68 20  |here is no such |
00008e10  65 6e 74 72 79 0a 69 6e  20 74 68 65 20 6c 69 73  |entry.in the lis|
00008e20  74 20 6f 66 20 6f 70 65  6e 20 66 69 6c 65 73 2c  |t of open files,|
00008e30  20 69 74 20 69 73 20 61  73 73 75 6d 65 64 20 74  | it is assumed t|
00008e40  68 61 74 20 74 68 65 20  6d 61 63 68 69 6e 65 20  |hat the machine |
00008e50  63 72 61 73 68 65 64 20  61 6e 64 20 74 68 65 0a  |crashed and the.|
00008e60  6c 65 6e 67 74 68 20 69  73 20 72 65 73 74 6f 72  |length is restor|
00008e70  65 64 2e 0a 0a 3c 50 20  41 4c 49 47 4e 3d 22 72  |ed...<P ALIGN="r|
00008e80  69 67 68 74 22 3e 3c 49  3e 3c 41 20 48 52 45 46  |ight"><I><A HREF|
00008e90  3d 22 23 74 6f 70 22 3e  42 61 63 6b 20 74 6f 20  |="#top">Back to |
00008ea0  74 68 65 20 74 6f 70 20  6f 66 20 74 68 65 20 70  |the top of the p|
00008eb0  61 67 65 3c 2f 41 3e 3c  2f 49 3e 0a 0a 3c 2f 42  |age</A></I>..</B|
00008ec0  4f 44 59 3e 3c 2f 48 54  4d 4c 3e 0a              |ODY></HTML>.|
00008ecc