FileStore hardware

EEA index

Error codes
Disc format
Disc image
Password file
E01 vs E01S
SD card

Misc h/w
Misc info


The Acorn FileStore server is a dedicated 6502-based unit with 64K of ROM and 64K of RAM.
Provided onboard are two floppy disc drives, and provision for a harddisc. Battery-backed memory (NVRAM) is also provided for storing the time and configuration options. The entire unit is housed in a Master Compact style box, with another one which fits on top if you have a harddisc.

Here is a picture of a FileStore (base unit only) atop my Ethernet hub, with an SJ clock box (not currently used) on top of that. To give you an idea of size, an MPman FUB-34 MP3 player is on top of it, and the discs you can see on top of the pile on the right are 100Mb iomega zip discs. In physical terms, the patterned front flap is 35cm across.

A FileStore


In more detail

At initialisation the EPROM contents are copied into RAM, and from that point on the memory map is almost entirely within the RAM area; the hardware is memory-mapped. This strange act is performed because the RAM is 'faster' than EPROM, and in this instance we don't wish to have any unwanted delays.
The base operating system is a very cut-down version of the BBC MOS, so accordingly it provides several BBC micro style capabilities. For example, a limited set of OSBYTE and OSWORD calls. Others, such as OSWRCH direct their output to the printer, as there is no display device.

The master system clock runs at 8MHz. This is divided by four to produce the 2MHz timing that that microprocessor requires.

The on-board Econet interface (that same type as used in the Master and RISC OS machines) will interrupt the microprocessor via NMIs. However it is possible to mask out these Non-Maskable Interrupts (!), and this is what the FileStore does during disc accesses, where it waits on polling the disc as that is faster than using interrupts, but has the side effect that the server could appear to 'hang' upon a hardware problem (such as defeating the door flap and then ejecting a disc while the server is trying to read it - the server will appear to have crashed instead of reporting a disc error).

The floppy disc controller is a 2793 FDC which is programmed to support 250kbps data transfer (MFM encoding). The floppy format is quite similar in concept to the ADFS 'L' format disc, more details here.



The parallel printer connection uses a 26-way IDC plug connected to a ribbon cable connected to a narrow Centronics plug. This is the same method used to attach a BBC microcomputer to a printer. The pin-outs are:

   1  !STROBE  (not) Data ready strobe
   3  D0       Data, bit 0
   5  D1       Data, bit 1
   7  D2       Data, bit 2
   9  D3       Data, bit 3
  11  D4       Data, bit 4
  13  D5       Data, bit 5
  15  D6       Data, bit 6
  17  D7       Data, bit 7
  19  !ACK     (not) Data Acknowledge
  STROBE and ACK are inverted, active low.

  Even numbered pins 2 to 22 are GND (0v).

  The remaining pins are not connected.
Printer connections
This diagram is looking down on the SOCKET, not at the the end of the plug.
The narrow Centronics plug on the back of the FileStore may be a problem. I have not actually seen a narrow-Centronics-to-wide-Centronics parallel lead.
But worry not! If you open up the FileStore, you will see this narrow Centronics lead connects by way of a flying lead, to a 26-way IDC socket. Simply unplug this and plug in a standard BBC microcomputer parallel lead, as shown in the picture above. Dangle this out the back, and in to any printer you care to drive from the server...

The printer port is controlled, as with a BBC microcomputer, by a 6522 VIA; with the outputs buffered and the !ACK going directly to CA1, while !STROBE is controlled from CA2.
It is interesting that the service manual states "Busy high indicates that the printer is unable to accept data.", while there is no connection to 'Busy' marked on the schematic...

Port B of the VIA is unused, with the exception that CB2 controls the on-board clock/terminator circuit. Is per specification, CB1 is pulled high. PB0 to PB7 are non-connects.

Possible FileStore E01 differences: It would appear, from the schematic, that CB1 connects to the door sensor, while Port B is used to set the "net ID". Does this server not have a configuration for setting the station number?

A warning for E01 owners...
In discussions with Johan Heuseveldt, it would appear that his E01 server does not have the Net ID stuff (VIA port B), and furthermore CB1 is pulled high and doesn't read the door flap.
In this respect, not only is part of the E01 mechanism closer to that of an E01S-without-onboard-SCSI, but additionally it does not match the schematic given in the FileStore service manual!
For the E01 information given here, I have relied upon the schematic to be correct. Perhaps this was a silly assumption!


The door flap

On the E01, as stated above, the VIA's CB1 connects to the door flap. I would imagine that a change of state causes an interrupt. [or may not, depending on version?]

On the E01S, the door flap is read by a 74LS30 logic gate (between IC13 and IC17 on the schematic) which is mapped into memory at &FC2C. I would imagine that the state of the door flap is determined by regular polling.
To check the state of the flap, read &FC2C and examine bit 6. The 'legal' way is OS_Byte 128 with X = 0.


The indicators

The green LED is always connected to +5V.

The red LED is connected to bit 7 of the "miscellaneous functions latch" (a 74HC273 on the E01 and a 74HCT273 on the E01S) which is mapped in at &FC08.
It is advisable to use the OS routine (OSBYTE 137) to control the LED as the latch would otherwise partially control the floppy discs.
As the latch is a write-only device, it may be useful to know that there is a copy of the contents of the latch in page zero at address &A4 (for the E01; unknown for the E01S), thus code to control the LED directly, assuming X is 0 (off) or 1 (on) would be:

   TXA         ; copy X into Acc
   ROR  A      ; set or reset carry upon value from X
   LDA  &A4    ; load the RAM copy of the latch value
   AND  #&7F   ; mask out the LED bit (turns LED off)
   BCC  +&02   ; if carry NOT set, skip next instruction
   ORA  #&80   ; set the LED bit (bit 7)
   STA  &FC08  ; write the new value to the latch
   STA  &A4    ; and also to the RAM copy
   RTS         ; return to caller
This is, incidentally, what the FileStore's MOS does (with thanks to Johan).

Note again, you will need to check that this page zero value is correct for the E01S, though I don't think this part of the MOS changed much between versions.


The on-board clock (network ticker, not RTC)

The FileStore provides an automatic clock. This kicks in when the FileStore detects no existing clock signal. Previously I wrote that the clock also activated itself when the server detects an error in the data sent or received, but I am not certain that is a good idea - errors could be caused by bad wiring, dodgy termination, etc. This is not something that can be fixed by enabling another clock!
Johan explains why this occurs:
There is a problem with the use of CB2. It also serves to switch in a preload on the data lines of Econet. Now the remarks that the clock can kick in unexpectedly can be understood. When transmitting, checks are made to see if the data is reliable. If not, CB2 is used to preload the data lines.
Unfortunately CB2 is also a switch for the internal clock of the FileStore, so by switching on the preload, you also switch on the clock!

FileStore clock linksThe internal clock is derived from the system master clock. 0.5µS pulses are fed into latches and counters. You can alter links 3 to 7 to set the required clock rate.
The picture on the right shows the E01S clock links. If you open up your FileStore and turn it until you are looking at it from the right, you will see the clock links as shown, with LK7 away from you and LK3 closest to you.
On the E01, the links are given in reverse, LK3 away and LK7 close, however the meanings of the links are identical - this is why the link names are not specified in the picture.

You can see in the picture that my FileStore's clock is set to a 2µS mark with a 2×2µS space. This is a little bit slower than it can go. I was playing with it to see what speeds it worked at and, well, Heroes was about to start so I took this picture and reassembled my unit in record time... Gotta get my priorities in order - saving the cheerleader first, saving a microsecond on each bit later on!
The FileStore (indeed all Econet machines) will work with the clock set to a 1µS mark with a 4×1µS space - which in both servers is the outer two links made. This will provide clock running at 200kHz giving a throughput of around 11Kb/sec.
According to the documentation, the FileStore can work with a clock period of 4µS (try around 0.75µS mark and 3.25µS space), however the on-board clock does not offer any option to obtain a 4µS period. For the maximum fine tuning, you are likely to require an SJ clock.

There seem to be some "horror stories" about the clock cutting in when another clock is already operating (this seems to mainly affect the E01), so the easy way to disable the onboard clock is to not make any of the timing links.

It is important to realise that the FileStore uses logic chips to generate the clock signal, rather than the special chip used in the clock boxes. For this reason, you should be aware that the FileStore has less ability to drive the clock pulses around the network and it may not be able to perform on networks longer than about six metres.
A typical FileStore installation will, therefore, contain an external clock box.


Circuit layout - E01S

Below is a small diagram which shows you roughly the layout inside an E01S server...
Outline of the E01S main board.
Click the image for a larger (725 x 581, 36K) version.


Circuit layout - E01

Here is a diagram of the circuit of the E01 server, from the service manual...
Outline of the E01 main board.


Disassembly instructions

(a.k.a. Breaking your FileStore in five easy steps)

  1. Power down the FileStore - this is the "Duh!" option...
    (open drive door to flush buffers, remove discs, switch off)
  2. Unplug FileStore from mains supply.
  3. Unclip the front and rear mouldings.
    The rear is fairly easy but the front is more problematic. Unclip the front from underneath so the scratch marks won't show. ☺ Be careful when removing that front panel as a small group of wires pass from the main board to the front panel (for LEDs and door sensor).
  4. Unclip the side mouldings.
    (squeeze the bottoms upwards a little then unclip by rotating the bottom away whilst pressing with the top... it's hard to describe, your hand should do a motion similar to the opposite of opening a ring-pull can (using the one handed method...))
  5. Remove the four screws holding the metal cover in place, then slide the cover off backwards.


  • To remove the drives for inspection, or to access the circuitry underneath, remove the top shield from the drives (if you have one) and then remove the mounting screws in the base of the FileStore. Disconnect the data cables and power cables. You should now be able to remove the drives by sliding them backwards and then up.

To put the unit back together, perform the above steps backwards!
Do NOT forget...

  • That little group of wires connecting the front panel to the main circuit board.
  • Anything else you've unplugged.
  • Ensure that all earth connections are good.
  • Whizz the server over and around again while shaking it gently, ensure nothing is rattling around inside.

Copyright © 2009 Rick Murray, with thanks to Johan Heuseveldt.