10-14-88 X3T9.2/88-135 TO: SCSI-2 Committee FROM: Thomas Wicklund / Ciprico RE: SCSI-2 Command Cross Reference In a fit of boredom during the last round of connector wars and in order to make some sense out of the SCSI-2 command set, I've put together a cross reference of all SCSI-2 commands. It might be useful to include in section 6 or 7 of the standard. It looks like it can also be used to provide better consistency between device types. I have the following notes / suggestions / corrections after building this table. I've used the single letter abbreviations for device types in my notes. - S and C devices have no vendor specific commands. Should some be included? - T, S, and C devices don't list C0 .. FF as vendor specific. They should be as section 6 reserves these as vendor specific. - T, L, P, and M devices only have 6 byte vendor specific commands, no 10 byte. Especially for M devices, where all medium changer related commands are 10 and 12 byte, it seems reasonable to provide vendor specific commands of the same length as predefined commands. - O devices have no 6 byte vendor specific commands. They also have far fewer than related devices (D, W, R). Does it make sense to add vendor specific commands to match the other device types? - There are no 12 byte vendor specific commands. - T devices don't document CHANGE DEFINITION. It should be added. - T and R define an ACCESS LOG command. I think this is obsolete. - The LOG and MODE operation codes are in error for O devices. The table on page 15-3 should be fixed. - P devices lack MODE SELECT and MODE SENSE. There's no good reason to prohibit them (this duplicates a previous comment of mine). - C devices don't list COPY, COPY AND VERIFY, or COMPARE. Should they? I don't see a reason not to, it's as valid as L or P devices. - P and C devices don't list RESERVE or RELEASE. There's no reason to leave them out. Also, P devices must add RESERVE and RELEASE if they are going to support COPY, etc. - Since RESERVE and RELEASE are required for COPY, should they be documented under "commands for all devices"? - W and O devices use conflicting names for command #38. One is MEDIUM SCAN, the other MEDIA SCAN. The name should be the same. - Should R devices include READ LONG, #3F? - Should O or T devices include WRITE SAME, #41? SCSI-2 Command Assignments A = All devices (documented in section 7) D = Direct Access Device T = Sequential Access Device L = Printer Device P = Processor Device W = Write Once Read Multiple Device R = Read Only (CD-ROM) Device S = Scanner Device O = Optical Memory Device M = Media Changer Device C = Communication Device Vendor specific? Code ADTLPWRSOMC Description DTLPWRSOMC ------------------------------------------------------------------------------ 00 ADTLPWRSOMC TEST UNIT READY 00 01 DT WR OM REZERO UNIT 01 L REWIND -- T 02 02 DTLPWR M 03 ADTLPWRSOMC REQUEST SENSE 03 04 D L O FORMAT UNIT 04 FORMAT -- L 05 T READ BLOCK LIMITS 05 D LPWR M 06 06 DTLPWR M 07 D W O REASSIGN BLOCKS 07 TL M 08 DT PWR O C READ (6) 08 L M RECEIVE -- P GET MESSAGE (6) -- C 09 09 DTLPWR M 0A DTLPW O C WRITE (6) 0A M PRINT -- L SEND -- P SEND MESSAGE (6) -- C 0B D L WR O SEEK (6) 0B M SLEW AND PRINT -- L 0C 0C DTLPWR M 0D 0D DTLPWR M 0E 0E DTLPWR M 0F T READ REVERSE 0F D LPWR M 10 TL WRITE FILEMARKS -- T 10 D PWR SYNCHRONIZE BUFFER -- L 11 T SPACE 11 D LPWR 12 ADTLPWRSOMC INQUIRY 12 13 T VERIFY 13 D LPWR 14 TL RECOVER BUFFERED DATA 14 D PWR 15 ADTL WRSOMC MODE SELECT (6) 15 16 DTL WRSOM RESERVE 16 17 DTL WRSOM RELEASE 17 18 ADTLPWRSO COPY 18 19 T ERASE 19 D LPWR 1A ADTL WRSOMC MODE SENSE (6) 1A 1B DTL WRSO START STOP UNIT 1B LOAD / UNLOAD -- T STOP PRINT -- L SCAN -- S 1C ADTLPWRSOMC RECEIVE DIAGNOSTIC RESULTS 1C 1D ADTLPWRSOMC SEND DIAGNOSTIC 1D 1E DT WR OM PREVENT ALLOW MEDIUM REMOVAL 1E 1F 1F 20 20 D WR O 21 21 D WR O 22 22 D WR O 23 23 D WR O 24 S DEFINE WINDOW PARAMETERS 24 D WR 25 D WRSO READ CAPACITY 25 GET WINDOW PARAMETERS -- S 26 26 D WR 27 27 D WR 28 D WRSO C READ (10) 28 GET MESSAGE (10) -- C 29 O READ GENERATION 29 D WR 2A D W SO C WRITE (10) 2A SEND -- S SEND MESSAGE (10) -- C 2B DT WR O SEEK 2B LOCATE -- T 2C O ERASE (10) 2C D 2D O READ UPDATED BLOCK 2D D 2E D W O WRITE AND VERIFY (10) 2E 2F D WR O VERIFY (10) 2F 30 D WR O SEARCH DATA HIGH (10) 30 31 D WRSO SEARCH DATA EQUAL (10) 31 MEDIUM POSITION -- S 32 D WR O SEARCH DATA LOW (10) 32 33 D WR O SET LIMITS (10) 33 34 DT WRSO PRE FETCH 34 READ POSITION -- T GET DATA STATUS -- S 35 D WR O SYNCHRONIZE CACHE 35 36 D WR O LOCK UNLOCK CACHE 36 37 D O READ DEFECT DATA 37 38 W OM MEDIUM SCAN -- W 38 MEDIA SCAN -- O READ ELEMENT STATUS -- M 39 ADTLPWRSO COMPARE 39 3A ADTLPWRSO COPY AND VERIFY 3A 3B ADTLPWRSOMC WRITE BUFFER 3B 3C ADTLPWRSOMC READ BUFFER 3C 3D O UPDATE BLOCK 3D 3E D W O READ LONG 3E 3F D W O WRITE LONG 3F 40 AD LPWRSOMC CHANGE DEFINITION 40 41 D WRITE SAME 41 42 R READ SUB-CHANNEL 42 43 R READ TOC 43 44 R READ HEADER 44 45 R PLAY AUDIO (10) 45 46 46 47 R PLAY AUDIO MSF 47 48 R PLAY AUDIO TRACK/INDEX 48 49 R PLAY TRACK RELATIVE (10) 49 4A 4A 4B R PLAY / RESUME 4B 4C ADTLPWRSOMC LOG SELECT 4C 4D ADTLPWRSOMC LOG SENSE 4D 4E 4E 4F 4F 50 50 51 51 52 52 53 53 54 54 55 ADTL WRSOMC MODE SELECT (10) 55 56 56 57 57 58 58 59 59 5A ADTL WRSOMC MODE SENSE (10) 5A 5B 5B 5C 5C 5D 5D 5E 5E 5F T R ACCESS LOG (should this be here?) 5F 60 60 : RESERVED : 9F 9F A0 A0 A1 A1 A2 A2 A3 A3 A4 A4 A5 R M PLAY AUDIO (12) -- R A5 MOVE MEDIUM -- M A6 M EXCHANGE MEDIUM A6 A7 A7 A8 WR O C READ (12) A8 GET MESSAGE (12) -- C A9 R PLAY TRACK RELATIVE (12) A9 AA W O C WRITE (12) AA SEND MESSAGE (12) -- C AB AB AC O ERASE (12) AC AD AD AE W O WRITE AND VERIFY (12) AE AF WR O VERIFY (12) AF B0 WR O SEARCH DATA HIGH (12) B0 B1 WR O SEARCH DATA EQUAL (12) B1 B2 WR O SEARCH DATA LOW (12) B2 B3 WR O SET LIMITS (12) B3 B4 B4 B5 B5 B6 B6 B7 O READ DEFECT DATA (12) B7 B8 B8 B9 B9 BA BA BB BB BC BC BD BD BE BE BF BF C0 : D LPWR OM VENDOR SPECIFIC FF