                        ;
;	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
                                                                              