FileStore description

EEA index

FileStore
Description
Hardware
Error codes
NVRAM
Disc format
Disc image
Accessing
Password file
E01 vs E01S
Rescuing
Emulator
SD card

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

What is the FileStore?

The FileStore is a development from earlier servers operating on a BBC microcomputer with a co-processor. It is a single-CPU design. You can find out more on the FileStore's hardware by clicking here.

Two versions of the FileStore exist. There is the original E01, then the later E01S.
The primary difference is that the E01S contains a SCSI controller on-board and can therefore have up to four harddiscs (40Mb or 60Mb capacity, a potential total of 240Mb) connected in a daisy-chain fashion. With the earlier E01, the SCSI interface resided in the expansion module so it was generally limited to one harddisc (which was usually 20Mb).
The exact differences are listed in table form in the differences page.

The "Stacking FileStore" is another name for the E01S.

 

The command set

The server, both versions, support the standard manager's interface for operation codes 0 to 32.

The server supports the standard set of star commands:

  • *Access <object> <permissions>
    Change the access permissions for the specified file.
    The total access string is LWR/wr which means:
    • L - file is locked, it can be modified but not deleted
    • R - the owner can read the file
    • W - the owner can write to the file
    • r - everybody else can read the file
    • w - everybody else can write to the file
    To keep your files private, use WR/ and to share (read only) with others, use WR/r.
  • *Bye
    Log off.
  • *CDir <name>
    Create a new directory within the current directory.
  • *Delete <object>
    Deletes a file.
  • *Dir <spec>
    Change directory.
    Note that if you leave your user directory and return using the command line, you may see it as a 'public' directory and not 'owner' as it should be.
    If this happens to you, return to your user directory as owner using
    *Dir &
  • *I Am [<number>] <user> <password>
    Logs you on to the file server; optionally providing a file server number if you wish to connect to a different server than the default.
    There is a security risk in typing your password on-screen. You can replace the password with ':' (or leave it off entirely on RISC OS machines) and you will be prompted for your password, which will not appear as you type it in.
    For RISC OS machines, note that this command selects the network filing system first, so it is equivalent to *Net and then *Login <etc...>
  • *Info <object>
    Returns extended information on a file, such as:
    MyFile FFFF1200 FFFF8023 00043 WR/ 01:12:85 000145
    This means that the file is called "MyFile", its reload address is &1200, its execution address is &8023 (the upper 'FFFF' is beyond the addressing of the 6502 so it is probably ignored), the filesize is &43 (which is 67 bytes), the file access is owner read/write with no public access, the file was last saved on the 1st of December 1985 (it's a date, not a time!), and the file SIN (internal geeky stuff) is &145.
    Note that RISC OS machines will display this information in a more friendly format, and also such machines provide a filetype plus full date instead of load/exec addresses.
  • *Lib <spec>
    Change your library directory. This is a directory that is searched if a program you call is not in the current directory.
  • *Pass <old> <new>
    Change your password. You must specify the old password to be able to set a new one.
    There is no management command to set up passwords other than logging in as each user and doing it manually. This is where a user file editor may be a useful thing!
  • *Rename <object> <new name>
    Give a file or directory a new name.
  • *SDisc <disc>
    Change to a different disc on the file server.
Other commands, such as *Cat (or *.) and *Ex may be handled by the operating system of the computer that you are using.
Perhaps the most bizarre omission is the *Discs command, which reports what file servers are available. I cannot see this in the FileStore firmware, nor in the NFS or DNFS dumps. Is this a stand-alone program on BBC machines?

Please note that some systems (such as RISC OS) may implement some of this stuff itself by talking directly via the server interface to obtain information.
By way of example, under RISC OS, the *I Am command is actually the following alias definition:
Set Alias$I IF NOT(("%0"="AM")OR("%0"="am")OR("%0"="Am")OR(
"%0"="aM")) THEN %I %*0 ELSE %Net|m%Logon %*1

 

Management commands

The server supports a number of special management commands which allow the system administator to add and remove users, and also to configure the server.

The following management commands may be issued by a user that is logged on with system privileges:

  • *NewUser <user name>
    Creates a user account for the specified username.
  • *Priv <user name> [S or L or nothing]
    This sets the privilege for the named user to System (use with extreme care!), Locked (they cannot change their own password etc) and Normal.
  • *RemUser <user name>
    Removes the user account for the specified user. Does not remove their URD or files.
  • *FSReport
    Reports the current server status in a really cryptic way. The error codes are explained here.
  • *FSMode [M or U]
    Switches to maintenance mode if you type *FSMode M, and when in maintenance mode typing *FSMode U will restart the server in normal operational mode (user mode).
    This is akin to opening the door flap, and it permits the system manager to issue various commands that would not be possible with users able to access the system.

The following commands may only be entered in a maintenance mode. Maintenance mode 0 is where you arrive should you switch on the server with the front flap open. Maintenance mode 1 is where you arrive should you open the flap in normal operation, or enter the command *FSMode M from a station.
For all practical reasons, both modes appear to operate in much the same way. There may be subtle differences, however if there are - I am not aware of them.

Note that when in maintenance mode, the server has no concept of the filesystem so you cannot catalogue directories, add and remove users, etc.

  • *PrName <printer name>
    Set the FileStore's printer server name (max 6 chars). This appears to default to "PRINT ". It may be useful to name the attached printer, such as "DJ-540".
    SERVER BUG: It appears, on the E01S, that this command is only accepted in USER mode, not maintenance mode! Attempting to perform this in maintenance mode will result in "Bad command in Maintenance mode 1"...
  • *PrPage [Y or N]
    Sets printer form feeds on or off.
  • *FSFormat <drive> <disc name>
    Format the floppy disc in the drive specified, giving the disc the name requested.
    The left drive is 4, the right drive is 5.

    The server will instruct you to "Please wait...". It will then perform the format (your drive will 'thunk' eighty times), followed by a verify of the disc (eighty more 'thunk's - and if you are close enough to hear the server well, listen out for retries), and finally the directory structure and a blank password file will be written to the disc.
    After a few minutes, you should receive a notify message saying "OK". If anything went wrong, the FileStore will usually reply "Disc fault".

    Some people advocate that, as it is old hardware, you can often 'recover' a disc that won't format by trying to format it numerous times. I tried this with a disc that didn't want to work, and after four formats it reported "OK" as hoped for.
    The risk here is obvious - either the drive is knackered or the disc is knackered (it's the disc in my case, others work fine). If it takes four tries to successfully format the thing, exactly how much confidence can we have in the server's ability to write data to it and, later, read it back correctly?
    Bin the floppy, find one that works...

    You cannot format the harddisc using this command. You will require the "FServFmt" software in order to perform the actual format - which ideally should run on a Master or Master Compact, but you may get some joy using the 65Tube (not !65Host) emulator?). Then you will require "FServeInit" to lay out the disc structure.
    Note also that the file server expects to work with the Rodime RO650 and RO3000 series; and, to quote from the service manual:

    The disc controller pages may be examined, and the contents of user pages A, B may be written: for Acorn drives, these must contain the eight characters "(C)Acorn". Note that near page B is 'write-once:' after it has been written, another attempt is an error.
    The implication of this being that adding a replacement harddisc to a FileStore is not as easy as we would have hoped - it isn't possible to simply locate a SCSI-I harddisc, plug it in, and format it accordingly.
    In fact, I managed to locate an identical Rodime (back in 1999) but as near page B already contained data, I could not write the "(C)Acorn" message, so the FileStore didn't want to 'see' the harddisc.
  • *FSVerify <drive>
    Verifies the specified drive; will instruct you to "Please wait..." and after about a minute it should notify you with the message "OK".
  • *FSNameDisc <drive> <disc name>
    Renames the specified disc.
  • *FSMaxDrive <maximum drive number>
    This sets the maximum drive. The value '5' enables all drives, while the value '3' disables the floppies.
  • *FSMaxUser <maximum users>
    This sets the maximum number of users that are allowed to log in at one time, up to a maximum of 80.
    I do not have the FileStore manager's guide to know what actual difference this command makes, though at a guess I would imagine that if you configure a maximum of 8 concurrent users (instead of, say, 30), then it can allocate more space be set aside for caching data?
    The memory in the server is limited, and it has to hold at least two things:
    • Information on the users currently logged on (who it is, where they are, URD, open files, etc)
    • Information on the root directory of all discs, plus - most likely - space for all of the directories currently being accessed by users during the point of the user issuing the command '*.'.
    The server is also likely to require to cache at least a sector for files opened for byte access, plus it may also cache or partly cache the passwords file, in addition to maintaining free space maps of all discs and the status of all discs. Oh, and it may also provide a smallish buffer for data to be printed in order to return the workstation to the user faster than the slow 1980s-era dot matrix printers.
    Logically, then, if you set the most users able to log in at once, you will instruct the server to reserve a lot of space for user profiles. Conversely, if you set a reasonable number of users allowed to log in at once, you will permit more space to be allocated to everything else.
    As I am the system manager and the only user of my network, I allocate as many users as I have Econetted computers times two - in other words, six users.
    A little story.
    The network manager we had at school was a tempermental bloke who thought a good idea to end the lesson tidily was to walk to the big master power switch on the wall and crank it. All of the stations died instantly.
    The FileStore was on a separate power supply (thank god!).
    I think he spent his time there totally unable to comprehend why, three lessons in, the server started reporting "Too many users" and the frequent number of corrupted files, often due to the stations being switched off during a file save!
    The teacher hated Acorn kit. Calling it slow, buggy, mostly faulty, and saying it was generally highly unreliable.
    When I ran 'unofficial' computer classes over the weekends, I was pleased to report to the headmaster that the system was not only as fast as those clunky 5¼" floppies on some of the computers, but that it also worked flawlessly. All it took was to ensure everybody *Byed themselves.
    As an analogy, for the headmaster who was not a geek, it was akin to parking your car in town and walking away with the doors wide open, then expressing surprise if something happens... (yes, I know it's a terrible analogy!)
     
    I hope this twit learned the error of his ways. In retrospect, the Acorn kit put up with an awful lot of crap from him - just try pulling the plug on a Linux box and see how much of the rest of your life you'll spend staring at obscure fsck messages. In fact, as a geek to the ex-pat community, I can tell you that Windows XP with NTFS really doesn't cope well with people switching off the computer without telling it to shut itself down first; often a blue-screen at boot with the message "UNMOUNTABLE BOOT VOLUME"...
     
    Sane people have more respect for the system that they are supposed to be managing. Then again, would sane people have taught at my school in the first place? :-)
  • *FSStation <station number>
    Configures the FileServer's station number. This takes effect immediately - and may well crash your NetFS. ☺
    Unless you have multiple servers, it is unusual to set your server to anything other than station x.254.
  • *FSProt [ON or OFF]
    Sets whether or not the FileStore is 'protected'. The server starts up protected, however if you wish to poke data into memory or execute a procedure call (refer to the source code for my !FSUtil software for examples), you will need to do it to an 'unprotected' station.
  • *FSUser <name>
    Used in maintenance mode to set the user name that is used to log in when the FileStore is turned on with the drive door open.
    This is to prevent a non-administrative user from starting the server and formatting their own disc, etc, thus giving them system privilege access to the server.
    By default, the FSUser name is Syst. If you are using your server in any sort of shared environment (i.e. not your bedroom!), it is imperative that you change this to something that will be difficult for anybody to guess and easy for you to remember, perhaps a favourite food in a non-English language (i.e. "teriyaki") or perhaps a character from a TV programme you like (i.e. "hiro"). It doesn't need to be strong security as hopefully you'll have the benefit of being able to restrict physical access to the server.
    Keep your hard passwords for your system manager's account, because if a person can physically get to the server, they can always bypass the FSUser by playing with the hardware...

The configuration is stored in the onboard CMOS RAM. It is possible to view/edit CMOS directly by uploading a small piece of patchcode into the server. However it is recommended that you use the !FSutil program (part of the !BudgieMgr suite) because the editor routines have been written and tested. [except with FS version 1.40!]

However, if you prefer to do things the hard way... then click here!

 

Help! The management commands don't work!

Things may be a little bit different for the E01 server. Try the commands without the 'FS' prefix (i.e. *Report, *MaxUser, etc...).
I notice on the schematic that the E01 has links for setting the "Net ID", yet it also has NVRAM. Can anybody tell me more about the E01 commands and configuration?

 

My FileStore

Some people think those who have collections of old stuff should include model numbers and such, like owning a "cool" number makes it a better server.

Whatever... If you are the sort that wants those sorts of details, I'll cater for you too!

Annotated south-east-to-north-west view of the FileStore E01S.

General
The FileStore is an E01S, serial number 01-AEH35-1000233.

Main board
The main board says, at the lower left side:

[acrn] ACORN
[logo] COMPUTERS  FILESTORE II  0182 000 ISS 3  LCT 8908
If we can assume that 8908 is a date, then I make it that my FileStore has been resurrected for its 18th birthday...
Oh, and yes, I am aware that this would make it later than the firmware. I see nothing wrong with this, it is an issue 3 board - perhaps the firmware was written for issue 2 or 1 and works as well with issue 3?

EPROM - original
The EPROM is a 64K type, a standard D27512. The logo to the left is a big 'i', I presume that is Intel.
There is a label on top that reads:

0282,008-A
STACKING FS
    ROM
(C)ACORN 1988
The EPROM contains the server code (FileStore 1.33) and a version of the BBC MOS.

You can download a dump of the EPROM contents:

This is not provided for emulations and such-like as somebody may own the copyright in it. The EPROM dump is provided purely in case your EPROM gets messed up (put in back to front, broken leg, etc) so that you can burn a new one and keep on going...

Network card
The network card is a later style (with collision detection). It does not have an 01-ADF10- number, simply a little sticker that says 295423.

PSU
The PSU, made in Japan, is notable for the label that reads:

BABY B MONITOR
STAND PSU
6109013486
Go figure!

Disc drives
Both disc drives have a sticky label marked 8811.


Copyright © 2009 Rick Murray, with thanks to Andrew Veitch