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