OverviewThe 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.
In more detailAt 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 VIAThe 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:
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.
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?
The door flapOn 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
The indicatorsThe 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.
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 callerThis 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.
The 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.
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!
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.
Circuit layout - E01SBelow is a small diagram which shows you roughly the layout inside an E01S server...
Circuit layout - E01Here is a diagram of the circuit of the E01 server, from the service manual...
Disassembly instructions(a.k.a. Breaking your FileStore in five easy steps)
To put the unit back together, perform the above steps backwards!