; ; DEVICE DRIVER LIST ; ; VERSION 7A ; ; COPYRIGHT 1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ; ; DISTRIBUTION FILE NAME: DDL.PAL ; ; RESIDENT TABLE SHOWING AVAILABILITY OF ;  DEVICE DRIVERS AND THEIR CURRENT ;  LOCATION ;FORMAT:- ; 4 WORDS PER ENTRY (POSITION IMMATERIAL EXCEPT ;  THAT THE DUMMY ENTRY MUST BE FIRST) ; GENERAL FORM: ; ;  WORD 1: DEVICE NAME (PACKED RADIX 50) ;  WORD 2: CORE LOAD ADDRESS OR 0 ;  WORD 3: INTERRUPT VECTOR ADDRESS ;  WORD 4: ADR OF DDB ; ;  DUMMY ENTRY:  ;  WORDS 1 - 3: 0 ;  WORD 4: ADDRESS OF LOCATION AFTER TABLE END ;   (USED FOR SEARCH CONTROL) ;GENERATED AT SYSTEM BUILD TIME ;USED BY:- ; 1) .INIT ROUTINE TO FIND THE DDB & DRIVER ADDRESS. ; 2) CSI TO GET SYSTEM DEVICE. ; 3) INITIALIZATION CODE TO FIND DRIVER INT VECTORS. ; .GLOBL DDL. ;DEVICE DRIVER LIST ; ;SYSTEM DUMMY: DDL.: .WORD 0   ;NAME - DUMMY' .WORD 0  ;CORE ADDRESS .WORD 0  ;I.V. ADDRESS .WORD DDL.ND  ;END OF TABLE .IFNZ DC.DSC .GLOBL DDL.DC ;DDL-RC11 .GLOBL DC ;RC11 DRIVER .GLOBL DCDDB ;RC11 DDB ;RC11 DDL.DC: .RAD50 'DC' ;NAME .WORD DC ;CORE ADDRESS .WORD 210 ;I.V. ADDRESS .WORD DCDDB ;DDB ADDRESS .ENDC .IFNZ DF.DSC .GLOBL DDL.DF ;DDL-RF11 .GLOBL DF ;RF11 DRIVER .GLOBL DFDDB ;RF11 DDB ;RF11 DDL.DF: .RAD50 'DF' ;NAME .WORD DF ;CORE ADDRESS .WORD 204 ;I.V. ADDRESS .WORD DFDDB ;DDB ADDRESS .ENDC .IFNZ DK.DSC .GLOBL DDL.DK ;DDL-RK11 .GLOBL DK ;RK11 DRIVER .GLOBL DKDDB ;RK11 DDB ;RK11 DDL.DK: .RAD50 'DK' ;NAME .WORD DK ;CORE ADDRESS .WORD 220 ;I.V. ADDRESS .WORD DKDDB ;DDB ADDRESS .ENDC ; ; TC11 DECTAPE ; .IFNZ DT.DSC ; .GLOBL DDL.DT .GLOBL DT  ;DRIVER ADDRESS .GLOBL DTDDB  ;DECTAPE DDB ; DDL.DT: .RAD50 'DT'  ;DRIVER NAME DT   ;DRIVER ADDRESS 214   ;INTERRUPT VECTOR ADDRESS DTDDB   ;DRIVER DDB ADDRESS ; .ENDC ; ; MAG TAPE ; .IFNZ MT.DSC .GLOBL DDL.MT .GLOBL MT .GLOBL MTDDB DDL.MT: .RAD50 'MT'  ;NAME .WORD MT  ;DRIVER ADDR .WORD 224  ;I.V. ADDR .WORD MTDDB  ;DDB ADDR .ENDC ; ; TA11 - CASSETTE ; .IFNZ CT.DSC .GLOBL DDL.CT .GLOBL CT .GLOBL CTDDB DDL.CT: .RAD50 'CT' .WORD CT  ;DRIVER CORE ADDRESS .WORD 260  ;INTERRUPT VECTOR ADDRESS .WORD CTDDB  ;CASSETTE DDB .ENDC ; .IFNZ TPSZ+KBFSZ .GLOBL DDL.KO ;DDL-KB OUTPUT SIDE .GLOBL KB ;KB DRIVER. .GLOBL TPDDB ;KB TELEPRINTER DDB. ;TELEPRINTER: DDL.KO: .RAD50 'KB'  ;NAME - PACKED 'KB' .WORD KB+16  ;CORE ADDRESS .WORD 64  ;I.V. ADDRESS .WORD TPDDB .ENDC .IFNZ TPSZ+KBFSZ .GLOBL DDL.KB ;DDL-KB INPUT SIDE .GLOBL KB ;KB DRIVER. .GLOBL KBDDB ;KB KEYBOARD DDB. ;KEYBOARD DDL.KB: 0   ;ILLEGAL NAME .WORD KB  ;CORE ADDRESS .WORD 60  ;I.V. ADDRESS .WORD KBDDB .ENDC .IFNZ TK.NOU .GLOBL DDL.TO ;DDL-TT OUTPUT SIDE .GLOBL DDL.TT ;DDL-TT INPUT SIDE .GLOBL TODDB ;TT TELEPRINTER DDB. .GLOBL TT ;TT DRIVER. .GLOBL TTDDB ;TT KEYBOARD DDB. ; .IFNDF TT0VCT TT0VCT=300 .ENDC ; ;NON-CONSOLE TELEPRINTER ; DDL.TO: .RAD50 'TT'  ;NAME .WORD TT+16  ;CORE ADDRESS .WORD TT0VCT+4 ;I.V. ADDRESS .WORD TODDB ;NON-CONSOLE KEYBOARD DDL.TT: .WORD 0  ;NO NAME .WORD TT  ;CORE ADDRESS .WORD TT0VCT  ;I.V.ADDRESS .WORD TTDDB .ENDC .IFNZ PRSZ .GLOBL DDL.PR ;DDL-PR .GLOBL PR ;PR DRIVER. .GLOBL PRDDB ;ADDRESS OF PR DDB. ;P/T READER: DDL.PR: .RAD50 'PR'  ;NAME PACKED 'PR' .WORD PR  ;CORE ADDRESS .WORD 70  ;I.V. ADDRESS .WORD PRDDB .ENDC .IFNZ PPSZ .GLOBL DDL.PP ;DDL-PP .GLOBL PP ;PP DRIVER. .GLOBL PPDDB ;ADDRESS OF PP DDB. ;P/T PUNCH: DDL.PP: .RAD50 'PP'  ;NAME - PACKED 'PP ' .WORD PP  ;CORE ADDRESS .WORD 74  ;I.V. ADDRESS .WORD PPDDB .ENDC .IFNZ LPSZ .GLOBL DDL.LP ;DDL- LP .GLOBL LP ;LP DRIVER. .GLOBL LPDDB ;ADDRESS OF LP DDB. ;LINE PRINTER DDL.LP: .RAD50 'LP'  ;NAME - PACKED 'LP ' .WORD LP  ;CORE ADDRESS .WORD 200  ;I.V. ADDRESS .WORD LPDDB .ENDC .IFNE AF.CHN .GLOBL DDL.AF ;DDL-AFC .GLOBL AF ;AFC DRIVER .GLOBL AFDDB ;AFC DDB ;AFC DDL.AF: .RAD50 'AF' ;NAME .WORD AF ;CORE ADDRESS. .WORD 134 ;I.V. ADDRESS. .WORD AFDDB ;DDB ADDRESS. .ENDC .IFNE AD.CHN .GLOBL DDL.AD ;DDL-ADC .GLOBL AD ;AD01 DRIVER .GLOBL ADDDB ;ADC DDB ;AD01 DDL.AD: .RAD50 'AD' ;NAME .WORD AD ;CORE ADDRESS. .WORD 130 ;I.V. ADDRESS. .WORD ADDDB ;DDB ADDRESS. .ENDC .IFNE UD.CHN .GLOBL DDL.UD ;DDL-UDC .GLOBL UD ;UDC DRIVER .GLOBL UDDDB ;UDC DDB ;UDC DDL.UD: .RAD50 'UD' ;NAME .WORD UD ;CORE ADDRESS. .WORD 234 ;I.V. ADDRESS. .WORD UDDDB ;DDB ADDRESS. .ENDC DDL.ND: .EOT TIVATE AFTER DDB LOCKED .GLOBL TR.H ;XFR-ACTIVATE AFTER DDB RESERVED .GLOBL TR.I ;XFR-ACTIVATE AFTER DDB LOCKED(THIS TASK) .GLOBL XFR ;XFR FUNCTION HANDLER .GLOBL WAI ;WAIT HANDLER .GLOBL WAR ;WAITR HANDLER ; ; DEFINE, AS 0, THOSE ROUTINES NOT NEEDED. ; .IFEQ IO.XTH  ;IF NO IO CLS=0 CL.E=0 CL.F=0 CL.G=0 CL.M=0 INR=0 MS.HED=0 LODHED=0 OPHED=0 OPN=0 OP.H=0 OP.J=0 OP.K=0 OP.M=0 RLS=0 RWN=0 RW.K=0 RW.M=0 RW.N=0 SPC=0 SP.G=0 SP.H=0 SP.I=0 TR.G=0 TR.H=0 TR.I=0 XFR=0 WAI=0 WAR=0 .ENDC .IFNE IO.XTH .IFLE IO.XTH-3 CLS=0    ;NO CLOSE CL.E=0 CL.F=0 CL.G=0 CL.M=0 LODHED=0 MS.HED=0 OPHED=0 OPN=0    ;NO OPEN OP.H=0 OP.J=0 OP.K=0 OP.M=0 RWN=0    ;NO READ/WRITE RW.K=0 RW.M=0 RW.N=0 .IFEQ IO.XTH-1 TR.H=0 TR.G=0 TR.I=0 XFR=0 .ENDC .IFEQ IO.XTH-2 SPC=0 SP.G=0 SP.H=0 SP.I=0 .ENDC .ENDC .ENDC .IFEQ IO.XTH-4 SPC=0    ;NO SPECIAL FUNCTION SP.G=0 SP.H=0 SP.I=0 TR.G=0 TR.H=0 TR.I=0 XFR=0 .ENDC .IFEQ IO.XTH-5 TR.G=0 TR.H=0 TR.I=0 XFR=0 .ENDC .IFEQ IO.XTH-6 SPC=0 SP.G=0 SP.H=0 SP.I=0 .ENDC .IFEQ IO.XTH-7 ; KEEP EVERYTHING .ENDC ; ; IF KB OR TT NOT PRESENT, CREATE DUMMY GLOBAL VALUES ;  TO KEEP READ/WRITE AND OPEN HAPPY. ; .IFEQ TK.NOU  ;NO TT? .GLOBL DDL.TO ;DDL-TT OUTPUT SIDE .GLOBL DDL.TT ;DDL-TT INPUT SIDE .GLOBL TT ;TT DRIVER. DDL.TO=0 DDL.TT=0 TT=0 .ENDC .IFEQ TPSZ+KBFSZ ;NO KB? .GLOBL DDL.KB ;DDL-KB INPUT SIDE .GLOBL DDL.KO ;DDL-KB OUTPUT SIDE .GLOBL KB ;KB DRIVER. DDL.KB=0 DDL.KO=0 KB=0 .ENDC ; DDL INITIALIZATION LOADS ONLY IF IO.XTH NOT ZERO. .IFNE IO.XTH .GLOBL BEGDDL ;DDL INITIALIZATION CODE .ENDC ; ; FORCE DISK DUMP/RESTORE ROUTINE TO LINK ; .GLOBL D.READ ;DISK DUMP/RESTORE ROUTINE ; ; ; FORCE EMT HANDLER AND MRT TABLE TO LINK ; .GLOBL EMT. ;EMT HANDLER .GLOBL MRT. ;MONITOR RESIDENCE TABLE ; FORCE SYSTEM TASKS TO LINK(UNLESS ALREADY SUPPRESSED) .GLOBL LODHED ;ON-LINE LOADER HEADER .GLOBL MS.HED ;ERROR MESSAGE TASK HEADER .GLOBL OPHED ;OPERATOR TASK HEADER .GLOBL UTILHD ;UTILITY TASK HEADER ; FORCE BEGIN CODE TO LINK .GLOBL ENTERL ;INITIALIZATION LIST OF TASKS TO ENTER .GLOBL BEGB1 ;INITIALIZATION CODE-PART 1 .EOT