Google
 

Trailing-Edge - PDP-10 Archives - cuspmar86binsrc_2of2_bb-fp63a-sb - 10,7/galaxy/operat/ornmac.mac
There are 44 other files named ornmac.mac in the archive. Click here to see a list.
	UNIVERSAL	ORNMAC	Symbol File for ORION AND OPR
	SUBTTL	Murray Berkowitz/PJT/GAT/CTK/DPM/LWS	12-SEP-85


;
;
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986.
;ALL RIGHTS RESERVED.			  
;                    
;
;     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.

	SEARCH	GALCNF			;GET GALAXY OPTIONS
	SEARCH	GLXMAC
	SALL				; CLEAN LISTINGS

TOPS10 <
	IF1,<PRINTX BUILDING A GALAXY-10 ORNMAC>
		SEARCH	UUOSYM>
TOPS20 <
	IF1,<PRINTX BUILDING A GALAXY-20 ORNMAC>
		SEARCH	MONSYM>

	XP	FTRJE,FTRJE		;SETUP RJE VALUE
	XP	FTDN60,FTDN60		;SETUP DN60 VALUE
	XP	FTDQS,FTDQS		;SETUP DQS VALUE

;Define TOPS20 OPR priv bits until formally defined

TOPS20 <
	ND	.OBSOP,1		;SYSTEM OPR PRIV
	ND	.OBLOP,2		;LOCAL OPR PRIV
	ND	.OBROP,3		;REMOTE OPR PRIV
> ;End TOPS20

	.JBVER==137
	%%.OPR==37			;ORNMAC VERSION NUMBER

;** Both OPR and ORION now have the same version/edit.
;** This will avoid the confusion of which program's edit to update
;** when changes are made to OPRCMD or OPRPAR - they are both linked
;** into OPR and ORION.

;** Define OPR/ORION's version here

	OPRWHO==0
	OPRVER==5
	OPRMIN==0
	OPREDT==760

	OPRVRS==<VRSN.(OPR)>

SUBTTL	Table of Contents

;               TABLE OF CONTENTS FOR ORNMAC
;
;
;                        SECTION                                   PAGE
;    1. Table of Contents.........................................   2
;    2. Operating system dependent definitions....................   3
;    3. KEYMAIN,KEYOBJ,OBJORN and KEYWORD symbol definitions......   4
;    4. SWITCH  Symbol definitions for switches...................   5
;    5. TABAPL  Syntax table macros...............................   6
;    6. GALCNF parameters.........................................   7
;    7. ORNKEY, ORNDSP,ORNSDP and ORNSWI command syntax macros....   8
;    8. General message format....................................   8
;    9. OPR/ORION message types...................................   9
;   10. Special AC assigments.....................................  10
;   11. The object block..........................................  11
;   12. COMMAND message...........................................  12
;   13. HELLO message.............................................  13
;   14. START,PAUSE,CONTINUE and SHUTDOWN messages................  14
;   15. SETUP message.............................................  15
;   16. SETUP REPLY message.......................................  16
;   17. HELLO message for applications (NSP)......................  17
;   18. HELLO ACKNOWLEDGEMENT message for applications (NSP)......  18
;   19. SET message...............................................  19
;   20. FORWARDSPACE and BACKSPACE message........................  20
;   21. HOLD and RELEASE message..................................  21
;   22. MODIFY message............................................  22
;   23. ROUTE message.............................................  23
;   24. DELETE message............................................  25
;   25. SEND message..............................................  26
;   26. NOTIFY message............................................  27
;   27. SUPPRESS message..........................................  28
;   28. CANCEL message............................................  29
;   29. REQUEUE message...........................................  30
;   30. DEFINE message............................................  31
;   31. TAPE and DISK messages....................................  32
;   32. SHOW messages for tapes...................................  33
;   33. SWITCH message............................................  34
;   34. DISMOUNT message..........................................  35
;   35. RECOGNIZE message (TOPS10)................................  35
;   36. SET TAPE and DISK messages................................  36
;   37. SET STRUCTURE message for disks...........................  37
;   38. SET TAPE INITIALIZE message...............................  38
;   39. ENABLE and DISABLE message for tapes......................  39
;   40. MOUNT message for tape and disk...........................  40
;   41. IDENTIFY message for tapes................................  41
;   42. RESPONSE message..........................................  42
;   43. LOCK/UNLOCK message.......................................  43
;   44. USAGE ACCOUNTING MESSAGES.................................  44
;   45. Standard message format...................................  45
;   46. DN60 command message......................................  46
;   47. WTO,WTOR and ACK formats for all programs.................  47
;   48. ALIGN message.............................................  48
;   49. STATUS message............................................  49
;   50. SHOW CONTROL-FILE message.................................  50
;   51. SHOW STATUS message.......................................  51
;   52. SHOW STATUS IBM-NODE message..............................  52
;   53. SHOW PARAMTERS IBM-NODE message...........................  52
;   54. MODIFY SYSTEM-LISTS message...............................  53
;   55. SHOW SYSTEM-LIST message..................................  54
;   56. SHOW ALLOCATION message...................................  55
;   57. LOGOUT Message - Function 27 (sent by IPCC)...............  56
;   58. ORION   Error codes and messages..........................  57
;   59. PARSET  Parser setup macros...............................  58
;   60. Node/Operator Data Base...................................  59
;   61. OPR list entry............................................  60
;   62. OPR table database structure..............................  60
;   63. OPERATOR message list entry...............................  61
;   64. Parser storage allocation definitions.....................  62
;   65. PDB     Parser data block definitions.....................  63
;   66. Parser flag values........................................  63
;   67. Parser argument block description.........................  64
;   68. Parser action routine argument block description..........  65
;   69. Parser return block definition............................  66
;   70. Parser keyword table descriptions.........................  67
;   71. Message resend list database description..................  68
;   72. Message send failure database description.................  69
;   73. Interrupt system definitions..............................  70
;   74. DN200 OPR definitions.....................................  71
;   75. SRV: Database for TOPS20..................................  72
;   76. Error tables for OPR......................................  73
	SUBTTL Revision History VERSION 5 OPR and ORION Programs (All Modules)

Comment \

 Edit	Modules	Text
-------------------------------------------------------------------------------
 700	ALL	Make OPR and ORION's edit numbers the same since basically
		ones no good without the other. Reference ORNMAC's and
		OPR/ORION's version in all modules to help catch version
		skews. Move all edit histories from each module and put
		them in ORNMAC.

 701	ORNMAC	Add support for SET KSYS command. Even the hooks for setting
	OPRQSR	KSYS events. Add support for SHOW KSYS, too.
	OPRCMD
	ORION

 702	ORNMAC	Add a PUSH command to OPR on the -10.
	OPRCMD

 703	ORNMAC	Add code to extract new .QBTTY block
	ORION	from monitor IPCF msg from 'SEND OPR'.

 704	ORNMAC	Add support for the Event Queue
	OPRCMD
	OPRQSR

 705	ORNMAC	Add priv'd OPSER commands that aren't monitor
	OPRCMD	commands, namely: SET BATMAX, LOGMAX, and BATMIN;
	ORION	RESTRICT and UNRESTRICT device; and
	OPRQSR	ENABLE/DISABLE JOB-SCHEDULING (ALL-CPUs, <ONLY cpu>, cpu).

 706	OPRPAR	Add routine SAVUSR to allow the return of PPN masks
		from .CMUSR calls.
		 9-Aug-84  GCO 10071  /DPM

 707	ORNMAC	Add new routines to OPRPAR to facilitate the parsing
	OPRPAR	of 8-bit data.  Routines must be called by $PREFIL.
		New routines are P$7BIT, P$8BIT, P$DBIT and P$XBIT.
		 9-Aug-84  GCO 10072  /DPM

 710	OPRPAR	Add support for the $SUBCM parsing macro to allow
		TOPS-20 style sub-command processing.
		13-Aug-84  GCO 10073  /DPM

 711	ORNMAC	Add support for Usage file events.
	OPRCMD	
	OPRQSR	16-Aug-84  GCO 10077  /LWS

 712	ORION	ORION never calls P$INIT to set up default byte pointers.
		24-Aug-84  GCO 10081  /DPM

 713	ORION	Add code to support operator log file closure events.
	OPRQSR
	OPRCMD	5-Sep-84  GCO 10092  /LWS

714	ORNMAC	Add new field to G$$ATB X macros to specify internal
	ORION	application dispatch addresses.	GCO 10093 /NT
	OPRCMD

715	ORION	Implement Orion part of AUTO-TAKE files.
	OPRQSR
	OPRLOG
	OPRPAR	2-OCT-84  GCO 10078  /CTK

716	ORION	Make it easier for internal applications to send messages to
	OPRLOG	OPR.		GCO 10102/NT

717	OPRPAR	Add AUTO TAKE file /FAILSOFT and /REASON switches.
		12-OCT-84	GCO 10078	/CTK

720	ORNMAC	Remove revision history prior to OPR/ORION version 5.
		13-Oct-84	GCO 10103/NT

721	ORION	Add AUTO TAKE file /DISPLAY and /NODISPLAY switches.
	OPRPAR	Requires QSRADM edit to function.
	OPRQSR	19-OCT-84	GCO 10078	/CTK

722	ORNMAC	Remove SET BATMAX, BATMIN, CORMAX, CORMIN, and LOGMAX
	ORION	commands. Include above plus DATE, DAYTIME, and SCHEDULE
	OPRQSR	into SET SYSTEM XXXXX. Add new SHOW SYSTEM PARAMETERS
	OPRCMD	command. Make ORION append to current log file on restart
	OPRLOG	instead of renaming it.
		22-Oct-84 GCO 10106 /LWS

723	ORION	Fix TXTMOV to honor byte count.
		26-OCT-84 GCO 10108 /NT

724	ORION	Be more specific when displaying CPU status in SHOW
	OPRQSR	SYSTEM PARAMETERS display.
		29-Oct-84 GCO 10111 /LWS

725	ORNMAC	Add commands and parsing routine to OPR and ORION
	OPRCMD	in support of FAL streams.
	OPRQSR	14-Nov-84 GCO 10121 /LWS

726	OPRPAR	Fix five plus year old TAKE command garbage error
	OPR	message bug.	6-DEC-84 GCO 10128/CTK

727	CNFORN	Add commands to enable and disable CI and NI.
	CNFTAB	29-Jan-85 GCO 10141/JAD

730	CNFTAB	Fix dynamic configuration code to handle CPUs which
		are missing CI/NI.  8-Mar-85 GCO 10154 /JAD
	OPRQSR	Make it easier to add customer output to the SHOW
		SYSTEM PARAMETERS command.  8-MAR-85 GCO 10155 /JAD

731	ORNMAC	Add support in DEFINE NODE command to allow the
	OPRCMD	user to define IBMCOM front end on a nonzero CPU.
	OPRQSR	11-Mar-85 GCO 10159 /LWS

732	ORNMAC	Rework a lot of the internal applications so we
	CNFORN	ACK things somewhat consistently with the rest
	LCPORN	of the GALAXY.  Provide a uniform internal ACK
	ORION	mechanism for any future internal applications.
		12-Mar-85 GCO 10163 /JAD

733	ORION	Allow the full 132 characters on SEND ALL commands.
		20-Mar-85  GCO 10170  /DPM

734	ORNMAC	Implement the new DEFINE FILE-ACCESS DEFAULT-PPN and
	OPRQSR	DEFINE FILE-ACCESS REJECTION-LIST commands for the
	OPRCMD	multithreaded FAL.
	ORION	25-Mar-85  GCO 10178  /DRB

735	CNFORN	Print error text for DIAG. UUO errors.
		8-Apr-85  GCO 10188  /JAD

736	CNFORN	New DIAG. UUO functions to add/remove CI/NI.
		22-Apr-85  GCO 10194  /JAD

737	OPR	Use real PITMR interrupts.  Don't fall out of
	OPRPAR	sub-command mode during interrupts.  This will
		probably fix the age old bug where ill mem refs
		happened unwinding the parser and GLXSCN during
		interrupts.  No guarantees though ...
		21-May-85  GCO 10214  /DPM

740	OPRPAR	Make sub-command logging work.
	OPRLOG
		23-May-85  GCO 10217  /DPM

741	OPRQSR	Add KSYS time to SHOW SYSTEM PARAMETERS.
		5-Jun-85  GCO 10227  /JAD

742	ORNMAC	Completely redo ENABLE/DISABLE QUEUE handling.
	OPRCMD	Requires QUASAR edit 1353.
	ORION
		 6-Jun-85  GCO 10227  /DPM

743	ORNMAC	DQS support for OPR.  Expand the DEFINE NODE command
	OPRCMD	to allow defining a node as a SERVER.
		6-Jun-85  GCO 10228  /JAD

744	ORION	AUTO take command processing quits after processing
		certain commands (SET, DEFINE, etc.) because expecting
		T4 (file line counter) to be preserved accross all
		commands.
		13-Jun-85  GCO 10231  /DPM

745	CNFORN	Add commands to control settings of flags in DEBUGF which
	CNFTAB	specify if the monitor should dump and/or reload on DEBUG,
		JOB, or CPU stopcodes.
		27-Jul-85  GCO 10264  /JAD

746	OPRPAR	Return extended data block (PPN mask) if CM%WLA set.
		 3-Sep-85  GCO 102XX  /DPM

747	ALL 	Update copyright macros.

750	ORION	Set up command tables properly so application commands
		work in Auto Take files.
		12-Sep-85  GCO 10285  /JAD

751	ORION	Make sure we have an output page before we try to
		release it.
		16-Sep-85 GCO 10288 /NT

752	ORION	Allow auto take file to be queued up while processing
	OPRPAR	an auto take file.  Aviod ill mem refs during same.
		Handle the case where two contexts from one job have
		signed on to ORION.
		 2-Oct-85  GCO 10295  /DPM

753	CNFORN	Teach CNFORN how to do GETTABs from CPU subtables.
		 4-Oct-85  GCO 10296  /JMF

754	CNFORN	.STCPU wrong. Sets date rather than CPU runability. Resolve
		symbol conflict.
		 5-Oct-85  GCO 10297  /JMF

755	ORION	Allow auto take file to be queued up while processing
	OPRPAR	a regular take file.  Perform privilege checking on the
		MDA message that invokes an auto-take file.  Always fully
		resolve the filespec on TAKE commands.
		 8-Oct-85  GCO 10299  /RCB

756	OPRPAR	Fix ill mem ref caused by timer interrupt routines.
		 8-Oct-85  GCO 10300  /RCB

757	OPRQSR	Don't allow impossible unit number ranges in BLDOBJ.
		22-Oct-85  GCO 10308  /JAD

760	ORION	Avoid possible BPN stopcodes caused by G$ERR containing
		last ACK text address during auto command file processing
		by zeroing G$ERR prior to each call to COMMAN.
		17-Jan-85  GCO 10365  /DPM

\ ;End of Revision History
SUBTTL	Operating system dependent definitions

;DEFINE TAPE AND TTY FLAGS FOR DEVICE DESIGNATORS

SYSPRM	DV%MTA,DV.MTA,.DVMTA		;TAPE VALUE
SYSPRM	DV%TTY,DV.TTY,.DVTTY		;TTY VALUE

SUBTTL	KEYMAIN,KEYOBJ,OBJORN and KEYWORD symbol definitions

;THE VALUES HERE ARE USED TO PASS WHICH KEYWORD THE PARSER SAW
; TO THE EVENT PROCESSOR
;THERE WILL BE 3 KEYWORD TABLES
;	KEYMAIN	-	MAIN KEYWORDS THAT START COMMANDS
;	KEYOBJ	-	KEYWORDS THAT ARE OBJECTS
;	OBJORN	-	ORION OBJECTS ..DEVICES BAT,LPT,CDP,CDR
;	KEYWORD	-	ALL OTHER KEYWORDS

DEFINE	KEYMAIN,<
	X	ALIGN,ALI		;;ALIGN
	X	BACKSPACE,BKS		;;BACKSPACE
	X	CANCEL,CNC		;;CANCEL
	X	CLOSE,CLO		;;CLOSE
	X	CONTINUE,CNT		;;CONTINUE
	X	DELETE,DEL		;;DELETE COMMAND
IFN	FTDN60,<
	X	DEFINE,DEF		;;DEFINE
> ;END FTDN60
IFE	FTDN60,<
TOPS10<	X	DEFINE,DEF	>	;;DEFINE
> ;END FTDN60
	X	DISABLE,DIS		;;DISABLE
	X	DISMOUNT,DSM		;;DISMOUNT COMMAND
	X	ENABLE,ENA		;;ENABLE
	X	ENTER,ENT		;;ENTER
	X	EXIT,EXT		;;EXIT
	X	FORWARDSPACE,FWS	;;FORWARDSPACE
	X	HELP,HLP		;;HELP COMMAND
	X	HOLD,HLD		;;HOLD
	X	IDENTIFY,IDN		;;IDENTIFY
	X	MODIFY,MOD		;;MODIFY COMMAND
	X	MOUNT,MTN		;;MOUNT COMMAND
	X	PAUSE,PAU		;;PAUSE
	X	PUSH,PUS		;;PUSH COMMAND
	X	PRINT,PRT		;;PRINT COMMAND
TOPS10<	X	RECOGNIZE,REC >		;;RECOGNIZE COMMAND
	X	RELEASE,REL		;;RELEASE
	X	REPORT,RPT		;;REPORT
	X	REQUEUE,REQ		;;REQUEUE
	X	RESPOND,RSP		;;RESPOND
TOPS10<	X	RESTRICT,RST >		;;RESTRICT
	X	RETURN,RTN		;;RETURN
	X	ROUTE,RTE		;;ROUTE (ROUTE COMMAND FOR QUASAR)
	X	SEND,SND		;;SEND
	X	SET,SET			;;SET
	X	SHOW,SHW		;;SHOW
	X	SHUTDOWN,SHD		;;SHUTDOWN
	X	START,STA		;;STARTUP
	X	SUBMIT,SUB		;;SUBMIT COMMAND
	X	SUPPRESS,SUP		;;SUPPRESS
	X	TAKE,TAK		;;TAKE
	X	UNLOAD,UNL		;;UNLOAD COMMAND
TOPS10<	X	UNRESTRICT,URS >	;;UNRESTRICT COMMAND
	X	WAIT,WAI		;;WAIT COMMAND

;;COMMANDS FOR TAPE AND DISK
	X	SWITCH,SWI		;;SWITCH COMMAND

;;COMMANDS FOR MDA ON -10
	X	LOCK,LOC		;;LOCK COMMAND
	X	UNLOCK,ULC		;;UNLOCK

;;ADD NEW COMMANDS AT THE END OF THIS TABLE
	X	<\"32>,CTZ		;;Control-Z (TOPS-10 style exit)
	X	NEXT,NXT		;;[NXT] NEXT COMMAND

> ;END OF KEYMAIN


DEFINE	KEYOBJ,<
X	JOB,JOB				;;JOB
X	OPERATOR,OPR			;;OPERATOR
X	TERMINAL,TRM			;;TERMINAL
> ;END KEYOBJ


; *** THE OBJORN ENTRIES MUST BE IN ALPHABETICAL ORDER. ***


DEFINE	OBJORN,<
X	(<BATCH>,BAT)			;;BATCH-STREAM
X	(<CARD-PUNCH>,CDP)		;;CARD-PUNCH
X	<CARD-READER-INTERPRETER>,BIN	;;READER INTERPRETER
X	(<EVENT>,EVT)			;;EVENT
X	<FAL>,FAL			;;FAL-STREAM
TOPS20 <
X	<FILE-RETRIEVAL>,RET 		;;RETREIVAL REQUESTS
> ;END TOPS20
IFN FTFTS,<
X	<FTS>,FTS			;;FTS Messages
> ;End of FTFTS conditional
X	<MOUNT>,MNT			;;MOUNT REQUESTS
X	(<PAPER-TAPE-PUNCH>,PTP) ;;PAPER-TAPE-PUNCH
X	PLOTTER,PLT			;;PLOTTER
X	PRINTER,LPT			;;PRINTER
X	READER,RDR			;READER
> ;END OBJORN

DEFINE KEYWORD,<
X	AFTER,AFT			;;AFTER
X	<ANF-10>,ANF			;;NETWORK TYPE
X	ALL,ALL				;;ALL
X <ALL-MESSAGES>,ALM			;;ALL-MESSAGES
X <ALL-NODES>,ALG			;;ALL-NODES
X	ASK,ASK				;;ASK
X	ATTRIBUTE,ATR			;;ATTRIBUTE
X(<BEGINNING-OF>,BEG)			;;BEGINNING-OF
X <CONTROL-FILE>,CTL			;;CONTROL-FILE
X	COPY,CPY			;;COPY
X(<CURRENT-POSITION>,CUR)		;;CURRENT-POSITION
X <CURRENT-REQUEST>,ACR			;;AFTER-CURRENT-REQUEST
X	DAYTIME,DAY			;;DAYTIME
X	DECNET,DCN			;;NETWORK TYPE
X <DEFAULT-PPN>,DPP			;;DEFAULT PPN
X <ERROR-MESSAGES>,ERM			;;ERROR-MESSAGES
X <EVERY-REQUEST>,AER			;;AFTER-EVERY-REQUEST
X	FILE,FIL			;;FILE
X (<FORMS-TYPE>,FOT)			;;FORMS-TYPE
X	IGNORE,IGN			;;IGNORE
X	IMMEDIATELY,IMM			;;IMMEDIATELY
X	<JOB-MESSAGES>,JOM		;;JOB MESSAGES
X	KEYPAD,KPD			;;KEYPAD
X (<LIMIT-EXCEEDED-ACTION>,LEA)		;;LIMIT-EXCEEDED-ACTION
X	LINE,LIN			;;LINE....LINE NUMBER
X	LOG,LOG				;;LOG
X	LOGGING,LGG			;;LOGGING
X (<MEMORY-LIMITS>,MEM)			;;MEMORY-LIMITS
X	MESSAGES,MSG			;;MESSAGES
X	(<NETWORK>,NET)			;;NETWORK-TYPE
X	NODE,NOD			;;NODE
X	NOKEYPAD,NKP			;;NOKEYPAD
X(<NOOPR-INTERVENTION>,NOI)		;;NOOPR-INTERVENTION
X <OPR-ACTION-MESSAGES>,OAM		;;OPERATOR ACTION MESSAGES
X	<ONLINE>,ONL			;;ONLINE
X(<OPR-INTERVENTION>,OIA)		;;OPR-INTERVENTION
X	OTHER,OTH			;;OTHER MESSAGES
X <OUTPUT-DISPLAY>,OPD			;;OUTPUT-DISPLAY
X(<OUTPUT-LIMITS>,OPL)			;;OUTPUT-LIMITS
X (<PAGE-LIMITS>,PGL)			;;PAGE-LIMITS
X	PARAMETERS,PRM			;;PARAMETERS
X	PRIORITY,PRI			;;PRIORITY
X (<PRIORITY-LIMITS>,PRL)		;;PRIORITY-LIMITS
X <REJECTION-LIST>,REJ			;;REJECTION-LIST
X	REQUEST,RQN			;;REQUEST NUMBER
X	QUEUE,QUE			;;QUEUE
IFN FTDQS,<
X	SERVER,SRV			;;SERVER
>;; END IFN FTDQS
X	SITGO,SIT			;;SITGO
X	STATUS,STS			;;STATUS
X	SYSTEM,SYS			;;SYSTEM
X <TAKE-COMMANDS>,TAC			;;TAKE-COMMANDS
X (<TIME-LIMITS>,TIM)			;;TIME-LIMITS
X	TIMESHARING,TSR			;;[ENABLE] TIMESHARING
X	TO,TO				;;TO (USED IN ROUTE COMMAND)
X	TYPE,TYP			;;TYPE (TERMINAL TYPE)


;DN60 KEYWORDS

IFN	FTDN60,<

X	<BYTES-PER-MESSAGE>,BPM		;;BYTES PER MESSAGE
X	<CLEAR-SEND-DELAY>,CSD		;;CLEAR TO SEND DELAY
X	<DATA-TERMINAL-READY>,DTR ;;DATA TERMINAL READY
X	<EMULATION>,EMU			;;EMULATION
X	HASP,HSP			;;HASP
X	OFF,OFF				;;OFF
X	ON,ON				;;ON
X	<RECORDS-PER-MESSAGE>,RPM ;;RECORDS PER MESSAGE
X	SECONDARY,SEC			;;SECONDARY PROTOCOL
X	<SILO-WARNING-LEVEL>,SWL ;;SILO WARNING LEVEL

;;	SYMBOL DEFINED BUT VALUE O.K.

;;X	<TERMINATION>,TRM	;;TERMINATION
X	<TIMEOUT-CATEGORY>,TOU		;;TIMEOUT CATEGORY
X	<TRANSPARENCY>,TRA		;;TRANSPARENCY
X	2780,278			;;2780
X	3780,378			;;3780
X	CPU,CPU				;;CPU DN60 IS ON
X	<DL10-PORT>,D10			;;DL10 BASED
X	DTE,D20				;;DTE-20 BASED

> ;END FTDN60

;;TAPE AND DISK KEYWORDS

X	<ACKNOWLEDGED>,ACK		;;ACKNOWLEDGED
X	<ALL-TAPE-DRIVES>,ATP		;;ALL TAPE DRIVES
X	<ANSI>,ANS			;;ANSI LABELS
X	<AUTOMATIC-VOLUME-RECOGNITION>,AVR	;;AVR
X	<AVAILABLE>,AVA			;;AVAILABLE
X	<CHANNEL>,CHN			;;CHANNEL
X	<DRIVE>,DRV			;;DRIVE
X	<DISK-DRIVE>,DSK		;;DISK DRIVE
X	<DOMESTIC>,DOM			;;DOMESTIC
X	<EBCDIC>,EBC			;;EBCDIC
X	<FOREIGN>,FOR			;;FOREIGN
X	<INITIALIZE>,INI		;;INITIALIZE
X	NO,NO				;;NO
X	<REGULATED>,REG			;;REGULATED
X	<SCRATCH>,SCR			;;SCRATCH
X	<STRUCTURE>,STR			;;STRUCTURE
X	<TAPE-DRIVE>,TAP		;;TAPE-DRIVE
X	<TOPS20>,T20			;;TOPS-20 LABELS
X	<UNAVAILABLE>,UAV		;;UNAVAILABLE
X	UNIT,UNI			;;UNIT (DISK UNIT)
X	<ACTIVE-SWAPPING-LIST>,ASL ;;DISK UNITS ON WHICH TO SWAP
X	<CRASH-DUMP-LIST>,CDL		;;STRS ON WHICH TO DUMP
X	<SYSTEM-SEARCH-LIST>,SSL ;;STRS IN SSL:
;;VALUE ALREADY DEFINED SO NO NEED TO DEFINE AGAIN
;X	<UNLABELED>,UNL		;;UNLABELED
X	<UNREGULATED>,URG		;;UNREGULATED
X	<VOLUME-ID>,VID			;;VOLUME-ID
X	YES,YES				;;YES
X	200,200				;;DENSITY OF 200
X	556,556				;;DENSITY OF 556
X	800,800				;;DENSITY OF 800
X	160,160				;;DENSITY OF 1600
X	625,625				;;DENSITY OF 6250


;;TOPS20 COMMANDS

X	<BIAS-CONTROL>,BIA		;;BIAS CONTROL
X	<SCHEDULER>,SCH			;;SCHEDULER
X	<NONE>,NON			;;NONE
X	<BACKGROUND>,BCK		;;BACKGROUND
X	<CLASS>,CLS			;;CLASS
X	<ACCOUNTS>,ACT			;;ACCOUNTS
X	<ALLOCATED>,ALO			;;ALLOACTED
X	<WITHHELD>,WHD			;;WITHHELD
X	<POLICY-PROGRAM>,PPR		;;POLICY PROGRAM


;;MDA COMMANDS

X	<AUTOMATIC-STRUCTURE-RECOGNITION>,ASR	;;ASR
X	<SYSTEM-LISTS>,SLS		;;FOR SHOW SYSTEM-LISTS
X	<INCLUDE>,INC			;;INCLUDE (SYSTEM LISTS)
X	<EXCLUDE>,EXC			;;EXCLUDE (SYSTEM LISTS)
X	<ALLOCATION>,ALC		;;FOR SHOW ALLOCATION
X	<BATCH-REQUEST>,BRQ		;;BATCH REQ FOR SHOW ALLOCATION

;;KSYS COMMANDS	- <EVERY> AND <DAILY> ARE DEFINED BELOW

X	<KSYS>,KSY			;;KSYS

;;USAGE COMMANDS

X	<USAGE>,USG			;;USAGE
X	<BILLING-CLOSURE>,UBC		;;BILLING-CLOSURE
X	<FILE-CLOSURE>,UFC		;;FILE-CLOSURE
X	<EVERY>,WKY			;;WEEKLY
X	<NOW>,NOW			;;NOW
X	<DAILY>,DLY			;;DAILY

;;PRIVILEGED OPERATOR SET COMMANDS

X	<BATMAX>,BMX			;;SET SYSTEM BATMAX
X	<BATMIN>,BMN			;;SET SYSTEM BATMIN
X	<CORMAX>,CMX			;;SET SYSTEM CORMAX
X	<CORMIN>,CMN			;;SET SYSTEM CORMIN
X	<DATE>,DAT			;;SET SYSTEM DATE
X	<LOGMAX>,LMX			;;SET SYSTEM LOGMAX
X	<SCHEDULE>,SCD			;;SET SYSTEM SCHEDULE
X	<JOB-SCHEDULING>,JSC		;;ENABLE JOB-SCHEDULING (ON)
X	<ALL-CPUs>,ACP			;;ALL-CPUs
X	<ONLY>,NLY			;;ONLY CPUN
X	<LISTS>,LST			;;SHOW SYSTEM LISTS

> ;END OF DEFINITION OF KEYWORDS
;NOW DEFINE THE X MACRO TO GENERATE THE NEEDED SYMBOLS

DEFINE	X(A,B),<
	IF1,<IFDEF .KY'B,< PRINTX ? DUPLICATE KEYWORD CODE -- .KY'B>>
	.KY'B==..Z
	..Z==..Z+1
>
;INITIALIZE THE COUNTER AND CALL KEYWORD TO GENERATE THE SYMBOLS
	..Z==100000
	KEYMAIN
	..Z==200000
	KEYWORD

	DEFINE	X(A,B),<
	IF1,<IFDEF .KY'B,< PRINTX ? DUPLICATE KEYWORD CODE -- .KY'B>>
	.KY'B==.OT'B
	SUPPRESS .OT'B
	> ;END X
	KEYOBJ
	OBJORN

.KYUSR==0		;USER MESSAGE **MUST BE ZERO**

SUBTTL	SWITCH	Symbol definitions for switches

;THESE SYMBOLS ARE USED TO INDICATE WHAT SWITCH WAS SEEN BY THE PARSER
;TO THE EVENT PROCESSOR

DEFINE SWITCH,<
	X	<ALL>,ALL		;;/ALL
	X	<APPEND>,APD		;;/APPEND
	X	<AVAILABLE>,AVA		;;/AVAILABLE
	X	<CHARACTERISTICS>,CHR	;;/CHARACTERISTICS
	X	<COPIES:>,CPY		;;/COPIES:
	X	<CREATE>,CRE		;;/CREATE
	X	<DEVICE:>,DEV		;;/DEVICE:
	X	<FILE:>,FIL		;;/FILE:
	X	<FREE>,FRE		;;/FREE
	X	<LINES>,LNS		;;/LINES
	X	<PAGES:>,PAG		;;/PAGES:
	X	<JOBNAME:>,JOB		;;/JOBNAME:
	X	<MOUNTED>,MNT		;;/MOUNTED
	X	<NODE:>,NOD		;;/NODE
	X	<NO-SIGNON-REQUIRED>,NSN;NO-SIGNON-REQUIRED
	X	<NOUNLOAD>,NUL		;;/NOUNLOAD
	X	<PAUSE:>,PAU		;;/PAUSE
	X	<REQUEST-ID:>,REQ	;;/REQUEST-ID:
	X	<REPEAT-COUNT:>,RPT	;;/REPEAT
	X	<SEQUENCE:>,SEQ		;;/SEQUENCE:
	X	<SHORT>,SHT		;;/SHORT
	X	<STOP>,STP		;;/STOP
	X	<JOB>,JBX		;;/JOB
	X	<SIGNON-REQUIRED>,SON	;;SIGNON-REQUIRED
	X	<SUPERSEDE>,SPR		;;/SUPERCEDE
	X	<PURGE>,PUR		;;/PURGE (FOR JOB ERROR )
	X	<ERROR-PROCESSING>,ERR	;;/ERROR-PROCESSING
	X	<NOERROR-PROCESSING>,NER;/NOERROR-PROCESSING
	X	<REASON:>,RSN		;;/REASON 
	X	<REMOVE>,REM		;;/REMOVE A STR ON DISMOUNT
	X	<DISPLAY>,DSP		;;/DISPLAY
	X	<NODISPLAY>,NDP		;;/NODISPLAY
	X	<OPR-ACTION-MESSAGE>,OAM ;;/OPR-ACTION MESSAGES
	X	<OTHER>,OTH		;;/OTHER
	X	<USERS>,USR		;;/USER (ON SHO STA STR)
	X	<WRITE-LOCKED>,WLK	;;/WRITE-LOCKED ON A STR MOUNT

;;TAPE AND DISK -20 COMMAND SWITCHES
	X	<COUNT:>,CNT		;;/COUNT:
	X	<DENSITY:>,DEN		;;/DENSITY:
	X	<INCREMENT:>,INC	;;/INCREMENT:
	X	<LABEL-TYPE:>,LBT	;;/LABEL-TYPE
	X	<OVERIDE-EXPIRATION:>,OVR ;;/OVERIDE-EXPIRATION
	X	<OWNER:>,OWN		;;;/OWNER:
	X	<PROTECTION>,PRO	;;/PROTECTION:
	X	<STARTING-VOLUME-ID:>,SVI;/START-VOLUME-ID:
	X	<TAPE-DISPOSITION:>,TDP	;;/TAPE-DISPOSITION
	X	<VOLUME-ID>,VID		;;/VOLUME-ID

;;-20 SCHEDULER SWITCHES

	X	<WINDFALL:>,WFL		;;/WINDFALL:
	X	<CLASS-ASSIGNMENTS:>,CAS ;;/CLASS-ASSIGNMENTS:
	X	<NOCHECK>,NCK		;;DISMOUNT str:/NOCHECK

;;USAGE ACCOUNTING

	X	<NO-SESSION-ENTRIES>,NOS ;;/NO-SESSION-ENTRIES

;;SET KSYS COMMAND

	X	<CANCEL>,KIL		;;/CANCEL
	X	<CM>,CM			;;/CM (Corrective maint)
	X	<NEW>,NEW		;;/NEW (Load new monitor)
	X	<PM>,PM			;;/PM (Preventive maint)
	X	<SA>,SA			;;/SA (Stand alone)
	X	<SCHED>,SCH		;;/SCHED (Scheduled)

;;GENERAL EVENT SWITCHES

	X	<FAILSOFT>,FSF		;;/FAILSOFT
>
DEFINE	X(A,B),<
	IF1,<IFDEF .SW'B,< PRINTX ? DUPLICATE SWITCH CODE -- .SW'B>>
	.SW'B==..Z
	..Z==..Z+1
>
..Z==400000
	SWITCH
SUBTTL	TABAPL	Syntax table macros

;THESE MACROS ARE USED TO GET THE DATA FROM GALGEN AND BUILD
;THE NECESSARY DATA NEEDED BY OPR AND ORION

;DEFINE APPLICATION TABLES


	DEFINE	TABAPL,<
;;THIS TABLE MUST BE IN ALPAHABETICAL ORDER BY THE FIRST ARGUMENT
;;	X	NAME,CODE,TABLE NAME,ORION MODULE IF INTERNAL

	G$$ATB				;;GET EXTERNAL TABLE VALUES

	> ;END TABAPL

	APLBEG==700000			;START APPLICATION CODES

	OP.AAP==0			;ALL APLLICATION MESSAGES
	DEFINE	X(A,B,C,D),<.ZZ==.ZZ+1
	IF1,<IFDEF .KY'B,< PRINTX ? Duplicate application code -- .KY'B>>
	IF1,<IFDEF OP.'B,< PRINTX ? Duplicate message flag -- OP.'B>>
	.KY'B==APLBEG+.ZZ
	OP.'B==1B<.ZZ>
	OP.AAP==OP.AAP!OP.'B
	> ;END OF X

	.ZZ==0
	TABAPL				;EXPAND APPLICATION TABLES

	NUMAPL==.ZZ			;NUMBER OF TABLES
	IFG	<NUMAPL-^D18>,
<<PRINTX ?Number of applications is greater than 18. Compile aborted>
<PRINTX ?Please correct the GALGEN procedure and recompile>
	END>

	%CHKTM==1			;CHECKPOINT LOG INTERVAL
SUBTTL GALCNF parameters

	XP	O.LENA,G.OLOG

	DEFINE O$LOGN,<	G$$LGN	>;GET LOG NAME
	DEFINE	X(A),<>			;NULL X EXPANSION
	O$LOGN				;COPY IN MACRO

SUBTTL	ORNKEY, ORNDSP,ORNSDP and ORNSWI command syntax macros

;THESE MACROS ARE USED TO DEFINE KEYWORD AND SWITCH TABLES
;THEY USE THE SOFTWARE HALF OF THE TABLE TO POINT TO A WORD
; CONTAINING   .KYXXX OR .SWXXX IN THE LH AND THE ADDRESS OF THE
; NEXT PDB CHAIN IN THE RH
;
;TO GENERATE A TABLE, YOU NEED ONE OF THESE MACROS PER ENTRY.
;THEY MUST BE IN ALPHABETICAL ORDER

DEFINE ORNDSP(NXT,KEY,CODE,FLAGS),<
	DSPTAB(NXT,.KY'CODE,KEY,FLAGS)
> ;END ORNDSP
DEFINE ORNKEY(KEY,CODE,FLAGS),<
	KEYTAB(.KY'CODE,KEY,FLAGS)
> ;END ORNKEY

DEFINE ORNSWI(SWITCH,CODE,FLAGS),<
	KEYTAB(.SW'CODE,SWITCH,FLAGS)
> ;END ORNSWI
DEFINE ORNSDP(NXT,SWITCH,CODE,FLAGS),<
	DSPTAB(NXT,.SW'CODE,SWITCH,FLAGS)
> ;END ORNSWI
SUBTTL	General message format

COMMENT $

All ORION messages consist of a message header, at least one object 
area, an ORNMAC version number, and a pointer to an argument length
word.

$
SUBTTL OPR/ORION message types

;The following codes are placed into the message header field, MS.TYP to
;	indicate what type of message follows.

		.OMOFF==200000		;OFFSET OF FIRST ORION MESSAGE
		.OMSTA==200002		;START MESSAGE
		.OMSHT==200003		;SHUTDOWN MESSAGE
		.OMPAU==200004		;PAUSE MESSAGE
		.OMCON==200005		;CONTINUE MESSAGE
		.OMSHS==200006		;SHOW STATUS MESSAGE
		.OMAHL==200007		;APPLICATION HELLO MESSAGE
		.OMSTS==200010		;STATUS MESSAGE
		.OMWTO==200011		;WRITE TO OPERATOR MESSAGE
		.OMRSP==200012		;RESPONSE TO WTO MESSAGE (SENT BY ORION)
		.OMWTR==200013		;WTOR MESSAGE
		.OMACK==200014		;ACKNOWLEDGEMENT MESSAGE
		.OMOHL==200015		;OPR HELLO MESSAGE
		.OMOST==200016		;OPR SETUP MESSAGE
		.OMOSR==200017		;OPR SETUP REPLY
		.OMHAC==200020		;HELLO ACK FOR APPLICATIONS
		.OMQHL==200021		;QUASAR HELLO MESSAGE
		.OMREQ==200025		;REQUEUE MESSAGE
		.OMCAN==200026		;CANCEL MESSAGE
		.OMSET==200027		;SET MESSAGE
		.OMFWS==200031		;FORWARDSPACING MESSAGE
		.OMALI==200032		;ALIGN MESSAGE
		.OMSUP==200033		;SUPPRESS MESSAGE
		.OMBKS==200034		;BACKSPACE COMMAND
		.OMSND==200035		;SEND COMMAND
		.OMSHC==200036		;SHOW CONTROL FILE(EXAMINE)
		.OMSHP==200037		;SHOW PARAMETERS MESSAGE
		.OMRTE==200040 		;ROUTE COMMAND (TOPS20 REL 4.0)
		.OMSHQ==200041		;SHOW QUEUES COMMAND
		.OMHLD==200042		;HOLD COMMAND
		.OMREL==200043		;RELEASE COMMAND
		.OMSHR==200044		;SHOW ROUTE TABLES COMMAND
		.OMACS==200045		;ACK FOR SHOW MESSAGES
		.OMTKE==200046		;END OF TAKE FILE FLAG
		.OMCMD==200050		;OPR COMMAND MESSAGE
		.OMDSP==200051		;DISPLAY MESSAGE TO PASS A DISPLAY TO OPR
		.OMSHM==200052		;SHO MOUNT REQUESTS
		.OMLOG==200053		;LOG MESSAGE TYPE
		.OMNFY==200054		;NOTIFY MESSAGE FROM QUASAR
		.OMDEL==200055		;DELETE COMMAND
		.OMSUB==200056		;SUBMIT COMMAND
		.OMPRT==200057		;PRINT COMMAND
		.OMMOD==200060		;MODIFY COMMAND
		.OMQUE==200061		;QUEUE REQUEST ENABLE/DISABLE
		.OMENA==200062		;ENABLE MESSAGE
		.OMDIS==200063		;DISABLE MESSAGE
		.OMDEF==200064		;DEFINE COMMAND
		.OMD60==200065		;DN60 COMMAND MESSAGE
		.OMSSN==200066		;SHOW STATUS NETWORK-NODE
		.OMSPN==200067		;SHOW PARAMETERS NETWORK-NODE
		.OMRTD==200070		;DEVICE ROUTING COMMAND
		.OMNXT==200071		;[NXT] NEXT COMMAND
		.OMETS==200072		;ENABLE TIMESHARING
		.OMODB==200073		;OBJECT DATA
		.OMHGH==.OMODB		;HIGHEST DEFINE ORION MESSAGE
		.OMTXT==MT.TXT		;TEXT MESSAGE SYMBOL ***

;MESSAGE CODES USED FOR TAPE AND DISK COMMANDS IN RELEASE 4

		.ODMES==201000		;OFFSET FOR TAPE AND DISK MESSAGES

		.ODSHT==201001		;SHOW STATUS TAPE
		.ODSHD==201002		;SHOW STATUS DISK DRIVES
		.ODENA==201003		;ENABLE TAPE COMMAND
		.ODDIS==201004		;DISABLE MOUNT COMMAND
		.ODMTS==201005		;MOUNT STRUCTURE COMMAND
		.ODDSM==201006		;DISMOUNT COMMAND
		.ODSDK==201007		;SET DISK COMMAND
		.ODSTP==201010		;SET TAPE COMMAND
		.ODSST==201011		;SET STRUCTURE COMMAND
		.ODREC==201012		;RECOGNIZE COMMAND FOR -10
		.ODUNL==201013		;UNLOAD COMMAND
		.ODIDN==201014		;IDENTIFY MOUNT REQUEST MESSAGE
		.ODDMT==201015		;DELETE MOUNT REQUESTS
		.ODSWI==201016		;SWITCH COMMAND FOR TAPE REQUESTS
		.ODSTR==201017		;SHOW STATUS STRUCTURES
		.ODLOC==201020		;LOCK COMMAND
		.ODULC==201021		;UNLOCK COMMAND
		.ODCSL==201022		;CHANGE SYSTEM-LISTS
		.ODSSL==201023		;SHOW SYSTEM-LISTS
		.ODSAL==201024		;SHOW ALLOCATION
		.ODETS==201025		;ENABLE TIMESHARING
SUBTTL	Special AC assigments

;CHANGE MI TO 15 AND MO TO 14 FROM 16 AND 15
	MI==15				;POINTER TO MESSAGE RECEIVED
	MO==14				;POINTER TO MESSAGE TO SEND
;	PB==14				;POINTER TO FIELD IN MESSAGE RECEIVED
	FLAG==13			;FLAG AC

;P4 WILL BE USED AS A FLAG REGISTER FLAG AND THEREFORE SHOULD 
;NOT BE USED ANYWHERE ELSE
SUBTTL	The object block

;THIS AREA IS USED TO DEFINE WHAT OBJECT OR OBJECTS A PARTICULAR
;MESSAGE APPLIES TO. AT LEAST ONE OF THESE IS IN EVERY MESSAGE.

;THIS AREA IS AN EXACT COPY A GALAXY DEVICE-OBJECT DESIGNATOR DESCRIBED
;IN GLXMAC
;SEE GLXMAC FOR A DESCRIPTION OF ITS CONTENTS

	PHASE	MSHSIZ

.OBJTY==.+OBJ.TY			;OBJECT TYPE WORD
.OBJUN==.+OBJ.UN			;OBJECT UNIT NUMBER WORD
.OBJND==.+OBJ.ND			;NODE NAME

	BLOCK	OBJ.SZ			;SAVE THE SPACE SO LATER AREAS ARE 
					;CORRECTLY PLACED

OBJSIZ:!				;SIZE OF OBJECT AREA
	DEPHASE
.OBJLN==OBJ.SZ+1			;SIZE OF OBJECT ARGUMENT BLOCK


;THE ARGUMENT COUNT WORD

	PHASE	OBJSIZ
.ARGLN:! BLOCK	1			;ARGUMENT COUNT POINTER

	DEPHASE
SUBTTL	COMMAND message

;THE FOLLOWING IS A DESCRIPTION OF THE LAYOUT OF ALL MESSAGES
;SENT TO AN OBJECT PROCESSOR SIGNING ON WITH THE STANDARD HELLO
;MESSAGE AS WELL AS RESPOND MESSAGES FOR WTO

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!

;  All of this stuff is now defined in GLXMAC.  Check there
;  under General Message Format for the latest stuff.

;	PHASE MSHSIZ
;.OFLAG:! BLOCK	1			;FLAG WORD FOR MESSAGE
;.OARGC:! BLOCK	1			;ARGUMENT COUNT WORD
;.OHDRS:!				;SIZE OF THE HEADER

;	DEPHASE

;DESCRIPTION OF THE ARGUMENT BLOCK

;	PHASE 0
;ARG.HD:! BLOCK	1			;ARGUMENT HEADER WORD
;	AR.LEN==-1,,0			;LENGTH OF THE BLOCK
;	AR.TYP==0,,-1			;TYPE OF BLOCK
;ARG.DA:! BLOCK	1			;START OF DATA AREA
;ARG.SZ:!				;MINIMUM SIZE OF THE BLOCK

;	DEPHASE


;GENERAL DATA TYPES FOR ALL MESSAGES
;.OROBJ==100				;OBJECT BLOCK
;.ORTYP==101				;OBJECT TYPE FIELD
;.ORJBN==102				;JOBNAME TYPE FIELD
;.ORSEQ==103				;SEQUENCE NUMBER FIELD
;.ORREA==104				;REASON TYPE FIELD
;.ORDSP==105				;OPR DISPLAY ARGUMENT
;.ORREQ==106				;REQUEST NUMBER FIELD
;.ORNOD==107				;NODE BLOCK FOR QUASAR VALIDATION
;.ORD60==110				;DN60 BLOCK OF DATA
;.ORTIM==111				;TIME BLOCK (UDT)
;.ORJNU==112				;JOB NUMBER FIELD

;THE FOLLOWING ARE THE COMMAND TYPES CURRENTLY USED AS
;GENERAL ARGUMENT TYPES
;
;.CMNOD			FOR NODE NAME TYPE
;.CMTXT			FOR TEXT ASCIZ DATA
;.CMIFI			FOR INPUT FILE SPEC
;.CMUSR			FOR USER ID INFORMATION
;.CMDEV			FOR DEVICE DESIGNATOR
SUBTTL	HELLO message

;	THIS MESSGE IS SENT BY AN OPR TO ORION IDENTIFYING WHAT
;	NODE THE OPR IS AT.

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;	THIS MESSAGE USES THE STANDARD ARGUMENT HEADER LAYOUT
;	AND REQUIRES ONE ARGUMENT BLOCK AT THIS TIME
;
;	THIS ARGUMENT BLOCK CONTAINS FOUR WORDS
;
;	1.	NODE NAME WHERE OPR LOCATED
;	2.	OPR VERSION NUMBER
;	3.	ORNMAC VERSION NUMBER


;THE FOLLOWING FLAGS WILL BE TURNED ON BY AN OPR ON THE -20
;WITH REMOTE PRIVILEGES.

	OP.RMT==1B0			;REMOTE OPERATOR HELLO

	.OPHEL==100			;OPR HELLO BLOCK TYPE

	PHASE ARG.DA
OPH.ND:! BLOCK	1			;OPR HELLO NODE LOCATION
OPH.VN:! BLOCK	1			;VERSION NUMBER OF THE OPR
OPH.OV:! BLOCK	1			;ORNMAC VERSION NUMBER
OPH.SZ:!				;LENGTH OF THE BLOCK

	DEPHASE
SUBTTL	START,PAUSE,CONTINUE and SHUTDOWN messages

;THE FORMAT FOR THESE MESSAGES IS JUST AN OBJECT BLOCK
;EXCEPT THAT THE  START COMMAND FOR PRINTERS WILL TAKE
;AN OPTIONAL ARGUMENT FOR DEVICE


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;	THE MESSAGES ALL CONTAIN AN OBJECT BLOCK	.OROBJ
;	AND FOR START OF PRINTERS AND OPTIONAL		.CMDEV
;
;

;THE START AND SHUTDOWN COMMANDS CAN CONTAIN JUST A .ORNOD BLOCK FOR
;THE SHUTDOWN/START NODE COMMAND

;THE STOP COMMAND HAS THE FOLLOWING BITS DEFINED IN .OFLAG:

	ST.IMM==1B0			;STOP THE DEVICE IMMEDIATELY
	ST.ACR==1B1			;STOP THE DEVICE AFTER THE CURRENT REQUEST
	ST.AER==1B2			;STOP THE DEVICE AFTER EVERY REQUEST
SUBTTL	SETUP message

;THIS MESSAGE IS SENT BY ORION TO AN OPR IN RESPONSE TO
;THE HELLO MESSAGE. THIS MESSAGE IS USED TO SYNCRONIZE
;ALL OPRS WITH THE CURRENT APPLICATION TABLE SETTINGS


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THIS MESSAGE WILL CONTAIN APPLICATION NAMES TO BE ADDED
;TO TABLES IN OPR.
;
;	.APNAM		ASCIZ BLOCK OF NAME TO ADD


.APNAM==10000				;DEFINE APPLICATION NAME CODE


SUBTTL	SETUP REPLY message

;THIS MESSAGE IS SENT TO ORION BY OPR IN RESPONSE TO
;A SETUP MESSAGE. AFTER THIS MESSAGE IS SENT THE OPR
;CAN NOW INPUT COMMANDS TO ORION IF SUCCESSFUL
;


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE ARGUMENT BLOCK CONSISTS OF THE FOLLOWING
;OPR WILL RETURN WITH A CODE FOR SUCCESS OR FAILURE
;
;.ORSUC		FOR SUCCESS TYPE....LENGTH OF 1
;.ORFAL		FOR FAILURE TYPE....LENGTH OF 1

.ORSUC==10100				;SUCCESS IF ZERO
.ORFAL==10101				;FAILURE IF 1


SUBTTL	HELLO message for applications (NSP)

;THIS MESSAGE IS SENT BY AN APPLICATION PROGRAM WISHING
;TO USE AN ALTERNATE SET OF COMMAND TABLES AS SPECIFIED
;AT ORION STARTUP. THE STRING SPECIFIED WILL
;BE USED AS THE PROMPT IF YOU ENTER THE APPLICATION LEVEL
;OR AS THE KEYWORD TO IDENTIFY THE APPLICATION COMMAND
;THE MESSAGE FORMAT USES THE NEW MESSAGE HEADER AND THE STANDARD
;ARGUMENT BLOCK FORMAT AS DESCRIBED UNDER ORION COMMAND MESSAGES

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!
;CURRENTLY THE FOLLOWING ARE THE DEFINED APPLICATION
;TYPES THAT CAN BE INCLUDED IN THE MESSAGE

;APPLICATION HELLO TYPES

	.AHNAM==10200			;TYPE FOR THE APPLICATION NAME STRING  
					;THE ARGUMENT BLOCK WILL CONTAIN THE NAME STRING
					;IN THE ARGUMENT DATA AREA.
					;THE ARGUMENT LENGTH INCLUDES THE ARGUMENT HEADER
					;AND THE APPLICATION NAME STRING.
					;THE NAME MUST BE ASCIZ.
					;THE ARGUMENT COUNT WORD IN THE HEADER SHOULD
					;CONTAIN A 1.

SUBTTL	HELLO ACKNOWLEDGEMENT message for applications (NSP)

;THIS MESSAGE IS SENT BY ORION TO AN APPLICATION IN RESPONSE
;TO THE APPLICATION HELLO MESSAGE CONTAINING THE INTERNAL TYPE
;CODE ASSIGNED TO THIS APPLICATION PROCESSOR. THIS CODE WILL BE
;USED TO IDENTIFY ALL REQUESTS FROM ORION TO THE APPLICATION.
;
;THE FORMAT OF THE MESSAGE IS THE STANDARD ORION MESSAGE HEADER
;FOR COMMANDS WITH AN ARGUMENT BLOCK
;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!
;CURRENTLY THE FOLLOWING ARE THE DEFINED APPLICATION
;TYPES THAT CAN BE INCLUDED IN THE MESSAGE

;APPLICATION HELLO ACKNOWLEDGEMNT TYPES


	.AHTYP==10300			;THIS CODE IS USED TO DESCRIBE THE FIELD 
					;CONTAINING THE APPLICATION TYPE CODE 
					;RETURNED BY ORION. THE CODE IS A FULL WORD.
					;THE ARGUMENT BLOCK WILL CONSIST OF A HEADER 
					;AND ONE DATA WORD FOR A LENGTH OF 2
					;THE ARGUMENT COUNT WILL HAVE A 1

SUBTTL	SET message

;THE SET MESSAGE IS USED TO SET SCHEDULING PARAMETERS FOR AN OBJECT
;ONLY ONE PARAMETER CAN BE SET AT A TIME

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!

;ARGUMENT TYPES AND VALUES
;FOR ARGUMENTS WHERE THE TYPE IS SUFFICENT THE BLOCK WILL
;HAVE A LENGTH OF ONE, OTHERWISE THE BLOCK WILL CONTAIN THE 
;APPROPRIATE DATA ELEMENT AND INCLUDE ITS LENGTH IN THE BLOCK
;HEADER.

;THE MESSAGE WILL ALWAYS CONTAIN AN OBJECT BLOCK TO DESCRIBE THE
;OBJECT
;		.OROBJ		OBJECT BLOCK ARGUMENT TYPE

	.STPGL==10400			;PAGE LIMITS..HEADER..MIN..MAX
	.STOPL==.STPGL			;SET OUPUT-LIMIT
	.STFRM==10401			;FORMS TYPE..HEADER..SIXBIT FORMS TYPE
	.STMEM==10402			;CORE LIMITS..HEADER..MIN..MAX
	.STTIM==10403			;TIME LIMITS..HEADER..MIN..MAX
	.STPRI==10404			;PRIORITY LIMITS..HEADER..MIN..MAX
	.STOIA==10405			;OPR INTERVENTION..HEADER
	.STNOI==10406			;NOOPR-INTERVENTION..HEADER
	.STLEA==10407			;LIMIT EXCEED ACTION HEADER..DATA
	  .STCAN==1			;CANCEL
	  .STASK==2			;ASK
	  .STIGN==3			;IGNORE

;DN60 SET PARAMETERS
	.STCSD==10410			;CLEAR TO SEND DELAY
	.STDTR==10411			;DATA TERMINAL READY
	  ST.ON==1			;ON
	  ST.OFF==2			;OFF
	.STRPM==10412			;RECORDS PER MESSAGE
	.STSWL==10413			;SILO WARNING LEVEL
	.STTOU==10414			;TIMEOUT CATEGORY
	  ST.PRI==1			;PRIMARY
	  ST.SEC==2			;SECONDARY
	.STTRA==10415			;TRANSPARENCY (ST.ON OR ST.OFF)
	.STBPM==10416			;BYTES PER MESSAGE
	.STSON==10417			;SIGNON-REQUIRED
	.STNSN==10420			;NO-SIGNON-REQUIRED


;GENERAL SET PARAMETERS

	.STATR==10421			;SET ATTRIBUTES

;FAL-STREAM PARAMETERS

	.STNTY==10422			;NETWORK-TYPE
	  ST.ANF==1			;ANF
	  ST.DCN==2			;DECNET

;OUTPUT SPOOLER MAGTAPE PARAMETERS

	.STMRL==10423			;MULTI-REEL VOLUME-SET
	.STMDI==10424			;DIRECTORY OF SPOOLED MAGTAPE FILES
	.STMTK==10425			;TRACKS
	.STMPR==10426			;PARITY
	.STMDN==10427			;DENSITY
	.STMLT==10430			;LABEL TYPE
	.STVSN==10431			;VOLUME-SET NAME

	.STEND==.STVSN			;LAST SYMBOL

SUBTTL	FORWARDSPACE and BACKSPACE message

;THESE TWO COMMANDS ARE IDENTICAL EXCEPT THAT THE MESSAGE TYPE
;WILL DESCRIBE THE DESIRED ACTION

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE FOLLOWING ARE THE DEFINED ARGUMENT TYPES FOR FORWARDSPACE
;AND BACKSPACE. IN ALL CASES THE ARGUMENT BLOCK WILL HAVE
;A LENGTH OF 2 AND THE POSTIONING AMOUNT WILL APPEAR IN THE
;ARGUMENT DATA WORD.
;ALL MESSAGES WILL CONTAIN AN OBJECT BLOCK DESCRIBING
;THE PARTICULAR UNIT
;
;	.OROBJ	OBJECT BLOCK TYPE
;

	.SPPAG==10500			;SPACING NUMBER OF PAGES
	.SPCPY==10501			;SPACING NUMBER OF COPIES
	.SPFIL==10502			;SPACING NUMBER OF FILES
SUBTTL	HOLD and RELEASE message

;THE FORMAT OF THE HOLD AND RELEASE COMMANDS ARE IDENTICAL 
;EXCEPT FOR THE MESSAGE TYPE
;THE MESSAGE STRUCTURE IS THE STANDARD MESSAGE HEADER AND 
;A NUMBER OF ARGUMENT BLOCKS DESCRIBING THE JOB(S) TO HOLD OR 
;RELEASE

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE FOLLOWING ARE THE DEFINED ARGUMENTS FOR THE HOLD AND 
;RELEASE COMMAND
;
;	.ORTYP		THE QUEUE AFFECTED BY THE HOLD
;	.CMUSR		THE USERS JOBS IN THAT QUEUE TO AFFECT
;	.ORRQN		THE REQUEST NUMBER OF THE JOB
;
; IF ONLY THE .ORTYP FIELD IS SPECIFIED THEN  ALL JOBS IN THE 
; SPECIFIED QUEUE ARE TO BE HELD. OTHERWISE EACH ARGUMENT WILL
; FURTHER QUALIFY THE JOB(S) TO HOLD/RELEASE.
SUBTTL	MODIFY message

;THE MODIFY MESSAGE IS USED TO MODIFY THE PARAMETERS OF A
;JOB REQUEST
;THIS COMMAND IS ALSO USED TO USED TO CHANGE THE SYSTEM LISTS
;THOSE FORMATS AR DESCIRBED ELSEWHERE. THE MESSAGE TYPE
;IS .ODCSL

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE FOLLOWING ARE THE DEFINED ARGUMENTS TO DESCRIBE THE ENTRY
;TO BE MODIFIED
;
;	.ORTYP		THE QUEUE AFFECTED BY THE HOLD
;	.CMUSR		THE USERS JOBS IN THAT QUEUE TO AFFECT
;	.ORRQN		THE REQUEST NUMBER OF THE JOB
;
; IF ONLY THE .ORTYP FIELD IS SPECIFIED THEN  ALL JOBS IN THE 
; SPECIFIED QUEUE ARE TO BE MODIFIED. OTHERWISE EACH ARGUMENT WILL
; FURTHER QUALIFY THE JOB(S) TO MODIFY.

;THE FOLLOWING ARE THE VALID PARAMTERS FOR ALL QUEUES

	.MOPRI==11600			;MODIFY PRIORITY..BLOCK WITH PRIORITY IN IT
SUBTTL	ROUTE message

;THE ROUTE COMMAND WILL ROUTE THE OUTPUT FROM ONE NODE TO 
;ANOTHER

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE ROUTE COMMAND SUPPORTS THE FOLLOWING BLOCK TYPES
;
		.ORRTN==11500		;ROUTE NODE BLCOK
		.ORRTJ==11501		;ROUTE JOB BLOCK
;
;THE .ORRTN HAS THE FOLLOWING FIELDS
;
	.SNODE==ARG.DA
	.DNODE==ARG.DA+1

;WHERE .SNODE IS THE SOURCE NODE TO ROUTE AND
;.DNODE IS THE DESTINATION NODE TO ROUTE
;THE OPR ISSUING THE COMMAND MUST HAVE AUTHORIZATION FOR THE
;SOURCE NODE FOR THE COMMAND TO BE VALID


;===========================================================================

;CONTINUED ON THE NEXT PAGE

					;MESSAGE FOR DEVICE ROUTING (TYPE .OMRTD)

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	

;ARGUMENT BLOCKS

	.RTEFM==1			;SOURCE OBJECT BLOCK

;	!-------------------------------------------------------!
;	!	4		!	.RTEFM			!
;	!-------------------------------------------------------!
;	\							\
;	\		SOURCE OBJECT BLOCK			\
;	\							\
;	!-------------------------------------------------------!


	.RTETO==2			;DESTINATION OBJECT BLOCK

;	!-------------------------------------------------------!
;	!	4		!	.RTETO			!
;	!-------------------------------------------------------!
;	\							\
;	\		DESTINATION OBJECT BLOCK		\
;	\							\
;	!-------------------------------------------------------!
SUBTTL	DELETE message

;THE DELETE COMMAND WILL  PASS THE QUEUE AND THE REQUEST NUMBER IN
;A REQUEST ID BLOCK


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!



;	THE BLOCKS ARE THE SAME FOR HOLD EXCEPT THAT THERE MUST BE A USER OR
;	REQUEST NUMBER BLOCK

;	.ORTYP			;QUEUE TYPE
;	.ORREQ			;REQUEST NUMBER
;	.ORUSR			;USER NUMBER OR PPN


; FOR DELETE OF MOUNT REQUEST THE FOLLOWING BLOCKS ARE POSSIBLE


;.ORREQ		;REQUEST NUMBER OF REQUEST TO DELETE
;	- OR -
;.STRDV		;STRUCTURE BLOCK FOR DELETING ALL ON A STRUCTURE


; FLAG BITS FOR OPR MOUNT AND DISMOUNT COMMANDS

	.DMRMV==1B0			;IF OPR SAID DISMOUNT FOO:/REMOVE
	.DMNCK==1B1			;IF OPR SAID DISMOUNT FOO:/NOCHECK
	.MTWLK==1B2			;IF OPR SAID MOUNT FOO:/WRITE-LOCKED


;.ORREA		;OPTIONAL REASON IF SPECIFIED
SUBTTL	SEND message
;THIS MESSAGE IS USED TO SEND TEXT TO A PARTICULAR BATCH STREAM
;OR USER IDENTIFIED BY TERMINAL NUMBER OR JOB NUMBER.

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE BLOCK WILL CONTAIN A STANDARD ORION OBJECT BLOCK TO DESCRIBE
;THE OBJECT THE MESSAGE IS BEING SENT TO.
;
;	.OROBJ		OBEJCT BLOCK TYPE
;
;AT THE CURRENT TIME THE OTHER ARGUMENT IS TEXT
;AND USES THE STANDARD ORION TEXT TYPE
;
;	.CMTXT		;THE TEXT TYPE FOR MESSAGE
;
;THE DATA WILL BE ASCIZ TEXT WITH THE LENGTH INCLUDING ALL
;TEXT AND THE HEADER
SUBTTL	NOTIFY message

;THIS MESSAGE IS USED BY QUASAR TO HAVE ORION DISPLAY A MESSAGE
;ABOUT A USERS JOB

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	

;FLAG WORD BITS

	NT.MLU==1B0			;NOTIFY USER VIA MAIL


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THIS MESSAGE HAS FOUR ARGUMENTS

		.JOBID==200		;THE USER'S TERMINAL NBR & LOGIN TIME
		.NTSUB==201		;SUBJECT STRING FOR MAIL
;	.CMDIR		;THE USER DIRECTORY NUMBER
;	.CMTXT		;THE MESSAGE BODY

;THE JOB ID BLOCK CONTAINS THE FOLLOWING DATA

		PHASE	ARG.DA

JBI.JB:! BLOCK	1			;JOB NUMBER
JBI.LI:! BLOCK	1			;JOB LOGGED IN TIME
JBI.SZ:!				;SIZE OF THE BLOCK

;IF THE INFO MATCHES THE CURRENT JOB ON SYSTEM A MESSAGE WILL BE
;DISPLAYED TO THE TERMINAL IF LOGGED IN.. PITCHED IF NOT OR DETACHED
SUBTTL	SUPPRESS message

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE SUPPRES COMMAND WILL ALWAYS CONTAIN AN ORION OBEJCT BLOCK
;TO DESCRIBE THE OBJECT
;
;	.OROBJ		OBJECT BLOCK TYPE

;THE SUPRRESS COMMAND SUPPORTS THE FOLLOWING ARGUMENT TYPES
;
	.SUPFL==10600			;SUPRRESS CURRENT FILE
	.SUPJB==10601			;SUPPRESS CURRENT JOB
	.SUPST==10602			;STOP DOING SUPPRESSION

;ALL ARGUMENTS ARE JUST THE ARGUMENT HEADER WITH THE APPROPRIATE
;TYPE AND A LENGTH OF 1

;THIS MESSAGE WILL ALWAYS CONTAIN AN ARGUMENT COUNT OF 2
SUBTTL	CANCEL message

;THIS MESSAGE IS USED TO CANCEL A PARTICULAR JOB RUNNING ON A 
;PARTICULAR OBJECT

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!



;THE CANCEL COMMAND WILL ALWAYS CONTAIN A ORION OBJECT BLOCK
;TO DESCRIBE THE OBJECT WHERE JOB IS TO BE CANCELED.
;
;	.OROBJ		ORION OBJECT BLOCK
;
;THE FOLLOWING ARE THE VALID ARGUMENT TYPES FOR THIS MESSAGE
	
	.CANTY==10700			;CANCEL TYPE WITH THE FOLLOWING DATA

		.CNERR==1		;CANCEL WITH ERROR PROCESSING
		.CNNER==2		;CANCEL NO ERROR-PROCESSING
		.CNPRG==3		;CANCEL AND PURGE THE REQUEST


;THE FOLLOWING ARGUMENT TYPES ARE OPTIONAL AND WILL
;BE INCLUDED IF SPECIFIED
;
;	.ORRQN		;REQUEST NUMBER
;	.ORREA		;REASON FOR CANCEL..EXPLANATION IF GIVEN
;			;DATA IS THE TEXT
SUBTTL	REQUEUE message

;THIS MESSAGE IS TO REQUEUE A JOB ON A PARTICULAR OBJECT


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!

;THE REQUEUE COMMAND WILL ALWAYS CONTAIN AN OBJECT BLOCK
;
;	.OROBJ		OBJECT BLOCK
;
;THE FOLLOWING ARE THE VALID ARGUMENT TYPES FOR REQUEUE
;
	.REQTY==11000			;REQUEUE TYPE OF OPERATION
		.RQBJB==1		;BEGINNING OF JOB
		.RQBFL==2		;BEGINNING OF FILE
		.RQBCP==3		;BEGINNING OF CURRENT COPY
		.RQCUR==4		;CURRENT POSITION

;THE FOLLOWING ARGUMENT TYPES ARE OPTIONAL AND MAY BE INCLUDED
;IN THE COMMAND IF SPECIFIED.
;
;	.ORRQN		REQUEST NUMBER OF JOB
;	.ORREA		REASON FOR CANCEL..EXPLANATION IF GIVEN
;			THE DATA IS THE TEXT
SUBTTL	DEFINE message

;THIS MESSAGE IS USED FOR DN60 TO DEFINE A NODE TO A PARTICULAR
;PORT , LINE AND PROTOCOL


;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THIS MESSAGE CURRENTLY SUPPORTS ONLY ONE BLOCK

	.DFBLK==11100			;THE DEFINE BLOCK TYPE

	PHASE	ARG.DA

DEF.TY:! BLOCK	1			;TYPE OF NODE
	DF.TPP==0,,-1			;Type of node
	DF.378==1			;3780
	DF.278==2			;2780
	DF.HSP==3			;HASP
	DF.SRV==4			;SERVER
	DF.FLG==-1,,0			;Flag, i.e. if signon required
	DF.NSN==1			;Signon not required
	DF.SON==2			;Signon required
DEF.MD:! BLOCK	1			;MODE OF NODE
	DF.TRM==1			;TERMINATION
	DF.EMU==2			;EMULATION
DEF.PT:! BLOCK	1			;PORT
DEF.LN:! BLOCK	1			;LINE
DEF.SZ:!

	DEPHASE
SUBTTL	TAPE and DISK messages

;THESE COMMANDS ALL HAVE THE STANDARD ORION HEADER 
;WITH THE MESSAGE CODES IN THE .MSTYP WORD MS.TYP FIELD

	
;TAPE AND DISK DEVICE INFO BLOCKS

	.TAPDV==20000			;TAPE DRIVE DEVICE BLOCK
	
;THE BLOCK WILL CONTAIN A STRING FOR THE DEVICE WHICH ONE
;CAN THEN CONVERT TO A DEVICE DESIGNATOR IF VALID. IF IT MUST BE
;VALID OPR WILL NOT SET CM%PO AND FORCE OPR TO TYPE IN VALID NAME
;BUT THE BLOCK WILL STILL CONTAIN A STRING

;	*** THE STRING WILL NOT END IN A COLON *** 


	.DSKDV==20001			;DISK DEVICE BLOCK

;THIS BLOCK WILL CONSIST OF 3 WORDS INCLUDING THE HEADER WITH
;THE FIRST DATA WORD BEING THE CHANNEL NUMBER AND THE SECOND
;BEING THE DRIVE NUMBER


	.STRDV==20002			;STRUCTURE BLOCK

;THIS BLOCK WILL CONTAIN THE STRING TYPED BY THE OPERATOR AND 
;IT WILL BEGIN AFTER THE HEADER. THE LENGTH OF BLOCK WILL 
;INCLUDE THE WHOLE ASCIZ STRING
;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!
SUBTTL	SHOW messages for tapes

;THESE COMMANDS ARE PROCESSED BY MTCON ON THE -20 FOR THIS
;RELEASE

;	.ODSHS		;SHOW STATUS FOR TAPE AND DISKS
;	.ODSHP		;SHO PARAMTERS FOR TAPES AND DISKS

;THERE ARE THREE POSSIBLE BLOCKS THAT CAN BE IN THE MESSAGE

;.TAPDV BLOCK FOR TAPE TO SHOW
	 .ALTAP==20010			; BLOCK FOR ALL TAPES LENGTH OF 1
	 .ALDSK==20011			; BLCOK FOR ALL DISKS LENGTH OF 1
	 .ALSTR==20012			;BLOCK FOR ALL STRUCTURES (MDA ONLY)


;FLAGS IN .OFLAG TO DESCRIBE OPTIONS OF DISPLAY(FOR TAPE AND DISK)


	ST.ALL==1B0			;ALL
	ST.AVA==1B1			;AVAILABLE DRIVES(FREE)
	ST.CHR==1B2			;CHARACTERISTICS
	ST.MNT==1B3			;MOUNTED


;FOR STRUCTURES THERE MAY ALSO BE A.STRDV FOR THE PARTICULAR STRUCTURE

	ST.USR==1B0			;SHOW THE USERS OF THE FILES STRUCTURES
SUBTTL	SWITCH message

;THIS COMMAND IS USED BY MOUNTR ON THE -20 TO DETERMINE WHERE
;THE NEXT VOLUME IS TO BE FOUND FOR A GIVEN REQUEST

;THE MESSAGE CONSISTS OF THE FOLLOWING BLOCKS

;.ORREQ		REQUEST NUMBER
;.VOLID		VOLUME ID
;.TAPDV		TAPE DEVICE BLOCK	(OPTIONAL)

SUBTTL	DISMOUNT message 

;DISMOUNT STRUCTURE COMMAND CONTAINS A DEVICE BLOCK .CMDEV
; FOR THE DEVICE TO DISMOUNT

;THE ARGUMENTS WILL  BE

;	 .STRDV 

;OPTIONAL FLAGS
;.DMRMV	REMOVE STRUCTURE ON DISMOUNT
;.DMNCK	TRY NOT TO TOUCH STRUCTURE DURING DISMOUNT (/NOCHECK)

;THE DISMOUNT TAPE COMMAND WILL CONTAIN A

; .TAPDV

; BLOCK FOR TAPE DRIVE 

SUBTTL	RECOGNIZE message (TOPS10)

;THE RECOGNIZE COMMAND WILL CONTAIN A .TAPDV FOR TAPE
;DRIVE TO RECOGNIZE
SUBTTL	SET TAPE and DISK messages


;THIS COMMAND WILL CONTAIN EITHER A TAPE BLOCK OR A DISK BLOCK
;AS THE FIRST ARGUMENT AND THEN

	.DVAVL==20100			;DEVICE AVAILABLE BLOCK LENGTH 1
	.DVUAV==20101			;DEVICE UNAVAILABLE BLOCK LENGTH  1
	.DVINI==20102			;DEVICE INITIALIZE MODE
SUBTTL	SET STRUCTURE message for disks

;THIS COMMAND WILL HAVE A STRUCTURE BLOCK AS THE FIRST ARGUMENT
;AND THEN A CHARACTERISTIC BLOCK WITH ONE OF THE FOLLOWING 
;SYMBOLS

		.STCHR==20200		;STRUCTURE CHARACHTERISTICS

	S.ACKN==1			;ACKNOWLEDGED
	S.AVAL==2			;AVAILABLE
	S.DOMS==3			;DOMESTIC
	S.FORN==4			;FOREIGN
	S.IGNO==5			;IGNORED
	S.REGU==6			;REGULATED
	S.UAVL==7			;UNAVAILABLE
	S.UREG==10			;UNREGULATED
SUBTTL	SET TAPE INITIALIZE message

;THIS COMMAND IS TO SETUP A TAPE-DRIVE FOR INITIALIZING VOLUMES

;THE MESSAGE WILL CONSIST OF A SET OF BLOCKS WITH THE FIRST ONE
;BEING
;	.TAPDV		TAPE DRIVE BLOCK

;THEN THERE WILL BE THE OPTIONS FOR THE INITIALIZE

;.DVINI		FOR INITIALIZE STATE
;.VOLID		FOR VOLUME ID

	.SILBT==20501			;LABEL TYPE
	  ;%TFxxx defined in QSRMAC
	.SIDEN==20502			;DENSITY
	  ;.TFDnn defined in QSRMAC
	.SIOWN==20503			;OWNER...USER ID OR PPN
	.SIPRO==20504			;OCTAL NUMBER FOR PROTECTION
	.SIUNL==20505			;UNLOAD TAPE WHEN DONE
	.SIHLD==20506			;HOLD TAPE WHEN DONE
	.SIOVR==20507			;OVERIDE EXPIRATION
	.SINOV==20510			;NO OVERIDING OF EXPIRATIONS
	.SISVI==20511			;STARTING VOLUME ID (DECIMAL NUMBER)
	.SIINC==20512			;INCREMENT FOR VOLUMES (DECIMAL NUMBER)
	.SICTR==20513			;COUNT OF TAPES TO DO (DECIMAL NUMBER)
;**;[37]ADD NEW SYMBOLS			21-NOV-83/DPM
	.SIABO==20514			;[37]ABORT THE INITIALIZATION
	.SIERA==20515			;[37]ERASE THE TAPE
	.SINEW==20516			;[37](RE-)INITIALIZE (APPENDED BY QUASAR
					;[37] FOR /NEW-VOLUME, NEVER PARSED BY OPR)
	.SILST==20517			;[37]LIST OF REELIDS (APPENDED BY QUASAR
					;[37]FOR /NEW-VOLUME, NEVER PARSED BY OPR)

SUBTTL	ENABLE and DISABLE message types

	.AVREC==20300			;AUTOMATIC VOLUME RECOGNITION
	.ASREC==20301			;AUTOMATIC STRUCTURE RECOGNITION
	.EDQUE==20340			;QUEUES
SUBTTL	MOUNT message for tape and disk

;THIS COMMAND IS ONLY USED FOR STRUCTURE MOUNTING
;
;	THIS  MESSAGE CONTAINS A .STRDV FOR THE STRUCTURE DEVICE
;	BLOCK


;	AND OPTIONALLY AN ALIAS BLOCK OF .STALS

		.STALS==20401

;IF ALIAS IS NOT SPECIFIED IT IS ASSUMED TO BE THE SAME AS THE
;STRUCTURE DEVICE BLOCK


SUBTTL	IDENTIFY message for tapes

;THIS MESSAGE WILL ASSOCIATE A TAPE DRIVE WITH A PARTICULAR TAPE
;REQUEST OR TAPE

;THERE WILL ALWAYS BE A TAPE DEVICE BLOCK
;	.TAPDV

;THE SECOND PART OF THE COMMAND CAN BE ONE OF THE FOLLOWING

	.SCRTP==20402			;SCRATCH TAPE BLOCK	(LEN 1)
	.VOLID==20403			;VOLUME ID BLOCK SPECIFYING
					;THE PARTICULAR VOLUME ID
	
;.ORREQ			;TO SPECIFY THE REQUEST THE TAPE IS TO BE
					;ASSIGNED TO
SUBTTL	RESPONSE message

;THE RESPONSE MESSAGE USES THE STANDARD ORION HEADER
;AND ARGUMENT BLOCKS WITH VALID TYPES DESCRIBED BELOW

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!=======================================================!
;	!			FLAG WORD			!
;	!-------------------------------------------------------!
;	!		     ARGUMENT COUNT			!
;	!=======================================================!


;THE VALID RESPONSE TYPES ARE

;	.CMTXT		;FOR TEXT DATA

;AT THE CURRENT TIME THE ONLY VALID ARGUMENTS FOR A RESPONSE
;IS ASCIZ TEXT AND ACK ID CODE.
;THIS CODE IS THE OPR HANDLE TO SEND ACK TO IF DESIRED.


	.ACKID==12000			;ACK FOR OPR ID
					;ORIGIN OF ANSWER (TERMINAL # OR NODE
					;NAME IN SIXBIT

					;THIS BLOCK HAS TWO WORDS OF DATA
					;
					;1	ACK ID  FOR OPR
					;2	NODE OR TERMINAL NUMBER

;IN THE FUTURE, WHEN ANSWER BLOCKS ARE SUPPORTED
;OTHER COMMAND FUNCTION CODES WILL BE ALLOWED.

SUBTTL	LOCK/UNLOCK message

;THIS MESSAGE CONTAINS THE FOLLOWING BLOCKS


;.STRDV		;STRUCTURE BLOCK
;.ORTIM		;TIME BLOCK


;THE TIME BLOCK IS OPTIONAL

;THE FOLLOWING BITS ARE DEFINED IN THE .OFLAG WORD:

	LC.NUL==1B0			;LOCK /NOUNLOAD
	SUBTTL	USAGE ACCOUNTING MESSAGES

;THE USAGE ACCOUNT MESSAGE GO TO THE ACTDAE. THEY ARE GALAXY FORMATED
;MESSAGES WITH AN ACTDAE MESSAGE TYPE.

;THE MESSAGES (FILE CLOSURE AND BILLING CLOSURE) HAVE ONLY 1 BLOCK
;DEFINED - .ORTIM - WHICH CONTAINS THE UDT WHEN THE ACTION IS TO
;TAKE PLACE. THERE ARE ALSO BITS DEFINED FOR .OFLAG:

		US.NOW==1B0	;DO IT NOW !!!
		US.DLY==1B1	;DO IT DAILY !!!
		US.WKY==1B2	;DO IT WEEKLY !!!
		US.NOS==1B3	;/NO-SESSION-ENTRIES
		US.TIM==1B4	;DO IT AT SPECIFIED TIME (KSYS)
		US.KIL==1B5	;CANCEL KSYS
		US.DAY==0,,-1	;DAY OF THE WEEK 1 - 7 (SUNDAY IS 1)
SUBTTL	Standard message format

;THIS MESSAGE CONSISTS OF THE STANDARD MESSAGE HEADER FOLLOWED BY A PARSER
;BLOCK AS DEFINED BELOW

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!=======================================================!
;	!			FLAG WORD			!
;	!-------------------------------------------------------!
;	!                    ARGUMENT COUNT                     !
;	!=======================================================!


;	!-------------------------------------------------------!
;	!		COMMAND OBJECT TYPE			!
;	!-------------------------------------------------------!
;	!		   SOURCE NODE				!
;	!-------------------------------------------------------!
;	!		OFFSET  TO PARSER BLOCK			!
;	!-------------------------------------------------------!
;	!              OFFSET  TO TEXT OF COMMAND               !
;	!=======================================================!

	PHASE	.OHDRS
COM.TY:! BLOCK	1			;OBJECT TYPE CODE
					;VALID FOR APPLICATIONS ONLY
COM.SN:! BLOCK	1			;SOURCE NODE OF COMMAND
COM.PB:! BLOCK	1			;POINTER TO THE PARSER BLOCK
COM.CM:! BLOCK	1			;POINTER TO MESSAGE TEXT
COM.SZ:!				;SIZE OF HEADER
	DEPHASE

COM.AL==COM.SZ-COM.SN			;SIZE OF ARGUMENT BLOCK

					;VALID FLAGS FOR THE COMMAND MESSAGE

	CM.NPR==1B0			;NO PROCESSING REQUIRED..SENT TO
					;ORION TO LOG

COMMENT \

THE PARSER DATA BLOCKS WILL BE SIMILIAR TO THE OTHER
DATA STRUCTURES USED IN OPR AND ORION. EACH FIELD PARSED
WILL GENERATE A BLOCK WITH THE LENGTH IN THE LEFT HALF
AND COMMAND CODE TYPE IN THE RIGHT HALF.

THE LENGTH OF THE BLOCK INCLUDES THE HEADER WORD.
\
SUBTTL	DN60 command message

;THIS MESSAGE FOR CDRIVE TO SEND ORION AN OPR COMMAND
;TO BE PARSED.

;THIS MESSAGE CONTAINS THE FOLLOWING BLOCKS

;	.ORNOD		;NODE BLOCK
;	.ORD60		;D60 BLOCK

;	(DATA WORD 1) PORT LINE INFO
;	(DATA WORD 2) DN60 CHARACTERISTICS DEFINED IN QSRMAC
;
;	.CMTXT		;TEXT BLOCK (MUST HAVE CR,LF)
SUBTTL	WTO,WTOR and ACK formats for all programs

;THE FOLLOWING IS A DESCRIPTION OF THE NEW FORMAT FOR WTO,
;WTOR AND ACK MESSAGES TO BE SENT BY ANY PROGRAM AND ORION.
;THE FORMAT CONSISTS OF A HEADER, FLAG WORD, ARGUMENT COUNT
;WORD AND AN ARGUMENT BLOCK. THE ARGUMENT COUNT WORD REFLECTS 
;THE NUMBER OF ARGUMENT BLOCKS INCLUDED IN THE MESSAGE.
;THE LENGTH ASSOCIATED WITH EACH BLOCK INCLUDES THE ARGUMENT
;BLOCK HEADER WORD.
;THE HEADER IS THE  STANDARD GALAXY MESSAGE HEADER  DEFINED 
;IN ORNMAC.

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!=======================================================!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	
;
;			ARGUMENT DATA BLOCK
;	
;	
;	
;	!-------------------------------------------------------!
;	! LENGTH OF ARGUMENT BLOCK  !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                 DATA FOR THE ARGUMENT                 \
;	\                                                       \
;	!=======================================================!

	PHASE	MSHSIZ
;THE HEADER DATA USES THE STANDARD ORION MESSAGE BLOCK
;WITH MESSAGE HEADER, .OFLAG, AND .OARGC

;THE ARGUMENT BLOCK IS THE STANDARD ARGUMENT BLOCK USED IN
;ORION MESSAGES

;VALID ARGUMENT TYPES FOR WTO MESSAGE
;NOTE THAT ON THE -10, THE QUEUE. UUO PASSES A WHOLE OTHER SET
;OF BLOCK TYPES (QC%xxx) DEFINED IN UUOSYM.
;THE CODE IN GOPHMS TURNS THOSE BLOCKS INTO DUMMIES (.WTNOP)
;OR TRADITIONAL BLOCKS .WTxxx AS KNOWN HEREIN.

.WTTXT==0				;TEXT MESSAGE
.WTOBJ==1				;GALAXY OBJECT BLOCK FOR USE BY GALAXY
					;COMPONENTS..MUST BE PRIVILEDGED
.WTDES==2				;DESTINATION VALUE
.WTJOB==3				;JOB NUMBER OF USER OR OTHER USER
					;PRIVILEGED
.WTERR==4				;ERROR CODE FOR ERROR DISPLAY
.WTRTE==5				;ROUTE CODE FOR FUNCTION SETUP OPRS
.WTTYP==6				;TYPE FIELD TEXT ..PRIVILEGED
.WTANS==7				;ANSWER BLOCK FOR WTOR ONLY
.WTACD==10				;APPLICATION CODE BLOCK
.WTOCD==11				;OBJECT TYPE BLOCK
.WTNOP==12				;NOOP (DUMMY) BLOCK FOR MONITOR WTO MESSAGES
.WTTTY==13				;TTY NAME (FROM GOPHER FOR 'SEND OPR')

	.WTLST==.WTTTY			;LAST VALID TYPE ASSIGNED


;VALID FLAGS FOR WTO MESSAGE IN .OFLAG
	WT.KIL==1B0			;KILL THE WTOR REQUEST USING .MSCOD HANDLE
	WT.MOR==1B1			;MORE DISPLAY PAGES ARE COMMING.
	WT.NFY==1B2			;NOTIFY IF PID GOES AWAT VIA TTMSG(-10 TRMOP)
	WT.JOB==1B5			;JOB MESSAGE..PRIVILEGED
	WT.SJI==1B6			;SUPPRESS JOB INFO ON DISPLAY
	WT.NFO==1B7			;NO FORMATING OF DISPLAY
	WT.NDA==1B8			;NO DASHES ON TYPE MESSAGE
	WT.KAL==1B9			;KILL ALL MESSAGES FOR THE JOB
	WT.SND==1B10			;SEND MSG TO CENTRAL AND SPECIFIED NODE
;**;[34]CHANGE 1 LINE AT WT.PRV:	17-MAR-83/GAT
	WT.PRV==WT.JOB!WT.SJI!WT.NFO!WT.MOR!WT.NDA ;[34]PRIVILEGE FLAGS


	WTOMAX==^D450			;LARGEST WTO MESSAGE ALLOWED
	TYPMAX==^D26			;LARGEST TYPE BLOCK IN WORDS
	TYPMIN==^D7			;STANDARD TYPE SIZE MAXIMUM IN WORDS
	TYPAPL==^D9			;SIZE OF APPLICATION TYPE MESSAGES

	SYSPRM	OB.WTO,OB.WTO,OB%WTO	;WTO FLAGS IN BATCH JOB TABLE
	SYSPRM	OB.BSS,OB.BSS,OB%BSS	;BATCH-STREAM NUMBER IS SET

SUBTTL	Internal Application ACK Message

;APPLICATIONS INTERNAL TO ORION MAY USE THE $IACK MACRO TO RETURN
;AN ACKNOWLEDGEMENT TO AN OPR ISSUING A COMMAND HANDLED BY SUCH
;AN APPLICATION.  ADDITIONAL TEXT MAY BE APPENDED TO THE ACK BY
;CALLING WTORTN TO OUTPUT CHARACTERS.

DEFINE	$IACK(TEXT),<
	IF2,<IFNDEF INTACK,<EXTERN INTACK>>
	PUSHJ	P,INTACK
	JUMP	[ITEXT (TEXT)]
>; END $IACK
SUBTTL	ALIGN message

;THIS MESSAGE IS SENT TO DESCRIBE THE ALIGNMENT OPTIONS AND
;FILE TO USE 

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE ALIGN MESSAGE WILL ALWAYS CONTAIN AN OBJECT BLOCK
;
;	.OROBJ		OBJECT BLOCK
;
;THE FOLLOWING OPTIONS ARE ALSO VALID
;
;	.CMIFI		INPUT FILE SPEC TO USE
	.ALPAU==11100			;ALIGN PAUSE AMOUNT BETWEEN REPEATS
					;THE ARGUMENT DATA WILL CONTAIN TIME
	.ALRPT==11101			;THE REPEAT COUNT ON THE FILE
					;THE DATA WILL CONTAIN THE COUNT
	.ALSTP==11102			;STOP THE ALIGNMENT..NO DATA FOR THIS FIELD
SUBTTL	STATUS message

;THIS MESSAGE IS SENT BY A PROCESSOR TO ORION IN RESPONSE TO A
;SHOW MESSAGE REQUESTING STATUS.

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!=======================================================!
;	!                 ORNMAC VERSION NUMBER                 !
;	!=======================================================!
;	\                                                       \
;	\                    THE OBJECT AREA                    \
;	\                                                       \
;	!=======================================================!
;	\                                                       \
;	\                TEXT BLOCK OF STATUS                   \
;	\                                                       \
;	!=======================================================!

;THE STATUS MESSAGE CONSISTS OF AS MANY OBJECT AREA/TEXT BLOCKS
;PAIRS AS NEEDED.
;THE FIRST WORD OF A TEXT BLOCK IS THE NUMBER OF WORDS IN THE
;TEXT BLOCK, FOLLOWED BY AN ASCIZ STRING

	PHASE	OBJSIZ			;START AFTER THE OBJECT AREA

STS.TB:!	BLOCK	1		;START OF BLOCK -- COUNT FOR THIS BLOCK
STS.TX:!				;WHERE THE TEXT IS

	DEPHASE
SUBTTL	SHOW CONTROL-FILE message

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE SHOW-CONTROL-FILE COMMAND WILL ALWAYS CONTAIN AN ORION 
;OBJECT BLOCK
;
;	.OROBJ		OBJECT BLOCK TYPE

;THE SHOW CONTROL-FILE COMMAND SUPPORTS ONE ARGUMENT TYPE
;
	.SHCLN==11200			;LINE COUNT FOR SHOW CONTROL-FILE

SUBTTL	SHOW STATUS message

;THE SHOW STATUS MESSAGE IS SENT TO QUASAR REQUESTING
;INFORMATION ABOUT ONE OR MORE OBJECTS

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE SHOW STATUS MESSAGE CONISTS OF AN OBJECT BLOCK
;THAT DESCRIBES THE NUMBER AND TYPE OF OBJECTS DESIRED.
;
;	.OROBJ		OBJECT BLOCK TYPE
;
;THE OBJECT BLOCK HAS THE FOLLOWING ADDITIONAL VALUES AND MEANINGS
;
;	TYPE		VALUE			MEANING
;
;	OBJ.TY		-1			ALL OBJECTS
;	OBJ.UN		-1			ALL UNITS
;	OBJ.ND		-1			ALL NODES

;
;THE FOLLOWING FLAGS ARE USED TO DESCRIBE THE TYPE OF JOBS
;TO BE LISTED FOR THE OBJECT DESCRIBED
;
	.STACT==11201			;JOBS ON ACTIVE OBJECTS
	.STHLD==11202			;JOBS WAITING FOR OBJECTS
	.STWAT==11203			;WAITING TO BE PROCESSED JOBS
	.STALL==11204			;ALL JOBS
SUBTTL	SHOW STATUS IBM-NODE message


;This command contains only a .ORNOD block to specify the node to
;be displayed





SUBTTL	SHOW PARAMTERS IBM-NODE message

;This command contains only a .ORNOD block to specify the node to
;be displayed

SUBTTL	MODIFY SYSTEM-LISTS message

;MESSAGE TYPE - .ODCSL
;This command allows the operator to manipulate
;the system search list, the crash dump list, and the active
;swapping list.

;THERE IS ONE BIT IN THE FLAG WORD:
;The add/remove bit. which says whether the OPR
;typed ADD or REMOVE.

	AD.REM==1B0			;1 if OPR said REMOVE
					;0 if OPR said ADD

;There ARE TWO argumentS to the message.  ONE block has
; the unit or structure name in SIXBIT

	.STRDV==.STRDV			;The block type

;THE OTHER DESCRIBES WHICH LIST TO MANIPULATE

	.SLSTY==20500			;THE BLOCK TYPE (LENGTH IS ALWAYS 2)

	.SLTYP==ARG.DA			;THE WORD CONTAINING THE LIST TYPE
	   SL.TCD==7B35			;FIELD CONATINING USEFUL INFO
		SL.TMN==1		;Minimum list type value
		SL.SSL==1		;System search list
		SL.CDL==2		;Crash dump list
		SL.ASL==3		;Active swapping list
		SL.TMX==SL.ASL		;Maximum list type value
SUBTTL	SHOW SYSTEM-LIST message

;MESSAGE TYPE - .ODSSL
;THIS COMMAND ALLOWS THE OPERATOR TO DISPLAY SOME OR ALL
;OF THE SYSTEM LISTS.
;THE MESSAGE HAS FROM 0 TO N BLOCKS.
;IF THERE ARE NO BLOCKS, THEN ALL SYSTEM LISTS SHOULD
;BE DISPLAYED.  IF THERE ARE BLOCKS, THEN JUST THE
;LISTS CORRESPONDING TO THE BLOCKS SHOULD BE DISPLAYED

	.ODSSL==.ODSSL			;THE MESSAGE TYPE

	.SLSTY==.SLSTY			;THE LEGAL BLOCK TYPE
					;(MAY BE MORE THAN 1 OF THESE)
SUBTTL	SHOW ALLOCATION message

;MESSAGE TYPE - .ODSAL
;THE COMMAND ALLOWS THE OPERATOR TO DISPLAY THE ALLOCATION
;REQUEST OF SOME JOB OR BATCH REQUEST ON THE SYSTEM.
;THE MESSAGE HAS ONE ARGUMENT BLOCK
;THE ALLOCATION FOR THE JOB OR REQUEST CORRESPONDING
;TO THE BLOCK ON THE MESSAGE WILL BE DISPLAYED

;THE LEGAL BLOCK TYPES ARE:

	.ORJNU==.ORJNU			;JOB NUMBER
	.ORREQ==.ORREQ			;BATCH REQUEST ID

;IF THE DATA FOR EITHER OF THESE ARGUMENTS IS -1,
;ALL THE JOBS (EITHER TYPE) WILL BE LISTED
SUBTTL	Object Data message

;MESSAGE TYPE - .OMODB
;THIS MESSAGE CONTAINS PARAMETERS TO BE APPLIED TO ALL PROCESSORS OF
;A SINGLE OBJECT TYPE.

;	!=======================================================!
;	\                                                       \
;	\                  THE MESSAGE HEADER                   \
;	\                                                       \
;	!-------------------------------------------------------!
;	!                       FLAG WORD                       !
;	!-------------------------------------------------------!
;	!                  ARGUMENT COUNT WORD                  !
;	!=======================================================!
;	


;			ARGUMENT DATA BLOCKS


;	
;	!=======================================================!
;	!  LENGTH OF THE ARGUMENT   !     TYPE OF ARGUMENT      !
;	!-------------------------------------------------------!
;	\                                                       \
;	\                     ARGUMENT DATA                     \
;	\                                                       \
;	!=======================================================!


;THE OBJECT DATA MESSAGE WILL ALWAYS CONTAIN AN OBJECT TYPE BLOCK
;TO SPECIFY THE OBJECT TO WHICH THIS MESSAGE APPLIES
;
;	.ORTYP		OBJECT TYPE BLOCK

;OTHER LEGAL BLOCK TYPES ARE:

;.OTFAL - FILE ACCESS LISTENER

	.ORDPP==30100			;DEFAULT NETWORK PPN
	.ORREJ==30101			;REJECTION LIST

;THE .ORREJ BLOCK CONTAINS THE FOLLOWING DATA:

	PHASE	ARG.DA

REJ.ND:!BLOCK	1			;NODE TO BE REJECTED (0 IF NONE)
REJ.PP:!BLOCK	1			;PPN TO BE REJECTED
REJ.MK:!BLOCK	1			;PPN MASK
REJ.SZ:!				;LENGTH OF A SINGLE ENTRY

	DEPHASE
SUBTTL	ORION	Error codes and messages

;ARGUMENTS USED ARE

;	X	'SUFFIX','TEXT'

;THE EXPANDER MUST DEFINE THE CORRECT X MACRO

DEFINE ERRCDS,<
	XLIST

	X	AON,<Application object block and object type block not allowed together in WTOR/WTO/ACK message>
	X	CMI,<Command message invalid>
	X	UPO,<Unknown processor object>
	X	UPT,<Unidentified processor type>
	X	IPE,<OPERATOR privileges required>
	X	IOE,<Invalid OPR entry>
	X	IFC,<Illegally formatted command message>
	X	IRS,<Illegal range specified>
	X	MTS,<Message too short>
	X	BML,<Bad message length>
	X	CSU,<Cannot send to specified user>
	X	NOM,<No outstanding messages>
	X	ICS,<Invalid argument count specified in command>
	X	IAL,<Invalid argument length specified>
	X	ITM,<Invalid type argument in message>
	X	ONS,<OPR not setup .. command ignored>
	X	DTM,<Duplicate type specified in message>
	X	WJP,<WTO, WTOR, or ACK job number field requires privileges>
	X	WTP,<WTO, WTOR or ACK object type field requires privileges>
	X	IWF,<Invalid WTO or WTOR field>
	X	WOP,<WTO, WTOR, or ACK object block field requires privileges>
	X	IOU,<Invalid object unit specified in object block>
	X	RIW,<Range invalid in WTO, WTOR or ACK object block>
	X	OPD,<OPR pid already defined>
	X	ISM,<OPR setup message invalid .. OPR did not send hello>
	X	OAS,<OPR already setup .. OPR deleted>
	X	ANI,<Application name invalid in application hello message>
	X	ODE,<OPR Does not exist .. message not sent>
	X	MTF,<WTO message type field required with WT.SJI set>
	X	IAC,<Invalid acknowledgement code .. code was zero>
	X	CNI,<Command not yet implemented>
	X	IPS,<Invalid pid for sender .. pid was zero>
	X	ISC,<Invalid switch specified in command>
	X	WNA,<Write to operator function not allowed for this job>
	X	LNI,<Logging not enabled>
	X	RNA,<Range not allowed in START command with /DEVICE>
	X	IQS,<Invalid queue specified in command>
	X	SUF,<ERROR.SYS entry failed on REPORT command>
	X	IUM,<Invalid user specified in message>
	X	ARP,<ACK messages require WHEEL or OPERATOR privileges>
	X	NRW,<Notify message requires WHEEL or OPERATOR privileges>
	X	JDE,<Job to be notified no longer exists>
	X	NJD,<Job to be notified is DETACHED .. notify ignored>
	X	BNR,<Batch commands not allowed from remote nodes>
	X	NOD,<No operators defined>
	X	DOL,<Device already online .. command ignored>
	X	SFF,<Scheduler functions failed for SHOW SCHEDULER command>
	X	ORS,<SYSTEM, HOST or REMOTE operator privilege required>
	X	OHS,<SYSTEM or HOST operator privilege required>
	X	OSY,<SYSTEM operator privilege required>
	X	SAF,<Send to ACTDAE failed for SET USAGE command>
	X	CLO,<Can't locate operator>
	X	SCN,< Specified CPU not running >
	X	ICP,< Invalid CPU number specified >
	X	NRN,< No CPUs will be able to run jobs .. command ignored >
	X	ACS,< All CPUs are already schedulable .. command ignored >
	LIST
	SALL
> ;END OF DEFINE ERRCDS
	DEFINE	ERRTXT,<
		XLIST
	X	ACI,<Application code ^D/G$ARG1/ invalid .. WTO rejected>
	X	AHF,<Application ^T/@APLNAM/ hello acknowledgement failed .. hello ignored>
	X	ANS,<Application ^T/@APLNAM/ not signed on yet .. WTO/WTOR/ACK rejected>
	X	CAS,<^W/G$ARG2/ is already running jobs .. command ignored>
	X	CDE,<^W/G$ARG2/ does not exist>
	X	CDN,<^W/G$ARG2/ is down .. command ignored>
	X	CNM,<^W/G$ARG2/ is an invalid CPU name>
	X	CPM,<WTO/WTOR/ACK request for ^T/@APLNAM/ has different pid from hello .. WTO rejected>
	X	CSF,<Class scheduler error: ^E/G$ARG1/>
	X	DDI,<Disk drive number ^D/G$ARG1/ invalid on SET command>
	X	DJF,<SET ONLINE failed because ^E/G$ARG1/>
	X	DUF,<DEVTYP UUO failed for device ^W/G$ARG1/:>
	X	EDC,<Job scheduling ^T/@G$ARG1/d for specified CPU(s)>
	X	IAP,<^T/@G$ARG1/ is not running>
	X	ICN,<Channel number ^D/G$ARG1/ invalid on SET command>
	X	IDD,<^T/@G$ARG1/ is not a valid disk structure .. command ignored>
	X	IDS,<^T/@G$ARG1/ is not supported for /DEVICE .. command ignored>
	X	IMT,<Illegal message type ^O/G$ARG1/>
	X	INS,<Operator at node ^N/G$ARG1/ not enabled for node ^N/G$ARG2/>
	X	INT,<Invalid node or no terminal lines for node ^N/G$ARG1/>
	X	ION,<OPR hello message node ^N/G$ARG1/ invalid .. OPR ignored>
	X	IOT,<Invalid object type ^O/G$ARG1/ specified in message>
	X	ISP,<Insufficient privileges to set ^W/G$ARG1/>
	X	IRD,<Can't ^T/@G$ARG2/ a disk device (^W/G$ARG1/:)>
	X	ITD,<^T/@G$ARG1/ is not a valid tape drive .. command ignored>
	X	LAO,<ORION log file ^F/LOGFD/ already open .. command ignored>
	X	LFE,<ORION log error ^E/[-1]/ .. logging disabled>
	X	MBP,<ORION must be [1,2] or JACCT to ^T/@G$ARG1/ CPU job scheduling>
	X	MDA,<Can't ^T/@G$ARG2/ a device controlled by MDA (^W/G$ARG1/:)>
	X	MNV,<Message ^D/G$ARG1/ no longer valid .. sender has gone away>
	X	NJA,<Can't ^T/@G$ARG2/ device, ORION not [1,2] or JACCT>
	X	NMC,<No messages found with code ^O/G$ARG1/>
	X	NMN,<No messages for node ^N/G$ARG1/>
	X	NON,<No operators at node ^N/G$ARG1/>
	X	NSM,<Message ^D/G$ARG1/ does not exist>
	X	NTD,<^T/@G$ARG1/ is not a tape drive or valid structure .. command ignored>
	X	OAE,<DN60 OPR at node ^N/G$ARG1/ already exists>
	X	ONE,<OPR not enabled for message ^D/G$ARG1/ at node ^N/G$ARG2/>
	X	OSF,<OPR setup failure for pid ^O/G$ARG1/ .. OPR ignored>
	X	PER,<Command error: ^T/@G$ARG1/>
	X	RWF,<^T/@G$ARG1/ file retrieval waits failed  ^E/[-2]/>
	X	SIC,<SET ONLINE ^T/@G$ARG1/ channel number ^O/G$ARG2/ invalid>
	X	SID,<SET ONLINE ^T/@G$ARG1/ device number ^O/G$ARG2/ invalid>
	X	SJF,<SET JOB scheduler error: ^E/G$ARG1/>
	X	SJN,<SET JOB invalid .. job ^D/G$ARG1/ not logged in>
	X	SPI,<SET priority value ^D/G$ARG1/ invalid .. 63 is maximum>
	X	SSF,<SET SCHEDULER error: ^E/G$ARG1/>
	X	TAB,<TAKE command aborted because ^T/@G$ARG1/ not running
		on command "^T/@G$ARG2/">
	X	UFR,<UUO failed trying to ^T/@G$ARG2/ ^W/G$ARG1/:>
	X	UUF,<SETUUO failed trying to ^T/@G$ARG1/ CPU job scheduling>
	X	WTL,<WTO/WTOR message length ^D/G$ARG1/ exceeds max of ^D/[WTOMAX]/>
	X	WVN,<Wrong ORNMAC version number ORION used version ^O/[%%.OPR]/ and OPR used version ^O/.OHDRS+OPH.OV(MI)/>
		LIST
		SALL
	> ;END ERRTXT

	DEFINE	ORNMSG,<
		XLIST
	X	CSE,<Class scheduler ^T/@G$ARG1/>
	X	CWM,<Message ^D/G$ARG1/ canceled^I/@G$ARG3/>
	X	DRU,<Device ^W/G$ARG1/: ^T/@G$ARG2/ed>
	X	FRW,<File retrieval waits ^T/@G$ARG1/d>
	X	JLO,<Message ^D/G$ARG1/ canceled .. job ^D/G$JOB/ logged out>
	X	LFC,<ORION logging disabled by ^I/@JOBTXT/>
	X	MCJ,<^D/G$ARG2/ message(s) canceled>
	X	ODM,<Output display for OPR modified>
	X	OLO,<ORION logging enabled by ^I/@JOBTXT/>
	X	SCC,<SEND command completed>
	X	SEM,<Entry made in ERROR.SYS>
	X	SET,<Set accepted, ^W/G$ARG1/ is now ^D/G$ARG2/>
	X	SJM,<Job ^D/G$ARG1/ modified>
	X	SOA,<SET ONLINE accepted>
	X	SSJ,<Job ^D/G$ARG1/ now in class ^D/G$ARG2/>
	X	SSS,<Scheduler setting modified>
		LIST
		SALL
		> ;END ORNMSG
	DEFINE	ERRSET,<
		EXTERNAL TXTTBL
		EXTERNAL STSTBL
		EXTERNAL ERRTBL
		EXTERNAL RPTERR
		DEFINE	X(SUFFIX,TEXT),<
		EXTERNAL	E$'SUFFIX
		> ;END X
		ERRCDS
		ERRTXT
		ORNMSG
	> ;END ERRSET
SUBTTL	PARSET	Parser setup macros

	DEFINE	PARSET,<
	EXTERNAL	P$GPDB		;GET THE PDB BLOCK
	EXTERNAL	P$PNXT		;GET NEXT PDB GIVEN A PDB BLOCK
	EXTERNAL	P$PERR		;GET ERROR BLOCK FROM PDB GIVEN A PDB
	EXTERNAL	P$PDEF		;GET DEFAULT FILLING ROUTINE GIVEN A PDB
	EXTERNAL	P$PACT		;GET ACTION ROUTINE GIVEN A PDB

	EXTERNAL	P$NARG		;NEXT ARGUMENT TYPE TO PROCESS
	EXTERNAL	P$SETU		;SETUP POINTER TO PARSER BLOCKS
	EXTERNAL	P$CURR		;GET THE CURRENT LOCATION
	EXTERNAL	P$PREV		;SET THE PREVIOUS TO CURRENT
	EXTERNAL	P$FLOT		;FLOATING POINT NUMBER
	EXTERNAL	P$INIT		;PARSER INIT
	EXTERNAL	P$INTR		;PARSER INTERRUPTS
	EXTERNAL	P$TINT		;TIMER INTERRUPTS
	EXTERNAL	P$NFLD		;NEXT FIELD TYPE AND BLOCK ADDRESS
	EXTERNAL	P$DIR		;DIRECTORY FIELD
	EXTERNAL	P$NEXT		;GET NEXT FIELD
	EXTERNAL	P$TIME		;TIME/DATE CHECK
	EXTERNAL	P$COMMA		;COMMA CHECK
	EXTERNAL	P$CFM		;CONFIRM CHECK
	EXTERNAL	P$KEYW		;KEYWORD CHECK
	EXTERNAL	P$SWIT		;SWITCH CHECK
	EXTERNAL	P$USER		;USER CHECK
	EXTERNAL	P$NUM		;NUMBER CHECK
	EXTERNAL	P$FILE		;FILE SPEC CHECK
	EXTERNAL	P$IFIL		;INPUT FILE SPEC
	EXTERNAL	P$OFIL		;OUTPUT FILE SPEC
	EXTERNAL	P$FLD		;FIELD CHECK
	EXTERNAL	P$TOK		;TOKEN CHECK
	EXTERNAL	P$NODE		;NODE CHECK
	EXTERNAL	P$SIXF		;SIXBIT FIELD CHECK
	EXTERNAL	P$RNGE		;RANGE OF NUMBERS
	EXTERNAL	P$TEXT		;TEXT CHECK
	EXTERNAL	P$DEV		;DEVICE CHECK
	EXTERNAL	P$QSTR		;QUOTED STRING
	EXTERNAL	P$UQST		;UNQUOTED STRING
	EXTERNAL	P$TAKE		;Take processing
	EXTERNAL	P$ACCT		;Account string
	EXTERNAL	P$NPRO		;No process required
> ;END PARSET
SUBTTL	Node/Operator Data Base

;THE NODE LIST EXTERNAL CONTAINS ONE FOR EACH NODE THAT
;HAS SIGNED ON TO ORION

	PHASE	0
NOD.NM:! BLOCK	1			;NODE NAME (SIXBIT)
NOD.NU:! BLOCK	1			;NODE NUMBER
NOD.OP:!BLOCK	1			;OPR LIST NUMBER
NOD.ML:!BLOCK	1			;MESSAGE LIST NUMBER
NOD.CT:!BLOCK	1			;NUMBER OF MESSAGES QUEUED FOR
					; THIS NODE.
NOD.AO:!BLOCK	1			;LIST OF ALTERNATE OUTPUT NODES
NOD.AI:! BLOCK	1			;LIST OF ALTERNATE INPUT NODES
NOD.TM:!BLOCK	1			;TIME OF LAST AUTO DISPLAY
NOD.OC:! BLOCK	1			;NUMBER OF OPRS AT NODE
NOD.FL:! BLOCK	1			;FLAGS FOR NODE LIST
	ND.NLE==1B0			;NODE LIST ENABLED
	ND.SYS==1B1			;SYSTEM OPERATOR NODE
	ND.D60==1B2			;D60 TYPE NODE
NOD.SZ:!				;SIZE OF THE NODE BLOCK
	DEPHASE

	SYSPRM	NOD.NX,NOD.NU,NOD.NM	;NUMBER ON -10 NAME ON -20


;THE FOLLOWING IS THE FORMAT OF THE ALTERNATE NODE LIST
;FOR EACH NODE. THIS ENTRY IS GENERATED BY THE ENABLE COMMAND

	PHASE	0

NAL.FL:! BLOCK	1			;FLAGS FOR ALTERNATE NODE
NAL.NM:! BLOCK	1			;NAME OF NODE
NAL.NU:! BLOCK	1			;NUMBER OF NODE
NAL.AD:! BLOCK	1			;ADDRESS OF NODE ENTRY
NAL.SZ:!				;SIZE OF THE ENTRY

DEPHASE

SUBTTL	OPR list entry

;THIS A DESCRIPTION OF AN OPR BLOCK USED TO DESCRIBE
;EACH OPR THAT HAS SIGNED ON TO ORION. THE OPRS ARE
;ASSOCIATED WITH THE NODE AT WHICH THEY ARE LOCATED.
	PHASE	0
OPR.PD:!BLOCK	1			;PID FOR THIS OPR
OPR.FL:!BLOCK	1			;FLAG WORD FOR THIS OPR
	OP.NST==1B0			;OPR NOT SETUP YET
	OP.REM==1B1			;REMOTE OPERATOR
	OP.TAK==1B2			;IN A TAKE COMMAND
	OP.ABT==1B3			;ABORT TAKE FILES
	OP.D60==1B4			;DN60 OPERATOR
	OP.SYS==1B5			;SYSTEM OPERATOR
	OP.LCL==1B6			;LOCAL OPERATOR
	OP.HST==1B7			;Host operator

OPR.OF:!BLOCK <.OTMAX+NUMAPL>/<^D36/^D3>+1 ;THREE FLAGS PER OBJECT
	WO.ALL==WO.EVM!WO.JOB!WO.OAC	;ALL FLAGS
	  WO.EVM==1B0			;OTHER MESSAGES
	  WO.JOB==1B1			;JOB MESSAGE
	  WO.OAC==1B2			;OPR ACTION MESSAGE

OPR.OC:! BLOCK	1			;COMMANDS OUTPUT TO THIS OPR
OPR.IC:! BLOCK	1			;COMMANDS INPUT FROM THIS OPR
OPR.ND:! BLOCK	1			;NODE ENTRY ADDRESS FOR THIS OPR
OPR.LS:! BLOCK	1			;OPR LIST CONTAINING THIS ENTRY
OPR.TN:! BLOCK	1			;TERMINAL NUMBER OF OPR
OPR.JB:! BLOCK	1			;JOB NUMBER OF THE OPR
OPR.US:! BLOCK	1			;USER NUMBER OR PPN
TOPS10 <
OPR.UN:! BLOCK	2			;USER NAME ON THE -10
> ;END TOPS10
OPR.TP:! BLOCK	1			;TABLE ENTRY POINTER
IFN	FTDN60,<
OPR.PL:! BLOCK	1			;DN60 PORT LINE INFO
OPR.DN:! BLOCK	1			;DN60 CHARACTERISTICS
> ;END FTDN60
OPR.SZ:!				;SIZE OF THE OPR BLOCK
	DEPHASE


SUBTTL	OPR table database structure

;THIS IS THE FORMAT OF THE LIST ENTRY FOR THE OPR DATA BASE
;LIST WHICH IS BUILT BY ORION

	PHASE	0

TOP.PD:! BLOCK	1			;PID OF THE OPR
TOP.OA:! BLOCK	1			;ADDRESS OF OPR ENTRY
TOP.SZ:!				;SIZE OF THE DATA BASE BLOCK

	DEPHASE
SUBTTL	OPERATOR message list entry

;THIS LIST CONTAINS ALL OPERATOR MESSAGES REQUIRING A REPLY
;AND IS ASSOCIATED WITH EACH NODE
	PHASE	0
MSL.FL:!BLOCK	1			;MESSAGE LIST FLAGS
	MS.NDY==1B35			;MESSAGE HASN'T BEEN DISPLAYED
	MS.TER==1B34			;NOTIFY ON TERMINAL ON SEND FAILURE
MSL.PD:!BLOCK	1			;PID OF THE SENDER
MSL.JB:!BLOCK	1			;JOB NUMBER MESSAGE IS FOR
MSL.JT:! BLOCK	1			;LOGGED IN TIME OF SENDER
MSL.ND:! BLOCK	1			;NODE THE MESSAGE IS PART OF
MSL.CD:! BLOCK	1			;CODE PASSED IN WTOR
MSL.ID:! BLOCK	1			;ID NUMBER OF MESSAGE
MSL.SZ:!				;SIZE OF THE MESSAGE LIST
	DEPHASE

SUBTTL	Parser storage allocation definitions

DEFPTR==POINT	7,0			;DEFAULT BYTE POINTER FOR OPRPAR
					;PARSING (NOT FOR RETURNING USER
					;ARGUMENTS)
BUFSIZ==200				;SIZE OF INPUT TEXT BUFFER
ATMSIZ==BUFSIZ				;SIZE OF ATOM BUFFER FOR COMND JSYS
FDBSIZ==.CMDEF+2			;SIZE OF FUNCTION DESCRIPTOR BLOCK

;GTJFN BLOCK FOR COMMAND

TOPS20 <
GJFSIZ==.GJRTY+2			;SIZE OF GTJFN BLOCK USED BY COMND JSYS
> ;END TOPS20

TOPS10 <
GJFSIZ==FDXSIZ
> ;END TOPS10
SUBTTL	PDB	Parser data block definitions

;THE FOLLOWING SYMBOLS ARE USED TO DESCRIBE AN
;ENTRY IN THE COMMAND MESSAGE AS OUTPUT BY THE PARSER

	PHASE	0
PFD.HD:! BLOCK	1			;HEADER WORD FOR BLOCK
	PF.TYP==0,,-1			;TYPE IN THE LEFT HALF
	PF.LEN==-1,,0			;LENGTH IN RIGHT HALF
					;INCLUDES THIS WORD
PFD.D1:! BLOCK	1			;FIRST DATA WORD
PFD.D2:! BLOCK	1			;SECOND DATA WORD (IF NECESSARY)
PFD.SZ:! 				;SIZE OF THE BLOCK

	DEPHASE

SUBTTL	Parser flag values

	P.TAKE==1B0			;TAKE COMMAND PROCESSED
	P.CTAK==1B1			;COMMAND FROM A TAKE COMMAND
	P.ACTE==1B2			;ACTION ROUTINE ERROR
	P.NPRO==1B3			;NO PROCESSING FOR COMMAND
	P.ERRO==1B4			;ERROR FLAG..ERROR OCCURRED
	P.REPA==1B5			;REPARSE REQUIRED
	P.INTE==1B6			;INTERRUPT EXIT FLAG
	P.DSPT==1B7			;DISPLAY THIS TAKE COMMAND
	P.ENDT==1B8			;END OF TAKE FILE
	P.DERR==1B9			;DEFAULT ROUTINE ERROR
	P.CEOF==1B10			;CORE PARSE END OF FILE

	TEMTSZ==20			;SIZE OF TEMP TABLE FOR SHRSWT
SUBTTL	Parser argument block description

;THIS IS A DESCRIPTION OF THE ARGUMENT BLOCK USED
;TO CALL THE PARSER ROUTINE (OPRPAR)
;	S1/	LENGTH OF THE BLOCK
;	S2/	ADDRESS OF THE BLOCK

	PHASE	0
PAR.TB:! BLOCK	1			;ADDRESS OF THE TABLES
PAR.PM:! BLOCK	1			;ADDRESS OF THE PROMPT STRING
					;DEFAULT TO PARSER> IF ZERO
PAR.CM:! BLOCK	1			;ADDRESS TO STORE PARSED DATA
					;DEFAULT TO GET PAGE IF ZERO
PAR.SR:! BLOCK	1			;ADDRESS OF THE STRING TO PARSE
					;DEFAULT TTY IF NOT SPECIFIED OR ZERO
					;-1 MEANS DO A RESCAN FOR INCORE
PAR.SZ:!				;SIZE OF THE PARSER CALLING BLOCK
SUBTTL	Parser action routine argument block description

;THIS BLOCK IS A DESCRIPTION OF THE ELEMENTS AVAILABLE TO THE
;ACTION,PREFILL, AND ERROR ROUTINES WHEN CALLED

;CALL	S1/	LENGTH OF THE BLOCK
;	S2/	ADDRESS OF THE BLOCK
	COMMENT \			;HERE FOR COMMENT ONLY... ARE DEFINED IN GLXMAC

	PHASE	0
CR.FLG:! BLOCK	1			;OFFSET FOR THE FLAG WORD
CR.RES:! BLOCK	1			;OFFSET FOR THE RESULT WORD
CR.PDB:! BLOCK	1			;GIVEN PDB,,USED PDB
CR.COD:! BLOCK	1			;CODE TYPE OF PROCESSED FIELD
CR.SIZ:!				;SIZE OF THE BLOCK

	DEPHASE
	\;END OF COMMENT
	PC.SIZ==CR.SIZ+1
	CR.SAV==CR.SIZ			;DEFINE THE SAVE BLOCK

	SUPPRESS CR.SIZ
SUBTTL	Parser return block definition

;THIS BLOCK IS A DESCRIPTION OF THE ARGUMENT BLOCK RETURNED
;BY THE PARSER.
;	S1/	LENGTH OF THE BLOCK
;	S2/	ADDRESS OF THE BLOCK

	PHASE	0
PRT.FL:! BLOCK	1			;FLAG WORD FOR RETURN
PRT.CM:! BLOCK	1			;COMMAND MESSAGE ADDRESS
PRT.CF:! BLOCK	1			;COMMAND FLAG WORD
PRT.SM:!
PRT.MS:! BLOCK	1			;POINTER TO TEXT OF MESSAGE ON
					;FALSE RETURN
PRT.EM:! BLOCK	1			;POINTER TO ERROR MESSAGE ON
					;FALSE RETURN
PRT.EC:! BLOCK	1			;ERROR CODE RETURNED
					;FROM ACTION ROUTINE
PRT.SZ:!
	DEPHASE
SUBTTL	Parser keyword table descriptions

;THESE DEFINITIONS DESCRIBE THE ENTRY BLOCK FOR ALL
;SYNTAX TABLES USED BY ORION AND OPR

	PHASE 0
TAB.HD:! BLOCK	1			;HEADER WORD FOR TABLES
	TB.LEN==0,,-1			;LENGTH IN RIGHT HALF
TAB.IN:! BLOCK	1			;TABLE ADDRESS OF .CMINI FUNCTION
TAB.KY:! BLOCK	1			;TABLE ADDRESS OF MAIN KEYWORD TABLE
TAB.SZ:!				;SIZE OF THE ENTRY

	DEPHASE

;FLAGS USED BY ORION

	F.WTXT==1B18			;WTO TEXT ARGUMENT PRESENT
	F.WOBJ==1B19			;WTO OBJECT BLOCK SPECIFIED
	F.WDES==1B20			;WTO DESTINATION FIELD PRESENT
	F.WJOB==1B21			;JOB NUMBER SPECIFIED IN WTO
	F.WERR==1B22			;ERROR CODE SPECIFIED IN WTO
	F.WRTE==1B23			;ROUTE CODE SPECIFIED IN WTO
	F.WTYP==1B24			;TYPE TEXT SPECIFIED IN WTO
	F.WANS==1B25			;ANSWER BLOCK SPECIFIED IN WTOR
	F.WACD==1B26			;APPLICATION CODE FIELD
	F.WOCD==1B27			;OBJECT TYPE BLOCK
	F.WTTY==1B28			;TTY NAME BLOCK


	F.WFLG==F.WTXT!F.WOBJ!F.WDES!F.WJOB!F.WERR!F.WRTE!F.WTYP!F.WANS!F.WACD!F.WOCD!F.WTTY
SUBTTL	Message resend list database description

;THIS LIST IS THE DATA STRUCTURE USED TO KEEP TRACK OF MESSAGES
;NEEDING TO BE RESENT TO AN OPR OR A PROCESSOR THAT HAD A 
;RECOVERABLE SEND FAILURE

	PHASE	0

RSD.HD:! BLOCK	1			;HEADER FOR LIST ENTRY
	RS.LEN==-1,,0			;LENGTH OF ENTRY
RSD.TM:! BLOCK	1			;TIME OF THE MESSAGE FIRST TRIED
RSD.MS:! BLOCK	1			;OFFSET IN BLOCK TO MESSAGE TEXT
RSD.FL:! BLOCK	1			;FLAGS FOR THE RESEND LIST
	R.WAIT==1B0			;WAIT FOR PID TO COME
	R.NSNT==1B1			;NOT SENT YET
	R.SQSR==1B2			;SEND TO QUASAR
	R.SOPR==1B3			;SEND TO OPR
	R.SAPL==1B4			;SEND TO APPLICATION
RSD.RT:! BLOCK	1			;COUNT OF RETRIES
RSD.PD:! BLOCK	1			;OFFSET FOR PID LIST
RSD.CT:! BLOCK	1			;NUMBER OF PIDS TO SEND TO
RSD.SZ:! 				;SIZE OF RESEND LIST

	DEPHASE
SUBTTL	Message send failure database description

;THIS IS THE DATA BASE USED FOR THE SEND FAILURE TABLE

	PHASE 0
SFL.PD:! BLOCK	1			;PID WITH FAILURE
SFL.CT:! BLOCK	1			;COUNT OF MESSAGES WITH FAILURE
SFL.SZ:!

	DEPHASE
SUBTTL	Interrupt system definitions

	IPCLEV==1			;USE INTERRUPT LEVEL 1
SUBTTL	DN200 OPR definitions
	DEBSRV==200			;DEBUGGING SERVER TYPE

	SRVTSK==57			;TASK TO ACCEPT CONNECTIONS
	DCNTSK==47			;TASK TO DO OUTPUT FROM
	NUMSRV==3			;NUMBER OF SERVERS
	NETBSZ==^D8			;NETWORK BYTE SIZE

;ORION SRV: DEFINITIONS

	CHNSRV==^D23			;CHANNEL TO START GETTING SERVERS AT


;OPR SRV: DEFINITIONS

	INPCHN==2			;INPUT CHANNEL
	OUTCHN==3			;OUTPUT CHANNEL
	OUTSIZ==^D381			;SIZE OF LARGEST MESSAGE

	CHNINT==<-1_<<NUMSRV*2>-^D36>>B<<NUMSRV*2>+CHNSRV-1>	;GET BITS FOR AIC
					;SETTING ALL APPROPRIATE CHANNELS
SUBTTL	SRV: Database for TOPS20

;THE SERVER DATA BASE
	PHASE 0

SRV.CN:! BLOCK	1			;INTERRUPT CHANNEL FOR THIS SERVER
SRV.IN:! BLOCK	1			;INTERRUPT FLAG FOR CHANNEL
SRV.JF:! BLOCK	1			;JFN FOR SERVER LINK
SRV.FK:! BLOCK	1			;FORK HANDLE FOR PROCESS
SRV.SZ:!				;SIZE OF SERVER DATA BASE ENTRY


	DEPHASE


;THE ACTIVE NETWORK SERVERS


	PHASE 0

NET.FK:! BLOCK	1			;FORK HANDLE OF THE SERVER
NET.PG:! BLOCK	1			;PROGRAM JFN FOR SERVER
NET.LJ:! BLOCK	1			;NETWORK LINK JFN
NET.SA:! BLOCK	1			;SERVER DATA BASE ADDRESS
NET.SZ:!				;SIZE OF DATA BASE

	DEPHASE
SUBTTL	Error tables for OPR

	DEFINE	ERROPR,<
	XLIST
X	E.NORM,<OPR terminated normally>
TOPS20 <
X	E.OPNF,<Unable to open ^T/DCNDAT/>
X	E.CONF,<Unable to get connects for ^T/DCNDAT/>
X	E.ACFL,<Unable to accept connects for server links>
X	E.OUTF,<Output over link ^T/DCNDAT/ failed .. link aborted>
X	E.INPF,<Input over server link failed .. link aborted>
X	E.STSF,<Status return for input server link failed .. link aborted>
X	E.INVC,<Invalid connect status ^O/ARG1/ .. link aborted>
> ;END TOPS20
X	E.EXIT,<EXIT command issued>

	LIST
	SALL
> ;END ERROPR

	DEFINE	X(A,B),<
	XLIST
	A==.ZZ
	.ZZ==.ZZ+1
	LIST
	SALL
	> ;END X

	.ZZ==0
	ERROPR
	E.MAXE==.ZZ			;LAST ERROR CODE

;SUPPRESS SYMBOLS REFERENCED BUT NOT DEFINED IN ORNMAC

SUPPRESS FTJSYS,FTUUOS,MSHSIZ,MT.TXT,OBJ.ND,OBJ.SZ,OBJ.TY,OBJ.UN,.ZZ

	END