Trailing-Edge
-
PDP-10 Archives
-
BB-D348F-SM
-
exec/execpr.mac
There are 46 other files named execpr.mac in the archive. Click here to see a list.
;<4.EXEC>EXECPR.MAC.119, 3-Jan-80 16:07:19, EDIT BY R.ACE
;UPDATE COPYRIGHT DATE
;REMOVE SAVFLG AND SAVPTR
;<4.EXEC>EXECPR.MAC.117, 3-Oct-79 19:20:00, EDIT BY OSMAN
;REDUCE EDSVB TO ONE WORD
;<4.EXEC>EXECPR.MAC.116, 3-Oct-79 15:27:14, EDIT BY OSMAN
;REDUCE CSVC TO ONE WORD (POINTER TO STRING)
;<4.EXEC>EXECPR.MAC.115, 20-Sep-79 13:33:08, Edit by HESS
; Move FRKTBL to perm free space
;<4.EXEC>EXECPR.MAC.114, 12-Sep-79 15:00:44, EDIT BY OSMAN
;move CLZFFF to area 0'ed before every command
;<4.EXEC>EXECPR.MAC.113, 12-Sep-79 11:05:58, EDIT BY OSMAN
;ADD CLZFFF
;<HESS.E>EXECPR.MAC.15, 19-Aug-79 22:49:53, Edit by HESS
; Add variable storage for extended features
;<4.EXEC>EXECPR.MAC.110, 1-Aug-79 09:58:55, EDIT BY OSMAN
;REMOVE SETNOF (MAKE IT LOCAL LIKE IT'S SUPPOSED TO BE!)
;<4.EXEC>EXECPR.MAC.109, 18-Jun-79 10:36:37, EDIT BY OSMAN
;MOVE JBUF TO AREA NOT ZEROED PER COMMAND SO THAT RLJFNS WILL WORK
;THIS IS NOW NECESSARY SINCE RLJFNS IS CALLED LATER THAN IT USED TO, AFTER
;MWATCH.
;<4.EXEC>EXECPR.MAC.108, 2-May-79 10:25:14, EDIT BY OSMAN
;FLUSH CJFN2
;<4.EXEC>EXECPR.MAC.107, 2-May-79 10:18:19, EDIT BY OSMAN
;GET RID OF CJFN1
;<4.EXEC>EXECPR.MAC.106, 20-Apr-79 14:56:34, EDIT BY OSMAN
;REMOVE ..REL
;<4.EXEC>EXECPR.MAC.105, 20-Apr-79 14:36:43, EDIT BY OSMAN
;MOVE ARCBLK ETC. TO BEFORE PAGE BUFFERS, TO FREE UP A PAGE
;<4.EXEC>EXECPR.MAC.104, 18-Apr-79 16:44:03, EDIT BY OSMAN
;MOVE PIDS TO AREA ZEROED AT STARTUP, SO MYPID GETS INITIALIZED THE FIRST TIME THROUGH
;<4.EXEC>EXECPR.MAC.103, 18-Apr-79 16:32:20, EDIT BY OSMAN
;remove oprpid
;<4.EXEC>EXECPR.MAC.102, 18-Apr-79 14:06:44, EDIT BY OSMAN
;REMOVE NOWQ, ADD NOWPTR
;<4.EXEC>EXECPR.MAC.101, 2-Apr-79 12:58:42, EDIT BY OSMAN
;REMOVE OPRFLG
;<4.EXEC>EXECPR.MAC.100, 30-Mar-79 10:08:29, EDIT BY OSMAN
;CHANGE FBLOCK SIZE FROM 10 TO FBLLEN
;<4.EXEC>EXECPR.MAC.99, 28-Mar-79 15:13:40, EDIT BY OSMAN
;ADD MPENDF
;<4.EXEC>EXECPR.MAC.98, 12-Mar-79 18:03:01, EDIT BY KONEN
;UPDATE COPYRIGHT FOR RELEASE 4
;<4.EXEC>EXECPR.MAC.97, 19-Feb-79 14:43:53, EDIT BY OSMAN
;ADD CLF
;<4.EXEC>EXECPR.MAC.96, 8-Feb-79 15:47:02, EDIT BY OSMAN
;ADD DPLPT, DPLSTK
;<4.EXEC>EXECPR.MAC.95, 1-Feb-79 17:21:14, EDIT BY OSMAN
;ADD IINTDF
;<4.EXEC>EXECPR.MAC.94, 18-Jan-79 11:36:59, EDIT BY OSMAN
;ADD INTDF
;<4.EXEC>EXECPR.MAC.93, 14-Jan-79 23:28:13, EDIT BY HEMPHILL
;ADD BLOCK FOR DOING LONG FORM RFSTS JSYSES
;MOVE JBUFP TO AREA NOT ZEROED EVERY COMMAND
;<4.EXEC>EXECPR.MAC.91, 13-Jan-79 15:53:16, EDIT BY OSMAN
;ADD XDICT
;<4.EXEC>EXECPR.MAC.90, 12-Jan-79 17:37:44, EDIT BY OSMAN
;REMOVE RUNFK
;<4.EXEC>EXECPR.MAC.89, 4-Jan-79 19:37:05, EDIT BY OSMAN
;REMOVE FREE
;<4.EXEC>EXECPR.MAC.88, 22-Dec-78 09:29:48, EDIT BY OSMAN
;move EDIT and COMPILE default strings to area zeroed at startup
;<4.EXEC>EXECPR.MAC.87, 6-Dec-89 10:44:47, EDIT BY OSMAN
;REMOVE BFP, ADD .P
;<4.EXEC>EXECPR.MAC.86, 1-Dec-78 10:33:58, EDIT BY KIRSCHEN
;ADD PECHOF
;<4.EXEC>EXECPR.MAC.85, 10-Nov-78 10:07:30, EDIT BY OSMAN
;tco 4.2087 - move defaults to area zeroed at initial startup
;<4.EXEC>EXECPR.MAC.84, 27-Oct-78 11:51:48, EDIT BY OSMAN
;REMOVE UGBUF, ACTBUF, DGBUF, SGBUF (MAKE THEM LOCAL STORAGE)
;<4.EXEC>EXECPR.MAC.82, 26-Oct-78 16:04:35, EDIT BY OSMAN
;REMOVE GSSBLK, SSSBLK
;<4.EXEC>EXECPR.MAC.81, 26-Oct-78 15:33:09, EDIT BY OSMAN
;REMOVE ALL "INTERN" STATEMENTS (PUT :: ON END OF ALL VARIABLES)
;<CALVIN>EXECPR.MAC.1, 9-Aug-78 14:39:12, EDIT BY CALVIN
; Insert variables for archive system
;<4.EXEC>EXECPR.MAC.78, 21-Oct-78 20:02:03, EDIT BY HEMPHILL
;TCO 4.2058
;MAKE XSAVE USE THE CONTENTS OF .JOBSY INSTEAD OF XEND AS THE LAST
;REQUIRED LOCATION WHEN SAVING THE EXEC WITHOUT SYMBOLS. THIS MAKES
;ALLOWANCE FOR MACREL AND PAT.., WHICH ARE LOADED AFTER XEND
;<4.EXEC>EXECPR.MAC.77, 20-Oct-78 19:34:24, EDIT BY OSMAN
;ADD IPCAGE
;<4.EXEC>EXECPR.MAC.76, 20-Oct-78 11:25:32, EDIT BY OSMAN
;ADD MDAPID
;<4.EXEC>EXECPR.MAC.75, 8-Oct-78 14:57:10, EDIT BY OSMAN
;FLUSH NERET, CHANGE REFS TO RERET, SINCE THAT'S ALL NERET EVER;<4.EXEC>EXECPR.MAC.72, 3-Oct-78 12:47:29, EDIT BY OSMAN
;REMOVE MUTILB
;ADD IPC SYMBOLS
;<4.EXEC>EXECPR.MAC.69, 25-Sep-78 10:46:33, EDIT BY OSMAN
;REMOVE OQCF
;<4.EXEC>EXECPR.MAC.67, 17-Sep-78 17:28:37, EDIT BY OSMAN
;PUT IN CSBUFP, CHANGE CSBUF TO FREE, CHANGE CSBUFL TO FRESIZ
;<4.EXEC>EXECPR.MAC.66, 15-Sep-78 16:22:54, EDIT BY OSMAN
;ADD DICT, REMOVE CSBUFP, CSBUFE
;<4.EXEC>EXECPR.MAC.65, 21-Aug-78 16:49:29, EDIT BY HELLIWELL
;REMOVE "SET EDITOR" STORAGE
;<4.EXEC>EXECPR.MAC.64, 13-Aug-78 14:10:58, Edit by HELLIWELL
;ADD EDTYPE AND EDFILE BUFFER FOR "SET EDITOR"
;<4.EXEC>EXECPR.MAC.63, 10-Aug-78 09:08:31, EDIT BY OSMAN
;ADD PRGCEL
;<4.EXEC>EXECPR.MAC.61, 3-Aug-78 17:23:21, EDIT BY OSMAN
;ADD JOBNO
;<4.EXEC>EXECPR.MAC.60, 21-Jul-78 15:33:19, EDIT BY OSMAN
;ADD SAVNAM
;<4.EXEC>EXECPR.MAC.59, 21-Jul-78 10:08:37, Edit by PORCHER
;ADD SVPRMT
;<4.EXEC>EXECPR.MAC.58, 20-Jul-78 15:51:57, EDIT BY OSMAN
;ADD SAVT20
;<4.EXEC>EXECPR.MAC.57, 17-Jul-78 11:31:18, EDIT BY OSMAN
;REMOVE GTBUF
;<4.EXEC>EXECPR.MAC.56, 13-Jul-78 15:57:32, EDIT BY OSMAN
;REMOVE EDPTR AND EDCNT
;<4.EXEC>EXECPR.MAC.55, 13-Jul-78 15:47:39, EDIT BY OSMAN
;REMOVE FSPEC
;<4.EXEC>EXECPR.MAC.54, 13-Jul-78 15:43:37, EDIT BY OSMAN
;REMOVE CZBEG, LHED, CRFPNT, SAVPNT, CZEND
;<4.EXEC>EXECPR.MAC.53, 13-Jul-78 15:17:56, EDIT BY OSMAN
;REMOVE CWBUF
;<4.EXEC>EXECPR.MAC.52, 13-Jul-78 14:57:14, EDIT BY OSMAN
;REMOVE BEFDAT AND KEEPNM
;<4.EXEC>EXECPR.MAC.51, 13-Jul-78 14:37:59, EDIT BY OSMAN
;REMOVE SIZCN1, SIZCN2, PAGFL1, PAGFL2
;<4.EXEC>EXECPR.MAC.50, 13-Jul-78 14:25:52, EDIT BY OSMAN
;REMOVE POJFLG AND INDSG
;<4.EXEC>EXECPR.MAC.49, 13-Jul-78 14:23:05, EDIT BY OSMAN
;REMOVE "DEVICE"
;<4.EXEC>EXECPR.MAC.48, 13-Jul-78 14:17:08, EDIT BY OSMAN
;<4.EXEC>EXECPR.MAC.47, 13-Jul-78 13:42:31, EDIT BY OSMAN
;REMOVE DFBUF
;<4.EXEC>EXECPR.MAC.46, 13-Jul-78 13:32:56, EDIT BY OSMAN
;REMOVE FRAME
;<4.EXEC>EXECPR.MAC.45, 13-Jul-78 13:17:17, EDIT BY OSMAN
;<4.EXEC>EXECPR.MAC.44, 13-Jul-78 13:11:20, EDIT BY OSMAN
;REMOVE CSTRR
;<4.EXEC>EXECPR.MAC.42, 11-Jul-78 16:40:52, EDIT BY OSMAN
;REMOVE SYSDIR,SYSTNM,SYSJNM,SYSTAK
;<4.EXEC>EXECPR.MAC.41, 11-Jul-78 14:41:27, EDIT BY OSMAN
;REMOVE TADBLK
;<4.EXEC>EXECPR.MAC.39, 11-Jul-78 13:30:40, EDIT BY OSMAN
;REMOVE QUEUE-CLASS GLOBAL STORAGE
;<4.EXEC>EXECPR.MAC.38, 11-Jul-78 10:37:30, EDIT BY OSMAN
;REMOVE PREPAG
;<4.EXEC>EXECPR.MAC.37, 10-Jul-78 20:53:21, EDIT BY OSMAN
;REMOVE TEXTIB
;<4.EXEC>EXECPR.MAC.36, 10-Jul-78 20:40:44, EDIT BY OSMAN
;REMOVE SVCSBP
;<4.EXEC>EXECPR.MAC.34, 10-Jul-78 20:36:59, EDIT BY OSMAN
;REMOVE SVPRMT
;<4.EXEC>EXECPR.MAC.32, 29-Jun-78 16:03:38, EDIT BY OSMAN
;remove ertryf
;<4.EXEC>EXECPR.MAC.31, 29-Jun-78 15:00:10, EDIT BY OSMAN
;<4.EXEC>EXECPR.MAC.30, 28-Jun-78 16:29:24, EDIT BY OSMAN
;REMOVE LIST COMMAND STORAGE (DONE IN TRVAR)
;<4.EXEC>EXECPR.MAC.28, 28-Jun-78 15:48:00, EDIT BY OSMAN
;REMOVE DIRECTORY COMMAND STORAGE (ASSIGNED IN TRVAR INSTEAD)
;<4.EXEC>EXECPR.MAC.25, 27-Jun-78 16:22:51, EDIT BY OSMAN
;PUT BACK THE FEW GETAB CELLS REFERENCED FROM NON-GETABS
;<4.EXEC>EXECPR.MAC.24, 27-Jun-78 16:12:12, EDIT BY OSMAN
;REMOVE ALL THE GETAB CELLS (ROUTINES USE MONSYM SYMBOLS INSTEAD)
;<4.EXEC>EXECPR.MAC.22, 27-Jun-78 15:33:46, EDIT BY OSMAN
;REMOVE SRCSAV
;<4.EXEC>EXECPR.MAC.21, 27-Jun-78 15:16:03, EDIT BY OSMAN
;REMOVE COMPBP,LPROC,DEBAID,TMPJFN,INDJFN,INDBRK,LNGJFN,NXPROC,MAPPNT,
;CSJOB,CSPPN,STRP,STRC
;<4.EXEC>EXECPR.MAC.20, 27-Jun-78 14:35:42, EDIT BY OSMAN
;ADD ACTRCF
;<4.EXEC>EXECPR.MAC.19, 26-Jun-78 14:12:37, EDIT BY OSMAN
;ADD CIPF, COMSIX
;<4.EXEC>EXECPR.MAC.18, 23-Jun-78 21:17:35, EDIT BY OSMAN
;REMOVE UNREFERENCED SYMS: CBUFR, CMDBK, SBFP, TXTBRK
;<4.EXEC>EXECPR.MAC.16, 22-Jun-78 15:16:07, EDIT BY OSMAN
;ADD MAILF
;<4.EXEC>EXECPR.MAC.15, 22-Jun-78 14:51:21, EDIT BY OSMAN
;ADD MALWEN, SUBTRACT MWATCT
;<4.EXEC>EXECPR.MAC.14, 19-Jun-78 14:44:58, EDIT BY OSMAN
;ADD TINPF
;<4.EXEC>EXECPR.MAC.8, 9-Jun-78 16:35:58, EDIT BY OSMAN
;ADD SET COMPILER-SWITCHES VARIABLES (EXTRM, ETC.)
;<4.EXEC>EXECPR.MAC.7, 31-May-78 17:03:01, EDIT BY OSMAN
;REMOVE CHECK FOR DATA BOUNDARY BEING BEFORE PAGE 5
;<4.EXEC>EXECPR.MAC.6, 31-May-78 16:50:32, EDIT BY OSMAN
;<4.EXEC>EXECPR.MAC.5, 31-May-78 16:05:40, EDIT BY OSMAN
;ADD DCSTK, DCPT, DTSTK, DTPT
;<4.EXEC>EXECPR.MAC.4, 31-Jan-78 13:27:54, Edit by PORCHER
;<4.EXEC>EXECPR.MAC.3, 31-Jan-78 11:39:42, Edit by PORCHER
;<4.EXEC>EXECPR.MAC.2, 31-Jan-78 09:20:49, Edit by PORCHER
;Add stuff for execute-only
;Also ECHOF and SVPRMT for "TAKE,ECHO"
;<4.EXEC>EXECPR.MAC.1, 6-Jan-78 20:37:32, EDIT BY HELLIWELL
;ADD EDCNT FOR EDIT/CREATE
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1976,1977,1978,1979,1980 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;TOPS20 'EXECUTIVE' COMMAND LANGUAGE - IMPURE STORAGE
SEARCH XDEF,MONSYM,QSRMAC
TTITLE PRIV
SALL
LOC 140
;NOTE: THIS MODULE SHOULD ONLY ASSIGN GLOBAL STORAGE. THAT IS, ALL STORAGE
;FOR INDIVIDUAL COMMANDS SHOULD BE ALLOCATED AS LOCAL STORAGE WITHIN THE
;COMMAND'S CODE ITSELF, SUCH AS WITH TRVAR OR STKVAR
;STORAGE FOR EXEC COMMAND INTERPRETER
SBLOCK:: BLOCK 20 ;COMND JSYS STATE BLOCK
FBLOCK:: BLOCK FBLLEN ;COMND JSYS FUNCTION BLOCK
CBUF:: BLOCK CBUFL ;BUFFER FOR ENTIRE COMMAND TEXT,
;INCLUDING STUFF ECHOED BY ALT MODE.
CBUFE:: Z ;END OF CBUF
ATMBUF::BLOCK ATMLEN ;BUFFER FOR STORING LAST FIELD
OKERR:: Z ;-1 TO IGNORE ERRORS DURING "TAKE" FILE
ECHOF:: Z ;-1 to echo TAKE file
PECHOF:: Z ;"PERMANENT" ECHO (SET WITH SET DEFAULT TAKE)
IOPT:: Z ;POINTER TO COMMAND JFN LIST
IOLST:: BLOCK IOLEN ;HOLDS COMMAND STREAM JFNS
CIJFN:: Z ;COMMAND (PRIMARY) INPUT JFN
TINPF:: Z ;-1 IF CIJFN REFERS TO A TERMINAL
COJFN:: Z ;PRIMARY OUTPUT JFN
JBUFP:: Z ;PUSHDOWN-TYPE POINTER INTO JFN LIST
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.
CSZ1==:. ;CSZ1 TO CSZ2 IS ZEROED EVERY COMMAND
CLZFFF:: Z ;POSITIVE IF CLZFF NEEDED AFTER ERROR OR ^C
COMAND:: Z ;TABLE ADDRESS OF OR POINTER TO NAME OF COMMAND BEING EXECUTED
COMSIX:: Z ;SIXBIT OF COMMAND NAME
PRGCEL:: Z ;HOLDS FAKE KEYWORD TABLE ENTRY FOR PROGRAM NAME
CLF:: Z ;-1 WHILE AT COMMAND LEVEL
CIPF:: Z ;-1 WHEN COMMAND IN PROGRESS
BEGINP:: Z ;MARKS BEGINNING OF COMMAND INPUT
SVPRMT:: Z ;SAVES POINTER TO PROMPT STRING FOR "TAKE, ECHO"
REPARA:: Z ;HOLDS REPARSE ADDRESS
CMDACS:: BLOCK 20 ;SAVED AC'S TO RESTORE THEM ON COMMAND REPARSE
.P:: Z ;SAVED P DURING SUBCOMMANDS
.J:: Z ;JFN STACK POINTER, USED FOR COMMAND INPUT
.JBUFP:: Z ;JFN STACK POINTER, SAVED DURING COMMAND EXECUTION
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"
DATDSP:: Z ;SPECIAL DISPATCH FOR DATA ERROR, DURING CHECKSUM
ILIDSP:: Z ;0 OR SPECIAL DISPATCH FOR ILLEG INSTRUCTION TRAP
QTADSP::Z ;0 OR SPECIAL DISPATCH FOR QUOTA EXCEEDED TRAP
;POINTER TO DATA TO RSCAN FOR PROGRAMS
RSPTR:: 0
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
STAT,<
STPTR:: Z
>;STAT
;SYSTEM CONSTANTS INITIALIZED ONCE AT STARTUP
QTIMES:: Z
SNAMES:: Z
SYSVER:: Z
JOBRT:: Z
TTYJOB:: Z
;THIS ONE NOT SET UP AT START UP BECAUSE IT MAY NOT EXIST
NETRDY::Z
CINITF:: Z ;NON-ZERO AFTER STARTUP INITIALIZATION COMPLETED
UNIQUE:: Z ;DO "AOS A,UNIQUE" TO GET UNIQUE NUMBER IN A
SAVT20:: Z ;REMEMBERED EXEC/USER MODE AT STARTUP
SAVNAM:: Z ;REMEMBERED PROG NAME WHEN EXEC STARTS
SYSMF:: Z ;SET TO -1 IF SYSTEM MESSAGES NEED PRINTING
LOGDAT:: Z ;HOLDS DATE OF LOGIN
LOGINI:: Z ;SET TO FLAG "TAKE INITIAL-LOGIN-TYPIN.TXT" AT NEXT OPPERTUNITY
FILINI:: Z ;SET TO FLAG "TAKE EXEC-INITIALIZATION.TXT" COMPLETED.
CIDLYF:: Z ;0:CLEAR INPUT AFTER ?, BUT BEFORE MESSAGE
;-1:CLEAR INPUT AFTER ENTIRE ERROR MESSAGE
ACTRCF:: Z ;-1 WHEN ^C ALLOWED
IINTDF:: Z ;NUMBER OF NESTED IPCON'S
INTDF:: Z ;NUMBER OF NESTED PIOFF'S
IPCALF:: Z ;-1 WHEN IPCF INTERRUPTS ALLOWED
IPCRCF:: Z ;SET TO -1 WHEN AN IPCF MESSAGE HAS BEEN RECEIVED
IPCCTL:: Z ;0 OR SPECIAL ADDRESS TO GO TO AFTER IPCF INTERRUPT
IPCWTF:: Z ;SET TO -1 WHEN AN IPCF INTERRUPT HAS BEEN DEFFERED
IPCAGE:: BLOCK IPCMAX ;BIRTHDAY OF MESSAGE, LARGER NUMBERS ARE MORE RECENTLY RECEIVED
IPCTBL:: BLOCK IPCMAX ;0 OR PID THAT SEND NTH MESSAGE (SEE IPCBUF)
IPCFGS:: BLOCK IPCMAX ;FLAGS FROM NTH IPCF MESSAGE IN BUFFER
NOWPTR:: Z ;0 OR POINTER TO FIRST QUEUED MOUNT BLOCK
MPENDF:: Z ;-1 IF WAITING FOR MOUNT ANSWER
PAXLFL:: Z ;0:PA1050 ALLOWED
;-1:PA1050 NOT ALLOWED
CCFLAG:: Z ;0:XMIT ^C CAP TO PROGRAMS
;-1:DON'T XMIT ^C CAP TO PROGRAMS
PRVENF:: Z ;NON-0 IF PRIVILEGED COMMANDS "ENABLE"D
MESMSF:: Z ;MESSAGE MESSAGE FLAG: NON-0 SAYS TO LOOP TO TYPE
;"YOU HAVE A MESSAGE" IF APPROPRIATE
EXDPLC:: Z ;Last location examined or deposited, -1 if none
EXDPF:: Z ;0 if examine last, -1 if deposit last
BATCHF:: Z ;-1: BATCH MODE, 0:NON BATCH MODE
CUSRNO:: Z ;USER # IF LOGGED IN, 0 IF NOT
LIDNO:: Z ;LOGGED-IN DIRECTORY NUMBER (SET ONLY AFTER LOGIN)
JOBNO:: Z ;JOB NUMBER
FORK:: Z ;-1 OR HANDLE OF INFERIOR FORK EXEC CURRENTLY KNOWS OF.
;SET BY GET, RUN, FORK N, ETC.
;USED BY START, /, \, GOTO, ETC.
XTND,<
RUNFK:: Z ; CURRENT RUNNING FORK
IDFORK:: Z ; IDDT FORK
EDFORK:: Z ; EDITOR FORK (AUTO KEEP)
CCKEEP:: Z ; -1 := TREAT INTERRUPTED FORKS AS KEPT
FRKTAB:: BLOCK NFRKS ; FORK TABLE FLAGS,,FRKTBL PNTR
SLFTAB=:FRKTAB+400000
FRKNMS:: BLOCK NFRKS+1 ; TBLUK STYLE TABLE FOR FORK NAMES
>
STAYF:: Z ;-1 TO STAY AT COMMAND LEVEL WHILE PROGRAM RUNNING
NOXTND,<
DDTFLG:: Z ;-1 IF DDT HAS BEEN MERGED INTO SUBSIDIARY FORK
>
ADVFLG:: Z ;FLAG TO INDICATE ADVISE CODE ACTIVE
NPAGE:: Z ;-1 OR XWD FORK HANDLE, ADDR FOR PAGE MAPPED AT "PAGEN"
EFORK:: Z ;FORK HANDLE FOR SPECIAL INFERIOR EXEC FORK
; OR EPHEMERALS
MIC,< ; STORAGE FOR MIC
MICFRK:: Z ; FORK HANDLE OF MIC.EXE
MICPAG:: Z ; AC BLOCK FOR INFERIOR (MIC.EXE)
BLOCK 17
MICFPG:: Z ; POINTER TO FIRST PAGE FREE
>
;MAILWATCH VALUES
NOXTND,<
MAILF:: Z ;-1 IF MAIL WATCH INTERRUPT OCCURS
MALWEN:: Z ;WHEN NEXT MAIL INTERRUPT WILL OCCUR
>
MWATCF:: Z ; 0 FOR MAILWATCH OFF, -1 FOR ON
XTND,<
TYPING:: Z ; -1 IF TYPEOUT IS IN PROGRESS
MWATAT:: Z ; TIME FOR AUTO MAILWATCH
MWATCT:: Z ; TIME FOR NEXT MAIL CHECK
MWATDR:: BLOCK NMWAT ; USER NUMBERS FOR MAIL WATCH
MWATWR:: BLOCK NMWAT ; LAST WRITE D/T OF MAIL.TXT.1
MWATN:: BLOCK NMWAT ; COUNT OF TIMES CHECKED
MWATN0:: BLOCK NMWAT ; RESET COUNT FOR MWATN
MALBUF:: BLOCK 20 ; TEMP STORAGE FOR GFUST OF MAIL WRITER
;VARIABLES FOR TIME ALERTS
IITSET:: Z ; -1 IF TIMER INTS ON
AUTOF:: Z ; -1 IF AUTO MAIL/ALERTS ON
ALRTIM:: Z ; TIME OF NEXT ALERT
ALRTMS:: BLOCK NALTS ; ADDITIONAL ALERT TIMES
REASON:: BLOCK NALTS+1 ; POINTERS TO ALERT MESSAGE
>
; CRJOB/PRARG storage
CRPRA:: BLOCK 20 ; Store PRARG data here (from CRJOB that
; created us)
;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
PTTYAC:: Z ; Previous TTY activity flag (save
; over TIMER timeout)
ALOST:: Z ; 0=> TIMER stuff not started;-1=>has been
CJPTIM:: Z ; Not 0=> time limit set at CRJOB startup
; this means LGOUT as well as printing
; "? Time limit exceeded"
;-1 IF ALREADY KILLED.
;3 BLOCKS CONTAINING TTY MODE WORD, TAB STOPS (3 WORDS),
; CONTROL CHARACTER OUTPUT CONTROL INFO (CCOC) (2 WORDS).
;ALL THREE ARE CHANGED BY EXEC COMMANDS "HALFDUPLEX" ETC.
; INITIAL VALUES: SAVED AT EXEC STARTUP fOR USE AT PROG STARTUP.
ITTYMD:: BLOCK NTTYMD
NOXTND,<
; PROGRAM'S VALUES: SAVED ON ^C, RESTORED ON CONTINUE.
PTTYMD:: BLOCK NTTYMD
>
; EXEC'S VALUES: USED DURING COMMAND INPUT.
ETTYMD:: BLOCK NTTYMD
CERET:: Z ;WHERE TO GO AFTER ERROR MESSAGE. NORMALLY "RERET"
;WHICH GOES BACK TO CMDIN, BUT IS CHANGED DURING
;SUBCOMMAND INPUT AS FOR "DIRECTORY"
CTUUO:: Z ;TEMPORARY FOR UUO DISPATCHER
%EDAYT:: Z ;DATE & TIME SAVED FROM %D TO
ERCOD:: Z ;ERROR CODE FROM JSYS ERROR RETURN OR FAKE ITRAP
;FLAG SET TO -1 IN "SET" COMMAND IF "NO" TYPED
SETNOF:: Z
;STORAGE LOCATIONS USED BY "DIRECTORY" AND OTHER COMMANDS FOR
; INFORMATION ABOUT ARGUMENTS
MCOJFN:: Z ;MULTI COPY OUTPUT JFN
OUTDSG:: Z ;DESIGNATOR OF FILE TO PRINT ON
;FLAG CONTROLLING JFN NAME PRINTING BY TYPIF ROUTINE
TYPGRP:: Z ;0:PRINT ONLY IF PROCESSING GROUP
;-1:PRINT ALWAYS
;PSEUDO-INTERRUPT PC STORAGE WORDS
PCTAB=:.-1
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.
CJFNBK:: BLOCK JBLEN ;ARGUMENT BLOCK FOR "GTJFN" JSYS
;ALWAYS ALL 0 EXCEPT WORDS 0, 1, 3, 4, 5.
;EXTENDED ARGS FOR GTJFN
LOC CJFNBK+.GJF2
XTNCNT:: Z ;FLAGS AND COUNT GO HERE
ECHPTR:: Z ;ECHO POINTER FOR GTJFN GOES HERE
ECHCNT:: Z ;ECHO COUNT GOES HERE
CTRPTR:: Z ;POINT TO SPACE IN FRONT OF COMMAND BUFFER
Z ;TOP OF BUFFER POINTER
DICT:: Z ;WORD NEEDED BY FREE SPACE MANAGER
XDICT:: Z ;USED BY PERMANENT FREE SPACE MANAGER
CSBUFP:: Z ;POINTER TO STRING STORAGE
CSVC:: Z ;0 OR POINTER TO SAVED COMMAND STRING
CSVCC:: BLOCK 1 ;SAVE COMMAND INFO
EDSVB:: Z ;PLACE TO SAVE POINTER TO EDIT ARGS
DPLPT:: Z ;POINTER TO PLOT DEFAULTS
DPLSTK::BLOCK QSLEN ;PLOT DEFAULTS
DCPT:: Z ;POINTER TO CPUNCH DEFAULTS
DCSTK:: BLOCK QSLEN ;CPUNCH DEFAULTS
DPPT:: Z ;POINTER TO DEFAULTS FOR PRINT COMMAND
DPSTK:: BLOCK QSLEN ;DEFAULTS FOR PRINT COMMAND
DSPT:: Z ;POINTER TO SUBMIT DEFAULTS
DSSTK:: BLOCK QSLEN ;SUBMIT DEFAULTS
DTPT:: Z ;POINTER TO TPUNCH DEFAULTS
DTSTK:: BLOCK QSLEN ;TPUNCH DEFAULTS
;STORAGE FOR SET DEFAULT COMPILE-SWITCHES
EXTBUF:: BLOCK NEXTS*EXTSIZ ;ROOM FOR EXTENSION STRINGS
DEXTBL:: 0 ;TABLE HEADER WORD
BLOCK NEXTS ;ROOM FOR MAXIMUM SIZE TABLE
DCSSTG:: BLOCK NEXTS*DCSSIZ ;ROOM FOR DEFAULTS
;STORAGE FOR IPCF VARIABLES
MYPID:: Z ;EXEC PID
INFPID:: Z ;INFO'S PID
QSRPID::Z ;PID OF QUASAR (QUEUE REQUESTS GET SENT TO QUASAR)
MDAPID:: Z ;MOBY DEVICE ANIMAL'S PID
SNDPDB::BLOCK PDBSIZ ;PDB FOR SENDING MESSAGES
ABKCNT::Z ;ADDRESS BREAK COUNTER
FTDBLK::BLOCK .RSFET+1 ; Space for set file on/off/exp
ARCBLK::BLOCK .ARPSZ+1 ; Block for archive tape info
LRFSTS::BLOCK .RFSFL+1 ;BLOCK FOR DOING LONG FORM RFSTS CALL
CSZ4==:.-1 ;END OF AREA TO ZERO AT STARTUP (BEGINS AT CSZ1)
XPGD==.-1 ; END OF NON-PAGE DATA
;BUFFERS FOR MAPPING PAGES
LOC <.+777>&777000 ;SET LOCATION TO NEXT PAGE BOUNDARY
BPGD==. ; BEGINNING OF PAGE DATA
MIC,<
PAGEMI::BLOCK ^D512 ; PAGE TO SHARE WITH MIC.EXE
>
PAGEN:: BLOCK ^D512 ;POSSIBLE PAGE MAPPED FOR EXAMINE, DEPOSIT, ETC.
;OR LOOKING AT JOBDAT.
;IF A PAGE IS MAPPED HERE "NPAGE" IDENTIFIES IT.
XDEND==:. ;FIRST LOC OF PURE SEGMENT
SUBTTL ONCE-ONLY MODULE FOR EXEC CREATION
;USEFUL MACROS
DEFINE TMSG(TXT) <
HRROI 1,[ASCIZ \TXT\]
PSOUT ;;DUMP STRING ON TERMINAL
>
DEFINE TNOUT <
MOVEI 1,.PRIOU ;;USE PRIMARY JFN
MOVEI 3,^D10 ;;DECIMAL NUMBER
NOUT ;;DUMP IT
ERJMP .+1 ;;IGNORE ERRORS
>
DEFINE EMSG(TXT) <
TMSG <
?TXT
>
HALTF ;;PRINT ?MESSAGE AND HALT
>
;REGISTER USAGE
;C(10) := STARTING PAGE #
;C(11) := # OF PAGES WITHOUT SYMBOLS
;C(12) := HIGHEST PAGE # + 1
;C(13) := # OF PAGES IN SYMBOL TABLE
;C(14) := JFN TO FOR .EXE FILE
LOC PAGEN ;USE THIS PAGE
XSAVE::! ;ENTRY POINT
MOVE 0,.JBSYM## ;GET SYM TABLE PNTR
MOVEM 0,.JOBSY ;PLACE IN CORRECT LOC
TMSG <
Data seg: >
MOVEI 10,EXEC ;START ADDRS OF EXEC
TRNE 10,777 ;CHECK PAGE BOUNDARY
JRST [EMSG <EXEC doesn't start on page boundary>]
LSH 10,-11 ;STARTING PAGE #
MOVE 2,10 ;GET DATA SEGMENT SIZE
TNOUT
TMSG <. Pages
>
MOVEI 2,BPGD ; BEGINNING OF PAGE DATA
SUBI 2,XPGD ;CALC REMAINDER
TNOUT
TMSG <. Words free
Pure seg: >
HRRZ 2,.JOBSY ;GET LAST LOC OF EXEC
ADDI 2,777 ;ROUND TO NEXT HIGHEST PAGE
LSH 2,-11 ;PAGE #
MOVEM 2,12 ;SAVE INFO
SUB 2,10 ;SIZE OF EXEC W/O SYMS
MOVEM 2,11 ;SAVE IN 11
TNOUT ;TELL US ABOUT IT
TMSG <.+>
HLRE 0,.JOBSY ;NEG. LEN OF S.T.
HRRZ 2,.JOBSY ;START ADDRS
SUB 2,0 ;LAST LOC OF ENTIRE EXEC
ADDI 2,777 ;ROUND TO NEXT HIGHEST PAGE
LSH 2,-11 ;...
SUB 2,12 ;SIZE OF S.T.
MOVEM 2,13 ;SAVE FOR LATER
TNOUT ;TELL US SIZE
TMSG <. Pages + symbols
>
MOVE 2,12 ;GET PAGE # +1 OF HIGHEST PAGE
LSH 2,11 ;CONVERT TO ADDRS
HRRZ 0,.JOBSY
SUB 2,0 ;# OF WORDS REMAINING
TNOUT ;TILL NEXT PAGE
TMSG <. Words to next page boundary
Save symbols? >
XSV1:! PBIN ;GET ANSWER
ANDI 1,137 ;ROUND TO UPPER CASE
CAIN 1,"N" ;NO?
JRST [SETZM 13 ;CLEAR SIZE OF S.T.
SETZM .JOBSY ; AND S.T. PNTR
JRST XSV2] ;SKIP TO EOL
CAIE 1,"Y" ;YES?
JRST [TMSG <
?Type "Y" or "N"
>
MOVEI 1,.PRIIN
CFIBF ;CLEAR TYPEAHEAD
JRST XSV1] ;TRY AGAIN
XSV2:! PBIN
CAIE 1,12 ;SKIP TILL LINE-FEED SEEN
JRST XSV2
MOVEI 1,.FHSLF ;SET UP ENTRY VECTOR
MOVE 2,[EVLEN,,EXEC]
SEVEC ;...
MOVSI 1,(GJ%FOU!GJ%SHT)
HRROI 2,[ASCIZ "EXEC.EXE"]
GTJFN ;GET JFN FOR .EXE FILE
ERJMP XSVE
MOVEM 1,14 ;SAVE JFN
TMSG <
Saving EXEC on file: >
MOVEI 1,.PRIOU ;WHERE TO SAY
MOVE 2,14 ;JFN
MOVEI 3,0 ;DEFAULT MSG
JFNS
MOVSI 1,.FHSLF ;MUMBLE UP SAVE FILE INFO
HRR 1,14 ; SELF,,JFN
MOVE 2,11 ;LEN OF EXEC
ADD 2,13 ; PLUS S.T. SIZE
MOVEM 2,.NPAGS ;SAVE SIZE OF EXEC
MOVNS 2 ;NEGATE LENGTH
HRLZS 2 ; TO LHS
HRR 2,10 ;STARTING PAGE #
TRO 2,SS%RD!SS%EXE ;READ & EXECUTE
MOVEM 2,11 ;STORE THIS TABLE ENTRY
MOVEI 10,.JBSYM## ;GET ADDRESS OF SYMBOL TABLE POINTER
LSH 10,-9 ;CHANGE TO PAGE NUMBER (THIS IS ALL FOR
HRLI 10,-1 ;DDTS THAT USE "116" AS SYMBOL TABLE POINTER)
IORI 10,SS%CPY+SS%RD+SS%EXE ;ALLOW ALL ACCESS TO SYMBOL POINTER
MOVEI 12,0 ;TERMINATE TABLE WITH A ZER0
MOVEI 2,10 ;POINT AT THE TABLE
CAIN 13,0 ;SYMBOLS SAVED?
MOVEI 2,11 ;NO, SO DON'T SAVE SYMBOL TABLE
MOVEI 3,0 ;ZERO FLAGS
SSAVE ;DO IT
ERJMP XSVE
TMSG < [OK]
>
HALTF ;DONE!
XSVE:! MOVEI 1,.PRIOU
HRLOI 2,.FHSLF ; SELF,,MOST RECENT ERROR
MOVEI 3,0
ERSTR
JFCL ;LOSE
JFCL ;LOSE
EMSG <Failure during attempt to save EXEC.EXE>
LIT ;DUMP LITS
RELOC XDEND-140 ;SO THAT NEXT MODULE LOADS CORRECTLY
END XSAVE