home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 January / Chip_2003-01_cd2.bin / others / support / aspi / aspi_v471.exe / include / scsidefs.inc < prev    next >
Text File  |  1998-07-07  |  14KB  |  316 lines

  1. ;****************************************************************************
  2. ;
  3. ; Name:     SCSIDEFS.INC
  4. ;
  5. ; Description:    SCSI definitions (Assembly Language)
  6. ;
  7. ;****************************************************************************
  8.  
  9. ;****************************************************************************
  10. ;             %%% TARGET STATUS VALUES %%%
  11. ;****************************************************************************
  12. STATUS_GOOD    equ    00h    ;Status Good
  13. STATUS_CHKCOND    equ    02h    ;Check Condition
  14. STATUS_CONDMET    equ    04h    ;Condition Met
  15. STATUS_BUSY    equ    08h    ;Busy
  16. STATUS_INTERM    equ    10h    ;Intermediate
  17. STATUS_INTCDMET equ    14h    ;Intermediate-condition met
  18. STATUS_RESCONF    equ    18h    ;Reservation conflict
  19. STATUS_COMTERM    equ    22h    ;Command Terminated
  20. STATUS_QFULL    equ    28h    ;Queue full
  21.  
  22. ;****************************************************************************
  23. ;          %%% SCSI MISCELLANEOUS EQUATES %%%
  24. ;****************************************************************************
  25. MAXLUN        equ    7    ;Maximum Logical Unit Id
  26. MAXTARG     equ    7    ;Maximum Target Id
  27. MAX_SCSI_LUNS    equ    64    ;Maximum Number of SCSI LUNs
  28. MAX_NUM_HA    equ    8    ;Maximum Number of SCSI HA's
  29.  
  30. ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  31. ;
  32. ;             %%% SCSI COMMAND OPCODES %%%
  33. ;
  34. ;\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  35.  
  36. ;****************************************************************************
  37. ;        %%% Commands for all Device Types %%%
  38. ;****************************************************************************
  39. SCSI_CHANGE_DEF equ    040h    ;Change Definition (Optional)
  40. SCSI_COMPARE    equ    039h    ;Compare (O)
  41. SCSI_COPY    equ    018h    ;Copy (O)
  42. SCSI_COP_VERIFY equ    03Ah    ;Copy and Verify (O)
  43. SCSI_INQUIRY    equ    012h    ;Inquiry (MANDATORY)
  44. SCSI_LOG_SELECT equ    04Ch    ;Log Select (O)
  45. SCSI_LOG_SENSE    equ    04Dh    ;Log Sense (O)
  46. SCSI_MODE_SEL6    equ    015h    ;Mode Select 6-byte (Device Specific)
  47. SCSI_MODE_SEL10    equ    055h    ;Mode Select 10-byte (Device Specific)
  48. SCSI_MODE_SEN6    equ    01Ah    ;Mode Sense 6-byte (Device Specific)
  49. SCSI_MODE_SEN10    equ    05Ah    ;Mode Sense 10-byte (Device Specific)
  50. SCSI_READ_BUFF    equ    03Ch    ;Read Buffer (O)
  51. SCSI_REQ_SENSE    equ    003h    ;Request Sense (MANDATORY)
  52. SCSI_SEND_DIAG    equ    01Dh    ;Send Diagnostic (O)
  53. SCSI_TST_U_RDY    equ    000h    ;Test Unit Ready (MANDATORY)
  54. SCSI_WRITE_BUFF equ    03Bh    ;Write Buffer (O)
  55.  
  56. ;****************************************************************************
  57. ;       %%% Commands Unique to Direct Access Devices %%%
  58. ;****************************************************************************
  59. SCSI_COMPARE    equ    039h    ;Compare (O)
  60. SCSI_FORMAT    equ    004h    ;Format Unit (MANDATORY)
  61. SCSI_LCK_UN_CAC equ    036h    ;Lock Unlock Cache (O)
  62. SCSI_PREFETCH    equ    034h    ;Prefetch (O)
  63. SCSI_MED_REMOVL equ    01Eh    ;Prevent/Allow medium Removal (O)
  64. SCSI_READ6    equ    008h    ;Read 6-byte (MANDATORY)
  65. SCSI_READ10    equ    028h    ;Read 10-byte (MANDATORY)
  66. SCSI_RD_CAPAC    equ    025h    ;Read Capacity (MANDATORY)
  67. SCSI_RD_DEFECT    equ    037h    ;Read Defect Data (O)
  68. SCSI_READ_LONG    equ    03Eh    ;Read Long (O)
  69. SCSI_REASS_BLK    equ    007h    :Reassign Blocks (O)
  70. SCSI_RCV_DIAG    equ    01Ch    ;Receive Diagnostic Results (O)
  71. SCSI_RELEASE    equ    017h    ;Release Unit (MANDATORY)
  72. SCSI_REZERO    equ    001h    ;Rezero Unit (O)
  73. SCSI_SRCH_DAT_E equ    031h    ;Search Data Equal (O)
  74. SCSI_SRCH_DAT_H equ    030h    ;Search Data High (O)
  75. SCSI_SRCH_DAT_L equ    032h    ;Search Data Low (O)
  76. SCSI_SEEK6    equ    00Bh    ;Seek 6-Byte (O)
  77. SCSI_SEEK10    equ    02Bh    ;Seek 10-Byte (O)
  78. SCSI_SEND_DIAG    equ    01Dh    ;Send Diagnostics (MANDATORY)
  79. SCSI_SET_LIMIT    equ    033h    ;Set Limits (O)
  80. SCSI_START_STP    equ    01Bh    ;Start/Stop Unit (O)
  81. SCSI_SYNC_CACHE equ    035h    ;Synchronize Cache (O)
  82. SCSI_VERIFY    equ    02Fh    ;Verify (O)
  83. SCSI_WRITE6    equ    00Ah    ;Write 6-Byte (MANDATORY)
  84. SCSI_WRITE10    equ    02Ah    ;Write 10-Byte (MANDATORY)
  85. SCSI_WRT_VERIFY equ    02Eh    ;Write and Verify (O)
  86. SCSI_WRITE_LONG equ    03Fh    ;Write Long (O)
  87. SCSI_WRITE_SAME equ    041h    ;Write Same (O)
  88.  
  89. ;****************************************************************************
  90. ;     %%% Commands Unique to Sequential Access Devices %%%
  91. ;****************************************************************************
  92. SCSI_ERASE    equ    019h    ;Erase (MANDATORY)
  93. SCSI_LOAD_UN    equ    01Bh    ;Load/Unload (O)
  94. SCSI_LOCATE    equ    02Bh    ;Locate (O)
  95. SCSI_RD_BLK_LIM equ    005h    ;Read Block Limits (MANDATORY)
  96. SCSI_READ_POS    equ    034h    ;Read Position (O)
  97. SCSI_READ_REV    equ    00Fh    ;Read Reverse (O)
  98. SCSI_REC_BF_DAT equ    014h    ;Recover Buffer Data (O)
  99. SCSI_RESERVE    equ    016h    ;Reserve Unit (MANDATORY)
  100. SCSI_REWIND    equ    001h    ;Rewind (MANDATORY)
  101. SCSI_SPACE    equ    011h    ;Space (MANDATORY)
  102. SCSI_VERIFY_T    equ    013h    ;Verify (Tape) (O)
  103. SCSI_WRT_FILE    equ    010h    ;Write Filemarks (MANDATORY)
  104.  
  105. ;****************************************************************************
  106. ;          %%% Commands Unique to Printer Devices %%%
  107. ;****************************************************************************
  108. SCSI_PRINT    equ    00Ah    ;Print (MANDATORY)
  109. SCSI_SLEW_PNT    equ    00Bh    ;Slew and Print (O)
  110. SCSI_STOP_PNT    equ    01Bh    ;Stop Print (O)
  111. SCSI_SYNC_BUFF    equ    010h    ;Synchronize Buffer (O)
  112.  
  113. ;****************************************************************************
  114. ;         %%% Commands Unique to Processor Devices %%%
  115. ;****************************************************************************
  116. SCSI_RECEIVE    equ    008h    ;Receive (O)
  117. SCSI_SEND    equ    00Ah    ;Send (O)
  118.  
  119. ;****************************************************************************
  120. ;        %%% Commands Unique to Write-Once Devices %%%
  121. ;****************************************************************************
  122. SCSI_MEDIUM_SCN equ    038h    ;Medium Scan (O)
  123. SCSI_SRCHDATE10 equ    031h    ;Search Data Equal 10-Byte (O)
  124. SCSI_SRCHDATE12 equ    0B1h    ;Search Data Equal 12-Byte (O)
  125. SCSI_SRCHDATH10 equ    030h    ;Search Data High 10-Byte (O)
  126. SCSI_SRCHDATH12 equ    0B0h    ;Search Data High 12-Byte (O)
  127. SCSI_SRCHDATL10 equ    032h    ;Search Data Low 10-Byte (O)
  128. SCSI_SRCHDATL12 equ    0B2h    ;Search Data Low 12-Byte (O)
  129. SCSI_SET_LIM_10 equ    033h    ;Set Limits 10-Byte (O)
  130. SCSI_SET_LIM_12    equ    0B3h    ;Set Limits 10-Byte (O)
  131. SCSI_VERIFY10    equ    02Fh    ;Verify 10-Byte (O)
  132. SCSI_VERIFY12    equ    0AFh    ;Verify 12-Byte (O)
  133. SCSI_WRITE12    equ    0AAh    ;Write 12-Byte (O)
  134. SCSI_WRT_VER10    equ    02Eh    ;Write and Verify 10-Byte (O)
  135. SCSI_WRT_VER12    equ    0AEh    ;Write and Verify 12-Byte (O)
  136.  
  137. ;****************************************************************************
  138. ;          %%% Commands Unique to CD-ROM Devices %%%
  139. ;****************************************************************************
  140. SCSI_PLAYAUD_10 equ    045h    ;Play Audio 10-Byte (O)
  141. SCSI_PLAYAUD_12 equ    0A5h    ;Play Audio 12-Byte 12-Byte (O)
  142. SCSI_PLAYAUDMSF equ    047h    ;Play Audio MSF (O)
  143. SCSI_PLAYA_TKIN equ    048h    ;Play Audio Track/Index (O)
  144. SCSI_PLYTKREL10 equ    049h    ;Play Track Relative 10-Byte (O)
  145. SCSI_PLYTKREL12 equ    0A9h    ;Play Track Relative 12-Byte (O)
  146. SCSI_READCDCAP    equ    025h    ;Read CD-ROM Capacity (MANDATORY)
  147. SCSI_READHEADER equ    044h    ;Read Header (O)
  148. SCSI_SUBCHANNEL equ    042h    ;Read Subchannel (O)
  149. SCSI_READ_TOC    equ    043h    ;Read TOC (O)
  150.  
  151. ;****************************************************************************
  152. ;          %%% Commands Unique to Scanner Devices %%%
  153. ;****************************************************************************
  154. SCSI_GETDBSTAT    equ    034h    ;Get Data Buffer Status (O)
  155. SCSI_GETWINDOW    equ    025h    ;Get Window (O)
  156. SCSI_OBJECTPOS    equ    031h    ;Object Postion (O)
  157. SCSI_SCAN    equ    01Bh    ;Scan (O)
  158. SCSI_SETWINDOW    equ    024h    ;Set Window (MANDATORY)
  159.  
  160. ;****************************************************************************
  161. ;      %%% Commands Unique to Optical Memory Devices %%%
  162. ;****************************************************************************
  163. SCSI_UpdateBlk    equ    3Dh    ;Update Block (O)
  164.  
  165. ;****************************************************************************
  166. ;      %%% Commands Unique to Medium Changer Devices %%%
  167. ;****************************************************************************
  168. SCSI_EXCHMEDIUM equ    0A6h    ;Exchange Medium (O)
  169. SCSI_INITELSTAT equ    007h    ;Initialize Element Status (O)
  170. SCSI_POSTOELEM    equ    02Bh    ;Position to Element (O)
  171. SCSI_REQ_VE_ADD equ    0B5h    ;Request Volume Element Address (O)
  172. SCSI_SENDVOLTAG equ    0B6h    ;Send Volume Tag (O)
  173.  
  174. ;****************************************************************************
  175. ;       %%% Commands Unique to Communication Devices %%%
  176. ;****************************************************************************
  177. SCSI_GET_MSG_6    equ    008h    ;Get Message 6-Byte (MANDATORY)
  178. SCSI_GET_MSG_10 equ    028h    ;Get Message 10-Byte (O)
  179. SCSI_GET_MSG_12 equ    0A8h    ;Get Message 12-Byte (O)
  180. SCSI_SND_MSG_6    equ    00Ah    ;Send Message 6-Byte (MANDATORY)
  181. SCSI_SND_MSG_10 equ    02Ah    ;Send Message 10-Byte (O)
  182. SCSI_SND_MSG_12 equ    0AAh    ;Send Message 12-Byte (O)
  183.  
  184. ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  185. ;
  186. ;         %%% END OF SCSI COMMAND OPCODES %%%
  187. ;
  188. ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  189.  
  190. ;****************************************************************************
  191. ;          %%% Request Sense Data Format %%%
  192. ;****************************************************************************
  193. SENSE_DATA_FMT        struc
  194.     ErrorCode    db    ?    ;Error Code (70H or 71H)
  195.     SegmentNum    db    ?    ;Number of current segment descriptor
  196.     SenseKey    db    ?    ;Sense Key(See bit definitions too)
  197.     InfoByte0     db    ?    ;Information MSB
  198.     InfoByte1     db    ?    ;Information MID
  199.     InfoByte2     db    ?    ;Information MID
  200.     InfoByte3     db    ?    ;Information LSB
  201.     AddSenLen    db    ?    ;Additional Sense Length
  202.     ComSpecInf0    db    ?    ;Command Specific Information MSB
  203.     ComSpecInf1    db    ?    ;Command Specific Information MID
  204.     ComSpecInf2    db    ?    ;Command Specific Information MID
  205.     ComSpecInf3    db    ?    ;Command Specific Information LSB
  206.     AddSenseCode    db    ?    ;Additional Sense Code
  207.     AddSenQual    db    ?    ;Additional Sense Code Qualifier
  208.     FieldRepUCode    db    ?    ;Field Replaceable Unit Code
  209.     SenKeySpec15    db    ?    ;Sense Key Specific 15th byte
  210.     SenKeySpec16    db    ?    ;Sense Key Specific 16th byte
  211.     SenKeySpec17    db    ?    ;Sense Key Specific 17th byte
  212.     AddSenseBytes    db    ?    ;Additional Sense Bytes
  213. SENSE_DATA_FMT        ends
  214.  
  215. ;****************************************************************************
  216. ;           %%% REQUEST SENSE ERROR CODE %%%
  217. ;****************************************************************************
  218. SERROR_CURRENT    equ    070H    ;Current Errors
  219. SERROR_DEFERED    equ    071H    ;Deferred Errors
  220.  
  221. ;****************************************************************************
  222. ;        %%% REQUEST SENSE BIT DEFINITIONS %%%
  223. ;****************************************************************************
  224. SENSE_VALID    equ    080H    ;Byte 0 Bit 7
  225. SENSE_FILEMRK    equ    080H    ;Byte 2 Bit 7
  226. SENSE_EOM    equ    040H    ;Byte 2 Bit 6
  227. SENSE_ILI    equ    020H    ;Byte 2 Bit 5
  228.  
  229. ;****************************************************************************
  230. ;         %%% REQUEST SENSE SENSE KEY DEFINITIONS %%%
  231. ;****************************************************************************
  232. KEY_NOSENSE    equ    00H    ;No Sense
  233. KEY_RECERROR    equ    01H    ;Recovered Error
  234. KEY_NOTREADY    equ    02H    ;Not Ready
  235. KEY_MEDIUMERR    equ    03H    ;Medium Error
  236. KEY_HARDERROR    equ    04H    ;Hardware Error
  237. KEY_ILLGLREQ    equ    05H    ;Illegal Request
  238. KEY_UNITATT    equ    06H    ;Unit Attention
  239. KEY_DATAPROT    equ    07H    ;Data Protect
  240. KEY_BLANKCHK    equ    08H    ;Blank Check
  241. KEY_VENDSPEC    equ    09H    ;Vendor Specific
  242. KEY_COPYABORT    equ    0AH    ;Copy Abort
  243. KEY_EQUAL    equ    0CH    ;Equal (Search)
  244. KEY_VOLOVRFLW    equ    0DH    ;Volume Overflow
  245. KEY_MISCOMP    equ    0EH    ;Miscompare (Search)
  246. KEY_RESERVED    equ    0FH    ;Reserved
  247.  
  248. ;****************************************************************************
  249. ;             %%% Inquiry Data Format %%%
  250. ;****************************************************************************
  251. INQRY_DATA_FMT        struc
  252.     PerQualTyp    db    ?    ;Peripheral Qualifier and Device Type
  253.             db    ?    ;Reserved except for bit 7 (RMB)
  254.     Versions    db    ?    ;ISO, ECMA and ANSI versions
  255.             db    ?    ;
  256.     AddLengh    db    ?    ;Additional Length
  257.     Reserved1    db    ?    ;Reserved
  258.     Reserved2    db    ?    ;Reserved
  259.     Flags        db    ?    ;RelAdr, WBus32, WBus16, Sync, ....
  260.     VendorId    db    8 dup (?) ;Command Specific Information LSB
  261.     ProdId        db     16 dup (?) ;Additional Sense Code
  262.     ProdRev     db    4 dup (?) ;Additional Sense Code Qualifier
  263. INQRY_DATA_FMT        ends
  264.  
  265. ;****************************************************************************
  266. ;          %%% PERIPHERAL DEVICE TYPE DEFINITIONS %%%
  267. ;****************************************************************************
  268. DTYPE_DASD    equ    00H    ;Disk Device
  269. DTYPE_SEQD    equ    01H    ;Tape Device
  270. DTYPE_PRNT    equ    02H    ;Printer
  271. DTYPE_PROC    equ    03H    ;Processor
  272. DTYPE_WORM    equ    04H    ;Write-once read-multiple
  273. DTYPE_CROM    equ    05H    ;CD-ROM device
  274. DTYPE_CDROM    equ    05H    ;CD-ROM device
  275. DTYPE_SCAN    equ    06H    ;Scanner device
  276. DTYPE_OPTI    equ    07H    ;Optical memory device
  277. DTYPE_JUKE    equ    08H    ;Medium Changer device
  278. DTYPE_COMM    equ    09H    ;Communications device
  279. DTYPE_RESL    equ    0AH    ;Reserved (low)
  280. DTYPE_RESH    equ    1EH    ;Reserved (high)
  281. DTYPE_UNKNOWN    equ    1FH    ;Unknown or no device type
  282.  
  283. ;****************************************************************************
  284. ;          %%% ANSI APPROVED VERSION DEFINITIONS %%%
  285. ;****************************************************************************
  286. ANSI_MAYBE    equ    00H    ;Device may or may not be ANSI approved stand
  287. ANSI_SCSI1    equ    01H    ;Device complies to ANSI X3.131-1986 (SCSI-1)
  288. ANSI_SCSI2    equ    02H    ;Device complies to SCSI-2
  289. ANSI_RESLO    equ    03H    ;Reserved (low)
  290. ANSI_RESHI    equ    07H    ;Reserved (high)
  291.  
  292. ;****************************************************************************
  293. ;         %%% 6-Byte Data Transfer Command Format %%%
  294. ;****************************************************************************
  295. DATA_XFER_6        struc
  296.     _OpCode     db    ?    ;Opcode of SCSI Command
  297.     _LUNumber    db    ?    ;Logical Unit Number & LBA MSB
  298.     _LBAMiddl    db    ?    ;Logical Block Address Middle Byte
  299.     _LBALeast    db    ?    ;Logical Block Address Least Byte
  300.     _Length     db    ?    ;Transfer Length
  301.     _Control    db    ?    ;Control Byte
  302. DATA_XFER_6        ends
  303.  
  304. ;****************************************************************************
  305. ;         %%% 10-Byte Data Transfer Command Format %%%
  306. ;****************************************************************************
  307. _LBA_3rd    equ    _OpCode+3     ;Logical Block Address 3rd Byte
  308. _LBA_2nd    equ    _OpCode+4     ;Logical Block Address 2nd Byte
  309. _LBA_1st    equ    _OpCode+5     ;Logical Block Address 1st Byte
  310. _LBA_0th    equ    _OpCode+6     ;Logical Block Address 0th Byte
  311. _Length_Hi    equ    _OpCode+7     ;Transfer Length High
  312. _Length_Lo    equ    _OpCode+8     ;Transfer Length Low
  313. _Control10    equ    _OpCode+9     ;Control Byte
  314.  
  315.  
  316.