; ; EXECUTIVE TABLES AND DATA AREAS - PART 2 ; ; VERSION V007A ;  001 ; ; COPYRIGHT 1973,1974 DIGITAL EQUIPMENT CORP. MAYNARD, MASS. ; ; DISTRIBUTION FILE NAME: EXTB2.PAL ; KBBUF: .=.+KBFSZ TPBUF: .=.+TPSZ  ;TELEPRINTER PRBUF: .=.+PRSZ  ;PAPER READER PPBUF: .=.+PPSZ  ;PAPER PUNCH LPBUF: .=.+LPSZ  ;LINE PRINTER .IFGE TK.NOU-1 .GLOBL TKBUF ;ADDRESS OF TT KEYBOARD EXEC BUFFER. TKBUF: .=.+KBFSZ .IFGE TK.NOU-2 .=.+KBFSZ .IFGE TK.NOU-3 .=.+KBFSZ .IFGE TK.NOU-4 .=.+KBFSZ .IFGE TK.NOU-5 .=.+KBFSZ .IFGE TK.NOU-6 .=.+KBFSZ .IFGE TK.NOU-7 .=.+KBFSZ .IFGE TK.NOU-8. .=.+KBFSZ .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .IFGE TK.NOU-1 .GLOBL TOBUF ;ADDRESS OF TT OUTPUT EXEC BUFFER. TOBUF: .=.+TPSZ  ;NON-CONSOLE PRINTER .IFGE TK.NOU-2 .=.+TPSZ .IFGE TK.NOU-3 .=.+TPSZ .IFGE TK.NOU-4 .=.+TPSZ .IFGE TK.NOU-5 .=.+TPSZ .IFGE TK.NOU-6 .=.+TPSZ .IFGE TK.NOU-7 .=.+TPSZ .IFGE TK.NOU-8. .=.+TPSZ .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC ; ; IF NO IO REQUESTED, TURN OFF FILE ROUTINES AND DEVICE ;  TIME OUT AND STATUS REQUEST. ; .IFDF IO.XTH  ;MUST BE DEFINED .IFEQ IO.XTH  ; AND 0. NO.FIL=1   ;NO FILE ROUTINES NO.DTO=1   ;NO DEVICE TIME-OUT NO.STT=1   ;NO STATUS REQUEST. .ENDC .IFLE IO.XTH-3 ;IF PROCESS AND/OR XFR ONLY NO.FIL=0   ;SUPPRESS FILE ROUTINES .ENDC .ENDC ; ; THE FOLLOWING GENERATES DUMMY ROUTINES ; AND OR 0 GLOBAL VALUES TO CONTROL ; LINKING OF NON-DESIRED ROUTINES. ; ; ; DUMMY ROUTINES FOLLOW ; .IFDF NO.DTO ;NO DEVICE TIME-OUT .GLOBL TIMOUT ;DEVICE TIMOUT CODE TIMOUT:   ;FALL INTO RTS PC .ENDC .GLOBL TDS ;TIME DEPENDENT SCHEDULER .IFDF NO.TIM ;NO TIME DEPENDENT SCHEDULING TDS:   ;FALL INTO RTS PC .ENDC .GLOBL PAND ;PANIC DUMP SWITCH-DEFINE=DEVICE CSR FOR DUMP .IFNDF PAND  ;NO PANIC DUMP PAND=0 .ENDC .IFEQ PAND  ;NO PANIC DUMP PDMP$: ;FALL INTO RTS PC .ENDC ; DUMMY RTS PC  RTS PC ;ALWAYS GENERATED. .GLOBL PAN$ ;PANIC DUMP ADDRESS. .IFEQ PAND  ;NO PANIC DUMP PAN$: HALT   ;SYSTEM HALT .ENDC ; ; CREATE REQUIRED GLOBALS =0 ; .IFDF NO.FIL  ;NO FILE MANAGEMENT .GLOBL ALO ;ALLOCATE HANDLER .GLOBL APP ;APPEND HANDLER .GLOBL DEL ;DELETE HANDLER .GLOBL DIR ;DIRECT HANDLER .GLOBL PRO ;PROTECT HANDLER .GLOBL REN ;RENAME HANDLER ALO=0 APP=0 DEL=0 DIR=0 PRO=0 REN=0 .ENDC .IFDF NO.STT  ;NO STATUS EMT .GLOBL STT ;STATUS HANDLER STT=0 .ENDC .IFDF NO.CSI  ;NO CSI .GLOBL CSM ;SI-SEMANTI .GLOBL CSX ;CSI-SYNTAX CHECKER CSM=0 CSX=0 .ENDC .IFDF NO.GUT  ;NO GENERAL UTILITIES .GLOBL GUT ;GENERAL UTILITIES HANDLER GUT=0 .ENDC .IFNDF RSX11B .GLOBL FPMT FPMT=0    ;FILE PROCESSOR EMT'S .ENDC .IFDF NO.TIM  ;NO TIME DEPENDENT SCHEDULING .GLOBL CLOCK ;CLOCK SCAN ROUTINE .GLOBL ETRNON ;TURNON HANDLER .GLOBL EWAIT ;WAIT HANDLER(RSX WAIT) .GLOBL ROBIN ;ROUND ROBIN SCHEDULER .GLOBL TOD ;TIME OF DAY HANDLER .GLOBL UNCLOC ;UNCLOCK HANDLER CLOCK=0 ETRNON=0 EWAIT=0 ROBIN=0 TOD=0 UNCLOC=0 .ENDC .IFDF NO.OPR  ;NO OPERATOR TASK OPHED=0 .ENDC .IFDF NO.GET  ;NO ON-LINE LOADER LODHED=0 .ENDC ; ; I/O CONTROL REFERENCES. ; ; THE FOLLOWING SELECTS A SET OF GLOBALS DEPENDENT ON ; THE VALUE OF THE SWITCH IO.XTH AS ; FOLLOWS (SET BY THE USER). ; ; IO.XTH =0 NO I/O. ;  =1 PROCESS I/O ONLY. ;  =2 XFR I/O ONLY. ;  =3 PROCESS AND XFR I/O. ;  =4 CHARACTER I/O ONLY. ;  =5 PROCESS AND CHARACTER I/O. ;  =6 XFR AND CHARACTER I/O. ;  =7 ALL TYPES OF I/O. ; ; ; IF THE USER DOES NOT DEFINE IO.XTH, THE ASSUMED ; VALUE IS 7. ; ; .IFNDF IO.XTH IO.XTH=7   ;DEFAULT VALUE .ENDC ; ; GLOBALS OF INTEREST ; .GLOBL CLS ;CLOSE HANDLER .GLOBL CL.E ;CLOSE-ACTIVATE AFTER BUFFER FULL .GLOBL CL.F ;CLOSE-ACTIVATE AFTER DDB LOCKED .GLOBL CL.G ;CLOSE-ACTIVATE AFTER DDB RESERVED .GLOBL CL.M ;CLOSE-ACTIVATE AFTER DDB LOCKED(THIS TASK) .GLOBL INR ;INIT HANDLER .GLOBL OPN ;OPEN HANDLER .GLOBL OP.H ;OPEN-ACTIVATE AFTER DDB RESERVED .GLOBL OP.J ;OPEN-ACTIVATE AFTER BUFFER FULL .GLOBL OP.K ;OPEN-ACTIVATE AFTER DDB LOCKED .GLOBL OP.M ;OPEN-ACTIVATE AFTER DDB LOCKED(THIS TASK) .GLOBL RLS ;RELEASE HANDLER .GLOBL RWN ;READ-WRITE HANDLER .GLOBL RW.K ;RWN-ACTIVATE AFTER DDB LOCKED(THIS TASK) .GLOBL RW.M ;RWN-ACTIVATE AFTER DDB LOCKED .GLOBL RW.N ;RWN-ACTIVATE AFTER DDB RESERVED .GLOBL SPC ;SPECIAL FCN HANDLER .GLOBL SP.G ;SPC-ACTIVATE AFTER DDB LOCKED .GLOBL SP.H ;SPC-ACTIVATE AFTER DDB RESERVED .GLOBL SP.I ;SPC-ACTIVATE AFTER DDB LOCKED(THIS TASK) .GLOBL STT ;STATUS HANDLER .GLOBL TR.G ;XFR-ACTIVATE 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