Google
 

Trailing-Edge - PDP-10 Archives - ap-c800d-sb - impure.mac
There are 23 other files named impure.mac in the archive. Click here to see a list.
; UPD ID= 2022 on 8/24/79 at 1:18 PM by <NIXON>                         
TITLE	IMPURE FOR COBOL V12A
SUBTTL	DEFINITION OF IMPURE AREA		/CAM



;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, 1979 BY DIGITAL EQUIPMENT CORPORATION


	SEARCH	P
	%%P==:%%P
	STRING==:STRING
	MCS==:MCS
	TCS==:TCS
	DBMS4==:DBMS4
	DBMS==:DBMS
	DEBUG==:DEBUG

;EDITS
;NAME	DATE		COMMENTS

;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 (UNDER DBMS4 SWIT) 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.

IFE DEBUG,<
	DEFIN GETLOD,^D18-1	;THE LOAD ROUTINE
	DEFIN DDTSTP,1		;(JRST @GETFST)
	>
IFN DEBUG,<
	DEFIN GETLOD,^D18	;THE LOAD ROUTINE
	DDTSTP=:.		;PLACE FOR BREAKPOINT AFTER LOADING SEGMT
	JRST	@GETFST
	>
	DEFIN GETFNM,6		;THE LOAD PARAMETERS
IFE TOPS20,<
	DEFIN GETPTH,9		;ARG FOR LOAD PATH TO SFD
>
	DEFIN GETFST,1		;STARTING ADDRESS INCREMENT
	DEFIN CANTGO,6		;ERROR ROUTINE FOR "REENT" COMMAND

	GETEND=:.-1


;*******************************************************************
	SETVAL MAXSUB,3	;MAXIMUM NUMBER OF SUBSCRIPTS ALLOWED
;*******************************************************************
;WORKING STORAGE

	DEFIN COMBH,3;		;BUFFER HEADER IF COMMANDS FROM DISK OR TMPCOR

	DEFIN PPLIST,^D80;	;[%316] ADDED 20 WORDS -- PUSH-DOWN LIST
	SETVAL PPSIZE,PPLIST-.

	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)
	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
	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;
	SETVAL %KILLA,1;
	SETVAL %KILLB,2;
	SETVAL %KILLC,4;
	SETVAL %KILLD,10;
	SETVAL %KILLE,20;
	SETVAL %KILLF,40;
	SETVAL %KILLG,100;
	%KILL=:%KILLA!%KILLB!%KILLC!%KILLD!%KILLE!%KILLF!%KILLG
	SETVAL %KILFA,200;
	SETVAL %KILFB,400;
	SETVAL %KILFC,1000;
	SETVAL %KILFD,2000;
	SETVAL %KILFE,4000;
	SETVAL %KILFF,10000;
	SETVAL %KILFG,20000;
	DEFIN IMPAT.,24		;FOR PATCHING
	>

;LOCATIONS USED BY "KILL"
	DEFIN KILLAC,20;		;SAVE AC'S FOR KILL
	DEFIN KBHO,3;		;BUFFER HEADER FOR DUMP OUTPUT
	DEFIN KBHI,3;		;BUFFER HEADER FOR SCRATCH INPUT
	DEFIN KILLPL,20;	;PUSH-DOWN LIST
	DEFIN KBUFI,0;		;START OF INPUT BUFFER
	SETVAL KDATA,KBUFI+406	;HOLDS A PAGE OF DATA


;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 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 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 DECLR.,1		; [324] IF NON-ZERO PROGRAM HAS DECLARITIVES


	DEFIN RPWERR,1		;[335] IF NON-ZERO FATAL ERROR IN REPORT GENERATION
	DEFIN HDRPAG,1		;PAGE NUMBER FOR LISTING
	DEFIN ARGSTR,1
IFN MCS!TCS!STRING,<
	DEFIN	STRSAV,7	;TEMP STORAGE FOR STRING SUBSCPT STUFF
	DEFIN	M.IARG,1	;ADDR OF ARG LIST FOR MCS INIT ROUTINE
	DEFIN	M.ARG1,1	;PTR TO ARG1
	DEFIN	M.ARG2,1
	DEFIN	M.ARG3,1
	DEFIN	M.ARG4,1
	DEFIN	M.ARG5,1
	DEFIN	M.AFLG,1	;FLAG WORD FOR SEND GENERATOR
	>
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 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 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
IFN TOPS20,<
	DEFIN RENSW,1		;-1 IF /R SEEN ON TOPS-20
				; GIVES 2-SEG CODE BUT NON-SHAREABLE OTS
>
	DEFIN INDELC,1		;# INSTRUCTIONS DELETED BY PHASE O
	DEFIN TAGDLC,1		;# TAGS DELETED BY O AND G
IFN ANS74,<
	DEFIN RELKEY,1		;-1 IF RELATIVE KEY  CONVERSION REQUIRED
	DEFIN COLSEQ,1		;PROGRAM COLLATING SEQUENCE ALPHABET-NAME PTR
	DEFIN COLNCP,1		;STORES LN,,CP FOR ALPHABET-NAME INCASE OF ERROR
	DEFIN DEBSW,1		;-1 IF DEBUG CODE TO BE GENERATED
	DEFIN FLGSW,1		;-1 IF EXTENSIONS TO ANS-74 ARE TO BE FLAGGED
>
	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)
IFN CSTATS,<
	DEFIN METRSW,1		;-1 if "WITH METER--ING"
>
IFE TOPS20,<
	DEFIN MYPATH,2		;FIRST PART OF DEFAULT PATH
>
	DEFIN MYPPN,1		;LOGGED IN PPN
IFE TOPS20,<
	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), <
		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)

	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

IFN ANS74,<
	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
>
;I/O DATA TABLE

	DEFINE IOLIST (A,C), <
	DEFIN A'DEV,1
	DEFIN A'HDR,2
	DEFIN A'BLK,1
	DEFIN A'BUF,1
	IFE C-1 <DEFIN A'PP,1
		 DEFIN A'SWS,1>
	IFE C-1 <DEFIN A'BH,3>
	IFE C-2 <DEFIN A'BHI,3
		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;


;STORAGE FOR ADDITIONAL FILES

	SETVAL DEVSIZ,7	;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
	SETVAL DEVPP,5	;PROJECT-PROGRAMMER NUMBER
	SETVAL DEVSW,6	;SWITCHES SEEN WHEN SCANNING COMMAND
	SETVAL DEVBH,7	;3-WORD BUFFER CONTROL FOR ONE-WAY DEVICE
	SETVAL DEVBHI,5	;3-WORD BUFFER CONTROL FOR INPUT SIDE
	SETVAL DEVBHO,10;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
OVLAY==.

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

		RELOC OVLAY

	DEFIN SAVELN,1	;"LN" SAVED IN "GETCH"
	DEFIN SAVECP,1	;"CP" SAVED IN "GETCH"
	DEFIN SAVECH,1	;TERMINATING PUNCTUATION OF A WORD
	DEFIN SAVLN1,1	;"LN" SAVED IN "GETWRD"
	DEFIN SAVCP1,1	;"CP" SAVED IN "GETWRD"
	DEFIN SAVSEQ,2;	;SAVE SEQUENCE NUMBER
	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 SRCCOL,1	;INPUT COLUMN (SAME AS INPTCP UNLESS TABS)
	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 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,30	;HOLDS A LITERAL OUT OF "GETWRD"
	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 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 PNTR,1;
	DEFIN TBLOCK,25;
	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;

	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	DB.PPN,1		;WORD TO HOLD PPN IN INVOKE
	DEFIN	DBCNTC,1		;COUNT OF INVOKES IN PHASE C
	DEFIN	DBCNTD,1		;COUNT IF INVOKES PROCESSED IN D
					;[%316] REMOVE OLD OPN,BUF, L/E BLKS
					;[%316] DELETE MISCEL UNNEEDED DCL
	DEFIN	SBUFF1,204		;SCHEMA FILE BUFFER
	DEFIN	DBUFF1,204		;DBMS BUFFER RING
					;[%316] MORE UNNEEDED STUFF
	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.
	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 INVSEE,1		;[%316] SEEN AN INVOKE
	DEFIN ACCSEE,1		;[%316] SEEN AN ACCESS
	IFN DBMS4,<
	DEFIN(SYM.TB,^D31)
	DEFIN(SYMTAB,1)
	>

	;;;	SCHIO REPLACES DMLVIO, V.4 & LATER
	;;;	IT DOES SCHEMA I/O FOR EVERYONE,
	;;;	INCLUDING DBCS, WHICH MEANS IT CAN HAVE NO STAT LOWSEG

      IFE DBMS4,<
	DEFIN	(AAA,^D8)		;FOR OPEND COMPAT

	DEFIN	(E.CNT,1)
	DEFIN	(SAVCC,1)			;DBCSF COMPAT
	DEFIN	(SBUF,1)
	DEFIN	(SSBUF,7)
	DEFIN	(RBUF,^D14)
	DEFIN	(DBUF,^D18)
	DEFIN	(CBUF,7)
	DEFIN	(MBUF,3)
	DEFIN	(OBUF,7)
	DEFIN	(TBUF,^D22)
	DEFIN	(WBUF,1)		;DUMMIES--NOT USED
	DEFIN	(ABUF,1)

	DEFIN	(CURRDBK,^D13)	;FOR SET OF SAME INDEX, CURRENT OF SET
	DEFIN	(NEXTDBK,^D13)	;DITTO FOR NEXT
	DEFIN	(PAGIOWD,2)	;FOR DUMP MODE I/O
	DEFIN	(GETPTR,1)	;PTS INTO BUFFER AT RUNCUR
	DEFIN	(GETTYP,1)	;DITTO BUT RECTYP
	DEFIN	(LRIDX,1)		;LEAST RECENTLY USED IDX

	DEFIN	(ADDBUF,2)
	DEFIN	(USEBUF,2)
	DEFIN	(PAGBUF,2)
	>				;END IFE DBMS4

	;;;	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
      IFE DBMS4,<
	DEFIN(CMNAREA,4)
	DEFIN(SIZAREA,4)
	DEFIN(CURAREA,6)
	DEFIN(FORAREA,3)
	DEFIN(TMPNAM,2)			;FOR DUPLIC SYMBOLS
	DEFIN(DATTYP,2)

	DEFIN(UNWIND,1)			;FOR HANDLING FATAL ERRORS
	DEFIN(SYMDB,1)		;TABLE DESCRIPTOR FOR DUPLIC SYM
	DEFIN(DBS.TB,3)		;HASH VECTOR FO DUPLIC
	DEFIN(FILENM,1)
	DEFIN(DASH,1)
	DEFIN(NUMWRD,1)
	DEFIN(UNDIDX,1)
	DEFIN(PSUNYM,1)
	DEFIN(NULLREC,1)
      >				;END IFE DBMS4
      IFN DBMS4,<
	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
	DEFIN(A.TMP1,1)			;FOR CALLING STRLIB
	DEFIN(A.TMP2,1)			;DITTO
      >			;END IFN DBMS4

	;;;	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)
	IFE DBMS4,<DEFIN(SIZTXT,2)>
	DEFIN(SIZONL,2)
	IFE DBMS4,<DEFIN(CURN2,2)>		;MACRO TABSET PUTS OUT A CURNAM
	DEFIN(ERRPTR,2)
EL.NZ==:.-1
	>

IFN MCS!TCS,<
	DEFIN	IFMSGF,1		;FLAG FOR "IF MESSAGE"
	DEFIN	DATSAV,1		;SAVE AREA FOR LEVEL 1 DATAB PTR
	DEFIN	CSSEEN,1		;NON-ZERO IF COMMUN. SECTION SEEN
	DEFIN	FINITL,1		;"INITIAL" SEEN FLAG
	DEFIN	HLDSAV,1		;SAVE AREA FOR CURHLD
	DEFIN	CDBLK,^D11
	DEFIN	CDINDX,1		;INDEX INTO CD BLK
	DEFIN	FILLNM,1		;ADDRESS OF FILLER IN NAMTAB
	>
	DEFIN	MCSCTR,1		;NUMBER OF ARGS FOR SEND
IFN ANS74,<
	DEFIN	$LFPTR,1		;DBP TO EOL CHAR IN PUTCPY
	DEFIN	NOIDHY,1		;-1 IF NO HYPHEN CONT. IN ID DIV.
>
;THESE ARE FOR COBOL-74 COPY SYNTAX
	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	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	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

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

	RELOC HIGHB

	IFN RPW,<
	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 LOACTION OF REPORT WRITER DATA
	>	; IFN RPW
	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,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
IFN ANS74,<
	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 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

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

	RELOC HIGHB

	DEFIN IFLVL,1;
	DEFIN SPFLVL,1;
	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 NSBSC1,1;
	DEFIN SBSCR1,MAXSUB*4;
	DEFIN NSBSC2,1;
	DEFIN SBSCR2,MAXSUB*4;
	DEFIN NSBSC3,1;
	DEFIN SBSCR3,MAXSUB*4;
	DEFIN CORRSP,^D100;
	DEFIN MVARY,1;
	DEFIN NVARY,1;
	DEFIN VARBLK,^D135;	;[222] SIZE WAS ^D81
	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	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
IFN ANS74,<
	DEFIN	SVINSP,2	;HOLD DATA ITEM ON TYPE 3 INSPECT
	DEFIN	SVINSO,1	; OP CODE FOR INSPECT TALLYING/ REPLACING
	DEFIN	SVDIV,2		;HOLD DATA ITEM FOR DIVIDE SERIES
>
	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	PERLN,1		;DIDN'T SEE WHEN-- STORE LN AND CP INCASE
	DEFIN	PERCP,1		; NEXT THING IS WHEN

	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 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,MAXSUB*4+4	;TO SAVE OPERANDS WHEN "READ INTO" SEEN
	DEFIN EINTR,2	; INTO FOR RPWGEN [245]
	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
	SETVAL ESAVSB,ESAVES+EFLAGX+1;
	DEFIN ESAVER,EFLAGX+1	;TO HOLD "B" PARAMETER DURING "RESULT"
	DEFIN ESAVMA,2*EFLAGX+2	;TO SAVE PARAMETERS DURING MOVES
	SETVAL ESAVMB,ESAVMA+EFLAGX+1;
	DEFIN ESAVRW,EFLAGX+1	;TO HOLD 'B' PARAM FOR RPW
	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 AINTEM,1	;-1 IF ESAVTT HAS 'A' PARAMETERS FOR MOVE
	DEFIN SAVEPP,1	;TO HOLD PUSHDOWN POINTER AT START OF EXPRESSION
	DEFIN ELITLO,1	;LOW-ORDER WORD OF A 2-WORD LITERAL
	DEFIN ELITHI,1	;HI-ORDER WORD  "      "       "
	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 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
IFN CSTATS,<
	DEFIN NACMP,1	;SET TO -1 IF NOT ALL SUBSCRIPTS ARE COMP
>
;; 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 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"
; 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
IFN ANS74,<
	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 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 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	ENDCLR,1	;[435] IF -1 END OF DECLARITIVES SEEN
	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

	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
IFN ANS74,<
	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	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
	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 ESVMBX,ESAVMB+EFLAGX;
	SETVAL ESVSCX,2*EFLAGX+ESAVSC
	SETVAL ESAVTX,ESAVTT+EFLAGX;


;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 C3ZERO,1	;RUNTIME ADDRESS OF A COMP-3 ZERO PIC S9(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
IFN ANS74,<
	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	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
	DEFIN HEADR2,7		;HEADER FOR SECOND LINE OF LISTING
	DEFIN COUNTW,1		;COUNT OF WARNING DIAGS
	DEFIN COUNTF,1		;COUNT OF FATAL DIAGS
	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


;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,1		;MANTISSA OF FLOATING POINT CONSTANT
	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;
	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
>

	SETVAL	OEND,.-1;

	HIGHF==.


	END