;XPRIV.MAC;15 6-OCT-75 15:34:15 EDIT BY PLUMMER ;1.54 ;XPRIV.MAC;14 19-SEP-75 09:50:54 EDIT BY PLUMMER ;XPRIV.MAC;9 17-MAR-75 10:30:43 EDIT BY PLUMMER ; RFORK BECOMES LFORK FOR MACRO 50 ;XPRIV.MAC;8 4-MAR-75 16:21:12 EDIT BY PLUMMER ;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 ;XPRIV.MAC;3 6-JAN-75 16:11:23 EDIT BY PLUMMER ;1.53 ;XPRIV.MAC;2 31-DEC-74 10:59:09 EDIT BY PLUMMER ; DWNMSF CELL ;XPRIV.MAC;1 2-DEC-74 10:23:53 EDIT BY PLUMMER ; 1.52 ;XPRIV.MAC;10 21-NOV-74 22:22:34 EDIT BY PLUMMER ; ADD TABLES FOR $SYSGT ; EXPAND TO 3 PAGES OF PRIVATE AREA ;XPRIV.MAC;9 26-JUL-74 13:45:09 EDIT BY PLUMMER ; ADD WHYHLT FOR "HALT" ;XPRIV.MAC;7 18-JUN-74 13:00:59 EDIT BY PLUMMER ; PRNTIM CELL ;XPRIV.MAC;6 10-JUN-74 17:42:31 EDIT BY PLUMMER ; MSGTIM CELL FOR MAIL WATCH ;XPRIV.MAC;5 13-MAR-74 13:57:34 EDIT BY PLUMMER ; SAVE PRIMARY JFNS AT ENTRY ;XPRIV.MAC;3 31-OCT-73 10:47:32 EDIT BY PLUMMER ; ADD ^T STORAGE ;XPRIV.MAC;2 5-OCT-73 15:55:21 EDIT BY PLUMMER ; LINKAGE FOR "BDDT" ETC ;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