The MDFS

EEA index

MDFS
Description
Hardware
Error codes
Accessing
Users file
Print banners

Intro
FileStore
Others
Clocks
Bridges
Interfaces
Misc h/w
Testing
Misc info

Introduction

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.

 

Additional commands

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 wildcarded.
  • *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 the CSD.
    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 *commands).
  • *Discs
    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
    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 *Credit.
    If the supervisor removes all credit, the account is bankrupt and user cannot save anything.
  • *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 anything within.
  • *Finish
    Cause the server to enter utility mode, mainly used in conjection with *Fast.
  • *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:
       *LogOff *
    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.

 

Disc allocation

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
  drive attached.


Copyright © 2008 Rick Murray