.TITLE DEVICEDAT - SIMULATOR DEVICE DATA BASE .IDENT /X02/ ; ; ; COPYRIGHT (C) 1977 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- ; SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY ; OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM ; AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. ; ; R.HEINEN 3-AUG-76 ; ; DEVICE DATA BASE FOR SIMULATOR ; ; MACRO LIBRARY CALLS ; $CRDEF ; DEFINE CARD READER STATUS BITS $DCDEF ; DEFINE DEVICE CLASSES $DEVDEF ; DEFINE DEVICE CHARACTERISTICS $DYNDEF ; STRUCTURE TYPE CODE DEFINITIONS $FCBDEF ; DEFINE FCB OFFSETS $IPLDEF ; DEFINE IPL LEVELS $LPDEF ; DEFINE LINE PRINTER CHARACTERISTICS $MBADEF ; DEFINE MBA REGISTER OFFSETS $TTDEF ; DEFINE TERMINAL CHARACTERISTICS $UCBDEF ; DEFINE UCB OFFSETS AND MASKS $VECDEF ; DEFINE CRB INTERRRUPT VECTOR STRUCTURE ; ; GLOBAL DATA ; ; SYSTEM BOOT UCB TABLES ; .PSECT $$$100,LONG,WRT IOC$AL_SYSUCB:: ; SYSTEM DEVICE UCB TABLE .LONG DBUCB ; RP06 UCB TABLE .LONG 0 .LONG DMUCB ;UBA/RK06 UCB TABLE .LONG DMUCB ; UBA/RK06 UCB TABLE DBUCB: .LONG DBA$UCB0 ; RP06 UNIT 0 UCB ADDRESS .LONG DBA$UCB1 ; RP06 UNIT 1 UCB ADDRESS .LONG DBA$UCB2 ; RP06 UNIT 2 UCB ADDRESS .LONG DBA$UCB3 ; RP06 UNIT 3 UCB ADDRESS DMUCB: .LONG DMA$UCB0 ; RK06 UNIT 0 UCB ADDRESS .LONG DMA$UCB1 ; RK06 UNIT 1 UCB ADDRESS .LONG DMA$UCB2 ; RK06 UNIT 2 UCB ADDRESS IOC$GL_DEVLIST:: .LONG DBA$DDB ; START OF DEVICE LIST IOC$GL_ADPLIST:: ; .LONG UBA$ADP0 ; START OF ADAPTER CONTROL BLOCK LIST ; ; DBA DDB ; DBA$DDB:: .LONG DBB$DDB ; POINTER TO NEXT DDB .LONG DBA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-DBA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG DB$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /F11/ ; DEFAULT ACP NAME .BYTE 1 ; ACP CLASS 1 .BYTE 3 ; 3 CHARACTER NAME .ASCII /DBA/ ; DEVICE NAME 10$: ; ; DBA UCB FOR UNIT 0 ; DBA$UCB0:: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBA$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBA$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BYTE <0@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBA UCB FOR UNIT 1 ; DBA$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBA$UCB1 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBA$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG ; .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER DISK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 1 ; SLAVE CONTROLLER NUMBER .BYTE <1@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBA UCB FOR UNIT 2 ; DBA$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBA$UCB2 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBA$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 2 ; SLAVE CONTROLLER NUMBER .BYTE <2@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBA UCB FOR UNIT 3 ; DBA$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBA$UCB3 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 3 ; SLAVE CONTROLLER NUMBER .BYTE <3@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; CRB FOR DBA ; DBA$CRB: 1$: .LONG 1$,1$ ; WAIT QUEUE FOR CHANNEL .WORD DBA-DBA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 4 ; NUMBER OF UNITS .WORD 5 ; REF COUNT .BYTE 0 ; MASK .BYTE 0 ; SPARE BYTE .LONG 0 ; POINTER TO NEXT CRB MBA$INTDIS:: ; PUSHR #^M ; INTERRUPT ENTRY JSB MBA$INT ; ENTRY TO INTERRUPTS SERVICE .LONG DBA$IDB ; POINTER TO IDB FOR DBA .LONG MBA$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG 0 ; ADDRESS OF ADP DBA: ; ; DBA IDB ; DBA$IDB:: .LONG DBA$CSR ; CSR OF UNIT 0 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-DBA$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE IS IDB .BYTE 4 ; NUMBER OF UNITS .LONG 0 ; POINTER TO ADAPTER CONTROL BLOCK .LONG TM$INTDIS!1 ; POINTER TO UNIT'S UCB .LONG DBA$UCB1 ; POINTER TO UNIT'S UCB .LONG DBA$UCB2 ; POINTER TO UNIT'S UCB .LONG DBA$UCB3 ; POINTER TO UNIT'S UCB 10$: ; ; DRA DDB ; DRA$DDB:: .LONG DBB$DDB ; POINTER TO NEXT DDB .LONG DRA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-DRA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG DR$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /F11/ ; DEFAULT ACP NAME .BYTE 1 ; ACP CLASS 1 .BYTE 3 ; 3 CHARACTER NAME .ASCII /DRA/ ; DEVICE NAME 10$: ; ; DRA UCB FOR UNIT 0 ; DRA$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DRA$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DRA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DRA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DRA$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 32 ; SECTORS PER TRACK .BYTE 5 ; TRACKS PER CYLINDER .WORD 823 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BYTE <0@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG <823*5*32>-32,0,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DRA UCB FOR UNIT 1 ; DRA$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DRA$UCB1 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DRA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DRA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DRA$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG ; .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 32 ; SECTORS PER TRACK .BYTE 5 ; TRACKS PER CYLINDER .WORD 823 ; CYLINDERS PER DISK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 1 ; SLAVE CONTROLLER NUMBER .BYTE <1@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG <823*5*32>-32,0,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DRA UCB FOR UNIT 2 ; DRA$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DRA$UCB2 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DRA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DRA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DRA$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 32 ; SECTORS PER TRACK .BYTE 5 ; TRACKS PER CYLINDER .WORD 823 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 2 ; SLAVE CONTROLLER NUMBER .BYTE <2@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG <823*5*32>-32,0,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DRA UCB FOR UNIT 3 ; DRA$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DRA$UCB3 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DRA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DRA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 32 ; SECTORS PER TRACK .BYTE 5 ; TRACKS PER CYLINDER .WORD 823 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 3 ; SLAVE CONTROLLER NUMBER .BYTE <3@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG <823*5*32>-32,0,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; CRB FOR DRA ; DRA$CRB:: 1$: .LONG 1$,1$ ; WAIT QUEUE FOR CHANNEL .WORD DRA-DRA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 4 ; NUMBER OF UNITS .WORD 5 ; REF COUNT .BYTE 0 ; MASK .BYTE 0 ; SPARE BYTE .LONG 0 ; POINTER TO NEXT CRB DRA$INTDIS:: ; PUSHR #^M ; INTERRUPT ENTRY JSB MBA$INT ; ENTRY TO INTERRUPTS SERVICE .LONG DRA$IDB ; POINTER TO IDB FOR DRA .LONG MBA$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG 0 ; ADDRESS OF ADP DRA: ; ; DRA IDB ; DRA$IDB:: .LONG DBA$CSR ; CSR OF UNIT 0 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-DRA$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE IS IDB .BYTE 4 ; NUMBER OF UNITS .LONG 0 ; POINTER TO ADAPTER CONTROL BLOCK .LONG TM$INTDIS!1 ; POINTER TO UNIT'S UCB .LONG DRA$UCB1 ; POINTER TO UNIT'S UCB .LONG DRA$UCB2 ; POINTER TO UNIT'S UCB .LONG DRA$UCB3 ; POINTER TO UNIT'S UCB 10$: ; ; DBB DDB ; DBB$DDB: .LONG DMA$DDB ; POINTER TO NEXT DDB .LONG DBB$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-DBB$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG DB$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /F11/ ; DEFAULT ACP NAME .BYTE 2 ; ACP CLASS 2 .BYTE 3 ; 3 CHARACTER NAME .ASCII /DBB/ ; DEVICE NAME 10$: ; ; DBB UCB FOR UNIT 0 ; DBB$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBB$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBB$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBB$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBB$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+1 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BYTE <0@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBB UCB FOR UNIT 1 ; DBB$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBB$UCB1 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBB$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBB$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBB$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG ; .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER DISK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+1 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 1 ; SLAVE CONTROLLER NUMBER .BYTE <1@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBB UCB FOR UNIT 2 ; DBB$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBB$UCB2 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBB$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBB$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DBB$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+1 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 2 ; SLAVE CONTROLLER NUMBER .BYTE <2@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DBB UCB FOR UNIT 3 ; DBB$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DBB$UCB3 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DBB$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DBB$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 19 ; TRACKS PER CYLINDER .WORD 815 ; CYLINDERS PER PACK 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+1 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 3 ; SLAVE CONTROLLER NUMBER .BYTE <3@7>/4 ; DRIVE OFFSET CONSTANT .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 815*19*22,0,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; CRB FOR DBB ; DBB$CRB:: 1$: .LONG 1$,1$ ; WAIT QUEUE FOR CHANNEL .WORD DBB-DBB$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 4 ; NUMBER OF UNITS .WORD 4 ; REF COUNT .BYTE 0 ; MASK .BYTE 0 ; SPARE BYTE .LONG 0 ; POINTER TO NEXT CRB MBB$INTDIS:: ; PUSHR #^M ; INTERRUPT ENTRY JSB MBA$INT ; ENTRY TO INTERRUPTS SERVICE .LONG DBB$IDB ; POINTER TO IDB FOR DBB .LONG MBA$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG 0 ; ADDRESS OF ADP DBB: ; ; DBB IDB ; DBB$IDB:: ; .LONG DBB$CSR ; CSR OF UNIT 0 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-DBB$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE IS IDB .BYTE 4 ; NUMBER OF UNITS .LONG 0 ; POINTER TO ADAPTER CONTROL BLOCK .LONG DBB$UCB0 ; POINTER TO UNIT'S UCB .LONG DBB$UCB1 ; POINTER TO UNIT'S UCB .LONG DBB$UCB2 ; POINTER TO UNIT'S UCB .LONG DBB$UCB3 ; POINTER TO UNIT'S UCB 10$: ; ; ; DMA DDB ; DMA$DDB: .LONG TMA$DDB ; POINTER TO NEXT DDB .LONG DMA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-DMA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG DM$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /F11/ ; DEFAULT ACP NAME .BYTE 3 ; ACP CLASS 3 .BYTE 3 ; 3 CHARACTER NAME .ASCII /DMA/ ; DEVICE NAME 10$: ; ; DMA UCB FOR UNIT 0 ; .LONG 0,0,0,0,0,0,0,0,0,0,0 ; DMA$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DMA$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DMA$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 3 ; TRACKS PER CYLINDER .WORD 411 ; CYLINDERS PER CARTRIDGE 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+2 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BLKW 1 ; SPARE WORD .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 411*3*22,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DMA UCB FOR UNIT 1 ; .LONG 0,0,0,0,0,0,0,0,0,0,0 ; DMA$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DMA$UCB1 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG DMA$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 3 ; TRACKS PER CYLINDER .WORD 411 ; CYLINDERS PER CARTRIDGE 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+2 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BLKW 1 ; SPARE UNUSED WORD .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 411*3*22,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; DMA UCB FOR UNIT 2 ; .LONG 0,0,0,0,0,0,0,0,0,0,0 ; DMA$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DMA$UCB2 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG DMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 22 ; SECTORS PER TRACK .BYTE 3 ; TRACKS PER CYLINDER .WORD 411 ; CYLINDERS PER CARTRIDGE 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+2 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BLKW 1 ; SPARE UNUSED WORD .LONG 0,0,0 ; ERROR LOG STORAGE .LONG 411*3*22,0,0,0,0 ; DEVICE DEPENDENT DATA AREA 10$: ; ; CRB FOR DMA ; DMA$CRB: 1$: .LONG 1$,1$ ; WAIT QUEUE FOR CHANNEL .WORD DMA-DMA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 3 ; NUMBER OF UNITS .WORD 3 ; REF COUNT .BYTE 0 ; MASK .BYTE 0 ; SPARE BYTE .LONG 0 ; POINTER TO NEXT CRB DMA$INTDIS: ; PUSHR #^M ; INTERRUPT ENTRY JSB DM$INT ; ENTRY TO INTERRUPTS SERVICE .LONG DMA$IDB ; POINTER TO IDB FOR DMA .LONG DM$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .WORD 0 ; STARTING UNIBUS MAP REGISTER ADDRESS .BYTE 0 ; NUMBER OF MAP REGISTERS ALLOCATED .BYTE 0 ; DATAPATH DESIGNATOR .LONG UBA$ADP0 ; ADDRESS OF ADAPTER CONTROL BLOCK DMA: ; ; DMA IDB ; DMA$IDB: .LONG UBA$IOBASE+^O17440 ; CSR OF UNIT 0 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-DMA$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE IS IDB .BYTE 3 ; SPARE BYTE .LONG UBA$ADP0 ; POINTER TO ADAPTER CONTROL BLOCK .LONG DMA$UCB0 ; POINTER TO UNIT'S UCB .LONG DMA$UCB1 ; POINTER TO UNIT'S UCB .LONG DMA$UCB2 ; POINTER TO UNIT'S UCB 10$: ; ; TMA DDB ; TMA$DDB: .LONG TTD$DDB ; POINTER TO NEXT DDB .LONG TMA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TMA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TM$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /MTA / ; DEFAULT ACP NAME .BYTE 3 ; 3 CHARACTER NAME .ASCII /MTA/ ; DEVICE NAME 10$: ; ; TMA UCB FOR UNIT 0 ; TMA$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TMA$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TMA$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+<6@8+DC$_TAPE> ; SECOND CHARACTERISTICS WORD .WORD ^X3C0 ; TAPE CHARACTERISTICS .WORD 0 ; TAPE STATUS 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 16,16 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BLKB 1 ; SPARE UNUSED BYTE .LONG 0,0,0,0,0 ; ERROR LOG STORAGE .LONG 0,0,0 ; DEVICE DEPENDENT DATA .WORD 0,^X3C0 ; 10$: ; ; TMA UCB FOR UNIT 1 ; TMA$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TMA$UCB1 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG ; .LONG <512@16>+<6@8+DC$_TAPE> ; SECOND CHARACTERISTICS WORD .WORD ^X3C1 ; TAPE CHARACTERISTICS .WORD 0 ; TAPE STATUS 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 (^X15) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 16,16 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BLKB 1 ; SPARE UNUSED BYTE .LONG 0,0,0,0,0 ; ERROR LOG STORAGE .LONG 0,0,0 ; DEVICE DEPENDENT DATA .WORD 0,^X3C1 ; 10$: ; ; CRB FOR TMA ; TMA$CRB:: 1$: .LONG 1$,1$ ; WAIT QUEUE FOR CHANNEL .WORD TMA-TMA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 2 ; NUMBER OF UNITS .WORD 2 ; REF COUNT .BYTE 0 ; MASK .BYTE 0 ; SPARE BYTE .LONG DBA$CRB ; POINTER TO NEXT CRB TM$INTDIS:: ; TM03-TE16/TU77 INTERRUPT DISPATCH PUSHR #^M ; INTERRUPT ENTRY JSB TM$INT ; ENTRY TO INTERRUPTS SERVICE .LONG TMA$IDB ; POINTER TO IDB FOR TMA .LONG 0 ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH CONTROL .LONG 0 ; ADDRESS OF ADP TMA: ; ; TMA IDB ; TMA$IDB:: .LONG DBA$CSR+MBA$L_ERB ; CSR OF UNIT 0 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TMA$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE IS IDB .BYTE 2 ; NUMBER OF UNITS .LONG 0 ; POINTER TO ADAPTER CONTROL BLOCK .LONG TMA$UCB0 ; POINTER TO UNIT'S UCB .LONG TMA$UCB1 ; POINTER TO UNIT'S UCB 10$: ; ; ; CONSOLE DDB ; TTD$DDB: .LONG DXP$DDB ; POINTER TO NEXT DDB .LONG TTD$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTD$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTA/ ; DEVICE NAME 10$: ; ; CONSOLE UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE 0 ; SPEED .LONG 0 ; TTD$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTD$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTD$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTD$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <132@16>++; WIDTH OF CARRIAGE ETC. .LONG - ; TERMINAL CHARACTERISTICS +- +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 20 ; INTERRUPT LEVEL IS 20 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+2 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; CONSOLE CRB ; TTD$CRB: .LONG 0,0 ; .WORD CD-TTD$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BLKB 1 ; UNUSED .LONG 1 ; REF COUNT=1 AND NEVER BUSY .LONG 0 ; NO NEXT CRB CON$INTDISI:: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB CON$INTINP ; INPUT INTERRUPT SERVICE .LONG TTD$IDB ; POINTER TO PSEUDO IDB .LONG CON$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG 0 ; ADDRESS OF ADP .LONG CON$INITLINE,CON$STARTIO,CON$DISCON CON$INTDISO:: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB CON$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTD$IDB ; POINTER TO TTA CRB CD: ; ; CONSOLE IDB ; TTD$IDB: .LONG 0 ; CSR ADDRESS .LONG 0 ; OWNER UCB ADDRESS .WORD ID-TTD$IDB ; SIZE OF IDB .BYTE DYN$C_IDB ; TYPE OF STRUCTURE .BYTE 2 ; NUMBER OF UNITS .LONG 0 ; ADAPTER ADDRESS .LONG TTD$UCB0 ; UNIT 0 UCB ADDRESS .LONG DXP$UCB0 ; UNIT 1 UCB ADDRESS .LONG DXP$UCB0 ; UNIT 1 INPUT UCB ADDRESS ID: ; ; CONSOLE FLOPPY DDB ; DXP$DDB: .LONG CRA$DDB ; POINTER TO NEXT DDB .LONG DXP$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-DXP$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG DXP$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII /F11/ ; DEFAULT ACP NAME .BYTE 3 ; ACP CLASS 3 .BYTE 3 ; 3 CHARACTER NAME .ASCII /DXA/ ; DEVICE NAME 10$: ; ; CONSOLE FLOPPY UCB 0 ; DXBUF: .BLKB 128 ; CONSOLE SECTOR BUFFER .LONG DXBUF ;CONSOLE BUFFER ADDRESS .LONG 0 ;CONSOLE BUFFER POINTER .LONG 0 ;COPY OF RXDB REGISTER .WORD 0 ;NUMBER OF BYTES REQUESTED .BYTE 0 ;SECTOR COUNT .BLKB 1 ;SPARE BYTE DXP$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-DXP$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTD$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG DXP$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; NO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <512@16>+ ; SECOND CHARACTERISTICS WORD .BYTE 26 ; SECTORS PER TRACK (128 BYTES PER SECTOR) .BYTE 1 ; TRACKS PER CYLINDER .WORD 77 ; CYLINDERS PER CARTRIDGE 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT NUMBER .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 20 ; INTERRUPT LEVEL IS 20 (^X14) .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .WORD 1@UCB$V_ONLINE ; STATUS .WORD 1@UCB$V_NOCNVRT ; NO PHYSICAL TO LOGICAL CONVERSION .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+3 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .BYTE 8,8 ; ERROR RETRY COUNT .BYTE 0 ; SLAVE CONTROLLER NUMBER .BLKB 1 ; SPARE UNUSED BYTE .LONG 0,0,0 ; ERROR LOG STORAGE .LONG <76*26*1>/4 ; MAXIMUM LBN .LONG 0,0 ; ... 10$: ; ; CRA DDB ; CRA$DDB: ; .LONG LPB$DDB ; POINTER TO NEXT DDB .LONG CRA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-CRA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG CR$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /CRA/ ; DEVICE NAME 10$: ; ; CRA UCB FOR UNIT 0 ; CRA$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-CRA$UCB0 ; SIZE OF LPA UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG CRA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG CRA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .BYTE DC$_CARD ; DEVICE CLASS .BYTE 0 ; DEVICE TYPE .WORD 80 ; DEFAULT BUFFER SIZE .LONG CR$K_T029 ; DEFAULT 029 TRANSLATION 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .LONG 0,0 ; DEVICE DEPENDENT DATA 10$: ; ; CRB FOR CRA UNIT 0 ; CRA$CRB: .LONG UBA$IOBASE+^O17160 ; CSR FOR UNIT 777160 .LONG CRA$UCB0 ; DEVICE UCB ADDRESS .WORD CRA-CRA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REF COUNT=1 AND NEVER BUSY .LONG 0 ; NO NEXT CRB CRA$INTDIS: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB CR$INT ; INPUT INTERRUPT SERVICE .LONG CRA$CRB ; POINTER TO PSEUDO IDB .LONG CR$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP CRA: ; ; LPB DDB ; LPB$DDB: .LONG LPC$DDB ; POINTER TO NEXT DDB .LONG LPB$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-LPB$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG LP$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /LPA/ ; DEVICE NAME 10$: ; ; LPB UCB FOR UNIT 0 ; LPB$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-LPB$UCB0 ; SIZE OF LPA UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG LPB$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG LPB$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <132@16>++; SECOND CHARACTERISTICS WORD .LONG <64@24>- ; PAGE SIZE IS 64 + ; MECHANICAL FORM FEED 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+4 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .WORD -1 ; UCB MUTEX .WORD 0 ; .LONG 0 ; 10$: ; ; CRB FOR LPB UNIT 0 ; LPB$CRB: .LONG UBA$IOBASE+^O17514 ; CSR FOR UNIT 777514 .LONG LPB$UCB0 ; DEVICE UCB ADDRESS .WORD LPB-LPB$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REF COUNT=1 AND NEVER BUSY .LONG 0 ; NO NEXT CRB LPB$INTDIS: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB LP$INT ; INPUT INTERRUPT SERVICE .LONG LPB$CRB ; POINTER TO PSEUDO IDB .LONG LP$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP LPB: ; ; LPC DDB ; LPC$DDB: .LONG TTE$DDB ; POINTER TO NEXT DDB .LONG LPC$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-LPC$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG LP$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /LPB/ ; DEVICE NAME 10$: ; ; LPC UCB FOR UNIT 0 ; LPC$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-LPC$UCB0 ; SIZE OF LPA UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG LPC$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG LPC$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <132@16>++; SECOND CHARACTERISTICS WORD .LONG <64@24>- ; PAGE SIZE IS 64 +- ; CARRIAGE RETURN NEEDED + ; MECHANICAL FORM FEED 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG 0 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .WORD -1 ; UCB MUTEX .WORD 0 ; .LONG 0 ; 10$: ; ; CRB FOR LPC UNIT 0 ; LPC$CRB: .LONG UBA$IOBASE+^O14004 ; CSR FOR UNIT 774004 .LONG LPC$UCB0 ; DEVICE UCB ADDRESS .WORD LPC-LPC$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REF COUNT=1 AND NEVER BUSY .LONG 0 ; NO NEXT CRB LPC$INTDIS: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB LP$INT ; INPUT INTERRUPT SERVICE .LONG LPC$CRB ; POINTER TO PSEUDO IDB .LONG LP$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP LPC: ; ; TTE DDB ; TTE$DDB: .LONG TTJ$DDB ; POINTER TO NEXT DDB .LONG TTE$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTE$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTB/ ; DEVICE NAME 10$: ; ; TTE UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE ETC. .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 1 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTE$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,3 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTE$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTE$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTE$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTE$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <72@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTE CRB ; TTE$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTE-TTE$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTE$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTE$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTE$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTE$IDB ; POINTER TO TTA CRB TTE: ; ; TTE IDB ; TTE$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0120 ; CSR OF UNIT 760100 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTE$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTE$UCB0 ; UCB OF UNIT .LONG TTE$UCB1 ; .LONG TTE$UCB2 ; .LONG TTE$UCB3 ; .LONG TTE$UCB4 ; .LONG TTE$UCB5 ; .LONG TTE$UCB6 ; .LONG TTE$UCB7 ; 10$: ; ; TTJ DDB ; TTJ$DDB: .LONG TTK$DDB ; POINTER TO NEXT DDB .LONG TTJ$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTJ$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTC/ ; DEVICE NAME 10$: ; ; TTJ UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE ETC. .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 1 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTJ$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTJ$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTJ$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTJ$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTJ$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTJ CRB ; TTJ$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTJ-TTJ$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTJ$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTJ$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTJ$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTJ$IDB ; POINTER TO TTA CRB TTJ: ; ; TTJ IDB ; TTJ$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0130 ; CSR OF UNIT 760130 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTJ$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTJ$UCB0 ; UCB OF UNIT .LONG TTJ$UCB1 ; .LONG TTJ$UCB2 ; .LONG TTJ$UCB3 ; .LONG TTJ$UCB4 ; .LONG TTJ$UCB5 ; .LONG TTJ$UCB6 ; .LONG TTJ$UCB7 ; 10$: ; ; TTK DDB ; TTK$DDB: .LONG TTL$DDB ; POINTER TO NEXT DDB .LONG TTK$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTK$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTD/ ; DEVICE NAME 10$: ; ; TTK UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE ETC. .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 1 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTK$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTK$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTK$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTK$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTK$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTK CRB ; TTK$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTK-TTK$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTK$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTK$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTK$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTK$IDB ; POINTER TO TTA CRB TTK: ; ; TTK IDB ; TTK$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0140 ; CSR OF UNIT 760140 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTK$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTK$UCB0 ; UCB OF UNIT .LONG TTK$UCB1 ; .LONG TTK$UCB2 ; .LONG TTK$UCB3 ; .LONG TTK$UCB4 ; .LONG TTK$UCB5 ; .LONG TTK$UCB6 ; .LONG TTK$UCB7 ; 10$: ; ; TTL DDB ; TTL$DDB: .LONG TTG$DDB ; POINTER TO NEXT DDB .LONG TTL$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTL$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTE/ ; DEVICE NAME 10$: ; ; TTL UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE ETC. .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 1 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- +- ; +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTL$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O PACKET LIST .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTL$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTL$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT .LONG 0,0 ; AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; +- ; +- ; +- +<16@24> ; PAGE SIZE OF 24 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTL CRB ; TTL$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTL-TTL$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTL$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTL$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTL$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTL$IDB ; POINTER TO TTA CRB TTL: ; ; TTL IDB ; TTL$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0150 ; CSR OF UNIT 760150 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTL$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTL$UCB0 ; UCB OF UNIT .LONG TTL$UCB1 ; .LONG TTL$UCB2 ; .LONG TTL$UCB3 ; .LONG TTL$UCB4 ; .LONG TTL$UCB5 ; .LONG TTL$UCB6 ; .LONG TTL$UCB7 ; 10$: ; ; TTG DDB ; TTG$DDB: .LONG TTH$DDB ; POINTER TO NEXT DDB .LONG TTG$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTG$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTG/ ; DEVICE NAME 10$: ; ; TTG UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- +- +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 0 ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTG$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTG$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_9600 ; SPEED .LONG 0 ; TTG$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTG$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTG$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTG$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTG CRB ; TTG$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTG-TTG$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTG$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTG$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTG$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTG$IDB ; POINTER TO TTA CRB TTG: ; ; TTG IDB ; TTG$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0200 ; CSR OF UNIT 760200 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTG$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTG$UCB0 ; UCB OF UNIT .LONG TTG$UCB1 ; .LONG TTG$UCB2 ; .LONG TTG$UCB3 ; .LONG TTG$UCB4 ; .LONG TTG$UCB5 ; .LONG TTG$UCB6 ; .LONG TTG$UCB7 ; 10$: ; ; TTH DDB ; TTH$DDB: .LONG XMA$DDB ; POINTER TO NEXT DDB .LONG TTH$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-TTH$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG TT$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /TTH/ ; DEVICE NAME 10$: ; ; TTH UNIT 0 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB0 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- ; +- +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 0 ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB1: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB1 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB2 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 1 ; UNIT 1 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 2 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB2: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB2 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB3 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 2 ; UNIT 2 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 3 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB3: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB3 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB4 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 3 ; UNIT 3 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 4 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB4: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB4 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB5 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 4 ; UNIT 4 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 5 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB5: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB5 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB6 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 5 ; UNIT 5 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 6 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_2400 ; SPEED .LONG 0 ; TTH$UCB6: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB6 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG TTH$UCB7 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <80@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- +- ; +- ; +<16@24> ; PAGE SIZE OF 16 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 6 ; UNIT 6 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH UNIT 7 UCB ; .LONG 0,0,0,0,0,0,0,0,0 ; TERMINAL DEPENDENT DATA .BYTE 0 .BYTE 0,0 ; CR/LF FILL COUNTS .BYTE TT$C_BAUD_4800 ; SPEED .LONG 0 ; TTH$UCB7: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-TTH$UCB7 ; SIZE OF TTY UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; IPL IS 8 .LONG TTY$FORK_ADDR ; INITIAL TIMEOUT PC .LONG 0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG TTH$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG TTH$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <256@16>++; WIDTH OF CARRIAGE .LONG - ; TERMINAL CHARACTERISTICS +- ; +<0@24> ; PAGE SIZE OF 0 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 7 ; UNIT 7 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 21 ; INTERRUPT LEVEL IS 21 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG ^X1FFFFFFF ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; TTH CRB ; TTH$CRB: .LONG 0,0 ; NULL CHANNEL REQUEST LIST .WORD TTH-TTH$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 8 ; NUMBER OF UNITS .LONG 8 ; REF COUNT=8 AND NEVER BUSY .LONG 0 ; NO NEXT CRB TTH$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB TTZ$INTINP ; INPUT INTERRUPT SERVICE .LONG TTH$IDB ; POINTER TO IDB .LONG TTZ$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG TTZ$INITLINE,TTZ$STARTIO,TTZ$DISCONNECT TTH$INTDISO: ; PUSHR #^M ; ENTRY FOR OUTPUT INTERRUPTS JSB TTZ$INTOUT ; OUTPUT INTERRUPT SERVICE .LONG TTH$IDB ; POINTER TO TTA CRB TTH: ; ; TTH IDB ; TTH$IDB:: ; DZ-11 IDB .LONG UBA$IOBASE+^O0210 ; CSR OF UNIT 760210 .LONG 0 ; OWNER UCB ADDRESS .WORD 10$-TTH$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 8 ; EIGHT UNITS .LONG UBA$ADP0 ; POINTER TO THE ADAPTER CONTROL BLOCK .LONG TTH$UCB0 ; UCB OF UNIT .LONG TTH$UCB1 ; .LONG TTH$UCB2 ; .LONG TTH$UCB3 ; .LONG TTH$UCB4 ; .LONG TTH$UCB5 ; .LONG TTH$UCB6 ; .LONG TTH$UCB7 ; 10$: ; ; XMA DDB ; XMA$DDB: .LONG MB$DDB ; POINTER TO NEXT DDB .LONG XMA$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-XMA$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG XM$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; NO DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /XMA/ ; DEVICE NAME 10$: ; ; XMA UCB FOR UNIT 0 ; .LONG 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 XMA$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-XMA$UCB0 ; SIZE OF LPA UCB .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG XMA$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG XMA$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG ; INPUT/OUTPUT .LONG <512@16>++<0@8>; SECOND CHARACTERISTICS WORD .LONG 0 ; CHARACTERISTICS LONG WORD 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 0 ; REF COUNT IS 0 .BYTE 22 ; INTERRUPT LEVEL IS 22 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG MMG$C_IOSPTN+5 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; CRB FOR XMA UNIT 0 ; XMA$CRB: .LONG 0,0 ; CRB WAIT Q .WORD XMA-XMA$CRB ; SIZE .BYTE DYN$C_CRB ; TYPE IS CRB .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REF COUNT=1 AND NEVER BUSY .LONG 0 ; NO NEXT CRB XMA$INTDISI: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB XM$CTRLINT ; CONTROL INTERRUPT SERVICE .LONG XMA$IDB ; POINTER TO IDB .LONG XM$INITIAL ; INITIALIZE CONTROLLER ENTRY POINT .LONG 0 ; MAP AND DATA PATH ALLOCATION CONTROL .LONG UBA$ADP0 ; ADDRESS OF ADP .LONG XM$ACPRCV ; ACP DE-QUEUE ENTRY XMA$INTDISP: ; PUSHR #^M ; ENTRY VECTOR FOR INPUT INTERRUPTS JSB XM$PORTINT ; PORT READY INTERRUPT SERVICE .LONG XMA$IDB ; POINTER TO IDB XMA: ; ; XMA IDB ; XMA$IDB: ; IDB FOR XMA .LONG 0 ; CSR FILLED BY INIT .LONG XMA$UCB0 ; UCB ADDRESS FOR DRIVER .WORD 10$-XMA$IDB ; SIZE .BYTE DYN$C_IDB ; TYPE .BYTE 1 ; ONE UNIT .LONG UBA$ADP0 ; ADAPTER .LONG XMA$UCB0 ; UCB 10$: ; ; MAILBOX DATA BASE FOR BASE LEVEL 1 ; MB$DDB:: ; MAILBOX DDB .LONG NL$DDB ; NO NEXT DDB .LONG MB$UCB0 ; POINTER TO FIRST UCB .WORD 10$-MB$DDB ; BLOCK SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG MB$DDT ; POINTER TO DISPATCH TABLE .ASCII / / ; DEFAULT ACP .BYTE 3 ; 3 CHARACTER NAME .ASCII /MBA/ ; DEVICE NAME 10$: ; ; ; MB UCB 0 ; .WORD 0 ; MAILBOX UNIT NUMBER SEED .WORD 0 ; SPARE UNUSED WORD MB$UCB0:: ; MAILBOX UCB .LONG MB$UCB0,MB$UCB0 ; MESSAGE QUEUE IS EMPTY .WORD 30$-MB$UCB0 ; BLOCK SIZE .BYTE DYN$C_UCB ; BLOCK TYPE .BYTE IPL$_MAILBOX ; FORK IPL .LONG 0,0 ; AST LIST HEAD AND SPARE .WORD 20 ; 20 MESSAGES ALLOWED .WORD 0 ; CURRENT COUNT .WORD -1 ; LOTS OF BYTES AVAILABLE .WORD 0 ; PROTECTION MASK IS EVERYONE .WORD 1,1 ; OWNER UIC .LONG MB$CRB ; POINTER TO CRB .LONG MB$DDB ; BACK POINTER TO DDB .LONG 0 ; OWNER PID .LONG MB$UCB1 ; POINTER TO NEXT UCB .LONG 0 ; POINTER TO VCB .LONG .LONG <256@16>+; STANDARD BUFFER SIZE .LONG 0 ; 20$: .LONG 20$,20$ ; I/O PACKET QUEUE .WORD 0 ; UNIT 0 .WORD 0 ; QUOTA CHARGE .LONG 0 ; PACKET POINTER .WORD 1 ; REF COUNT = 1 .BYTE IPL$_MAILBOX ; DEVICE IPL .BYTE 0 ; ACCESS LEVEL FOR ALLOCATION .LONG 0 ; ASSOC. MAILBOX .WORD UCB$M_ONLINE ; DEVICE INDEPENDENT STATUS .WORD UCB$M_PRMMBX ; PERMANENT MAILBOX .WORD 1,1 ; CREATOR PID .LONG 0 ; OPERATIONS COUNT .LONG 0 ; NO LOGICAL NAME .LONG 0 ; .WORD 0,0 ; BYTE OFFSET AND COUNT 30$: SYS$GL_JOBCTLMB:: ; JOB CONTROLLER MAILBOX MB$UCB1: ; MAILBOX UCB .LONG MB$UCB1,MB$UCB1 ; MESSAGE QUEUE IS EMPTY .WORD 30$-MB$UCB1 ; BLOCK SIZE .BYTE DYN$C_UCB ; BLOCK TYPE .BYTE IPL$_MAILBOX ; FORK IPL .LONG 0,0 ; AST LIST HEAD AND SPARE .WORD 20 ; 20 MESSAGES ALLOWED .WORD 0 ; CURRENT COUNT .WORD -1 ; LOTS OF BYTES AVAILABLE .WORD 0 ; PROTECTION MASK IS EVERYONE .WORD 1,1 ; OWNER UIC .LONG MB$CRB ; POINTER TO CRB .LONG MB$DDB ; BACK POINTER TO DDB .LONG 0,MB$UCB2,0 ; PID,NEXT UCB,VCB .LONG .LONG <256@16>+; STANDARD BUFFER SIZE .LONG 0 ; 20$: .LONG 20$,20$ ; I/O PACKET QUEUE .WORD 1 ; UNIT 1 .WORD 0 ; QUOTA CHARGE .LONG 0 ; PACKET POINTER .WORD 1 ; REF COUNT = 1 .BYTE IPL$_MAILBOX ; DEVICE IPL .BYTE 0 ; ACCESS LEVEL FOR ALLOCATION .LONG 0 ; ASSOC. MAILBOX .WORD UCB$M_ONLINE ; DEVICE INDEPENDENT STATUS .WORD UCB$M_PRMMBX ; PERMANENT MAILBOX .WORD 1,1 ; CREATOR PID .LONG 0 ; OPERATIONS COUNT .LONG 0 ; NO LOGICAL NAME .LONG 0 ; .WORD 0,0 ; BYTE OFFSET AND COUNT 30$: ; ; ; OPERATOR MAILBOX ; SYS$GL_OPRMBX:: ; MB$UCB2: ; MAILBOX UCB .LONG MB$UCB2,MB$UCB2 ; MESSAGE QUEUE IS EMPTY .WORD 30$-MB$UCB2 ; BLOCK SIZE .BYTE DYN$C_UCB ; BLOCK TYPE .BYTE IPL$_MAILBOX ; FORK IPL .LONG 0,0 ; AST LIST HEAD AND SPARE .WORD 20 ; 20 MESSAGES ALLOWED .WORD 0 ; CURRENT COUNT .WORD -1 ; LOTS OF BYTES AVAILABLE .WORD 0 ; PROTECTION MASK IS EVERYONE .WORD 1,1 ; OWNER UIC .LONG MB$CRB ; POINTER TO CRB .LONG MB$DDB ; BACK POINTER TO DDB .LONG 0 ; OWNER PID .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; POINTER TO VCB .LONG .LONG <256@16>+; STANDARD BUFFER SIZE .LONG 0 ; 20$: .LONG 20$,20$ ; I/O PACKET QUEUE .WORD 2 ; UNIT 2 .WORD 0 ; QUOTA CHARGE .LONG 0 ; PACKET POINTER .WORD 1 ; REF COUNT = 1 .BYTE IPL$_MAILBOX ; DEVICE IPL .BYTE 0 ; ACCESS LEVEL FOR ALLOCATION .LONG 0 ; ASSOC. MAILBOX .WORD UCB$M_ONLINE ; DEVICE INDEPENDENT STATUS .WORD UCB$M_PRMMBX ; PERMANENT MAILBOX .WORD 1,1 ; CREATOR PID .LONG 0 ; OPERATIONS COUNT .LONG 0 ; NO LOGICAL NAME .LONG 0 ; .WORD 0,0 ; BYTE OFFSET AND COUNT 30$: ; ; MAILBOX CRB ; MB$CRB:: .LONG 0,0 ; .WORD 10$-MB$CRB ; .BYTE DYN$C_CRB ; CRB .BYTE 3 ; NUMBER OF UNITS .LONG 3 ; REF COUNT IS ONE .LONG 0 ; NO CRB .LONG 0,0 ; NO VECTOR .LONG MB$CRB ; POINTER TO IDB (NONE) .LONG 0 ; NO INITIALIZATION 10$: ; ; ; NLA DDB ; NL$DDB: .LONG NET$DDB ; POINTER TO NEXT DDB .LONG NL$UCB0 ; POINTER TO FIRST UCB (UNIT 0) .WORD 10$-NL$DDB ; SIZE .BYTE DYN$C_DDB ; TYPE IS DDB .BYTE 0 ; SPARE BYTE .LONG NL$DDT ; POINTER TO DRIVER DISPATCH TABLE .ASCII / / ; DEFAULT ACP NAME .BYTE 3 ; 3 CHARACTER NAME .ASCII /NLA/ ; DEVICE NAME 10$: ; ; NL UCB FOR UNIT 0 ; NL$UCB0: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-NL$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG NL$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG NL$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG .LONG <256@16>+ ; SECOND CHARACTERISTICS WORD .BLKL 1 ; SPARE UNUSED LONGWORD 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 1 ; REF COUNT IS 1 .BYTE 8 ; INTERRUPT LEVEL IS 8 .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG 0 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER 10$: ; ; NULL DEVICE CRB ; NL$CRB: ; .LONG 0,0 ; CRB WAIT QUEUE .WORD 10$-NL$CRB ; SIZE OF CRB .BYTE DYN$C_CRB ; DATA STRUCTURE TYPE .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REF COUNT IS ONE .LONG 0 ; NO SECONDARY CRB .LONG 0,0 ; NO VECTOR .LONG NL$CRB ; POINTER TO IDB .LONG 0 ; NO INITIALIZATION 10$: ; ; ; NETWORK DEVICE DATA BLOCK ; NET$DDB: .LONG 0 ; FORWARD LINK .LONG NET$UCB0 ; POINTER TO 1ST UCB .WORD NETDDBEND-NET$DDB ; SIZE .BYTE DYN$C_DDB ; BLOCK TYPE .BYTE 0 ; SPARE .LONG NET$DDT ; PTR TO DDT .ASCII /NET / ; DEFAULT ACP NAME NET$NAME:: .ASCIC /NET/ ; DEVICE NAME NETDDBEND: ; ; NET UCB ; .WORD 0 ; NETWORK UNIT NUMBER SEED .WORD 0 ; SPARE UNUSED WORD NET$UCB0:: .LONG 0,0 ; FORK QUEUE LIST ENTRY .WORD 10$-NET$UCB0 ; SIZE .BYTE DYN$C_UCB ; TYPE OF BLOCK IS UCB .BYTE 8 ; FORK IPL IS 8 .LONG 0,0,0 ; FORK PC AND CONTEXT REGISTERS .BLKW 1 ; SPARE UNUSED WORD .WORD 0 ; VOLUME PROTECTION .WORD 1,1 ; VOLUME OWNER UIC .LONG NET$CRB ; POINTER TO CHANNEL REQUEST BLOCK .LONG NET$DDB ; DEVICE DATA BLOCK .LONG 0 ; PID OF OWNER .LONG 0 ; POINTER TO NEXT UCB .LONG 0 ; VCB POINTER .LONG <0- ; !DEV$M_AVL- ; DEVICE AVAILABLE !DEV$M_IDV- ; INPUT !DEV$M_ODV- ; OUTPUT !DEV$M_NET- ; NETWORK DEVICE !DEV$M_MBX- ; PSEUDO-MAILBOX > .LONG 0 ; SECOND CHARACTERISTICS LONGWORD .LONG 0 ; 1$: .LONG 1$,1$ ; I/O QUEUE LISTHEAD .WORD 0 ; UNIT 0 .WORD 0 ; CRB MASKS ARE NULL .LONG 0 ; POINTER TO CURRENT PACKET .WORD 1 ; REF COUNT IS 1 .BYTE 0 ; INITIAL STATE IS "IDLE" .BYTE 0 ; ALLOCATED FROM ACCESS 0 .LONG 0 ; ASSOCIATED UCB FOR MAILBOX .LONG 1@UCB$V_ONLINE ; STATUS .LONG 0 ; TIMEOUT TIME .LONG 0 ; COUNT OF OPERATIONS .LONG 0 ; SYSTEM VIRTUAL PAGE NUMBER .LONG 0 ; SYSTEM VIRTUAL ADDRESS OF PTE .WORD 0 ; BYTE OFFSET IN FIRST PAGE .WORD 0 ; BYTE COUNT OF TRANSFER .WORD 0 ; .WORD 0 ; SPARE WORD .LONG 0 ; DATA SSB ADDRESS .LONG 0 ; INT/LS SSB ADDRESS 10$: ; ; NETWORK WINDOW CONTROL BLOCK - SHARED BY ALL UCB'S ; NET$WCB:: .LONG 0 ; WLFL .LONG 0 ; WLBL .WORD 36 ; SIZE .BYTE DYN$C_WCB ; CALL IT A WCB .BYTE 0 ; ACCESS BITS .LONG 0 ; ORGUCB .LONG 0 ; PID .LONG 0 ; ACON AND NMAP .LONG 0 ; FCB .LONG 0 ; RVT .LONG 0 ; STVBN ; ; NETWORK CRB ; NET$CRB: ; .LONG 0,0 ; CRB WAIT QUEUE .WORD 10$-NET$CRB ; SIZE OF CRB .BYTE DYN$C_CRB ; DATA STRUCTURE TYPE .BYTE 1 ; NUMBER OF UNITS .LONG 1 ; REFERENCE COUNT IS ONE .LONG 0 ; NO SECONDARY CRB .LONG 0,0 ; NO VECTOR .LONG NET$CRB ; POINTER TO IDB .LONG 0 ; NO INITIALIZATION 10$: ; ; ; UNIBUS ADAPTER CONTROL BLOCK ; .LONG UBA$CONF0 ; ADDRESS OF CONFIGURATION TABLE UBA$ADP0: ; 1$: .LONG UBA$CSR ; UBA CONFIGURATION STATUS REGISTER ADDRESS .LONG 0 ; ADDRESS OF NEXT ADP .WORD UBA-1$ ; SIZE IN BYTES .BYTE DYN$C_ADP ; STRUCTURE TYPE .BLKB 1 ; SPARE BYTE 10$: .LONG 10$,10$ ; DATAPATH WAIT QUEUE LISTHEAD 20$: .LONG 20$,20$ ; MAP REGISTER WAIT QUEUE .WORD ^XFFFC ; DATAPATH ALLOCATION BITMAP .REPT 4 .LONG 0 ; ALLOCATED MAP REGISTERS .ENDR .REPT 11 .LONG ^XFFFFFFFF ; MAP REGISTER ALLOCATION BITMAP .ENDR .WORD ^X7FFF ; LAST WORD IN MAP REGISTER BITMAP UBA$INTDIS:: ; UBA INTERRUPT TRANSFER VECTOR MOVQ R4,-(SP) ; SAVE REGISTERS MOVPSL -(SP) ; SAVE CURRENT PSL FOR DISPATCH REI MOVL #UBA$CSR,R5 ; GET UBA CONFIGURATION REGISTER ADDRESS JSB UBA$INT ; CALL INTERRUPT DISPATCHER DSPTCH: CASEW R4,#0,#/2-1 ; DISPATCH TO APPROPRIATE INTERRUPT ROUTINE CASTAB: ; REFERENCE TABLE .REPT 30 .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .ENDR .WORD LPC$INTDIS-CASTAB ; LINE PRINTER B .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .WORD LPB$INTDIS-CASTAB ; LINE PRINTER A .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .WORD DMA$INTDIS-CASTAB ; RK611 CONTROLLER .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .WORD CASEND-CASTAB ; UNEXPECTED INTERRUPT .WORD CRA$INTDIS-CASTAB ; CR11 CARD READER .REPT 9 .WORD CASEND-CASTAB .ENDR .WORD TTE$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTE$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .WORD TTE$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTE$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .WORD TTE$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTE$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .WORD TTJ$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTJ$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .WORD TTK$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTK$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .WORD TTL$INTDISI-CASTAB ; DZ INPUT INTERRUPT .WORD TTL$INTDISO-CASTAB ; DZ OUTPUT INTERRUPT .REPT 4 .WORD CASEND-CASTAB .ENDR .WORD TTG$INTDISI-CASTAB ; 400(8) VECTOR .WORD TTG$INTDISO-CASTAB .WORD TTH$INTDISI-CASTAB .WORD TTH$INTDISO-CASTAB CASEND: JMP UBA$UNEXPINT ; UNEXPECTED INTERRUPT ; ; CONFIGURATION TABLE ; UBA$CONF0: ; .LONG UBA$IOBASE+^O70 ; BASE ADDRESS OF DMC11/DZ11 DEVICE REGISTERS .LONG CASTAB ; BASE ADDRESS OF VECTOR CASE TABLE .LONG DMC11_TAB ; ADDRESS OF DMC11 CONFIGURATION TABLE .LONG DZ11_TAB ; ADDRESS OF DZ11 CONFIGURATION TABLE .LONG 0 ; ; DMC11 CONFIGURATION TABLE ; DMC11_TAB: ; .LONG XMA$IDB ; DMC 11 A .LONG XMA$INTDISP ; .LONG XMA$INTDISI ; .LONG 0 ; END OF DMC11 DATA BASE ; ; DZ11 CONFIGURATION TABLE ; DZ11_TAB: ; .LONG TTE$IDB ; ADDRESS TO STORE DEVICE CSR .LONG TTE$INTDISI ; ADDRESS OF INPUT INTERRUPT DISPATCHER .LONG TTE$INTDISO ; ADDRESS OF OUTPUT INTERRUPT DISPATCHER .LONG TTJ$IDB ; .LONG TTJ$INTDISI ; .LONG TTJ$INTDISO ; .LONG TTK$IDB ; .LONG TTK$INTDISI ; .LONG TTK$INTDISO ; .LONG TTL$IDB ; .LONG TTL$INTDISI ; .LONG TTL$INTDISO ; .LONG TTG$IDB ; .LONG TTG$INTDISI ; .LONG TTG$INTDISO ; .LONG TTH$IDB ; .LONG TTH$INTDISI ; .LONG TTH$INTDISO ; .LONG 0 ; END OF DZ11 TABLE UBA: ; REF .END