	.TITLE	QTTAB
	.IDENT	"V1.0"
;
;   Author: D. Mischler  30-AUG-88
;
;   This module contains the loadable data base for the
;   QT: (streaming tape caching) device driver.
;
	.PAGE
;
;   Macro to generate a UCB.
;
	.MACRO	UCB	UNIT
$$$	=	.
	.IF DF	M$$MUP
	.WORD	0		; U.OWN   Owning terminal UCB address.
	.ENDC
.QT'UNIT:
	.WORD	$QTDCB		; U.DCB   DCB address.
	.WORD	.-2		; U.RED   Redirection address.
	.BYTE	UC.ALG!1	; U.CTL   Control flags.
	.BYTE	US.MNT		; U.STS   Status flags.
	.BYTE	UNIT		; U.UNIT  Unit number.
	.BYTE	US.RED!US.OFL	; U.ST2   More status flags.
	.WORD	DV.F11!DV.MNT!DV.MSD!DV.REC!DV.SQD ; U.CW1  Device type flags.
	.WORD	0		; U.CW2   Tape density info (none).
	.WORD	0		; U.CW3   Driver flag bits.
	.WORD	512.		; U.CW4   Default block size.
	.WORD	$QT'UNIT	; U.SCB   SCB address.
	.WORD	0		; U.ATT   Attached task TCB address.
	.WORD	0,0		; U.BUF   User buffer doubleword.
	.WORD	0		; U.CNT   Number of bytes to transfer.
	.WORD	0		; U.UCBX  UCB extension in secondary pool.
	.WORD	0		; U.ACP   Mounted ACP TCB address.
	.WORD	0		; U.VCB   Volume control block address.
	.BLKB	UCBEND-<.-.QT'UNIT> ; QT: driver specific data.
UCBLEN	=	.-$$$
	.SAVE
	.PSECT	SCBS
$QT'UNIT:
	.WORD	0,.-2		; S.LHD  I/O queue list head.
	.WORD	0,0,0,0		; S.FRK  Fork block link word, PC, R5, R4.
	.WORD	0		; S.KS5  Driver/fork KISAR5.
	.WORD	0		; S.PKT  I/O packet address.
	.BYTE	0		; S.CTM  Current timeout count.
	.BYTE	0		; S.ITM  Initial timeout count.
	.BYTE	0		; S.STS  Status (0 = free, NE 0 = busy).
	.BYTE	0		; S.ST3  Status extension byte.
	.WORD	0		; S.ST2  Status extension.
	.WORD	0		; S.KRB  Address of KRB.
	.RESTORE
	.ENDM	UCB
	.PAGE
	.PSECT	DATA
$QTDAT::
;
;   QT: DCB definition (looks like a tape drive to me).
;
$QTDCB::
	.WORD	0		; D.LNK  Link to next DCB.
	.WORD	.QT0		; D.UCB  Address of first UCB.
	.ASCII	"QT"		; D.NAM  Generic device mnemonic.
	.BYTE	0,UNITS-1	; D.UNIT Lowest, highest unit.
	.WORD	UCBLEN		; D.UCBL UCB length.
	.WORD	0		; D.DSP  Driver dispatch table address.
	.WORD	171177		; D.MSK  Legal function mask 0 - 15.
	.WORD	000170		;	 Cntrl function mask 0 - 15.
	.WORD	010000		;	 NO-OP function mask 0 - 15.
	.WORD	161000		;	 ACP   function mask 0 - 15.
	.WORD	000537		;	 Legal function mask 16 - 31.
	.WORD	000000		;	 Cntrl function mask 16 - 31.
	.WORD	000000		;	 NO-OP function mask 16 - 31.
	.WORD	000537		;	 ACP   function mask 16 - 31.
	.WORD	0		; D.PCB  Driver PCB address.

;
;   QT: UCB and SCB definitions.
;
UCBNUM	=	0
	.REPT	UNITS
	UCB	\UCBNUM
UCBNUM	=	UCBNUM+1
	.ENDR
	.PSECT	SCBS
$QTEND::
	.END
