antoine-source/scsi2/SCSI.Drivers/SCSI Command Table

1 line
96 KiB
Plaintext
Raw Normal View History

;******************************************************* ; ; SCSI Driver 'Command Table'. ; ; Written by Matt Gulick. Started May 20,1988 ; ; Copyright Apple Computer, Inc. 1988,89 ; ;******************************************************* ;******************************************************* ; ; This file contains the Command Tables that actually ; drives the SCSI Driver when talking to a target ; device. By changing these tables, the SCSI Driver ; will be able to talk to almost any class of SCSI ; Device. There are actually two tables in this file. ; The first table is a list of a two word group for ; each command supported. ; ; The first word is the actual SCSI Command Number ; followed by the low word of that commands table ; address. We use the only the low word because the ; second table is in the same bank as the indexing ; table. ; ; The second table is the actual command translation ; data. The first word is a set of flags that ; indicate some of the translation and verification ; that needs to take place. ; ; Bit 15 = Data is being sent to the device ; 14 = Data is to be received by us ; 13 = This is a Status Command ; 12 = This is a Control Command ; 11 = Data I/O Command ; 10 = Device I/O Command ; 9 = Command Includes Block Number ; 8 = Must be first device if linked ; 7 = Internal Driver Command Only ; 6 = Must issue a DISK_SW with this call ; 5 = Results in device offline ; 4 = Reserved ; 3 = Command Data needs no translation ; 2 = Reserved ; 1 = Block request count goes into command ; 0 = Byte request count goes into command ; ; The second word is a time out tick count to be used by ; the SCSI Manager to determine when to abandone any SCSI ; Device transaction due to lack of response by the ; target. Each tick = 250 ms. ; ; Any additional words are only used if Bit 3 above is ; zero. The translation bytes conatin two offsets. A ; Source and a Destination offset. This is used by the ; driver to take information fron the caller's command ; (Source) and .OR. them in to their proper location in ; the SCSI Command Packet (Destination). ; ; MSBit LSBit ; %0000 0000 0000 0000 ; ; R S R D ; e o e e ; s u s s ; e r e t ; r c r i ; v e v t ; e e i ; d d n ; a ; t ; i ; o ; n ; ; A NULL Word at any location in the command entry ; will terminate translation for that command. ; ;******************************************************* ;******************************************************* ; ; Revision History: ; ;******************************************************* ; May 20, 1988 File started. ; Feb 28, 1989 Added Tape Drive Tables STRING PASCAL BLANKS OFF PAGESIZE 70 PRINT NOGEN PRINT NOMDIR MACHINE M65816 PRINT OFF INCLUDE 'scsihd.equates' INCLUDE 'M16.MEMORY' INCLUDE 'M16.UTIL' PRINT ON EJECT ;******************************************************* ; ; List of Commands Supported: ; ;******************************************************* EXPORT cmd_t_tbl cmd_t_tbl PROC ;------------------------------------------------------------------------------- IF scsi_dtype = direct_acc THEN ; ; ; ; dc.w $0028 ; Command $28 'READ (EXTENDED)' dc.w scsi_cmd28 ; Mandatory ; dc.w $002A ; Command $2A 'WRITE (EXTENDED)' dc.w scsi_cmd2A ; Mandatory ; dc.w $0008 ; Command $08 'READ' dc.w scsi_cmd08 ; Mandatory ; dc.w $000A ; Command $0A 'WRITE' dc.w scsi_cmd0A ; Mandatory ; dc.w $0000 ; Command $00 'TEST UNIT READY' dc.w scsi_cmd00 ; Mandatory ; dc.w $0003 ; Command $03 'REQUEST SENSE' dc.w scsi_cmd03 ; Mandatory ; dc.w $0025 ; Command $25 'READ CAPACITY' dc.w scsi_cmd25 ; Mandatory ; dc.w $0012 ; Command $12 'INQUIRY' dc.w scsi_cmd12 ; Mandatory ; dc