FileStore Configuration BBC/Master SCSI Host Adapter Configuration
This board started out as the SCSI Board for the FileStore E01E however because the circuits for Acorn's FileStore SCSI interface and Winchester Disc Host Adapter are so similar (see Acorn SCSI Host Adapters) I decided to make this a duel purpose board that could be used for either function. With the addition of an onboard BeebSCSI it can be used in four different configurations:
The connection to the BBC/Master Computer is via the (external) 1MHz Bus, I did consider also making it AIV capable but the additional circuitry required would not fit on a Eurocard.
Note that it is not possible to have BeebSCSI and an external SCSI device attached at the same time as the simplified interface I have implemented for BeebSCSI does not use a multi drop SCSI bus.
BeebSCSI is part of the Domesday Project and I recommend going to that very well documented site for more in-depth information.
(I had originally planned to use an RaSCSI (Raspberry Pi SCSI) but as of their October 2022 release they dropped SASI support).
Hardware Configuration
The board carries a number of configurable elements:
Bus Interface - choose between PL2 which connects to the FileStore bus or J200 for the 1MHz Bus. The data bus buffer IC30 is only required for the FileStore configuration. For the 1MHz Bus configuration IC200 provides additional address decoding and six 2K2 resistor packs provide for the correct termination of the bus. Links LK200 and 201 are fitted to select the appropriate board select signals.
Host Adapter - this is the core of the board and is essentially the original Acorn circuit from the FileStore/Winchester Disc Host Adapter. The original BeebSCSI implemented this in a Xilinx FPGA but I have reverted to the discrete logic implementation to retain the option of using real Winchester drives.
SCSI Interface - PL1 provides a 50-way 'internal' SCSI bus, the four resistor packs providing the correct bus termination.
SCSI Emulator - IC100 runs the BeebSCSI code. A JTAG interface is provided for AVR programming and a serial interface for monitoring messaging. BeebSCSI also includes a USB interface which is currently unused but is there for possible future expansion. The processor communicates with the Host Adapter at 5V TTL levels, the SCSI terminators are not required however 10K resistors are fitted at RP1a and RP1c as pull-ups for the open collector drivers. The INT/EXT signal (processor PC5) is used to signal to the code if it is to operate as an (external bus) SCSI Host Adapter or (internal bus) AIV Host Adapter, LK100 ties this to ground for the normally required external mode of operation.
Host Adapter Registers
The Host Adapter provides access to the SCSI bus via a number of registers which sit in one of two address blocks depending on whether they are accessed via the 1MHz Bus or the FileStore Bus: as follows:
Register Address | Function | ||
FileStore | 1MHz Bus | Read | Write |
$FC30 | $FC40 | Read Data Register | Write Data Register |
$FC31 | $FC41 | Read Status Register | BeebSCSI Configuration |
$FC32 | $FC42 | not used | Assert Select |
$FC33 | $FC43 | not used | Set/Clear Interrupt |
'BeebSCSI Configuration' is a special address which provides a means of communicating with the BeebSCSI processor and is currently used to enable/disable debug features. In the original BeebSCSI implementation this is addressed at $FC34/44 however to simplify the hardware I have moved it to $FC31/41. This means that rather than issuing an *FX 147,68,<command> use *FX 147,65 ,<command> instead i.e. *FX 147,65,0 will switch off all debug, *FX147,65,1 will switch on all debug. Obviously this feature cannot be used when fitted in a FileStore.
Firmware
BeebSCSI firmware was originally developed in what was Atmel Studio, now Microchip Studio. Studio is likely to be phased out in time in favour of Microchip's MPLAB IDE, I have successfully compiled the code on this platform (V6.05) using the original GCC compiler and then used a PICKit4 to program IC100.
The original BeebSCSI firmware was developed to be used with a BBC/Master Computer with a SCSI Host Adapter fitted. I recommend taking a look at the BeebSCSI Wiki which provides extensive information on the system. Version 2.6 of the firmware can be downloaded from here BeebSCSI V2.6.
FileStore can be made to work with the original BeebSCSI firmware provided you have a FileStore disc image on an SD card and disable the 'Acorn' copyright check at start-up. However you will not be able to run the Winchester Disk utilities on the Dealer Test Disk. To get around this problem I have produced a FileStore variant details of which can be found here: BeebSCSI for FileStore.
Here are a couple of SCSI images to get started, they are actually lifted from BeebEM. Just put them in a folder named 'BeebSCSI0'.
To use the FileStore without floppy discs you will need to copy the Passwords file over to the harddisk. This looks like it should be done by FSERVInit but it doesn't !
To do this you will also need to use a couple of commands from the Level 3 FileServer Utilities library - SETFREE and RDFREE.
Here are the full set of commands that need to be executed (from a MASTER):
*NET
*I AM SYST
*ADFS
*SETFREE SYST 1000000
*RDFREE SYST (this confirms SETFREE worked)
*NET
*SDISC FLOPPY4
*ACCESS PASSWORDS LWR
*MOVE :FLOPPY4.$.PASSWORDS :FILESTORE.$.PASSWORDS
This asumes 'FLOPPY4' is the name of drive 4 and 'FILESTORE' is the name of the BEEBSCSI.
Schematic
Bill Of Materials
Front Panel Drilling
PCB
As a BBC/Master SCSI Host Adapter the board will just fit in a Hammond 1455L1601 case.