Image; GIF 5K

Modular Disc Filing System

 

 

  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, SCSI discs and a tape drives.

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 RiscOS 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
     Expanded to have 'P'rivate items. Also may report "/spl"
     or "/prt" for items awaiting printing.

  *ACCOUNT <userID> [<main account>] [(<aux. account>)]
     Changes the main and/or auxillary account for the
     user specified. User IDs may be wildcarded.

  *BALANCE [<account>]
     Report the balance of the specified account, or the
     current account if nothing specified.

     NOTE: This has changed since v2.00 of the MDFS
           code. The syntax is now:
             *BALANCE <account> <discname> 

  *DEFACCESS
     Similar to *ACCESS; 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.

  *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 is 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. Can be rerouted to a�special printer "HOLD",
     which holds the printout in the queue awaiting further
     instructions.

And commands only available to supervisors:

  *CREDIT <account number> <amount>
     Add the specified amount to the balance of the
     account given. Amounts are in units of 1K.
     Maximum possible balance is 65535K, and setting
     all balances to this value effectively disables
     the accounting system.
     The credit details the amount of space the user
     has available, and NOT the space already taken.

     NOTE: This has changed since v2.00 of the MDFS
           code. The syntax is now:
             *CREDIT <account> <amount> <discname> 

  *DEBIT <account number> <amount>
     Performs the reverse of *CREDIT. If the
     supervisor removes all credit, the account is
     bankrupt and user cannot save anything.

     NOTE: This has changed since v2.00 of the MDFS
           code. The syntax is now:
             *DEBIT <account> <amount> <discname> 

  *DESTROY <specifier> <disc name>
     Used to destroy corrupted directories by turning
     them into a file.
     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 <spec>
     Will logoff the user specified, or the user at
     the station specified. You may specify multiple
     users by using commas:
       *LOGOFF rick, anna, james, david, amy
     or by using wildcards:
       *LOGOFF *
     will log off everybody except the person typing
     this command.

  *PGO [<logical printer name>]
     Restarts printing after *PSTOP stopped it. This
     can be applied to all printers or a specified
     printer. The print job current will be
     restarted at 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.

 

 

  Utility Mode (accessed using the FAST terminal, or by direct serial link) will not be discussed as it is fairly self-explanatory. What will be explained, briefly, 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 E, F, I and J.
  G, H, K and L are only possible with an Adaptec
  controller that has a second drive attached.


Return to econet index


Copyright © 1999 Richard Murray