Google
 

Trailing-Edge - PDP-10 Archives - tops20-v7-ft-dist2-clock - galaxy-sources/batmac.mac
There are 38 other files named batmac.mac in the archive. Click here to see a list.
UNIVER	BATMAC		;PARAMETER FILE FOR BATCON
SUBTTL  Preliminaries

;	COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975, 1988.
;	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 THAT IS NOT SUPPLIED BY DIGITAL.

	SEARCH	GLXMAC		;CHECK GALAXY LIBRARY
	SEARCH	QSRMAC		;CHECK QUASARS LIBRARY
	PROLOG(BATMAC)		;GENERATE THE NECESSARY SYMBOLS
IFN	FTUUOS,<
	IF1,<PRINTX BUILDING A GALAXY-10 BATMAC>
		SEARCH	UUOSYM>
IFN	FTJSYS,<
	IF1,<PRINTX BUILDING A GALAXY-20 BATMAC>
		SEARCH	MONSYM>

	BMCMAN==:0
	BMCDEV==:41
	VERSIN(BMC)

	BMCWHO==0
	BMCVER==6
	BMCMIN==0
	Subttl	Table of Contents

;		     Table of Contents for BATMAC
;
;				  Section		      Page
;
;
;    1. Revision . . . . . . . . . . . . . . . . . . . . . . .   3
;    2. Assembly Parameters (Define the Options) . . . . . . .   4
;    3. Other Definitions (Bits, AC's, Macros, etc...) . . . .   6
;    4. Data Base for Each Batch Stream  . . . . . . . . . . .  11
;    5. INTERRUPT DATA BASE FLAGS  . . . . . . . . . . . . . .  14
;    6. MSGBLD - BUILD ERROR MESSAGE TABLE . . . . . . . . . .  15
	SUBTTL	Revision 

COMMENT \

*****	Release 4.2 -- begin maintenance edits  *****

EDIT    1 		3-Mar-85
	Add output counter OUTCNT.
	GCO 4.2.1609	4.2 edit 4217
*****	Release 5.0 -- begin development edits	*****

EDIT    10	5.1073	26-Jan-84
		Move to new development area. Add version vector. Update
		TOC. Change version number to 5

*****	Release 5.0 -- begin maintenance edits  *****

20	Increment maintenance edit level for version 5 of GALAXY.

21		5.1225	15-Oct-85
	Define a new bit FL.ZXC which indicates if a CR, LF or FF was
once a generated control character. Used in "=" processing.

22		5.1241	11-Jun-86
	Define a new bit FR.RER and data base word .JCRER for use in
conjunction with the new reserved label %RERR::

23		5.1244	7-Dec-86
	Increase the batch stream stack size (.JPSIZ) from 100 to 200 words.

*****	Release 6.0 -- begin development edits	*****

40	6.1037		26-Oct-87
	Move sources from G5: to G6:

41	6.1225		8-Mar-88
	Update copyright notice.

\	;End of Revision History
	SUBTTL	Assembly Parameters (Define the Options)

	SYSPRM	FILEMK,<0,,777>,RHMASK	;MASK FOR FILE MAPPING
DEFINE	PARMS<

;;TYPE 1 OPTIONS - DEFINE STATIC PARAMETERS

	X	PTYBFR,1	;;NUMBER OF PTY BUFFERS IN THE RING

;;TYPE 3 OPTIONS - DEFINE OTHER PARAMETERS

	X	REQTIM,5	;;Number of minutes for requeueing
	X	TPSIZE,100	;;SIZE OF THE TOP LEVEL PUSH DOWN LIST
;**;[23]At .JPSIZ,100 change 1 line  JCR  12/7/86
	X	.JPSIZ,200	;;[23]Size of the stack for each subjob
	X	%EXTRA,^D10	;;PERCENTAGE OF EXTRA TIME GIVEN TO A JOB
	>

DEFINE	X(A,B)<IFNDEF A,<A==B>> ;;DEFINE THE SYMBOL IF NOT ALREADY DEFINED

	PARMS			;EXPAND THE ASSEMBLY PARAMETERS


;	-10 Job maximum is dependent on new FILOP otherwise max should be 5.
;	-10 maximum is 15 till PTY uses new FILOP.
	SYSPRM	DEFMJB,^D15,^D9	;JOB MAX ON EITHER SYSTEM
	SYSPRM	MONCHR,".","@"	;MONITOR PROMPT CHARACTER
				;USED AS FIRST CHARACTER OF INPUT LINE TO
				;DIRECT LINE TO THE MONITOR
	SYSPRM	OPRPST,<ASCIZ /B/>,<ASCIZ /B-/>  ;OPR PROMPT STRING
;CONSISTENCY CHECK FOR ASSEMBLY PARAMETERS

	IFLE	DEFMJB,<
		PRINTX DEFMJB.LT.1, 1 ASSUMED
		DEFMJB==1>
	IFN	FTJSYS,<
	IFG	<DEFMJB-^D9>,<
		PRINTX	DEFMJB GREATER THAN 9 ON -20 ..9 ASSUMED
		DEFMJB==^D9
		>>;END FTJSYS
	IFN	FTUUOS,<
	IFG	<DEFMJB-^D15>,<
		PRINTX	DEFMJB GREATER THAN 15 ON -10 ..15 ASSUMED
		DEFMJB==^D15
		>>;END FTUUOS


	IFLE	PTYBFR,<
		PRINTX PTYBFR.LT.1, 1 ASSUMED
		PTYBFR==1>

	IFL	<%EXTRA-^D10>!<^D100-%EXTRA>,<
		PRINTX BAD VALUE FOR THE PERCENTAGE OF EXTRA TIME, 10% ASSUMED
		%EXTRA==^D10>
	SUBTTL	Other Definitions (Bits, AC's, Macros, etc...)

;ACCUMULATOR DEFINITIONS (MUST BE IN THE ORDER DISTRIBUTED)
;THESE DEFINITIONS PARALLEL QUASAR-10 DEFINITIONS

;AC BLOCK 0-13 IS SAVED FOR EACH STREAM IN .JREGS(R)
;AC 17 IS ALSO SAVED

IO1==7		;REGISTERS USED BY THE I/O HANDLER
IO2==10

F==11		;ONE OF THE FLAG WORDS FOR THE STREAM (AC R IS THE OTHER)

J==12		;JOBSTS FOR THE STREAM

CH==13		;RANDOM CHARACTER HOLDER (QUASAR AC 'AP')

;END OF SAVED AC'S FOR EACH STREAM

G==14		;GLOBAL BATCON FLAGS
S==15		;STREAM INDEX
R==16		;RELOCATION FOR THE STREAM (LH ARE STREAM FLAGS)

P==17		;PUSH DOWN LIST POINTER
		;IS USED FOR BOTH TOP LEVEL PDL
		;AND INDIVIDUAL STREAM LISTS

	FULLCT==4			;COUNT OF FULL RETRIES
	PTYNCH==6	;NUMBER OF INTERRUPT CHANNEL GROUPS
	INT.PI==0			;INTERRUPT LEVEL 0
	INT.P1==1			;INTERRUPT LEVEL 1
	INT.P3==3			;INTERRUPT LEVEL 3


;DEFINE SOME CONSTANTS AFTER CONSISTENCY CHECKS (PS. DON'T EVER CHANGE THESE)


;	DO NOT CHANGE THE NUMBER OF WORDS SINCE IT WILL CAUSE PROBLEMS
;	ON THE -20 IF SIZE IS TOO BIG.

	SYSPRM	PTYBLK,^D30,23		;30. ON -10 23 ON -20
;FLAGS SETTINGS FOR BATCH STREAMS

;AC R (LH FLAGS ONLY)

RL.ACT==400000	;STREAM IS ACTIVE (MUST BE THE SIGN BIT)
RL.MES==200000	;OPERATOR MESSAGE LIST SETUP...
RL.JNA==100000	;JOB NUMBER IS EVER ASSIGNED
RL.OPR==040000	;WAITING FOR OPERATOR RESPONSE
RL.JIE==020000	;JOB IS IN ERROR STATE
RL.FCI==010000	;FIRST CHARACTER OF INPUT FROM CTL FILE
RL.KJB==004000	;AUTO KJOB LINE HAS BEEN SENT
RL.IGN==002000	;DONT SAVE CHARS FOR THE OPERATOR LINE
RL.MSP==001000	;A MESSAGE IS READY TO PROCESS..SCHEDULE JOB
RL.LGI==000400	;JOB IS LOGGING IN NOW
RL.QTS==000200	;QUOTES SEEN
RL.DIA==000100	;USER IS IN DIALOGUE MODE
RL.STP==000040	;JOB IS STOPPED BY THE OPERATOR
RL.NLG==000020	;NO LOG FILE AVAILABLE
RL.MIP==000010	;OPERATOR MESSAGE BEING PROCESSED
RL.FLS==000004	;REQUEST TO FLUSH JOB
RL.CKP==000002	;REQUEST TO CHECKPOINT THE JOB

;INITIAL SETTINGS FOR R

RL.INI==RL.ACT!RL.LGI	;FOR A NEW JOB SET ACTIVE, LOGIN IN PROGRESS
;AC F (LH)

FL.PER==400000	;MONITOR LEVEL LINE STARTED WITH A PERIOD
FL.NER==200000	;NOERROR IS IN EFFECT
FL.PLS==100000	;DOING A PLEASE COMMAND
FL.SUP==040000	;SUPPRESS THE NULL LINE (=MODE)
FL.LAB==020000	;FOUND A LABEL ON THIS LINE
FL.SIL==010000	;SILENCE THE LOG FILE
FL.UPA==004000	;DOING UPARROW PROCESSING
FL.ACC==002000	;NEED TO CHECK READ PRIVLEGES FOR THE CTL FILE
FL.TLE==001000	;TIME LIMIT WAS EXCEEDED
FL.%XT==000400	;%EXTRA TIME HAS BEEN GIVEN
FL.CRS==000200	;CARRIAGE RETURN SEEN
FL.ERR==000100	;SEND ERROR DATA WITH MESSAGE
FL.SPL==000040	;SPECIAL PROCESSING TO ADD MORE DATA TO MESSAGE
FL.NOP==000020	;NO OPERATOR INTERVENTION ALLOWED
FL.XCC==000010	;
;**;[21]Add 1 line at FL.XCC  JCR  10/15/85
FL.ZXC==000004	;[21]Once was a generated control character
FR.RSC==400000	;WANT COMMAND SCANNER TO RE-GET LAST CHARACTER
FR.%SG==200000	;A % SIGN IS A LEGAL SIXBIT CHARACTER
FR.BAK==100000	;BACKTO IN PROGRESS
FR.LSL==040000	;LIST LINES SKIPPED IN LABEL SEARCHES
FR.FIN==020000	;THIS LABEL SEARCH CAN PASS A %FIN::
FR.UHE==010000	;AN UNHANDLED ERROR OCCURRED
FR.NBL==004000	;IN GETRDX, A NON-BLANK HAS BEEN FOUND
FR.CTO==002000	;CONTROL FILE IS OPEN BIT
FR.SLF==001000	;FLAG FOR SUPPRESSING LF TO PTY
FR.STS==000400	;STATUS UPDATE FIELD FOR INTERRUPT FLAGS
FR.LFO==000200	;LOG FILE OPEN FLAG
FR.LFE==000100	;LOG FILE ERROR ON OPEN
FR.CHK==000040	;SEND CHECKPOINT DATA AND UPDATE
FR.SCC==000020	;SENT ^C TO STOP THE JOB
FR.JLI==000010	;SET TO INITIALIZE PTY WITH ^C..(-20 ONLY)
FR.TBL==000004	;MONITOR LEVEL PROBLEM FLAG
;**;[22]Add 1 line after FR.TBL==000004  JCR  6/11/86
FR.RER==000001	;[22]No restart for this job
;INITIAL SETTINGS FOR F

FL.INI==FL.ACC		;FOR A NEW JOB NEED A CHECK
FR.INI==0		;FIRST LOOK AT THE LOG FILE
;FLAGS RETURNED BY THE JOBSTS UUO

JL.UJA==400000	;USER JOB NUMBER ASSIGNED
JL.ULI==200000	;USER LOGGED IN
JL.UML==100000	;USER IS AT MONITOR LEVEL
JL.UOA==040000	;USER OUTPUT IS AVAILABLE
JL.UDI==020000	;USER CAN DO INPUT
JL.UJC==010000	;USER HAS JACCT

;CHARACTERS

CHR.CC==3	;CONTROL C
CHR.CG==7	;CONTROL G
CHR.HT==11	;HORIZONTAL TAB
CHR.LF==12	;LINE FEED
CHR.VT==13	;VERTICAL TAB
CHR.FF==14	;FORM FEED
CHR.CR==15	;CARRIAGE RETURN
CHR.CZ==32	;CONTROL Z
CHR.A1==33	;STANDARD ALTMODE
CHR.OA==74	;OPEN ANGLE BRACKET
CHR.CA==76	;CLOSE ANGLE BRACKET
CHR.QT==42	;QUOTE CHARACTER
CHR.CA==54	;COMMA CHARACTER

	;SYMBOLS FOR CHECKPOINT REQUEUE INFORMATION
BA.JOB==1B0		;SEEN THE JOB FLAG
BA.ORQ==1B1		;JOB REUEUED BY OPERATOR
BA.URQ==1B2		;USER REQUEUED THE JOB
BA.CHK==1B3		;CHECKPOINT JOB BY USER


	;SYMBOLS FOR MESSAGE PROCESSING

B.DEFR==400000		;FLAG TO PROCESS BY STREAM
B.STCN==200000		;STOP AND CONTINUE OPERATOR MESSAGE
;GETTAB TABLES

.GTSTS==0	;USER JOB STATUS
	ST.RUN==1B0	;JOB IS RUNNABLE NOW
	ST.CMW==1B1	;COMMAND IS WAITING FOR CORE
	ST.SWP==1B7	;JOB IS SWAPPED OR BEING SWAPPED
	ST.CLK==1B18	;JOB HAS A CLOCK REQUEST
	ST.JDC==1B20	;WAITING FOR DUMP
	ST.IRQ==1B22	;WAITING FOR OPERATOR INTERVENTION

.GTPRG==3	;USER PROGRAM NAME
.GTWSN==25	;TABLE OF SIXBIT NAMES FOR WAIT CODES

;OPCODE DEFINITIONS

OPDEF	TXTLOG	[001000,,0]	;BATCON UUO - TEXT TO THE LOG FILE
OPDEF	TXTJOB	[002000,,0]	;BATCON UUO - TEXT TO THE JOB
OPDEF	SIXLOG	[003000,,0]	;BATCON UUO - SIXBIT TEXT TO THE LOG FILE
OPDEF	IDENT	[004000,,0]	;BATCON UUO - OUTPUT LINE IDENTIFIER
	SUBTTL	Data Base for Each Batch Stream
	PHASE	0
	;QUEUE ENTRY SYMBOLS FROM NEXTJOB MESSAGE
.JQITN:! BLOCK	1			;INTERNAL NAME FROM QUASAR
.JQJBB:! BLOCK	JIBSIZ			;SIZE OF JOB INFO BLOCK
.JQLIM:! BLOCK	EQLMSZ			;LIMIT WORDS FOR JOB
.JQACT:! BLOCK	10			;ACCOUNTING STRING FOR JOB


	;SYSTEM DEPENDENT INFO
IFN	FTUUOS,<
.JQPPN:! BLOCK	1			;USERS PPN
.JQPAT:! BLOCK	6			;JOB PATH INFORMATION
>;END FTUUOS

IFN	FTJSYS,<
.JQNAM:! BLOCK	10			;USER NAME STRING
.JQCON:! BLOCK	12			;CONNECTED DIRECTORY STRING
.JQSIS:! BLOCK	1			;SPOOLED FILE INFO
>

.JQCFP:! BLOCK	2			;SAVE CTL FP WORDS (2 OF 5)
.JQCFD:! BLOCK	FDXSIZ			;CTL FILE FD
.JQLFP:! BLOCK	2			;SAVE CTL FP WORDS (2 OF 5)
.JQLFD:! BLOCK	FDXSIZ			;LOG FILE FD
.JQBYT:! BLOCK	1			;BYTE POINTER FOR FD CREATE
.JQTYP:! BLOCK	1			;BATCH STREAM TYPE
.JQSTR:! BLOCK	1			;BATCH STREAM NUMBER
.JQNOD:! BLOCK	1			;BATCH STREAM NODE LOCATION

	.JQOBJ==.JQTYP			;OBJECT BLOCK POINTER

;;; END OF AREA BUILT FROM THE "NEXT JOB" FUNCTION

;;; THE JOB DATA BASE IS CONTINUED ON THE NEXT PAGE
.JREGS:! BLOCK	15	;JOB PROCESSOR REGS 0-13,17
.JPLST:! BLOCK	.JPSIZ	;PUSH DOWN LIST FOR JOB PROCESSOR
IFN FTUUOS,<
.JPTYI:! BLOCK	PTYBLK*PTYBFR	;SPACE FOR PTY BUFFER RING
>  ;END IFN FTUUOS
.JPTYO:! BLOCK	PTYBLK*PTYBFR	;SPACE FOR PTY BUFFER RING
.JPINP:! BLOCK	3	;RING HEADER FOR INPUT
.JPOUT:! BLOCK	3	;RING HEADER FOR OUTPUT
.JPCHN:! BLOCK	1	;SAVED 'IO1' WITH PTY CHANNEL NUMBER (PERMANENT ASSIGNMENT)
.JLABL:! BLOCK	1	;LABEL BEING SEARCHED FOR
.JOPER:! BLOCK	2	;LENGTH AND ADDRESS OF WTOR RESPONSE
.JBAKP:! BLOCK	1	;LOCATION OF THE CURRENT BACKTO COMMAND
.JINFO:! BLOCK	EQCKSZ	;CHECKPOINT/REQUEUE INFORMATION
	.JCHRQ==.JINFO ;WORD 0 IS THE CHECKPOINT/REQUEUE LABEL
.JREQI:! BLOCK	1	;REQUEUE INFORMATION FLAG WORD
.JQLOC:! BLOCK	1	;LOCATION OF THE JOB
.JJOBN:! BLOCK	1	;JOB NUMBER SAVED FOR RELEASE MESSAGE
.JCJFN:! BLOCK	1	;CONTROL FILE JFN
.JLJFN:! BLOCK	1	;LOG FILE JFN
	;LOG PAGE DATA BASE
.JLFOB:! BLOCK	FOB.SZ	;FILE OPEN BLOCK FOR LOG
.JLPAG:! BLOCK	1	;LOG FILE PAGE FOR INITIAL DATA
.JLPCT:! BLOCK	1	;LOG FILE PAGE COUNTER WORD
.JLPTR:! BLOCK	1	;LOG FILE POINTER PAGE FOR INIT DATA

.JCFOB:! BLOCK	FOB.SZ	;FILE OPEN BLOCK FOR CTL FILE
.JCUSI:! BLOCK	1	;USETI/USETO COUNT (-1 IF END OF FILE)
.JLCNT:! BLOCK	1	;BYTE COUNT
.JLUSI:! BLOCK	1	;USETI/USETO COUNT
.JERCD:! BLOCK	1	;BYTE (9).ERROR CHAR, .OPERATOR CHAR  (18)ERROR CODE
.JSTAT:! BLOCK	1	;SAVE RESULT OF JOBSTS UUO, FOR BATOPR
.JRUNT:! BLOCK	1	;JOBS RUNTIME, USED BY BACKTO
.JOBCT:! BLOCK	1	;NUMBER OF THIS JOB FOR BATCON
.JSPTR:! BLOCK	1	;STATUS POINTER WORD
.JWCNT:! BLOCK	1	;WTO MESSAGE COUNTER
.JWPTR:! BLOCK	1	;WTO MESSAGE BYTE POINTER
.JWADR:! BLOCK	1	;ADDRESS OF WTO PAGE
.JWTOF:! BLOCK	1	;WTO FLAG..WTO IN PROGRESS
.JERRO:! BLOCK	1	;ERROR CODE FOR OUTPUT END MESSAGE
.JMESC:! BLOCK	1	;COUNT OF OPR MESSAGES PENDING
.JMLST:! BLOCK	1	;LINK LIST FOR OPERATOR MESSAGES
.JREOL:! BLOCK	1	;END OF LINE SENT FLAG
.JRTIM:! BLOCK	1	;TIME STAMP NEEDED FLAG
.JPSIE:! BLOCK	1	;PTY SETUP WORD FOR INTERRUPT SYSTEM
.JFLAG:! BLOCK	1	;STREAM FLAGS FOR PTY
.JINPI:! BLOCK  1	;COUNT OF INPUT READY INTERRUPTS
.JOUTI:! BLOCK  1	;COUNT OF OUTPUT READY INTERRUPTS
.JOBST:! BLOCK	1	;COUNT OF JOBSTS FOR JOB
.JWAIT:! BLOCK	1	;COUNT OF WAITS DURING LOGIN/LOGOUT
.JICNT:! BLOCK	1	;COUNT FOR CHARACTERS READ DURING LOGOUT
OUTCNT==10		;Count for output wait

IFN FTJSYS,<
.JPLSO:! BLOCK	1	;LINK LIST FOR PTY OUTPUT
.JPTTY:! BLOCK 	1	;PTYS TERMINAL NUMBER
.JJOBS:! BLOCK	.JIT20+1	;BLOCK FOR GETJI INFO
.JLOGI:! BLOCK	1	;COUNT OF LOGIN TRIES FOR ?FULL
>  ;END OF IFN FTJSYS

.JARG1:! BLOCK	1	;ARGUMENT ONE FOR ERROR PROCESSING
.JARG2:! BLOCK	1	;ARGUMENT TWO FOR ERROR PROCESSING
;**;[22]At .JARG2:!+0L add one line  JCR  6/11/86
.JCRER:! BLOCK	1	;[22]CTL file pass for %RERR:: processing
.JSIZE:!		;SIZE OF THE DATA BASE FOR EACH STREAM
	DEPHASE
	RELOC 0			;START AT 0 TO SAVE SPACE

.JPAGS==1+<<.JSIZE-1>/1000>	;NUMBER OF PAGES NEEDED FOR THE DATA BASE

	PHASE	0

	;FORMAT OF THE MESSAGE QUEUE FOR EACH STREAM

IPC.RT:! BLOCK	1	;ROUTINE TO PROCESS THE MESSAGE
IPC.TX:! BLOCK	1	;ASCIZ OF THE NAME OF MESSAGE
IPC.AR:! BLOCK	1	;ADDRESS OF NEXT ARGUMENT IN MESSAGE
IPC.CD:! BLOCK	1	;CODE FOR QUASAR STATUS
IPC.DA:!		;START OF IPCF MESSAGE IN QUEUE

	DEPHASE
	RELOC	0
;MACRO DEFINITIONS

DEFINE	LSTOFF<			;MACRO TO TURN OFF THE LISTING
	IFE	LSTING,<
		.XCREF
		XLIST>
	LSTING==LSTING+1	;COUNT XLIST DEPTH
	>

DEFINE	LSTON<			;MACRO TO TURN THE LISTING BACK ON
	LSTING==LSTING-1	;DECREMENT XLIST LEVEL
	IFE	LSTING,<	;DON'T TURN IT ON IF STILL NESTED
		.CREF
		LIST
		SALL>
	>
	SUBTTL	INTERRUPT DATA BASE FLAGS

	INT.IN==3		;INPUT INTERRUPT LEVEL
	INT.OU==1		;OUTPUT INTERRUPT LEVEL
	INT.AL==1		;ALL LEVELS



	ALCSIZ==^D25		;MINIMUM MEMORY ALLOCATION
	SUBTTL	MSGBLD - BUILD ERROR MESSAGE TABLE

	DEFINE	MSGBLD,<
	XLIST
	X	(E.NORM,NORMALLY)
	X	(E.RUSR,Requeued by User)
	X	(E.ROPR,Requeued by Operator)
	X	(E.TLMT,Time Limit Exceeded)
	X	(E.CUSR,<Canceled by User ^P/.JARG1(R)/>)
	X	(E.COPR,Aborted by Operator)
	X	(E.JLOG,Logged Out..COMMAND IGNORED)
	X	(E.UERR,Terminated by User Error)
	X	(E.LFOE,Terminated from Log File Open Error)
	X	(E.LFIO,<Terminated from Log File I/O Error>)
	X	(E.NSTR,<No Free Batch Streams .. Job Requeued>)
	X	(E.NPTY,<No Free PTY's on the SYSTEM .. Job Requeued>)
	X	(E.STRA,<Stream Already Started>)
	X	(E.NJOB,<No Job Slots Available .. Job Requeued>)
	X	(E.JLOF,<Terminated from LOGIN Failure>)
	X	(E.SHTD,<Shutdown>)
	X	(E.STAR,<Started>)
	X	(E.NOPA,<Canceled  No Operator Intervention Allowed>)

	LIST
	SALL
	>

	DEFINE	X(A,B),<
	XLIST
	A==$$			;ASSIGN VALUE TO SYMBOL
	$$==$$+1		;INCREMENT COUNTER
	LIST
	SALL
	>;END X

	$$==0			;SET TO 0
	MSGBLD			;ASSIGN THE VALUES
	MSGTSZ==$$		;COUNT OF MESSAGES
	END