.TITLE VDTBL - VD: DRIVER TABLE .SBTTL VDTBL - TITLE PAGE .IDENT /Y01.00/ ;**- ; Module name: VDTBL - VD: DATA BASE ; ; Version Y01.00 Last edit: 20-NOV-80 14:19 ; Status: Released for test ; ; VD: (VIRTUAL DISK) DEVICE DRIVER TABLE. ; ; VERSION: V01.00 ; ; AUTHOR: R.W. STAMERJOHN MAPC 03-FEB-79 ; ; MODIFICATION HISTORY: ; ; Revision history: ; ; Version X01.00 11-AUG-80 15:42 - 20-NOV-80 14:19 ; Created by: K.J. CROSS ; ; Version Y01.00 20-NOV-80 14:19 - 20-NOV-80 14:19 ; Modified by: KJC ; ;**- ; ; ************************************************************************ ; * ; THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS ONLY. * ; * ; FULL PERMISSION AND CONSENT IS HEREBY GIVEN TO DECUS AND TO THE DECUS * ; SPECIAL INTEREST GROUPS TO REPRODUCE, DISTRIBUTE, AND PUBLISH AND * ; PERMIT OTHERS TO REPRODUCE IN WHOLE OR IN PART, IN ANY FORM AND * ; WITHOUT RESTRICTION, THIS PROGRAM AND ANY INFORMATION RELATING THERETO * ; * ; ************************************************************************ ; .SBTTL VDTBL - DECLARATIONS ; ; MACRO LIBRARY CALLS: ; .MCALL DEVDF$ ;DEFINE DEVICE DATA STRUCTURE SYMBOLICS DEVDF$ .SBTTL VDTBL - MACRO DEFINITIONS ; ; DEFINE UCB CREATION MACRO. ; .MACRO UCBS UNIT .IF DF M$$MUP .WORD 0 ;(U.OWN ) OWNING TERMINAL UCB ADDRESS .ENDC .VD'UNIT:: ;REF. LABEL. .WORD .VDDCB ;(U.DCB ) POINTER TO DCB .WORD .-2 ;(U.RED ) REDIRECT UCB POINTER .BYTE UC.NPR!UC.ALG!UC.PWF!3 ;(U.CTL ) CONTROL FLAGS .BYTE US.MNT ;(U.STS ) STATUS FLAGS .BYTE UNIT ;(U.UNIT) UNIT NUMBER .BYTE US.RED ;(U.STS2) STATUS FLAGS .WORD DV.DIR!DV.F11!DV.MNT ;(U.CW1 ) DEVICE CHARACTERISTICS .WORD 0 ;(U.CW2 ) DEVICE CHARACTERISTICS .WORD 0 ;(U.CW3 ) DEVICE CHARACTERISTICS .WORD 1000 ;(U.CW4 ) BUFFER SIZE .WORD $VD0 ;(U.SCB ) SCB POINTER .WORD 0 ;(U.ATT ) ATTACH WORD .WORD 0,0 ;(U.BUF ) BUFFER RELOCATION ADDRESS .WORD 0 ;(U.CNT ) BUFFER SIZE (BYTES) .WORD 0 ;(U.ACP ) ACP TCB ADDRESS .WORD 0 ;(U.VCB ) VCB ADDRESS .WORD 0 ;(U.NXT ) VIRTUAL CONTROL BLOCK .ENDM UCBS .SBTTL VDTBL - DATA STRUCTURE ; ; THE VIRTUAL DISK DATA STRUCTURE LOOKS LIKE A NORMAL DISK STRUCTURE WITH ; SEVERAL UNITS AND ONE CONTROLLER. HOWEVER, THE UCB IS EXPANDED TO INCLUDE ; ADDITIONAL MAPPING INFORMATION AND THE SCB USES A NULL CSR AND VECTOR. .IIF DF LD$VD $VDTBL=0 ; ; DCB DATA STRUCTURE. ; $VDDAT:: ;REF. LABEL. .VDDCB:: ;REF. LABEL. .WORD 0 ;(D.LNK ) LINK TO NEXT DCB .WORD .VD0 ;(D.UCB ) LINK TO FIRST UCB .ASCII /VD/ ;(D.NAM ) DEVICE NAME .BYTE 0,VDHI-1 ;(D.UNIT) LOWEST, HIGHEST UNIT NUMBER .WORD VDND-VDST ;(D.UCBL) LENGTH OF UCB .WORD $VDTBL ;(D.DSP ) ADDRESS OF DRIVER DISPATCH TABLE .WORD 177037 ;(D.MSK ) LEGAL FUNCTION MASK 0-15 .WORD 000030 ; CNTRL FUNCTION MASK 0-15 .WORD 000000 ; NO-OP FUNCTION MASK 0-15 .WORD 177000 ; ACP FUNCTION MASK 0-15 .WORD 000377 ; LEGAL FUNCTION MASK 16-31 .WORD 000000 ; CNTRL FUNCTION MASK 16-31 .WORD 000000 ; NO-OP FUNCTION MASK 16-31 .WORD 000377 ; ACP FUNCTION MASK 16-31 .IF DF L$$DRV .WORD 0 ;(D.PCB) PCB ADDRESS .ENDC ; ; UCB DATA STRUCTURE ; VDHI = 0 .REPT V$$D11 VDST = . UCBS \VDHI VDHI = VDHI+1 VDND = . .ENDR ; ; SCB DATA STRUCTURE. ; $VD0:: ;REF. LABEL .WORD 0,.-2 ;(S.LHD ) I/O QUEUE LISTHEAD .BYTE 0 ;(S.PRI ) DEVICE PRIORITY .BYTE 0/4 ;(S.VCT ) VECTOR ADDRESS/4 .BYTE 0 ;(S.CTM ) CURRENT TIMEOUT COUNT .BYTE 0 ;(S.ITM ) INITIAL TIMEOUT COUNT .BYTE 0 ;(S.CON ) CONTROLLER NUMBER .BYTE 0 ;(S.STS ) CONTROLLER STATUS .WORD 4 ;(S.CSR ) CSR ADDRESS .WORD 0 ;(S.PKT ) CURRENT PACKET ADDRESS .WORD 0,0,0,0 ;(S.FRK ) FORK CELL .IF DF L$$DRV&M$$MGE .WORD 0 ; ADDITIONAL WORD .ENDC .IF DF M$$EXT .WORD 0,0,0,0,0,0 ; ADDITIONAL SPACE IF 11/70 .ENDC $VDEND:: ;END OF DATA BASE .END