BeebSCSI for FileStore

BeebSCSI is a great product but it only implements SCSI features required by Acorn's ADFS and Domesday system.  The benefits of this are that it is faster than a full implementation and from my point of view the code is easier to understand and hence modify.

In particular BeebSCSI's implementation of the MODE SENSE command is very simple it only responds to a request for 22 bytes from any Parameter Page and returns the contents of the .dsc file from the SD card.  FileStore requests two additional Parameter Pages at start-up to check for the copyright text, the FileStore Dealer Test Software utilities request various other Parameter Pages as follows:

Parameter Page No. Title
0 .dsc contents
1 Error Correction Status
3 Format
4 Rigid Disk Drive Geometry
32 Serial Number
33 Manufacturer
34 Descriptor
35 System Flags
37 Copyright #1
38 Copyright #2

I have retained the original functionality by returning the .dsc file in response to a request for Page 0.

Although the Dealer Test programs requests these pages most of the information is not used and may just be displayed on the screen.

In addition two extra SCSI commands have been added: INQUIRE and SEND DIAGNOSTIC neither of which do anything useful but their implementation kills off the error messages.

These changes only required modification of the scsi.h and scsi.c source files.

I also found a small issue with the original code in that if the serial Rx input is left disconnected the processor may lock up, presumably because of multiple interrupts caused by noise ?, a simple fix is to enable the pull-up on Rx in, a small change to uart.c, the remainder of the original project is unchanged.

So here are the modified files:

and more usefully the hex files for loading onto the AVR processor:

The first file has Debug disabled whilst the second has it enabled, useful for testing in a FileStore.

The Bootloader is optional, the already loaded bootloader works fine however this version enables later upgrade via the SD Card.

Disk Geometry

Most of the disk parameters are defined in the .dsc file on the SD Card (Block Length, Number of Heads, Cylinder Count).  The only other significant parameter is Sectors per Track and this is defined in the 'Format Device' Mode Parameter Page and I have set that to 33 which seems to be a common value.

 

Back to FileStore E01E SCSI

 

Acorn Home Page