[comp.unix.aux] SyQuest 45Mb Removable drives and A/UX - the answer

name@portia.Stanford.EDU (tony cooper) (01/12/90)

SCSI disk drives have various parameters that can be set by the user. These
parameters are grouped into groups called pages.

One page concerns the way the disk drive recovers from errors - this is called
the Error Recovery page. The parameters in this page are vendor-specific but
most modern SCSI drives have the parameters described below. These drives use
error detecting or correcting codes to help ensure data integrity. The Error
Page specifies how the drive is to handle detected errors. The generic SCSI Disk
Driver in A/UX 1.1 wants the following parameters set to the following values:

TB = 1 to ensure that blocks with detected errors (recovered or not) are
transferred to the Mac (TB = 0 means the block is lost)

RC = 0	to ensure the drive stops to correct errors (RC = 0 means the drive does
not stop, so is faster but less reliable)

EEC = 0 (EEC means Enable Early Correction) I don't know what this does

PER = 1	to enable the reporting of recovered errors using a CHECK CONDITION and
appropriate Sense Key

DTE = 0 enables data transfer for any data that can be recovered using error
correction

DCR = 0 enables data correction

These are sensible values and most SCSI hard drives have them set as above by
default. In addition Apple's HD SC Setup v2.0 uses the Mode Select command to
set the above values. But the default for SyQuest SQ555 removable drives is to
have PER = 0 and this is not changed by the drive formatting software that comes
with most SyQuest drives for the Macintosh. The A/UX generic SCSI Disk Driver
checks these values, sees that PER is wrong, and issues a Mode Select command to
fix it. The data sent with the Mode Select command is the Mode Header consisting
of 4 bytes of value zero followed by 12 bytes of Error Page data. The Mode
Header tells the SyQuest how long the Block Descriptor data is. The Block
Descriptor data is 8 bytes which sets the blocksize of the drive. In this case
the Mode Header zeros say that the Block Descriptor data is not present. The
SyQuest reads the zeros, sees that there is no Block Descriptor data, and stops
reading.  It does not read the Error Page Data that follows. Should it? I don't
know what the SCSI Standards say about that. Anyway, the SyQuest only reads 4
out of the 16 bytes and so the SCSI Manager reports the error "MORE DATA THAN
DEVICE EXPECTED". So the Syquest drive does not work under A/UX.

The easiest way to fix this problem is to set the Error Page Parameters
correctly while in MacOS. I have written a program called "Fix Error Page" to do
it. It can be done anytime, before or after formatting the cartridge. The
changes remain until altered by another Mode Select command even if the
cartridge is reformatted. It works for drives other than SyQuests and may help
other drives that do not work under A/UX to do so.

This program works for the new 21ms seek time 30000 hours SyQuest drives from
DPI (that's what I have). It also works for MicroNet SyQuests. I am sure that it
will work for any SyQuest drives - the old ones and the new ones. If not, I'll
eat my hat.

I have submitted the program to Sumex-aim.stanford.edu. It includes some hints
on using the drives under A/UX (such as how to make a bootable cartridge). If
you can't get to sumex or need more information send mail to me.

Cheers, 
Tony Cooper 
tony@popserver.stanford.edu