Google
 

Trailing-Edge - PDP-10 Archives - BB-Z759A-SM - cobol-source/impure.mac
There are 23 other files named impure.mac in the archive. Click here to see a list.
; UPD ID= 1494 on 1/20/84 at 4:50 PM by HOFFMAN                         
TITLE	IMPURE FOR COBOL V13
SUBTTL	DEFINITION OF IMPURE AREA



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


	SEARCH	P
	%%P==:%%P
	MCS==:MCS
	DBMS==:DBMS
	DEBUG==:DEBUG
	ONESEG==:ONESEG
	TOPS20==:TOPS20

;EDITS
;NAME	DATE		COMMENTS

;V12B****************
;DMN	28-Apr-83	[1465] Fix edit 1354 to use DKEYSZ rather than KEYRLN.
;SMI	22-Nov-82	[1433] Declare RPWDPR for RPWGEN code generation.
;JEH	 7-Jun-82	[1362] Declare HLDSAV outside of MCS conditional.
;JEH	18-Mar-82	[1345] Trap illegal UUO's on TOPS-10.
;JEH	 2-Feb-82	[1335] Declare DATAB entries for all indices if REPORT SECTION
;				for their use in REPORT WRITER statements.
;JSM	 1-Oct-81	[1316] COPY REPLACING gives spurious fatal error with
;				comment followed by Paragraph name.
;WTK	 2-Sep-81	[1315] [1140] Catastrophe in phase E during SEARCH because BLT A/B is one word short.
;JSM	18-Sep-81	[1307] [1141] Have different literals for signed and unsigned COMP-3 literal 0.
;JSM	1-Oct-81	[1300] Define HLDBRO as temp for testing for REDEFINEd item in LINKAGE SECTION.

;V12B****************
;DAW	18-Nov-80	[1077] "?ILL MEM REF" in PHASE E
;DAW	 5-Nov-80	[1070] FIX MOVE CORRESPONDING WITH SUBSCRIPTED ITEMS
;DAW	31-OCT-80	[1067] ADD ESAVBI AREA FOR "IF NUMERIC = NON-NUMERIC"
;JSM	 2-SEP-80	[1051] GET MCS FLAG WORDS OUT OF OVLAY AREA
;DMN	26-JUN-80	[1031] ADD VARIABLES FOR DBMS VERSION 6.
;JEH	24-JUN-80	[1027] BUILD RECORD NAME TABLE IF NESTED READS
;DMN	29-MAY-80	[1023] ADD FLAG FOR MULTIPLE WORDS IN COPY REPLACING TEST.
;DMN	22-APR-80	[1013] FIX LOOP IF MISSING == ON COPY REPLACING.
;DMN	 1-APR-80	[1004] MAKE ASCII & EBCDIC COLLATING SEQUENCES WORK.
;DAW	31-JAN-80	[765] MORE SPACE FOR SUBSCRIPTS IN "STRSAV"
;DMN	30-JAN-80	[763] CHECK FOR DUPLICATE LINKAGE AND REPORT SECTIONS
;DMN	 1-FEB-80	[762] IMPLEMENT AND USE D. P. FLOATING POINT LITERALS

;V12A****************
;MFY	 3-Jul-79	[717] ADD ECNTA FOR "IF A NOT = SPACES" PROBLEM
;CLRH	 3-APR-79	[674] GENERATE ERROR FOR BAD VALUE CLAUSE OF 88 LEVEL ITEM
;JSM	28-MAR-79	[670] FIX NESTED IF . ELSE PROBLEM
;DMN	13-MAR-79	[662] FIX EDIT 557, DEFINE PICNXT COMMON TO PHASES B, C, AND D
;DMN	 9-MAR-79	[657] FIX PROBLEM WITH LOOKAHEAD IN COPY REPLACING INTEGER.
;DAW	 8-MAR-79	[656] FIX PROBLEMS WITH DBMS USE PROCEDURES
;DMN	 9-FEB-79	[633] GIVE BETTER WARNING ON LINE NUMBER WRAP-AROUND
;DMN	 1-DEC-78	[605] MAKE VARIABLE LENGTH READS WORK USEFULLY

;V12*****************
;DMN	 5-OCT-78	[566] SET FLAG WHEN TARGET OF DIVIDE IS COMP-1.
;DMN	19-SEP-78	[557] VARIOUS COPY REPLACING BUGS
;EHM	17-SEP-78	[553] GIVE ERROR IF RECORDS PER RERUN TOO LARGE

;V10*****************
;EHM	11-APR-77	[466] FIX COMPUTE FLOATING DIVIDE WITH ROUNDING
;	10-AUG-76	[435] ADD DCLTAG, ENDCLR
;	 4-APR-76	[415] REPORT WRITER CLEANUP IN CLEANC
;	01/29/76	[401] ADD DBONLY FOR DBMS USE PROCS BEING THE ONLY ONES
;JEC	19/01/76	[374] ADD LITERR ERROR IN CONVERSION OF LITERAL
;GPS	12/23/74	ADD TEMPS FOR SIMULTANEOUS UPDATE
;ACK	12-JAN-75	1.  ADD LOC FOR "/X" VALUE
;			2.  ADD 2 LOC'S FOR OBJECT TIME PDL SIZE.
;SSC	6-FEB-75	ALTER THE DBMS PART OF COBOLC'S LOW SEG FOR THE
;			CHANGES MADE TO DBDML MODULE.
;ACK	10-MAR-75	ADD LOC FOR CONVERSION INDEX FOR LITERALS.
;ACK	22-APR-75	ADD LOC'S FOR RUNTIME ADDRESSES OF EBCDIC
;			FIGURATIVE CONSTANTS.
;DBT	5/5/75		ADD PICSAV AND MSKTMP FOR PICTURE PROCESSING
;SSC	11/10/75	FINISHED DATA CHANGES FOR V.4+DBMS INTERFACE
;********************

; EDIT 360 ADD NEGCMP
; EDIT 342 ADD RWSV10
; EDIT 340 - NOT DONE STRING/UNSTRING WAS REWRITTEN FOR V10.
; EDIT 335 ADD RPWERR
; EDIT 324 ADD DECLR.
; EDIT 315 ADDED HLDSRC AND HLDNAM AND LASCOL	AND SAVDAT
; EDIT 306 ADD ESAVMD SAVE MODE OF FATHER.
; EDIT 305 ADD RWSAV9 INTRA GROUP REPORT LINE CNT
;EDIT 245 ADDED EINTR
;**EDIT 222 INCREASE THE SIZE OF VARBLK FROM ^D81 TO ^D135.
;**EDIT 167 ADD CURSIZ SIZE OF LITERAL

	SALL


IMPURE:	ENTRY IMPURE


	DEFINE DEFIN (A,B),<INTERNAL A
	A: BLOCK B>

	DEFINE SETVAL (A,B),<INTERNAL A
	A==B>
;ENTRY POINT FOR "KILL"

	DEFIN WEDIED,2;


;GET NEXT PHASE

;ENTER WITH PHASE NAME IN GETFNM+1, STARTING ADDRESS INCREMENT IN GETFST,
;	ADDRESS OF GETFNM IN TA.
;FOR A DESCRIPTION OF LOAD ROUTINE, SEE COBOLA.
;THE FOLLOWING ROUTINE IS COPIED FROM HI-SEGMENT BY COBOLA.
;IF COBOLA IS CHANGED THEN THESE DEFINITIONS MUST BE CHANGED ALSO

IFE ONESEG,<
	DEFIN CANTGO,7		;ERROR ROUTINE FOR "REENT" COMMAND

	DEFIN GETLOD,^D14		;THE LOAD ROUTINE ADDRESS
 IFN DEBUG,<
	BLOCK	1		;CLEAR .JBSYM
 >
 IFE DEBUG,<
	DEFIN DDTSTP,1		;(JRST COBEXO)
 >
 IFN DEBUG,<
	DDTSTP=:.		;PLACE FOR BREAKPOINT AFTER LOADING SEGMT
	JRST	COBEXO##
 >

	GETEND=:.-1
>;END IFE ONESEG

IFE TOPS20,<
	DEFIN GETFNM,6		;THE LOAD PARAMETERS
	DEFIN GETPTH,9		;ARG FOR LOAD PATH TO SFD
	DEFIN GETFST,1		;STARTING ADDRESS INCREMENT
>
;WORKING STORAGE


	DEFIN IMPAT.,^D20	;FOR PATCHING
IFN TOPS20,<
	DEFIN SPLIST,^D40	;EXTRA WORDS FOR NATIVE SCANNER
>
	DEFIN PPLIST,^D80;	;[%316] ADDED 20 WORDS -- PUSH-DOWN LIST
	SETVAL PPSIZE,PPLIST-.
IFN TOPS20,<
	SETVAL SPSIZE,SPLIST-.
>

	DEFIN	CCLSW,1		;CCL START OFFSET, EITHER 0 OR 1
	DEFIN PHASEN,1;		;CURRENT PHASE NUMBER
	DEFIN TOPLOC,1;		;LOCATION AFTER HIGHEST LOC IN IMPURE AREA
	DEFIN SAVJFF,1;		;FIRST LOCATION AFTER COMMAND BUFFER
	DEFIN VERZUN,4		;VERSION NUMBER (IN ASCII)

IFE TOPS20,<
	DEFIN COMBH,3;		;BUFFER HEADER IF COMMANDS FROM DISK OR TMPCOR
	DEFIN COMEXT,1		;EXTENSION FOR INDIRECT COMMAND FILE (IN RH)
	DEFIN RUNPPN,1		;PPN OF COBOL RUN COMMAND
	DEFIN RUNDEV,1		;DEVICE OF COBOL RUN COMMAND
	DEFIN SRCFIL,3		;SOURCE FILE INFO FOR LISTING

;USED TO INTERCEPT ILLEGAL UUO'S
	DEFIN UUOKIL,4		;[1345] ARG BLOCK FOR .JBINT
>
IFN DEBUG,<
	DEFIN %ATIME,2;
	DEFIN %RATIM,2;
	DEFIN %BTIME,2;
	DEFIN %RBTIM,2;
	DEFIN %CTIME,2;
	DEFIN %RCTIM,2;
	DEFIN %DTIME,2;
	DEFIN %RDTIM,2;
	DEFIN %ETIME,2;
	DEFIN %RETIM,2;
	DEFIN %OTIME,2;
	DEFIN %ROTIM,2;
	DEFIN %FTIME,2;
	DEFIN %RFTIM,2;
	DEFIN %GTIME,2;
	DEFIN %RGTIM,2;
	DEFIN %TTIME,1;
	DEFIN %RTIME,1;

	DEFIN %SRCLN,1		;TOTAL NUMBER OF SOURCE LINES IN CPY FILE

;FOR HANDAN
	DEFIN TXTBUF,<TXTLEN/5+1>
 IFE TOPS20,<
	DEFIN ATMBUF,<TXTLEN/5+1>
 >
	DEFIN DEBC0,^D16	;SAVED ACS FOR DEBUGGER
 IFN TOPS20,<
	DEFIN NOIBLK,2		;NOISE BLOCK
	DEFIN CMDBLK,^D10	;COMMAND JSYS BLOCK
 >;END IFN TOPS20
 IFE TOPS20,<
	DEFIN PRSBBP,1		;SAVED BP TO PARSE LINE
	DEFIN TXTBBP,1		; (AND ANOTHER)
	DEFIN HLPTXT,1		;ADDRESS OF ASCII HELP TEXT
	DEFIN PRSCHR,1		;SAVED PARSE CHARACTER
 >;END IFE TOPS20
>;END OF IFN DEBUG

	DEFIN RVBLT,3		;IMPLEMENT REVERSE BLT USING TE
;LOCATIONS USED BY "KILL"
	DEFIN KILLAC,20;		;SAVE AC'S FOR KILL
IFN TOPS20,<
	DEFIN KILLPL,40;	;PUSH-DOWN LIST
	DEFIN	KDATA,0		;HOLDS LPT PAGE OF DATA AT 6 WORDS PER LINE
>
IFE TOPS20,<
	DEFIN KILLPL,20;	;PUSH-DOWN LIST
	DEFIN KBHO,3;		;BUFFER HEADER FOR DUMP OUTPUT
	DEFIN KBHI,3;		;BUFFER HEADER FOR SCRATCH INPUT
	DEFIN KBUFI,0;		;START OF INPUT BUFFER
	SETVAL KDATA,KBUFI+406	;HOLDS A PAGE OF DATA
>
	SETVAL TYPFLG,KILLPL	;1ST PDL LOC IS TYPEOUT FLAG FOR COBOLK
;FIRST LOCATION TO BE CLEARED UPON INITIALIZATION
	SETVAL FSTCLR,.;

	DEFIN COBVER,1		;ADDR OF ARGUMENTS FOR SELOTS CALL
	DEFIN SUBPRG,1		;0=MAIN PROGRAM, -1=SUBPROGRAM
	DEFIN SLASHJ,1		;0=/J NOT USED, -1=/J ON
	DEFIN DEFDSP,1		;DEFAULT DISPLAY MODE
	DEFIN DEFSGN,1		;DEFAULT NUMERIC SIGN POSITION
	DEFIN OJPPSZ,2		;SIZE OF THE OBJECT TIME PDL.
	DEFIN RETPTR,1		;%PARAM ADDR OF RETURN PTR FOR PROGRAM
	DEFIN PRGENT,1		;PROGRAM-ID ENTRY POINT
	DEFIN PCHOLD,1		;STORE FOR EAS1PC WHILE DOING LINKAGE SECTION
	DEFIN SEQIN,1		;NON-ZERO IF INPUT HAS SEQUENCE NUMBERS
	DEFIN PAGCNT,1;		;COUNT OF LINES PER PAGE FOR LISTING
	DEFIN PROGID,1;		;PROGRAM-ID
	DEFIN PIDLNK,1		;LINK TO EXTAB ENTRY FOR PROGRAM-ID
	DEFIN PROGIF,1		;INITIAL PROGRAM FLAG
	DEFIN OBJSIZ,1;		;SIZE OF CORE, IN WORDS
	DEFIN SEGLIM,1;		;THE SEGMENT LIMIT
	DEFIN STDATE,2;		;STARTING DATE (DD-MMM-YY)
	DEFIN STTIME,1;		;STARTING TIME (HH:MM)

	DEFIN DCPNT.,1;		;CHARACTER FOR DECIMAL POINT
	DEFIN COMA.,1;		;CHARACTER FOR COMMA
	DEFIN DOLLR.,1;		;CHARACTER FOR CURRENCY SIGN
	DEFIN SAVEAC,20;	;SAVE AC'S

	DEFIN FILTBL,1		;STARTING LOCATION FOR OBJECT FILE TABLES
	DEFIN IMPPAR,1;		;STARTING LOCATION OF OBJECT PARAMS IN IMPURE AREA
	DEFIN RPWPRS,1		;PHASE D: # OF PARAMS USED FOR RPW
				;PHASE E: %PARAM OFFSET FOR RPW PARAMS
	DEFIN ALTBAS,1		;STARTING LOCATION FOR OBJECT ALTER TABLE
	DEFIN A50BAS,1		;STARTING LOCATION FOR ALTER TABLE FOR >49
	DEFIN DATBAS,1		;START OF DATA DIVISION
	DEFIN TEMBAS,1		;START OF TEMPORARIES
	DEFIN USEBAS,1		;BASE OF USE TABLE
	DEFIN RESDNT,1		;STARTING LOCATION FOR OBJECT RESIDENT CODING
	DEFIN NONRES,1;		;STARTING LOCATION FOR NON-RESIDENT OBJECT CODING
	DEFIN TAGCNT,1		;NEXT SPECIAL TAG NUMBER TO USE
	DEFIN PROGST,1		;TABLE-LINK TO FIRST EXECUTED PROCEDURE-NAME
	DEFIN	PROGLN,1	;LINE NUMBER OF PROCEDURE-NAME IN PROGST
	DEFIN DECLR.,1		; [324] IF NON-ZERO PROGRAM HAS DECLARITIVES


	DEFIN RPWERR,1		;[335] IF NON-ZERO FATAL ERROR IN REPORT GENERATION
	DEFIN BLDIX,1		;[1335] BUILD INDICES EARLY FOR REPORT WRITER USE
	DEFIN HDRPAG,1		;PAGE NUMBER FOR LISTING
	DEFIN ARGSTR,1

; ** NEW STRING/UNSTRING LOCS **
	DEFIN STFLGS,1		; FLAGS FOR RH OF FIRST WORD OF STRING ARGS
	DEFIN STSSO,1		;STRING SOURCE-SERIES OFFSET IN TEMTAB
	DEFIN STPTO,1		;IF POINTER ITEM, POINTS TO TEMTAB WHERE
				; POINTER ITEM IS STORED.
	DEFIN SDSTIN,1		;STRING DEST. INFO  (BSI.DEST)
	DEFIN NSTRSE,1		;# OF SOURCE-SERIES
	DEFIN STSEST,1		;START OF STRING-SERIES IN EOPTAB
	DEFIN STSELS,1		;LAST OPERAND SEEN IN STRING-SERIES
	DEFIN STSENS,1		;# SOURCES IN THIS STRING-SERIES
	DEFIN STSENX,1		;REL ADDR IN EOPTAB OF START OF NEXT
				; STRING-SERIES
	DEFIN STSETP,1		;POINTER TO TEMTAB ENTRY OF FIRST STRING-SERIES
	DEFIN CURSSE,1		;PTR INTO TEMTAB FOR CURRENT SS ENTRY
	DEFIN CURSRE,1		;PTR INTO TEMTAB FOR CURRENT SOURCE ENTRY

	DEFIN UNSNMF,1		;-1 IF UNSTRING SENDING ITEM IS NUMERIC, ELSE 0
	DEFIN USENII,1		;LH= MAX SIZE OF SENDING ITEM
				;RH = BSI OF SENDING ITEM
	DEFIN UNSFLG,1		;RH= UNSTRING FLAGS
	DEFIN UNSTLY,1		;LH = TAG OF ROUTINE TO STORE TALLY VALUE
				;RH = PTR IN TEMTAB OF TALLY OPERAND
	DEFIN UNSDLE,1		;PTR TO FIRST DELIM ENTRY IN TEMTAB
	DEFIN CURDE,1		;CURRENT DELIM ENTRY PTR IN TEMTAB
	DEFIN CURUS,1		;CURRENT UNSTRING-SERIES ENTRY PTR IN TEMTAB
;[765] STRSAV IS THE SAVED INFORMATION OF A PARSED ITEM, POSSIBLY
;[765] WITH SUBSCRIPTS.  THE FIRST TWO WORDS IS THE ITEM ITSELF,
;[765] AND STRSAV+2 CONTAINS THE NUMBER OF SUBSCRIPTS. STARTING AT
;[765] STRSAV+3 THERE IS ROOM FOR SUBSCRIPTS, FOUR WORDS FOR EACH (TWO
;[765] FOR THE ITEM AND TWO FOR AN ADDITIVE).
	DEFIN	STRSAV,3+<MAXSUB*4> ;[765] TEMP STORAGE FOR STRING SUBSCPT STUFF
; ** END OF NEW STRING/UNSTRING LOCS **
IFN MCS,<
	DEFIN	M.IARG,1	;ADDR OF ARG LIST FOR MCS INIT ROUTINE
	DEFIN	M.AFLG,1	;FLAG WORD FOR SEND GENERATOR
	DEFIN	CSSEEN,1	;NON-ZERO IF COMMUN. SECTION SEEN ;[1051]
	DEFIN	FINITL,1	;"INITIAL" SEEN FLAG 		  ;[1051]
>
; THE FOLLOWING ARE USED BY STRGEN AS WELL AS MCS  GENERATORS
	DEFIN	M.ARG1,1	;PTR TO ARG1
	DEFIN	M.ARG2,1
	DEFIN	M.ARG3,1
	DEFIN	M.ARG4,1
	DEFIN	M.ARG5,1
IFN DBMS,<DEFIN SCHSEC,1	;NON-ZERO IF SCHEMA SECTION SEEN
	DEFIN DBONLY,1		;[401] =0 IF ONLY USE PROC IS DBMS, =-1 OTHERWISE
	DEFIN INVSEE,1		;[%316] SEEN AN INVOKE
	DEFIN DBUSES,1>		;ADDR OF ARG LIST FOR DBMS INITDB ROUTINE

	DEFIN EAS1PC,1		;PROGRAM COUNTER FOR DATA AREA
	DEFIN EAS2PC,1		;PROGRAM COUNTER FOR RESIDENT SEGMENT
	DEFIN GENWRD,1		;NEXT RELATIVE WORD TO BE WRITTEN ONTO GENFIL
	DEFIN HILOC,1		;LIGHEST LOC IN RUN-TIME IMPURE AREA
	DEFIN HPLOC,1		;HIGHEST LOC IN RUN-TIME RESIDENT SEGMENT
	DEFIN SEGFLG,1		;NON-ZERO IF WE HAVE OVERLAY SEGMENTS
IFN DEBUG,<
	DEFIN CORESW,1		;FLAGS USED TO HELP IN NODE TRACING
	DEFIN TRCLN1,1		;LOWER BOUND OF TRACE
	DEFIN TRCLN2,1		;UPPER BOUND OF TRACE
>
	DEFIN CREFSW,1		;NON-ZERO IF '/C' IN COMMAND STRING
	DEFIN NOCPYL,1		;NON-ZERO IF '/G' IN COMMAND STRING
	DEFIN OPTSW,1		;NON-ZERO IF '/O' TYPED IN COMMAND STRING
	DEFIN PRODSW,1		;NON-ZERO IF '/P' TYPED IN COMMAND STRING
	DEFIN QUIKSW,1		;NON-ZERO IF '/Q' TYPED IN COMMAND STRING
	DEFIN AS7482,1		;/V -1 OR 0 IF 74 SYNTAX, +1 IF 82 SYNTAX
	DEFIN ABSEEN,1		;APPLY BASIC-LOCKING SEEN FLAG
	DEFIN PRGLVL,1		;LEVEL OF CONTAINED PROGRAMS 1 = OUTER PROGRAM
IFN TOPS20,<
	DEFIN ABRTSW,1		;ABORT ON FATAL ERROR IF NON-ZERO
	DEFIN RENSW,1		;-1 IF /R SEEN ON TOPS-20
				; GIVES 2-SEG CODE BUT NON-SHAREABLE OTS
>
	DEFIN COBXSW,1		;EXTRA FEATURE TESTS FOR OTS SET BY COBOL SYNTAX
	DEFIN INDELC,1		;# INSTRUCTIONS DELETED BY PHASE O
	DEFIN TAGDLC,1		;# TAGS DELETED BY O AND G
	DEFIN RELKEY,1		;-1 IF RELATIVE KEY  CONVERSION REQUIRED
	DEFIN COLSEQ,1		;PROGRAM COLLATING SEQUENCE ALPHABET-NAME PTR
				;[1004] LHS = -1, IF RHS = ASCII OR EBCDIC
	DEFIN COLSCP,1		;[1004] -1 IF SPECIAL ACTION REQUIRED IN SUBSCRIPTOR FOR COLL. SEQ.
	DEFIN COLNCP,1		;STORES LN,,CP FOR ALPHABET-NAME INCASE OF ERROR
	DEFIN RCLNCP,1		;LN,,CP OF "RECORD" CLAUSE IN SELECT AND FD
	DEFIN DEBSW,1		;-1 IF DEBUG CODE TO BE GENERATED
	DEFIN FLGSW,1		;-1 IF EXTENSIONS TO ANS-74 ARE TO BE FLAGGED
	DEFIN DEBALP,1		;-1 IF USE ON DEBUGGING ALL PROCEDURES WAS SEEN
	DEFIN DBPARM,1		;HOLDS %PARAM+N FOR DEBUGGING USE PROCEDURE

	DEFIN DWLNCP,1		;HOLDS LN,,CP OF SOME ITEM WHICH IS PRESERVED
				; OVER CALLS TO GETITM.  NOW USED JUST FOR
				;"START.." STATEMENT TO FLAG START USED AS
				; A PARAGRAPH NAME.

	SETVAL NTNSIZ,-^D19	;NUMBER OF ENTRIES IN SIZTAB (NEGATIVE)
	DEFIN SIZTAB,^D19	;TABLE OF QUANTUM SIZES FOR NM1TAB,NM2TAB
	DEFIN NRESSN,1		;-1 IF NON-RESIDENT SECTION SEEN (USED BY EXIT)
IFE TOPS20,<
	DEFIN MYPATH,2		;FIRST PART OF DEFAULT PATH
	DEFIN MYPPN,1		;LOGGED IN PPN
	DEFIN MYSFD,6		;REST OF DEFAULT PATH
>
	DEFIN WRAPNO,1		;[633] NUMBER OF TIMES LINE NUMBER WRAP-AROUND HAS OCCURED
	DEFIN EBASEA,1	;TABLE-LINK TO "A" OPERAND  (RH)
	SETVAL ERESA,EBASEA	;RESIDUE FOR "A" (LH)
	DEFIN EINCRA,1	;CURRENT INCREMENT FOR "A" OPERAND
	DEFIN ESIZEA,1	;SIZE OF "A"
	DEFIN EMODEA,1	;USAGE OF "A"
	DEFIN EDPLA,1	;DECIMAL PLACES IN "A" OPERAND
	DEFIN EBYTEA,1	;BYTE POINTER TO LITERAL VALUE
	DEFIN ETABLA,1	;TABLE LINK TO ITEM
	DEFIN EFLAGA,1	;VARIOUS FLAGS FOR "A"

	DEFIN EBASEB,1	;TABLE-LINK TO "B" OPERAND (RH)
	SETVAL ERESB,EBASEB	;RESIDUE FOR "B" (LH)
	DEFIN EINCRB,1	;INCREMENT FOR "B"
	DEFIN ESIZEB,1	;SIZE OF "B"
	DEFIN EMODEB,1	;USAGE OF "B"
	DEFIN EDPLB,1	;DECIMAL PLACES OF "B"
	DEFIN EBYTEB,1	;BYTE POINTER TO LITERAL VALUE
	DEFIN ETABLB,1	;TABLE LINK TO "B"
	DEFIN EFLAGB,1	;VARIOUS FLAGS FOR "B"

	SETVAL EBASEX,0;
	SETVAL ERESX,0;
	SETVAL EINCRX,1;
	SETVAL ESIZEX,2;
	SETVAL EMODEX,3;
	SETVAL EDPLX,4;
	SETVAL EBYTEX,5;
	SETVAL ETABLX,6;
	SETVAL EFLAGX,7;
	DEFINE TABSET (A,B,C,E,F,G,H), <
		IFIDN <NAM><A><
		SETVAL NAMPSZ,^D'B
		SETVAL NAMNSZ,-NAMPSZ>

		DEFIN A'LOC,1;
		DEFIN A'NXT,1;
		DEFIN CUR'A,1;
		>

	TABLES
	DEFIN ENDFT,1		;END OF FILE TABLES (SET TO ZERO BY COBOLA)
IFN XPNTST,<
	DEFIN TYPXPN,1;		;SET TO NON-ZERO WHEN DEBUGGING AND
				; WANT TO WATCH THE TABLES EXPAND
>

	DEFIN	FREESP,1;	;NUMBER OF FREE WORDS IN LH, FIRST FREE WORD IN RH


;NM1TAB, NM2TAB
	IFN DEBUG,<
	DEFIN NAMCT0,1		;USED AS A COUNTER IN TRYNAM
	DEFIN NAMCT1,1		;COUNT OF THE NUMBER OF CALLS TO TRYNAM
	DEFIN NAMCT2,1		;COUNT OF THE NUMBER OF ITERATIONS IN TRYNAM
	DEFIN NAMCT3,1		;COUNT OF THE NUMBER OF ENTRIES IN NAMTAB
	SETVAL DISTSZ,13		;SIZE OF NAMDIS
	DEFIN NAMDIS,DISTSZ	;A TABLE OF SEARCH DISTRIBUTIONS
	>

	SETVAL NM1SIZ,^D1499;
	SETVAL NAMBAS,2*NM1SIZ+NAMPSZ+2;
	DEFIN NM1LOC,1		;ADDRESS OF FIRST WORD OF NM1TAB
	DEFIN NM2LOC,1		;ADDRESS OF FIRST WORD OF NM2TAB
	DEFIN NM12SZ,1		;SIZE OF BOTH NM1TAB AND NM2TAB
	DEFIN NSZPTR,1		;POINTER TO SIZE TABLE FOR NAMTAB

	DEFIN NAMIOL,2		;I/O LIST TO READ/WRITE NAMTAB
	DEFIN	FTOOBG,1	;-1 IF LOW SEG GOT TOO BIG

	DEFIN	USP.I,1		; ADDRESS OF AT END USE PROCEDURE FOR INPUT
	DEFIN	USP.O,1		; ... FOR OUTPUT
	DEFIN	USP.IO,1	; ... FOR INPUT-OUTPUT
	DEFIN	USP.X,1		; ... FOR EXTEND
	DEFIN	PRGCOL,400	;PROGRAM COLLATING SEQUENCE
	PRGZRL==:.-1		;LAST LOCATION TO INITIALIZE
	DEFIN	ILCSIX,1	;COUNT OF ILLEGAL SIXBIT CHARS. SEEN SO FAR IN PRG COL SEQ
	DEFIN	EXCEBC,1	;COUNT OF EBCDIC ONLY CHARS. SEEN SO FAR IN PRG COL SEQ
	DEFIN	COHVLV,6	;HIGH-VALUE & LOW-VALUE IN PROG COL SEQ

	DEFIN	RMSFLS,1	;-1 IF RMS FILES ARE USED IN THE PROGRAM
	DEFIN	NFILES,1	;# OF FILES USED IN THE PROGRAM MODULE
;I/O DATA TABLE

	DEFINE IOLIST (A,C), <
	DEFIN A'DEV,1
	DEFIN A'HDR,2
	DEFIN A'BLK,1
	DEFIN A'BUF,1
	IFN TOPS20,<DEFIN A'JFN,1>
	IFE C-1 <DEFIN A'PP,1
		DEFIN A'SWS,1
		DEFIN A'BH,3>
	IFE C-2 <DEFIN A'BHI,3
	IFN TOPS20,<SETVAL A'BH,A'BHI>
		DEFIN A'BHO,3>
	IFE TOPS20,<IFE C-1,<DEFIN A'PTH,9>>
	>


	IOLIST SRC,1;
	IOLIST LST,1;
	IOLIST BIN,1;
	IOLIST LIB,1;
	IOLIST NAM,2;
	IOLIST ERA,2;
	IOLIST GEN,2;
	IOLIST CPY,2;
	IOLIST AS1,2;
	IOLIST AS2,2;
	IOLIST AS3,2;
	IOLIST LIT,2;
	IOLIST CRF,2;
IFN TOPS20,<
	IOLIST DMP,2;
 IFN DBMS,<
	IOLIST DBC,2
	IOLIST DBD,2
	SETVAL	DBBUFH,DBCBH
 >
>

IFN TOPS20,<
	SETVAL TFIJFN,CRFJFN
	SETVAL TFIBH,CRFBH
>


;ACCOUNT FOR DIFFERENT SIZE OF BLOCK BETWEEN TOPS-20 AND TOPS-10
IFN TOPS20,<ZZ==1>
IFE TOPS20,<ZZ==0>
;STORAGE FOR ADDITIONAL FILES

	SETVAL DEVSIZ,7+ZZ		;SIZE OF SRC, LST, BIN & LIB ENTRIES
	DEFIN IOSRCS,DEVSIZ*^D11	;ADDITIONAL ENTRIES
	DEFIN SRCEND,1		;ADDRESS OF FIRST EMPTY "IOSRCS" ENTRY

;VALUES USED TO ADDRESS WORDS OF AN ENTRY

	SETVAL DEVDEV,0		;DEVICE NAME
	SETVAL DEVFIL,1		;FILE NAME
	SETVAL DEVEXT,2		;EXTENSION
	SETVAL DEVTIM,3		;CREATION TIME OF FILE
	SETVAL DEVBLK,3		;SEGMENT COUNT DURING READ/WRITE
	SETVAL DEVBUF,4		;STARTING LOCATION FOR BUFFERS
IFN TOPS20<
	SETVAL DEVJFN,5		;JFN OF DEVICE
>
	SETVAL DEVPP,5+ZZ	;PROJECT-PROGRAMMER NUMBER
	SETVAL DEVSW,6+ZZ	;SWITCHES SEEN WHEN SCANNING COMMAND
	SETVAL DEVBH,7+ZZ	;3-WORD BUFFER CONTROL FOR ONE-WAY DEVICE
	SETVAL DEVBHI,5+ZZ	;3-WORD BUFFER CONTROL FOR INPUT SIDE
	SETVAL DEVBHO,10+ZZ	;3-WORD CONTROL FOR OUTPUT SIDE
IFE TOPS20,<
	SETVAL DEVPTH,12	;START OF PATH BLOCK
	SETVAL DEVDIR,14	;PPN
	SETVAL DEVSFD,15	;START OF SFD LIST

>

	SETVAL LIBTOP,LIBDEV+DEVSIZ-1	;LAST LOC IN LIB AREA
	SETVAL SRCTOP,SRCDEV+DEVSIZ-1	;LAST LOC IN SRC AREA

	DEFIN	EVSSCT,1	;Cnt of Sel. Sub. for Evaluate, used in D and E
	DEFIN	EVSOCT,1	;Cnt of Sel. Ob. for Evaluate, used in D and E

;;End of permanent data areas;;

OVLAY==.

;AREA USED BY PHASES B, C & D WHICH MAY BE OVERLAYED BY PHASE E

		RELOC OVLAY

;Note, do not split the following xxxxLN and xxxxCP word pairs.
;They are used by DMOVE/DMOVEM instructions.

	DEFIN SAVELN,1	;"LN" SAVED IN "GETCH"
	DEFIN SAVECP,1	;"CP" SAVED IN "GETCH"

	DEFIN SAVLN1,1	;"LN" SAVED IN "GETWRD"
	DEFIN SAVCP1,1	;"CP" SAVED IN "GETWRD"

	DEFIN WORDLN,1	;"LN" FOR FIRST CHAR OF DATUM
	DEFIN WORDCP,1	;"CP" FOR FIRST CHARACTER OF DATUM

	DEFIN SAVPLN,1	;[553] 'LN' FOR INTEGER ON SAVPTR STACK
	DEFIN SAVPCP,1	;[553] AND 'CP'

	DEFIN BLNKLN,1	;LINE NUMBER OF A SERIES OF BLANKS
	DEFIN BLNKCP,1	;CHARACTER POSITION OF FIRST OF A SERIES OF BLANKS

	DEFIN SAVBLN,1	;SAVE FOR BLNKLN
	DEFIN SAVBCP,1	;SAVE FOR BLNKCP

	DEFIN SAVECH,1	;TERMINATING PUNCTUATION OF A WORD
	DEFIN SAVSEQ,2	;SAVE SEQUENCE NUMBER
	DEFIN SRCCOL,1	;INPUT COLUMN (SAME AS INPTCP UNLESS TABS)
	DEFIN NAMWRD,5	;INPUT FOR "TRYNAM"
	DEFIN SAVNAM,5	;SAVE 'NAMWRD' DURING NAMTAB EXPANSION
	DEFIN HLDSRC,3	; [315] HOLD W1,W2 AND CT FOR LATER REGET
	DEFIN	HLDNAM,5	; [315] HOLD NAMWRD FOR LATER REGET
	DEFIN	SAVDAT,1	; [315] SAVES CURRENT DATAB ADDRESS OF ITEM FOR RPWDAT
	DEFIN LITVAL,MAXWLT	;HOLDS A LITERAL OUT OF "GETWRD"
	DEFIN SAVLIT,MAXWLT	;SAVE LITVAL FOR IN-LINE PERFORM
	DEFIN INPTCP,1	;INPUT CHARACTER POSITION FOR SEQUENCED SOURCE
	DEFIN INPTST,1	;FIRST INPUT CHAR POSITION FOR ITEM
	DEFIN LASTDV,1	;LAST DEVICE SEEN ON A COMMAND STRING
	DEFIN NXTNAM,1	;PLACE FOR NEXT NAMTAB ENTRY
	DEFIN SAVEWD,3	;TO SAVE "W1" & "W2"
	DEFIN ITEMCT,1	;TO SAVE "CT"
	DEFIN NOCONT,1	;IF NON-ZERO, CONTINUATION CARDS ARE ILLEGAL
	DEFIN AMARFL,1	;[1316] Flag for LF seen after * comment in COPY REPLACING
	DEFIN LIBNAM,2	;A LIBRARY NAME
	DEFIN CPYCP,1	;CHARACTER POSITION OF WORD FOLLOWING COPY STATEMENT
	DEFIN CPYW2,1	;SAVE "W2" DURING COPY
	DEFIN PRVTOK,1	; [670] TO HOLD PREVIOUS TOKEN
IFN DEBUG,<DEFIN TRACFL,1>	;SYNTAX SCAN TRACE FLAG

	DEFIN EOLKAR,1	;END-OF-LINE CHARACTER FOR LAST LINE
	DEFIN REGKAR,1	;A CHARACTER FROM SRCFIL, SAVED UPON ENTERING SETLIB
	DEFIN SAVAS1,1
	DEFIN FSTIDX,1
	DEFIN TERMQ,1	;CHARACTER DELIMITING ALPHA LITERAL
	DEFIN LSTW77,1	;IF THE LAST LEVEL NUMBER SEEN WAS 77, 0 OTHERWISE -1.

	DEFIN SAVETA,1
	DEFIN CTR,1
	DEFIN CTRREM,1	;TO HOLD REM OF DIVIDING ASCII VAL OF ID BY 5
	DEFIN PNTR,1
;One of the uses of TBLOCK is to hold subscripts
;Thus it must be large enough to hold the count plus 4 words per subscript.
IFL MAXSUB-6,<
	DEFIN TBLOCK,25
>
IFGE MAXSUB-6,<
	DEFIN TBLOCK,MAXSUB*4+1
>
	DEFIN NODLST,100
	SETVAL NDLNTH,.-NODLST
	SETVAL	NNDLNT,-NDLNTH
	DEFIN NEWENT,1
	DEFIN NEWTYP,1
	DEFIN SLNK,1
	DEFIN SAVE1,1
	DEFIN CFLM,1
	DEFIN NAMADR,1
	DEFIN VALADR,1
	DEFIN ESIZE,1
	DEFIN LSIZE,1
	DEFIN MNETYP,1
	DEFIN LSTFIL,1
	DEFIN NDEV,1

;DO NOT CHANGE ORDER OF OPRTR, ARG1, ARG2, ARG3
	DEFIN OPRTR,2
	DEFIN ARG1,2
	DEFIN ARG2,2
	DEFIN ARG3,2

;NSBSC1 must follow ARG3 or else you must change COBOLD at PA1.
;Do not change order of NSBSC* and SBSCR*
;All subscript things save 4 words per subscript.
	DEFIN NSBSC1,1
	DEFIN SBSCR1,MAXSUB*4
	DEFIN NSBSC2,1
	DEFIN SBSCR2,MAXSUB*4
	DEFIN NSBSC3,1
	DEFIN SBSCR3,MAXSUB*4

	DEFIN LSTPRI,1
	DEFIN PRIOR,1
	DEFIN CURPAR,1
	DEFIN GOTQUA,1
	DEFIN NQUAL,1
	DEFIN QUALT,^D102
	DEFIN CURQUA,1
	DEFIN FILSEC,1		;FILE SECTION HAS BEEN SEEN
	DEFIN SAVLST,100
	SETVAL SVLNTH,.-SAVLST
	SETVAL NSVLNT,-SVLNTH

;NOTE ... ARGL2 MUST IMMEDIATELY FOLLOW ARGLST
	DEFIN ARGLST,IF.DEP
	SETVAL ARGLSZ,ARGLST-.
	DEFIN ARGL2,IF.DEP
	SETVAL ARG2SZ,ARGL2-.

	DEFIN SAMSRT,1	;FLAG TO INDICATE 'SAME SORT' CLAUSE IN EFFECT

	DEFIN WASERC,1	;NON-ZERO IF PREVIOUS SOURCE WORD WAS 'SEARCH'
	DEFIN	RSSEEN,1	;NON-ZERO IF REPORT SECTION SEEN
	DEFIN	COMSEC,1	;COMMUNICATION SECTION ACTIVE FLAG
	DEFIN DBNODE,1	;SAVE NODE PTR HERE
	DEFIN FINVD,1	;NON-ZERO IF PHASE D IS TO PERFORM DBMS STUFF
	DEFIN FINVOK,1	;NON-ZERO IF WE ARE IN AN INVOKE STATEMENT
IFN DBMS,<

	;;;	STUFF THAT REMAINS FROM BEFORE V. 2A
	DEFIN	DBCNTC,1		;COUNT OF INVOKES IN PHASE C
	DEFIN	DBCNTD,1		;COUNT IF INVOKES PROCESSED IN D

 IFE TOPS20,<
	DEFIN	SBUFF1,204		;SCHEMA FILE BUFFER
	DEFIN	DBUFF1,204		;DBMS BUFFER RING
 >

;Do not change order of next two item, they are referenced by DMOVE/DMOVEM
	DEFIN INVLN,1	;STORAGE FOR "INVOKE" LINE.
	DEFIN INVCP,1	;SAME FOR CHAR POS

	DEFIN SCHASC,1		;[%316]TO MAKE DMLVOK SIMPLER  PROCESS IN ASCII
				;[%316]EXTRA SPACE IS TO CONVERT "IN PLACE"
	DEFIN SCHEMA,1	;SAVE AREA FOR SCHEMA NAME
	DEFIN SSASC,1	;[%316]
	DEFIN S.SCH,5	;[%316] CAN BE 30 CHARS ...AND SUB-SCHEMA
	DEFIN PKASC,1	;[%316]
	DEFIN PKEY,1	;AND PRIVACY KEY.
IFE TOPS20,<
	DEFIN DBBUFH,3	;INPUT BUFFER HEADER
	DEFIN DBDEV,1	;DEVICE NAME [DSK]
	DEFIN DBBLCK,4	;LOOKUP BLOCK
	DEFIN DBOPBK,3	;OPEN BLOCK
>

	;[%316] THE NEW DECLARATIONS FOLLOW

	;;;	STUFF REFFED AS EXTERN'S FROM BOTH HOSTS
	DEFIN ACCSEE,1		;[%316] SEEN AN ACCESS
	DEFIN(SYM.TB,^D31)
	DEFIN(SYMTAB,1)

	;;;	FOR DMLIO

	DEFIN(OBJAREA,^D14)		;STORAGE FOR .FOR LINES
	DEFIN(VOKAREA,^D14)
	DEFIN(TEMPBP,2)			;USED IN WRITE
	DEFIN(BUF.CP,2)			;ARG TO CHKSTR IN WRITE
	DEFIN(LINCHK,2)			;DITTO FOR OBJOUT
	DEFIN(NLEFT,1)			;FOR CHKSTR, IN OBJOUT
	DEFIN(NN,1)
	DEFIN(BUF.CN,1)			;DITTO FOR WRITE
	DEFIN(B.OR.L,1)			;BUF OR LINE

	;;;	DMLVOK IS CHANGED BY USE OF SCHIO
	;;;	AND BY FUNCTIONAL EXPANSIONS OF V.4--AND CLEANUP

	DEFIN(SIZAREA,2)
	DEFIN(TMPNAM,2)			;FOR DUPLIC SYMBOLS
	DEFIN(UNWIND,1)			;FOR HANDLING FATAL ERRORS
	DEFIN(FILENM,1)
	DEFIN(DASH,1)
	DEFIN(UNDIDX,1)
	DEFIN(PSUNYM,1)
	DEFIN(NULLREC,1)
	DEFIN(TXTIDX,1)
	DEFIN(LEVNO,2)			;STRING PTR, WILL CONTAIN 01 OR 02
	DEFIN(PICBP,2)			;DITTO FOR PICTURE
	DEFIN(CURN2,2)			;REALLY CURNAM, BUT COBOL ALREADY USES
					;PTS AT CURR REC,AREA,DAT,ETC. NAME
  IFN DBMS6,<
	DEFIN(CURREC,2)			;[1031] RECORD NAME FOR QUALIFIED REFERENCES
	DEFIN(VOKFLG,1)			;[1031] FLAG FOR NBUF DATANAME
  >
	DEFIN(A.TMP1,1)			;FOR CALLING STRLIB
	DEFIN(A.TMP2,1)			;DITTO

	;;;	FOR DMLERR
	DEFIN(ARG.T1,1)
	DEFIN(ERRAREA,16)

	;[%316] THESE DECLARATIONS MUST BE CONSECUTIVE AND AS ORDERED
	;[%316] NON-ZERO VALUES ARE BLTED FROM HISEG

BL.NZ::					;BEGIN BLT
	DEFIN(RELCHAN,4)		;RESPEC BINDS AND SUCH; DECLARATIONS
	DEFIN(RELHDR,4)
	DEFIN(VOKCHAN,4)
	DEFIN(VOKHDR,4)
	DEFIN(RELOPN,3)
	DEFIN(VOKOPN,3)
	DEFIN(RELENT,5)
	DEFIN(VOKENT,5)

	DEFIN(OBJPTR,2)
	DEFIN(VOKPTR,2)
	DEFIN(FILLER,1)			;ARG CNT WORD
	DEFIN(ARGWRI,5)
	DEFIN(WRIFILL,^D8)

	DEFIN(SCH.PT,2)
	DEFIN(SS.PT,2)
	DEFIN(KEY.PT,2)
	DEFIN(SIZONL,2)
	DEFIN(ERRPTR,2)
EL.NZ==:.-1
>;END IFN DBMS
IFN MCS,<
	DEFIN	DATSAV,1		;SAVE AREA FOR LEVEL 1 DATAB PTR
	DEFIN	CDBLK,^D11
	DEFIN	CDINDX,1		;INDEX INTO CD BLK
	DEFIN	FILLNM,1		;ADDRESS OF FILLER IN NAMTAB
>
	DEFIN	HLDSAV,1		;[1362] NOT CONDITIONAL ON MSC
	DEFIN	MCSCTR,1		;NUMBER OF ARGS FOR SEND
	DEFIN	$LFPTR,1		;DBP TO EOL CHAR IN PUTCPY
	DEFIN	NOIDHY,1		;-1 IF NO HYPHEN CONT. IN ID DIV.
	DEFIN	$LFCNT,1		;CPYBHO+2 WHEN EOL STORED
	DEFIN	DCCFLG,1		;-1 IF IN DATE-COMPILED COMMENT FIELD.
					;<0,,-1> IF LINE SHOULD BE IGNORED

;THESE ARE FOR COBOL-74 COPY SYNTAX
	DEFIN	LIBDV,1			;ACTUAL DEVICE SPECIFIED FOR COPY
	SETVAL	PSTLEN,^D1000		;MAX. NUMBER OF CHAR. IN PSEUDO-TEXT
	DEFIN	RPLFLG,1		;FLAGS STORED BEFORE COPY REPLACING
	DEFIN	CPYFLG,1		;STORE STATUS OF FSEQ DURING COPY
	DEFIN	NCPYSW,1		;-1 IF FNOCPY WAS SET EXTERNALLY
	DEFIN	RPLCP,1			;STORE CP SO WE CAN BACKUP
	DEFIN	RPLICP,1		;DITTO FOR INPUT COUNT
	DEFIN	RPLCST,1		;INPTST STORED ON FIRST REPLACEMENT
	DEFIN	RPLBLK,1		;CURRENT LIBRARY BLOCK NUMBER
	DEFIN	RPLLOC,1		;POINTER TO START OF REPLACEMENT LIST
	DEFIN	RPLNXT,1		;POINTER TO NEXT REPLACEMENT ITEM
	DEFIN	RPLNXW,1		;POINTER TO NEXT REPLACEMENT WORD
	DEFIN	RPLCNT,1		;COUNT OF REPLACEMENTS
	DEFIN	RPLBH,3			;STORE BUFFER HEADER INFO
	DEFIN	PADCNT,1		;NO. OF SPACES TO OUTPUT
	DEFIN	PARCNT,1		;NO. OF PARENS SEEN DURING REPLACEMENT TEST
	DEFIN	TERSCN,1		;[657] IF NON-ZERO TERMINATE CHAR. SCAN IF SAME CHARACTER
	DEFIN	PICNXT,1		;[662] [557] -1 WHEN NEXT DATUM IS, OR COULD BE, A PICTURE STRING
	DEFIN	CPYRMW,1		;[1023] -1 IF COPY REPLACING READ MULTIPLE WORDS
	DEFIN	SRCBFC,1		;SOURCE BUFFER COUNT

	DEFIN	L1BH0,1			;BLOCK NO. OF LIBRARY BEFORE
	DEFIN	L1BH1,1			;BYTE PTR
	DEFIN	L1BH2,1			;CHAR. COUNT
	DEFIN	L1CPO,1			;OUTPUT CHAR POS.
	DEFIN	L1CPI,1			;INPUT CHAR POS.

	DEFIN	L2BH0,1			;BLOCK NO. OF LIBRARY IFTER
	DEFIN	L2BH1,1			;BYTE PTR
	DEFIN	L2BH2,1			;CHAR. COUNT
	DEFIN	L2CPO,1			;OUTPUT CHAR POS.
	DEFIN	L2CPI,1			;INPUT CHAR POS.

	DEFIN	R1LNO,1			;[1013] OUTPUT LINE NUMBER
	DEFIN	R1CPO,1			;OUTPUT CHAR POS.
	DEFIN	R1CPI,1			;INPUT CHAR POS.

	DEFIN	R2BH0,1			;SRC BUFFER COUNT
	DEFIN	R2BH1,1			;SRC BYTE PTR
	DEFIN	R2BH2,1			;SRC BYTE COUNT
	DEFIN	R2CPO,1			;OUTPUT CHAR POS.
	DEFIN	R2CPI,1			;INPUT CHAR POS.

;SAVE FIRST SPACE AT GETKAR
	DEFIN	R3BH0,1			;SRC BUFFER COUNT
	DEFIN	R3BH1,1			;SRC BYTE PTR
	DEFIN	R3BH2,1			;SRC BYTE COUNT
	DEFIN	R3CPO,1			;OUTPUT CHAR POS.
	DEFIN	R3CPI,1			;INPUT CHAR POS.

;SAVE PERIOD BEFORE CALL TO GETKAR
	DEFIN	R4BH0,1			;SRC BUFFER COUNT
	DEFIN	R4BH1,1			;SRC BYTE PTR
	DEFIN	R4BH2,1			;SRC BYTE COUNT
	DEFIN	R4CPO,1			;OUTPUT CHAR POS.
	DEFIN	R4CPI,1			;INPUT CHAR POS.

	DEFIN	PSTBUF,PSTLEN/5		;PSEUDO-TEXT

	DEFIN MAXDBC,1	;MAXIMUM SIZE OF DEBUG-CONTENTS REQUIRED IF DEBUGGING MODE IS ON
	DEFIN	FLRADD,1	;DATAB ADDRESS OF "FILLER". USED BY PHASE D AND E

	HIGHB==.
;AREA USED BY PHASE B WHICH MAY BE OVERLAYED BY PHASE C

	DEFIN	SEENRU		;FLAG TO INDICATE WE HAVE SEEN /R OR /U
				;/R = -1, /U = +1
	DEFIN	CURLNC,1	;LN AND CP OF CURRENT CLAUSE FOR FIPS FLAGGER
	DEFIN	CURORG,1	;HOLD FILE ORGANIZATION FOR VARIOUS FIPS FLAGGING ACTIONS
	DEFIN	RSLNCP,1	;LN AND CP OF [RESERVE N AREAS] FOR FIPS FLAGGER
	DEFIN	SAMLNC,1	;LN AND CP OF "SAME AREA" FOR FIPS FLAGGER
	DEFIN	SRALNC,1	;LN AND CP OF "SAME RECORD AREA" FOR FIPS FLAGGER
	DEFIN	ASLNCP,1	;LN AND CP OF ASSIGN CLAUSE FOR FIPS FLAGGER
	DEFIN	SYLNCP,1	;LN AND CP OF SYMBOLIC CHARACTER IN CASE OF ERROR
	DEFIN	SYCHVF,1	;ADDRESS OF MNETAB ENTRY FOR VERY FIRST SYMBOLIC CHAR
	DEFIN	SYCHAD,1	;ADDRESS OF MNETAB ENTRY FOR FIRST SYMBOLIC CHAR IN CURRENT LIST
	DEFIN	SYCHNO,1	;COUNT OF SYMBOLIC CHARACTERS SEEN OR LEFT TO PROCESS
	DEFIN	SYCHTC,1	;TOTAL COUNT OF SYMBOLIC CHARACTERS SEEN
	DEFIN	SPNMCP,1	;LN AND CP OF TERMINAL PERIOD IN SPECIAL NAMES CLAUSES
;AREA USED BY PHASE C WHICH MAY BE OVERLAYED BY PHASE D

	RELOC HIGHB

	DEFIN RPTSRT,0	; [415] START OF REPORT WRITER CLEANC ITEMS
	DEFIN RPTRPT,1	; [415] CURRENT RD FOR SUM COUNTERS
	DEFIN RPTNEW,1	; [415] NEW RD FOUND TO PROCESS SUM COUNTERS
	DEFIN RPTCID,1	; [415] CID POINTER IN RD IN PROCESSES
	DEFIN RPTNID,1	; [415] NUMBER OF CID IN THIS  RD
	DEFIN RPTRHT,1	; [415] REL,REAL TEMTAB LOC FOR CURREMT RD HEADER
	DEFIN RPTNHT,1	; [415] REL,REAL TEMTAB LOC FOR NEW RD HEADER
	DEFIN RPTCIT,1	; [415] TEMTAB LINK FOR 1ST ID IN RD,,0
	DEFIN RPTFIN,0	; [415] LAST LOCATION OF REPORT WRITER DATA
	DEFIN RPWTYP,1	; USED TO GENERATE ERROR IN CLEANC
	DEFIN RPWLN,1	; LINE NUMBER LINE IS NEXT PAGE USED TO GEN ERROR

;ALL LN AND CP WORDS MUST BE IN ORDERED PAIRS FOR DMOVE/DMOVEM
	DEFIN RPWCP,1	; CHARACTER POINTER OF LINE IS NEXT PAGE
	DEFIN RPWLN1,1	; LINE NUMBER OF NEXT GROUP STATEMENT TO GENERATE ERROR
	DEFIN RPWCP1,1	; CHARACTER POSITION OF NEXT GROUP STATEMENT
	DEFIN RPWLN2,1	; LINE NUMBER OF NEXT WHEN WE DON'T KNOW IF ITS PAGE OR GROUP
	DEFIN RPWCP2,1	; DITTO FOR CP

	DEFIN RPWPFL,1	; NON ZERO WHEN FIRST LINE CLAUSE IS NOT RELATIVE LINE
	DEFIN DPSIZE,1	;NUMBER OF DECIMAL PLACES IN A DATA ITEM
	DEFIN EXSIZE,1	;EXTERNAL SIZE OF DATA ITEM
	DEFIN INSIZE,1	;INTERNAL SIZE OF DATA ITEM
	DEFIN MSKSIZ,1	;NUMBER OF WORDS NEEDED TO CONTAIN MASK
	DEFIN MSKWRD,4	;CONTAINS MASK
	DEFIN PICSAV,1	;SAVE LOOKAHEAD PICTURE CHARACTER
	DEFIN PNTS,1;
	DEFIN PNTS2,1;
	DEFIN LEVEL,1;
	DEFIN NPADL,1;
	DEFIN NPADR,1;
	DEFIN ITMLOC,1;
	DEFIN ITMRES,1;
	DEFIN NCHITM,1;
	DEFIN NCHLIT,1;
	DEFIN NCHLI2,1;
	DEFIN PADCHR,1;
	DEFIN SVDWRD,1;
	DEFIN SVDADR,1;
	DEFIN NCHWRD,1;
	DEFIN BYTEPT,1;
	DEFIN BYTEP2,1;
	DEFIN SIGNED,1;
	DEFIN NLEADZ,1;
	DEFIN NTRALZ,1;
	DEFIN NINTGD,1;
	DEFIN NFRACD,1;
	DEFIN VALUE1,1;
	DEFIN VALUE2,3;		;MUST BE AT VALUE1+1
	DEFIN CONVR2,1;	;CONVERSION INDEX FOR DISPLAY LITERALS.
			; 0 ASCII TO COMP-3
			; 1 ASCII TO SIXBIT
			; 2 ASCII TO ASCII (ACTUALLY NO CONVERSION)
			; 3 ASCII TO EBCDIC
	DEFIN SEPSGN,1;		;=1 IF SIGN IS SEPARATE CHARACTER
	DEFIN LDNSGN,1;		;=1 IF SIGN IS LEADING
	DEFIN RENAM1,1;
	DEFIN RENAM2,1;
	DEFIN RNREC1,1;
	DEFIN RNREC2,1;
	DEFIN RDFLVL,1	;LEVEL COUNTER FOR 'RDEFPC' STACK
	DEFIN RDEFPC,^D12	;LAST SEEN PC FOR REDEFINES NESTING
	SETVAL RDFSIZ,^D12	;SIZE OF RDEFPC TABLE
	DEFIN DATLVL,1	;INDEX INTO 'LSTDAT' AND 'RDFDAT'
	DEFIN RDFDAT,^D50	;LAST REDEFINING ITEM AT A GIVEN LEVEL
	DEFIN LSTDAT,^D50	;LAST ITEM AT A GIVEN LEVEL WITHOUT REDEFINES CLAUSE
	DEFIN IDXLST,1;
	DEFIN WSAS1P,1;
	DEFIN RUSAGE,1	;USAGE OF CURRENT RECORD
	DEFIN REPSEC,1	;NON-ZERO IF WE ARE IN REPORT SECTION
	DEFIN LNKSEC,1	;NON-ZERO IF WE ARE IN LINKAGE SECTION
	DEFIN LNKSSN,1	;[763] NON-ZERO IF LINKAGE SECTION SEEN
	DEFIN REPSSN,1	;[763] NON-ZERO IF REPORT SECTION SEEN
	DEFIN SIXHLD,1	;6-DIGIT SIXBIT NUMBER
	DEFIN SAVCOL,1	;LAST 'COLUMN' SEEN
	DEFIN RPWRDL,1	;SAVE FOR CURRPW TO RD
	DEFIN RWLCS.,1	;A LINE CLAUSE WAS SEEN FOR THIS REPORT GROUP.
	DEFIN RWCCS.,1	;A COLUMN CLAUSE WAS SEEN FOR THIS REPORT GROUP.
	DEFIN LASTYP,1	;LAST 'TYPE' CODE SEEN IN RPW ITEM
	DEFIN LASCOL,1	; [315] LAST HIGHEST COLUMN IN REPORT LINE
	DEFIN THSCTL,1	;CONTROL ENTRY FOR CURRENT RPW GROUP
	DEFIN LAST01,1	;DATAB LINK TO LAST LEVEL-01 ITEM
	DEFIN LASTRD,1	;LAST RD ENTRY IN RPWTAB
	DEFIN FLOTBZ,1	;-1 IMPLIES ALL DIGITS REPRESENTED BY FLOAT CHARS
	DEFIN WRKSEC,1	;-1 MEANS WORKING-STORAGE SECTION SEEN
	DEFIN PICPTR,1	;POINTER TO SAVE PIC CHARS.
	DEFIN PICBUF,7	;WHERE PIC CHARS. ARE SAVED
	DEFIN LNK1PC,1	;SAVE EAS1PC DURING LINKAGE SECTION
	DEFIN FLG88,1	;[674] FLAG FOR AN 88 LEVEL LITERAL
	DEFIN CURDTT,1	;SAVED CURDAT WHEN PARSING SUBSCRIPTS

	DEFIN	NMAKYS,1	;NUMBER OF ALTERNATE KEYS IN THIS FILE, 
			; FOR RMS INDEXED FILES

	HIGHC==.
;AREA USED BY PHASE D WHICH MAY BE OVERLAYED BY PHASE E

	RELOC HIGHB

	DEFIN IFLVL,1;
	DEFIN SPFLVL,1;
	DEFIN SPFNIO,1;;	;FLAG - SPECIAL IF, NOT I-O
	DEFIN CLEVEL,1;
	DEFIN ELEVEL,1;
	SETVAL USES.L,^D27
	DEFIN USES,USES.L
	DEFIN TRMLVL,1;
	DEFIN TOPLVL,1;
	DEFIN NXTSNT,1;
	DEFIN IMPLOP,2;
	DEFIN CORRSP,.CORSZ;	;[1070]
	DEFIN MVARY,1;
	DEFIN NVARY,1;

;VARBLK saves many thing including 3 * 3 copies of all subscripts
;Because the offsets change with the number of subscripts all references MUST be symbolic.
;Do not change the order of the items.
	DEFIN VARBLK,2		;SUBJECT OF PERFORM VARYING
	DEFIN VARSSB,MAXSUB*4+1	;SUBSCRIPTS FOR SUBJECT OF PERFORM VARYING
	DEFIN VARIVL,2		;INITIAL VALUE OF PERFORM VARYING
	DEFIN VARSIV,MAXSUB*4+1	;SUBSCRIPTS FOR INITIAL VALUE OF PERFORM VARYING
	DEFIN VARINC,2		;INCREMENT OF VALUE OF PERFORM VARYING
	DEFIN VARSIN,MAXSUB*4+1	;SUBSCRIPTS FOR INCREMENT OF VALUE OF PERFORM VARYING
	SETVAL VARSIZ,.-VARBLK	;SIZE OF ONE COPY OF VARYING STUFF
	DEFIN VARNXT,2*VARSIZ	;2 MORE COPIES OF ABOVE
	SETVAL VARLST,.-1	;LAST WORD IN VARBLK
	DEFIN VARTAG,7;

	DEFIN SAVPRF,6;
	DEFIN UNTTAG,2;
	DEFIN HROUND,1		;ARG2 SAVED (FOR 'ROUND' FLAG) DURING CORRESPONDING
	DEFIN REINTO,1		;NON-ZERO IF 'READ INTO' SEEN
	DEFIN BUFCTR,1		;COUNTER FOR # OF ENTRIES IN "OPEN" TBL
	DEFIN BUFFER,^D160	;BUFFER FOR OPEN AREA AND OPEN FILE NAMES.
	DEFIN	SU8FLG,1;	THIS AND THE NEXT 9 ENTRIES ARE FOR SIMULTANEOUS UPDATE
	DEFIN	SU41TP,1;	TEMP FOR ACTION PASU41
	DEFIN	SU8CNT,1
	DEFIN	SU8SVC,1
	DEFIN	SU8SVA,1
	DEFIN	SU8SVB,1
	DEFIN	SU30F1,1
	DEFIN	SU30F2,1
	DEFIN	SU30FG,1
	DEFIN	PASU4T,1
	DEFIN	CURMKY,1	;CURRENT RMS RETAINED KEY FOR PASU31 AND PASU3A

	DEFIN	SURRTM,1	;SPACE REQUIRED IN THE RETAINED
				;RECORDS TABLE BY THE CURRENT STATEMENT

	DEFIN	SURRT.,1	;SPACE REQUIRED IN THE RETAINED RECORDS
				;TABLE BY THIS COMPILE UNIT

	DEFIN	SUEQTM,1	;SPACE REQUIRED IN EACH OF THE ENQ/DEQ
				;TABLES BY THIS RETAIN STATEMENT

	DEFIN	SUEQT.,1	;SPACE REQUIRED IN EACH OF THE ENQ/DEQ
				;TABLES BY THIS COMPILE UNIT

	DEFIN	SUFBT.,1	;SPACE REQUIRED IN THE FILL/FLUSH
				;BUFFER TABLE FOR THIS COMPILE UNIT

	DEFIN	SUFBTM,1	;SPACE REQUIRED IN THE FILL/FLUSH
				;BUFFER TABLE FOR THIS RETAIN STATEMENT
	DEFIN	SVINSP,2	;HOLD DATA ITEM ON TYPE 3 INSPECT
	DEFIN	SVINSO,1	; OP CODE FOR INSPECT TALLYING/ REPLACING
	DEFIN	IFPERF,1	;SET TO -1 WHEN IF IS IN PERFORM CONTROL LOGIC
	DEFIN	INNOR,1		;IF A COMPLEX CONDITION, SAW:
				; NOT ( ... OR
				;TO ALLOW US TO REPLACE "OR" WITH ") OR ("

	DEFIN	SWHEN,1		;SAW "WHEN" AT END OF SENTENCE IF -1
	DEFIN	PERLNC,1	;DIDN'T SEE WHEN-- STORE LN AND CP INCASE
	DEFIN	SRTMRG,1	;0 IF IN SORT, -1 IF MERGE; FOR FIPS FLAGGER
				; NEXT THING IS WHEN
	DEFIN	INUPRG,1	;IN USE PROCEDURE REPORT GROUP - RPWTAB LINK
	DEFIN	ERSKIP,1	;If set to -1, means syntax error while parsing
				;a statement which caused a skip to next period.
	DEFIN	DKEYSZ,1	;[1465] HOLD SIZE OF START KEY IN PHASE D
	DEFIN	REFCON,1	;0 if CALL BY REFERENCE, -1 if CALL BY CONTENT
	DEFIN	PERFAB,1	;0 if PERFORM BEFORE TEST, -1 if PERFORM AFTER TEST
	DEFIN	ILPERF,1	;No. of nested in-line PERFORMs
	DEFIN	INPTAG,1	;Tag number for in-line perform
	DEFIN	EV.LVL,1	;EVALUATE depth for nesting
	DEFIN	EVALFL,1	;EVALUATE verb flag word
	DEFIN	EVNXTS,1	;Tag for jrst on match failure in selection set
	DEFIN	EVDONE,1	;Tag for jrst after completing imperative stmt
	DEFIN	EVCOND,1	;Condition-name scanned
	DEFIN	EVNOT,1		;'NOT' scanned
	DEFIN	EVLNCP,1	;LN, CP of expression scanned for SO
	DEFIN	EV.TAB,EV.STK	;Table to hold parameters if nest EVALUATE's
	DEFIN	RMFLG,1		;Ref. Mod. - flag word
	DEFIN	RMOPND,2	;Ref. Mod. - store operand being modified
	DEFIN	RMOPR,2		;Ref. Mod. - store current verb's op code
	DEFIN	NBRSUB,1	;Hold count of nbr of subs required for a field
	DEFIN	ATGFLG,1	;Set to -1 if ADD TO see so we can handle GIVING
	HIGHD==.
;AREA USED BY PHASE E WHICH MAY BE OVERLAYED BY PHASE F

	RELOC OVLAY

	SETVAL EINITL,.		;FIRST PHASE E WORK LOC TO CLEAR UPON INITIALIZATION

	DEFIN	INSDAT,1	;DATAB LINK TO INSPECT CONVERTING DATA-NAME
	DEFIN	RPWDPR,1	;[1433] THE PAGE ROUTINE IS A DUMMY ROUTINE
	DEFIN	LITNN,1		;ADDRESS OF 1ST ARG
	DEFIN	M.ARGP,1	;CURRENT MCS ARGUMENT
	DEFIN	M.SIXL,1	;0=ASCII LITERAL, ELSE=SIXBIT LITERAL
	DEFIN	M.STR,1		;NON-0 IF SPECIAL STRING/UNSTRING ITEM
				;   E.G., STRING SOURCE-ITEM OR DELIMITER
				;   WHICH GET SPECIAL SUBSCRIPT TREATMENT
	DEFIN	SSU.FL,1	;FLAGS TO BE PUT INTO SUBSCRIPT BLOCK
				; FOR SPECIAL STRING/UNSTRING ITEMS.
	DEFIN	SSU.MD,1	;PLACE TO SAVE MODE WHILE DOING MXAC.
	DEFIN	SSU.CT,1	;COUNT OF SUBSCRIPTS THAT NEED SPECIAL
				; HANDLING.
	DEFIN	SSU.PT,3	;POINTERS TO THE PARAMETERS FOR
				; SUBSCRIPTS THAT GET HANDLED SPECIAL.
	DEFIN	NODPPF,1	;FLAG TO INDICATE THAT THIS DATANAME MAY
				; NOT HAVE ANY DECIMAL PLACES OR BE P-SHIFTED
	DEFIN	UUOSV%,1	;SAVE UUO FOR CONVERSION TO PUSHJ
	DEFIN	UUINC%,1	;SAVE UUO INCREMENT FOR CONVERSION
	DEFIN	LITASY,1	;IF -1 LITERAL TABLE BEING COPIED TO ASY
	DEFIN	MSKTMP,4	;AREA TO BUILD EDIT MASK TO DISPLAY
				;NUMERIC DATA ITEMS
	DEFIN	CURSIZ,1	;CURRENT SIZE OF LITERAL [167]
	DEFIN	LITERR,1	; [374] IF NON-ZERO ELITERAL TO BE CONVERTED OUT OF BOUNDS FOR CONVERSION
	DEFIN	XWDRH,1		;USED BY XWDGEN
	DEFIN	EPSECT,1	;TABLE-LINK TO PREVIOUS SECTION
	DEFIN	EPPARA,1	;TABLE-LINK TO PREVIOUS PARAGRAPH
	DEFIN	ESIZEZ,1	;SIZE OF OPERAND BEING USED IN A "MOVE" SUB-GENERATOR
	DEFIN	EWORDB,1	;NUMBER OF FULL WORDS IN OPERAND
	DEFIN	EREMAN,1	;REMAINING CHARACTERS NOT INCLUDED IN EWORDB
	DEFIN	EMASK,1	;A MASK BEING CREATED BY "MOVE" SUB-GENERATOR
	DEFIN	OPERND,1	;LH HAS "A" OPERAND, RH HAS "B" OPERAND DURING "MOVE"
	DEFIN	EIMPPC,1	;PC FOR RUN-TIME IMPURE PARAMETERS
	DEFIN	EALTPC,1	;PC FOR RUN-TIME ALTER TABLE
	DEFIN	EALTMX,1	;SIZE OF RUN-TIME AREA FOR ALTERS OF SEGS > 49
	DEFIN	ETEMPC,1	;PC FOR RUN-TIME TEMPS
	DEFIN	ETEMAX,1	;SIZE OF RUN-TIME TEMPORARY AREA
	DEFIN	EAC,1	;CURRENT ACCUMULATOR BEING USED BY GENERATED CODE
	DEFIN	LITHLD,20	;[FCCTS NC105] TO HOLD A NUMERIC LITERAL DURING CONVERSION
	DEFIN	ERESDP,1	;NUMBER OF DECIMAL PLACES IN ARITHMETIC RESULT
	DEFIN	ESAVDP,1	;[466] NUMBER OF DECIMAL PLACES SHIFTED FOR COMPUTATION.
	DEFIN	ESAVAC,4	;TO HOLD AC'S WHEN CALLING MOVGEN

	DEFIN	EINTO,<OPNSIZ+OPNMAX> ;OPERANDS FOR READ..INTO OR RETURN..INTO
	DEFIN	EINTR,2	;[245] INTO FOR RPWGEN
	DEFIN	PTRHLD,1	;[1027] POINTS TO CURRENT ENTRY IN READ INTO TABLE
	DEFIN	THISPH,1	;CURRENT OFFSET INTO PTRHLD
	DEFIN	EDEPFT,1	;[605] STORE FILE-TABLE POINTER IF WE NEED TO RESTORE DEPENDING ITEM
	DEFIN	NEGCMP,1	; [360] NEGATE FINAL OUTPUT FOR COMPUTE SW
	DEFIN	ESZERA,1	;TO SAVE SPECIAL TAG FOR TRUE PATH OF SIZE ERROR
	DEFIN	ENDIFT,1	;THE TAG TO GENERATE AT "ENDIF"
	DEFIN	ESAVEA,EFLAGX+1	;TO SAVE "A" PARAMETERS
	DEFIN	ESAVEB,EFLAGX+1	;TO SAVE "B" PARAMETERS
	DEFIN	ESAVES,2*EFLAGX+2	;TO SAVE PARAMETERS DURING SUBSCRIPT GENERATION
	DEFIN	ESAVER,EFLAGX+1	;TO HOLD "B" PARAMETER DURING "RESULT"
	DEFIN	ESAVMA,2*EFLAGX+2	;TO SAVE PARAMETERS DURING MOVES
	DEFIN	ESAVRW,EFLAGX+1	;TO HOLD 'B' PARAM FOR RPW
	SETVAL	ESAVDV,ESAVRW	;TO HOLD "B" DURING DIVIDE INTO SERIES
	DEFIN	ESAVSC,2*EFLAGX+2	;TO SAVE EBASEA&EBASEB DURING 'SEARCH'
	DEFIN	ESAVTT,EFLAGX+1	;TO SAVE 'A' PARAMETERS DURING 'MOVE A TO B1,B2'
	DEFIN	ESAVBI,EFLAGX+1	;[1067] TO SAVE 'B' PARAMETERS DURING 'IF'
	DEFIN	AINTEM,1	;-1 IF ESAVTT HAS 'A' PARAMETERS FOR MOVE
	DEFIN	SAVEPP,1	;TO HOLD PUSHDOWN POINTER AT START OF EXPRESSION
	DEFIN	ELITHI,1	;HI-ORDER WORD OF A 2-WORD LITERAL
	DEFIN	ELITLO,3	;LOW-ORDER WORD  "      "       "
				;PLUS TWO EXTRA WORDS IN CASE 4-WORD LITERAL
	DEFIN	EOPHLD,1	;TO HOLD LN&CP OF OPERATOR DURING EXPRESSIONS
	DEFIN	ECARRY,1	;NUMBER OF CARRIES INTO HI-ORDER DIGIT IN ARITHMETICS
	DEFIN	OPLINE,1	;LN&CP OF OPERATOR
	DEFIN	ECTRUE,1	;TAG ADDRESS FOR TRUE PATH OF "IFC"
	DEFIN	ECFALS,1	;TAG ADDRESS FOR FALSE PATH OF "IFC"
	DEFIN	ECNAME,2	;HOLDS 2-WORD OPERAND FOR DUMMY "B" OF "IFC"
	DEFIN	EXPBEG,1	;RELATIVE LOC OF EOPNXT WHEN EXPRESSION STARTED
	DEFIN	ARGCTR,1	;COUNTER FOR CALL ARGS
	DEFIN	SUBLST,1	;LITERAL ADDR OF LIST OF SUBPROGRAMS CALLED
	DEFIN ENTAGS,1	;ENTRY POINT JRST TAG
	DEFIN ARGPTR,1	;%PARAM ADDR OF CALLER'S ARG PTR
	DEFIN ELNKSF,1	;FLAG SET IF CURRENT OPERAND IS IN LINKAGE SECTION
	DEFIN HLDBRO,1	;[1300] TEMP FOR REDEFINES IN LINKAGE SECTION
	DEFIN HLDEOP,1	;HOLD CUREOP WHILE WORKING ON SUBSCRIPTS
	DEFIN CONCTR,1	;COUNTER FOR CONDITION NAME VALUES
	DEFIN ECNBP,1	;BYTE POINTER TO NEXT CONTAB HALF-WORD
	DEFIN ECSTEP,1	;A TAG ADDRESS FOR INTERMEDIATE BRANCH OF COMPLEX "IFC"
	DEFIN ECXTRA,1	;A TAG ADDRESS FOR INSTRUCTION FOLLOWING COMPLEX "IFC"
	DEFIN TAGTRU,1	;%TAG TO WHICH TO GO IF CONDITION TRUE
	DEFIN ESAVOP,1;
	DEFIN ENOCC1,1	;COUNTER USED BY SUBSCRIPT GENERATOR
	DEFIN ENOCC2,1	;ANOTHER COUNTER USED BY SUBSCRIPT GENERATOR
	DEFIN SUBNUM,1	;NUMBER OF SUBSCRIPTS
;; USED BY INLINE SUBSCRIPT GENERATOR:
	DEFIN SSMODE,1	;USAGE MODE OF THE VARIABLE BEING SUBSCRIPTED
	DEFIN BASITM,1	;XWD EINCR,EBASE OF ITEM BEING SUBSCRIPTED
			; (IF USAGE IS COMP)
	DEFIN SUBNM1,1	;NUMBER OF THE SUBSCRIPT WE'RE LOOKING AT
	DEFIN DEPITM,1	;DEPENDING ITEM INFO (OR 0)
	DEFIN SUBITM,1	;SUBSCRIPT ITEM INFO
	DEFIN SSMACV,1	;SIMULATED RUNTIME AC VALUE
	DEFIN SSMACF,1	;FLAG (-1 = SIMULATING, VALUE IN SSMACV), ELSE 0
	DEFIN NOIDVF,1	;-1 IF NO IDIVI NEEDED
	DEFIN ZEROSB,1	;-1 IF NO SUBSCRIPTS
;; END OF AREA USED BY INLINE SUBSCRIPT GENERATOR
	DEFIN SUBCON,1	;INPUT CONSTANT FOR SUBSCRIPT GENERATOR
	DEFIN USE510,1	;-1 IF SUBSC ROUTINE SHOULD LEAVE BYTE PTRS IN
			;ACS 5,10
	DEFIN SUSEAC,1	;AC VALUE TO PUT SUBSCRIPT IN (OR 0)
	DEFIN IBPFLG,1	;-1 IF BYTE PTR LEFT BY SUBSCRIPT GENERATOR
			;WILL BE ILDB'D OR IDPB'D.
	DEFIN MAKBPB,1	;-1 TO TELL MBYTPA AND MBYTPB TO PUT A BYTE PTR IN
			;LITAB THAT CAN BE "LDB'D" FROM.
	DEFIN PCXPTR,1	;XWD <LOC OF "A" PTR>,<LOC OF "B" PTR>
			; USED BY MOVGEN,CMNGEN,IFGEN FOR MOVE/COMPARE
			; OF 1 BYTE.
;;USED BY GETNB ROUTINE AND FRIENDS FOR THE "USE LARGER BYTES"
; OPTIMIZATION
	DEFIN USENBT,1	;-1 IF SUBSCR SHOULD USE LARGER BYTES
			; (MULTIPLY # BITS BY C(NBYTES).)
	DEFIN NBYTES,1	;VALUE RETURNED BY GETNB
	DEFIN ONLYEX,1	;-1 TO TELL SUBSCR TO NOT GENERATE ANY CODE
			;AND RETURN VALUE IN S1SIZ
	DEFIN ALSTMP,1	;-1 TO TELL SUBSCR TO PUT ALL SUBSCRIPTS INTO %TEMP,
			; EVEN IF THEY ARE COMP.
	DEFIN S1SIZ,1	;SIZE (SMALL BYTES) OF ELEMENTARY SUBSCRIPTED ITEM
	DEFIN NCHARS,1	;NUMBER OF CHARACTERS BEING MOVED (INPUT TO GETNB)
;; END OF AREA USED BY GETNB...
	DEFIN MOVEDN,1	;FOR LONG MOVES, -1 IF ALL MOVE CODE GENERATED
			; THAT IS NECESSARY
	DEFIN INDIND,1	;FOR LONG MOVES, THIS IS THE INCREMENT WHICH
			; IS ADDED TO THE STARTING INCREMENT
	DEFIN SAVENW,1	;FOR LONG MOVES, # OF FULL WORDS BEING MOVED IN THE
			; "MIDDLE PART" OF THE MOVE
	DEFIN USEXJR,1	;FLAG FOR XFRGEN TO USE "XJRST" INSTEAD OF "JRST"
			; SO OPTIMIZER DOESN'T TRY TO FIDDLE WITH THEM
	DEFIN HRRIFL,1	;GEN "HRRI" NOT "HRRZI" AT GMOV7B
;
	DEFIN DPITM,1	;FOR CMNGEN ROUTINE "SZDPVA" AND "SZDPVB"
	DEFIN DPLNK,1	; FOR LNKSET TO DEPENDING VARIABLE
	DEFIN DPVAR,1	; SIZE OF DEPENDING VARIABLE
	DEFIN DEPVB,1	; SET TO AC USED IF SIZE WAS SETUP, ELSE SET TO -1
	DEFIN CONVSV,1	;IF NON-ZERO, MUST PRESERVE THIS RUNTIME AC
	DEFIN SAVPR0,1	;-1 IF SZDPV? MUST PRESERVE %PARAM+0
			; THIS IS ALWAYS RESET TO 0 BY SZDPV?
;
	DEFIN NODEPV,1	;SET TO -1 IF DEPENDING VARIABLE NOT ALLOWED FOR
			; THIS ITEM  (SEE MSCGEN)
	DEFIN WDPITM,1	;LH = -1 IF WE MUST PRESERVE %PARAM+0
			;RH = LINK TO DEPENDING ITEM AT WRITE. UUO, 0 IF NONE
	DEFIN SUBINP,1	;SET TO -1 TO TELL B1PAR THAT THE GENERATED PARAMETER
			; MUST NOT BE PUT INTO LITTAB, BECAUSE IT WILL BE
			; MODIFIED AT RUNTIME
	DEFIN ERCNT,1	;COUNT OF NUMBER OF RESULTS
	DEFIN ETEMPR,2	;USED BY RESULT GENERATOR--CONTAINS ADDRESS OF TEMP
	DEFIN RESTYP,1	;RESULT TYPE
	DEFIN ESMAX,1	;MAXIMUM NUMBER OF SUBSCRIPTS ALLOWED FOR AN ITEM
	DEFIN REMPAR,1	;PARAMETERS FOR "REMAINDER"
	DEFIN ADDTMP,1	;USED TO KEEP TRACK OF SIZE OF INTERMEDIATE TEMP IN ADD SO WE CAN USE D.P. IF REQUIRED
; THE FOLLOWING ARE USED WHEN DIVISION IS BOTH ROUNDED AND HAS REMAINDER
	DEFIN REMRND,1	;ADDRESS OF EXTRA TEMP IF REMAINDER AND ROUNDING BOTH
	DEFIN REMRN1,1	; AND INCREMENT IF ROUNDING & REMAINDER
	DEFIN SGNREM,1	;REMAINDER MAY BE NEGATIVE
	DEFIN SGNDIV,1	;DIVISOR MAY BE NEGATIVE
; (END)
	DEFIN EMULSZ,1	;IF NON-ZERO, THERE ARE MULTIPLE RESULTS WITH SIZE ERROR
	DEFIN EMOVHL,1	;CONTAINS INSTRUCTION TO MOVE HIGH OR LOW VALUE TO MEMORY
	DEFIN ECONLJ,1	;CONTAINS AC WHICH CONTAINS AN ASCII CONSTANT, LEFT JUST
	DEFIN ECONRJ,1	;CONTAINS AC WHICH CONTAINS AN ASCII CONSTANT, RIGHT JUST
	DEFIN ESAVSW,1	;SAVE "SW" (USED BY SUBSCRIPTOR)
	DEFIN ESAVDT,1	;SAVE "DT" (USED BY SUBSCRIPTOR)
	DEFIN ESAVAD,1	;SAVE INCREMENT FOR SUBSCRIPT OUTPUT
	DEFIN ESAVMD,1	; SAVE MODE OF FATHER FOR SUBSCRIPTING.
	DEFIN EDITW1,1	;FIRST OF TWO WORDS TO HOLD "XWD" DURING EDITED MOVES
	DEFIN EDITW2,1	;SECOND    "
	DEFIN EDITW3,1	;TO HOLD OP-CODE AND ADDRESS DURING EDITED MOVE
	DEFIN ERECSZ,1	;SIZE OF AN OUTPUT RECORD (FOR WRITE)
	DEFIN EREM0,1	;FIRST ADDRESS OF DIVIDE 'RESULT' OPERAND
	DEFIN EREM1,1	;LAST ADDDRESS OF DIVIDE 'RESULT' OPERAND
	DEFIN EREM2,1	;FIRST WORD OF DIVIDE 'RESULT' OPERATOR
	DEFIN EREM3,1	;LAST ADDRESS OF FIRST OPERAND AFTER DIVIDE 'RESULT'
	DEFIN EREM4,1	;FIRST WORD OF FIRST OPERATOR AFTER DIVIDE 'RESULT'
	DEFIN CUROPP,1	; 0 NORMALLY, OR POINTER TO OPERAND WHEN OPERND
			;MAY NOT BE SETUP CORRECTLY (E.G., WHEN MOVING
			;AN OPERAND TO TEMP)
IFN DBMS, DEFIN DBLITP,1 ;[656] HOLDS POINTER TO LITERAL IN DBARGS (COBOLE)

	SETVAL ESORTL,.	;FIRST LOCATION ZEROES UPON SEEING "SORT"
	DEFIN ESUSE,2	;"USING" OPERAND FOR SORT
	DEFIN ESGIV,2	;"GIVING" OPERAND FOR SORT
	DEFIN ESORTF,2	;OPERAND OF "SORT" OPERATOR
	DEFIN ESINP,4	;LIKEWISE FOR "INPUT PROC"  (SECOND FOR "THRU")
	DEFIN ESOUTP,4	;LIKEWISE FOR "OTTPUT PROC"
	DEFIN ESTAG1,1	;%TAG NUMBER FOR START OF "BUILD KEY" ROUTINE
	DEFIN ESTAG2,1	;%TAG NUMBER FOR FIBST INST AFTER "BUILD KEY"
	DEFIN ESTAG3,1	;%TAG NUMBER FOR "READ" IN "USING" CODE
	DEFIN ESTAG4,1	;%TAG NUMBER FOR "AT END" CODE FOR "USING"
	DEFIN ESTAG5,1	;%TAG NUMBER FOR "WRITE" IN "GIVING" CODE
	DEFIN EKEYSZ,1	;NUMBER OF WORDS TO CONTAIN SORT KEYS
	DEFIN EKEYLC,1	;LOCATION, RELATIVE TO IMPPAR, TO CONTAIN NEXT KEY
	DEFIN EKEYNO,1	;NUMBER OF KEYS SEEN
	DEFIN EUSENO,1	;NUMBER OF USING FILES SEEN
	DEFIN EGIVNO,1	;NUMBER OF GIVING FILES SEEN
	DEFIN EVTFPT,1	;FLAGGED ADDRESS OF TRUE/FALSE FLAG FOR EVALUATE
	DEFIN EASSAV,1	;UNFLAGGED ADDR OF T/F FLAG FOR EVALUATE
	DEFIN EVSSTM,1	;START POSITION FOR EVALUATE IN TEMTAB TABLE
	DEFIN EVSSPM,1	;TO SAVE ADDRESS OF %PARAM TABLE FOR EVALUATE SS'S
	DEFIN RMOFF,1	;Ref. Mod. - adjustment to EINCRX,,ERESX
	DEFIN RMLEN,1	;Ref. Mod. - redefined length
	DEFIN RMFLAG,1	;Ref. Mod. - flag word
	DEFIN RMFLG2,1  ;Ref. Mod. - second flag word
	DEFIN EVALSN,1	;"IN EVALUATE" FLAG
	DEFIN EVWHSN,1	; IN EVALUATE ALL SELECTION SUBJECTS HAVE BEEN PROCESSED
	DEFIN EVSOCN,1	;COUNT OF SELECTION OBJECTS ON CURRENT "WHEN" FOR EVALUATE
	DEFIN EVTFOP,1	;FLAG TO TELL IFGEN THAT PREVIOUS OPERATOR WAS WAS EVTRUE
	DEFIN EVQWIK,1	;SET TO SKIP RETEST OF SUBSCRIPTS IN SELECTION SUBJECTS
	DEFIN AKTHLD,1	;TO HOLD CURRENT PTR TO AKTTAB IN ERNR3A RTN
	DEFIN ESMAXR,1	;MAX. RECORD SIZE OF SORT FILE IN SD
	DEFIN ESCOLS,1	;ADDRESS OF SORT/MERGE COLLATING SEQUENCE
	DEFIN EKREPF,1		;REPEAT CURRENT KEY UNTIL FULLY BUILT
	SETVAL ESORTH,.-1	;LAST LOCATION ZEROED UPON SEEING "SORT"
	DEFIN EMRGFL,1	;-1 IF MERGE, 0 IF SORT
	DEFIN ESAFLG,1	;-1 LEAVE RESULT IN ACC AND SET EAC TO POINT TO IT
	DEFIN ESRTSN,1	;-1 IF SORT SEEN, NEEDED FOR FIPS FLAGGER
;	DEFIN RWSAV1,1	;COUNT OF REMAINING CONTROL IDENTIFIERS
	DEFIN RWSAV2,1	;LOCATION OF NEXT CONTROL IDENTIFIER
	DEFIN RWSAV3,1	;LH CONTAINS COL# OF LAST ITEM, RH CONTAINS SIZE
	DEFIN RWSAV4,1	;CONTAINS OFFSET FOR CURRENT LINE
	DEFIN RWSAV5,1	;BYTE POINTER TO SUM IDENTIFIER LINK
	DEFIN RWSAV6,1	;COUNT OF REMAINING SUM IDENTIFIER LINKS
	DEFIN RWSAV7,1	;CONTAINS CALL TO EITHER LINE.C OR LINE.D
	DEFIN RWSAV8,1	;IDENTIFIER REFERENCED BY 'SUM'
	DEFIN RWSAV9,1	; INTRA-GROUP CNTR.

	DEFIN RWSV10,1	; [342] LINE INDICATOR
	DEFIN RWSV11,1	;A SUPPRESS CONTROL TAG
	DEFIN RWSV12,1	;SAVED REL LOC OF RPWTAB CF GROUP
	DEFIN RPWLIN,1	;CURRENT ABSOLUTE LINE NUMBER
	DEFIN RWBRKC,1	;%PARAM ADDRESS OF 'BREAK COUNT' FOR AN 'RD'
	DEFIN RWMBRK,1	;%TAG FOR MINOR BREAK ROUTINE FOR 'RD'
	DEFIN EIOOP,1	;I/O OP-CODE (IN RH)

	SETVAL SRCFST,.	;FIRST LOC TO CLEAR DURING 'SEARCH'
	DEFIN SRCLUP,1	;TAG OF FIRST LOC OF A SEARCH LOOP
	DEFIN SRCAE,1	;TAG FOR 'AT END' PATH OF SEARCH
	DEFIN SRCWHN,1	;TAG OF 'WHEN' CLAUSE OF SEARCH
	DEFIN SRCIDX,1	;DATAB LINK TO SEARCH INDEX
	DEFIN SRCIDN,1	;DATAB LINK TO SEARCH TABLE
	DEFIN SRCALL,1	;NON-ZERO IF SEARCH IS 'ALL'
	DEFIN SRCFLG,1	;NON-ZERO IF NOT ALL KEYS SPECIFIED
	DEFIN SRC%I,1	;TAG OF 'INCRMENT' CODE
	DEFIN SRC%E,1	;TAG OF END OF CONDITION TEST
	DEFIN SRCNOC,1	;NUMBER OF OCCURENCES OF TABLE BEING SEARCHED
	DEFIN SRCPAR,1	;%PARAM LOC HOLDING INCRMENT FOR BINARY SEARCH
	DEFIN SRCKYN,1	;NUMBER OF KEYS FOR SEARCHED ITEM
	DEFIN SRCKYL,1	;BYTE-POINTER TO NEXT KEY TABLE-LINK
	DEFIN SRCOPN,1	;NUMBER OF OPERANDS IN 'WHEN' FOR 'SEARCH ALL'
	SETVAL SRCLST,.-1	;LAST LOC CLEARED BY 'SEARCH' GENERATOR
	DEFIN	DCLTAG,1	;[435] SAVE JUMP TO TAG TO GO AROUND DECLARITIVES
	DEFIN	INDCLR,1	;SET TO -1 WHEN IN DECLARATIVES
	DEFIN	INPERF,1	;SET TO -1 WHEN IN PERFORM CONTROL LOGIC
	DEFIN	ESUCNT,1	;COUNT OF FILES OR RECORDS BEING ENQUEUEED
	DEFIN	ESUCT2,1	;ANOTHER COUNTER USED BY SIMULTANEOUS UPDATE
	DEFIN	ESUTAG,1	;TAG FOR THE OPEN STATEMENT
	DEFIN	ESAVW1,1	;USED TO SAVE W1
	DEFIN	ESUFN1,1	;SAVED FILE NAME POINTER
	DEFIN	ESUFN2,1
	DEFIN	ESUTC,1		;SAVED TC
	DEFIN	EUNSTK,20	;STACK FOR STORAGE OF UNAVAILABLE EXITS
	DEFIN	EUNSPT,1	;COUNT OF ENTRIES ON ABOVE STACK
	DEFIN	ESUCVT,1	;IF NON-ZERO, F-T ADDRESS: CONVERSION WAS DONE
				; IN THIS RETAIN OR FREE STMT BECAUSE KEY
				; WAS NOT COMP.
	DEFIN	SVKYDT,1	;SAVE DATAB ENTRY OF RMS REF KEY IN RETAIN
	DEFIN	ERFFLG,1	;FLAG TO INDICATE IF SMU VERB IS RETAIN 
				; OR FREE UNDER ERENQG/ERDEQG TAG

	BISZRF==:.	;FIRST LOCATION TO ZERO AT BEGINNING OF EDIT.B
			;CALL GENERATION
	DEFIN BISMIN,1	;MINUS FLAG.  THE FLAG IS SET TO -1 WHEN
			; EXTRA CODE NEEDS TO BE GENERATED TO TEST
			; FOR AND THEN INSERT A LEADING MINUS.
			; FLAG IS NORMALLY ZERO.
	DEFIN BISBW0,1	;BLANK WHEN ZERO FLAG.  FLAG IS NORMALLY ZERO.
			; IS SET TO THE NUMBER OF CHARACTERS
			; WHEN IT IS NECESSARY TO BLANK FILL
			; LEADING CHARACTERS OF DESTINATION STRING.
	DEFIN BISDST,1	;DESTINATION BYTE POINTER.  NORMALLY ZERO.
			; CONTAINS THE ADDRESS OF THE SAVED DESTINATION
			; BYTE POINTER FOR LEADING SIGN AND BWZ FILL.
	DEFIN BISCNT,1	;CURRENT CHARACTER COUNTER
	DEFIN BISBFS,1	;NUMBER OF CHARACTERS BEFORE  SIGNIFICANCE WAS TURNED OFF.
			;THIS IS NEEDED FOR BWZ.
	DEFIN BISASS,1	;NUMBER OF CHARACTERS AFTER SIGNIFICANCE
			;IS TURNED ON BUT BEFORE DECIMAL POINT.  ALSO NEEDED
			;FOR BWZ.
	DEFIN BISDOT,1	;SET TO 1 IF AN EXPLICIT DECIMAL POINT IS
			;ENCOUNTERED AND A SIGSET WAS ISSUED.  MOST OF TTHESE
			;SPECIAL COUNTERS ARE NEEDED TO REMEMBER THE LOCATION
			;OF THE DEICMAL POINT FOR BWZ "*".
	DEFIN BISFLT,1	;FLOAT CHARACTER IN ASCII 0R 0.
	DEFIN BISGOT,1	;SET TO -1 AFTER 1ST PLACE HOLDER IN BOUTPUT FIELD      
			;HAS BEEN ENCOUNTERED.
			;USED TO DETECT LEADING OR TRAILING SIGNS
	DEFIN BISSGN,1	;INSERT SIGN CODE: 0=NONE, +1=LEADING, OR -1=TRAILING
	DEFIN BISALP,1	;0=ALPHABETIC/ALPHANUMERIC EDIT, -1=NUMERIC
			;	NOTE THAT BWZ FOR A NON-EDITED FIELD IS
			;	DONE AS AN ALPHANUMERIC EDIT SO THAT NONE
			;	OF THE OVERPUNCH SIGNS GET CONVERTED

	BISZRL==:.-1	;LAST LOCATION TO ZERO

	DEFIN BISSIG,1	;-1=SIGNIFICANCE ON BUT NO SIGSET YET, 0=OFF, AND 
			;1=ON AGAIN BAFTER SIGSET
	DEFIN BISFIL,1	;SET TO "*" IF * SUPPRESSION AND 0 OTHERWISE

	DEFIN	PRGEAD,1	;POINTER TO MAIN ENTRY POINTE EXTAB ENTRY
	DEFIN	GODPOV,1	;FLAG.  TURNED ON BY THE GO DEPENDING
				; GENERATOR IF IT HAS TO WORRY ABOUT
				; DISPATCHING INTO ANOTHER SEGMENT.
	DEFIN	GRPFLG,1	; SET TO -1 TO FORCE GROUP MOVE
	DEFIN	IFEAC,1		;HOLD ACC FOR "A" IF IN ACCS DURING IF
	DEFIN	SUBFLG,1	;[***] EXTRA FLAGS TO SET IN SUBSCRIPTOR
	DEFIN	STEMPC,1	;SAVE %TEMP PC BETWEEN OPERANDS
				; (ETEMPC IS SET TO ZERO IN COBOLE
				; AT EVERY OPERAND)
	DEFIN	INSPSL,1	;WHERE THE INSPECT BYTE PTR IS...
	DEFIN	IARG11,1	; FIRST WORD OF INSPECT ARG LIST
				;LH= -NUM ARGS, RH= FLAGS
	DEFIN	INARGP,1	;POINTER INTO TEMTAB TO FIRST INSPECT ARGUMENT
				; HEAD OF LINKED LIST. SEE MSCGEN FOR FORMAT.
	DEFIN	ITLPTR,1	;POINTER INTO TEMTAB FOR ITEMS TO ADD AFTER
				; INSPECT GENERATION IS DONE
	DEFIN	INSPTF,1	;-1 IF TALLYING ARG LAST SEEN, 0 IF REPLACING
	DEFIN	CURIRG,1	;POINTER INTO TEMTAB FOR CURRENT ARGUMENT
	DEFIN	IOPFLG,1	;OPERAND FLAGS FOR INSPECT ARG
	DEFIN	SERSIZ,1	;INSPECT SEARCH STRING SIZE
	SETVAL	INSPLT,MSKTMP	;4 WORDS TO HOLD LITERALS IN INSPECT [ANS74]
	DEFIN	TEMADP,1	;RELATIVE LOCATION IN TEMTAB OF SAVED OPERAND
				; USED BY MATGEN TO GET POINTER TO OPERAND
				; TO STORE INSPECT TALLYING ARG IN
	DEFIN	CMPLVL,1	;NO. OF DATUMS BEFORE = IN COMPUTE SERIES
	DEFIN	CMPTMP,1	;TEMP USED TO HOLD VALUE IN COMPUTE SERIES
	DEFIN	CMPEOP,1	;LOC OF VALUE IN EOPTAB IN COMP SERIES

	DEFIN	COLSQS,1	;SIXBIT COLLATING SEQUENCE
	DEFIN	COLSQA,1	;ASCII COLLATING SEQUENCE
	DEFIN	COLSQE,1	;EBCDIC COLLATING SEQUENCE
	DEFIN	COLTMP,400	;TABLE TO BUILD COLLATING SEQUENCE
	COLZRL==:.-1		;LAST LOC TO ZERO
	DEFIN	PREVW1,1	;HOLDS W1 (LINE NUMBER) OF PREVIOUS OPERATOR
	DEFIN	PERFCD,1	;DEBUG CODE FOR PERFORM (COULD BE SORT ETC)
	DEFIN	DBSPIF,2	;TABLE-LINK,,DEBUG-ROUTINE IF CODE TO BE GENERATED AFTER SPIF.
				;W1 (I.E. LINE NUMBER) FOR DEBUG STUFF
	DEFIN	GDEBSW,1	;IF NON-ZERO LOOK AT DEBTAB TO GENERATE CODE

	DEFIN	EDEBDA,1	;DEBUG INFO FOR DATAB "A"
	DEFIN	EDEBPA,1	;PARAMS FOR ABOVE
	DEFIN	EDEBGA,1	;PARAM,,<USE-PROCEDURE>

	DEFIN	EDEBDB,1	;DEBUG INFO FOR DATAB "B"
	DEFIN	EDEBPB,1	;PARAMS FOR ABOVE
	DEFIN	EDEBGB,1	;PARAM,,<USE-PROCEDURE>

	SETVAL	EDEBDX,0
	SETVAL	EDEBPX,1
	SETVAL	EDEBGX,2

	DEFIN	SUBPBL,1	;ADDR OF %PARAM BLOCK FOR THIS SUBSCR. ITEM
	DEFIN	CURXSQ,1	;SEQUENCE # OF EXPRESSIONS, USED BY FIPS FLAGGER
	DEFIN	LSTXSQ,1	;SEQUENCE # OF EXPRESSIONS AT LAST "IF".
	DEFIN	EXPLNC,1	;LN & CP (W1) OF LAST EXPRESSION
	DEFIN	DIVSRS,1	;NO. OF OPERANDS IN DIVIDE INTO SERIES
	DEFIN	DIVTMP,1	;ADDRESS OF TEMP HOLDING "A" OPERAND IN DIVIDE SERIES
	DEFIN	ADCRLF,1	;ADD CR-LF NUL TO LITERAL FOR DISPLAY
	DEFIN	OVFLFL,1	;CLEARED WHEN OVFLO. CLEARED, SET BY DIVIDE
	DEFIN	IMCONS,1	;CREATE IMMEDIATE MODE CONSTANT AND RETURN VALUE HERE
	DEFIN	FLTDIV,1	;[566] SET TO -1 WHEN RESULT OF DIVIDE IS COMP-1
	DEFIN	NOFLOT,1	;SET TO -1 TO PREVENT FLOATING EXPONENT IN CEXP
	DEFIN	ECNTA,1		;[717] COUNT OF STRING PIECES IN "A" OPERAND
	DEFIN	IOFLGS,1	;FLAGS FOR I/O ARG LIST (V12B AND LATER)
	DEFIN	LPCSAV,1	;SAVED LITERAL PC, WHEN GENERATING MULTI-WORD
				; LITERALS THAT MAY BE POOLED
	DEFIN	C2MANT,3	;MANTISSA OF COMP-2 LITERAL IN PHASE E
	DEFIN	KEYREF,1	;KEY OF REFERENCE FOR AN ISAM READ
	DEFIN	KEYRLN,1	;LENGTH OF KEY OF REFERENCE (FOR RMS START)
	DEFIN	KEYADR,1	;ADDRESS OF KEY BUFFER (FOR RMS $GET)
	DEFIN	ROUCAL,1	;(LIBOL) ROUTINE TO CALL..
;NOTE: ADVPR1 AND ADVPR2 HAVE TO BE KEPT TOGETHER BECAUSE THEY ARE USED
; OPERANDS OF DOUBLE PRECISION MOVES.
	DEFIN	ADVPR1,1	;HOLD PARMS FOR ADVANC/POS FOR RMS ASCII STM FILES
				; ADVPR1 HOLDS TYPE OF ADV/POS
	DEFIN	ADVPR2,1	;HOLD PARMS FOR ADVANC/POS FOR RMS ASCII STM FILES
				; ADVPR2 HOLDS HOW MUCH/SOURCE FOR ADV/POS
	DEFIN	NOTLN,1		;LN OF "NOT" FOR FIPS FLAGGER
	DEFIN	NOTCP,1		;CP OF "NOT"
	DEFIN	INSFLG,1
	DEFIN	NOPOOL,1
	DEFIN	INS1EC,1	;POINTER TO LITERALS FOR (AFTER AND BEFORE)
	DEFIN	INS2EC,1	; PHRASE OF INSPECT STATEMENT
	DEFIN	INS1BY,1	;POINTS TO FIRST BYTE POINTER FOR AFTER/BEFORE
	DEFIN	INS1OP,1
	DEFIN	INS2OP,1
	SETVAL EINITH,.-1	;LAST PHASE E WORK LOC CLEARED UPON INTIALIZATION
	SETVAL ESAVAX,ESAVEA+EFLAGX
	SETVAL ESAVBX,ESAVEB+EFLAGX
	SETVAL EBASBX,EBASEB+EFLAGX
	SETVAL EBASAX,EBASEA+EFLAGX
	SETVAL ESAVSX,ESAVSB+EFLAGX
	SETVAL ESAVRX,ESAVER+EFLAGX
	SETVAL ESVMAX,ESAVMA+EFLAGX
	SETVAL ESAVMB,ESAVMA+EFLAGX+1
	SETVAL ESVMBX,ESAVMB+EFLAGX
	SETVAL ESVSCX,2*EFLAGX+ESAVSC+1	;[1315] [1140]
	SETVAL ESAVTX,ESAVTT+EFLAGX
	SETVAL ESVIBX,ESAVBI+EFLAGX	;[1067]
	SETVAL ESAVSB,ESAVES+EFLAGX+1
	SETVAL ESVDVX,ESAVDV+EFLAGX
	DEFIN	INZDAT,1	;TOP LEVEL DATAB SAVED IN INITIALIZE VERB
	DEFIN	CURVRB,1	;CURRENT VERB FOR END-x CODE

;THE FOLLOWING PHASE E LOCATIONS ARE ZEROED AT EACH SEGMENT BREAK.

	SETVAL EZEROL,.;

	DEFIN ESMASK,1	;ADDRESS OF DUMMY MASK USED FOR "MOVE" CONVERSIONS
	DEFIN EAS3PC,1	;PROGRAM COUNTER FOR NON-RESIDENT AREA
	DEFIN ELITPC,1	;RUN-TIME ADDRESS OF NEXT LITERAL FOR POOL
	DEFIN EASRJ,1	;RUN-TIME ADDRESS OF ASCII CONSTANT "     "
	DEFIN EAZRJ,1	;RUN-TIME ADDRESS OF ASCII CONSTANT "00000"
	DEFIN EAQRJ,1	;RUN-TIME ADDRESS OF ASCII CONSTANT '"""""'
	DEFIN ESQUOT,1	;RUN-TIME ADDRESS OF SIXBIT CONSTANT '""""""'
	DEFIN ESZERO,1	;RUN-TIME ADDRESS OF SIXBIT CONSTANT '000000'
	DEFIN EESPCE,1	;RUN-TIME ADDRESS OF EBCDIC CONSTANT '    '
	DEFIN EEZERO,1	;RUN-TIME ADDRESS OF EBCIDC CONSTANT '0000'
	DEFIN EEQUOT,1	;RUN-TIME ADDRESS OF EBCDIC CONSTANT '""""'
	DEFIN EEHIGH,1	;RUN-TIME ADDRESS OF XWD 377377,377377 (EBCDIC HIGH VALUES.)
	DEFIN C3ZROS,1	;[1307] [1141] RUNTIME ADDRESS OF A COMP-3 ZERO PIC S9(18).
	DEFIN C3ZROU,1	;[1307] [1141] RUNTIME ADDRESS OF A COMP-3 ZERO PIC 9(18).
	DEFIN C3HIVL,1	;RUNTIME ADDRESS OF A COMP-3 HIGH-VALUES PIC S9(18).
	DEFIN C3LOVL,1	;RUNTIME ADDRESS OF A COMP-3 LOW-VALUES PIC S9(18).
	DEFIN EPWR10,^D36	;RUN-TIME ADDRESSES OF POWERS OF 10
	DEFIN RPWR10,^D10	;RUN-TIME ADDRESS OF ROUNDING VALUES
	DEFIN EFPCNV,^D21	;RUN-TIME ADDRESS OF FLOATING-POINT POWERS OF 10
	DEFIN EF2CNV,^D21	;RUN-TIME ADDRESS OF D.P. FLOATING-POINT POWERS OF 10
	DEFIN CF2CNV,1	;RUNTIME ADDRESS OF COMP-2 TO COMP-1 CONVERSION CONSTANT
	DEFIN EHIVAL,1	;RUN-TIME ADDRESS OF HI-VALUE LITERAL
	DEFIN ELOVAL,1	;RUN-TIME ADDRESS OF LO-VALUE LITERAL
	DEFIN EFPLOV,1	;RUN-TIME ADDRESS OF LO-VALUE FOR FL. PT.
	DEFIN EAHRJ,1	;RUNTIME ADDRESS OF ASCII HIGH-VALUES
	DEFIN EALRJ,1	;RUNTIME ADDRESS OF ASCII LOW-VALUES
	DEFIN ESHIVL,1	;[722] RUNTIME ADDRESS OF SIXBIT HIGH-VALUES
	DEFIN ESLOVL,1	;[722] RUNTIME ADDRESS OF SIXBIT LOW-VALUES
	DEFIN EELOW,1	;[722] RUNTIME ADDRESS OF EBCDIC LOW-VALUES

	DEFIN	ALITSV,1	;[1077] ADDRESS OF LITERAL BYTE PTR TO SAVE
				;[1077] WHEN LITTAB EXPANDS
	DEFIN	PLITPC,1	;ADDRESS OF POOLED LITERAL
	DEFIN	PLITCT,1	;COUNT OF LITERALS IN BLOCK TO POOL
	DEFIN	PLITPT,1	;POINTER TO STORE LITERALS IN BLOCK TO POOL
	DEFIN	PLITOF,1	;OFFSET INTO LITERAL POOL FOR FIRST COMPARE
	SETVAL	PLITSZ,^D100	;NUMBER OF LITERALS TO BUFFER
	DEFIN	PLITBF,PLITSZ	;BUFFER OF LITERALS TO POOL

	SETVAL EZEROH,.-1;

	HIGHE==.
;AREA USED BY PHASES F & G

	RELOC OVLAY
	DEFIN EXTCNT,1		;NUMBER OF XWD'S FOR NON-RESIDENT GLOBALS
	DEFIN HEADER,30		;HEADING LINE FOR LISTING
IFE TOPS20,<
	DEFIN HEADR2,7		;HEADER FOR SECOND LINE OF LISTING
>
IFN TOPS20,<
	DEFIN HEADR2,30		;HEADER FOR SECOND LINE OF LISTING
>
	DEFIN COUNTW,1		;COUNT OF WARNING DIAGS
	DEFIN COUNTF,1		;COUNT OF FATAL DIAGS
	DEFIN COUNTV,1	;COUNT OF FLAGGER VIOLATIONS
	DEFIN FIXEDS,1	;SIZE OF EXTRA CODE GENERATED IN RESIDENT SEGMENT
	DEFIN SUBPAG,1	;SUB-PAGE NUMBER


;AREA USED BY PHASE F WHICH MAY BE OVERLAYED

	DEFIN ERATAB,1;		;IOWD TO WORK AREA TO HOLD DIAGS
	DEFIN FAKERA,7		;DIAG MESSAGE FOR BAD DIAG NUMBER
	DEFIN GMAXCP,1		;LARGEST CHARACTER POSITION ALLOWED ON LISTING
	DEFIN RDATLK,1;		;Saved Link to a DATAB item


;AREA USED BY PHASE G WHICH MAY BE OVERLAYED

	DEFIN SAVTAG,1	;SAVE A SPECIAL TAG TO BE PRINTED
	DEFIN TAGOUT,1	;NUMBER OF TAGS LISTED FOR CURRENT LINE, LESS 1
	DEFIN DECSEG,1	;CURRENT SECTION NUMBER RELATIVE TO START OF PROGRAM
	SETVAL	ASYFIL,AS1HDR	;NAME OF ASYFIL CURRENTLY BEING USED
	DEFIN DATGRP,^D20	;TO HOLD WORDS WHICH WILL BE WRITTEN ON A BINARY FILE
	DEFIN FLTC1,1	;EXPONENT OF FLOATING POINT CONSTANT
	DEFIN FLTC2,3	;[762] MANTISSA OF FLOATING POINT CONSTANT
			;[762] SECOND & THIRD WORDS ARE FOR DOUBLE PRECISION
	DEFIN CURREL,1	;RELOCATION FACTOR FOR CURRENT SEGMENT
	DEFIN SYMLC1,1	;ADDRESS OF NEXT FREE ENTRY IN SYMGRP
	DEFIN SYMREL,1	;BYTE POINTER TO RELOCATION BITS IN SYMGRP
	DEFIN 	SYMGRP,^D20	;TEMPORARY STORAGE AREA FOR SYMBOLS FOR BINFIL
	DEFIN LITBAS,1	;STARTING LOCATION OF OBJECT LITERALS
	DEFIN T4BASE,1	;RUN-TIME LOCATION OF "GOTO.."
	DEFIN GAERAS,1	;NUMBER OF ASSEMBLY ERRORS
	DEFIN GHOLD,^D15	;TO HOLD SIXBIT OR ASCII CONSTANT
	DEFIN OVRWRD,1	;WORD COUNT FOR "OVR" FILE

	DEFIN GCREFC,1		;COUNT OF NUMBERS LEFT TO GO IN CREF PRINT LINE
	DEFIN GCREFN,6		;TO HOLD NAME & LINE NUMBER TO BE LISTED IN CREF
	DEFIN OLDCNM,5		;NAME OF LAST ITEM PUT ONTO CREF LISTING

	DEFIN SF1BUF,1;
	DEFIN SF2BUF,1;
	DEFIN SF3BUF,1;
IFN TOPS20,<
	SETVAL SFBUF,SF1BUF
	DEFIN SF1JFN,1
	DEFIN SF2JFN,1
	DEFIN SF3JFN,1
	SETVAL SFJFN,SF1JFN
	DEFIN SF1BH,3
	DEFIN SF2BH,3
	DEFIN SF3BH,3
>
IFE TOPS20,<
	DEFIN SF1BHO,3;
	DEFIN SF2BHO,3;
	DEFIN SF3BHO,3;
	DEFIN SF1BHI,3;
	DEFIN SF2BHI,3;
	DEFIN SF3BHI,3;
>
	DEFIN CRFERA,1	;CONTENTS OF 'PP' WHEN 'CREF' ENTERED IN COBOLG (FOR ERRORS)
	DEFIN CRFEOS,3	;NON-ZERO WHEN A FILE IS AT END-OF-STRING
	DEFIN CRFTS,3	;NUMBER OF STRINGS ON EACH CREF SORT SCRATCH FILE
	DEFIN CRFSTA,3	;NUMBER OF STRINGS TO BE ADDED TO A SORT FILE
	DEFIN CRFLOW,1	;POINTER TO SORT TABLE FOR 'LOWEST' RECORD NOT WRITTEN
	DEFIN CRFPWR,1	;FIRST POWER OF 2 > THAN SORT TABLE SIZE
	DEFIN CRFTAB,1	;ADDRESS OF FIRST ENTRY IN SORT TABLE
	DEFIN CRFTEN,1	;NUMBER OF USED ENTRIES IN SORT TABLE
	DEFIN CRFCUR,1	;NUMBER OF CURRENT OUTPUT FILE (SF1=0, ETC.
	DEFIN CRFSIZ,1	;NUMBER OF ENTRIES IN SORT TABLE
	DEFIN CRFNE,1	;NUMBER OF EMPTY SORT FILES

	DEFIN END.PC,1	;SAVED PC AT END OF RESIDENT
	DEFIN BLKTYP,1	;BLOCK TYPE FOR 'PUTDAT'
	DEFIN SAVBIN,1	;PLACE TO SAVE BINDEV IF OVR FILE WRITTEN
	DEFIN NM.PC,1	;VALUE AND LOCATION OF NAMTAB
	DEFIN DT.PC,1	;VALUE AND LOCATION OF DATAB
	DEFIN PR.PC,1	;VALUE AND LOCATION OF PROTAB
	DEFIN %ES.PC,1	;END OF SYMBOL TABLE
	DEFIN ACSFLG,1	;ALTERNATE CODE SET FLAG
	DEFIN INDFLG,1	;NEXT INST TO BE INDENTED TO SHOW THAT THIS ONE SKIPS

;USED ONLY BY PHASE O

	SETVAL OBEG,.;
	DEFIN IPTAB0,1		;ALWAYS HOLDS A 0
	DEFIN IPTAB,NBACK*2	;# INSTRUCTIONS BEFORE CURRENT ONE
	DEFIN IPCUR,NWINDO	;"CURRENT INSTRUCTION" IS
				; SOMEWHERE IN THIS BLOCK
	DEFIN IPAFT,NFRONT	;MIN # INSTRUCTIONS AFTER CURRENT ONE
	DEFIN IPTAB1,1		;ALWAYS HOLDS A 0
	DEFIN INSTBF,400	;BUFFER OF AS2 FILE - POINTED TO BY IPTAB
	SETVAL	INSEND,.-1	;LAST LOC TO USE IN INSTBF
	DEFIN GCBUF,GCLEN	;GARBAGE COLLECT BUFFER
	DEFIN NXTIP,1		;POINTS TO NEXT PLACE TO PUT AN INSTRUCTION
	DEFIN THISIP,1		;POINTS TO LAST INSTRUCTION WE PUT IN BUFFER
	DEFIN BIPTR,1		;POINTS TO "END" OF INSTBF (LAST UNUSED SPOT)
	DEFIN WANTG1,1		;TAG # WE WANT (PUT A NEW TAG AT TAG+1)
	DEFIN NPCIN,1		;NUMBER OF PC LOCATIONS IN IPTAB AT THIS MOMENT
	DEFIN OTEMP,4		;SOME TEMP LOCS FOR PMATCH TO USE
	DEFIN SAWENT,1		;-1=COBOLO SAW THE MAIN ENTRY POINT

IFN DEBUG,<
	DEFIN TAGLFT,1		;NO. OF TAGS STILL TO OUTPUT
	DEFIN TAGCOL,3		;AOBJN POINTERS TO COLUMNS
	DEFIN TAGOFF,3		;OFFSET TO ROWS
>

IFN TOPS20,<
	DEFIN SAV1JF,1		;SAVE TRUE JFN FOR AS1 FILE
>

	SETVAL	OEND,.-1;

	HIGHF==.

	.XXLST==HIGHE		;ASSUME "E" IS BIGGEST LOWSEG
	IFL <.XXLST-HIGHF>,.XXLST==HIGHF ;NO, "F" IS
	IFL <.XXLST-HIGHD>,.XXLST==HIGHD ;NO, "D" IS
	IFL <.XXLST-HIGHC>,.XXLST==HIGHC ;NO, "C" IS
	SETVAL	LSTCLR,.XXLST-1	;SET LAST LOCATION TO CLEAR ON STARTUP

	END