Google
 

Trailing-Edge - PDP-10 Archives - BB-5255D-BM - language-sources/oprcmd.mac
There are 40 other files named oprcmd.mac in the archive. Click here to see a list.
TITLE	OPRCMD - Command Tables for ORION
SUBTTL	Last update:	5-Nov-79/PJT

;
;
;
;           COPYRIGHT (c) 1975,1976,1977,1978,1979 BY
;           DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA.
;
;     THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
;     AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
;     AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS
;     SOFTWARE  OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
;     OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO  TITLE  TO
;     AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
;     
;     THE INFORMATION  IN  THIS  SOFTWARE  IS  SUBJECT  TO  CHANGE
;     WITHOUT  NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
;     BY DIGITAL EQUIPMENT CORPORATION.
;     
;     DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
;     OF  ITS  SOFTWARE  ON  EQUIPMENT  WHICH  IS  NOT SUPPLIED BY
;     DIGITAL.


	SALL
	SEARCH	GLXMAC
	SEARCH	ORNMAC
	PROLOG(OPRCMD)

	CMDEDT==:75	;EDIT LEVEL



	.DIRECTIVE FLBLST



	INTERN	OPRCMD	;MAKE VECTOR ADDRESS AVAILABLE
OPRCMD:	EXP	2	;SIZE
	EXP	INITCM	;POINTER TO THE INI FUNCTION
	EXP	CMDFDB	;TOP LEVEL DISPATCH
SUBTTL	Table of Contents


;               TABLE OF CONTENTS FOR OPRCMD
;
;
;                        SECTION                                   PAGE
;    1. Authors: Bill Hardy & Murray Berkowitz   8-Oct-79.........   1
;    2. Table of Contents.........................................   2
;    3. Revision History..........................................   3
;    4. Special Macro Definitions.................................   4
;    5. $UNIT Macro...............................................   4
;    6. $STNUM Macro..............................................   4
;    7. $STREAM Macro.............................................   4
;    8. $EXPL Macro Definition....................................   5
;    9. $JOBSWI Macro Definition..................................   5
;   10. $URANGE Macro Definition..................................   6
;   11. $SRANGE Macro Definition..................................   6
;   12. Subroutine Macros.........................................   7
;   13. Command Dispatch..........................................   8
;   14. Argument Subroutines......................................   9
;   15. START Command Tables......................................  10
;   16. CONTINUE Command Tables...................................  11
;   17. SHUTDOWN Command Tables...................................  11
;   18. STOP Command Tables.......................................  11
;   19. ABORT Command Tables......................................  12
;   20. Tables for HOLD and RELEASE Commands......................  13
;   21. HOLD Command Tables.......................................  13
;   22. RELEASE Command Tables....................................  13
;   23. DEFINE COMMAND............................................  14
;   24. CANCEL COMMAND............................................  15
;   25. MODIFY COMMAND............................................  16
;   26. SHOW Command Tables.......................................  17
;   27. SHOW STATUS...............................................  18
;   28. LOCK/UNLOCK COMMAND.......................................  19
;   29. SHWNOD  SHOW STATUS/PARAMETERS NODE.......................  20
;   30. RESPOND Command Tables....................................  21
;   31. REQUEUE Command Tables....................................  22
;   32. BACKSPACE Command Tables..................................  23
;   33. FORWARDSPACE Command Tables...............................  23
;   34. ALIGN Command Table.......................................  24
;   35. SUPPRESS Command Tables...................................  25
;   36. ROUTE Command Tables......................................  26
;   37. SEND Command Tables.......................................  27
;   38. SET Command Tables........................................  28
;   39. SET COMMAND FOR -20 Tape and Disk.........................  29
;   40. SET ONLINE COMMAND........................................  30
;   41. SETINI  SET Initialize Command for TAPE...................  31
;   42. SETNOD  SET NODE COMMAND TABLES...........................  32
;   43. SETSCH  SET SCHEDULER COMMAND FOR -20.....................  33
;   44. ENABLE Command Tables.....................................  34
;   45. DISABLE Command Tables....................................  34
;   46. ENACLS  ENABLE CLASS SCHEDULER............................  35
;   47. CLOSE Command Tables......................................  36
;   48. DEFINE Command Tables.....................................  36
;   49. REPORT Command Tables.....................................  37
;   50. Mount Command.............................................  38
;   51. Identify command..........................................  39
;   52. Switch Command............................................  40
;   53. Dismount Command..........................................  41
;   54. Unload Command............................................  41
;   55. Recognize Command.........................................  41
;   56. PUSH Command..............................................  42
;   57. HELP Command..............................................  43
SUBTTL	Revision History

COMMENT	\
Edit      Date	 	Reason
----	  ----		-------------------------------------

0001	29-Jun-78	1)Use $DEFAULT for CLOSE command
			2)Eliminate DEFINE command.
			3)Add REPORT command.

0002	 7-Jul-78	1)Change PAUSE command back to STOP.
			2)Make SHUTDOWN command a logical STOP
			  scheduling function.

0003	10-Jul-78	1)Redo ROUTE Command.
0004	13-Jul-78	1)Implement range checking.
			2)Modify ENABLE/DISABLE commands
			3)Add node to node function in ENABLE command.
			4)Invent a SHOW QUEUES command.
0005	13-Jul-78	1)Make START command take an optional device
			  Name to support tapes.
0006	20-Jul-78	Rework the CANCEL syntax.
0007	31-Jul-78	Make minor cleanup fixes.
0010	5-Sept-78	Add the EXIT Command
0011	27-Oct-78	Add -20 Tape and Disk Commands
0012	30-Nov-78	Add Request Id to replace JOBNAME and SEQUENCE number
0013	1-Dec-78	Add DELETE Command
0014	1-Dec-78	Add SHOW OPERATOR Command and make SEND ALL allow
			only one line for this release
0015	5-Dec-78	Change SHOW STATUS and SHOW PARAMETERS
0016	7-Dec-78	Change HOLD, RELEASE, MODIFY, AND DELETE
0017	5-Jan-79	Change KEYTAB and SWITAB to ORNDSP and ORNSDP
0020	5-Jan-79	Add /SHORT to SHOW STATUS and SHOW QUEUES have a
			/NODE SWITCH
0021	17-JAN-79	MAKE USE OF $KEY AND ORNKEY AND ORNSWI WHERE POSSIBLE
			FOR TABLES ALL GOING TO SAME PLACE
0022	18-Jan-79	Add HELP Command
0023	19-Jan-79	Allow Limited Exceeded Action for Card-Punches,
			Paper-Tape-Punches, and Plotters
			Add New ENABLE Code
0024	24-Jan-79	add SET ONLINE and convert to TOPS10 and TOPS20 macros
0025	26-JAN-79	MERGE IN HELP ROUTINE
0026	29-JAN-79	REMOVE SHOW PARAMTERS FOR READERS
0027	2-FEB-79	CHANGE SHOW STATUS TAPE DRIVES
0030	6-FEB-79	ADD DN60 CODE FOR DEFINE, SET AND SHUTDOWN
0031	12-FEB-79	FIX HELP SUPPORT ROUTINE
0032	21-Feb-79	Make Define Command take Line and Port in Octal
0033	21-Feb-79	Allow only one File for FORWARDSPACE and BACKSPACE
			commands
0034	22-Feb-79	Add new Helpum Code
0035	23-Feb-79	Add SHOW QUEUE RETRIEVIAL Requests
0036	27-Feb-79	Change Mount Command to have Keyword STRUCTURE
0037	28-Feb-79	Add SET command to Initialize Tape
0040	5-Mar-79	Add PUSH Command for the -20
0041	7-MAR-79	Bytes per Message for Set Node command
			and add Unlabled to Set Initialize
0042	8-Mar-79	Rework Enable Output display Tables
0043	25-Mar-79	Add IDENTIFY Command for Tape and remove all 
			Mount options for Tape
			Add DELETE Command for Mounts and Structures
0044	6-Apr-79	Allow Ranges of 1:1 etc.. so that absolute options
			can be set
0045	10-Apr-79	Add new MOUNTR switches for TAPE and DISK
			for SHOW STATUS and remove SHOW PARAMETERS
0046	19-Apr-79	Change key outputs in SET TERM TYPE to .TTxxx
0047	23-Apr-79	Add -20 Scheduler Commands
0050	30-Apr-79	Correct SET Disk Drive Command. No Initialize  supported
0051	15-May-79 	Have SEND command accept /NODE: for Batch
0052	30-May-79	Add the WAIT command to the Command Tables
0053	8-Jun-79	Add SHOW STATUS/PARAMETERS NETWORK-NODE and
			START NODE command
0054	2-Jul-79	Change SHOW DAYTIME to SHOW TIME and add 
			ENABLE/DISABLE FILE-RETRIEVIAL-WAITs on the -20
0055	5-Jul-79	Change ">" and "<" to octal 76 and 74 to avoid macro bug
0056	6-Jul-79	Change the CANCEL Command to ABORT and DELETE command to
			CANCEL
			Make the WAIT command invisible

0057	9-Jul-79	Remove the MOUNT command
0060	11-Jul-79	Remove the UNLOAD command and create new form of 
			DISMOUNT command
0061	23-Aug-79	Add SET NODE xx SIGNON-REQUIRED
					NO-SIGNON-REQUIRED
0062	28-Aug-79	Remove -20 conditionals on SHOW STATUS DISK command
0063	10-SEPT-79	CHANGE HELP TEXT FOR CLEAR-SEND DELAY TO JIFFIES FROM
			MILLISECONDS
0064	11-Sept-79	On Cancel Mount-Requests check for device before
			Checking for a request number inorder to allow
			structures that begin with a number
0065	12-Sept-79	Remove Transparency from IBM SET NODE command
0066	5-Oct-79	Add Transparency again and make SET ONLINE 
			on -20 take all Octal Numbers
0067	8-Oct-79	Add Commands for MDA
				ENABLE AUTOMATIC-STRUCTURE-RECOGNITION
				ADD (Structure) foo (to) SYSTEM-SEARCH-LIST
				ADD (Structure) foo (to) Active-Swap-list	
				Lock/unlock (structure) foo (at) time/date
				SHOW STATUS STRUCTURES
				DISMOUNT /REMOVE

0070	22-Oct-79		Move HELP routine to OPRPAR as P$HELP
0071	23-Oct-79		Remove AUTOMATIC from
				AUTOMATIC-VOLUME-RECOGINTION and
				AUTOMATIC-STRUCTURE-RECOGNITION for
				TOPS10 only.  (Also remove invisible
				KEYWORDS ASR and AVR)
0072	24-Oct-79		Add /USER switch to SHO STA 
0073	29-Oct-79		Make Keyword table for SHOW STATUS singular
0074				Change all FTUUOS and FTJSYS to TOPS10 
				and TOPS20.  Remove search of PARUNV.
0075	21-Nov-79		Make Backspace /file and Forwardspace file
				require confirmation.
\ ;End of revision history
SUBTTL	Special Macro Definitions
SUBTTL	$UNIT Macro
SUBTTL	$STNUM Macro
SUBTTL	$STREAM Macro


;	!=======================================================!
;	!                   $UNIT (NEXT_PDB)                    !
;	!-------------------------------------------------------!
;	!               PARSE A UNIT NUMBER ONLY                !
;	!=======================================================!

;DEFINE A MACRO TO DO THE PARSING FOR A SINGLE UNIT NUMBER
DEFINE	$UNIT(NEXT,%UNI01,%UNI02),<
	.XCREF	%UNI01,%UNI02
	SUPPRESS %UNI01,%UNI02
	$NOISE	(%UNI01,<Unit Number>)
%UNI01:	$NUMBER	(%UNI02,^D10,<Unit Number (/NODE:)>,<$ACTION(CHKVAL)>)
%UNI02:	$NODE(NEXT)
>	;END $UNIT DEFINITION




;	!=======================================================!
;	!                   $STNUM (NEXT_PDB)                   !
;	!-------------------------------------------------------!
;	!              PARSE A STREAM NUMBER ONLY               !
;	!=======================================================!

;DEFINE A MACRO TO DO THE PARSING FOR A SINGLE STREAM NUMBER
;WITHOUT AN OPTIONAL NODE SPECIFICATION
DEFINE	$STNUM(NEXT,%STN01),<
	.XCREF	%STN01
	SUPPRESS %STN01
	$NOISE	(%STN01,<Stream Number>)
%STN01:	$NUMBER	(NEXT,^D10,<Stream Number>,$ACTION(CHKVAL))
>	;END $STNUM DEFINITION




;	!=======================================================!
;	!                  $STREAM (NEXT_PDB)                   !
;	!-------------------------------------------------------!
;	!           PARSE A STREAM WITH OPTIONAL NODE           !
;	!=======================================================!

;DEFINE A MACRO TO DO THE PARSING FOR A SINGLE STREAM NUMBER
DEFINE	$STREAM(NEXT,%STR01,%STR02),<
	.XCREF	%STR01,%STR02
	SUPPRESS %STR01,%STR02
	$NOISE	(%STR01,<Stream Number>)
%STR01:	$NUMBER	(%STR02,^D10,<Stream Number (/NODE:)>,$ACTION(CHKVAL))
%STR02:	$NODE(NEXT)
>	;END $STREAM DEFINITION
SUBTTL	$EXPL Macro Definition
SUBTTL	$JOBSWI Macro Definition




;	!=======================================================!
;	!               $JOBSWI (NEXT,<KEYWORD-LIST>)           !
;	!-------------------------------------------------------!
;	!             JOBNAME AND SEQUENCE SWITCHES             !
;	!=======================================================!

;DEFINE A <JOB-SWITCHES> DEFINITION MACRO
DEFINE $JOBSWI (ZZZ,ALTLNK,%A,%B,%C)<
	.XCREF	%A,%B,%C
	SUPPRESS %A,%B,%C
%A:	$SWITCH(%C,%B,<ALTLNK>)
%B:	$STAB
	ORNSWI(REQUEST-ID:,REQ)
	$ETAB
%C:	$NUMBER(ZZZ,^D10,<Request Number>,$ACTION(CHKPOS))
>



;	!=======================================================!
;	!            $EXPL (NEXT_PDB,<KEYWORD-LIST>)            !
;	!-------------------------------------------------------!
;	!                     /REASON:TEXT                      !
;	!=======================================================!

;DEFINE A <EXPL> DEFINITION MACRO
DEFINE $EXPL (NXTLNK,ALTADR,%A,%B,%C)<
	.XCREF	%A,%B,%C
	SUPPRESS %A,%B,%C
	$SWITCH(%B,%A,ALTADR)
%A:	$STAB
	ORNSWI	(<REASON:>,RSN)
	$ETAB
%B:	$CRLF	(<$ALTER(%C),$ACTION(TXTLIN##),$HELP(<confirm for multiple line response>)>)

%C:	$CTEXT	(CONFRM,<single line response>)
>
SUBTTL	$URANGE Macro Definition
SUBTTL	$SRANGE Macro Definition

;	!=======================================================!
;	!                  $URANGE (NEXT_PDB)                   !
;	!-------------------------------------------------------!
;	!         PARSE A UNIT RANGE WITH OPTIONAL NODE         !
;	!=======================================================!

;DEFINE A MACRO TO DO THE PARSING FOR A RANGE OF UNIT NUMBERS
DEFINE	$URANGE(NEXT,%URG01,%URG02),<
	.XCREF	%URG01,%URG02
	SUPPRESS %URG01,%URG02
	$NOISE	(%URG01,<Unit Number>)
%URG01:	$RANGE(%URG02,<Number or Range (n:m)(/NODE:)>)
%URG02:	$NODE(NEXT)
>	;END $URANGE DEFINITION

;	!=======================================================!
;	!                  $SRANGE (NEXT_PDB)                   !
;	!-------------------------------------------------------!
;	!        PARSE A STREAM RANGE WITH OPTIONAL NODE        !
;	!=======================================================!

;DEFINE A MACRO TO DO THE PARSING FOR A RANGE OF STREAM NUMBERS
DEFINE	$SRANGE(NEXT,%SRG01,%SRG02),<
	.XCREF	%SRG01,%SRG02
	SUPPRESS %SRG01,%SRG02
	$NOISE	(%SRG01,<Stream Number>)

%SRG01:	$RANGE(%SRG02,<Number or Range (n:m)(/NODE:)>)
%SRG02:	$NODE(NEXT)

>	;END $SRANGE DEFINITION
SUBTTL	Subroutine Macros


;DEFINE A MACRO TO ACTUALLY PARSE A RANGE OF OCTAL NUMBERS SPECIFIED AS
;   NUMBER:NUMBER (OR JUST NUMBER) WITH AN OPTIONAL NODE SWITCH

	DEFINE	$RANGE(NEXT,HLPT,ARGLST,%RNG01,%RNG02),<
	.XCREF	%RNG01,%RNG02
	SUPPRESS %RNG01,%RNG02
	$NUMBER	(%RNG01,^D10,HLPT,<$ACTION(STOBTH),ARGLST>)

%RNG01:	$TOKEN	(%RNG02,<:>,<$HELP(<colon to specify a range>),$ALTERNATE(NEXT)>)

%RNG02:	$NUMBER	(NEXT,^D10,,<$ACTION(STOHGH)>)


>	;END DEFINITION OF $RANGE





;DEFINE A MACRO FOR CORRECT PARSING OF THE OPTIONAL /NODE SWITCH

DEFINE	$NODE(NEXT,%NOD01,%NOD02),<
	.XCREF	%NOD01,%NOD02
	SUPPRESS %NOD01,%NOD02

	$SWITCH (%NOD02,%NOD01,<$ALTERNATE(NEXT)>)

%NOD01:	$STAB
	ORNSWI(NODE:,NOD)
	$ETAB

%NOD02:	$NODNM	(NEXT,<Node name>,<$FLAGS(CM%PO)>)

>	;END $NODE DEFINITION
SUBTTL	Command Dispatch

INITCM:: $INIT(CMDFDB)
CMDFDB:: $KEYDSP(CMDTAB,<$ACTION(CMDACT##),$ERROR(BADCOM)>)

CMDTAB:	$STAB
	ORNDSP(ABOFDB,ABORT,CNC)
	ORNDSP(ALIFDB,ALIGN,ALI)
	ORNDSP(BKSFDB,BACKSPACE,BKS)
	ORNDSP(CANFDB,CANCEL,DEL)
	ORNDSP(CLOFDB,CLOSE,CLO)
	ORNDSP(UNVFDB,CONTINUE,CNT)
IFN	FTDN60,<
	ORNDSP(DEFFDB,DEFINE,DEF)
>;END FTDN60
	ORNDSP(ENAFDB,DISABLE,DIS)
	ORNDSP(DSMFDB,DISMOUNT,DSM) 
	ORNDSP(ENAFDB,ENABLE,ENA)
IFN	NUMAPL,<			;CHECK IS ANY APPLICATION TABLES
	ORNDSP(ENTFDB##,ENTER,ENT)
>;END NUMAPL
	ORNDSP(EXTFDB##,EXIT,EXT)
	ORNDSP(BKSFDB,FORWARDSPACE,FWS)
	ORNDSP(HLPFDB,HELP,HLP)
	ORNDSP(HLDFDB,HOLD,HLD)
	ORNDSP(IDNFDB,IDENTIFY,IDN)
TOPS10<	ORNDSP(LOCFDB,LOCK,LOC)>
	ORNDSP(MODFDB,MODIFY,MOD)
;	ORNDSP(MTNFDB,MOUNT,MTN)
TOPS20<	ORNDSP(PUSFDB,PUSH,PUS)>
TOPS10<	ORNDSP(RECFDB,RECOGNIZE,REC)>
	ORNDSP(HLDFDB,RELEASE,REL)
	ORNDSP(RPTFDB,REPORT,RPT)
	ORNDSP(REQFDB,REQUEUE,REQ)
	ORNDSP(RSPFDB,RESPOND,RSP)
	ORNDSP(RTEFDB,ROUTE,RTE)
	ORNDSP(SNDFDB,SEND,SND)
	ORNDSP(SETFDB,SET,SET)
	ORNDSP(SHWFDB,SHOW,SHW)
	ORNDSP(SHDFDB,SHUTDOWN,SHD)
	ORNDSP(STAFDB,START,STA)
	ORNDSP(UNVFDB,STOP,PAU)
	ORNDSP(SUPFDB,SUPPRESS,SUP)
TOPS20<	ORNDSP(SWIFDB,SWITCH,SWI)>
	ORNDSP(TAKOPR##,TAKE,TAK)
TOPS10<	ORNDSP(LOCFDB,UNLOCK,ULC)>
;	ORNDSP(UNLFDB,UNLOAD,UNL)
	ORNDSP(WAIOPR##,WAIT,WAI,CM%INV)
	$ETAB

BADCOM:	MOVEI	S2,[ASCIZ/Invalid OPR Command Specified/]
	$RETF				;BAD COMMAND
SUBTTL	Argument Subroutines

;ACTION ROUTINE CALLED ON $UNIT MACRO TO BARF ON NEGATIVE UNIT
;NUMBER ARGUMENTS.
CHKVAL:	SKIPL	CR.RES(S2)	;CHECK THAT NUMBER
	$RETT			;IT'S GOOD
	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ/Negative number improper/]
	$RETF

CHKPOS:	SKIPLE	CR.RES(S2)	;CHECK THE NUMBER
	$RETT			;O.K..RETURN
	PUSHJ	P,FIXIT		;FIXUP COMMAND
	MOVEI	S2,[ASCIZ/Number must be Positive/]
	$RETF			;RETURN FALSE

; ACTION ROUTINE TO CHECK PRIORITY RANGES
CHKPRI:	SKIPLE	T1,CR.RES(S2)	;CHECK THAT NUMBER
	CAILE	T1,^D63
	SKIPA
	$RETT			;IT'S GOOD
	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ/Priority not in range/]
	$RETF

;TEMPORARY STORAGE FOR RANGE ARGUMENT
LSTARG:	BLOCK	1
CMDCOD:: BLOCK	1		;COMMAND FUNCTION CODE

STOBTH:	SKIPGE	T1,CR.RES(S2)
	PJRST	CHKVAL		;ABORT COMMAND
	MOVEM	T1,LSTARG
	$RETT

STOHGH:	SKIPGE	T1,CR.RES(S2)
	PJRST	CHKVAL		;ABORT COMMAND
	CAMGE	T1,LSTARG
	SKIPA			;SKIP AND LOAD ERROR
	$RETT
	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ /Improper range specification/]
	$RETF

FIXIT:	HRRZ	T4,CR.FLG(S2)	;GET ADR OF CMDBLK
	MOVE	T1,.CMPTR(T4)	;GET COMMAND POINTER
	MOVE	T2,.CMABP(T4)	;GET BP TO ATOM BUFFER
FIXI.1:	ILDB	T3,T2
	JUMPE	T3,FIXI.2	;DONE.. ALL FIXED UP
	PUSHJ	P,DBP		;DECREMENT THE BP
	AOS	.CMCNT(T4)
	JRST	FIXI.1		;TRY NEXT CHARACTER
FIXI.2:	MOVEM	T1,.CMPTR(T4)	;STORE ADJUSTED BP
	POPJ	P,0

;LOCAL ROUTINE TO DECREMENT BYTE POINTER IN T1
DBP:	SOS	T1
	IBP	T1
	IBP	T1
	IBP	T1
	IBP	T1
	$RETT
SUBTTL	START Command Tables

STAFDB:	$NOISE (STAF01,<Object>)

STAF01:	$KEYDSP(STAF02)

STAF02:	$STAB
	ORNDSP(STAF03,BATCH-STREAM,BAT)
	ORNDSP(STAF04,<CARD-PUNCH>,CDP)
	ORNDSP(SHD030,<NODE>,NOD)
	ORNDSP(STAF04,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP(STAF04,<PLOTTER>,PLT)
	ORNDSP(STAF11,PRINTER,LPT)
	ORNDSP(STAF04,READER,RDR)
	$ETAB

STAF03:	$SRANGE(CONFRM)

STAF04:	$URANGE	(CONFRM)

STAF11:	$URANGE(STAF12)

STAF12:	$SWITCH	(STAF14,STAF13,<$ALTERNATE(<CONFRM>)>)

STAF13:	$STAB
	ORNSWI	(<DEVICE:>,DEV)
	$ETAB

STAF14:	$DEV(CONFRM,<$HELP(<Tape Drive Name>)>)
SUBTTL	CONTINUE Command Tables
SUBTTL	SHUTDOWN Command Tables
SUBTTL	STOP Command Tables

COMMENT	\
NOTE: SHOULD IT BECOME DESIRABLE FOR THE SHUTDOWN AND
CONTINUE COMMANDS TO BE NO LONGER SYNTACTICALLY IDENTICAL THEN THE
COMMON USE OF THIS PDB CHAIN DEFINITION IS NO LONGER VALID.
\

SHDFDB:	$NOISE	(SHD010,<Scheduling for>)

UNVFDB:	$NOISE (UNVF01,<Object>)

UNVF01:	$KEYDSP(UNVF02)

UNVF02:	$STAB
	ORNDSP(UNVF03,BATCH-STREAM,BAT)
	ORNDSP(UNVF04,<CARD-PUNCH>,CDP)
	ORNDSP(UNVF04,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP(UNVF04,<PLOTTER>,PLT)
	ORNDSP(UNVF04,PRINTER,LPT)
	ORNDSP(UNVF04,READER,RDR)
	$ETAB

UNVF03:	$SRANGE(CONFRM)

UNVF04:	$URANGE(CONFRM)

CONFRM:	$CRLF
SHD010:	$KEYDSP(SHD020)

SHD020:	$STAB
	ORNDSP(UNVF03,BATCH-STREAM,BAT)
	ORNDSP(UNVF04,<CARD-PUNCH>,CDP)
	ORNDSP(SHD030,NODE,NOD)
	ORNDSP(UNVF04,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP(UNVF04,<PLOTTER>,PLT)
	ORNDSP(UNVF04,PRINTER,LPT)
	ORNDSP(UNVF04,READER,RDR)
	$ETAB

SHD030:	$NODNM(CONFRM,<Node Name>,<$FLAGS(CM%PO)>)
SUBTTL	ABORT Command Tables

ABOFDB:	$NOISE	(ABO010,<Current Job on>)

ABO010:	$KEYDSP(ABO020)

ABO020:	$STAB
	ORNDSP(ABO040,BATCH-STREAM,BAT)
	ORNDSP(ABO030,CARD-PUNCH,CDP)
	ORNDSP(ABO030,PAPER-TAPE-PUNCH,PTP)
	ORNDSP(ABO030,PLOTTER,PLT)
	ORNDSP(ABO030,PRINTER,LPT)
	ORNDSP(ABO110,READER,RDR)
	$ETAB

ABO030:	$UNIT(ABO060)

ABO040:	$STREAM(ABO050)

ABO050:	$JOBSWI(ABO070,<$ALTER(ABO070)>)

ABO060:	$JOBSWI	(ABO080,<$ALTER(ABO080)>)

ABO070:	$SWITCH	(ABO100,ABO090,<$ALTERNATE(ABO100),$DEFAULT(</ERROR-PROCESSING>)>)

ABO080:	$SWITCH	(ABO100,ABO120,<$ALTERNATE(ABO100)>)

ABO090:	$STAB
	ORNSWI	(<ERROR-PROCESSING>,ERR)
	ORNSWI	(<NOERROR-PROCESSING>,NER)
	ORNSWI	(PURGE,PUR)
	$ETAB

ABO100:	$EXPL(CONFRM,<$ALTER(CONFRM)>)

ABO110:	$UNIT(ABO100)

ABO120:	$STAB
	ORNSWI	(PURGE,PUR)
	$ETAB
SUBTTL	Tables for HOLD and RELEASE Commands
SUBTTL	HOLD Command Tables
SUBTTL	RELEASE Command Tables

HLDFDB:	$KEY	(HLD030,HLD010)

HLD010:	$STAB
	ORNKEY	(<BATCH-JOBS>,BAT)
	ORNKEY	(<CARD-PUNCH-JOBS>,CDP)
	ORNKEY	(<PAPER-TAPE-PUNCH-JOBS>,PTP)
	ORNKEY	(<PLOTTER-JOBS>,PLT)
	ORNKEY	(<PRINTER-JOBS>,LPT)
	$ETAB

HLD030:	$NUMBER(CONFRM,^D10,<Request-ID>,<$ACTION(CHKPOS),$ALTERNATE(HLD035)>)

HLD035:	$USER(CONFRM,<$ALTERNATE(HLD040)>)

HLD040:	$TOKEN(HLD050,<*>,<$HELP(<* to Specify All Requests>)>)

HLD050:	$NODE(CONFRM)
SUBTTL	DEFINE COMMAND

IFN	FTDN60,<
DEFFDB:	$KEY(DEF020,DEF010,<$DEFAULT(<NODE>)>)

DEF010:	$STAB
	ORNKEY(<NODE>,NOD)
	$ETAB

DEF020:	$NOISE(DEF030,<Name>)

DEF030:	$NODNM(DEF040,<Node Name for IBM Emulation/Termination>,<$FLAGS(CM%PO)>)

DEF040:	$NOISE(DEF050,<Type>)

DEF050:	$KEY(DEF070,DEF060,<$DEFAULT(<HASP>)>)

DEF060:	$STAB
	ORNKEY(<2780>,278)
	ORNKEY(<3780>,378)
	ORNKEY(<HASP>,HSP)
	$ETAB

DEF070:	$NOISE(DEF080,<Mode>)

DEF080:	$KEY(DEF100,DEF090,<$DEFAULT(<TERMINATION>)>)

DEF090:	$STAB
	ORNKEY(EMULATION,EMU)
	ORNKEY(TERMINATION,TRM)
	$ETAB

DEF100:	$NOISE(DEF110,<Port>)

DEF110:	$NUMBER(DEF120,^D8,<Port Number for DN60>)

DEF120:	$NOISE(DEF130,<Line>)

DEF130:	$NUMBER(CONFRM,^D8,<Line Number for DN60>)
>;END FTDN60
SUBTTL	CANCEL COMMAND

CANFDB:	$KEYDSP(CAN010)

CAN010:	$STAB
	ORNDSP	(CAN020,<BATCH-REQUEST>,BAT)
	ORNDSP	(CAN020,<CARD-PUNCH-REQUEST>,CDP)
	ORNDSP	(CAN040,<MOUNT-REQUEST>,MNT)
	ORNDSP	(CAN020,<PAPER-TAPE-PUNCH-REQUEST>,PTP)
	ORNDSP	(CAN020,<PLOTTER-REQUEST>,PLT)
	ORNDSP	(CAN020,<PRINTER-REQUEST>,LPT)
	$ETAB

CAN020:	$NUMBER(CONFRM,^D10,<Request Number to Cancel in Queue or if Active>,<$ACTION(CHKPOS),$ALTERNATE(CAN030)>)

TOPS20 <
CAN030:	$USER(CONFRM,<$HELP(<User Name whose Jobs will be canceled>),$ALTERNATE(HLD040)>)
> ;END TOPS20

TOPS10 <
CAN030:	$USER(CONFRM,<$HELP(<[Project,Programmer] whose Jobs will be canceled>),$ALTERNATE(HLD040)>)
> ;END TOPS10

CAN040:	$DEV(CAN060,<$HELP(<Structure Name to Cancel all Mount Requests for>),$FLAGS(CM%PO),$ALTERNATE(CAN050)>)

CAN050:	$NUMBER(CAN060,^D10,<Mount Request Number to Cancel>,<$ACTION(CHKPOS)>)

CAN060:	$EXPL(CONFRM,<$ALTERNATE(CONFRM)>)
SUBTTL	MODIFY COMMAND

MODFDB:	$KEY(MOD020,MOD010)

MOD010:	$STAB
	ORNKEY	(<BATCH-REQUEST>,BAT)
	ORNKEY	(<CARD-PUNCH-REQUEST>,CDP)
	ORNKEY	(<PAPER-TAPE-PUNCH-REQUEST>,PTP)
	ORNKEY	(<PLOTTER-REQUEST>,PLT)
	ORNKEY	(<PRINTER-REQUEST>,LPT)
	$ETAB

MOD020:	$NUMBER(MOD030,^D10,<Request Number to Modify in Queue>,<$ACTION(CHKPOS),$ALTERNATE(MOD070)>)

MOD030:	$KEYDSP(MOD040)

MOD040:	$STAB
	ORNDSP(MOD050,<PRIORITY>,PRI)
	$ETAB

MOD050:	$NOISE(MOD060,<to be>)

MOD060:	$NUMBER(CONFRM,^D10,<Priority for Request in Range 1 to 63>,<$ACTION(CHKPRI)>)

MOD070:	$USER(MOD030,<$ALTERNATE(MOD080)>)
MOD080:	$TOKEN(MOD090,<*>,<$HELP(<* to Specify All Requests>)>)

MOD090:	$NODE(MOD030)
SUBTTL	SHOW Command Tables


SHWFDB:	$KEYDSP(SHW010)

SHW010:	$STAB
	ORNDSP(SHW110,<CONTROL-FILE>,CTL)
	ORNDSP(SHW020,MESSAGES,MSG)
	ORNDSP(SHW030,OPERATORS,OPR)
	ORNDSP(SHW210,PARAMETERS,PRM)
	ORNDSP(SHW070,QUEUES,QUE)
	ORNDSP(CONFRM,<ROUTE-TABLE>,RTE)
TOPS20<	ORNDSP(CONFRM,SCHEDULER,SCH)>
	ORNDSP(STS000,STATUS,STS)
	ORNDSP(SHW060,TIME,DAY)	;DAYTIME CHANGES TO TIME
	$ETAB

SHW020:	$NUMBER(CONFRM,^D10,<Message Number>,<$ALTER(SHW030),$ACTION(CHKVAL)>)

SHW030:	$NODE(CONFRM)

SHW060:	$CRLF(<$ACTION(SHWDAY##)>)

SHW070:	$KEYDSP(SHW080,<$DEFAULT(ALL),$ALTER(SHW090)>);NODE OR CONFIRM

SHW080:	$STAB
	ORNDSP	(SHW090,<ALL-JOBS>,ALL)
	ORNDSP	(SHW090,<BATCH-JOBS>,BAT)
	ORNDSP	(SHW090,<CARD-PUNCH-JOBS>,CDP)
	ORNDSP	(SHW300,<MOUNT-REQUESTS>,MNT)
	ORNDSP	(SHW090,<PAPER-TAPE-PUNCH-JOBS>,PTP)
	ORNDSP	(SHW090,<PLOTTER-JOBS>,PLT)
	ORNDSP	(SHW090,<PRINTER-JOBS>,LPT)
TOPS20<	ORNDSP	(SHW300,<RETRIEVAL-REQUESTS>,RET)>
	$ETAB

SHW090:	$SWITCH(SHW280,SHW100,<$ALTER(SHW280)>);NODE BLOCK OR CONFIRM

SHW100:	$STAB
	ORNSWI	(<ALL>,ALL)
	ORNSWI	(<SHORT>,SHT)
	$ETAB

SHW110:	$NOISE	(SHW120,<For>)
SHW120:	$KEY (SHW140,SHW130,<$DEFAULT(<BATCH-STREAM>)>)

SHW130:	$STAB
	ORNKEY(<BATCH-STREAM>,BAT)
	$ETAB

SHW140:	$STREAM(SHW150)
SHW150:	$SWITCHES(,SHW160,<$ALTER(CONFRM)>)
SHW160:	$STAB
	ORNSDP	(SHW170,<LINES:>,LNS)
	$ETAB
SHW170:	$NUMBER	(CONFRM,^D10,<Number of lines>,$ACTION(CHKVAL))

SHW180:	$SRANGE(SHW090)

SHW210:	$KEYDSP(SHW220,<$ALTER(SHW320)>)

SHW220:	$STAB
	ORNDSP	(SHW230,<BATCH-STREAM>,BAT)
	ORNDSP	(SHW230,<CARD-PUNCH>,CDP)
	ORNDSP	(SHWNOD,<NETWORK-NODE>,NOD)
	ORNDSP	(SHW230,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP	(SHW230,<PLOTTER>,PLT)
	ORNDSP	(SHW230,<PRINTER>,LPT)
	$ETAB


SHW230:	$SWITCH(SHW260,SHW250,<$ALTERNATE(SHW270)>)

SHW250:	$STAB
	ORNSWI(<NODE:>,NOD)
	$ETAB

SHW260:	$NODNM(CONFRM,<Node Name>,<$FLAGS(CM%PO)>)

SHW270:	$RANGE(SHW280,<Number or Range (n:m)(/NODE:)>,<$ALTERNATE(CONFRM)>)

SHW280:	$NODE(CONFRM)

SHW300:	$SWITCH(CONFRM,SHW100,<$ALTERNATE(CONFRM)>)

SHW320:	$SWITCH(SHW340,SHW330,<$ALTERNATE(CONFRM)>)

SHW330:	$STAB
	ORNSWI(<NODE:>,NOD)
	$ETAB

SHW340:	$NODNM(CONFRM,<Node Name>,<$FLAGS(CM%PO)>)
SUBTTL	SHOW STATUS

STS000:	$KEYDSP(STS010,<$ALTER(STS100)>)

STS010:	$STAB
	ORNDSP	(STS020,<BATCH-STREAM>,BAT)
	ORNDSP	(STS020,<CARD-PUNCH>,CDP)
	ORNDSP	(STS190,<DISK-DRIVE>,DSK)
	ORNDSP	(SHWNOD,<NETWORK-NODE>,NOD)
	ORNDSP	(STS020,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP	(STS020,<PLOTTER>,PLT)
	ORNDSP	(STS020,<PRINTER>,LPT)
	ORNDSP	(STS020,<READER>,RDR)
TOPS10<	ORNDSP	(STS250,<STRUCTURE>,STR)>
	ORNDSP	(STS160,<TAPE-DRIVE>,ATP)
	$ETAB

STS020:	$SWITCH(STS040,STS030,<$ALTERNATE(STS050)>)

STS030:	$STAB
	ORNSWI(<NODE:>,NOD)
	$ETAB

STS040:	$NODNM(STS130,<Node Name>,<$FLAGS(CM%PO)>)

STS050:	$RANGE(STS060,<Number or Range (n:m)(/NODE:)>,<$ALTERNATE(STS130)>)

STS060:	$NODE(STS130)

STS100:	$SWITCH(STS120,STS110,<$ALTERNATE(STS130)>)

STS110:	$STAB
	ORNSWI(<NODE:>,NOD)
	$ETAB

STS120:	$NODNM(STS130,<Node Name>,<$FLAGS(CM%PO)>)
STS130:	$SWITCH(CONFRM,STS140,<$ALTERNATE(CONFRM)>)

STS140:	$STAB
	ORNSWI(SHORT,SHT)
	$ETAB

STS150:	$DEV(STS170,<$HELP(<Tape Drive Name>),$ALTERNATE(STS170)>)

STS160:	$CRLF(<$ALTERNATE(STS150)>)

STS170:	$SWITCH(CONFRM,STS180,<$ALTERNATE(CONFRM)>)

STS180:	$STAB
	ORNSWI(ALL,ALL)
	ORNSWI(CHARACTERISTICS,CHR)
	ORNSWI(FREE,FRE)
	$ETAB

STS190:	$SWITCH(CONFRM,STS200,<$ALTERNATE(STS210)>)

STS200:	$STAB
	ORNSWI(ALL,ALL)
	ORNSWI(FREE,AVA)
	ORNSWI(MOUNTED,MNT)
	$ETAB

TOPS20<
STS210:	$CRLF
> ;END TOPS20
TOPS10<
STS210:	$CRLF(<$ALTERNATE(STS220)>)

STS220:	$DEV(CONFRM,<$HELP(<Disk Drive Name>)>)
> ;END TOPS10
TOPS10<
STS250:	$DEV(STS260,<$HELP(<Structure Name>),$ALTERNATE(STS260)>)
STS260:	$SWITCH(CONFRM,STS270,<$ALTERNATE(CONFRM)>)
STS270:	$STAB
	ORNSWI(USERS,USR)
	$ETAB
> ;END TOPS10
SUBTTL	LOCK/UNLOCK COMMAND

TOPS10 <

LOCFDB:	$NOISE(LOC010,<structure>)

LOC010:	$DEV(LOC020,<$HELP(<Structure Name>)>)

LOC020:	$NOISE(LOC030,<at>)

LOC030:	$CRLF(<$ALTERNATE(LOC040)>)

LOC040:	$TAD(CONFRM)

> ;END TOPS10
SUBTTL	SHWNOD	SHOW STATUS/PARAMETERS NODE

SHWNOD:	$NODNM(CONFRM,<Node Name>,<$FLAGS(CM%PO),$ALTERNATE(CONFRM)>)
SUBTTL	RESPOND Command Tables

RSPFDB:	$NOISE	(RSP001,<to message number>)

RSP001:	$NUMBER	(RSP005,^D10,<Message Number>,$ACTION(CHKVAL))

RSP005:	$CRLF	(<$ALTER(RSP010),$ACTION(TXTLIN##),$HELP(<confirm for multiple line response>)>)

RSP010:	$CTEXT	(CONFRM,<single line response>)
SUBTTL	REQUEUE Command Tables

REQFDB:	$NOISE(REQN01,<Current Job On>)

REQN01:	$KEYDSP(REQN02)

REQN02:	$STAB
	ORNDSP(REQN03,<BATCH-STREAM>,BAT)
	ORNDSP(REQN04,<CARD-PUNCH>,CDP)
	ORNDSP(REQN04,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP(REQN04,<PLOTTER>,PLT)
	ORNDSP(REQN04,<PRINTER>,LPT)
	$ETAB

REQN03:	$STREAM(REQN16)

REQN04:	$UNIT(REQN05)

REQN05:	$JOBSWI	(REQN10,<$ALTER(REQN10)>)

REQN09:	$NOISE(REQN10,<To Restart From>)

REQN10:	$KEYDSP(REQN11,<$DEFAULT(CURRENT-POSITION),$ALTER(REQN27)>)

REQN11:	$STAB
	ORNDSP(REQN14,BEGINNING-OF,BEG)
	ORNDSP(REQN27,CURRENT-POSITION,CUR)
	$ETAB

REQN12:	$NOISE(REQN13,<To Restart From>)

REQN13:	$KEYDSP(REQN11)

REQN14:	$KEY(REQN27,REQN15)

REQN15:	$STAB
	ORNKEY(COPY,CPY)
	ORNKEY(FILE,FIL)
	ORNKEY(JOB,JOB)
	$ETAB

REQN16:	$JOBSWI (REQN27,<$ALTER(REQN27)>)

REQN27:	$EXPL (CONFRM,<$ALTER(CONFRM)>)
SUBTTL	BACKSPACE Command Tables
SUBTTL	FORWARDSPACE Command Tables

BKSFDB:	$KEY (BKS002,BKS001,<$DEFAULT(<PRINTER>)>)

BKS001:	$STAB
	ORNKEY (<PRINTER>,LPT)
	$ETAB

BKS002:	$UNIT(BKS003)

BKS003:	$SWITCH(,BKS004)

BKS004:	$STAB
	ORNSDP(BKS005,<COPIES:>,CPY)
	ORNSDP(CONFRM,<FILE>,FIL)
	ORNSDP(BKS007,<PAGES:>,PAG)
	$ETAB

BKS005:	$NUMBER	(CONFRM,^D10,<Number of Copies>,$ACTION(CHKVAL))
REPEAT 0,<
BKS006:	$NUMBER	(CONFRM,^D10,<Number of Files>,<$ACTION(CHKFIL),$DEFAULT(<1>)>)
>
BKS007:	$NUMBER	(CONFRM,^D10,<Number of Pages>,$ACTION(CHKVAL))
REPEAT 0,<
CHKFIL:	SKIPG	T1,CR.RES(S2)	;CHECK THAT NUMBER
	JRST	CHKF.1		;GENERTE AN ERROR
	CAIN	T1,1		;WAS IT A 1
	$RETT			;O.K..RETURN
CHKF.1:	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ/Only one File allowed/]
	$RETF
>
SUBTTL	ALIGN Command Table

ALIFDB:	$NOISE (ALI001,<Forms on>)

ALI001:	$KEY (ALI003,ALI002,<$DEFAULT(<PRINTER>)>)

ALI002:	$STAB
	ORNKEY (<PRINTER>,LPT)
	$ETAB

ALI003:	$UNIT(ALI010)

ALI004:	$IFILE	(ALI005,<Alignment File>,<$ALTER(ALI005)>)

ALI005:	$SWITCH(,ALI006,<$ALTER(CONFRM),$ACTION(SHRSWT)>)

ALI006:	$STAB
	ORNSDP(ALI007,<PAUSE:>,PAU)
	ORNSDP(ALI008,<REPEAT-COUNT:>,RPT)
	$ETAB

ALI007:	$NUMBER (NEXT,^D10,<Seconds to Pause>,$ACTION(CHKVAL))

ALI008:	$NUMBER (NEXT,^D10,<Times to Print>,$ACTION(CHKVAL))

ALI009:	$STAB
	ORNSWI(STOP,STP)
	$ETAB

ALI010:	$SWITCH(CONFRM,ALI009,<$ALTER(ALI004)>)
SUBTTL	SUPPRESS Command Tables

SUPFDB:	$NOISE (SUP001,<Carriage Control on>)

SUP001:	$KEY (SUP010,SUP005,<$DEFAULT(<PRINTER>)>)


SUP005:	$STAB
	ORNKEY (<PRINTER>,LPT)
	$ETAB

SUP010:	$UNIT(SUP015)

SUP015:	$SWITCH(CONFRM,SUP020,<$DEFAULT(</JOB>),$ALTER(CONFRM)>)

SUP020:	$STAB
	ORNSWI(FILE,FIL)
	ORNSWI(JOB,JBX)
	ORNSWI(STOP,STP)
	$ETAB
SUBTTL	ROUTE Command Tables

RTEFDB:	$NOISE	(RTE001,<Output for NODE>)

RTE001:	$NODNM	(RTE002,<Source Node>,<$FLAGS(CM%PO)>)

RTE002:	$KEYDSP	(RTE003,<$ALTER(RTE004),$DEFAULT(<TO>)>)

RTE003:	$STAB
	ORNDSP	(RTE004,<TO>,TO)
	$ETAB

RTE004:	$NODNM	(CONFRM,<Destination Node>,<$FLAGS(CM%PO)>)
SUBTTL	SEND Command Tables

SNDFDB:	$NOISE	(SND001,<To>)

SND001:	$KEYDSP	(SND005)

SND005:	$STAB
	ORNDSP(SND040,<ALL>,ALL)
	ORNDSP(SND015,<BATCH-STREAM>,BAT)
	ORNDSP(SND010,<JOB>,JOB)
	ORNDSP(SND025,<OPERATOR>,OPR)
	ORNDSP(SND020,<TERMINAL>,TRM)
	$ETAB

SND010:	$NUMBER(SND030,^D10,<Job Number>,$ACTION(CHKVAL))
SND015:	$STNUM(SND025)
SND020:	$NUMBER(SND030,^D8,<Terminal Number>,$ACTION(CHKVAL))
SND025:	$NODE(SND030)

SND030:	$CRLF	(<$ALTER(SND035),$ACTION(TXTLIN##),$HELP(<confirm for multiple line response>)>)

SND035:	$CTEXT	(CONFRM,<single line response>)
SND040:	$NODE(SND035)
SUBTTL	SET Command Tables

SETFDB:	$KEYDSP(SET010)

SET010:	$STAB
	ORNDSP(SET170,BATCH-STREAM,BAT)
	ORNDSP(SET490,<CARD-PUNCH>,CDP)
TOPS20<	ORNDSP(SET700,<DISK-DRIVE>,DSK)>
	ORNDSP(SET070,JOB,JOB)
IFN	FTDN60,<
	ORNDSP(SETNOD,<NODE>,NOD)
>;END FTDN60
TOPS20<	ORNDSP(SET800,<ONLINE>,ONL)>
	ORNDSP(SET430,<PAPER-TAPE-PUNCH>,PTP)
	ORNDSP(SET370,PLOTTER,PLT)
	ORNDSP(SET200,PRINTER,LPT)
TOPS20<	ORNDSP(SETSCH,<SCHEDULER>,SCH)>
TOPS20<	ORNDSP(SET600,<STRUCTURE>,STR)>
	ORNDSP(SET630,<TAPE-DRIVE>,TAP)
	ORNDSP(SET020,TERMINAL,TRM)
	$ETAB

SET020:	$KEYDSP(SET030,<$ACTION(SETRTN##)>)

SET030:	$STAB

TOPS10<	ORNDSP(SET350,KEYPAD,KPD)>
TOPS10<	ORNDSP(SET350,NOKEYPAD,NKP)>
	ORNDSP(SET040,<TYPE>,TYP)
	$ETAB

SET040:	$NOISE (SET050,<To be>)
SET050:	$KEY(SET350,SET060,<$ACTION(SETRTN##)>)

SET060:	$STAB
DEFINE X(PARNAM,SIXNAM,SUF,EOLSEQ),<
	KEYTAB(.TT'SUF,<PARNAM>)
>;END DEFINE X
	TRMTYP				;Generate the options
	$ETAB

SET070:	$NOISE(SET080,<Job Number>)
SET080:	$NUMBER(SET090,^D10,<Job Number>,$ACTION(CHKVAL))

SET090:	$KEYDSP(SET100)

SET100:	$STAB
	ORNDSP(CONFRM,<NOOPR-INTERVENTION>,NOI)
	ORNDSP(CONFRM,<OPR-INTERVENTION>,OIA)
TOPS20<	ORNDSP(SET110,SCHEDULER-CLASS,CLS)>
	$ETAB

TOPS20 <
SET110:	$NOISE(SET120,<to be>)

SET120:	$NUMBER(CONFRM,^D10,<Scheduler Class to put the Job in>)

> ;END TOPS20

SET170:	$SRANGE(SET180)
SET180:	$KEYDSP(SET250)

SET200:	$URANGE(SET210)
SET210:	$KEYDSP(SET300)


SET250:	$STAB
TOPS10<	ORNDSP(SET290,<MEMORY-LIMITS>,MEM)>
	ORNDSP(CONFRM,NOOPR-INTERVENTION,NOI)
	ORNDSP(CONFRM,OPR-INTERVENTION,OIA)
	ORNDSP(SET260,PRIORITY-LIMITS,PRL)
	ORNDSP(SET270,TIME-LIMITS,TIM)
	$ETAB

SET260:	$RANGE(CONFRM,<Maximum priority limit or a range (1-63)>)
SET270:	$RANGE(CONFRM,<Maximum time limits in minutes or a range>)
SET280:	$NUMBER(CONFRM,^D10,<Line Number>,$ACTION(CHKVAL))
;GET MEMORY LIMITS

TOPS10 <
SET290:	$RANGE(CONFRM,<Maximum number of pages or a range>)
> ;END TOPS10

SET300:	$STAB
	ORNDSP(SET330,FORMS-TYPE,FOT)
	ORNDSP(SET340,LIMIT-EXCEEDED-ACTION,LEA)
	ORNDSP(SET310,PAGE-LIMITS,PGL)
	ORNDSP(SET260,PRIORITY-LIMITS,PRL)
	$ETAB

SET310:	$RANGE(CONFRM,<Maximum number of pages or a range>)

SET320:	$STAB
	ORNKEY(ABORT,CNC)
	ORNKEY(ASK,ASK)
	ORNKEY(IGNORE,IGN)
	$ETAB

SET330:	$FIELD(CONFRM,<Forms name>)
SET340:	$KEY(CONFRM,SET320)
SET350:	$CRLF(<$ACTION(SETTRM##)>)

SET370:	$URANGE	(SET380)

SET380:	$KEYDSP	(SET390)

SET390:	$STAB
	ORNDSP	(SET330,<FORMS-TYPE>,FOT)
	ORNDSP	(SET340,LIMIT-EXCEEDED-ACTION,LEA)
	ORNDSP	(SET480,<OUTPUT-LIMIT>,OPL)
	ORNDSP	(SET260,PRIORITY-LIMITS,PRL)
	$ETAB

SET430:	$URANGE	(SET440)

SET440:	$KEYDSP	(SET450)

SET450:	$STAB
	ORNDSP	(SET330,<FORMS-TYPE>,FOT)
	ORNDSP	(SET340,LIMIT-EXCEEDED-ACTION,LEA)
	ORNDSP	(SET470,<OUTPUT-LIMIT>,OPL)
	ORNDSP	(SET260,PRIORITY-LIMITS,PRL)
	$ETAB

SET470:	$RANGE(CONFRM,<Maximum limit in feet>)
SET480:	$RANGE(CONFRM,<Number of Plotter steps>)
SET490:	$URANGE(SET500)

SET500:	$KEYDSP	(SET510)

SET510:	$STAB
	ORNDSP	(SET330,<FORMS-TYPE>,FOT)
	ORNDSP	(SET340,LIMIT-EXCEEDED-ACTION,LEA)
	ORNDSP	(SET530,<OUTPUT-LIMIT>,OPL)
	ORNDSP	(SET260,PRIORITY-LIMITS,PRL)
	$ETAB

SET530:	$RANGE(CONFRM,<Maximum Limit in Cards>)
SUBTTL	SET COMMAND FOR -20 Tape and Disk

TOPS20 <

SET600:	$DEV	(SET610,<$HELP(<Structure Name>),$FLAGS(CM%PO)>)

SET610:	$KEYDSP(SET620)

SET620:	$STAB
	ORNDSP(SET622,<ACKNOWLEDGED>,ACK)
	ORNDSP(SET624,<AVAILABLE>,AVA)
	ORNDSP(CONFRM,<DOMESTIC>,DOM)
	ORNDSP(CONFRM,<FOREIGN>,FOR)
	ORNDSP(SET622,<IGNORED>,IGN)
	ORNDSP(CONFRM,<REGULATED>,REG)
	ORNDSP(SET624,<UNAVAILABLE>,UAV)
	ORNDSP(CONFRM,<UNREGULATED>,URG)
	$ETAB

SET622:	$NOISE(CONFRM,<as a New Mountable Structure>)

SET624:	$NOISE(CONFRM,<to new Users>)

> ;END TOPS20
SET630:	$DEV(SET640,<$HELP(<Tape Drive Name>)>)

SET640:	$KEYDSP(SET650)

SET650:	$STAB
	ORNDSP(SET660,<AVAILABLE>,AVA)
	ORNDSP(SETINI,<INITIALIZE>,INI)
	ORNDSP(SET670,<UNAVAILABLE>,UAV)
	$ETAB

SET660:	$NOISE(CONFRM,<For Use By System>)

SET670:	$CRLF	(<$ALTER(SET680),$ACTION(TXTLIN##),$HELP(<confirm for multiple line explanation for Drive Unavailable>)>)

SET680:	$CTEXT	(CONFRM,<single line response>)

TOPS20 <

SET700:	$NOISE(SET705,<on>)

SET705:	$KEY(SET720,SET710,<$DEFAULT(<CHANNEL>)>)

SET710:	$STAB
	ORNKEY(<CHANNEL>,CHN)
	$ETAB

SET720:	$NUMBER(SET730,^D10,<Channel Number>,<$ACTION(CHKVAL)>)

SET730:	$KEY(SET750,SET740,<$DEFAULT(<DRIVE>)>)

SET740:	$STAB
	ORNKEY(<DRIVE>,DRV)
	$ETAB

SET750:$NUMBER(SET760,^D10,<Drive Number>,<$ACTION(CHKVAL)>)

SET760:	$KEYDSP(SET770)

SET770:	$STAB
	ORNDSP(SET660,<AVAILABLE>,AVA)
	ORNDSP(SET670,<UNAVAILABLE>,UAV)
	$ETAB
> ;END TOPS20
SUBTTL	SET ONLINE COMMAND

TOPS20 <
SET800:	$NOISE(SET810,<Device Address>)

SET810:	$NUMBER(SET820,<^D8>,<Channel Number>,<$ACTION(CHKCHN)>)

SET820:	$COMMA(SET830)

SET830:	$NUMBER(SET840,<^D8>,<Device Unit Number>,<$ACTION(CHKVAL)>)

SET840:	$COMMA(SET850,<$ALTERNATE(<CONFRM>)>)

SET850:	$NUMBER(SET860,<^D8>,<Controller Number or -1>,<$DEFAULT(<-1>)>)

SET860:	$NOISE(SET865,<Alternate Address>)

SET865:	$NUMBER(SET870,<^D8>,<Alternate Channel>,<$ACTION(CHKCHN),$ALTERNATE(CONFRM)>)

SET870:	$COMMA(SET875)

SET875:	$NUMBER(SET880,<^D8>,<Alternate Device Unit Number>,<$ACTION(CHKVAL)>)

SET880:	$COMMA(SET885,<$ALTERNATE(<CONFRM>)>)

SET885:	$NUMBER(CONFRM,<^D8>,<Alternate Controller Number or -1>,<$DEFAULT(<-1>)>)

CHKCHN:	SKIPL	S1,CR.RES(S2)	;CHECK THAT NUMBER
	CAILE	S1,7		;IN BOUNDS
	SKIPA			;BAD NUMBER
	$RETT			;IT'S GOOD
	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ/Channel Number not in Range 0:7/]
	$RETF

> ;END TOPS20
SUBTTL	SETINI	SET Initialize Command for TAPE
SETINI:	$SWITCH(,INI010,<$ACTION(SHRSWT),$ALTERNATE(INI150)>)

INI010:	$STAB
	ORNSDP(INI140,<COUNT:>,CNT)
	ORNSDP(INI020,<DENSITY:>,DEN)
	ORNSDP(INI040,<LABEL-TYPE:>,LBT)
	ORNSDP(INI060,<OVERRIDE-EXPIRATION:>,OVR)
	ORNSDP(INI080,<OWNER:>,OWN)
	ORNSDP(INI100,<PROTECTION:>,PRO)
	ORNSDP(INI120,<TAPE-DISPOSITION:>,TDP)
	$ETAB


INI020:	$KEY(NEXT(SETINI),INI030,<$DEFAULT(<1600>)>)

INI030:	$STAB
	ORNKEY(1600,160)
	ORNKEY(200,200)
	ORNKEY(556,556)
	ORNKEY(6250,625)
	ORNKEY(800,800)
	$ETAB

INI040:	$KEY(NEXT(SETINI),INI050,<$DEFAULT(<ANSI>)>)

INI050:	$STAB
	ORNKEY(ANSI,ANS)
	ORNKEY(EBCDIC,EBC)
TOPS20<	ORNKEY(TOPS-20,T20)>
	ORNKEY(UNLABELED,UNL)
	$ETAB


INI060:	$KEY(NEXT(SETINI),INI070,<$DEFAULT(<NO>)>)

INI070:	$STAB
	ORNKEY(NO,NO)
	ORNKEY(YES,YES)
	$ETAB

TOPS20 <
INI080:	$USER(NEXT(SETINI),<$HELP(<User who owns the tape>)>)
> ;END TOPS20

TOPS10 <
INI080:	$USER(NEXT(SETINI),<$HELP(<User PPN who owns the tape>)>)
> ;END TOPS10

INI100:	$NUMBER(NEXT(SETINI),^D8,<Protection for the Tape as an Octal Number>)

INI120:	$KEY(NEXT(SETINI),INI130,<$DEFAULT(<UNLOAD>)>)

INI130:	$STAB
	ORNKEY(HOLD,HLD)
	ORNKEY(UNLOAD,UNL)
	$ETAB

INI140:	$NUMBER(NEXT(SETINI),^D10,<Number of Volumes to be Initialized>,<$ACTION(CHKPOS),$DEFAULT(<10>)>)

INI150:	$SWITCH(,INI160,<$ALTERNATE(INI200),$ACTION(SHRSWT)>)

INI160:	$STAB
	ORNSDP(INI170,<VOLUME-ID:>,VID)
	$ETAB


INI170:	$QUOTE(CONFRM,<Volume-id in Quotes if has non-alphanumeric characters>,<$ALTERNATE(INI180)>)

INI180:	$FIELD(CONFRM,<Volume-id without quotes>)

INI200:	$SWITCH(,INI210,<$ACTION(SHRSWT),$ALTERNATE(CONFRM)>)

INI210:	$STAB
	ORNSDP(INI240,<INCREMENT:>,INC)
	ORNSDP(INI260,<STARTING-VOLUME-ID:>,SVI)
	$ETAB


INI240:	$NUMBER(NEXT(INI200),^D10,<Increment Value for Assigning Next Volume ID>,<$ACTION(CHKPOS),$DEFAULT(<1>)>)

INI260:	$NUMBER(NEXT(INI200),^D10,<Starting Volume Number to be used for Initialization>,<$ACTION(CHKVAL),$DEFAULT(<100000>)>)
SUBTTL	SETNOD	SET NODE COMMAND TABLES

IFN	FTDN60,<

SETNOD:	$NODNM(SETN10,<Node Name>,<$FLAGS(CM%PO)>)

SETN10:	$KEYDSP(SETN20)

SETN20:	$STAB
	ORNDSP(SETN95,<BYTES-PER-MESSAGE>,BPM)
	ORNDSP(SETN40,<CLEAR-SEND-DELAY>,CSD)
	ORNDSP(SETN50,<DATA-TERMINAL-READY>,DTR)
	ORNDSP(CONFRM,<NO-SIGNON-REQUIRED>,NSN)
	ORNDSP(SETN60,<RECORDS-PER-MESSAGE>,RPM)
	ORNDSP(CONFRM,<SIGNON-REQUIRED>,SON)
	ORNDSP(SETN70,<SILO-WARNING-LEVEL>,SWL)
	ORNDSP(SETN80,<TIMEOUT-CATEGORY>,TOU)
	ORNDSP(SETN90,<TRANSPARENCY>,TRA)
	$ETAB

SETN40:	$NUMBER(CONFRM,^D10,<Time in Jiffies>,<$ACTION(CHKVAL),$DEFAULT(<3>)>)

SETN50:	$KEY(CONFRM,SETN55,<$DEFAULT(<ON>)>)

SETN55:	$STAB
	ORNKEY(<OFF>,OFF)
	ORNKEY(<ON>,ON)
	$ETAB

SETN60:	$NUMBER(CONFRM,^D10,<Records per Message for 2780>,<$ACTION(CHKPOS),$DEFAULT(<7>)>)

SETN70:	$NUMBER(CONFRM,^D10,<Warning Level>,<$ACTION(CHKPOS),$DEFAULT(<64>)>)

SETN80:	$KEY(CONFRM,SETN85,<$DEFAULT(<PRIMARY>)>)

SETN85:	$STAB
	ORNKEY(<PRIMARY>,PRI)
	ORNKEY(<SECONDARY>,SEC)
	$ETAB

SETN90:	$KEY(CONFRM,SETN55,<$DEFAULT(<OFF>)>)
SETN95:	$NUMBER(CONFRM,^D10,<Bytes per message size for the Front End>)
>;END FTDN60
SUBTTL	SETSCH	SET SCHEDULER COMMAND FOR -20


TOPS20	<
SETSCH:	$KEYDSP(SETS10,<$DEFAULT(<BIAS-CONTROL>)>)

SETS10:	$STAB
	ORNDSP(SETS50,<BATCH-CLASS>,BAT)
	ORNDSP(SETS20,<BIAS-CONTROL>,BIA)
	ORNDSP(SETS40,<CLASS>,CLS)
	$ETAB
SETS20:	$NOISE(SETS30,<to>)

SETS30:	$NUMBER(CONFRM,^D10,<<Decimal Number, a small number to favor interactive processes, larger number for compute-bound>>,<$ACTION(CHKVAL)>)

SETS40:	$NOISE(SETS42,<number>)

SETS42:	$NUMBER(SETS44,^D10,<Scheduler Class Number>,<$ACTION(CHKVAL)>)

SETS44:	$NOISE(SETS46,<to percent>)

SETS46:	$NUMBER(CONFRM,^D10,<Percent for this Scheduler Class (0-99)>,<$ACTION(CHKPER)>)

SETS50:	$KEY(CONFRM,SETS52,<$ALTERNATE(SETS54)>)

SETS52:	$STAB
	ORNKEY(<BACKGROUND>,BCK)
	ORNKEY(<NONE>,NON)
	$ETAB

SETS54:	$NUMBER(CONFRM,^D10,<Scheduler Class for Batch>,<$ACTION(CHKVAL)>)


CHKPER:	SKIPL	T1,CR.RES(S2)	;CHECK THAT NUMBER
	CAILE	T1,^D100	;TOO LARGE
	SKIPA
	$RETT			;RETURN
	PUSHJ	P,FIXIT
	MOVEI	S2,[ASCIZ/Scheduler Percent out of Range/]
	$RETF
> ;END TOPS20
SUBTTL	ENABLE Command Tables
SUBTTL	DISABLE Command Tables

ENAFDB:	$KEYDSP	(ENA001,<$DEFAULT(OUTPUT-DISPLAY)>)

ENA001:	$STAB
TOPS20<	ORNDSP(ENA050,<AUTOMATIC-VOLUME-RECOGNITION>,AVR)>
TOPS20<	ORNDSP(ENACLS,<CLASS-SCHEDULER>,CLS)>
TOPS20<	ORNDSP(CONFRM,<FILE-RETRIEVAL-WAITS>,RET)>
	ORNDSP(CONFRM,<LOGGING>,LGG)
	ORNDSP(ENA100,<OUTPUT-DISPLAY>,OPD)
	ORNDSP(CONFRM,<QUEUE-REQUESTS>,QUE)
TOPS10<	ORNDSP(CONFRM,<STRUCTURE-RECOGNITION>,ASR)>
TOPS10< ORNDSP(ENA050,<VOLUME-RECOGNITION>,AVR)>
	$ETAB

ENA050:	$NOISE(ENA065,<for>)

ENA065:	$KEY(CONFRM,ENA070,<$ALTERNATE(ENA075),$DEFAULT(<TAPE-DRIVES>)>)

ENA070:	$STAB
TOPS10< ORNKEY(<DISK-DRIVES>,DSK)>
	ORNKEY(<TAPE-DRIVES>,ATP)
	$ETAB
TOPS20<
ENA075:	$DEV(CONFRM,$HELP(Tape Drive Name))
> ;END TOPS20
TOPS10<
ENA075:	$DEV(CONFRM,<$HELP(<Tape or Disk Drive Name>)>)
> ;END TOPS10

ENA100:	$NOISE	(ENA105,<of>)

IFG	NUMAPL,<
ENA105:	$KEY(ENA160,ENA110,<$ALTERNATE(ENA140)>)
>;END NUMAPL
IFLE	NUMAPL,<
ENA105:	$KEY(ENA160,ENA110)
>;END

	DEFINE	X(A,B,C),<ORNKEY(<A'-MESSAGES>,<B>)>


	;
	; THE OBJORN MUST BE IN ALPHABETICAL ORDER AND BE BETWEEN ALL
	; AND USER INORDER TO WORK OTHERWISE INDIVIDUALLY ADD THE ITEMS
	;
	;


ENA110:	$STAB
	ORNKEY(<ALL-MESSAGES>,ALM)
	OBJORN			;EXPAND THE MACRO
	ORNKEY(<USER-MESSAGES>,USR)
	$ETAB

IFG	NUMAPL,<
ENA140:	$KEY(CONFRM,ENA150)

	DEFINE	X(A,B,C),<ORNKEY(<A'-MESSAGES>,<B>)>

ENA150:	$STAB
	TABAPL
	$ETAB
>;END NUMAPL

ENA160:	$SWITCH(NEXT(ENA160),ENA170,<$ACTION(SHRSWT),$ALTERNATE(CONFRM)>)

ENA170:	$STAB
	ORNSWI(<INFORMATION-MESSAGES>,OTH)
	ORNSWI(<JOB-MESSAGES>,JOB)
	ORNSWI(<OPR-ACTION-MESSAGES>,OAM)
	$ETAB
SUBTTL	ENACLS	ENABLE CLASS SCHEDULER

TOPS20 <

ENACLS:	$SWITCH(,ENAC10,<$ALTERNATE(CONFRM),$ACTION(SHRSWT),$PREFILL(ENAACT)>)

ENAC10:	$STAB
	ORNSDP(ENAC30,<CLASS-ASSIGNMENTS:>,CAS)
	ORNSDP(ENAC20,<WINDFALL:>,WFL)
	$ETAB

ENAC20:	$KEY(NEXT(ENAC10),ENAC25,<$DEFAULT(<ALLOCATED>)>)

ENAC25:	$STAB
	ORNKEY(<ALLOCATED>,ALO)
	ORNKEY(<WITHHELD>,WHD)
	$ETAB

ENAC30:	$KEY(NEXT(ENAC10),ENAC35,<$DEFAULT(<ACCOUNT>)>)

ENAC35:	$STAB
	ORNKEY(ACCOUNT,ACT)
	ORNKEY(<POLICY-PROGRAM>,PPR)
	$ETAB

ENAACT:	MOVE	S1,CMDCOD			;GET THE COMMAND CODE
	CAIE	S1,.KYDIS			;WAS IT DISABLE?
	$RETT					;NO..RETURN O.K.
	MOVEI	S1,CONFRM			;GET CONFRM ADDRESS
	AOS	S1				;BUMP TO NEXT PDB
	STORE	S1,CR.PDB(S2),RHMASK		;RESET NEXT PDB
	$RETT					;RETURN
> ;END TOPS20
SUBTTL	CLOSE Command Tables
SUBTTL	DEFINE Command Tables


CLOFDB:	$KEYDSP	(CLO001,<$DEFAULT(<LOG>)>)
CLO001:	$STAB
	ORNDSP	(CONFRM,LOG,LOG)
	$ETAB
SUBTTL	REPORT Command Tables


RPTFDB:	$NOISE	(RPT005,<by>)

RPT005:	$FIELD (RPT015,<User Name>)

RPT015:	$FIELD	(RPT020,<Device>)

RPT020:	$CRLF	(<$ALTER(RPT025),$ACTION(TXTLIN##),$HELP(<confirm for multiple line response>)>)


RPT025:	$CTEXT	(CONFRM,<single line response>)
SUBTTL	Mount Command


;Remove the Mount command Jul-9-79
	comment \


MTNFDB:	$KEY(MTN020,MTN010,<$DEFAULT(<STRUCTURE>)>)

MTN010:	$STAB
	ORNKEY(<STRUCTURE>,STR)
	$ETAB


MTN020:	$DEV(MTN030,<$HELP(<Structure Name>),$FLAGS(CM%PO)>)

MTN030:	$NOISE(MTN040,<as>)

MTN040:	$DEV(CONFRM,<$HELP(<Alias Name to use for Structure>),$ALTERNATE(CONFRM),$FLAGS(CM%PO)>)

\;end of MOUNT code
SUBTTL	Identify command

IDNFDB:	$NOISE(IDN010,<Tape on Drive>)

IDN010:	$DEV(IDN020,<$HELP(<Tape Drive Name>)>)

IDN020:	$NOISE(IDN030,<with>)

IDN030:	$KEYDSP(IDN040,<$DEFAULT(<REQUEST-ID>)>)

IDN040:	$STAB
	ORNDSP(IDN050,<REQUEST-ID>,RQN)
	ORNDSP(CONFRM,<SCRATCH>,SCR)
	ORNDSP(IDN060,<VOLUME-ID>,VID)
	$ETAB

IDN050:	$NUMBER(CONFRM,^D10,<Request Number of the Mount Request>,<$ACTION(CHKPOS)>)

IDN060:	$QUOTE(CONFRM,<Volume-id in Quotes if has non-alphanumeric characters>,<$ALTERNATE(IDN070)>)

IDN070:	$FIELD(CONFRM,<Volume-id without quotes>)
SUBTTL	Switch Command


TOPS20 <
SWIFDB:	$NOISE(SWI010,<Request Number>)

SWI010:	$NUMBER(SWI020,^D10,<Request Number of the Mount Request to Switch>)

SWI020:	$NOISE(SWI030,<to new Volume>)

SWI030:	$QUOTE(SWI050,<Volume-id in Quotes if has non-alphanumeric characters>,<$ALTERNATE(SWI040)>)

SWI040:	$FIELD(SWI050,<Volume-id without quotes>)

SWI050:	$NOISE(SWI060,<on Drive>)

SWI060:	$DEV(CONFRM,<$HELP(<Tape Drive to Switch Request to>),$ALTERNATE(CONFRM)>)

> ;END TOPS20
SUBTTL	Dismount Command


DSMFDB:$KEYDSP(DSM010)

DSM010:	$STAB
	ORNDSP(DSM020,<STRUCTURE>,STR)
	ORNDSP(DSM030,<TAPE-DRIVE>,TAP)
	$ETAB

TOPS10 <

DSM020:	$DEV	(DSM040,<$HELP(<Structure Name to Dismount>)>)

> ;End TOPS10

TOPS20 <

DSM020:	$DEV	(CONFRM,<$HELP(<Structure Name to Dismount>)>)

> ;End TOPS20

DSM030:	$DEV	(CONFRM,<$HELP(<Tape Drive to Dismount tape on>)>)

TOPS10 <

DSM040:	$SWITCH(,DSM050,<$ALTERNATE(CONFRM)>)

DSM050:	$STAB
	ORNSDP(CONFRM,<REMOVE>,REM)
	$ETAB

> ;End TOPS10

	comment \
	;removed on July 11,1979
SUBTTL	Unload Command

UNLFDB:	$NOISE(UNL010,<Tape drive>)

UNL010:	$DEV	(CONFRM,<$HELP(<Tape Drive to Unload>)>)

;	UNDEFINED FOR NOW
	\;end of comment


SUBTTL	Recognize Command


TOPS10 <
RECFDB:	$NOISE(REC010,<Labelled Tape on>)

REC010:	$DEV	(CONFRM,<$HELP(<Tape Drive to Recognize>)>)
> ;END TOPS10
SUBTTL	PUSH Command
TOPS20 <

PUSFDB::	$NOISE(PUS100,<to EXEC Level>)

PUS100:	$CRLF(<$ACTION(PUSHRT##)>)
> ;END TOPS20
SUBTTL	HELP Command

	ND	CR.ADR,4		;Address of current argument

HLPFDB:: $NOISE	(HLPFD1,<With>)

HLPFD1:	$CTEXT(,<Command>,<$ACTION(HLPACT),$DEFAULT(HELP)>)

HLPACT:	MOVE	T1,CR.ADR(S2)		;Get the data
	HRROI	T1,ARG.DA(T1)		;Point to the string
	$CALL	SETOUT##		;Setup proper $TEXT defaults
	MOVEI	S1,HLPFD		;Point to help file
	MOVE	S2,T1			;Point to string
	$CALL	P$HELP##
	$CALL	SNDOUT##		;Send the output
	$CALL	P$NPRO##		;Mark no processing
	$RETT				;Return

;File descriptor for help file for OPR

TOPS20	<
HLPFD:	XWD	HSIZ,0
	ASCIZ /HLP:OPR.HLP/
HSIZ==.-HLPFD
> ;END TOPS20

TOPS10	<
HLPFD:	$BUILD	FDMSIZ
	$SET(.FDLEN,FD.LEN,FDMSIZ)
	$SET(.FDSTR,,<SIXBIT/HLP/>)
	$SET(.FDNAM,,<SIXBIT/OPR/>)
	$SET(.FDEXT,,<SIXBIT/HLP/>)
	$EOB
> ;END TOPS10

	END