LongFS

By Robert Sprowson

Originally published in EUG #49

This file describes the ROM Image LongFS which adds support for full ten letter filenames with just an ordinary seven letter limited DFS.

The image requires at least one 4k bank of Sideways RAM or to be put onto a ROM to work.

The manual and software are (C)1998 SPROW.

Instructions

At any command line prompt, eg. the BASIC command prompt '>' type:

On A Master: *SRLOAD U.LONGFS 8000 <socket#>
*INSERT <socket#>
where <socket#> may be 7,6,5,4
 
On a machine with SWRam:*LOAD U.LONGFS 8000
and press <CTRL>-<BREAK> to initialise.

The image will then be installed into the chosen socket where it will watch for filing system calls with names longer than seven letters.

Before using a disk with LongFS, it must first be prepared for use. This 'formatting' process, in fact just adds a second catalogue to the disk, so make sure the disk has already been formatted with your favourate DFS formatter.

Syntax: *FORM 10 <drive>

One page (256 bytes) of memory is claimed as private workspace above OSHWM when the computer is turned on. This contains pointers etc... That LongFS uses, and must not be tampered with. For technical reasons the 'hidden' workspace which is available on a Master series could not be used.

Please note that LongFS is in addition to the normal DFS. It is not a 'filing system' on its own. For example, you can't select it with *LONGFS or a similar command. So typing in BASIC:

      SAVE":0.$.File" ........ will save to the DFS (eg. Acorn DFS).
      SAVE":0.$.LongerName" .. will save via LongFS but leave DFS 
                               selected throughout.

Supported OS Calls

The following calls all require a filename (or pointer to filename) as one of their arguments and are fully supported. Filenames may be prefixed by drive and/or directory specifiers (eg. ":0.R.") and are terminated by any control character such as a carriage return or a space.
      OSFile
      OSGbPb
      OSFind
      OSFSCV

Most DFS's also support the following 'star' commands, which are handled differently to the above.

    *WIPE ....................... does not understand long filenames
    *DESTROY .................... does not understand long filenames
    *COMPACT ...... works as before,but will not list long filenames
    *ACCESS ..................... does not understand long filenames
    *COPY ....................... does not understand long filenames
    *RENAME ..................... does not understand long filenames
    *CAT/*INFO .... works as before,but will not list long filenames
    *DELETE ... only understands long filenames on the Master series

Exit Messages

Out of rangeThe entered number was outside the range expected
Bad driveOnly drives 0-3 can be formatted for use with LongFS
Cannot format diskThe mapping file could not be created on the disk.
Bad FS mapThe filename mappings have become inconsitent with the files actually on the disk. This means you'll probably have to wipe the disk
Not foundThe filename given could not be found
Bad nameThe name given contained invalid filing system characters
Bad filing system nameThe LongFS ROM only works with DFS selected

Known Problems/Future Enhancements

No known problems.
Addition of transparent generation of catalogues (with the long filenames substituted) and more *commands interpretted fully.

History

v0.32Initial version, missing most of the *command substitution.
v0.42Adds support for one letter directories.
v0.47Reformatting a disk that has already been 'formatted' with LongFS Now also removes all the files that had long file names.