SCSI Command Set Summary ======================== +-----+--------------------------------------------+ | &00 | Test drive ready | | &01 | Restore to track zero | | &02 | reserved | | &03 | Request sense status (SCSI result) | | &04 | Format drive | | &05 | Check track format | | &06 | Format track | | &07 | Format bad track | | &08 | Read | | &09 | Read Verify | | &0A | Write | | &0B | Seek | | &0C | Initialise drive characteristics | | &0D | Read ECC burst error length | | &0E | Format Alternative Track | | &0F | Write Sector Buffer | +-----+--------------------------------------------+ | &10 | Read Sector Buffer | | &12 | Read device identity string | | &15 | Write drive characteristics | | &1A | Read drive characteristics | | &1B | Park heads/Start/stop unit | | | | +-----+--------------------------------------------+ | | | | &2F | Verify drive | +-----+--------------------------------------------+ | &70 | RAM diagnostic | | &71 | reserved | | &72 | reserved | | &73 | Drive diagnostic | | &74 | Controller internal diagnostics | | &75 | Read long | | &76 | Write long | | | | +-----+--------------------------------------------+ | | | | &C8 | Read F-code result from LVdos (LVFS) | | &CA | Transmit F-code to LVdos (VLFS) | | | | +-----+--------------------------------------------+ | &E0 | RAM Diagnostic | | &E1 | Reserved | | &E2 | Reserved | | &E3 | Drive Diagnostic | | &E4 | Controller Internal Diagnostics | | &E5 | Read Long | | &E6 | Write Long | | &E7 | Retry Statistics | | | | +-----+--------------------------------------------+ SCSI Status and Errors ---------------------- Some Acorn documents list SCSI errors in the range &20-&2F, and some documents list them in the range &60-&6F. The hardware controller documents list then in the &20-&2F range. What is not made clear is that bit 6 is used to indicate if the error is from the hard drive controller or the floppy controller. Floppy errors are the same as hard drive errors, ORed with &40. Floppy errors are also the 1770 status byte ORed with &40. Error &00 Ok &01 No index - is drive formatted? &02 Drive door open/Seek error/Seek not completed &03 Write fault/Media error (disc dirty) &04 Drive not ready &05 Malformed SCSI command &06 Track 0 not found &10 ID CRC error - ECC error in ID field - sector not found &11 Data CRC error - ECC error in data field &12 Address mark not found (sector found but no data) &13 unused &14 Seek error - Sector not found &15 Seek error - Track not found &16 unused &17 unused &18 Correctable data error/Data CRC error &19 Bad Track flag set in track accessed &1A Format error - track not formatted/wrong interleave/ID ECC error &1B unused &1C Unformatted or bad format &1D unused &1E unused &1F unused Floppy Errors &20 Invalid command to controller &60 Bad command &21 Illegal disc address &61 Bad disc address &22 unused &23 &63 Volume error &24 Invalid parameter to controller &64 Bad argument &25 Illegal drive number &65 Bad drive &26 unused &27 &67 Unsupported SCSI command &28 Cartridge changed &29 &2A &2B &2C Error count overflow &2D &2E &2F &6F Abort (Escape) &30 Controller RAM error &31 Controller program memory CRC error &33 ECC polynominal error &40 Write protected (floppy) &48 CRC error (floppy) &50 Sector not found (floppy) &7F Unknown SCSI result Drive Characteristics --------------------- Command &1A Read drive characteristics (Mode Sense) returns a data block with information about the addressed drive: Offset Data 0 Mode data length 1 Medium type 4 Density code 5 Number of blocks b16-b23 6 Number of blocks b8-b15 7 Number of blocks b0-b7 8 9 Block length b16-b23 10 Block length b8-b15 11 Block length b0-b7 12 b0-b6=Mode page, b7=Parameters are saveable 13 Mode page length 14 Tracks per zone b8-b15 15 Tracks per zone b0-b7 16 Alternate sectors per zone b8-b15 17 Alternate sectors per zone b0-b7 18 Alternate tracks per zone b8-b15 19 Alternate tracks per zone b0-b7 20 Alternate tracks per logical unit b8-b15 21 Alternate tracks per logical unit b0-b7 22 Sectors per track b8-b15 23 Sectors per track b0-b7 24 Bytes per sector b8-b15 25 Bytes per sector b0-b7 26 Interleave b8-b15 27 Interleave b0-b7 28 Track skew factor b8-b15 29 Track skew factor b0-b7 30 Cylinder skew factor b8-b15 31 Cylinder skew factor b0-b7 32 b5=Device supports removable media The disk size in bytes can be calculated with: (data?5*65536+data?6*256+data?7) * (data?9*65536+data?10*256+data?11)