The MDFS has a pretty impressive hardware specification. You can find out more about its hardware by clicking here.
The MDFS (Modular Disc File Server) was SJ's crowning achievement. Using a single Z80 processor, it is a fully multi-tasking servers with both serial and parallel printer spooling and a heirachical filing system.
It comes as a main box and a load of connectors, into which you could plug up to four double density floppy drives, up to four SCSI discs (with up to eight active partitions) and a tape drive.
Server version 1.10 supported up to 8 partitions of 35Mb each - individual SCSI discs could have one or more partitions on them. Version 2.00 increased the partition size to 59Mb. The limit in
the disc format is 64Mb, but it was kept to 59 to ensure that two partitions would fit on a
120Mb backup tape.
The MDFS was faster than Level 4 when it came out, and even now at small transactions the MDFS
is faster. Level 4 beats it for large data transfer, but it's surprising how much average usage
consists of small transactions where response time is more important than data transfer rate.
Many MDFS's now have a single drive of around 500Mb, with 8 59MB partitions. People would love
more disc space but it's just not pratical. All the tape drives are dying, they're expensive to
repair and you can't buy the tapes anymore anyway.
Workarounds vary from backing up using magneto-optical SCSI discs using raw partition copy in
utility mode through to backing up to an RISC OS machine over the network. Despite the backup
problems and disc space limit, people persevere with the MDFS because it is very reliable.
The MDFS supports the standard *commands, and adds a few of its own:
- *Access <object> <permissions>
Expanded to have 'P'rivate items. Also may report
"/spl" or "/ptr" for items
awaiting printing or being printed.
- *Account [<main account>] [(<aux. account>)]
Changes the main and/or auxillary account for the user specified. User IDs may be
- *Balance [<account>]
Older server code: Report the balance of the specified account, or the current account if nothing specified.
- *Balance [<account> [<discname>]]
Version 2.00 server code: Report the balance of the specified account with optional disc specifier, or the current account if nothing specified.
- *DefAccess [<directory>] <permissions>
Sets the default access parameters. If you specify no directory, it will be applied to
This is useful for, say, a SYST directory where you can set everything to
be automatically made Private.
- *Disable [ SAVES | LIBRARY ]
Disable on its own prevents the use of a wildcarded deletion.
Disable Saves prevents a file of less than 16 bytes being saved.
Disable Library reduces the library searching to a level equivalent to
Acorn servers (ie: library is only searched upon *Run or
List the discs currently attached to the server. This is listed only because it outputs
additional MDFS-specific information.
- *Enable [ SAVES | LIBRARY ]
Undoes the effects of *Disable.
Flush any print entries from the user from the print queue. This is useful if a program
outputs too much, or if ^B was accidently pressed.
- *PrintOut <filename>
Causes the specified file to be printed to the currently selected logical printer.
- *Reroute <print job name> <logical printer name>
Will reroute a printout in the print queue to another printer. Jobs may be rerouted to
a special printer "HOLD", which holds the printout in a
queue awaiting further instructions.
And commands only available to supervisors:
- *Credit <account number> <amount>
Older server code: Adds the specified amount to the balance of the account
given. Amounts are in units of 1K.
The maximum possible balance is 65535K, and setting all balances to this value
effectively disables the accounting system (well, the user will have to fill 64Mb).
The credit details the amount of space the user has available, and not the
space already taken.
- *Credit <account number> <amount> <disc name>
Version 2.00 server code: As for *Credit, but
set on a disc-by-disc basis.
- *Debit <account number> <amount>
Older server code: Performs the reverse of
If the supervisor removes all credit, the account is bankrupt and user cannot
- *Debit <account number> <amount> <disc name>
Version 2.00 server code: As for *Debit, but
set on a disc-by-disc basis.
- *Destroy <specifier> <disc name>
This command is used to destroy corrupted directories by turning them into a file, which
I guess can then be deleted in the normal way.
WARNING: Can be applied to root, with the obvious consequences!
If you receive system messages such as "Wrong number of files in dir. on drive 0 in
WORK" and attempts to write to disc are replied with "Disc Read Only", use
this command to zap the offending directory. You will lose the directory and
Cause the server to enter utility mode, mainly used in conjection with
- *LogOff <specifier>
This will logoff the user specified, or the user at the station specified.
You may specify multiple users by using commas:
*LogOff angela, sharon, rayanne, danielle, rickie
or by using wildcards:
The latter will log off everybody except the person typing the command.
- *PGo [<logical printer name>]
Restarts printing after *PStop stopped it. This can be
applied to all printers or to a specified printer. The print job that was current at the
time of *PStop will be restarted from the beginning.
- *PStop [<logical printer name>]
Stop printing on the printer specified, or all printers if none specified.
Used if the printer has jammed, or is producing unwanted output. The supervisor can
*PStop and then examine the print queue.
There is no facility for dealing with users. This is performed with the user editor which should be in a directory called SysProgs within the root of the main drive.
This is the way that the discs are allocated:
A, B, C & D - Floppy discs, as marked on
the back of the MDFS unit.
E through L - Harddiscs
E - Controller 0, drive 0
F - Controller 1, drive 0
G - Controller 0, drive 1
H - Controller 1, drive 1
I - Controller 2, drive 0
J - Controller 3, drive 0
K - Controller 2, drive 1
L - Controller 3, drive 1
The SCSI devices are allocated as:
0 - harddisc
1 - harddisc
2 - harddisc
3 - harddisc
4 - reserved for tape drive
5 - reserved
6 - reserved
7 - the MDFS (master)
Harddiscs can have partitions. The first
partition is number 1 (not zero). Therefore
the second partition on a disc with identity
3 is "J2".
Normal SCSI drives will only support devices
E, F, I and J.
The devices G, H, K and L are only possible
with an Adaptec controller that has a second