
;*******************************************************
;
;	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.w	$001A			; Command $1A 'MODE SENSE'
			dc.w	scsi_cmd1A		; Optional
									; 
			dc.w	$0015			; Command $15 'MODE SELECT'
			dc.w	scsi_cmd15		; Optional
									; 
			dc.w	$0004			; Command $04 'FORMAT UNIT'
			dc.w	scsi_cmd04		; Mandatory
									; 
			dc.w	$001E			; Command $1E 'PREVENT/ALLOW REMOVAL'
			dc.w	scsi_cmd1E		; Optional
									;
			dc.w	$0001			; Command $01 'REZERO UNIT'
			dc.w	scsi_cmd01		; Optional
									; 
			dc.w	$0007			; Command $07 'REASSIGN BLOCKS'
			dc.w	scsi_cmd07		; Optional
									; 
			dc.w	$000B			; Command $0B 'SEEK'
			dc.w	scsi_cmd0B		; Optional
									; 
			dc.w	$002B			; Command $2B 'SEEK (EXTENDED)'
			dc.w	scsi_cmd2B		; Optional
									; 
			dc.w	$0016			; Command $16 'RESERVE UNIT'
			dc.w	scsi_cmd16		; Mandatory
									; 
			dc.w	$0017			; Command $17 'RELEASE UNIT'
			dc.w	scsi_cmd17		; Mandatory
									; 
			dc.w	$001B			; Command $1B 'START/STOP UNIT'
			dc.w	scsi_cmd1B		; Optional
									; 
			dc.w	$001C			; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
			dc.w	scsi_cmd1C		; Optional
									; 
			dc.w	$001D			; Command $1D 'SEND DIAGNOSTICS'
			dc.w	scsi_cmd1D		; Mandatory
									; 
			dc.w	$002E			; Command $2E 'WRITE AND VERIFY'
			dc.w	scsi_cmd2E		; Optional
									; 
			dc.w	$002F			; Command $2F 'VERIFY'
			dc.w	scsi_cmd2F		; Optional
									; 
			dc.w	$0033			; Command $33 'SET LIMITS'
			dc.w	scsi_cmd33		; Optional
									; 
			dc.w	$0034			; Command $34 'PRE-FETCH'
			dc.w	scsi_cmd34		; Optional
									; 
			dc.w	$0035			; Command $35 'SYNCHRONIZE CACHE'
			dc.w	scsi_cmd35		; Optional
									;
			dc.w	$0036			; Command $36 'LOCK/UNLOCK CACHE'
			dc.w	scsi_cmd36		; Optional
									; 
			dc.w	$0037			; Command $37 'READ DEFECT DATA'
			dc.w	scsi_cmd37		; Optional
									; 
			dc.w	$003B			; Command $3B 'WRITE BUFFER'
			dc.w	scsi_cmd3B		; Optional
									; 
			dc.w	$003C			; Command $3C 'READ BUFFER'
			dc.w	scsi_cmd3C		; Optional
									; 
			dc.w	$003E			; Command $3E 'READ LONG'
			dc.w	scsi_cmd3E		; Optional
									; 
			dc.w	$003F			; Command $3F 'WRITE LONG'
			dc.w	scsi_cmd3F		; Optional
									; 
			dc.w	$004C			; Command $4C 'LOG SELECT'
			dc.w	scsi_cmd4C		; Optional
									; 
			dc.w	$004D			; Command $4D 'LOG SENSE'
			dc.w	scsi_cmd4D		; Optional
									; 
			dc.w	$0055			; Command $55 'MODE SELECT'
			dc.w	scsi_cmd55		; Optional
									; 
			dc.w	$005A			; Command $5A 'MODE SENSE'
			dc.w	scsi_cmd5A		; Mandatory
									; 
			dc.w	$00B3			; Command $B3 'SET LIMITS'
			dc.w	scsi_cmdB3		; Optional

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = apple_cd	THEN
									;
									;
			dc.w	$00CC			; Command $CC 'AUDIO STATUS'
			dc.w	scsi_cmdCC		; Mandatory
									; 
			dc.w	$0003			; Command $03 'REQUEST SENSE'
			dc.w	scsi_cmd03		; Mandatory
									; 
			dc.w	$0028			; Command $28 'READ (EXTENDED)'
			dc.w	scsi_cmd28		; Mandatory
									; 
			dc.w	$0008			; Command $08 'READ'
			dc.w	scsi_cmd08		; Mandatory
									; 
			dc.w	$0000			; Command $00 'TEST UNIT READY'
			dc.w	scsi_cmd00		; Mandatory
									;
			dc.w	$0012			; Command $12 'INQUIRY'
			dc.w	scsi_cmd12		; Mandatory
									; 
			dc.w	$001A			; Command $1A 'MODE SENSE'
			dc.w	scsi_cmd1A		; Optional
									; 
			dc.w	$0025			; Command $25 'READ CAPACITY'
			dc.w	scsi_cmd25		; Mandatory
									; 
			dc.w	$0015			; Command $15 'MODE SELECT'
			dc.w	scsi_cmd15		; Optional
									; 
			dc.w	$00C0			; Command $C0 'EJECT DISK'
			dc.w	scsi_cmdC0		; Mandatory
									; 
			dc.w	$001E			; Command $1E 'PREVENT/ALLOW REMOVAL'
			dc.w	scsi_cmd1E		; Optional
									; 
			dc.w	$00C9			; Command $C9 'AUDIO PLAY'
			dc.w	scsi_cmdC9		; Mandatory
									; 
			dc.w	$00CE			; Command $CE 'AUDIO CONTROL'
			dc.w	scsi_cmdCE		; Mandatory
									; 
			dc.w	$00CA			; Command $CA 'AUDIO PAUSE'
			dc.w	scsi_cmdCA		; Mandatory
									; 
			dc.w	$00CB			; Command $CB 'AUDIO STOP'
			dc.w	scsi_cmdCB		; Mandatory
									; 
			dc.w	$00CD			; Command $CD 'AUDIO SCAN'
			dc.w	scsi_cmdCD		; Mandatory
									;
			dc.w	$0001			; Command $01 'REZERO UNIT'
			dc.w	scsi_cmd01		; Optional
									;
			dc.w	$000B			; Command $0B 'SEEK'
			dc.w	scsi_cmd0B		; Optional
									; 
			dc.w	$0016			; Command $16 'RESERVE UNIT'
			dc.w	scsi_cmd16		; Mandatory
									; 
			dc.w	$0017			; Command $17 'RELEASE UNIT'
			dc.w	scsi_cmd17		; Mandatory
									; 
			dc.w	$001B			; Command $1B 'START/STOP UNIT'
			dc.w	scsi_cmd1B		; Optional
									; 
			dc.w	$001C			; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
			dc.w	scsi_cmd1C		; Optional
									; 
			dc.w	$001D			; Command $1D 'SEND DIAGNOSTICS'
			dc.w	scsi_cmd1D		; Mandatory
									; 
			dc.w	$002B			; Command $2B 'SEEK (EXTENDED)'
			dc.w	scsi_cmd2B		; Optional
									; 
			dc.w	$002F			; Command $2F 'VERIFY'
			dc.w	scsi_cmd2F		; Optional
									; 
			dc.w	$003B			; Command $3B 'WRITE BUFFER'
			dc.w	scsi_cmd3B		; Optional
									; 
			dc.w	$003C			; Command $3C 'READ BUFFER'
			dc.w	scsi_cmd3C		; Optional
									; 
			dc.w	$004C			; Command $4C 'LOG SELECT'
			dc.w	scsi_cmd4C		; Optional
									; 
			dc.w	$004D			; Command $4D 'LOG SENSE'
			dc.w	scsi_cmd4D		; Optional
									; 
			dc.w	$0055			; Command $55 'MODE SELECT (EXTENDED)'
			dc.w	scsi_cmd55		; Optional
									; 
			dc.w	$005A			; Command $5A 'MODE SENSE (EXTENDED)'
			dc.w	scsi_cmd5A		; Optional
									; 
			dc.w	$00C1			; Command $C1 'READ TOC'
			dc.w	scsi_cmdC1		; Mandatory
									; 
			dc.w	$01C2			; Command $1C2 'READ Q SUBCODE VOLUME LEVEL'
			dc.w	scsi_cmd1C2		; Mandatory
									; 
			dc.w	$00C2			; Command $C2 'READ Q SUBCODE'
			dc.w	scsi_cmdC2		; Mandatory
									; 
			dc.w	$00C3			; Command $C3 'READ HEADER'
			dc.w	scsi_cmdC3		; Mandatory
									; 
			dc.w	$00C8			; Command $C8 'AUDIO TRACK SEARCH'
			dc.w	scsi_cmdC8		; Mandatory

			ENDIF

;-------------------------------------------------------------------------------

			IF			scsi_dtype = mcd_40	THEN
									;
									; 
									;
									; 
			dc.w	$002A			; Command $2A 'WRITE (EXTENDED)'
			dc.w	scsi_cmd2A		; Mandatory
									; 
			dc.w	$0028			; Command $28 'READ (EXTENDED)'
			dc.w	scsi_cmd28		; Mandatory
									; 
			dc.w	$002B			; Command $2B 'SEEK (EXTENDED)'
			dc.w	scsi_cmd2B		; Optional
									; 
			dc.w	$001B			; Command $1B 'LOAD/UNLOAD UNIT'
			dc.w	scsi_cmd1B		; Optional
									; 
			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	$0001			; Command $01 'REZERO UNIT'
			dc.w	scsi_cmd01		; Optional
									; 
			dc.w	$0025			; Command $25 'READ CAPACITY'
			dc.w	scsi_cmd25		; Mandatory
									; 
			dc.w	$0012			; Command $12 'INQUIRY'
			dc.w	scsi_cmd12		; Mandatory
									; 
			dc.w	$001A			; Command $1A 'MODE SENSE'
			dc.w	scsi_cmd1A		; Optional
									; 
			dc.w	$0015			; Command $15 'MODE SELECT'
			dc.w	scsi_cmd15		; Optional
									; 
			dc.w	$0016			; Command $16 'RESERVE UNIT'
			dc.w	scsi_cmd16		; Mandatory
									; 
			dc.w	$0017			; Command $17 'RELEASE UNIT'
			dc.w	scsi_cmd17		; Mandatory
									; 
			dc.w	$000A			; Command $0A 'WRITE'
			dc.w	scsi_cmd0A		; Mandatory
									;
			dc.w	$0008			; Command $08 'READ'
			dc.w	scsi_cmd08		; Mandatory
									; 
			dc.w	$000B			; Command $0B 'SEEK'
			dc.w	scsi_cmd0B		; Optional
									; 
			dc.w	$0004			; Command $04 'FORMAT UNIT'
			dc.w	scsi_cmd04		; Mandatory
									; 
			dc.w	$0007			; Command $07 'REASSIGN BLOCKS'
			dc.w	scsi_cmd07		; Optional
									; 
			dc.w	$001C			; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
			dc.w	scsi_cmd1C		; Optional
									; 
			dc.w	$001D			; Command $1D 'SEND DIAGNOSTICS'
			dc.w	scsi_cmd1D		; Mandatory
									; 
			dc.w	$0037			; Command $37 'READ DEFECT DATA'
			dc.w	scsi_cmd37		; Optional
									; 
			dc.w	$003B			; Command $3B 'WRITE BUFFER'
			dc.w	scsi_cmd3B		; Optional
									; 
			dc.w	$003C			; Command $3C 'READ BUFFER'
			dc.w	scsi_cmd3C		; Optional
									; 
			dc.w	$0005			; Command $05 'Send QIC 100 Sys Data'
			dc.w	scsi_cmd05		; Optional
									; 
			dc.w	$0006			; Command $06 'Recv QIC 100 Sys Data'
			dc.w	scsi_cmd06		; Optional
									; 
			dc.w	$0009			; Command $09 'VERIFY UNIT'
			dc.w	scsi_cmd09		; Optional
									; 
			dc.w	$000D			; Command $0D 'Read SCSI Defect (Vendor)'
			dc.w	scsi_cmd0D		; Optional
									; 
			dc.w	$000E			; Command $0E 'Read Controller Info'
			dc.w	scsi_cmd0E		; Optional
									; 
			dc.w	$000F			; Command $0F 'Write Controller Info'
			dc.w	scsi_cmd0F		; Optional
									; 
			dc.w	$0010			; Command $10 'DRIVE PASS-THRU'
			dc.w	scsi_cmd10		; Optional
									; 
			dc.w	$0011			; Command $11 'READ DRIVE LINES'
			dc.w	scsi_cmd11		; Optional
									; 
			dc.w	$0013			; Command $13 'Read QIC INFO'
			dc.w	scsi_cmd13		; Optional
									; 
			dc.w	$0014			; Command $14 'Write QIC INFO'
			dc.w	scsi_cmd14		; Optional
									; 
			dc.w	$0019			; Command $19 'Read QIC Defect Data'
			dc.w	scsi_cmd19		; Optional
									; 
			dc.w	$004C			; Command $4C 'LOG SELECT'
			dc.w	scsi_cmd4C		; Optional
									; 
			dc.w	$004D			; Command $4D 'LOG SENSE'
			dc.w	scsi_cmd4D		; Optional
									; 
			dc.w	$0055			; Command $55 'MODE SELECT (EXTENDED)'
			dc.w	scsi_cmd55		; Optional
									; 
			dc.w	$005A			; Command $5A 'MODE SENSE (EXTENDED)'
			dc.w	scsi_cmd5A		; Optional

			ENDIF

;-------------------------------------------------------------------------------

			IF			scsi_dtype = scanner	THEN
									;
									; 
									;
									; 
			dc.w	$0034			; Command $34 'GET DATA STATUS'
			dc.w	scsi_cmd34		; Optional
									; 
			dc.w	$0007			; Command $07 'GET DATA STATUS'
			dc.w	scsi_cmd07		; Optional
									; 
			dc.w	$000E			; Command $0E 'EXPLORATORY STATUS'
			dc.w	scsi_cmd0E		; Optional
									; 
			dc.w	$0011			; Command $11 'SPACE'
			dc.w	scsi_cmd11		; Optional
									; 
			dc.w	$0028			; Command $28 'READ (EXTENDED)'
			dc.w	scsi_cmd28		; Mandatory
									; 
			dc.w	$0008			; Command $08 'READ'
			dc.w	scsi_cmd08		; Mandatory
									; 
			dc.w	$000A			; Command $0A 'SEND'
			dc.w	scsi_cmd0A		; Mandatory
									; 
			dc.w	$0024			; Command $24 'DEFINE WINDOW PARAMETERS'
			dc.w	scsi_cmd24		; Mandatory
									; 
			dc.w	$001B			; Command $1B 'SCAN (EXTENDED)'
			dc.w	scsi_cmd1B		; Optional
									; 
			dc.w	$0000			; Command $00 'TEST UNIT READY'
			dc.w	scsi_cmd00		; Mandatory
									;
			dc.w	$0012			; Command $12 'INQUIRY'
			dc.w	scsi_cmd12		; Mandatory
									; 
			dc.w	$0003			; Command $03 'REQUEST SENSE'
			dc.w	scsi_cmd03		; Mandatory
									; 
			dc.w	$0025			; Command $25 'GET WINDOW PARAMETRS'
			dc.w	scsi_cmd25		; Optional
									; 
			dc.w	$001A			; Command $1A 'MODE SENSE'
			dc.w	scsi_cmd1A		; Optional
									; 
			dc.w	$0015			; Command $15 'MODE SELECT'
			dc.w	scsi_cmd15		; Optional
									; 
			dc.w	$0016			; Command $16 'RESERVE UNIT'
			dc.w	scsi_cmd16		; Mandatory
									; 
			dc.w	$0017			; Command $17 'RELEASE UNIT'
			dc.w	scsi_cmd17		; Mandatory
									; 
			dc.w	$0031			; Command $31 'MEDIUM POSSITION'
			dc.w	scsi_cmd31		; Optional
									; 
			dc.w	$002A			; Command $2A 'SEND (EXTENDED)'
			dc.w	scsi_cmd2A		; Optional
									; 
			dc.w	$0018			; Command $18 'COPY'
			dc.w	scsi_cmd18		; Optional
									; 
			dc.w	$001C			; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
			dc.w	scsi_cmd1C		; Optional
									; 
			dc.w	$001D			; Command $1D 'SEND DIAGNOSTICS'
			dc.w	scsi_cmd1D		; Mandatory
									; 
			dc.w	$0039			; Command $39 'COMPARE'
			dc.w	scsi_cmd39		; Optional
									; 
			dc.w	$003A			; Command $3A 'COPY AND VERIFY'
			dc.w	scsi_cmd3A		; Optional
									; 
			dc.w	$003B			; Command $3B 'WRITE BUFFER'
			dc.w	scsi_cmd3B		; Optional
									; 
			dc.w	$003C			; Command $3C 'READ BUFFER'
			dc.w	scsi_cmd3C		; Optional
									; 
			dc.w	$004C			; Command $4C 'LOG SELECT'
			dc.w	scsi_cmd4C		; Optional
									; 
			dc.w	$004D			; Command $4D 'LOG SENSE'
			dc.w	scsi_cmd4D		; Optional
									; 
			dc.w	$0055			; Command $55 'MODE SELECT (EXTENDED)'
			dc.w	scsi_cmd55		; Optional
									; 
			dc.w	$005A			; Command $5A 'MODE SENSE (EXTENDED)'
			dc.w	scsi_cmd5A		; Optional

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = appl_laser	THEN
									;
									; 
									;
									;
			dc.w	$0000			; Command $00 'TEST UNIT READY'
			dc.w	scsi_cmd00		; Mandatory
									; 
			dc.w	$0001			; Command $01 'RESET PRINTER'
			dc.w	scsi_cmd01		; Optional
									;
			dc.w	$0002			; Command $02 'DOWN LOAD CODE'
			dc.w	scsi_cmd02		; Optional
									; 
			dc.w	$0003			; Command $03 'REQUEST SENSE'
			dc.w	scsi_cmd03		; Mandatory
									; 
			dc.w	$0004			; Command $04 'FORMAT UNIT'
			dc.w	scsi_cmd04		; Mandatory
									;
			dc.w	$0005			; Command $05 'DRAW BITS'
			dc.w	scsi_cmd05		; Optional
									;
			dc.w	$0006			; Command $06 'CLEAR BITS'
			dc.w	scsi_cmd06		; Optional
									; 
			dc.w	$000A			; Command $0A 'PRINT'
			dc.w	scsi_cmd0A		; Mandatory
									; 
			dc.w	$0012			; Command $12 'INQUIRY'
			dc.w	scsi_cmd12		; Mandatory
									; 
			dc.w	$0015			; Command $15 'MODE SELECT'
			dc.w	scsi_cmd15		; Optional
									; 
			dc.w	$0016			; Command $16 'RESERVE UNIT'
			dc.w	scsi_cmd16		; Mandatory
									; 
			dc.w	$0017			; Command $17 'RELEASE UNIT'
			dc.w	scsi_cmd17		; Mandatory
									; 
			dc.w	$001A			; Command $1A 'MODE SENSE'
			dc.w	scsi_cmd1A		; Optional

			ENDIF

;-------------------------------------------------------------------------------

			dc.w	$FFFF			; End of the List.
			dc.w	$FFFF			;

			EJECT


;*******************************************************
;
;	Command translation Table:
;
;*******************************************************

;*******************************************************
;
;scsi_cmdxx	dc.w	scsit_tx++\		; SCSI Send Data Command
;					scsit_rx++\		; SCSI Receive Data Command
;					scsit_stat++\	; SCSI Status Command
;					scsit_cont++\	; SCSI Control Command
;					scsit_data++\	; SCSI Data I/O Command
;					scsit_dvc++\	; SCSI Device I/O Command
;					scsit_blk++\	; Command has a Block Number
;					scsic_1st++\	; Must be first device if linked
;					scsic_int++\	; Internal Driver Command only
;					scsic_dsw++\	; Issue DISK_SW with this call
;					scsic_off++\	; Device is going offline.
;					scsic_tout++\	; Adjust time out by block count
;					scsid_asis++\	; CMD Data is in SCSI format
;					scsid_blk++\	; Convert Trans Count to Blocks
;					scsid_byte++\	; Leave Trans Count in Bytes
;					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
;			dc.w	scsi_endcmd		; End of SCSI Translation Table
;
;*******************************************************

;-------------------------------------------------------------------------------

			IF		scsi_dtype = direct_acc	THEN

									;
									; Command $00 'TEST UNIT READY'
									; Mandatory
									; 
scsi_cmd00	dc.w	scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $01 'REZERO UNIT'
									; Optional
									; 
scsi_cmd01	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	2*one_min		; Time out = 2 minutes.
			dc.w	scsi_endcmd
									;
									; Command $03 'REQUEST SENSE'
									; Mandatory
									; 
scsi_cmd03	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	10*one_sec		; Time out = 10 second ticks.
			dc.w	scsi_endcmd
									;
									; Command $04 'FORMAT UNIT'
									; Mandatory
									; 
scsi_cmd04	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsic_dsw++\	; Issue DISK_SW with this call
					scsic_off++\	; Device is going offline.
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	60*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $07 'REASSIGN BLOCKS'
									; Optional
									; 
scsi_cmd07	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsic_int++\	; Internal Driver Command Only
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	1*one_sec		; Time out = one second.
			dc.w	scsi_endcmd
									;
									; Command $08 'READ'
									; Mandatory
									; 
scsi_cmd08	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $0A 'WRITE'
									; Mandatory
									; 
scsi_cmd0A	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $0B 'SEEK'
									; Optional
									; 
scsi_cmd0B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	1*one_sec		; Time out = 1 second.
			dc.w	scsi_endcmd
									;
									; Command $12 'INQUIRY'
									; Mandatory
									; 
scsi_cmd12	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $15 'MODE SELECT'
									; Optional
									; 
scsi_cmd15	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	20*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $16 'RESERVE UNIT'
									; Mandatory
									; 
scsi_cmd16	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $17 'RELEASE UNIT'
									; Mandatory
									; 
scsi_cmd17	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $1A 'MODE SENSE'
									; Optional
									; 
scsi_cmd1A	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $1B 'START/STOP UNIT'
									; Optional
									; 
scsi_cmd1B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsic_dsw++\	; Issue DISK_SW with this call
					scsic_off++\	; Device is going offline.
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
									; Optional
									; 
scsi_cmd1C	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $1D 'SEND DIAGNOSTICS'
									; Mandatory
									; 
scsi_cmd1D	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1E 'PREVENT/ALLOW REMOVAL'
									; Optional
									; 
scsi_cmd1E	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $25 'READ CAPACITY'
									; Mandatory
									; 
scsi_cmd25	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $28 'READ (EXTENDED)'
									; Mandatory
									; 
scsi_cmd28	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $2A 'WRITE (EXTENDED)'
									; Mandatory
									; 
scsi_cmd2A	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $2B 'SEEK (EXTENDED)'
									; Optional
									; 
scsi_cmd2B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $2E 'WRITE AND VERIFY'
									; Optional
									; 
scsi_cmd2E	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $2F 'VERIFY'
									; Optional
									; 
scsi_cmd2F	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	one_sec			; Time out = 1 second/Block.
			dc.w	scsi_endcmd
									;
									; Command $33 'SET LIMITS'
									; Optional
									; 
scsi_cmd33	dc.w	scsit_cont++\	; It is a Control Command
					scsic_int++\	; Internal Driver Command Only
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $34 'PRE-FETCH'
									; Optional
									; 
scsi_cmd34	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $35 'SYNCHRONIZE CACHE'
									; Optional
									; 
scsi_cmd35	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $36 'LOCK/UNLOCK CACHE'
									; Optional
									; 
scsi_cmd36	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $37 'READ DEFECT DATA'
									; Optional
									; 
scsi_cmd37	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $3B 'WRITE BUFFER'
									; Optional
									; 
scsi_cmd3B	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $3C 'READ BUFFER'
									; Optional
									; 
scsi_cmd3C	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $3E 'READ LONG'
									; Optional
									; 
scsi_cmd3E	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $3F 'WRITE LONG'
									; Optional
									; 
scsi_cmd3F	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $4C 'LOG SELECT'
									; Optional
									; 
scsi_cmd4C	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4D 'LOG SENSE'
									; Optional
									; 
scsi_cmd4D	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $55 'MODE SELECT'
									; Optional
									; 
scsi_cmd55	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	one_sec			; Time out = 4 qtr second tick.
			dc.w	scsi_endcmd
									;
									; Command $5A 'MODE SENSE'
									; Mandatory
									; 
scsi_cmd5A	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $B3 'SET LIMITS'
									; Optional
									; 
scsi_cmdB3	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = apple_cd	THEN

									;
									; Command $00 'TEST UNIT READY'
									; Mandatory
									; 
scsi_cmd00	dc.w	scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	qtr_sec			; Time out = 1 qtr second tick.
			dc.w	10*one_sec		; Time out = 10 seconds.
			dc.w	scsi_endcmd
									;
									; Command $01 'REZERO UNIT'
									; Optional
									; 
scsi_cmd01	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	2*one_min		; Time out = 2 minutes.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $03 'REQUEST SENSE'
									; Mandatory
									; 
scsi_cmd03	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $08 'READ'
									; Mandatory
									; 
scsi_cmd08	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
;			dc.w	4*qtr_sec		; Time out = 1 second/block.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $0B 'SEEK'
									; Optional
									; 
scsi_cmd0B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	1*one_sec		; Time out = 1 second.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $12 'INQUIRY'
									; Mandatory
									; 
scsi_cmd12	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $15 'MODE SELECT'
									; Optional
									; 
scsi_cmd15	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $16 'RESERVE UNIT'
									; Mandatory
									; 
scsi_cmd16	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $17 'RELEASE UNIT'
									; Mandatory
									; 
scsi_cmd17	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1A 'MODE SENSE'
									; Optional
									; 
scsi_cmd1A	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1B 'START/STOP UNIT'
									; Optional
									; 
scsi_cmd1B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_1st++\	; Must be first device if linked
					scsic_dsw++\	; Issue DISK_SW with this call
					scsic_off++\	; Device is going offline.
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
									; Optional
									; 
scsi_cmd1C	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1D 'SEND DIAGNOSTICS'
									; Mandatory
									; 
scsi_cmd1D	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $1E 'PREVENT/ALLOW REMOVAL'
									; Optional
									; 
scsi_cmd1E	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $25 'READ CAPACITY'
									; Mandatory
									; 
scsi_cmd25	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $28 'READ (EXTENDED)'
									; Mandatory
									; 
scsi_cmd28	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
;			dc.w	4*qtr_sec		; Time out = 1 second/block.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $2B 'SEEK (EXTENDED)'
									; Optional
									; 
scsi_cmd2B	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $2F 'VERIFY'
									; Optional
									; 
scsi_cmd2F	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_tout++\	; Adjust time out by block count
					scsit_blk++\	; It has a Block Number
					scsid_asis++\	; It is an as is Packet
					scsid_blk		; Length is in Blocks
;					scsid_none		; Length is not in command
			dc.w	4*qtr_sec		; Time out = 1 second/block.
			dc.w	scsi_endcmd
									;
									; Command $3B 'WRITE BUFFER'
									; Optional
									; 
scsi_cmd3B	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_data++\	; It is a Data I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $3C 'READ BUFFER'
									; Optional
									; 
scsi_cmd3C	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_data++\	; It is a Data I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $4C 'LOG SELECT'
									; Optional
									; 
scsi_cmd4C	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4D 'LOG SENSE'
									; Optional
									; 
scsi_cmd4D	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $55 'MODE SELECT (EXTENDED)'
									; Optional
									; 
scsi_cmd55	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $5A 'MODE SENSE (EXTENDED)'
									; Optional
									; 
scsi_cmd5A	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $C0 'EJECT DISK'
									; Mandatory
									; 
scsi_cmdC0	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsic_dsw++\	; Issue DISK_SW with this call
					scsic_off++\	; Device is going offline.
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Length is not in command
;			dc.w	2*qtr_sec		; Time out = 2 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd
									;
									; Command $C1 'READ TOC'
									; Mandatory
									; 
scsi_cmdC1	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_byte		; Leave Trans Count in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0205
			dc.w	$0307
			dc.w	$0408
			dc.w	$0509
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $C2 'READ Q SUBCODE'
									; Mandatory
									; 
scsi_cmdC2	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_byte		; Leave Trans Count in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $C3 'READ HEADER'
									; Mandatory
									; 
scsi_cmdC3	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_byte		; Leave Trans Count in Bytes
;					scsit_blk++\	; Command has a Block Number
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0202
			dc.w	$0303
			dc.w	$0404
			dc.w	$0505
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $C8 'AUDIO TRACK SEARCH'
									; Mandatory
									; 
scsi_cmdC8	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_none		; Transfer count does not go in CMD
;					scsit_blk++\	; Command has a Block Number
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0201
			dc.w	$0301
			dc.w	$0402
			dc.w	$0503
			dc.w	$0604
			dc.w	$0705
			dc.w	$0809
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $C9 'AUDIO PLAY'
									; Mandatory
									; 
scsi_cmdC9	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_none		; Transfer count does not go in CMD
;					scsit_blk++\	; Command has a Block Number
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0201
			dc.w	$0301
			dc.w	$0402
			dc.w	$0503
			dc.w	$0604
			dc.w	$0705
			dc.w	$0809
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $CA 'AUDIO PAUSE'
									; Mandatory
									; 
scsi_cmdCA	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0201
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $CB 'AUDIO STOP'
									; Mandatory
									; 
scsi_cmdCB	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_none		; Transfer count does not go in CMD
;					scsit_blk++\	; Command has a Block Number
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0202
			dc.w	$0303
			dc.w	$0404
			dc.w	$0505
			dc.w	$0609
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $CC 'AUDIO STATUS'
									; Mandatory
									; 
scsi_cmdCC	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_byte		; Leave Trans Count in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0201
			dc.w	$0301
			dc.w	$0402
			dc.w	$0503
			dc.w	$0604
			dc.w	$0705
			dc.w	$0809
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $CD 'AUDIO SCAN'
									; Mandatory
									; 
scsi_cmdCD	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	$0101
			dc.w	$0201
			dc.w	$0301
			dc.w	$0402
			dc.w	$0503
			dc.w	$0604
			dc.w	$0705
			dc.w	$0809
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $CE 'AUDIO CONTROL'
									; Mandatory
									; 
scsi_cmdCE	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1C2 'READ Q SUBCODE'
									; Mandatory
									; 
scsi_cmd1C2	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = mcd_40	THEN

									;
									; Command $00 'TEST UNIT READY'
									; Mandatory
									; 
scsi_cmd00	dc.w	scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $01 'REZERO UNIT'
									; Optional
									; 
scsi_cmd01	dc.w	scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $03 'REQUEST SENSE'
									; Mandatory
									; 
scsi_cmd03	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $04 'FORMAT UNIT'
									; Mandatory
									; 
scsi_cmd04	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsic_dsw++\	; Issue DISK_SW with this call
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	one_min*50		; Time out = 50 Minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									; 
									; Command $05 'Send QIC 100 Sys Data'
									; Optional
									; 
scsi_cmd05	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									; 
									; Command $06 'Recv QIC 100 Sys Data'
									; Optional
									; 
scsi_cmd06	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $07 'REASSIGN BLOCKS'
									; Optional
									; 
scsi_cmd07	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $08 'READ'
									; Mandatory
									; 
scsi_cmd08	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsit_blk++\	; Command has a Block Number
					scsic_tout++\	; Adjust time out by block count
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_blk		; Convert Trans Count to Blocks
			dc.w	90*one_sec		; Time out = 90 seconds/Block.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $09 'VERIFY UNIT'
									; Optional
									; 
scsi_cmd09	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	one_min*50		; Time out = 50 Minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0A 'WRITE'
									; Mandatory
									; 
scsi_cmd0A	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsit_blk++\	; Command has a Block Number
					scsic_tout++\	; Adjust time out by block count
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_blk		; Convert Trans Count to Blocks
			dc.w	90*one_sec		; Time out = 90 seconds/Block.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0B 'SEEK'
									; Optional
									; 
scsi_cmd0B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsit_blk++\	; Command has a Block Number
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0D 'Read SCSI Defect (Vendor)'
									; Optional
									; 
scsi_cmd0D	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0E 'Read Controller Info'
									; Optional
									; 
scsi_cmd0E	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									; 
									; Command $0F 'Write Controller Info'
									; Optional
									; 
scsi_cmd0F	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									; 
									; Command $10 'DRIVE PASS-THRU'
									; Optional
									; 
scsi_cmd10	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $11 'READ DRIVE LINES'
									; Optional
									; 
scsi_cmd11	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $12 'INQUIRY'
									; Mandatory
									; 
scsi_cmd12	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $13 'Read QIC INFO'
									; Optional
									; 
scsi_cmd13	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									; 
									; Command $14 'Write QIC INFO'
									; Optional
									; 
scsi_cmd14	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $15 'MODE SELECT'
									; Optional
									; 
scsi_cmd15	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $16 'RESERVE UNIT'
									; Mandatory
									; 
scsi_cmd16	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $17 'RELEASE UNIT'
									; Mandatory
									; 
scsi_cmd17	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $19 'Read QIC Defect Data'
									; Optional
									; 
scsi_cmd19	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1A 'MODE SENSE'
									; Optional
									; 
scsi_cmd1A	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1B 'LOAD/UNLOAD UNIT'
									; Optional
									; 
scsi_cmd1B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
									; Optional
									; 
scsi_cmd1C	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1D 'SEND DIAGNOSTICS'
									; Mandatory
									; 
scsi_cmd1D	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $25 'READ CAPACITY'
									; Mandatory
									; 
scsi_cmd25	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $28 'READ (EXTENDED)'
									; Mandatory
									; 
scsi_cmd28	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsit_blk++\	; Command has a Block Number
					scsic_tout++\	; Adjust time out by block count
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_blk		; Convert Trans Count to Blocks
			dc.w	90*one_sec		; Time out = 90 seconds/Block.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $2A 'WRITE (EXTENDED)'
									; Mandatory
									; 
scsi_cmd2A	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsit_blk++\	; Command has a Block Number
					scsic_tout++\	; Adjust time out by block count
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_blk		; Convert Trans Count to Blocks
			dc.w	90*one_sec		; Time out = 90 seconds/Block.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $2B 'SEEK (EXTENDED)'
									; Optional
									; 
scsi_cmd2B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsit_blk++\	; Command has a Block Number
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	90*one_sec		; Time out = 90 seconds.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $37 'READ DEFECT DATA'
									; Optional
									; 
scsi_cmd37	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $3B 'WRITE BUFFER'
									; Optional
									; 
scsi_cmd3B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $3C 'READ BUFFER'
									; Optional
									; 
scsi_cmd3C	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4C 'LOG SELECT'
									; Optional
									; 
scsi_cmd4C	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4D 'LOG SENSE'
									; Optional
									; 
scsi_cmd4D	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $55 'MODE SELECT (EXTENDED)'
									; Optional
									; 
scsi_cmd55	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $5A 'MODE SENSE (EXTENDED)'
									; Optional
									; 
scsi_cmd5A	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = scanner	THEN

									;
									; Command $00 'TEST UNIT READY'
									; Mandatory
									; 
scsi_cmd00	dc.w	scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $03 'REQUEST SENSE'
									; Mandatory
									; 
scsi_cmd03	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $07 'GET DATA STATUS'
									; Optional
									; 
scsi_cmd07	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $08 'READ'
									; Mandatory
									; 
scsi_cmd08	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0A 'SEND'
									; Mandatory
									; 
scsi_cmd0A	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $0E 'SPACE'
									; Mandatory
									; 
scsi_cmd0E	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	8*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $11 'SPACE'
									; Mandatory
									; 
scsi_cmd11	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $12 'INQUIRY'
									; Mandatory
									; 
scsi_cmd12	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table

			dc.w	$000E			; Command $0E 'EXPLORATORY STATUS'
			dc.w	scsi_cmd0E		; Optional
									;
									; Command $15 'MODE SELECT'
									; Optional
									; 
scsi_cmd15	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $16 'RESERVE UNIT'
									; Mandatory
									; 
scsi_cmd16	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $17 'RELEASE UNIT'
									; Mandatory
									; 
scsi_cmd17	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $18 'COPY'
									; Optional
									; 
scsi_cmd18	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1A 'MODE SENSE'
									; Optional
									; 
scsi_cmd1A	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1B 'SCAN'
									; Optional
									; 
scsi_cmd1B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	1*one_min		; Time out = 1 Minute.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1C 'RECEIVE DIAGNOSTIC RESULTS'
									; Optional
									; 
scsi_cmd1C	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $1D 'SEND DIAGNOSTICS'
									; Mandatory
									; 
scsi_cmd1D	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
;			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	10*one_min		; Time out = 10 minutes.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $24 'DEFINE WINDOW PARAMETERS'
									; Mandatory
									; 
scsi_cmd24	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $25 'GET WINDOW PARAMETERS'
									; Optional
									; 
scsi_cmd25	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $28 'READ (EXTENDED)'
									; Mandatory
									; 
scsi_cmd28	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	10*one_min		; Time out = 10 minutes.
;			dc.w	2*one_sec		; Time out = 2 seconds
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $2A 'WRITE (EXTENDED)'
									; Mandatory
									; 
scsi_cmd2A	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	2*one_sec		; Time out = 2 seconds
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $31 'MEDIUM POSITION'
									; Optional
									; 
scsi_cmd31	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*one_min		; Time out = 1 Minute.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $34 'GET DATA STATUS'
									; Optional
									; 
scsi_cmd34	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	2*one_min		; Time out = 1 Minute.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $39 'COMPARE'
									; Optional
									; 
scsi_cmd39	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $3A 'COPY AND VERIFY'
									; Optional
									; 
scsi_cmd3A	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_none		; Transfer count does not go in CMD
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $3B 'WRITE BUFFER'
									; Optional
									; 
scsi_cmd3B	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $3C 'READ BUFFER'
									; Optional
									; 
scsi_cmd3C	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4C 'LOG SELECT'
									; Optional
									; 
scsi_cmd4C	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $4D 'LOG SENSE'
									; Optional
									; 
scsi_cmd4D	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_data++\	; SCSI Data I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $55 'MODE SELECT (EXTENDED)'
									; Optional
									; 
scsi_cmd55	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; SCSI Control Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table
									;
									; Command $5A 'MODE SENSE (EXTENDED)'
									; Optional
									; 
scsi_cmd5A	dc.w	scsit_rx++\		; SCSI Receive Data Command
					scsit_stat++\	; SCSI Status Command
					scsit_dvc++\	; SCSI Device I/O Command
					scsid_asis++\	; CMD Data is in SCSI format
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	4*qtr_sec		; Time out = 4 qtr second ticks.
			dc.w	scsi_endcmd		; End of SCSI Translation Table

			ENDIF

;-------------------------------------------------------------------------------

			IF		scsi_dtype = appl_laser	THEN

									;
									; Command $00 'TEST UNIT READY'
									; Mandatory
									; 
scsi_cmd00	dc.w	scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $01 'RESET PRINTER'
									; Optional
									; 
scsi_cmd01	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $02 'DOWN LOAD CODE'
									; Optional
									; 
scsi_cmd02	dc.w	scsit_tx++\		; SCSI Send Data Command
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Leave Trans Count in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $03 'REQUEST SENSE'
									; Mandatory
									; 
scsi_cmd03	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $04 'FORMAT UNIT'
									; Mandatory
									; 
scsi_cmd04	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $05 'DRAW BITS'
									; Optional
									; 
scsi_cmd05	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Transfer count does not go in CMD
			dc.w	10*one_min		; Time out = 10 Minute.
			dc.w	scsi_endcmd
									;
									; Command $06 'CLEAR BITS'
									; Mandatory
									; 
scsi_cmd06	dc.w	scsit_tx++\		; It requests data from target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	10*one_min		; Time out = 10 Minute.
			dc.w	scsi_endcmd
									;
									; Command $0A 'PRINT'
									; Mandatory
									; 
scsi_cmd0A	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Transfer count does not go in CMD
			dc.w	10*one_min		; Time out = 10 Minute.
			dc.w	scsi_endcmd
									;
									; Command $12 'INQUIRY'
									; Mandatory
									; 
scsi_cmd12	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $15 'MODE SELECT'
									; Optional
									; 
scsi_cmd15	dc.w	scsit_tx++\		; It sends data to the target
					scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $16 'RESERVE UNIT'
									; Mandatory
									; 
scsi_cmd16	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Transfer count does not go in CMD
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $17 'RELEASE UNIT'
									; Mandatory
									; 
scsi_cmd17	dc.w	scsit_cont++\	; It is a Control Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_none		; Length is not in command
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd
									;
									; Command $1A 'MODE SENSE'
									; Optional
									; 
scsi_cmd1A	dc.w	scsit_rx++\		; It requests data from target
					scsit_stat++\	; It is a Status Command
					scsit_dvc++\	; It is a Device I/O Command
					scsid_asis++\	; It is an as is Packet
					scsid_byte		; Length is in Bytes
			dc.w	1*qtr_sec		; Time out = 1 qtr second ticks.
			dc.w	scsi_endcmd

			ENDIF

;-------------------------------------------------------------------------------

			ENDP
			
			EJECT


;*******************************************************
;
;	Command Packet Size Table:
;
;	This table is indexed by (Group Number * 6)
;
;	The first word in an entry equals the Packet Size.
;	This is used to set the command length in the data
;	for the SCSI Manager calls.  If this value is null,
;	then the group is undefined for this driver.
;
;	The next byte is the offset to the first and most
;	significant byte of the requested block number if
;	used in this packet.
;
;	The byte following this is the number of bytes that
;	make up a valid Block Number.
;
;	The next byte is the offset to the first and most
;	significant byte of the requested data length if
;	used in this packet.
;
;	The byte following this is the number of bytes that
;	make up a valid request length.
;
;*******************************************************

			EXPORT	cmd_ps_tbl
cmd_ps_tbl	PROC
start_tbl
									;
									; Group 0 Commands
									;
			dc.w	0006			; 6 Byte Command.
			dc.b	$03				; Offset to last Block Parm
			EXPORT	c_blk_len:EQU
c_blk_len	equ		*-start_tbl		; Equated offset to Block Length
			dc.b	$03				; Length of Block Parm
			dc.b	$04				; Offset to last Length Parm
			EXPORT	c_len_len:EQU
c_len_len	equ		*-start_tbl		; Equated offset to Length Length

;-------------------------------------------------------------------------------

			IF		scsi_dtype = scanner	THEN

			dc.b	$02				; Length of Length Parm

			ELSE

;-------------------------------------------------------------------------------


			dc.b	$01				; Length of Length Parm

			ENDIF

;-------------------------------------------------------------------------------

									;
									; Group 1 Commands
									;
			dc.w	0010			; 10 Byte Command.
			dc.b	$05				; Offset to last Block Parm
			dc.b	$04				; Length of Block Parm
			dc.b	$08				; Offset to last Length Parm
			dc.b	$03				; Length of Length Parm
									;
									; Group 2 Commands
									;
			dc.w	0010			; 10 Byte Command.
			dc.b	$05				; Offset to last Block Parm
			dc.b	$04				; Length of Block Parm
			dc.b	$08				; Offset to last Length Parm
			dc.b	$03				; Length of Length Parm
									;
									; Group 3 Commands
									;
			dc.w	0000			; Reserved Command.
			dc.b	$00				; Offset to last Block Parm
			dc.b	$00				; Length of Block Parm
			dc.b	$00				; Offset to last Length Parm
			dc.b	$00				; Length of Length Parm
									;
									; Group 4 Commands
									;
			dc.w	0000			; Reserved Command.
			dc.b	$00				; Offset to last Block Parm
			dc.b	$00				; Length of Block Parm
			dc.b	$00				; Offset to last Length Parm
			dc.b	$00				; Length of Length Parm
									;
									; Group 5 Commands
									;
			dc.w	0012			; 12 Byte Command.
			dc.b	$05				; Offset to last Block Parm
			dc.b	$04				; Length of Block Parm
			dc.b	$09				; Offset to last Length Parm
			dc.b	$04				; Length of Length Parm
									;
									; Group 6 Commands
									;
			dc.w	0010			; 10 Byte Command.
			dc.b	$05				; Offset to last Block Parm
			dc.b	$04				; Length of Block Parm
			dc.b	$08				; Offset to last Length Parm
			dc.b	$03				; Length of Length Parm
									;
									; Group 7 Commands
									;
			dc.w	0000			; Reserved Command.
			dc.b	$00				; Offset to last Block Parm
			dc.b	$00				; Length of Block Parm
			dc.b	$00				; Offset to last Length Parm
			dc.b	$00				; Length of Length Parm

			ENDP
			
			EJECT

;*******************************************************
;
;	Internal Data Buffer:
;
;	This buffer is used by the driver for all of it's
;	maintainence I/O between it and the devices that it
;	manages or communicates with.  This is where any
;	INQUIRY data will be received or blocks read in that
;	are needed by the driver to make any kind of
;	determination.  There is also a section reserved for
;	the REQUEST SENSE command for that last command sent.
;
;*******************************************************

				EXPORT	internal_buff
internal_buff	PROC

;-------------------------------------------------------------------------------

				IF			scsi_dtype = direct_acc	THEN

				dcb.b	block_size+20,0		;Incase 532 byte block

				ENDIF

;-------------------------------------------------------------------------------

				IF			scsi_dtype = apple_cd	THEN

				dcb.b	block_size*4,0		;Worst case 2k Block size

				ENDIF

;-------------------------------------------------------------------------------

				IF			scsi_dtype = mcd_40	THEN

				dcb.b	block_size,0

				ENDIF

;-------------------------------------------------------------------------------

				IF			scsi_dtype = scanner	THEN

				dcb.b	one_page*2,0

				ENDIF

;-------------------------------------------------------------------------------

				IF			scsi_dtype = appl_laser	THEN

				dcb.b	one_page*2,0

				ENDIF

;-------------------------------------------------------------------------------

				ENDP

				END

				EJECT