;<EXEC>XPRIV.MAC;15     6-OCT-75 15:34:15    EDIT BY PLUMMER
;1.54

;<EXEC>XPRIV.MAC;14    19-SEP-75 09:50:54    EDIT BY PLUMMER
;<EXEC>XPRIV.MAC;9    17-MAR-75 10:30:43    EDIT BY PLUMMER
; RFORK BECOMES LFORK FOR MACRO 50
;<EXEC>XPRIV.MAC;8     4-MAR-75 16:21:12    EDIT BY PLUMMER
;<EXEC>XPRIV.MAC;6    30-JAN-75 17:52:50    EDIT BY PLUMMER
; CREATED JOB ENTRY VARIABLE STORAGE
; MOVE AUTO JOB STORAGE OUT OF STARTUP CLEAR BLT RANGE
;<EXEC>XPRIV.MAC;3     6-JAN-75 16:11:23    EDIT BY PLUMMER

;1.53
;<EXEC>XPRIV.MAC;2    31-DEC-74 10:59:09    EDIT BY PLUMMER
; DWNMSF CELL
;<EXEC>XPRIV.MAC;1     2-DEC-74 10:23:53    EDIT BY PLUMMER

; 1.52
;<N-EXEC>XPRIV.MAC;10    21-NOV-74 22:22:34    EDIT BY PLUMMER
; ADD TABLES FOR $SYSGT
; EXPAND TO 3 PAGES OF PRIVATE AREA
;<N-EXEC>XPRIV.MAC;9    26-JUL-74 13:45:09    EDIT BY PLUMMER
; ADD WHYHLT FOR "HALT"
;<N-EXEC>XPRIV.MAC;7    18-JUN-74 13:00:59    EDIT BY PLUMMER
; PRNTIM CELL
;<N-EXEC>XPRIV.MAC;6    10-JUN-74 17:42:31    EDIT BY PLUMMER
; MSGTIM CELL FOR MAIL WATCH
;<N-EXEC>XPRIV.MAC;5    13-MAR-74 13:57:34	EDIT BY PLUMMER
; SAVE PRIMARY JFNS AT ENTRY
;<N-EXEC>XPRIV.MAC;3    31-OCT-73 10:47:32	EDIT BY PLUMMER
; ADD ^T STORAGE
;<N-EXEC>XPRIV.MAC;2     5-OCT-73 15:55:21	EDIT BY PLUMMER
; LINKAGE FOR "BDDT" ETC
;<EXEC>XPRIV.MAC;24     2-OCT-73 13:15:34	EDIT BY PLUMMER

; 1.51

; 1.50
; TTY MODE BLOCK CHANGES
; RESERVE APJFN

; 1.49

; 1.48

; 1.47
; STORAGE FOR AUTOSTARTUP JOBS
; STORAGE FOR ARCHIVE COMMAND

; 1.46

; PDP-10 TENEX EXECUTIVE PRIVATE STORAGE AREA

	.DIRECTIVE XSRCVN %XP
	%XP==%XP


;THIS FILE IS ASSEMBLED SEPARATELY
;IT SHOULD BE LOADED FIRST. IT IS ABSOLUTE TO INSURE PROPER DEFINITIONS
;OF PAGE BUFFERS FOR WINDOW PAGES ON INFERIOR FORK.

	TITLE PRIV
	SEARCH XDEF







;STUFF REFERENCED IN MAIN ASSEMBLY (XMAIN,X1CMD,X2CMD...)
INTERN IDFORK,UFORK,BDFORK,DBFORK
INTERN AUTFLG,APJFN
INTERN CJINIT,CJFLGS,CJFKSA
INTERN DOWNTM,UPTIME,WHYHLT
INTERN CSZ1,CSZ2,CSZ4
INTERN .P
INTERN CIJFN,COJFN,JBUFP,.JBUFP,JBUF,CJFN1,CJFN2
INTERN INIFH1,INIFH2
INTERN EOFDSP,ILIDSP,ERRMF
INTERN CRJFNI,CRJFNO,CREDIF,CREDOF,PRIMRY
INTERN CINITF,DTSF,PRVENF,PROPSF,MESMSF,DOT,CUSRNO
INTERN FORK,LFORK,SUBSYS,DDTFLG,NPAGE,EFORK
INTERN STRTIM,TTYACF,ALOFH
INTERN SUPSUB,PTTYMD,ETTYMD
INTERN CERET
INTERN CTUUO
INTERN CSTRR,CSBUFP
INTERN FRSTFR
INTERN ERCOD,ERPC
INTERN DEVICE,DIRNO,OLDDIR,OUTDSG,INDSG
INTERN LPNAME,LPEXT,LPFDB,LFPOS
INTERN GHEAD,HEAD,HEDLNO,SPCG,WIDTH,LENGTH,L35,L50
INTERN PAGENO,PAGEN1,BESPTR,BESCOR,BESLNO,PPRINT
INTERN SPCBTS
INTERN PD,CBUF,CBUFE,CWBUF,CJFNBK,CSBUF,CSBUFE
INTERN PPATS,PPAT,PAGEN
INTERN EDFILE,FRAME,IUSRNM
INTERN SGTNAM,SGTAC1,SGTAC2
INTERN MSGTIM,PRNTIM,DWNMSF
INTERN MODES

;REFERENCED IN READ-ONLY STORAGE AREA IN XMAIN.MAC ONLY
INTERN LEV1PC,LEV2PC,LEV3PC
INTERN LIMITC

;REFERENCED ONLY IN SUBROUTINES ASSEMBLY (XSUBRS.MAC)
INTERN %EDAYT
INTERN CTLIM0,CTLIM1		;FOR ^T

	LOC 140

;STORAGE FOR EXEC COMMAND INTERPRETER

CJINIT:	Z	;NON-0 WHILE SETTING UP A CREATED JOB
CJFLGS:	Z	;FLAGS PASSED FROM CRJOB
CJFKSA:	Z	;FORK,,ENTRY FOR CREATED INFERIOR

AUTFLG:	Z	;JFN FOR AUTOSTARTUP JOBS, 0 OTHERWISE
APJFN:	Z	;PRIMARY IO FOR AUTOSTARTED FORK


CSZ1==.    ;CSZ1 TO CSZ2 IS ZEROED EVERY COMMAND

.P:	Z	;P SAVED AT BEGINNING OF SUBCOMMAND, FOR %ERR TO RESTORE

.JBUFP:	Z	;JBUFP SAVED AT BEGINNING OF SUBCOMMAND
JBUFP:	Z	;PUSHDOWN-TYPE POINTER INTO...
JBUF:	BLOCK JBUFL   ;BUFFER (STACK) FOR JFN'S. JFN'S OF ALL FILES
		;MENTIONED IN A COMMAND MUST BE HERE SO ERROR ROUTINES
		;CAN CLOSE AND RELEASE THEM.
CJFN1==JBUF	;JFN OF FIRST ARGUMENT
CJFN2==JBUF+1	;JFN OF 2ND ARGUMENT
INIFH1:	Z	;JBUFP VALUE FOR FIRST JFN IN INPUT FILE GROUP
INIFH2:	Z	;SAME FOR LAST FILE.  SAME AS INIFH1 UNLESS SEVERAL
		;NAMES (SEPERATED BY COMMAS) WERE GIVEN.

EOFDSP:	Z	;SPECIAL DISPATCH ADDRESS FOR EOF PSI, EG DURING "COPY"

ILIDSP:	Z	;0 OR SPECIAL DISPATCH FOR ILLEG INSTRUCTION TRAP

ERRMF:	Z	;NON-ZERO WHILE PROCESSING ERROR
		;CURTAILS PROCESSING OF NESTED ERRORS TO AVOID
		;INFINITE LOOPS IN ERROR CODE.


CSZ2==.-1  ;END OF AREA ZEROED EVERY COMMAND

CINITF:	Z	;NON-ZERO AFTER STARTUP INITIALIZATION COMPLETED

DTSF:	Z	;NON-0 IF SYSTEM DATE & TIME HAVE BEEN SET

PRVENF:	Z	;NON-0 IF PRIVILEGED COMMANDS "ENABLE"D

PROPSF:	Z	;NON-0 IF INFERIOR IS A PROPRIETARY SUBSYSTEM.
		;DISABLES /, \, GOTO, SAVE, ETC.
		;NOTHING SETS THIS YET (6/9/70), SHD BE SET IN "GET"____

MESMSF:	Z	;MESSAGE FLAG: NON-0 SAYS TO LOOP TO TYPE
		;"YOU HAVE A MESSAGE" IF APPROPRIATE

MSGTIM:	Z	;"TIME" DEADLINE OF NEXT MAIL CHECK, OR -1 IF
		;MAIL CHECK IS OFF.

PRNTIM:	Z	;"TIME" DEADLINE OF NEXT PRINTER CHECK, OR -1
		;IF PRINTER CHECK IS OFF

DOT:	Z	;"." FOR DDT-TYPE EXEC COMMANDS

CUSRNO:	Z	;USER # IF LOGGED IN, 0 IF NOT

FORK:	Z	;-1 OR HANDLE OF INFERIOR FORK EXEC CURRENTLY KNOWS OF.
		;SET BY GET, RUN, FORK N, ETC.
		;USED BY START, /, \, GOTO, ETC.

LFORK:	Z	;-1 OR HANDLE OF FORK LAST RUN.
		;SET BY START, REENTER, GOTO, RUN, SUBSYS CALL.
		;USED BY CONTINUE.

IDFORK:	Z	;-1 OR FORK HANDLE OF IDDT
BDFORK:	Z	;-1 OR FORK HANDLE OF BDDT
DBFORK:	Z	;POINTS TO EITHER IDFORK OR BDFORK
UFORK:	Z	;-1 OR HANDLE OF USER UNDER IDDT, BDDT

DDTFLG:	Z	;-1 IF DDT HAS BEEN MERGED INTO SUBSIDIARY FORK

NPAGE:	Z	;-1 OR XWD FORK HANDLE, ADDR FOR PAGE MAPPED AT "PAGEN"

EFORK:	Z	;FORK HANDLE FOR SPECIAL INFERIOR EXEC FORK

;AUTOLOGOUT CRAP
STRTIM:	Z	;DATE AND TIME EXEC WAS STARTED, IN "GTAD" FORMAT
TTYACF:	Z	;TTY ACTIVITY FLAG: AOS'D FOR EACH CHARACTER IN OR OUT
ALOFH:	Z	;AUTOLOGOUT FORK HANDLE, OR 0 IF NEVER STARTED, OR
		;-1 IF ALREADY KILLED.

;2 BLOCKS CONTAINING TTY MODE WORD, TAB STOPS (3 WORDS),
; CONTROL CHARACTER OUTPUT CONTROL INFO (CCOC) (2 WORDS)
; TERMINAL INTERRUPT WORDS (2 WORDS)
; SUBSYTEM NAME (1 WORD)

;	PROGRAM'S VALUES: SAVED ON ^C, RESTORED ON CONTINUE.
PTTYMD:	BLOCK NTTYMD
;	EXEC'S VALUES: USED DURING COMMAND INPUT.
ETTYMD:	BLOCK NTTYMD
SUBSYS=PTTYMD+10	;SUBSYSTEM NAME IN SIXBIT

;SUPERIOR'S SUBSYSTEM NAME, RESTORED BY "QUIT"
SUPSUB:	Z


;FOR CONTROL T ROUTINE
CTLIM0:	Z	;DELTA1 (15 SEC) PLUS TIME OF 1ST ^T
CTLIM1:	Z	;DELTA2 (1 MIN) PLUS TIME OF LAST VERBOSE ^T TYPEOUT

PRIMRY:	Z	;SAVED PRIMARY JFNS AT ENTRY
CIJFN:  Z       ;COMMAND (PRIMARY) INPUT JFN
COJFN:	Z	;PRIMARY OUTPUT JFN

;PRIMARY INPUT AND OUTPUT JFN'S SAVED AT ^C OUT OF REDIRECTED I/O
; OPERATION.  EACH OF THESE IS SIGNIFICANT ONLY IF CORRESPONDING
; FLAG IS -1.
CRJFNI:	Z
CRJFNO:	Z
;INPUT AND OUTPUT REDIRECTION FLAGS.
;EACH CAN INDEPENDENTLY HAVE THE VALUES:
; 	0  NORMAL
;	-1 INPUT OR OUTPUT IS NOW REDIRECTED
;	1  ^C'D (OR ERRORED?) OUT OF REDIRECTION,
;		JFN OF LAST USED REDIRECT FILE IN CRJFNI/O.
CREDIF:	Z
CREDOF:	Z

CERET:	Z	;WHERE TO GO AFTER ERROR MESSAGE. NORMALLY "RERET"
		;WHICH GOES BACK TO CMDIN, BUT IS CHANGED DURING SUB-CMD
		;INPUT AS FOR "DIRECTORY"

CTUUO:  Z       ;TEMPORARY FOR UUO DISPATCHER

CSTRR:  Z       ;USED BY "CSTR" TO SAVE RETURN FOR "MORE"

FRSTFR:	Z	;RETURN FROM "FRSTF" SUBR IN XSUBRS.MAC, SAVED FOR USE
		;BY "NEXTF", ALSO IN XSUBRS.MAC

%EDAYT:	Z	;DATE & TIME SAVED FROM %D TO %E (ETYPE UUO, XSUBRS.MAC)

CSBUFP:	Z	;POINTER INTO CSBUF (SEE SAME)

ERCOD:	Z	;ERROR CODE FROM JSYS ERROR RETURN OR FAKE ITRAP

ERPC:	Z	;PC FOR FAKE INSTRUCTION TRAP FOR SIMULATED JSYS'S

DWNMSF:	Z	;-1 OR "TIME" OF NEXT DOWNTIME CHECK


LIMITC:	Z	;0, OR -1 IF CAPABILITES ARE LIMITED

MODES:	Z	;USER MODE BITS (FROM LH OF STDIR)

;STORAGE FOR "HALT"
DOWNTM:	Z
UPTIME:	Z
WHYHLT:	Z

;STORAGE USED BY TTYNUM FOR "LINK" AND "ADVISE"
FRAME:	Z	;P SAVED DURING TTYNUM


;STORAGE USED BY SUBSYS LOOKUP
IUSRNM:	BLOCK ^D10

;STORAGE USED BY "EDIT"
EDFILE:	BLOCK EDFILL	;HOLDS NAME OF FILE BEING EDITTED

;STORAGE LOCATIONS USED BY "DIRECTORY" AND OTHER COMMANDS FOR
; INFORMATION ABOUT ARGUMENTS
DEVICE:	Z	;DEVICE IDENTIFIER
DIRNO:	Z	;DIRECTORY NUMBER
OLDDIR:	Z	;PREVIOUS DIRECTORY NUMBER
OUTDSG:	Z	;DESIGNATOR OF FILE TO PRINT ON
INDSG:	Z	;SOURCE JFN (TYPE, LIST)

;EXECUTION TIME STORAGE FOR "DIRECTORY" AND OTHER COMMANDS
LPNAME:	Z	;0 OR STRING POINTER TO LAST PRINTED NAME
LPEXT:	Z	;0 OR STRING POINTER TO LAST PRINTED EXTENSION
LPFDB:	Z	;0 OR LOCATION OF FDB FOR WHICH PRINTING IS INCOMPLETE
LFPOS:	Z	;LINE POSITION, AS - # COLS USED OVER MINIMUM

;STORAGE FOR "LIST" AND "TYPE" COMMANDS
GHEAD:	Z	;0 OR BYTE POINTER TO SUBCOMMAND-GIVEN HEADING
HEAD:	Z	;0 OR PTR TO HEAD BEING USED FOR THIS FILE, INCL "PAGE "
HEDLNO:	Z	;# LINES IN HEADING, INCL EOLS BEFORE AND AFTER
SPCG:	Z	;0 FOR SINGLE SPACING, 1 FOR DOUBLE, ETC
WIDTH:	Z	;PAGE WIDTH IN COLUMNS
LENGTH:	Z	;PAGE LENGTH IN LINES
		; = LAST LINE AT WHICH TO BREAK PAGE IF NO ^L
L35:	Z	;FIRST LINE AT WHICH TO BREAK PAGE IN ABSENCE OF ^L
L50:	Z	;PREFERRED LINE AT WHICH TO BREAK PAGE
PAGENO:	Z	;PAGE NUMBER, INCREMENTED AT ^L
PAGEN1:	Z	;SUBPAGE NUMBER, INCREMENTED WHEN OVERLONG PAGE IS SPLIT
BESPTR:	Z	;POINTER TO BEST PLACE IN OUTBUF YET SEEN TO BREAK PAGE
BESCOR:	Z	;"SCORE" ASSOCIATED WITH BESPTR
BESLNO:	Z	;LINE # AT BESPTR
PPRINT:	Z	;POINTER TO BLOCK OF WORDS SPECIFYING PAGES TO LIST,
		;EACH WORD BEING XWD MIN,MAX, 0 TERMINATING BLOCK.
SPCBTS:	Z	;BITS INDICATING SPACING CONTROL CHARS IN VERBATIME MODE


;PSEUDO-INTERRUPT PC STORAGE WORDS
LEV1PC:	Z
LEV2PC:	Z
LEV3PC:	Z

;BUFFERS

PD:     BLOCK PDL       ;PUSHDOWN
		;WHILE A PUSHDOWN OVERFLOW ERROR MESSAGE IS BEING 
		; TYPED PD OVERFLOWS INTO CBUF, WHICH IS OK.

CBUF:   BLOCK CBUFL     ;BUFFER FOR ENTIRE COMMAND TEXT,
	                ;INCLUDING STUFF ECHOED BY ALT MODE.
CBUFE:	Z		;END OF CBUF

CWBUF:  BLOCK 4                 ;BUFFER IN WHICH TO SET UP WORD JUST SO
                                ;FOR "FSYM" TABLE SEARCH.

CJFNBK:	BLOCK 11	;ARGUMENT BLOCK FOR "GTJFN" JSYS
			;ALWAYS ALL 0 EXCEPT WORDS 0, 1, 3, 4, 5.

CSBUF:	BLOCK CSBUFL	;BUFFER IN WHICH TO SET UP AND SAVE STRINGS
			;USED AS JSYS ARGUMENTS (BUFFF SUBR),
	LOC .!777-40	;USE REST OF PAGE EXCEPT FOR PATCH AREA
CSBUFE:			;END OF CSBUF. EVEN IF STRINGS OVERFLOW BEYOND
			;THIS POINT IT USUALLY WON'T DO ANY HARM.

PPATS: PPAT: BLOCK 40              ;PRIVATE PATCH AREA
	LOC .!777+1001-3*SGTBLN	;LOCATE HASH TABLES AT TOP OF NEXT PAGE
SGTNAM:	BLOCK SGTBLN		;HOLDS SIXBIT NAME (ARGUMENT TO SYSGT)
SGTAC1:	BLOCK SGTBLN		;HOLD AC1 RETURNED BY SYSGT
SGTAC2:	BLOCK SGTBLN		;HOLDS AC2 RETURNED BY SYSGT


CSZ4==.-1  ;END OF AREA TO ZERO AT STARTUP (BEGINS AT CSZ1)


;BUFFERS FOR MAPPING PAGES

	LOC <.+777>&777000	;SET LOCATION TO NEXT PAGE BOUNDARY
				;IF NOT ALREADY THERE

PAGEN:	BLOCK ^D512	;POSSIBLE PAGE MAPPED FOR EXAMInE, DEPOSIT, ETC.
			;OR LOOKING AT JOBDAT.
			;IF A PAGE IS MApPED HERE "NPAGE" IDENTIFIES IT.

	RELOC .-140	;NECESSARY FOR NEXT FILE TO LOAD RIGHT


        END

