Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_3_19910112 - mit/exec/execca.mac
There are 64 other files named execca.mac in the archive. Click here to see a list.
;[MIT-XX]SRC:<EXEC.TEST>EXECCA.MAC.9, 30-Jan-85 02:29:41, Edit by SRA
;126 (XX) Add SEND command to pre-login commands.
;[MIT-XX]SRC:<EXEC.TEST>EXECCA.MAC.7, 19-Dec-84 16:13:49, Edit by SRA
;123 Take TALK command out of pre-login table for XX.
;[MIT-XX]SRC:<EXEC.TEST>EXECCA.MAC.6, 24-Aug-84 04:59:50, Edit by GZ
;115 Make SET FILE PE[R] complete to PERMANENT, take SET FILE BACKUP
;    out of MFRK conditional.
;[MIT-XX]SRC:<EXEC.TEST>EXECCA.MAC.5, 20-Aug-84 21:50:32, Edit by JTW
;114 SET FILE [NO] BACKUP (TO TAPE). Change PERPETUAL to NOT-DELETABLE
;    to avoid confusion with PERMANENT, but still understand PERPETUAL
;720 get rid on NOLGs, provide seperate command tables for not logged in
;716 add command-edit features
;715 add CMU PCL 5(100) features
;713 move conditional assembly switches to DE
;   use new configuartion conditionals
;   add literal label
;712 DEC release version
; UPD ID= 120, SNARK:<5.EXEC>EXECIN.MAC.21,  28-Dec-81 11:14:01 by CHALL
;TCO 5.1644 - UPDATE COPYRIGHT NOTICE
; UPD ID= 100, SNARK:<5.EXEC>EXECCA.MAC.17,  22-Oct-81 14:33:35 by CHALL
;TCO 5.1583 MOVE $DEF-, KEYWORDS FOR "INFO DEFAULTS", HERE
;  PUT "I DEF PROGRAM" UNDER MFRK
; UPD ID= 83, SNARK:<5.EXEC>EXECCA.MAC.16,  10-Oct-81 19:45:39 by CHALL
;TCO 5.1564 ADD "PRESERVE (PCL ENVIRONMENT)"; DELETE SAVE/ENV AND SAVE/EXEC
; UPD ID= 58, SNARK:<5.EXEC>EXECCA.MAC.14,  31-Aug-81 11:54:16 by CHALL
;TCO 5.1480 $CONFD- ADD LABEL $CONF1 BEFORE COMMA AND CR OPTIONS
; UPD ID= 44, SNARK:<5.EXEC>EXECCA.MAC.10,  19-Aug-81 10:38:45 by CHALL
;TCO 5.1463 THERE'S NO "SET DEF PROGRAM" & "SET NO DEF PROGRAM" IF NO M'FORKING
;TCO 5.1464 CREATE $FRKNM: LIST OF OPTIONS TO THE FORK COMMAND
;TCO 5.1465 MOVE ALL MFRK-DEPENDENT RESET CODE FROM EXECP TO HERE
; UPD ID= 39, SNARK:<5.EXEC>EXECCA.MAC.9,  17-Aug-81 09:38:56 by CHALL
;TCO 5.1454 CHANGE NAME FROM XDEF TO EXECDE
; UPD ID= 7, SNARK:<5.EXEC>EXECCA.MAC.8,  13-Jul-81 17:40:37 by MURPHY
; TCO 5.1410 - BETTER HANDLING OF MACH SIZE EXCEEDED AND OVER QUOTA CONDITIONS
;<HELLIWELL.EXEC.5>EXECCA.MAC.1, 13-May-81 14:49:49, EDIT BY HELLIWELL
;REMOVE CLEAR, LABEL, MAKE, AND TECO COMMANDS
; UPD ID= 1697, SNARK:<5.EXEC>EXECCA.MAC.4,  12-Mar-81 16:27:37 by LYONS
;remove cd abbrev for connect
;TOPS20 'EXECUTIVE' COMMAND LANGUAGE

;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;   OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1980,1981,1982 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	SEARCH EXECDE
	TTITLE EXECCA		

;CODE SUBJECT TO ASSEMBLY CONDITIONALS

;713 conditional assembly switch definitions moved to DE

;READ ONLY STORAGE AREA

;EXTERNS FOR CELLS REFERENCED IN THIS AREA ONLY
;   SPECIAL CHARACTER ROUTINES:

;COMMAND TABLES
;FORM:
;	LABEL:  NUMBER OF ENTRIES
;       	[VALUE],,[ASCIZ @TEXT@] FOR EACH ENTRY
;
;	ALPHABETICAL ORDER
;	VALUE IS GENERALLY  XWD BITS,ADDRESS
;       SEE "DEFINITIONS" FILE FOR BIT SYMBOLS AND MACRO DEFINITIONS

;MACROS USED TO GENERATE TABLES (DEFINED IN "DEFINITIONS" FILE)
;
;	T TEXT{,BITS,ADDRESS}	;HERE {}'S MEAN OPTIONAL
;		SETS UP ENTRY. DEFAULTS ADDRESS TO ".TEXT", OR IF
;		THAT IS UNDEFINED, TO "NOT IMPLEMENTED" ERROR ROUTINE
;
;	X TEXT
;		CREATES A SPECIAL FAKE ENTRY, TO MAKE AN OTHERWISE
;		UNIQUE SUBSET AMBIGUOUS (EVEN THE EXACT TEXT GIVEN TO X
;		MACRO WILL BE TREATED AS AMBIGUOUS).  USED WHERE ACTUAL
;		AMBIGUITY IS WITH AN ENTRY IN ANOTHER TABLE SEARCHED
;		LATER.
;
;	TABLE	RESERVES WD FOR # ENTRIES AT TOP OF TABLE
;
;	TEND	FILLS IN # OF ENTRIES SINCE LAST "TABLE" MACRO
;		IN LOCATION RESERVED BY THAT "TABLE" MACRO
;COMMANDS NOT PREFIXED BY ^E.
;CCL COMMANDS ALL DISPATCH TO DOCCL, QUEUE COMMANDS DISPATCH TO QCM
;7 not true anymore

;TOP-LEVEL COMMAND TABLE

;720 not logged in
CTBL0:: TABLE
	T attach
NEWF,<	T blank>
	T break
OLDF,<	IT bye>			;7 same as BREAK, secondary usage
ALLON <OLDF,OZ>,<		;7
	TA da			;7 resolve new conflict
	IT date,ONEWRD,.DAYTI	;7 DATE is psuedo-abbrev for DAYTIME, 2ndary
       >			;7
	T daytime,ONEWRD
ALLON <CHA,MIT>,<		;7
NOEE,<	T dvrq,ONEWRD>>		;7 check DOVER queue
	T echo,,.ECHOL		;7 ECHO command line
	T finger		;7 FINGER users
	T help
	T information
OLDF,<	IT kjob,,.LOGOU>	;7 secondary usage
	T kkjob,,.LOGOU		;7 not logged in detach won't hangup, so LOGOUT
	TA log
.LOG:	T login			;7 can only LOGIN when not logged in
	T logout
ONEON <EE,OZ>,<			;7
	T open>			;7 OPEN an account
	T qlogin		;7 quick LOGIN
	T remark
NOEE,<	T send,,.NSEND>		;7 SEND message to user (XX added as of 126)
	T set 
	T systat,,.SISTA
	TA t	
EE,<	T talk>			;123 Only for EE now, not for XX
	T terminal
EE,<	T tess>			;713
ALLON <OLDF,OZ>,<		;7
	IT time,ONEWRD,.DAYTI>	;7 TIME is pseudo-abbrev for DAYTIME, 2ndary
	T unattach
	T whois,,.FINGE		;7 WHOIS user
	TEND

;7 simple command level
CTBL1S:: TABLE
	T append		
	T attach		
NEWF,<	T blank>
	T break		
	TA c
	T cancel		
	T compile		
	T connect		
	T continue		
	T copy			
	TA d,.DI		;7 "D" means "DIRECTORY" here
ALLON <OLDF,OZ>,<		;7
	TA da			;7 resolve new conflict
	IT date,ONEWRD,.DAYTI	;7 DATE is psuedo-abbrev for DAYTIME, 2ndary
       >			;7
	T daytime,ONEWRD
	T debug
	T define
	T delete
	T detach
	T directory
	T echo,,.ECHOL		;7 ECHO command line, use in TAKE files
	TA ex
	T execute		
	T expunge		
	TA f
	T finger		;7 FINGER users
	T fork			
	T get			
	T help		
	T information	
MFRK,<	T keep>
	T load			
	T logout		
	T modify
ONEON <DECN,PLTD>,<		;713
	T plot>			;713
ONEON <DECN,LPTD>,<		;713
	T print>		;713
ONEON <CDPD,DECN,PTPD>,<	;713
	T punch>		;713
XTND,<	T qdirectory,,.QD>
	T r
	T receive		
	T refuse		
	T remark		
	T rename		
	T reset			
	T run			
	TA s
	T save,EASB		
	T set		
	T start			
	T systat,,.SISTA	
	TA t
	T take			
	T talk		
	T terminal		
ALLON <OLDF,OZ>,<		;7
	IT time,ONEWRD,.DAYTI>	;7 TIME is pseudo-abbrev for DAYTIME, 2ndary
	T type			
	T undelete		
MFRK,<	T unkeep>
	T vdirectory
	T whois,,.FINGE		;7 WHOIS user
XTND,<	T wdirectory>
        TEND

;720 normal, NOLGs removed
CTBL1::	TABLE			;PCL
CEF,<	TA a>			;716 "A" means "AGAIN"
	T access		;ACCESS (TO DIRECTORY) <NAME>
	T advise		;ADVISE USER/TTY
CEF,<				;716
.A:	T again>		;716 do a command AGAIN
	T append		;APPEND <FILE> (TO) <FILE>
	T archive		;ARCHIVE (FILES), KEYWORD
	T assign		;ASSIGN <DEVICE> (AS) <NAME>
	T attach		;ATTACH (TO JOB) <JOBNO>
	T backspace		;BACKSPACE
NEWF,<	T blank>		;CLEAR SCREEN
	T break			;BREAK (LINKS)
				;7 new destination label
	T build			;BUILD OR MODIFY DIRECTORY
OLDF,<	IT bye>			;7 same as BREAK, secondary usage
	TA c			;C IS CONTINUE
	T cancel		;KILL QUEUE REQUEST
	IT cd,,.CONNE		;7 CD is a pseudo-abbrev for CONNECT
CEF,<	T cedit>		;716 command-editor
	T close			;CLOSE (JFN) <JFN NUMBER>
	T compile		;COMPILE (FROM)
	T connect		;CONNECT (TO DIRECTORY) <NAME>
.C:	T continue		;CONTINUE
	T copy			;COPY (FROM) <FILE> (TO) <FILE>
	T create,,.EDITC	;CREATE (FILE) <FILE>
	T cref			;CREF (FILE)
	T csave,EASB		;SAVE ... (ON) <FILE>.
	TA d			;"D" MEANS "DEPOSIT"
ALLON <OLDF,OZ>,<		;7
	TA da			;7 resolve new conflict
	IT date,ONEWRD,.DAYTI	;7 DATE is pseudo-abbrev for DAYTIME, 2ndary
       >			;7
.DA:	T daytime,ONEWRD	;DAYTIME
	T ddt,EASB		;START DDT
	T deassign		;DEASSIGN (DEVICE)
	T debug			;DEBUG (FROM)
PCLF,<	T declare>		;PCL DECLARE PCL OBJECT
	T define		;DEFINE (LOGICAL NAME)--(AS)--
	T delete		;DELETE <FILE>
.D:	T deposit		;DEPOSIT INTO MEMORY LOCATION
	T detach		;DETACH JOB
	TA di			;7 "DI" means "DIRECTORY"
.DI:	T directory		;DIRECTORY.
	TA dis			;ABBREV FOR DISABLE
.DIS:	T disable		;DISABLE PRIV CMNDS
	T discard		;DISCARD TAPE INFORMATION
	T dismount		;DISMOUNT TAPE OR STRUCTURE
	T display		;7 display format line with ETYPE
MIC,<	T do>			;DO (FILE)
	TA e			;"E" MEANS "EXAMINE"
	T echo,,.ECHOL		;7 ECHO command line, use in TAKE files
	T edit			;EDIT (FILE) <FILE> (OUTPUT AS) <FILE>
	T enable		;ENABLE PRIV CMDS
	T end-access,,.ENDAC	;END-ACCESS (TO DIRECTORY) <NAME>
	T eof			;END OF FILE
MFRK,<	T erun>			;ERUN (EPHERMERAL)
	TA ex			;"EX" MEANS "EXECUTE"
.E:	T examine		;EXAMINE MEMORY CONTENTS
.EX:	T execute		;EXECUTE (FROM)
	T expunge		;EXPUNGE (DELETED FILES)
	TA f			;7 "F" means "FINGER"
	T fdirectory		;DIR, CRAM, EVERYTHING, NO HEADING
.F:	T finger		;7 FINGER users, pretty SYSTAT like command
CEF,<	T flush>		;716 FLUSH command-edit buffer
	T fork			;FORK <N>. AFFECTS /, \, ETC.
MFRK,<	T freeze>		;FREEZE (FORK)
	T get			;GET <FILE>
CEF,<	TA h			;716 "H" means HELP
.H:				;716
       >			;716
	T help			;HELP COMMAND
CEF,<	T history>		;716 history of EXEC commands
	TA i
	T iddt			;7 IDDT debugger
.I:	T information		;INFORMATION COMMANDS
MFRK,<	TA k			;7 "K" means "KEEP"
.K:				;7
	T keep			;KEEP (FORK)
       >
OLDF,<	IT kjob,,.LOGOU>	;7 KJOB is pseudo-abbrev for LOGOUT
	T kkjob			;7 fast logout
MIC,<	T kmic>			;KILL MIC PROCESS
	T load			;LOAD (FROM)
	T logout		;LOGOUT
	T merge,EASB		;MERGE <FILE>
	T modify		;MODIFY QUEUE REQUESTS
	T mount			;MOUNT TAPE OR STRUCTURE
MFRK,<	T name>			;NAME (FORK AS)
ONEON <EE,OZ>,<			;7
	T ndirectory>		;7 ITS style directory listing
	T no			;7 get rid of IDDT style debugger
PCLF,<	T original>		;PCL ORIGINAL EXEC COMMAND
ONEON <DECN,PLTD>,<		;713
	T plot>			;713 PUT FILES INTO PLOTTER QUEUE
	T pop			;POP EXEC LEVEL
PCLF,<				;715 
ONEON <DECN,LPTD>,<		;715
	TA pr>			;715 resolve new conflict
	T preserve		;PCL PRESERVE PCL ENVIROMENT
       >			;715
ONEON <DECN,LPTD>,<		;713
PCLF,<				;715
.PR:   >			;715
	T print			;PRINT
       >			;713
ONEON <CDPD,DECN,PTPD>,<	;713
	T punch>		;PUNCH CARDS/PAPER-TAPE
	T push			;PUSH EXEC LEVEL

XTND,<	T qdirectory,,.QD>	;QFD - DELETED FILES ONLY
	T r			;= RUN SYS:
XTND,<	T rdirectory>		;DIR, READ, SIZE, CHRON BY READ
	TA re			;7 "RE" means "REMARK"
	T receive		;RECEIVE (LINKS/ADVICE)
	T reenter		;REENTER
	T refuse		;REFUSE (LINKS/ADVICE)
.RE:				;7
	T remark		;ENTER REMARK MODE
	T rename		;RENAME (...) -- (TO BE) --
	T replace		;7 REPLACE EXEC fork 
	T reset			;RESET (FORK) NAME
	T retrieve		;RETRIEVE <FILES>
	T rewind		;REWIND
	T run			;RUN <FILE>. STARTS ENV FILE.
	TA s			;7 "S" means "SET"
	T save,EASB		;SHARABLE SAVE
.S:	T set			;SET COMMAND
	T skip			;SKIP
	T start			;START PROGRAM
	T submit		;SUBMIT
	T systat,,.SISTA	;SYSTEM STATUS PRINTOUT
	TA t			;7 "T" means "TERMINAL"
	T take			;TAKE (EXEC INPUT FROM) FILESPEC
	T talk			;TALK (TO)
	T tdirectory		;DIR, TIME W, CHRON W, REV
.T:	T terminal		;TERMINAL TYPE IS N
ALLON <OLDF,OZ>,<		;7
	IT time,ONEWRD,.DAYTI>	;7 TIME is pseudo-abbrev for DAYTIME, 2ndary
	TA tr			;7 "TR" means "TRANSLATE"
.TR:	T translate		;TRANSLATE BETWEEN DIRS AND PPNS
	T treplace		;7 replace top-level EXEC fork
	T type			;LIST FILE TO TTY
	T unattach		;DETACH REMOTE JOB
PCLF,<	TA und			;UND IS ABBREVIATION FOR UNDELETE
	T undeclare		;PCL Undefine PCL object
.UND:
      >
	T undelete		;UNDELETE <FILE>
MFRK,<	T unkeep>		;UNKEEP (FORK)
	T unload		;UNLOAD
	T vdirectory		;DIR, PROT, SIZ, LEN, TIM W, USER W
XTND,<	T wdirectory>		;DIR, SIZE, USER W, USER CRE, CHRON BY WRITE
	T whois,,.FINGE		;7 WHOIS user, verbose form of FINGER
        TEND

STAT,<IFG .-CTBL1-1000,<PRINTX COMMAND TABLE TO LARGE FOR STATISTICS>>

;PRIVILEGED COMMANDS PREFIXED WITH ^E
;   ONLY LEGAL FOR PRIV USERS WHO HAVE "ENABLE"D PRIV COMMANDS

CTBL2::	TABLE
	T cease,,ECEASE,WHLU!OPRU ;SYSTEM SHUTDOWN
	T create		;CREAT/MODIFY DIRECTORY
	T define,,EDEFIN,WHLU!OPRU ;CREATE LOGICAL NAME
	T eddt,ONEWRD!WHLU	;GO TO DDT LOOKING AT EXEC
	T print,,EPRINT		;PRINT DIRECTORY INFORMATION
	T quit,ONEWRD		;QUIT: EXIT TO SUPERIOR EXEC
	T reset,,.ERESE,WHLU!OPRU ;7 reset a device
	T send,WHLU!OPRU	;SEND (MESSAGE) TO ALL
	T set,,ESET		;SET DATE AND TIME
	T speak			;SPEAK (TO SYSJOB)
	TEND
;PSEUDO-INTERRUPT SYSTEM TABLES

;IN "SUBRS" ASSEMBLY:

;LEVEL TABLE: WHERE TO STORE PC'S FOR VARIOUS LEVELS
LEVTAB::LEV1PC
	LEV2PC
	LEV3PC

;CHANNEL TABLE
;   INDEXED BY CHANNEL NUMBER. XWD LEVEL,ADDRESS FOR EACH.
DEFINE DEFCH (LEVEL,ROUTIN,CHANEL)
   <IFN CHNS&1B<CHANEL>,<PRINTX ?CHANNEL TABLE OVERLAPS ITSELF>
    	CHNS==CHNS!1B<CHANEL>
	RELOC CHNTAB+CHANEL
	LEVEL,,ROUTIN>

	CHNS==:0
CHNTAB::
NONEWF,<DEFCH 1,MALINT,MALCHN>		;MAIL-WATCH INTERRUPT
NEWF,<	DEFCH 1,IITPSI,IITCHN>		;AUTO MAIL-WATCH & ALERTS
	DEFCH LV.IPC,IPCINT,IPCCHN	;1: IPCF INTERRUPT
	DEFCH LV.IPC,CCPSI,1		;ASSIGNED BY PROGRAM TO ^C - ^C
					;   INTERRUPT LEVEL MUST BE KEPT THE
					;   SAME AS IPCF INTERRUPT LEVEL TO
					;   PREVENT ^C OUT OF IPCF INTERRUPT, 
					;   WHICH WOULD PREVENT FURTHER IPCF
					;   MESSAGES, SINCE THE MONITOR ONLY
					;   GENERATES INTERRUPT WHEN NUMBER OF
					;   MESSAGES GOES FROM 0 TO 1. 
	DEFCH 1,ALOPSI,2		;2: ASSIGNED BY PROGRAM TO AUTO-LOGOUT
	DEFCH 3,USEPSI,3		;3: ASS BY PROG TO CHAR TO PRINT
					;   RUNTIME (^T) 
	DEFCH 2,TLMPSI,4		;4: TIME LIMIT EXCEEDED TRAP
	DEFCH 2,COBPSI,5		;5: ASS BY PROG TO CLEAR OUTBUF ON ^O
	DEFCH LV.TRP,TRPPSI,TRPCHN	;TRPCHN: JSYS OR UUO TRAP
	DEFCH LV.POV,PDLOV,.ICPOV	;PUSHDOWN OVERFLOW
	DEFCH LV.EOF,EOFPSI,.ICEOF	;END OF FILE
	DEFCH LV.DAT,DATPSI,.ICDAE	;FILE DATA ERROR
	DEFCH LV.QTA,QTAPSI,.ICQTA	;QUOTA EXCEEDED (OR DISK FULL)
	DEFCH LV.ILI,ILIPSI,.ICILI	;I>>, MR>>, MW>>, MX>>
	DEFCH 1,[TRAP (1,<Illegal memory READ>)],.ICIRD
	DEFCH 1,[TRAP (1,<Illegal memory WRITE>)],.ICIWR
	DEFCH 1,INFTRM,.ICIFT		;INFERIOR FORK TERMINATION
	DEFCH 1,MSEPSI,.ICMSE		;MACHINE SIZE EXCEEDED
	DEFCH LV.ESC,ESCPSI,ADVCHN 	;ESCAPE CHARACTER FOR ADVISE
	DEFCH LV.PCL,PCMPSI,PCLCHI 	;PCL Input ready
	DEFCH LV.PCL,PCMPSO,PCLCHO 	;PCL Output ready
	DEFCH LV.CE,.CEPSI,CECHN 	;716 command-edit PSI character

	RELOC CHNTAB+^D36	;LEAVE ROOM FOR CHANNEL TABLE
;FIELD DESCRIPTOR BLOCKS FOR TOP LEVEL COMMANDS

;7 renamed, add ^L, simple command level added, wording changed, lazy fetures
;7 inspite of what it says here CTRL/L is actually handled by COMND%

;720 not logged in
$CM0::	FLDDB. .CMKEY,,CTBL0,<a command,>,,[
	FLDDB. .CMUSR,,,<a LOGIN>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]

;7 simple command level, lazy-restart only kept forks
$CM1SK::FLDDB. .CMKEY,,CTBL1S,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,KEPNMS,<a kept fork name,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]

;7 simple command level
$CM1S::
NOMFRK,<FLDDB. .CMKEY,,CTBL1S,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]
       >
MFRK,<	FLDDB. .CMKEY,,CTBL1S,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]
       >

;7 simple command level, no lazy features
$CM1SN::FLDDB. .CMKEY,,CTBL1S,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]

;7 lazy-restart only kept forks
;7 CM1DB::
$CM1K::	FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,KEPNMS,<a kept fork name,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]]

;7 normal
$CM1::				
NOMFRK,<FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]
       >
MFRK,<	FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]]
       >

;7 no lazy features
$CM1N::	FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]

;7 enabled, lazy-restart only kept forks
;7 CM1DBE::
$CM1EK::FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <>,<a "^E">,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,KEPNMS,<a kept fork name,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]]]

;7 enabled
$CM1E::
NOMFRK,<FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <>,<a "^E">,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]]
       >
MFRK,<	FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <>,<a "^E">,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
	FLDDB. .CMFIL,CM%SDH,,<a command or MIC file name>,,[
	FLDDB. .CMDIR,,,<a CONNECT>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]]]]
       >

;7 enabled, no lazy features
$CM1EN::FLDDB. .CMKEY,,CTBL1,<a command,>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <>,<a "^E">,,[
	FLDDB. .CMFIL,CM%SDH,,<a system program name>,,[
	FLDDB. .CMTOK,CM%SDH,TXTPTR <
>,<a "^L">]]]
;"INFORMATION" FIELD DESCRIPTORS

;720 not logged in
$INFO0::TABLE
ARPA,<	T ARPAnet,,.IARPA>		;713
CHA,<	T CHAOSnet,,.ICHA>		;713
	T command-level,ONEWRD,.EXECM
XTND,<	T downtime,ONEWRD>		;ERUN MHALT (E-V 2)
DECN,<	T DECnet,,.IDECN>		;713
	T job-status,ONEWRD,.JOBST
	T mail,,.MALST
EE,<	T monitor-statistics,ONEWRD,MONSTA>
ONEON <ARPA,CHA,DECN>,<			;713
	T network,ONEWRD,.INETW>	;713
	T terminal-mode,,TRMPNT
	T version,ONEWRD
	TEND

;7 simple command level
$INFOS::TABLE
	T command-level,ONEWRD,.EXECM
	T defaults,,.INDEF
	T directory,,.INDIR
	T disk-usage,ONEWRD,.DSKST
XTND,<	T downtime,ONEWRD>
MFRK,<	T fork-status,ONEWRD,.FRKST>
	T job-status,ONEWRD,.JOBST
	T logical-names,,.LNLIS
	T mail,,.MALST
	T output-requests,,.IMR
	T program-status,ONEWRD,.RUNST
	T system-status,ONEWRD,SYSINF
	T terminal-mode,,TRMPNT
	T version,ONEWRD
	TEND

;7 normal, NOLGs removed
$INFO::	TABLE
	T address-break,ONEWRD,.ADBRK
NEWF,<	T alerts,,.ALRST>
	T archive-status,,.ARSTS
ARPA,<	T ARPAnet,,.IARPA>		;713
	T available
	T batch-requests,,.IBR
;CDRD,<	T card-reader-input-set,ONEWRD,CRDINF> ;713 CRDINF isn't written
CHA,<	T CHAOSnet,,.ICHA>		;7
	T command-level,ONEWRD,.EXECM
	TA d,.INFD			;7 "D" means "DISK"
DECN,<	T DECnet,,.IDECN>		;713
	T defaults,,.INDEF
	T directory,,.INDIR		;PRINT DIRECTORY PARAMETERS
.INFD:					;7
	T disk-usage,,.DSKST 
XTND,<	T downtime,ONEWRD>		;ERUN MHALT (E-V 2)
	T error-messages,,.IERRO	;7 print JSYS error messages
MFRK,<	TA f,.INFF			;ALIAS FOR FILE STATUS
.INFF:
       >
	T file-status,,.FILST
MFRK,<	T fork-status,ONEWRD,.FRKST>
	T job-status,ONEWRD,.JOBST
	T logical-names,,.LNLIS
	TA ma,.INFMA
.INFMA:	T mail,,.MALST
	T mail-watch,ONEWRD,.IMWAT	;7 list watched mailboxes and msg count
	T memory-usage,ONEWRD,.MEMST
	T monitor-statistics,ONEWRD,MONSTA
	T mount-requests,,.IMR
ONEON <ARPA,CHA,DECN>,<			;713
	T network-status,ONEWRD,.INETW>	;713 show status of all networks
	T output-requests,,.IPR
PCLF,<	T pcl-objects,ONEWRD,.PCLOB>	;PCL
	T program-status,ONEWRD,.RUNST
	T psi-status,ONEWRD,.PISTA
	T registers,ONEWRD,.INREG	;7 DISPLAY registers
	T retrieval-requests,,.IRR
	T spooled-output,ONEWRD,SPLINF	;7 SPR #:20-16093 correct spelling
	T structure,,.STRST
	T subsystem-statistics,ONEWRD,SUBSTA
	T system-status,ONEWRD,SYSINF
	T tape-parameters,ONEWRD,TAPINF
	T terminal-mode,,TRMPNT
PCLF,<	T variable,,.PCLVR>		;PCL
	T version,ONEWRD
	T volumes,,IVOL
	TEND

;"INFO DEFAULT" FIELD DESCRIPTORS

$DEF::	TABLE
	T all,ONEWRD,.IDALL
ONEON <CDPD,CDRD,DECN>,<		;713
	T cards,ONEWRD,.IDC>		;713
	T compile-switches,ONEWRD,.IDCS
PCLF,<	T declare,ONEWRD,.IDCS>		;715
ONEON <DECN,PTPD,PTRD>,<		;713
	T paper-tape,ONEWRD,.IDP>	;713
ONEON <DECN,PLTD>,<			;713
	T plot,ONEWRD,.IDPL>		;713
ONEON <DECN,LPTD>,<			;713
	T print,ONEWRD,.IDPRT>		;713
MFRK,<	T program,,.IDPRG>
	T submit,ONEWRD,.IDS
	T take,ONEWRD,.IDTAK
	TEND
;"FORK" FIELD DESCRIPTORS

$FRKNM::
NOMFRK,<FLDDB. .CMNUM,CM%SDH,10,<an octal fork number>,,[
	FLDDB. .CMCFM]
       >
MFRK,<	FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
	FLDDB. .CMNUM,CM%SDH,10,<an octal fork number>,,[
	FLDDB. .CMCFM]]
       >

;START OF THE RESET COMMAND. IT'S HERE BECAUSE RESET TAKES ARGUMENTS UNDER
;   MULTIFORKING BUT NONE WITHOUT MULTIFORKING. THE PROMPTS AND ERROR MESSAGES
;   FOR THE LATTER DON'T LOOK RIGHT WITHOUT THIS CONDITIONAL. 

NOMFRK,<
.RESST::CONFIRM			;JUST CONFIRM THE COMMAND
	JRST RESET0		;AND GO RESET ALL
       >
MFRK,<
.RESST::NOISE <fork>
	MOVEI B,[FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
		FLDDB. .CMNUM,CM%SDH,10,<an octal fork number>,,[
		FLDDB. .CMTOK,CM%SDH,TXTPTR <*>,<* for all forks>,,[
		FLDDB. .CMTOK,CM%SDH,TXTPTR <.>,<. for current fork>,,[
		FLDDB. .CMCFM,CM%SDH,,<a carriage return for all unkept 
forks>]]]]]
	HRRZ A,FRKNMS		;GET NUMBER OF FORK NAMES
	SKIPN A			;NONE?
	 HRRZ B,.CMFNP(B)	;YUP, SKIP FORKS, START WITH #
	CALL FLDSKP		;PARSE ARG
	 CMERRX <Fork name, number, * or carriage return required>
	GTFLDT D		;GET ARG TYPE
	CAIN D,.CMCFM		;JUST CR?
	 JRST RESET0		;YES - GO HANDLE
	CAIE D,.CMTOK		;* := ALL FORKS?
	 JRST .RESE2		;NO - FIND OUT WHICH ONE
	LDB A,[FIRCHR ATMBUF]	;YES - LOOK AT TOKEN PARSED
	CONFIRM			;CONFIRM FIRST
	JRST .RESS1
      >
;"SET" FIELD DESCRIPTORS
;7 names changed, simple command level

;720 not logged in
$ST0::	TABLE			
	T late-clear-typeahead,,.CIDLY	
	T no,,.SETNO
	T time-limit,,.STMLM
	T wake-every-field,ONEWRD,.STWEF ;7 don't wait for CR to parse
	TEND

;720 not logged in "NO" table 
$ST0N::	TABLE
	T late-clear-typeahead,,.CIDLY
	T time-limit,,.NOTIM
	T wake-every-field,ONEWRD,.STWEF ;7 wait for CR to parse
	TEND

;7 simple command-level
$ST1S::	TABLE
	T default,,.SEDEF
	T directory,,.SDIR
	T file,,.SFILE
XTND,<	IT keep-fork,,.KFRKC>
ALLON <MFRK,OLDF>,<			;7
	IT lazy-continue,,.STLRS>	;7 secondary usage
	IT lazy-features,ONEWRD,.STLZF	;7 don't tell them more than they need
MFRK,<	IT lazy-restart,,.STLRS>	;7 don't tell them more than they need
	T no,,.SETNO
	IT noisy-forks,ONEWRD,.STNFK	;7 don't tell them more than they need
	TEND

;7 simple command-level "NO" table
$ST1SN::TABLE
	T default,,.NODEF
XTND,<	IT keep-fork,,.KFRKC>
	IT lazy-features,ONEWRD,.STLZF	;7 don't tell them more than they need
	IT noisy-forks,ONEWRD,.STNFK	;7 don't tell them more than they need
	IT simple-command-level,ONEWRD,.STSCL ;7 hidden way out
	TEND

;720 normal, NOLGs removed
;7 $SET0::
$ST1::	TABLE
	T account,,.CHANG		;SET ACCOUNT
	T address-break,,.ADDRE		;SET ADDRESS-BREAK
NEWF,<	T alert				;SET ALERT
	T automatic			;SET AUTOMATIC (MAIL-WATCH AND ALERTS)
       >
CDRD,<	T card-reader-input-set,,CRDSET> ;713 SET CARD-READER-INPUT-SET (TO)
PCLF,<	T command-trace,,.CTRAC>	;PCL PERFORMED COMMAND TRACE
	T control-c-capability,,.CTRLC	;SET ^C ALLOWED
	T default,,.SEDEF		;SET DEFAULT (FOR)
	T directory,,.SDIR		;SET DIRECTORY
CEF,<	T edit-mode,,.STCEM>		;716 command-editor mode
	T entry-vector,,.ENTRY		;SET PROGRAM ENTRY-VECTOR
MFRK,<	T fdb-fork-control,,.STFFC>	;7 use autokeep, ephemeral FDB bits
	T file,,.SFILE			;SET FILE
PCLF,<	T integer-variable,,SINVAR>	;PCL
CEF,<	T interrupt-character,,.STICH>	;716 command-edit PSI character
XTND,<	T keep-fork,,.KFRKC>		;SET KEEP-FORK (ON <CTRL-C>)
MFRK,<	TA LA,.SETLA>			;7 "LA" means "SET LAZY-RESTART"
	T late-clear-typeahead,,.CIDLY	;SET (DELAYED CLEAR)
ALLON <MFRK,OLDF>,<			;7
	IT lazy-continue,,.STLRS>	;7 secondary usage
	T lazy-features,ONEWRD,.STLZF	;7 short command forms
MFRK,<
.SETLA:	T lazy-restart,,.STLRS>		;7 do it for kept, all, forks
DECN,<	T location>			;SET LOGICAL LOCATION TO NODE NAME
NONEWF,<T mail-watch,ONEWRD,.MWATC>	;SET MAIL-WATCH
NEWF,<	T mail-watch,,.MWATC>	    ;SET MAIL-WATCH (FOR USER) USRNAM (COUNT) N
	T no,,.SETNO			;SET NO
	T noisy-forks,ONEWRD,.STNFK	;7 print fork status msgs
	T page-access,,.PAC		;SET PAGE-ACCESS
	T pass-capabilities,,.STPCI	;7 pass capabilities to inferiors
MFRK,<	T program,,PROG>		;SET PROGRAM
CEF,<	T recording,,.STCER>		;716 recording for command-editor
	T register,,.STREG		;7 DISPLAY command registers
MFRK,<	T restart,,.STRES>		;7 set lazy-restart vector
	T retrieval-wait,,.OFL		;SET RETRIEVAL-WAIT (FOR OFFLINE FILES)
	T session-remark,,SETSRM	;SET SESSION REMARK
	T simple-command-level,ONEWRD,.STSCL ;7 set simple-command-level
	T spooled-output,,SPLSET	;SET SPOOLED-OUTPUT (TO)
	T sticky-file-defaulting,,.STSFD ;7 set special file defaulting
PCLF,<	T string-variable,,SSTVAR>	;PCL
	T tape				;SET TAPE
	T terminal,,ETERMI		;7 SET TER pseudo-abbrev for ^ESET TER
	T time-limit,,.STMLM		;TIME (TO) NUMBER
	T trap				;SET TRAP
	T typeout
	T UUO-simulation,,.PAXL		;SET UUOS ALLOWED
	T wake-every-field,ONEWRD,.STWEF ;7 don't wait for CR to parse
	TEND

;720 "NO" table, NOLGs removed
;7 $SETN::
$ST1N::	TABLE			
	T address-break,,.ADDRE		;SET NO ADDRESS BREAK
NEWF,<	T alert				;SET NO ALERT
	T automatic		      ;SET NO AUTOMATIC (MAIL-WATCH AND ALERTS)
       >
PCLF,<	T command-trace,,.CTRAC>	;PCL No Performed command trace
	T control-c-capability,,.CTRLC	;NO ^C ALLOWED
	T default,,.NODEF		;SET NO DEFAULT
CEF,<	T interrupt-character,,.STNIC>	;716 no command-editor PSI character
XTND,<	T keep-fork,,.KFRKC>		;SET NO KEEP-FORK (ON <CTRL-C>)
	T late-clear-typeahead,,.CIDLY	;EARLY CLEAR
	T lazy-features,ONEWRD,.STLZF	;7 no short command forms
XTND,<	T login-mail,ONEWRD,.NOLM>	;SET NO LOGIN-MAIL
NONEWF,<T mail-watch,ONEWRD,.MWATC>	;SET NO MAIL-WATCH
NEWF,<	T mail-watch,,.MWATC>		;SET NO MAIL-WATCH (FOR USER) USRNAM
	T noisy-forks,ONEWRD,.STNFK	;7 no fork-status msgs
	T pass-capabilities,,.STPCI	;7 no capabilities to inferiors
CEF,<	T recording,,.STCER>		;716 no recording for command-edit
	T retrieval-wait,,.OFL	     ;SET NO RETRIEVAL-WAIT (FOR OFFLINE FILES)
	T sticky-file-defaulting,,.STSFD ;7 no special file defaulting
	T time-limit,,.NOTIM		;CLEAR TIME LIMIT
	T trap,,NTRAP			;SET NO TRAP
	T UUO-simulation,,.PAXL		;NO UUOS ALLOWED
	T wake-every-field,ONEWRD,.STWEF ;7 wait until CR to start parse
	TEND
;"SET DEFAULT" FIELD DESCRIPTORS
TDEFAU::TABLE
	T cards,,.SDC
	T compile-switches,,.SDCS
PCLF,<	T declare,,.SDDCL>		;PCL
ONEON <DECN,PTPD,PTRD>,<		;713
	T paper-tape,,.SDT>		;713
ONEON <DECN,PLTD>,<			;713
	T plot,,.SDPL>			;713 SET DEFAULTS (FOR) PLOT
ONEON <DECN,LPTD>,<			;713
	T print,,.SDP>			;713
MFRK,<	T program,,SDPROG>		;SET DEFAULT (FOR) PROGRAM
	T submit,,.SDS			;SET DEFAULT (FOR) SUBMIT
	T take,,.TKD			;SET DEFAULT (FOR) TAKE
	TEND

;"SET NO DEFAULT" FIELD DESCRIPTORS
$NODEF::TABLE
ONEON <CDPD,CDRD,DECN>,<		;713
	T cards,,.SNDCP>		;713
	T compile-switches,,.SNDCS	;SET NO DEFAULT COMPILE-SWITCHES
ONEON <DECN,PTPD,PTRD>,<		;713
	T paper-tape,,.SNDTP>		;713
ONEON <DECN,PLTD>,<			;713
	T plot,,.SNDPL>			;713 SET NO DEFAULTS (FOR) PLOT
ONEON <DECN,LPTD>,<			;713
	T print,,.SNDP>			;713
MFRK,<	T program,ONEWRD,SNDPRG>	;SET NO DEFAULT (FOR) PROGRAM
	T submit,,.SNDS			;SET NO DEFAULT (FOR) SUBMIT
	TEND

;"SET FILE" FIELD DESCRIPTORS
$SFILE::TABLE
	T account			;SET FILE ACCOUNT (OF FILE) - (TO) -
MFRK,<	T autokeep>			;7 automatically kept fork 
	T backup			;115 ;114 SET FILE BACKUP (TO TAPE)
MFRK,<	T ephemeral,,.EPHM>		;SET FILE EPHEMERAL
XARC,<	T expired,,.FEXP>		;SET FILE EXPIRED
	T generation-retention-count,,.FILEV ;SET FILE VERSION-RETENTION-COUNT
	T invisible			;SET FILE INVISIBLE <FILEGROUP>
	T no,,.SFNO			;SET FILE NO
	T not-deletable,,.perpe		;114 ;7 never delete
XARC,<	T offline-expiration,,.FLINX	;SET FILE OFFLINE-EXPIRATION
	T online-expiration,,.FLONX	;SET FILE ONLINE-EXPIRATION
       >
	TA pe				;115
	TA per,.pe			;115
.pe:	T permanent			;115 ;7 never remove FDB
	IT perpetual,,.perpe		;114
	T prohibit,WHLU!OPRU,.FPROH	;SET FILE PROHIBIT (MIGRATION OF FILES)
	T protection			;SET FILE PROTECTION (OF FILE) - (TO) -
XARC,<	T resist,,.FRESI>		;SET FILE RESIST (MIGRATION OF FILES)
	T temporary			;7 disappears after logging out
	T visible			;SET FILE VISIBLE <FILEGROUP>
	TEND

;"SET FILE NO" FIELD DESCRIPTORS
$SFNO::	TABLE
MFRK,<	T autokeep>			;7 won't be kept automatically
	T backup			;115 ;114 SET FILE NO BACKUP (TO TAPE)
MFRK,<	T ephemeral,,.EPHM>
OLDF,<	IT invisible,,.VISIB>		;7 secondary usage
	T not-deletable,,.perpe		;114 ;7 can delete
	TA pe				;115
	TA per,.pe			;115
	T permanent			;7 can delete FDB
	IT perpetual,,.perpe		;114
	T prohibit,WHLU!OPRU,.FPROH
XARC,<	T resist,,.FRESI>
	T temporary			;7 normal file
OLDF,<	IT visible,,.INVIS>		;7 secondary usage
	TEND
;OPTIONS FOR THE "CONTINUE" COMMAND

NOMFRK,<
$CONFD::FLDDB. .CMKEY,,$CMODE,,,[
	 FLDDB. .CMCFM]

$CONF1::FLDDB. .CMCFM
       >

MFRK,<				;7 put fork name before mode
$CONFD::FLDDB. .CMKEY,,FRKNMS,<a fork name,>,,[
	FLDDB. .CMKEY,,$CMODE,,,[
	FLDDB. .CMNUM,CM%SDH,10,<an octal fork number>,,[
	FLDDB. .CMCMA,,,,,[
	FLDDB. .CMCFM]]]]

;AFTER THE FIRST OPTION ONLY THE FOLLOWING ARE ALLOWED:
$CONF1::FLDDB. .CMCMA,,,,,[
	FLDDB. .CMCFM]
       >

;DUMMY ENTRIES WHEN PCL NOT PRESENT

NOPCLF,<
PCMXCT::
PCMPSI::
$SDEF::
PCMPSO::
PCMSVP::
PCMSVE::
PCMPOS::
PCMPOP::
PCIGEV::
NPCLIO:: RETSKP			;715 JFN is never a PCL I/O JFN
.IDDCL:: RET			;715 no defaults for DECLARE
       >

LITSCA:				;713 debugging aid: literals label
	END