Google
 

Trailing-Edge - PDP-10 Archives - BB-Z759A-SM - cobol-source/tables.mac
There are 21 other files named tables.mac in the archive. Click here to see a list.
; UPD ID= 1224 on 5/28/83 at 3:31 PM by INGERSOLL                       
UNIVERSAL	TABLES FOR COBOL COMPILER AND OTS
SUBTTL	TABLE DEFINITIONS

	SEARCH COPYRT
	SALL

;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	INTERM

.DIRECTIVE .NOBIN

;EDITS
;NAME	DATE		COMMENTS

;SMI	29-Jan-82	[1451] Increase size of RPWTAB RD address.
;RJD	15-Jul-82	[1373] Add symbol RW.RHL.
;JEH	30-Mar-82	[1346] Expand DA.DCR to hold larger tags, shorten DA.KEY
;				to hold up to 255 keys.

;V12B**************
;DMN	13-NOV-79	      ADD THE TABLES DESCRIPTIONS FROM OLD DOCUMENTATION
;DMN	 6-MAR-79	[651] ADD SYMBOL RW.RST WHICH IS BOTH RW.RSF AND RW.RSI

;V10***************
;ACK	12-APR-75	CREATION
;******************
COMMENT	\

	THIS FILE CONTAINS THE DEFINITIONS OF THE FIELDS OF THE TABLES
USED BY THE COBOL COMPILER AND OTHER PARTS OF THE COBOL SYSTEM.  EACH
TABLE IS DEFINED AS ONE OR MORE MACROS AND EACH FIELD IN THE TABLE IS
DEFINED AS A MACRO CALL.

TABLE MACROS:

	THE FIRST TWO CHARACTERS OF THE MACRO NAME IDENTIFY THE TABLE.
EG. FI IS THE FILE TABLE, DA IS DATAB, ETC.  THE THIRD THROUGH FIFTH
CHARACTERS ARE EITHER "TB." OR "TB%".  THE SIXTH CHARACTER IDENTIFIES
WHERE THE TABLE OCCURS.
	TABLE MACRO NAMES WHOSE THIRD THROUGH FIFTH CHARACTERS ARE
"TB%" XLIST THE TABLE AND THOSE WHOSE THIRD THROUGH FIFTH CHARACTERS
ARE "TB." DO NOT.  TABLE MACRO NAMES WHOSE SIXTH CHARACTER IS "A", "B"
OR "C" ARE COMPILER TABLES, THOSE WHOSE SIXTH CHARACTER IS "R" ARE
TABLES IN THE REL FILE AND THOSE WHOSE SIXTH CHARACTER IS "O" ARE
OBJECT TIME TABLES.  EG. FITB.C DESCRIBES THE FILE TABLE DURING
COMPILATION, FITB.R DESCRIBES THE FILE TABLE IN THE REL FILE AND FITB.O
DESCRIBES THE OBJECT TIME FILE TABLE.
	EACH TABLE CONSISTS OF A SERIES OF MACRO CALLS TO MACROS WHICH
ARE ALSO DEFINED IN THIS MODULE.  THESE MAY BE REDEFINED IN THE MODULES
WHICH USE THIS MODULE IF NECESSARY.
	THE MACROS USED IN THE TABLE MACROS ARE DESCRIBED BELOW:

I.	D.PNTR	<TABLE NAME>,<TABLE ID>

	WHERE <TABLE NAME> IS A TABLE NAME (FOR DOCUMENTATION ONLY) AND
	<TABLE ID> IS A TWO CHARACTER TABLE ID.

	THIS MACRO IS USED TO DEFINE THE FOLLOWING THREE MACROS:
II.	<TABLE ID>.ITM	<FIELD ID>,<WORD NO>,<FIRST BIT>,<LAST BIT>

	WHERE <FIELD ID> IS A THREE CHARACTER FIELD NAME, <WORD NO> IS
	THE WORD IN WHICH THE FIELD OCCURS (1 ORIGN INDEXING IN DECIMAL),
	<FIRST BIT> IS THE FIRST BIT OF THE FIELD (DECIMAL) AND <LAST BIT>
	IS THE LAST BIT OF THE FIELD (DECIMAL).

	THIS MACRO WILL GENERATE A BYTE POINTER, INDEXED BY TA, AT
	(GLOBAL) LOCATION <TABLE ID>.<FIELD ID>.

III.	<TABLE ID>.FLG	<FIELD ID>,<WORD NO>,<BIT NO>

	WHERE <BIT NO> IS THE BIT IN WHICH THE FLAG OCCURS.

	THIS MACRO WILL GENERATE A BYTE POINTER, INDEXED BY TA, AT
	(GLOBAL) LOACTION <TABLE ID>.<FIELD ID>.

IV.	<TABLE ID>.SME	<FIELD 1>,<FIELD 2>

	WHERE <FIELD 1> AND <FIELD 2> ARE FIELD OR FLAG NAMES.

	THIS MACRO EQUATES <FIELD 2> TO <FIELD 1>.

NOTES:
	1.	<FIELD 1> MUST BE DEFINED BEFORE BEING USED IN THE
		MACRO <TABLE ID>.SME.
	2.	IF YOU CHANGE A FIELD MAKE SURE IT IS NOT USED AS
		<FIELD 2> IN THE MACRO <TABLE ID>.SME, OTHEWISE
		YOU MAY BE CHANGING SOME OTHER FIELD ALSO.
EXAMPLES:

	1.	D.PNTR	FILTAB,FI;

		DEFINES THE MACROS:

			FI.ITM	ARG1,ARG2,ARG3,ARG4
			FI.FLG	ARG1,ARG2,ARG3
			FI.SME	ARG1,ARG2

	2.	FI.ITM	BLF,18,6,17;

		GENERATES:

			FI.BLF::	POINT	12,17(TA),17

	3.	FI.FLG	ENT,16,8

		GENERATES:

			FI.ENT::	POINT	1,15(TA),8

	4.	FI.SME	SPT,RTC;

		GENERATES:

			FI.SPT==:FI.RTC
RANDOM NOTES:

	THIS MODULE DEFINES, FOR EVERY TABLE DEFINED IN TI, SYMBOLS
OF THE FORM <TABLE ID>%<FIELD ID> WHERE <TABLE ID> IS A TWO CHARACTER
TABLE ID AND <FIELD ID> IS A THREE CHARACTER FIELD ID.  THEREFORE, DO
NOT DEFINE SYMBOLS WHOSE THIRD CHARACTER IS %.
	WHEN ADDING A TABLE TO THIS MODULE DEFINE IT AS A MACRO WHOSE
NAME IS OF THE FORM ??TB.? AND INCLUDE IT IN THE PARAMETER LIST TO
THE MACRO GEN AND A CALL OF THE FORM <??TB,?> TO TH PARAMETER LIST TO
THE MACRO NOLIST.
	SUBTTL	TABLE DESCRIPTION

1.0	GENERAL

	ALL OF THE MAJOR TABLES USED BY THE COBOL COMPILER ARE
	DESCRIBED IN THE FOLLOWING PARAGRAPHS.  THESE TABLES
	RESIDE IN THE IMPURE AREA OF CORE DURING COMPILATION.

	EACH TABLE IS ALLOCATED SOME NOMINAL AMOUNT OF CORE
	DURING THE INITIALIZATION PHASE.  IF MORE CORE IS
	NEEDED FOR A SPECIFIC TABLE DURING COMPILATION, THE
	CORE UUO WILL BE CALLED, AND ALL TABLES IN HIGHER
	LOCATIONS WILL BE MOVED UP.

	THERE IS A LOCATION POINTER IN THE IMPURE AREA FOR EACH
	TABLE.  THIS POINTER HAS THE NEGATIVE OF THE SIZE OF THE
	TABLE IN ITS LEFT HALF, AND THE STARTING ADDRESS OF THE TABLE
	IN ITS RIGHT-HALF.  THIS POINTER WORD ALLOWS THE TABLES
	TO BE MOVED AROUND AS THE CORE ALLOCATION ALGORITHM
	SEES FIT.

1.1	TABLE-LINKS

	CERTAIN ENTRIES IN THE TABLE ARE CALLED "TABLE-LINKS".
	THESE ARE 18-BIT FIELDS CONTAINING:

	     BITS 0-2	TABLE TYPE - 0 FILTAB
				     1 DATAB
				     2 CONTAB
				     3 LITAB
				     4 PROTAB
				     5 EXTAB
				     6 VALTAB
				     7 MNETAB

	     BITS 3-17 ADDRESS OF A TABLE ENTRY, RELATIVE
		       TO THE BEGINNING OF THAT TABLE.


	OTHER TABLES:

		NAMTAB
		EOPTAB
		SECTAB
		FLOTAB
		CPYTAB
		HLDTAB
		RPWTAB
		USETAB
		DBDTAB
		CDTAB
		AKTTAB
		DEBTAB
		ALTAB
		RENTAB
		TAGTAB
		RESTAB
		TEMTAB
		PRGTAB
		CRFTAB
		RCOTAB
2.	NAMTAB  -  NAME TABLE

2.1	USED BY:	PHASES B,C,D,F,G
	ENTRY SIZE:	3 OR 6 WORDS

2.2	CONTENTS

	THIS TABLE CONTAINS INFORMATION ABOUT ALL WORDS FOUND
	IN THE SOURCE-FILE.  IT DOES NOT INCLUDE ENTRIES FOR
	LITERALS OR PICTURES.

2.3	SEARCH TECHNIQUE

	A DESCRIPTION OF THE SEARCH TECHNIQUE CAN BE FOUND IN
		THE PROGRAM "TRYNAM".

2.4	DETAILED DESCRIPTION

	WORD 1:
		BITS 0-1	ALWAYS 00 TO IDENTIFY THE START
				OF AN ENTRY.

		BIT 2		SET TO A 1 IF THIS IS A COBOL
				RESERVED WORD.

		BITS 3-17	IF THIS IS A RESERVED WORD, THIS FIELD CONTAINS
				A VALUE (SEE P.MAC FOR A COMPLETE LIST OF VALUES).

		BITS 18-20	IF NOT A RESERVED WORD, THIS
				DETERMINES THE TYPE OF ITEM
				(SEE 1.1).

	  (I.E., BITS 18-35 ARE A TABLE LINK)


	     WORDS 2-N:	THE WORD, IN SIXBIT, OVER AS MANY WORDS
			AS NECESSARY. HYPHENS ARE REPRESENTED BY COLONS,
			PERIODS BY SEMI-COLONS. THE WORD IS TERMINATED
			BY THE FIRST CHARACTER HAVING ZEROES IN THE
			HI-ORDER 2 BITS.
3.	FILTAB  -  FILE TABLE

3.1	USED BY:	PHASES B,C,D,E,F,G
	ENTRY SIZE:	26 WORDS

3.2	CONTENTS

	THIS TABLE CONTAINS INFORMATION ABOUT THE FILES SELECTED
	BY THE SOURCE PROGRAM.

3.3	DETAILED DESCRIPTION

	WORD 1:
		BITS 0-2	ALWAYS 0 TO IDENTIFY THE TABLE.

		BITS 3-17	POINTER TO NAMTAB ENTRY FOR THIS
				FILE NAME.

		BITS 18-35	TABLE-LINK TO AN ITEM HAVING
				THE SAME NAME AS THIS FILE.

	WORD 2:
		BITS 0-1	UNUSED

		BITS 2-17	COUNT SPECIFIED IN RERUN

		BITS 18-35	LOCATION OF OBJECT-TIME FILE TABLE


	WORD 3:
		BITS 0-15	THE SIZE OF THE BUFFER FOR THIS
				FILE, IN CHARACTERS.

		BITS 16-28	THE ASSIGNED SOURCE LINE NUMBER
				FOR THE "SELECT" FOR THIS FILE.
				THIS IS USED WHEN DIAGNOSTICS
				ARE PUT OUT.

		BITS 29-35	THE POSITION WITHIN THE SOURCE
				LINE CONTAINING THE FIRST
				CHARACTER OF THE FILE NAME.  THIS
				IS USED IN CONJUNCTION WITH
				BITS 16-28 WHEN DIAGNOSTICS
				ARE PUT OUT.

	WORD 4:
		BITS 0-11	NOT USED

		BITS 12-17	NUMBER OF DEVICES ASSOCIATED
				WITH THIS FILE.

		BITS 18-35	TABLE-LINK TO VALTAB FOR FIRST DEVICE NAME.

	WORD 5:
		BIT 0		UNUSED

		BIT 1		SET IF FIRST RD SEEN FOR THIS FILE

		BIT 2		SET IF MORE THAN ONE REPORT FOR THIS FILE

		BITS 3-4	FILE ACCESS MODE:
				00 - NOT YET DECLARED
				01 - SEQUENTIAL
				10 - RANDOM
				11 - DYNAMIC

		BITS 5-7	EXTERNAL RECORDING MODE:
				00 - SIXBIT
				01 - BINARY
				10 - ASCII
				11 - EBCDIC

		BITS 8-10	INTERNAL RECORDING MODE:
				00 - SIXBIT
				01 - BINARY
				10 - ASCII
				11 - EBCDIC

		BIT 11		CODE CLAUSE SPECIFIED FOR THIS FILE

		BITS 12-17	FILE POSITION IN A MULTI-FILE REEL.

		BITS 18-35	TABLE-LINK TO THE NEXT FILTAB ENTRY.

	WORD 6:
		BITS 0-1	UNUSED

		BITS 2-3	LABELS:
				00 OMITTED
				01 STANDARD
				11 NOT YET DECLARED

		BIT 4		THERE ARE INPUT "OPENS" IN PROCEDURE DIVISION.

		BIT 5		THERE ARE OUTPUT "OPENS" IN PRECEDURE DIVISION.

		BIT 6		THERE ARE I/O "OPENS" IN PROCEDURE DIVISION.

		BIT 7		"WRITE ADVANCING" WAS SEEN IN PROCEDURE DIVISION.

		BIT 8		DEFINED IN AN SD

		BIT 9		DATA RECORDS ARE VARIABLE LENGTH.

		BIT 10		RERUN ON END-OF-REEL

		BIT 11		RERUN ON COUNT

		BIT 12		FD OR SD IS DEFINED

		BIT 13		OPTIONAL FILE

		BIT 14		WRITE POSITIONING

		BIT 15		RMS FILE

		BITS 16-17	ORGANIZATION:
				00 - SEQUENTIAL
				01 - RELATIVE/RANDOM
				10 - INDEX
				11 - NOT YET DECLARED

		BITS 18-35	TABLE-LINK TO THE "ACTUAL KEY"

	WORD 7:
		BITS 0-5	NUMBER OF BUFFERS

		BITS 6-17	NOT USED

		BITS 18-35	TABLE-LINK TO FIRST DATA RECORD.

	WORD 8:
		LH		TABLE-LINK TO AKTTAB
				WHICH IS THE FIRST ALTERNATE KEY
		RH		TABLE-LINK TO ANOTHER FILE TABLE WHICH
				IS IN A MULTI-FILE CLAUSE WITH THIS FILE.

	WORD 9:  LH		TABLE-LINK TO THE VALUE-OF-IDENTIFICATION.
		 RH		TABLE-LINK TO THE VALUE-OF-DATE-WRITTEN.

	WORD 10: LH		SAME AREA LINK OR SAME BUFFER AREA LINK
		 RH		ERROR USE
		
	WORD 11: LH		TABLE-LINK TO A FILE SHARING THE SAME RECORD AREA.
		 RH		LINAGE-COUNTER POINTER

	WORD 12: LH		LINAGE LINES PER PAGE
		 RH		LINAGE WITH FOOTING AT

	WORD 13: LH		LINAGE LINES AT TOP
		 RH		LINES AT BOTTOM

	WORD 14: LH		USE ON DEBUGGING FILTAB
		 RH		LINAGE-COUNTER INITIALIZATION ROUTINE

	WORD 15:
		LH		MINIMUM DATA RECORD SIZE IN CHARACTERS
		RH		MAXIMUM DATA RECORD SIZE IN CHARACTERS

	WORD 16: BIT 0		DATA RECORDS CLAUSE APPEARED IN FD OR SD
		 BIT 1		RH CONTAINS RECORD AREA ADDRESS

		 BIT 2		RECORDING MODE DECLARED

		 BITS 3-5	RECORDING DENSITY:
				000 - NOT YET DECLARED
				001 - 200 BPI
				010 - 556 BPI
				011 - 800 BPI
				100 - 1600 BPI
				101 - 6250 BPI

		 BITS 6-7	RECORDING PARITY:
				00 - NOT YET DECLARED
				01 - ODD
				10 - EVEN

		 BIT 8		USE AFTER ERROR ON OPEN

		 BIT 9		DEFERRED OUTPUT ISAM

		 BIT 10		BYTE MODE

		 BIT 11		CHECKPOINT OUTPUT

		 BIT 12		ALTERNATE KEYS DEFINED FOR THIS FILE

		 BIT 13		ERROR OCCURED WHILE BUILDING ISAM KEY INFO

		 BIT 14		RECORD IS VARYING SEEN

		 BITS 13-17	NOT USED

		 BITS 18-35	BASE ADDRESS OF RECORD AREA

	WORD 17: LH		LINK TO SYMBOLIC KEY
		 RH		LINK TO RECORD KEY

	WORD 18:
		 BIT 0		BITS 16-35 POINT TO [RECORD]

		 BITS 1-3	NOT USED

		 BITS 4-15	BLOCKING FACTOR

		 BITS 16-35	LN & CP OF "SAME [RECORD] AREA" FOR THIS FILE
				USED FOR FIPS FLAGGER DIAGNOSTIC MESSAGES

	WORD 19: LH		LINK TO PROJECT-PROGRAMMER NUMBER
		 RH		LINK TO FIRST RD ENTRY

	WORD 20:
		BITS 0-8	OWNER ACCESS BITS

		BITS 9-17	OTHER ACCESS BITS

		BITS 18-35	COUNT OF RECORDS RETAINED

	WORDS 21-24
		ARE LINKS TO THE ITEMS GIVEN IN THE "FILE STATUS" CLAUSE.
		(VALUE OF ID LINK DOES NOT POINT TO THE VALUE OF ID BUT
		POINTS TO THE ITEM WHICH IS TO RECEIVE THE VALUE OF ID
		WHEN AN ERROR OCCURS.)

	WORD 21:
		LH		FILE STATUS LINK
		RH		ERROR NUMBER LINK

	WORD 22:
		LH		ACTION CODE
		RH		VALUE OF ID LINK

	WORD 23:
		LH		BLOCK NUMBER LINK
		RH		RECORD NUMBER LINK

	WORD 24:
		LH		FILE NAME LINK
		RH		FILE TABLE LINK

	WORD 25:
		LH:		CONVERT RELATIVE KEY BEFORE
		RH:		CONVERT RELATIVE KEY AFTER

	WORD 26:
		BITS 0-7	CHECKPOINT EVERY N RECORDS COUNT
		BITS 8-15	SIZE OF VALUE OF ID
		BITS 16-35	LN & CP OF THE "FD" FOR THIS FILE
				USED FOR DIAGNOSTIC MESSAGES

	WORD 27:
		BITS 0-17	NUMBER OF THIS FILE
		BITS 18-35	LINK TO VALUE OF PROTECTION CODE

	WORDS 28:
		BITS 0-17	TABLE-LINK TO DEPENDING DATA-ITEM
		BITS 18-35	LINK TO PADDING CHARACTER

	WORD 29:
		LH		%N TAG OF ADDRESS OF LIST OF KEY SPECIFICATIONS
				FOR RMS INDEXED FILES

		RH		VARIOUS FLAGS FOR RMS FILES
		BITS 18-21	SMU Lock bits for Self. Set at Run Time.
		BITS 22-25	SMU Lock bits for Other. Set at Run Time.
		BIT 34		WRITE / NO-WRITE FOR <CR> FOR ASCII STM
		BIT 35		APPLY BASIC-LOCKING FLAG
4.	DATAB  -  DATA DESCRIPTOR TABLE

4.1	USED BY:	PHASES C,D,E,F,G
	ENTRY SIZE:	7+ WORDS

4.2	CONTENTS

	DATAB CONTAINS INFORMATION ABOUT EACH DATA DIVISION ITEM
	DEFINED BY THE USER, OTHER THAN CONDITION-NAMES.

4.3	DETAILED DESCRIPTION

	WORD1:
		BITS 0-2	ALWAYS 1 TO IDENTIFY THE TABLE.

		BITS 3-17	POINTER TO NAMTAB ENTRY FOR THIS ITEM

		BITS 18-35	TABLE-LINK TO AN ITEM
				HAVING THE SAME NAME AS THIS ITEM.

	WORD 2:	LH		TABLE-LINK TO ANY VALUE
				(OR IF ITEM IN LINKAGE SECTION,
				USED FOR ADDR OF %PARAM LOC TO
				TO HOLD POINTER)

		RH		THIS IS THE ASSIGNED CORE
				LOCATION FOR THIS ITEM.

	WORD3:	LH		TABLE-LINK TO THE GROUP ITEM
				CONTAINING THIS ITEM ("FATHER"),
				OR TABLE-LINK TO NEXT ITEM WITH
				THE SAME LEVEL NUMBER ("BROTHER").
				SEE WORD 5, BIT 8.

		RH		TABLE-LINK TO FIRST ITEM OF A
				HIGHER LEVEL NUMBER ("SON").

	WORD4:
		BITS 0-5	LEVEL NUMBER

		BITS 6-11	BYTE-RESIDUE - IF THIS IS A
				DISPLAY ITEM, NUMBER USED TO
				BUILD A BYTE POINTER TO THIS ITEM

		BIT 12		ITEM IS A LINE-COUNTER OR PAGE COUNTER

		BIT 13		LINKAGE SECTION ITEM REFERENCED
				ENTRY STATEMENT OR PD HEADER

		BITS 14-17	USAGE:
				0	NOT SPECIFIED
				1	DISPLAY-6
				2	DISPLAY-7
				3	DISPLAY-9
				4	1 WORD COMP
				5	2 WORD COMP
				6	COMP-1
				7	INDEX
				8	COMP-3
				9	COMP-2

		BITS 18-35	LINK TO ASSOCIATED RPWTAB ENTRY

	WORD 5:
		BITS 0-1	CLASS:
				00 - ALPHANUMERIC
				01 - ALPHABETIC
				10 - NUMERIC
				11 - NOT YET DECLARED

		BIT 2		SYNCHRONIZED LEFT

		BIT 3		SYNCHRONIZED RIGHT

		BIT 4		SIGNED

		BIT 5		BLANK WHEN ZERO

		BIT 6		THIS ITEM MUST BE SUBSCRIPTED OR INDEXED 

		BIT 7		EDITED ITEM

		BIT 8		BROTHER (0) OR FATHER (1) LINK IN WORD 3.

		BIT 9		ITEM IS DEFINED

		BIT 10		ITEM IS REFERENCED BY 'SUM' CLAUSE

		BIT 11		ITEM HAS A FAKE NAME

		BIT 12		ITEM IS REFERENCED BY 'SOURCE' CLAUSE IN
				'TYPE DETAIL' REPORT-GROUP


		BIT 13		ITEM IS A SUM-COUNTER

		BIT 14		JUSTIFIED LEFT (0) OR RIGHT (1)

		BIT 15		SEPARATE SIGN

		BIT 16		LEADING SIGN

		BIT 17		DEPENDING ITEM AT LOWER LEVEL

		BIT 18		ERROR DETECTED IN DATA DIVISION

		BIT 19		THIS IS AN INDEX-NAME

		BIT 20		THIS ITEM REDEFINES ANOTHER

		BIT 21		PICTURE SEEN

		BIT 22		ITEM DEFINED IN FILE SECTION

		BIT 23		THIS APPEARS IN A DATA RECORDS CLAUSE

		BIT 24		DEBUGGING ON DATA-NAME

		BIT 25		THERE ARE SYNCS AT LOWER LEVEL

		BIT 26		PICTURE WORDS ALLOCATED

		BIT 27		VALUE AT HIGHER LEVEL

		BIT 28		REDEFINES AT HIGHER LEVEL

		BIT 29		LINKAGE SECTION ITEM

		BIT 30		DECIMAL POINT IS TO RIGHT OF
				WORD BOUNDARY (E.G. PICTURE 9PPPV)

		BITS 31-35	NUMBER OF DECIMAL PLACES

	WORD 6:
		BITS 0-17	EXTERNAL SIZE
		BITS 18-35	INTERNAL SIZE

	WORD 7:
		BITS 0-14	NUMBER OF OCCURRENCES
		BIT 15		OCCURS CLAUSE IS AT THIS ITEM
		BITS 16-28	LINE NUMBER IN SOURCE
		BITS 29-35	CHARACTER POSITION IN SOURCE

	WORD 8: OPTIONAL--USED ONLY IF ITEM IS SUBSCRIPTED OR EDITED.

		LH		LINK TO NEXT HIGHER OCCURENCE LEVEL
		RH		LINK TO DEPENDING ITEM

	WORD 9:	OPTIONAL--USED ONLY IF ITEM IS SUBSCRIPTED OR EDITED.

		BITS 0-9	DEPENDING CONVERSION TAG
		BITS 10-17	NUMBER OF SEARCH KEYS

		RH		ADDR OF 'INDEXED BY' ITEM

	WORDS 10-13:  OPTIONAL - USED ONLY IF THE ITEM IS EDITED.
			(OR SEARCH KEYS EXIST)

		BITS 0-5	THE PICTURE SIGN CHARACTER, IN SIXBIT

		BITS 6-11	THE PICTURE FLOAT OR SUPPRESSION
				CHARACTER, IN SIXBIT.

		THE REMAINDER OF THE FIELD IS COMPOSED OF 4-BIT BYTES
		TO BE USED BY THE PICTURE EDITING ROUTINE AT OBJECT
		TIME.  THE VALUES FOR THESE BYTES ARE:
				00 - INSERT AN ALPHA CHARACTER (X OR A)
				01 - INSERT A NUMERIC CHARACTER (9)
				02 - SUPPRESS (Z OR *)
				03 - FLOAT ($,+,-)
				04 - INSERT A COMMA
				05 - INSERT A SPACE (B)
				06 - INSERT A ZERO (0)
				07 - INSERT A CURRENCY SIGN
				10 - INSERT A SIGN (+,-)
				11 - INSERT A DECIMAL POINT
				12 - INSERT "CR"
				13 - INSERT "DB"
				14 - "V" IMPLIED DECIMAL POINT
				15 - INSERT "/"
				16 - START OF REPEAT COUNT.
					THE NEXT BYTE CONTAINS THE NUMBER
					OF BYTES WHICH CONTAIN THE REPEAT COUNT,
					FOLLOWED BY THE BYTE TO BE REPEATED.
				17 - TERMINATE EDITING


	WORDS 14-N: OPTIONAL--USED IF SEARCH KEYS EXIST--
		ONE PER SEARCH KEY:

		BIT 0		0=ASCENDING KEY, 1=DESCENDING

		BIT 18-35	DATAB LINK TO SEARCH KEY
5.	CONTAB - CONDITION-NAME TABLE

5.1	USED BY:	PHASES C,D,E
	ENTRY SIZE:	VARIABLE


5.2	CONTENTS

	CONTAB CONTAINS INFORMATION ABOUT 88-LEVEL ITEMS IN THE
	DATA DIVISION

5.3	DETAILED DESCRIPTION

	WORD 1:

		BITS 0-2	ALWAYS 2 TO IDENTIFY THE TABLE

		BITS 3-17	POINTER TO NAMTAB ENTRY FOR THIS ITEM

		BITS 18-35	TABLE-LINK TO ANOTHER ITEM WITH THE SAME NAME

	WORD 2:

		BITS 0-17	TABLE-LINK TO THE DATAB ITEM FOR
				WHICH THIS ITEM IS A CONDITION-NAME

		BITS 18-35	THE NUMBER OF LITERAL ENTRIES

	THE REMAINING WORDS CONTAIN POINTERS TO THE VALUE OR VALUES FOR THE
	CONDITIONS.  THE FIRST WORD OF EACH VALUE ENTRY HAS:

		BIT 0		A 1 INDICATES THAT THIS VALUE IS
				THE FIRST OF A RANGE ("VALUE IS A THRU B").

		BIT 1		THE VALUE IS A FIGURATIVE CONSTANT

		BIT 2		"ALL"

		BITS 3-17	IF THIS IS NOT A FIGURATIVE
				CONSTANT, THIS IS A TAG NUMBER.
				IF THIS IS A FIGURATIVE CONSTANT
				THE BITS HAVE THE FOLLOWING MEANINGS:
				BIT 3 "SPACE", "SPACES"
				BIT 4 "ZERO", "ZEROES", "ZEROS"
				BIT 5 "QUOTE", "QUOTES"
				BIT 6 "HIGH-VALUE", "HIGH-VALUES"
				BIT 7 "LOW-VALUE", "LOW-VALUES"
				BIT 8-17 NOT USED

		(IN PHASE C, THIS IS A LITTAB LINK)

		BITS 18-35	SAME AS 0-17 FOR SECOND PART OF "THRU"
6.	PROTAB - PROCEDURE-NAME DESCRIPTOR TABLE

6.1	USED BY:	PHASES D,E,F,G
	ENTRY SIZE:	5 WORDS

6.2	CONTENTS

	PROTAB CONTAINS INFORMATION ABOUT PARAGRAPH AND SECTION NAMES.

6.3	DETAILED DESCRIPTION

	WORD 1:

		BITS 0-2	ALWAYS 4 TO IDENTIFY THE TABLE

		BITS 3-17	POINTER TO THE NAMTAB ENTRY FOR THIS ITEM

		BITS 18-35	TABLE-LINK TO ANOTHER ITEM WITH THE SAME NAME.

	WORD 2:

		BITS 0-17	IF THIS IS A PARAGRAPH-NAME,
				THIS FIELD IS A TABLE-LINK TO
				THE PROTAB ENTRY CONTAINING THE
				SECTION-NAME FOR THE SECTION CON-
				TAINING THIS PARAGRAPH.
				IF THIS IS A SECTION NAME, THIS
				FIELD CONTAINS THE WORD NUMBER IN
				GENFIL WHICH CONTAINS THE SECNAM
				OPERATOR FOR THE NEXT SECTION; OR
				ZERO IF THIS IS THE LAST SECTION.

		BITS 18-35	THE LOCATION ASSIGNED TO THE FIRST
				INSTRUCTION GENERATED FOR THIS
				PARAGRAPH OR SECTION.

	WORD 3:
		BITS 0-17	PARAMETER ADDRESS FOR ALTER WORD

		BITS 18-24	THE SECTION PRIORITY NUMBER
				(0 IF RESIDENT)

		BIT 25		ITEM IS A SECTION (0) OR PARAGRAPH (1) NAME

		BIT 26		EXIT REQUIRED (REFERENCE IN "THRU"
				CLAUSE OF A "PERFORM")

		BIT 27		ITEM IS DEFINED

		BIT 28		PARAGRAPH IS ALTERABLE

		BIT 29		AN OBJECT OF AN ALTER IS IN THE
				CURRENT SEGMENT

		BIT 30		AN OBJECT OF AN ALTER IS IN
				ANOTHER SEGMENT

		BIT 31		REFERENCED IN THE DECLARATIVES

		BIT 32		ITEM IS IN THE DECLARATIVES

		BIT 33		THIS IS MULTIPLY DEFINED (SEE NOTE 1)

		BIT 34		THIS TERMINATES WITH AN
				UNCONDITIONAL TRANSFER

		BIT 35		THIS SECTION HAS APPEARED AS A SECNAM
				ARGUMENT BEFORE.

	NOTE 1:
		IF BIT 27=0 AND BIT 33=1 (ITEM IS NOT DEFINED AND IS MULTIPLY
		DEFINED) IT MEANS THAT THIS IS A GENERATED PARAGRAPH NAME.

	WORD 4:

		LH		RELATIVE ADDRESS OF AN EXIT WORD

		RH		THIS IS THE RELATIVE ADDRESS OF AN
				ENTRY IN FLOTAB.

	WORD 5:

		LH		ADDRESS OF DEBUG USE PROCEDURE

		RH		SYMBOLIC FIRST ADDRESS  (I.E. TAG NUMBER)

NOTE 2:
	IN COBOLG WHEN PROTAB IS BEING OUTPUT TO REL FILE FOR COBDDT
	WORD 4 IS SET TO THE LINE NUMBER (FROM FLOTAB)
	AND WORD 5 IS NOT OUTPUT.
7.	EXTAB - EXTERNAL-NAME TABLE

7.1	USED BY:	PHASES D,E,F,G
	ENTRY SIZE:	2 WORDS

7.2	CONTENTS

	EXTAB CONTAINS INFORMATION ABOUT NAMES OF EXTERNAL ROUTINES.

7.3	DETAILED DESCRIPTION

	WORD 1:

		BITS 0-2	ALWAYS 5 TO IDENTIFY THE TABLE

		BITS 3-17	POINTER TO NAMTAB ENTRY FOR THIS NAME

		BITS 18-35	TABLE-LINK TO ANOTHER ITEM WITH THE SAME NAME

	WORD 2:

		BIT 0		A 1-BIT IF THE ENTRY IS REFERENCED
				BY A NON-RESIDENT SEGMENT.

		BIT 1		OP-SYS (0) OR USER (1) NAME


		BIT 2		THIS IS THE PROGRAM-ID.

		BIT 3		ENTRY NAME

		BIT 4		REFERENCED BY CALL

		BITS 5-17	NOT USED

		BITS 18-35	LOCATION OF PREVIOUS REFERENCE
				TO THIS ROUTINE (USED AT ASSEMBLY TIME)
				(OR VALUE IF ENTRY POINT OR PROG-ID)
				(OR HLDTAB LINK TO NAME IF CANCELLED)
8.	MNETAB - MNEMONIC-NAME TABLE

8.1	USED BY:	PHASES B,D,E
	ENTRY SIZE:	VARIABLE

8.2	CONTENTS CONTAINS INFORMATION ABOUT MNEMONIC-NAMES FOUND IN
	THE SPECIAL-NAMES PARAGRAPH IN THE ENVIRONMENT DIVISION.

8.3	DETAILED DESCRIPTION

	WORD 1:

		BITS 0-2	ALWAYS 7 TO IDENTIFY THE TABLE

		BITS 3-17	POINTER TO NAMTAB ENTRY FOR THIS ITEM

		BITS 18-35	TABLE-LINK TO ANOTHER ITEM WITH THE SAME NAME.


	WORD 2:

		BIT 0		"SWITCH"

		BIT 1		"SWITCH ON STATUS"

		BIT 2		"SWITCH OFF STATUS"

		BIT 3		"CONSOLE"

		BIT 4		"CHANNEL"

		BIT 5		"CODE" FOR RD ENTRY

		BIT 6		"ALPHABET-NAME"

		BIT 7		"SYMBOLIC CHARACTER"

		BITS 8-17	NOT USED

		BITS 18-35	DEPEND UPON CODE:

		IF SWITCH	BITS 18-29 ARE NOT USED.
				BITS 30-35 CONTAIN SWITCH NUMBER.

		IF CONSOLE	BITS 18-35 ARE NOT USED.

		IF CHANNEL	BITS 18-31 ARE NOT USED.
				BITS 32-35 CONTAIN CHANNEL NUMBER.

		IF RD		BITS 22-35 CONTAINS 2 CHARACERS OF 'CODE'.
			OR	BITS 18-35 CONTAIN LITAB ADDRESS.

		IF ALPHABET-NAME
				BIT 18 = ASCII
				BIT 19 = EBCDIC
				BITS 28-35 = WORDS TO FOLLOW IF LITERAL (VALUES IN WORDS 4 - N).
			OR	BITS 21-35 = OFFSET INTO LITTAB (COBOLE AND LATER)

		IF SYMBOLIC-CHAR BIT 18 = EBCDIC, BITS 27-35 CONTAINS THE SYMBOLIC CHARACTER.

	WORD 3:

		IF SYMBOLIC-CHARACTER
				BITS 16-35 CONTAIN LN AND CP OF SYMBOLIC-CHARACTER.

		IF ALPHABET-NAME
				LHS = LN AND RHS = CP OF ALPHABET-NAME.

	WORD 3 - N:
		IF ALPHABET-NAME IS LITERAL
				LHS = 0, BIT 18 = THRU, BIT 19 = ALSO, BITS 27-35 = VALUE
9.	RESTAB - RESULT TABLE

9.1	USED BY:	PHASE E
	ENTRY SIZE:	2 WORDS

9.2	CONTENTS

	RESTAB CONTAINS INFORMATION ABOUT "RESULT" OPERANDS
	AND ENABLES PHASE E TO GENERATE BETTER CODE.

9.3	DETAILED DESCRIPTION:

	WORD 1:

		BIT 0		RESULT IS TO BE ROUNDED

		BITS 1-17	NOT USED

		BITS 18-35	ABSOLUTE ADDRESS OF AN ENTRY IN EOPTAB

	WORD 2:

		BITS 0-17	NUMBER OF INTEGRAL PLACES IN ITEM

		BITS 18-35	NUMBER OF DECIMAL PLACES IN ITEM
10.	VALTAB - VALUE TABLE

10.1	USED BY:	PHASES B,C,D,E
	ENTRY SIZE:	VARIABLE

10.2	CONTENTS

	DURING PHASES B AND C:
	VALTAB HOLDS THE LITERALS FOUND IN THE "VALUE" CLAUSE
	IN THE DATA DIVISION WHILE A RECORD IS BEING PROCESSED,
	AND OTHER MISCELLANEOUS LITERALS WHILE THEY ARE NEEDED
	(E.G. FILE-LIMITS, VALUE OF ID).  THE TABLE IS CLEARED
	WHEN THE INFORMATION CAN BE WRITTEN OUT ONTO THE ASSEMBLY
	INPUT FILE.

	DURING PHASES D AND E:
	VALTAB HOLDS ANY LITERALS FOUND IN THE PROCEDURE DIVISION
	SYNTAX SCAN. DURING CODE GENERATION THE LITERALS ARE TAKEN
	OUT OF VALTAB AND PLACED INTO LITTAB.

10.3	DETAILED DESCRIPTION

	EACH VALUE IS PLACED IN ONE OR MORE WORDS.  THE FIRST WORD
	HAS THE NUMBER OF CHARACTERS IN BITS 5-13; THE REMAINDER
	OF THAT WORD, AND THE FOLLOWING WORDS, CONTAIN AN ASCII
	STRING.
11.	LITAB - LITERAL TABLE

11.1	USED BY:	PHASES C,E
	ENTRY SIZE:	VARIABLE

11.2	CONTENTS

	LITAB CONTAINS INFORMATION ABOUT LITERALS GENERATED BY
	THE CODE GENERATION PHASE.  AT EACH SEGMENT BREAK, THE
	INFORMATION IS WRITTEN OUT INTO AN ASSEMBLY INPUT FILE,
	AND THE CONTENTS OF THE TABLE ARE FLUSHED.

11.3	DETAILED DESCRIPTION

	EACH ENTRY CONSISTS OF A HEADER WORD FOLLOWED BY WORDS
	CONTAINING THE LITERAL VALUE.


	IN PHASE C, THE HEADER WORD CONTAINS:

		BITS 0-2	NOT USED

		BIT 3		EBCDIC LITERAL

		BIT 4		NON-SIXBIT

		BIT 5		ALL

		BIT 6		NUMERIC

		BIT 7		FIGURATIVE CONSTANT

		BIT 8		NUMERIC LITERAL HAS AN IMBEDDED
				DECIMAL POINT

		BITS 9-17	NUMBER OF CHARACTERS IN THE LITERAL


		BITS 18-35	NUMBER OF WORDS CONTAINING THE LITERAL

	IN PHASE E, THE HEADER WORD CONTAINS:

		LH		A CODE TO DETERMINE TYPE OF CONSTANT:
				1 - XWD
				2 - BYTE POINTER
				3 - ASCII
				4 - SIXBIT
				5 - 1-WORD DECIMAL
				6 - 2-WORD DECIMAL
				7 - FLOATING POINT
				10- OCTAL
				11- EBCDIC
				12- COMP-2

		RH		NUMBER OF WORDS CONTAINING DATA
12.	HLDTAB - HOLD TABLE

12.1	USED BY:	PHASES B,C,E
	ENTRY SIZE:	VARIABLE

12.2	CONTENTS - USED BY SYNTAX SCANNER TO HOLD ASIDE REFERENCES
	TO AS YET UNDEFINED DATA-NAMES (E.G. ACTUAL KEY, FILE-LIMITS).
	  AS OF EDIT 1027, USED BY PHASE E TO STACK OPERANDS
	OF "READ" AND "RETURN" SO "INTO" ITEM CODE CAN BE GENERATED
	IN THE PROPER SEQUENCE.

12.3	DETAILED DESCRIPTION

	WORD 1:	BIT 0		NOT USED
		BITS 1-15	NAMTAB LINK FOR ITEM
		BITS 16-28	LINE POSITION
		BITS 29-35	CHARACTER POSITION

	WORD 2:	BITS 0-8	CODE:	 1 ACTUAL KEY
					 2 VALUE OF IDENTIFICATION
					 3 VALUE OF DATE-WRITTEN
					 4 VALUE OF PROJ-PROG
					 5 LOW FILE-LIMIT
					 6 HIGH FILE-LIMIT
					 7 'DEPENDING' FOR OCCURS
					10 'KEY' FOR OCCURS
					11 'SUM' IDENTIFIER FOR RPWTAB (LH)
					12 'SUM' IDENTIFIER FOR RPWTAB (RH)
					13 'UPON' DATA-NAME FOR RPWTAB
					14 'SUM' COUNTER TO BE ALLOCATED
					15 SYMBOLIC KEY
					16 RECORD KEY
					17 DESC. KEY FOR OCC. DATAB LINK
					20 INDEX FOR DATAB ITEM
					21 DATA NAME WHICH OCCURED IN FILE STATUS CLAUSE.
					22 GROUP INDICATE ITEM WITH VALUE CLAUSE
					23 ALTERNATE RECORD KEY

					24 VALUE OF PROTECTION CODE

		BITS 9-17	NUMBER OF QUALIFIERS

		BITS 18-35	LINK TO SOME TABLE. FOR 1,2,3,4 THIS
					POINTS TO A FILTAB ENTRY.
				FOR 5,6 THIS POINTS TO THE APPROPRIATE
					FILTAB WORD (NOT FIRST WORD)
				FOR 7,10 THIS POINTS TO DATAB ENTRY
				FOR 11,12 THIS POINTS TO APPROPRIATE RPWTAB WORD
				FOR 13 THIS POINTS TO A RPWTAB ENTRY
				FOR 14,22 THIS POINTS TO DATAB ENTRY
				FOR 15,16 THIS POINTS TO FILTAB ENTRY
				FOR 21 THIS POINTS TO A FILTAB ENTRY
					AND THE FILE STATUS FIELDS IN FILTAB
					POINT BACK TO THE HLDTAB ENTRIES.

	WORDS 3-N: (IF NEEDED) HALF WORDS OF NAMTAB LINKS FOR QUALIFIERS.

	USED IN PHASE D TO HOLD NAMES OF CANCELLED PROGRAMS:

		WORD 1:	0

		WORD 2:	BITS 0-8	CODE=100: CANCELLED PROGRAM NAME
			BITS 9-17	NUMBER OF WORDS USED FOR NAME

		WORDS 3-N:	SIXBIT PROGRAM NAME


	USED IN PHASE E FOR "READ" AND "RETURN" STACKING:

		WORD 1: LAST "PTRHLD" ITEM:
			BITS 0-17	FLAGS
			BITS 18-35	POINTER TO LAST HLDTAB ENTRY

		ENTRY FLAGS (DEFINED SYMBOLICALLY IN P.MAC):
			HE%RIN = READ INTO OR RETURN INTO
			HE%VLR = READ OF VARIABLE LENGTH RECORD
			HE%DEB = DEBUGGING CODE

	  THE FOLLOWING ARE USED ONLY IF THERE WAS AN "INTO" ITEM:
		WORDS 2-3:		LARGEST DATA RECORD OPERAND
		WORDS 4-<4+<OPNMAX-1>>:	"INTO" ITEM OPERAND


	   THE NEXT WORD IS USED IS THIS ENTRY IS A "READ..VARIABLE
		LENGTH RECORD":
		WORD N: (RH)		FILE-TABLE POINTER

	   THE NEXT WORD IS USED IF THIS ENTRY HAS DEBUGGING CODE
			INFORMATION:
		WORD N:	DEBUGGING ROUTINE TO CALL

EVALUATE VERB USES HLDTAB IN PHASE E, BUILDING ITS OWN TABLE WITHIN IT
WHICH IS DELETED WHEN THE VERB IS COMPLETE

EVALUATE takes a set of selection subjects and compares them to a
series of sets of selection objects. To do this, the operands describing 
the selection subjects are stored in a table and are later retrieved
and put in EOPTAB so IFGEN can compare them against selection objects.
The table is built within HLDTAB, and deleted when processing is complete.
If the selection subject is an arithmetic expression, the result is in an
accumulator. EVALUATE will move it to a location in %PARAM and adjust its
operand.

HLDTAB		WD 1 [ Nbr of Selection Statements (SS's)
 table		WD 2 [ Nbr of operand words ,, %PARAM offset
		WD 3 - N [ Operand from EOPTAB

		WD N+1 [ Size of entry ,, %PARAM offset

		EVSSTM contains the relative offset of the above
			table in HLDTAB
		EASSAV is used to build the descriptor (word 2)
			before it is placed in table
13.	TAGTAB - GENERATED TAG TABLE

13.1	USED BY:	PHASES E,O,G
	ENTRY SIZE:	1 WORD

13.2	CONTENTS

	TAGTAB CONTAINS THE OBJECT TIME LOCATION FOR EACH
	GENERATED TAG OF THE FORM %NNNNN, IN ORDER BY
	NUMBER.

13.3	DETAILED DESCRIPTION

	BIT 0:	INDIRECT POINTER TO TAGTAB OR PROTAB ENTRY
	BIT 1:	THIS TAG IS CREATED IN PHASE O FOR ANOTHER TAG + 1
	BIT 2:	ANOTHER TAG IS DEFINED AT THIS ONE + 1
	BITS 3-17:	REFERENCE COUNT

	BITS 18-35:	PC FIELD (EITHER A PC OR A "POINTER")

SITUATION		1B0  1B1  1B2  REF COUNT       PC FIELD
---------		---  ---  ---  ---------	-------

NORMAL			0     0    0     3		24
TAG IS %2+1		0     1    0	 3		2
TAG IS %2		1     0    0	 0		2
TAG HAS A %TAG+1 ENTRY  0     0    1	 3		24
TAG IS AT <PARA>	1     0    0	 0		AS.PRO+N
14.	ALTAB - ALTER TABLE

14.1	USED BY:	PHASE E
	ENTRY SIZE:	1 WORD

14.2	CONTENTS

	ALTAB CONTAINS INFORMATION TO AID IN PROCESSING GO'S
	WHICH ARE ALTERED.

	INFORMATION WILL BE WRITTEN OUT ONTO THE IMPURE ASSEMBLY
	INPUT (FOR RESIDENT SEGMENTS), OR NON-RESIDENT ASSEMBLY INPUT
	(FOR NON-RESIDENT SEGMENTS) WHEN A SEGMENT BREAK IS SEEN.

14.3	DETAILED DESCRIPTION

		BIT 0		RH IS PROTAB LINK (0), OR
				SPECIAL TAG (1).

		BITS 1-20	NOT USED

		BITS 21-35	RELATIVE ADDRESS OF PROTAB ENTRY,
				OR SPECIAL TAG NUMBER.
15.	SECTAB - SEGMENT TABLE

15.1	USED BY:	PHASES D,E,G
	ENTRY SIZE:	2 WORDS

15.2	CONTENTS

	SECTAB IS USED FOR TEMPORARY STORAGE DURING PHASE D.
	DURING PHASES E AND G, SECTAB CONTAINS THE OBJECT TIME
	STARTING ADDRESSES FOR CERTAIN TABLES.  THERE IS ONE ENTRY
	FOR EACH SEGMENT; THE FIRST ENTRY IS FOR THE RESIDENT
	SEGMENT, THE REMAINDER FOR EACH NON-RESIDENT SEGMENT.

15.3	DETAILED DESCRIPTION

	WORD 1:
		LH	STARTING ADDRESS FOR LITERALS

		RH	NOT USED

	WORD 2:
		LH	NUMBER OF ALTAB ENTRIES FOR THIS SEGMENT

		RH	STARTING ADDRESS OF ALTER ADDRESS AT OBJECT TIME.
16.	FLOTAB - PROCEDURE DIVISION FLOW TABLE

16.1	USED BY:	PHASES D,E
	ENTRY SIZE:	2 WORDS

16.2	CONTENTS

	FLOTAB IS USED TO ENABLE PHASE D TO RESOLVE UNQUALIFIED
	REFERENCES.

16.3	DETAILED DESCRIPTION

	WORD 1:
		BIT 0	   PROCEDURE NAME DEFINITION

		BIT 1	   ENTRANCE PROCEDURE-NAME FOR A PERFORM

		BIT 2	   EXIT PROCEDURE-NAME FOR A PERFORM

		BIT 3	   SUBJECT OF AN ALTER

		BIT 4	   OBJECT OF AN ALTER

		BIT 5	   OBJECT OF A GO OR GODEP

		BIT 8      BITS 18-35 IS A TAGTAB LINK ( INLINE PERFORM )

		BITS 9-16  NOT USED

		BIT 17	   REFERENCE OCCURED IN DECLARATIVES

		BITS 18-35 PROTAB LINK


	WORD 2:
		BIT 0	   NOT USED

		BITS 1-15  RELATIVE ADDRESS OF NAMTAB ENTRY

		BITS 16-28 LINE NUMBER

		BITS 29-35 CHARACTER POSITION
17.	RPWTAB - REPORT WRITER TABLE

17.1	USED BY:	PHASES C,D,E
	ENTRY SIZE:	VARIABLE

17.2	RPWTAB ENTRY FOR RD

	WORD 1	BIT 0		ALWAYS ZERO TO INDICATE RD
		BIT 1		NOT USED
		BIT 2		0 = NOT DEFINED, 1 = DEFINED BY RD CLAUSE
		BITS 3-17	NAMTAB LINK
		BITS 18-35	'SAME NAME' LINK

	WORD 2	BITS 0-15	LINK TO 'BROTHER' RD ENTRY
		BITS 16-28	LINE NUMBER OF RD NAME
		BITS 29-35	CHARACTER POSITION OF RD NAME

	WORD 3	BITS 0-17	FILTAB LINK TO ASSOCIATED FILE
		BITS 18-35	LINK TO FIRST RPWTAB GROUP ENTRY

	WORD 4	BITS 0-17	DATAB LINK FOR LINE-COUNTER
		BITS 18-35	DATAB LINK FOR PAGE-COUNTER

	WORD 5	BITS 0-8	HEADING LINE NUMBER
		BITS 9-17	FOOTING LINE NUMBER
		BITS 18-26	FIRST DETAIL LINE NUMBER
		BITS 27-35	LAST DETAIL LINE NUMBER

	WORD 6	BITS 0-8	PAGE LIMIT
		BIT 9		THERE IS AN 'INITIATE' FOR THIS RD
		BIT 10		[1373] INDICATES A REPORT HEADING SEEN
		BITS 11-17	[1373] NOT USED
		BITS 18-35	TAG OF RUN-TIME RPWTAB

	WORD 7	LH		TAG OF REPORT HEADER ROUTINE
		RH		TAG OF REPORT-FOOTING ROUTINE

	WORD 8	LH		TAG OF PAGE-HEADING ROUTINE
		RH		TAG OF PAGE-FOOTING ROUTINE

	WORD 9	LH		TAG OF 'GROUP INDICATE' SETUP
		RH		MNEMONIC LINK FOR 'CODE'

	WORD 10	LH		LINK INTO CONTROL IDENTIFIER TABLE
		RH		NUMBER OF DIFFERENT CONTROL IDENTIFIERS

	WORD 11	LH		TAG OF 'BREAK TEST' ROUTINE
		RH		TAG OF 'FINAL BREAK' ROUTINE

	WORD 12 LH		LINK TO FIRST CONTROL IDENTIFIER
		RH		NOT USED

17.3	RPWTAB ENTRIES FOR GROUP AND ELEMENTARY ITEMS

	WORD 1	BIT 0		ALWAYS 1 TO DIFFERENTIATE FROM RD
		BITS 1-2	NOT USED

		BITS 1-17	[1451]LINK TO RD ENTRY
		BITS 18-35	LINK TO ASSOCIATED DATAB ENTRY

	WORD 2	BITS 0-1	'LINE' CODE:	01 NEXT PAGE
						10 INTEGER
						11 PLUS INTEGER
		BITS 2-3	'NEXT' CODE: SAME AS LINE CODE
		BITS 4-5	01 SOURCE
				10 SUM
				11 VALUE
		BITS 6-8	'TYPE' CODE:	1 RH	5 CF
						2 PH	6 PF
						3 CH	7 RF
						4 DE
		BIT 9		RESET ON FINAL
		BIT 10		RESET ON IDENTIFIER
		BIT 11		GROUP INDICATE
		BIT 12		THERE IS A 'GENERATE' FOR THIS GROUP
		BIT 13		'FINAL' CONTROL
		BIT 14		NOT USED
		BIT 15		LINE CLAUSE SEEN AT LOWER LEVEL
		BIT 16		THIS IS REFERENCED BY 'SUM UPON'
		BIT 17		NOT USED
		BITS 18-35	NUMBER OF 'SUM' IDENTIFIERS

	WORD 3	BITS 0-8	'LINE' INTEGER
		BITS 9-17	COLUMN NUMBER
		BITS 18-26	'NEXT' INTEGER
		BITS 27-35	NOT USED

	WORD 4	BITS 0-17	DATAB LINK TO 'RESET' ENTRY
		BITS 18-35	IF SOURCE - HLDTAB LINK, CHANGED
				   TO DATAB LINK IN CLEANC.
				IF SUM -    DATAB LINK TO SUMMATION COUNTER.
				IF VALUE -  VALTAB LINK TO VALUE

	WORD 5	BITS 0-17	RPWTAB LINK TO FIRST 'UPON' TABLE ENTRY
				(IF THIS IS CF).
		BITS 18-35	TAG OF ANY 'USE' PROCEDURE


	WORD 6	BITS 0-17	ADDRESS OF RUNTIME LOCATION TO BE SET TO -1
				IF THIS GROUP IS 'SUPPRESSED'. (%PARAM+N).
		BITS 18-35	NUMBER OF UPON STATEMENTS.

	WORDS 7-20.		OPERAND FOR SOURCE IDENTIFIER (ALLOWS
				FOR 3 SUBSCRIPTS WITH ADDITIVES)

	IMMEDIATELY FOLLOWING A GROUP ENTRY IN RPWTAB ARE HALF-WORDS FOR
SUM-IDENTIFIERS OF THAT GROUP. THEY ARE ZERO UNTIL CLEANC.

17.4	RPWTAB ENTRIES FOR UPON TABLE

	WORD 1:	LH	NOT USED
		RH	DATAB LINK TO UPON DATA ITEM
18.	CDTAB - COMMUNICATION DESCRIPTION TABLE

18.1	USED BY:	PHASES C,D,E
	ENTRY SIZE:	9 WORDS

18.2	CONTENTS -

18.3	DETAILED DESCRIPTION

	WORD 1:		BITS 0-2	0
			BITS 3-17	NAMTAB LINK
			BITS 18-35	SAME NAME LINK

	WORD 2:		BIT 0		0=INPUT CD, 1=OUTPUT
			BIT 1		INITIAL INPUT CD
			BITS 2-15	NOT USED
			BITS 16-28	LINE NUMBER OF CD ENTRY
			BITS 29-35	CHAR POS OF CD ENTRY

	WORD 3:		LH		CD-RECORD LINK
			RH		INPUT:  Q-NAME LINK
					OUTPUT: 0

	WORD 4:		LH		INPUT:  SUB-Q1 LINK
					OUTPUT: 0
			RH		INPUT:  SUB-Q2 LINK
					OUTPUT: 0
	WORD 5:		LH		INPUT:  SUB-Q3 LINK
					OUTPUT: DEST TABLE OCC # LINK
			RH		INPUT:  MESSAGE DATA LINK
					OUTPUT: INDEX NAME LINK

	WORD 6:		LH		INPUT:  MESSAGE TIME LINK
					OUTPUT: MESSAGE CLASS LINK
			RH		INPUT:  SOURCE NAME LINK
					OUTPUT: DESTINATION NAME LINK

	WORD 7:		LH		TEXT LENGTH LINK
			RH		INPUT:  FIND KEY LINK
					OUTPUT: ERROR KEY LINK

	WORD 8:		LH		INPUT:  STATUS KEY LINK
					OUTPUT: 0
			RH		INPUT:  MESSAGE COUNT LINK
					OUTPUT: DESTINATION COUNT LINK

	WORD 9:		LH		FAKE DATAB ENTRY THAT POINTS TO CD-NAME IN NAMTAB

			RH		COBOL-74 DEBUG USE PROCEDURE
19.	USETAB - USE PROCEDURE TABLE

19.1	USED BY:	PHASES D,E
	ENTRY SIZE:	VARIABLE

19.2	CONTENTS -

19.3	DETAILED DESCRIPTION

	WORD 1:	BITS 0-2	UNUSED (ZERO)
		BITS 3-11	CODE:	0 I-O ERROR
					1 OPEN ERROR
					2 LABEL PROCEDURE
					3 REPORT ITEM PROCEDURE
					4 ERROR-STATUS
					5 DEBUG PROCEDURE

		BITS 12-16	UNUSED
		BIT 17		EXTRA WORD FLAG

		RH		PROTAB LINK TO ASSOCIATED SECTION
				IN PHASE E THIS IS THE ACTUAL TAG% TO GO TO

	WORD 2:	BITS 6-17	COUNT OF EXTRA WORDS (INCLUDING THIS ONE)
20.	AKTTAB - ALTERNATE KEY TABLE

20.1	USED BY:	PHASES B,C,D,E
	ENTRY SIZE:	2 WORDS

20.2	CONTENTS

	AKTTAB CONTAINS INFORMATION ABOUT ANY "ALTERNATE RECORD KEYS"

20.3	DETAILED DESCRIPTION

	WORD 1:	LH = LINK TO FILE TABLE
		RH = LINK TO DATAB ENTRY (FILLED IN AT CLEANC)

	WORD 2:	BIT 0 = 1 IF "DUPLICATES" SPECIFIED
21.	DEBTAB - DEBUG TABLE

21.1	USED BY:	PHASES D,E
	ENTRY SIZE:	2 WORDS

21.2	CONTENTS

	DEBTAB CONTAINS INFORMATION ABOUT DEBUG ON DATA-NAME

21.3	DETAILED DESCRIPTION

	WORD 1:		LH		LINK TO DATAB ENTRY

			BIT 18		1 IF "ALL REFERENCES" SEEN
			BITS 19-20	NOT USED
			BITS 21-35	LINK TO USETAB

	WORD 2:	BIT 0			1 IF DEBUG PROCEDURE SHOULD BE INVOKED
		BITS 1-4		NOT USED
		BITS 5-17		LINE NUMBER

		RH			PARAM BASE
22.	RENTAB - RENAMED ITEM TABLE

22.1	USED BY:	PHASES C,F
	ENTRY SIZE:	1 WORD

22.2	CONTENTS

	RENTAB CONTAINS INFORMATION ABOUT RENAMED ITEMS DEFINED IN
	THE FILE SECTION.

	THIS TABLE IS NEEDED SINCE PHASE F HAS TO RELOCATE ALL
	DATA ITEMS (CHANGE DA.LOC) THAT ARE DEFINED IN FILES.
	IT CAN DO A PREORDER TREE TRAVERSAL FROM THE FILE-NAME
	TO CHANGE ALL ITEMS--EXCEPT THE RENAMED ITEMS!

22.3	DETAILED DESCRIPTION

	WORD 1:	LH	DATAB LINK TO 01 ENTRY
		RH	DATAB LINK TO 66 ENTRY (RENAMES ITEM)
23.	EOPTAB - OPERAND TABLE

23.1	USED BY:	PHASE E
	ENTRY SIZE:	2 WORDS

23.2	CONTENTS

	EOPTAB CONTAINS THE OPERANDS FOR THE CURRENT OPERATOR AS
	READ IN FROM THE GENFIL. THESE OPERANDS ARE GENERATED BY
	PHASES B, C, AND D.

23.3	DETAILED DESCRIPTION


23.3.1	OPERATORS

	WORD 1:

	  BIT 0		A 0 TO IDENTIFY THIS AS AN OPERATOR.

	  BITS 1-8	A CODE IDENTIFYING THE OPERATOR

	  BITS 9-15	FLAGS REQUIRED FOR CODE GENERATION

	  BITS 16-28	A SOURCE LINE NUMBER USED WHEN ANY ERRORS
			ARE FOUND

	  BITS 29-35	A CHARACTER POSITION USED WHEN ANY ERRORS
			ARE FOUND

	WORD 2:
	 BITS 0-27	NOT USED
	 BITS 28-35	A CODE IDENTIFYING THE OPERATOR (COPIED
			FROM BITS 1-8 OF WORD 1).
23.3.2	OPERANDS, OTHER THAN LITERALS.

	 WORD 1:
	  BIT 0		A 1 TO IDENTIFY THIS AS AN OPERAND.
	  BIT 1		A 0 TO IDENTIFY THIS AS OTHER THAN A LITERAL.
	  BITS 2-4	USAGE (SEE CODES IN ???)   
!I think the usage field is now bits 10 thru 13 - JEH
	  BIT 5		SYNCHRONIZED LEFT
	  BIT 6		SYNCHRONIZED RIGHT
	  BIT 7		NUMERIC (1) OR NON-NUMERIC (0)
	  BIT 8		JUSTIFIED LEFT (0) OR RIGHT (1)
	  BIT 9		OPERAND IS IN THE LINKAGE SECTION
	  BITS 10-13	NOT USED
	  BITS 14	OPERAND HAS BEEN REFERENCE MODIFIED
	  BIT 15	OPERAND IS EVAL. SEL. SUBJ. W/ SUBSCRIPTS
	  BITS 16-35	LINE NUMBER AND CHARACTER POSITION


	 WORD 2:

	  BIT 0		IGNORE TRUNCATION ERRORS
	  BIT 1		"ROUNDED" CLAUSE PRESENT (VALID ONLY WITH
				"RESULT" OPERATOR).
	  BIT 2		OPERAND REFERENCES FLOTAB
	  BIT 3		'ASCENDING KEY' FOR SEARCH
	  BIT 4		NOT USED
	  BIT 5		OPERAND IS TEMP OR AC'S (SET BY PHASE E)
	  BITS 6-7	ALWAYS 0

	  BITS 8-11	NOT USED
	  BITS 12-17	THE NUMBER OF FOLLOWING ENTRIES WHICH ARE
			TO BE USED AS SUBCRIPTS TO THIS OPERAND.
	  BITS 18-20	THE TYPE OF OPERAND:
			0 - FILE NAME
			1 - DATA NAME
			2 - CONDITION NAME
			3 - LITERAL
			4 - PROCEDURE NAME
			5 - EXTERNAL NAME
			6 - VALUE
			7 - MNEMONIC NAME
	   BITS 21-35	THE ADDRESS OF THE ENTRY FOR THIS OPERAND
			RELATIVE TO THE BEGINNING OF THE TABLE WHOSE
			TYPE IS IN BITS 18-20.
23.3.3	LITERAL OPERANDS


	 WORD 1:
	  BIT 0		A 1 TO IDENTIFY THIS AS AN OPERAND.

	  BIT 1		A 1 TO IDENTIFY THIS AS A LITERAL OR
			FIGURATIVE CONSTANT

	  BIT 2		NUMERIC (1) OR NON-NUMERIC (0)

	  BIT 3		A 1 IF THIS IS A FIGURATIVE CONSTANT

	  BIT 4		A 1 IF LITERAL CONTAINS NON-SIXBIT
			CHARACTERS

	  BITS 5-7	ALWAYS 0

	  BIT 8		"TODAY"

	  BIT 9		"TALLY"

	  BIT 10	"SPACE", "SPACES"

	  BIT 11	"ZERO","ZEROS","ZEROES"

	  BIT 12	"QUOTE","QUOTES"

	  BIT 13	"HIGH-VALUE","HIGH-VALUES"

	  BIT 14	"LOW-VALUE","LOW-VALUES"

	  BIT 15	"ALL"

	  BITS 16-35	LINE NUMBER AND CHARACTER POSITION.

	WORD 2:
	THIS WORD CONTAINS NO DATA IF THE OPERAND IS A FIGURATIVE
	CONSTANT; OTHERWISE

	  BITS 0-17	SIZE OF LITERAL, IN WORDS

	  BITS 18-35	TABLE-LINK TO VALTAB ENTRY
24.	TEMTAB - TEMPORARY ITEM TABLE

24.1	USED BY:	PHASES C,D,E
	ENTRY SIZE:	1 OR 2 WORDS

24.2	CONTENTS

	TEMTAB CONTAINS TEMPORARY INFORMATION.

	IN PHASE C THIS IS REPORT WRITER INFO
	IN PHASE D THIS IS EXPLICIT SCOPE TERMINATOR INFO
	IN PHASE E THIS IS

24.3	DETAILED DESCRIPTION

	IN PHASE C FOR EACH RD
	WORD 1:	
		BITS 0-17	RD LINK

		BITS 18-35	LINK TO HLDTAB FOR FIRST SUM COUNTER

	WORD 2:

		BITS 0-17	# OF IDS

		BITS 18-35	TEMTAB LINK TO NEXT RD

	IN PHASE C FOR EACH ID

	WORD 1:

		BITS 0-17	LEVEL NUMBER

		BITS 18-35	HLDTAB LINK TO NEXT RD

	IN PHASE D

	WORD 1:

		BIT  1		SET IF IN-LINE PERFORM xxx END-PERFORM

		BITS 3-17	TAG NO. FOR IN-LINE PERFORM

		BITS 18-35	CODE FOR XX OF END-XX RESERVED WORD

	IN PHASE E
25.	PRGTAB - PROGRAM NAME TABLE

25.1	USED BY:	PHASES B,C,D,E
	ENTRY SIZE:	3 WORDS

25.2	CONTENTS

	PRGTAB CONTAINS INFORMATION ABOUT CONTAINED PROGRAMS

25.3	DETAILED DESCRIPTION

	WORD 1:	
		BITS 0-17	POINTER TO NAMTAB ENTRY FOR THIS ITEM

		BITS 18-26	LEVEL NUMBER OF THIS PROGRAM

		BIT  27		PROGRAM IS COMMON

		BIT  28		PROGRAM IS INITIAL

		BIT  29		BROTHER (0) OR FATHER (1) LINK

	WORD 2:
		BITS 0-17	LINK TO FATHER OR BROTHER

		BITS 18-35	LINK TO SON

	WORD 3:
		BITS 18-35	TAG TO JUMP OVER CONTAINED PROGRAMS
22.0	RCOTAB - REPORT WRITER CONTROL IDENTIFIER TABLE

22.1	USED BY:	PHASE C,D,E
	ENTRY SIZE:	3 WORDS

22.2	CONTENTS

	RCOTAB CONTAINS INFORMATION ABOUT A CONTROL IDENTIFIER. 

22.3	DETAILED DESCRIPTION

	FIRST WORD:  LH		DATAB LINK FOR CONTROL IDENTIFIER
		     RH		%PARAM AREA SET ASIDE FOR SAVING VALUE

	SECOND WORD: LH		RPWTAB LINK TO ASSOCIATED CH GROUP
		     RH		RPWTAB LINK TO ASSOCIATED CF GROUP

	THIRD WORD:  LH		LINK TO BROTHER CONTROL ENTRY
		     RH		TAG OF 'RESET' ROUTINE
		
	FORTH WORD:  LH		LINK TO PREVIOUS BROTHER CONTROL ENTRY
		     RH		DATAB LINK TO ( TOP ) FATHER ENTRY

	RCOTAB IS A DOUBLE LINK LIST WITH A POINTER IN RPWTAB TO THE FIRST
	AND LAST NODES OF THE LIST.

	NOTE: FIRST WORD IS ZERO IF FOR 'FINAL' CONTROL
\
	SUBTTL	FILTAB

;COMPILER'S FILTAB DEFINITIONS

	DEFINE	FITB.C	<

	RADIX	10

	D.PNTR	FILTAB,FI

	FI.ITM	NAM,1,3,17;;	;NAMTAB LINK
	FI.ITM	SAM,1,18,35;;	;LINK TO ITEM WITH SAME NAME

	FI.ITM	RCT,2,2,17;;	;RE-RUN COUNT
	FI.ITM	OFT,2,18,35;;	;OBJECT-TIME FILE TABLE LOCATION

	FI.ITM	FBS,3,0,15;;	;FILE BUFFER SIZE
	FI.ITM	LN,3,16,28;;	;LINE NO. OF SELECT
	FI.ITM	CP,3,29,35;;	;CHARACTER POSITION
	FI.ITM	LNC,3,16,35;;	;LN, CP COMBINED

	FI.ITM	NDV,4,12,17;;	;NUMBER OF DEVICES
	FI.ITM	VAL,4,18,35;;	;LINK TO VALTAB DEVICE ENTRY

	FI.FLG	ONE,5,1;;	;FIRST RD SEEN FOR THIS FILE
	FI.FLG	MRE,5,2;;	;MORE THAN ONE REPORT FOR THIS FILE
	FI.ITM	FAM,5,3,4;;	;FILE ACCESS MODE
	FI.ITM	ERM,5,5,7;;	;EXTERNAL RECORDING MODE
	FI.ITM	IRM,5,8,10;;	;INTERNAL RECORDING MODE
	FI.FLG	COD,5,11;;	;CODE CLAUSE SPECIFIED FOR THIS FILE
	FI.ITM	POS,5,12,17;;	;POSITION ON MULTIPLE-FILE TAPE
	FI.ITM	NXT,5,18,35;;	;LINK TO NEXT FILTAB ENTRY

	FI.ITM	LBL,6,2,3;;	;TYPE OF LABELS
	FI.FLG	INO,6,4;;	;INPUT OPENS IN PD
	FI.FLG	OUO,6,5;;	;OUTPUT OPENS IN PD
	FI.FLG	IOO,6,6;;	;I-O OPENS IN PD
	FI.FLG	ADV,6,7;;	;WRITE ADVANCING FLAG
	FI.FLG	DSD,6,8;;	;DEFINED IN SD
	FI.FLG	VLR,6,9;;	;VARIABLE LENGTH RECORDS
	FI.FLG	RER,6,10;;	;RE-RUN ON END OF REEL
	FI.FLG	RRC,6,11;;	;RE-RUN ON COUNT
	FI.FLG	FDD,6,12;;	;FD DEFINED
	FI.FLG	OPT,6,13;;	;FILE IS OPTIONAL
	FI.FLG	PSN,6,14;;	;WRITE POSITIONING FLAG
	FI.FLG	RMS,6,15;;	;RMS FILE
	FI.ITM	ORG,6,16,17;;	;ORGANIZATION
	FI.ITM	ACK,6,18,35;;	;ACTUAL KEY LINK

	FI.ITM	NBF,7,0,5;;	;NUMBER OF BUFFERS
	FI.ITM	DRL,7,18,35;;	;DATA RECORD LINK

	FI.ITM	ALK,8,0,17;;	;LINK TO FIRST ALTERNATE KEY IN AKTTAB
	FI.ITM	SDL,8,18,35;;	;SAME DEVICE LINK

	FI.ITM	VID,9,0,17;;	;VALUE-OF-ID LINK
	FI.ITM	VDW,9,18,35;;	;VALUE-OF-DW LINK

	FI.ITM	SAL,10,0,17;;	;SAME AREA LINK
	FI.SME	SBA,SAL;;	;SAME BUFFER AREA LINK
	FI.ITM	ERR,10,18,35;;	;ERROR USE

	FI.ITM	SRA,11,0,17;;	;SAME RECORD AREA
	FI.ITM	LCP,11,18,35;;	;LINAGE-COUNTER POINTER

	FI.ITM	LPP,12,0,17;;	;LINES PER PAGE
	FI.ITM	WFA,12,18,35;;	;WITH FOOTING AT

	FI.ITM	LAT,13,0,17;;	;LINES AT TOP
	FI.ITM	LAB,13,18,35;;	;LINES AT BOTTOM

	FI.ITM	DEB,14,0,17;;	;USE ON DEBUGGING
	FI.ITM	LCI,14,18,35;;	;LINAGE-COUNTER INITIALIZATION ROUTINE

	FI.ITM	LRS,15,0,17;;	;MINIMUM (LEAST) DATA RECORD SIZE
	FI.ITM	MRS,15,18,35;;	;MAXIMUM DATA RECORD SIZE

	FI.FLG	DRC,16,0;;	;DATA RECORDS CLAUSE PRESENT
	FI.FLG	ADR,16,1;;	;RECORD AREA ADDRESS SET
	FI.FLG	RM2,16,2;;	;RECORDING MODE DECLARATION
	FI.ITM	RD,16,3,5;;	;RECORDING DENSITY
	FI.ITM	RP,16,6,7;;	;RECORDING PARITY
	FI.FLG	ENT,16,8;;	;ERROR PROCEDURE ON FILE OPEN
	FI.FLG	DFR,16,9;;	;DEFERRED OUTPUT ISAM
	FI.FLG	BM,16,10;;	;BYTE MODE (MTA ONLY)
	FI.FLG	CKP,16,11;;	;CHECKPOINT ISAM FILE
	FI.FLG	AKS,16,12;;	;ALTERNATE RECORD KEYS HAVE BEEN SPECIFIED
	FI.FLG	KYE,16,13;;	;ERROR WHILE BUILDING KEY INFO FOR ISAM FILES
	FI.FLG	VRS,16,14;;	;VARIABLE RECORD SIZE SYNTAX
	FI.ITM	LOC,16,18,35;;	;LOCATION OF RECORD AREA

	FI.ITM	SKY,17,0,17;;	;SYMBOLIC KEY
	FI.ITM	RKY,17,18,35;;	;RECORD KEY

	FI.FLG	RLC,18,0;;	;FI.ALC POINTS TO [RECORD]
	FI.ITM	BLF,18,4,15;;	;BLOCKING FACTOR
	FI.ITM	ALN,18,16,28;;	;LINE NO. OF SAME [RECORD] AREA
	FI.ITM	ALC,18,16,35;;	;LN, CP COMBINED
	FI.ITM	ACP,18,29,35;;	;CHARACTER POSITION

	FI.ITM	VPP,19,0,17;;	;VALUE OF PROJ-PROG
	FI.ITM	RPG,19,18,35;;	;RPWTAB LINK

	FI.ITM	OWA,20,0,8;;	;OWNER ACCESS BITS.
	FI.ITM	OTA,20,9,17;;	;OTHER ACCESS BITS.
	FI.ITM	RTC,20,18,35;;	;COUNT OF RECORDS RETAINED.
	FI.SME	SPT,RTC;;	;ILDB TYPE POINTER TO FILE STATUS ENTRIES.

	FI.ITM	PFS,21,0,17;;	;FILE STATUS LINK
	FI.ITM	PEN,21,18,35;;	;ERROR NUMBER LINK.

	FI.ITM	PAC,22,0,17;;	;ACTION CODE LINK.
	FI.ITM	PIV,22,18,35;;	;VALUE OF ID LINK.

	FI.ITM	PBN,23,0,17;;	;BLOCK NUMBER LINK.
	FI.ITM	PRN,23,18,35;;	;RECORD NUMBER LINK.

	FI.ITM	PFN,24,0,17;;	;FILE NAME LINK.
	FI.ITM	PFT,24,18,35;;	;FILE TABLE LINK.

	FI.ITM	CKB,25,0,17;;	;CONVERT RELATIVE KEY BEFORE
	FI.ITM	CKA,25,18,35;;	;CONVERT RELATIVE KEY AFTER

	FI.ITM	CRC,26,0,7;;	;CHECKPOINT EVERY N RECORD COUNT
	FI.ITM	SID,26,8,15;;	;SIZE OF VALUE OF ID
	FI.ITM	FLN,26,16,28;;	;LINE NUMBER OF FD
	FI.ITM	FLC,26,16,35;;	;COMBINED LN,CP OF FD
	FI.ITM	FCP,26,29,35;;	;CHAR POS OF FD

	FI.ITM	NUM,27,0,17;;	;NUMBER OF THIS FILE
	FI.ITM	PRT,27,18,35;;	;VALUE OF PROTECTION CODE LINK

	FI.ITM	DEP,28,0,17;;	;TABLE-LINK TO DEPENDING ITEM
	FI.ITM	PAD,28,18,35;;	;PADDING CHARACTER

	FI.ITM	RKL,29,0,17;;	;POINTER TO RMS KEY ARG LIST IN LH
	FI.FLG	NOR,29,34;;	; WRITE / NO-WRITE FOR <CR> FOR ASCII STM
				;THE PRIMARY PURPOSE OF THIS FLAG IS TO
				; RESERVE THE BIT
	FI.FLG	ABL,29,35;;	;APPLY BASIC-LOCKING FLAG

	RADIX	8

>	;END OF DEFINE FITB.C
	SUBTTL	DATAB

;COMPILER'S DATAB DEFINITIONS

	DEFINE	DATB.C	<

	RADIX	10

	D.PNTR	DATTAB,DA

	DA.ITM	NAM,1,3,17;;	;NAMTAB LINK
	DA.ITM	SNL,1,18,35;;	;ITEM WITH SAME NAME

	DA.ITM	VAL,2,0,17;;	;VALUE LINK
	DA.SME	ARG,VAL;;	;ADDRESS OF LINKAGE PTR
	DA.ITM	LOC,2,18,35;;	;RUN-TIME LOCATION

	DA.ITM	POP,3,0,17;;	;LINK TO FATHER
	DA.SME	BRO,POP;;	;LINK TO BROTHER
	DA.ITM	SON,3,18,35;;	;LINK TO SON

	DA.ITM	LVL,4,0,5;;	;LEVEL
	DA.ITM	RES,4,6,11;;	;BYTE RESIDUE
	DA.FLG	LPC,4,12;;	;ITEM IS LINE-COUNTER OR PAGE-COUNTER
	DA.FLG	RBE,4,13;;	;ITEM IS REFERENCED BY AN ENTRY OR PD USING
	DA.ITM	USG,4,14,17;;	;USAGE
	DA.ITM	RPW,4,18,35;;	;LINK TO RPWTAB

	DA.ITM	CLA,5,0,1;;	;CLASS
	DA.FLG	SYL,5,2;;	;SYNC LEFT
	DA.FLG	SYR,5,3;;	;SYNC RIGHT
	DA.FLG	SGN,5,4;;	;SIGNED
	DA.FLG	BWZ,5,5;;	;BLANK WHEN ZERO
	DA.FLG	SUB,5,6;;	;SUBSCRIPTED
	DA.FLG	EDT,5,7;;	;EDITED
	DA.FLG	FAL,5,8;;	;FATHER/BROTHER LINK
	DA.FLG	DEF,5,9;;	;DEFINED
	DA.FLG	RBS,5,10;;	;REFERENCED BY 'SUM'
	DA.FLG	FAK,5,11;;	;ITEM HAS A FAKE NAME
	DA.FLG	RDS,5,12;;	;REFERENCED BY 'SOURCE' IN DETAIL
	DA.FLG	SCT,5,13;;	;ITEM IS A SUM COUNTER
	DA.FLG	JST,5,14;;	;JUSTIFIED
	DA.FLG	SSC,5,15;;	;SEPARATE SIGN CHARACTER
	DA.FLG	LSC,5,16;;	;LEADING SIGN CHARACTER
	DA.ITM	SCF,5,15,16;;	;SIGN CHARACTER FLAGS
	DA.FLG	DLL,5,17;;	;DEPENDING AT LOWER LEVEL
	DA.FLG	ERR,5,18;;	;DD ERROR
	DA.FLG	IDX,5,19;;	;INDEX
	DA.FLG	RDF,5,20;;	;REDEFINES
	DA.FLG	PIC,5,21;;	;PICTURE SEEN
	DA.FLG	DFS,5,22;;	;DEFINED IN FILE SECTION
	DA.FLG	DRC,5,23;;	;APPEARS IN DATA RECORDS CLAUSE
	DA.FLG	DEB,5,24;;	;[74] DEBUGGING ON DATA-NAME
	DA.FLG	SLL,5,25;;	;SYNC CLAUSE AT LOWER LEVEL
	DA.FLG	PWA,5,26;;	;PICTURE WORDS ALLOCATED
	DA.FLG	VHL,5,27;;	;VALUE AT HIGHER LEVEL
	DA.FLG	RDH,5,28;;	;REDEFINES AT HIGHER LEVEL
	DA.FLG	LKS,5,29;;	;LINKAGE SECTION
	DA.FLG	DPR,5,30;;	;DECIMAL POINT TO RIGHT OF ITEM
	DA.ITM	NDP,5,31,35;;	;NUMBER OF DECIMAL PLACES

	DA.ITM	EXS,6,0,17;;	;EXTERNAL SIZE
	DA.ITM	INS,6,18,35;;	;INTERNAL SIZE

	DA.ITM	NOC,7,0,14;;	;NO. OF OCCURENCES OF THIS ITEM
	DA.FLG	OCC,7,15;;	;OCCURS CLAUSE FOR THIS ITEM
	DA.ITM	LN,7,16,28;;	;LINE NUMBER
	DA.ITM	CP,7,29,35;;	;CHARACTER POSITION
	DA.ITM	LNC,7,16,35;;	;LN, CP

	DA.ITM	OCH,8,0,17;;	;HIGHER LEVEL OCCURS
	DA.ITM	DEP,8,18,35;;	;LINK TO DEPENDING ITEM

	DA.ITM	DCR,9,0,9;;	;[1346] DEPENDING CONVERSION ROUTINE
	DA.ITM	KEY,9,10,17;;	;[1346] NUMBER OF KEYS FOR OCCURS
	DA.ITM	XBY,9,18,35;;	;FIRST 'INDEXED BY' ITEM

	DA.ITM	FSC,10,6,11;;	;FLOAT OR SUPPRESSION CHAR.

	RADIX	8

>	;END OF DEFINE DATB.C
	SUBTTL	EXTAB

;COMPILER'S EXTAB DEFINITIONS

	DEFINE	EXTB.C	<

	RADIX	10

	D.PNTR	EXTTAB,EX

	EX.ITM	NAM,1,3,17;;	;NAMTAB LINK
	EX.ITM	SAM,1,18,35;;	;LINK TO ITEM WITH SAME NAME
	EX.FLG	NRS,2,0;;	;USED BY NON-RESIDENT SEGMENT
	EX.FLG	IND,2,1;;	;REFERENCE NEEDS INDIRECT (@) BIT
	EX.FLG	PID,2,2;;	;PROGRAM-ID ENTRY
	EX.FLG	ENT,2,3;;	;ENTRY ENTRY
	EX.FLG	CAL,2,4;;	;REFERENCED BY A CALL
	EX.ITM	CNT,2,15,17;;	;COUNT OF EXTRA WORDS ALLOCATED
	EX.ITM	HLD,2,18,35;;	;MISC USES (INCL HLDTAB LNK FOR CANCEL)

	RADIX	8

>	;END OF DEFINE EXTB.C
	SUBTTL	LITAB AND CONTAB

;COMPILER'S LITAB DEFINITIONS

	DEFINE	LITB.C	<

	RADIX	10

	D.PNTR	LITTAB,LI

	LI.FLG	EBC,1,3;;	;EBCDIC CHARACTERS
	LI.FLG	PUR,1,4;;	;PURE ASCII CHARACTERS
	LI.FLG	ALL,1,5;;	;ALL
	LI.FLG	NLT,1,6;;	;NUMERIC LITERAL
	LI.FLG	FGC,1,7;;	;FIGURATIVE CONSTANT
	LI.FLG	INT,1,8;;	;DECIMAL POINT
	LI.ITM	TYP,1,0,17;;	;TYPE CODE
	LI.ITM	NCH,1,9,17;;	;NUMBER OF CHARACTERS
	LI.ITM	FCC,1,18,35;;	;FIGURATIVE CONSTANT CODE

	RADIX	8

>	;END OF DEFINE LITB.C


;COMPILER'S VALTAB DEFINITIONS

	DEFINE	VATB.C	<

	RADIX	10

	D.PNTR VALTAB,VA

	VA.ITM	SIZ,1,5,13;;	;NUMBER OF CHARACTERS
	VA.ITM	BFC,1,7,13;;	;BEFORE FIRST CHAR (ILDB PTR)
	VA.ITM	LFC,1,14,20;;	;LOAD FIRST CHAR (LDB PTR)

	RADIX	8

>	;END OF DEFINE VATB.C
;COMPILER'S CONTAB DEFINITIONS

	DEFINE	COTB.C	<

	RADIX	10

	D.PNTR CONTAB,CO

	CO.ITM	NAM,1,3,17;;	;NAMTAB POINTER
	CO.ITM	SAM,1,18,35;;	;LINK TO ITEM WITH SAME NAME
	
	CO.ITM	DAT,2,0,17;;	;DATTAB LINK
	CO.ITM	NVL,2,18,35;;	;NUMBER OF VALUES

	CO.FLG	FIG,3,1;;	;FIGURATIVE CONSTANT
	CO.FLG	ALL,3,2;;	;ALL
	CO.FLG	SP,3,3;;	;SPACES
	CO.FLG	ZRO,3,4;;	;ZERO
	CO.FLG	QT,3,5;;	;QUOTE
	CO.FLG	HV,3,6;;	;HIGH-VALUE
	CO.FLG	LV,3,7;;	;LOW-VALUE
	CO.ITM	TAG,3,3,17;;	;TAG VALUE IF NOT FIGCON

	RADIX	8

>	;END OF DEFINE COTB.C
	SUBTTL	HLDTAB AND USETAB

;COMPILER'S HLDTAB DEFINITIONS

	DEFINE	HLTB.C	<

	RADIX	10

	D.PNTR HLDTAB,HL

	HL.ITM	NAM,1,1,15;;	;NAMTAB LINK
	HL.ITM	FLG,1,0,17;;	;PHASE E FLAGS
	HL.ITM	LNC,1,16,35;;	;LN&CP
	HL.ITM	LN,1,16,28;;	;LINE NUMBER
	HL.ITM	CP,1,29,35;;	;CHARACTER POSITION
	HL.ITM	RD,1,1,17	; [415] RD LINK FOR TYPE 14
	HL.ITM	CID,1,18,35	; [415] CID LEVEL FOR TYPE 14

	HL.ITM	COD,2,0,8;;	;CODE
	HL.ITM	QAL,2,9,17;;	;NUMBER OF QUALIFIERS
	HL.ITM	LNK,2,18,35;;	;LINK TO A TABLE
	HL.ITM	FCD,2,0,8;	;FULL CODE
	HL.ITM	QNM,3,18,35;;	HALF WORDS OF NAMTAB LINKS FOR QUALIFIERS
	RADIX	8

>	;END OF DEFINE HLTB.C


;COMPILER'S USETAB DEFINITIONS

	DEFINE	USTB.C	<

	RADIX	10

	D.PNTR	USETAB,US

	US.ITM	TYP,1,3,11;;	;ENTRY TYPE
	US.FLG	XTR,1,17;;	;EXTRA WORDS FOLLOW
	US.ITM	PRO,1,18,35;;	;PROTAB LINK TO ASSOCIATED SECTION

	US.ITM	CNT,2,6,17;;	;COUNT OF EXTRA WORDS

	RADIX	8

>	;END OF DEFINE USTB.C
	SUBTTL	FLOTAB

;COMPILER'S FLOTAB DEFINITIONS

	DEFINE	FLTB.C	<

	RADIX	10

	D.PNTR	FLOTAB,FL

	FL.FLG	PND,1,0;;	;PROCEDURE-NAME DEFINITION
	FL.FLG	SPF,1,1;;	;SUBJECT OF PERFORM
	FL.FLG	OPF,1,2;;	;OBJECT OF PERFORM
	FL.FLG	SAL,1,3;;	;SUBJECT OF ALTER
	FL.FLG	OAL,1,4;;	;OBJECT OF ALTER
	FL.FLG	OGO,1,5;;	;OBJECT OF GO
	FL.FLG	OEN,1,6;;	;OBJECT OF ENTER
	FL.FLG	DEB,1,7;;	;OBJECT OF USE FOR DEBUGGING
	FL.FLG	TAG,1,8;;	;INLINE PERFORM (LINK IS TO TAGTAB)
	FL.FLG	QUA,1,16;;	;QUALIFIED ENTRY
	FL.FLG	RDC,1,17;;	;REFERENCED IN DECLARATIVES
	FL.ITM	PRO,1,18,35;;	;PROTAB LINK

	FL.ITM	NAM,2,1,15;;	;NAMTAB POINTER
	FL.ITM	NLC,2,1,35;;	;NAMTAB POINTER, LN, CP
	FL.ITM	LN,2,16,28;;	;LINE NUMBER
	FL.ITM	LNC,2,16,35;;	;LN, CP
	FL.ITM	CP,2,29,35;;	;CHARACTER POSITION
	FL.SME	POS,CP;;	;CHARACTER POSITION

	RADIX	8

>	;END OF DEFINE FLTB.C
	SUBTTL	PROTAB

;COMPILER'S PROTAB DEFINITIONS

	DEFINE	PRTB.C	<

	RADIX	10

	D.PNTR	PROTAB,PR

	PR.ITM	NAM,1,3,17;;	;NAMTAB LINK
	PR.ITM	SNL,1,18,35;;	;ITEM WITH SAME NAME

	PR.ITM	LSC,2,0,17;;	;LINK TO SECTION
	PR.ITM	GNW,2,0,17;;	;GENWRD FOR NEXT SECTION
	PR.ITM	PRF,2,18,35;;	;ADDRESS OF USE PERFORM

	PR.ITM	AOB,3,0,17;;	;AOBTAB LINK (ALTER)
	PR.ITM	PRI,3,18,24;;	;PRIORITY
	PR.FLG	SEC,3,25;;	;SECTION/PARAGRAPH
	PR.FLG	EXR,3,26;;	;EXIT REQUIRED
	PR.FLG	DEF,3,27;;	;ITEM DEFINED
	PR.FLG	ALT,3,28;;	;ALTERABLE
	PR.FLG	ARS,3,29;;	;ALTER TO SAME OR RESIDENT SEG
	PR.FLG	ANR,3,30;;	;ALTER TO NON-RESIDENT SEG
	PR.FLG	RFD,3,31;;	;REFERENCED IN DECLARATIVES
	PR.FLG	DFD,3,32;;	;DEFINED IN DECLARATIVES
	PR.FLG	MDF,3,33;;	;MULTIPLY DEFINED PROCEDURE
	PR.FLG	TUT,3,34;;	;TERMINATED WITH UNCONDITIONAL TRANSFER
	PR.FLG	APP,3,35;;	;ITEM APPEARED IN SECNAM

	PR.ITM	XTW,4,0,17;;	;EXIT WORD ADDRESS
	PR.ITM	FLO,4,18,35;;	;FLOTAB LINK

	PR.WRD	DUP,5;;		;DEBUG USE & ERROR USE PROCEDURE
	PR.ITM	DEB,5,0,17;;	;ADDRESS OF DEBUG USE PROCEDURE
	PR.ITM	SFI,5,18,35;;	;SYMBOLIC FIRST ADDRESS  (I.E. TAG NUMBER)

	RADIX	8

>	;END OF DEFINE PRTB.C
	SUBTTL	CDTAB & MNETAB

;COMPILER'S CDTAB DEFINITIONS

	DEFINE	CDTB.C	<

	RADIX	10

	D.PNTR	CDTAB,CD

	CD.ITM	NAM,1,3,17
	CD.ITM	SNL,1,18,35;;	;SAME NAME LINK

	CD.FLG	OUT,2,0
	CD.ITM	INT,2,0,1
	CD.ITM	LIN,2,16,28	;LINE NUMBER
	CD.ITM	CHR,2,29,35;;	;CHARACTER POSITION
	CD.ITM	RDL,3,0,17;;	;RECORD DATA LINK
	CD.ITM	QNL,3,18,35;;	;Q-NAME LINK
	CD.ITM	Q1L,4,0,17;;	;SUB-Q1 LINK
	CD.ITM	Q2L,4,18,35;;	;SUB-Q2 LINK
	CD.ITM	Q3L,5,0,17;;	;INPUT: SUB-Q3 LINK, OUTPUT: DEST TABLE OCC LK
	CD.ITM	MDL,5,18,35;;	;MESSAGE OR INDEX LINK
	CD.ITM	DC,6,0,17;;	;DESTINATION COUNT
	CD.ITM	NAL,6,18,35;;	;SOURCE OF DEST NAME LINK
	CD.ITM	TLL,7,0,17;;	;TEXT LENGTH LINK
	CD.ITM	KYL,7,18,35;;	;KEY LINK
	CD.ITM	SKL,8,0,17;;	;STATUS KEY LINK
	CD.ITM	COL,8,18,35;;	;COUNT LINK
	CD.ITM	FDL,9,0,17;;	;FAKE DATAB LINK
	CD.ITM	DUP,9,18,35;;	;DEBUG USE PROCEDURE

	RADIX	8

>	;END OF DEFINE CDTB.C


;COMPILER'S MNETAB DEFINITIONS

	DEFINE	MNTB.C	<

	RADIX	10

	D.PNTR	MNTAB,MN

	MN.ITM	NAM,1,3,17
	MN.ITM	SNL,1,18,35;;	;SAME NAME LINK

	MN.FLG	SWT,2,0;;	;SWITCH
	MN.FLG	SYC,2,7;;	;SYMBOLIC CHARACTER
	MN.ITM	SWN,2,30,35;;	;SWITCH NUMBER
	MN.ITM	RCV,2,18,35;;	;REPORT CODE VALUE (2 BYTES OR LITAB ADDRESS)
	MN.FLG	ESC,2,18;;	;SYMBOLIC CHAR IS IN EBCDIC COLL. SEQ.
	MN.ITM	SCV,2,27,35;;	;SYMBOLIC CHARACTER VALUE
	MN.ITM	LNC,3,16,35;;	;LN & CP

	RADIX	8

>	;END OF DEFINE MNTB.C
	SUBTTL	AKTTAB & DEBTAB & RENTAB

	DEFINE	AKTB.C	<

	RADIX	10

	D.PNTR	AKTTAB,AK

	AK.ITM	FLK,1,1,17;;	;FILTAB LINK	
	AK.ITM	DLK,1,18,35;;	;DATAB LINK

	AK.FLG	DUP,2,0;;	;DUPLICATES ALLOWED

	RADIX	8

>	;END OF DEFINE AKTB.C


	DEFINE	DBTB.C	<

	RADIX	10

	D.PNTR	DEBTAB,DB

	DB.ITM	DAT,1,1,17;;	;DATAB LINK
	DB.FLG	ARO,1,18;;	;ALL REFERENCES OF
	DB.ITM	DUP,1,21,35;;	;DEBUG USE PROCEDURE (USETAB LINK)

	DB.FLG	IDP,2,0;;	;INVOKE DEBUG PROCEDURE
	DB.ITM	LN,2,5,17;;	;LINE NUMBER
	DB.ITM	PRM,2,18,35;;	;PARAM BASE

	RADIX	8

>	;END OF DEFINE DBTB.C
	SUBTTL	RESTAB

	DEFINE RETB.C	<

	RADIX	10

	D.PNTR	RESTAB,RE

	RE.FLG	ROU,1,0;;	;RESULT TO BE ROUNDED
	RE.ITM	EOP,1,18,35;;	;LINK TO EOPTAB
	
	RE.ITM	NIP,2,0,17;;	;NUMBER OF INTERGRAL PLACES IN ITEM
	RE.ITM	NDP,2,18,35;;	;NUMBER OF DECIMAL PLACES IN ITEM

	RADIX 8

>	;END OF DEFINE RETB.C
	SUBTTL	TAGTAB

	DEFINE TATB.C	<

	RADIX	10

	D.PNTR	TAB,TA

	TA.FLG	IND,1,0;;	;INDIRECT POINTER
	TA.FLG	CPO,1,1;;	;TAG CREATED IN PHASE O
	TA.FLG	ANO,1,2;;	;ANOTHER TAG AT +1
	TA.ITM	REF,1,3,17;;	;REFERENCE COUNT
	TA.ITM	PC,1,18,35;;	;PC FIELD

	RADIX 8

>	;END OF DEFINE TATB.C
	SUBTTL	ALTAB

	DEFINE ALTB.C	<

	RADIX	10

	D.PNTR	ALTAB,AL

	AL.FLG	TAG,1,0;;	;0=PROTAG LINK OR 1=SPECIAL TAG
	AL.ITM	ADD,1,21,35;;	;PROTAB LINK

	RADIX 8

>	;END OF DEFINE ALTB.C
	SUBTTL	SECTAB

	DEFINE SETB.C	<

	RADIX	10

	D.PNTR	SECTAB,SE

	SE.ITM	LIT,1,0,17;;	;STARTING ADDRESS OF LITERALS

	SE.ITM	NAS,2,0,17;;	;NUMBER OF ALTAB ENTRIES
	SE.ITM	SAA,2,18,35;;	;STARTING ADDRESS OF ALTAB

	RADIX 8

>	;END OF DEFINE SETB.C
	SUBTTL	EOPTAB

	DEFINE EOTB.C	<

	RADIX	10

	D.PNTR	EOPTAB,EO

	EO.FLG	IDO,1,0;;	;0=OPERATOR,1=OPERAND
	EO.ITM	COD,1,1,8;;	;CODE
	EO.ITM	FLG,1,9,15;;	;FLAGS
	EO.ITM	LN,1,16,28;;	;LINE NUMBER
	EO.ITM	CP,1,29,35;;	;CHARACTER POSITION

	EO.ITM	CD1,2,28,35;;	;CODE

	EO.FLG	IDL,1,1;;	;0=NON-LITERAL,1=LITERAL
	EO.ITM	USG,1,2,4;;	;USAGE
	EO.FLG	SYL,1,5;;	;SYNC LEFT
	EO.FLG	SYR,1,6;;	;SYNC RIGHT
	EO.FLG	NNU,1,7;;	;0=NON-NUMERIC, 1=NUMERIC
	EO.FLG	JUS,1,8;;	;0=JUSTIFIED LEFT, 1=JUSTIFIED RIGHT
	EO.FLG	LNK,1,9;;	;OPERAND IS IN LINKAGE SECTION

	EO.FLG	TRU,2,0;;	;IGNORE TRUNCATION ERRORS
	EO.FLG	ROU,2,1;;	;ROUNDED CLAUSE PRESENT
	EO.FLG	REF,2,2;;	;OPERAND REFERENCES FLOTAB
	EO.FLG	ASC,2,3;;	;ASCENDING KEY
	EO.FLG	TMP,2,5;;	;OPERAND IS TEMP OR AC'S
	EO.ITM	NUM,2,12,17;;	;NUMBER OF FOLLOWING ENTRIES
	EO.ITM	TYP,2,18,20;;	;TYPE
	EO.ITM	ADR,2,21,35;;	;ADDRESS OF OPERAND

	EO.FLG	NIC,1,2;;	;1=NUMERIC,0=NON-NUMERIC
	EO.FLG	FIG,1,3;;	;FIGURATIVE CONSTANT
	EO.FLG	LIT,1,4;;	;LITERAL CONTAINS NON-SIXBIT CHARACTERS
	EO.FLG	TOD,1,8;;	;TODAY
	EO.FLG	TAL,1,9;;	;TALLY
	EO.FLG	SPC,1,10;;	;SPACES
	EO.FLG	ZRO,1,11;;	;ZERO
	EO.FLG	QUO,1,12;;	;QUOTE
	EO.FLG	HIG,1,13;;	;HIGH-VALUES
	EO.FLG	LOW,1,14;;	;LOW-VALUES
	EO.FLG	ALL,1,15;;	;ALL

	EO.ITM	SIZ,2,0,17;;	;SIZE OF LITERAL
	EO.ITM	VAL,2,18,35;;	;TABLE LINK TO VALTAB

	RADIX 8

>	;END OF DEFINE EOTB.C
	SUBTTL	TEMTAB

	DEFINE TMTB.C	<

	RADIX	10

	D.PNTR	TEMTAB,TM

	TM.ITM	RD,1,0,17;;	;RD LINK
	TM.ITM	LNK,1,18,35;;	;LINK TO HLDTAB
	TM.ITM	NUM,2,0,17;;	;NUMBER OF IDS
	TM.ITM	BRO,2,18,35;;	;TEMTAB LINK TO NEXT RD
	TM.SME	LVL,RD;;	;LEVEL
	TM.ITM	TGN,1,3,17;;	;TAG NO.
	TM.SME	COD,LNK;;	;CODE FOR XX OF END-XX

	RADIX 8

>	;END OF DEFINE TMTB.C
	SUBTTL	CPYTAB

	DEFINE CPTB.C	<

	RADIX	10

	D.PNTR	CPYTAB,CP

	RADIX 8

>	;END OF DEFINE CPTB.C
	SUBTTL	DBDTAB

	DEFINE DDTB.C	<

	RADIX	10

	D.PNTR	DBDTAB,DD

	RADIX 8

>	;END OF DEFINE DDTB.C
	SUBTTL	RENTAB

	DEFINE RNTB.C	<

	RADIX	10

	D.PNTR	RENTAB,RN

	RN.ITM	01,1,0,17;;	;01-LEVEL DATAB LINK
	RN.ITM	66,1,18,35;;	;66-LEVEL DATAB LINK

	RADIX 8

>	;END OF DEFINE RNTB.C
	SUBTTL	PRGTAB

;COMPILER'S PROGRAM TABLE DEFINITIONS

	DEFINE	PGTB.C	<

	RADIX	10

	D.PNTR	PRGTAB,PG

	PG.ITM	NAM,1,3,17;;	;NAMTAB LINK
	PG.ITM	LVL,1,18,26;;	;LEVEL NUMBER OF CONTAINED PROGRAM
	PG.FLG	COM,1,27;;	;PROGRAM IS COMMON
	PG.FLG	INI,1,28;;	;PROGRAM IS INITIAL
	PG.FLG	FAL,1,29;;	;FATHER/BROTHER LINK

	PG.ITM	POP,2,0,17;;	;LINK TO FATHER
	PG.SME	BRO,POP;;	;LINK TO BROTHER
	PG.ITM	SON,2,18,35;;	;LINK TO SON

	PG.ITM	TAG,3,18,35;;	;TAG # TO JUMP OVER CONTAINED PROGRAM

	RADIX	8

>	;END OF DEFINE PGTB.C
	SUBTTL	RPWTAB

;COMPILER'S RPWTAB DEFINITIONS

;THIS PART IS USED IN PHASES A THROUGH E.

	DEFINE	RWTB.A	<

	RADIX	10

	D.PNTR RPWTAB,RW


	;;THE FOLLOWING PERTAIN TO 'RD' ENTRIES

	RW.ITM	NAM,1,3,17;	NAMTAB LINK

	RADIX	8

>	;END OF DEFINE RWTB.A


;THIS PART IS USED IN PHASES C THROUGH E.

	DEFINE	RWTB.B	<

	RADIX	10

	D.PNTR	RPWTAB,RW

	RW.FLG	DEF,1,2;;	;DEFINED FLAG
	RW.ITM	SAM,1,18,35;;	;SAME-NAME LINK

	RW.ITM	BRO,2,0,15;;	;BROTHER LINK
	RW.ITM	LN,2,16,28;;	;LINE NUMBER
	RW.ITM	CP,2,29,35;;	;CHAR POSITION
	RW.ITM	LNC,2,16,35;;	;LN,CP

	RW.ITM	FIL,3,0,17;;	;FILTAB LINK
	RW.ITM	FGP,3,18,35;;	;FIRST GROUP

	RW.ITM	LC,4,0,17;;	;LINE-COUNTER
	RW.ITM	PC,4,18,35;;	;PAGE-COUNTER

	RW.ITM	PHL,5,0,8;;	;HEADING LINE
	RW.ITM	CFL,5,9,17;;	;FOOTING LINE
	RW.ITM	FDE,5,18,26;;	;FIRST DETAIL
	RW.ITM	LDE,5,27,35;;	;LAST DETAIL

	RW.ITM	PAG,6,0,8;;	;PAGE LIMIT
	RW.FLG	INI,6,9;;	;THERE IS AN INDICATE FOR THIS RD
	RW.FLG	RHL,6,10;;	;[1373] REPORT HEADING LINE SEEN
	RW.ITM	RWT,6,18,35;;	;OBJECT RPWTAB ENTRY

	RW.ITM	RHR,7,0,17;;	;TAG OF RH ROUTINE
	RW.ITM	RFR,7,18,35;;	;TAG OF RF ROUTINE

	RW.ITM	PHR,8,0,17;;	;TAG OF PH ROUTINE
	RW.ITM	PFR,8,18,35;;	;TAG OF PF ROUTINE

	RW.ITM	GIR,9,0,17;;	;TAG OF GROUP-INDICATE ROUTINE
	RW.ITM	COD,9,18,35;;	;MNEMONIC LINK OF CODE

	RW.ITM	CID,10,0,17;;	;LINK TO FIRST CONTROL ID
	RW.ITM	NCI,10,18,35;;	;NUMBER OF CONTROL ID'S

	RW.ITM	BKT,11,0,17;;	;TAG OF 'BREAK TEST' ROUTINE
	RW.ITM	FBT,11,18,35;;	;TAG OF 'FINAL BREAK' ROUTINE

	RW.ITM	FCI,12,0,17;;	;LINK TO FIRST CONTROL IDENTIFIER

	;;THE FOLLOWING ARE FOR THE GROUP ITEMS IN RPWTAB.

	RW.ITM	RDL,1,1,17;;	;[1451]LINK TO RD

	RW.SME	DAT,SAM;;	;LINK TO DATAB

	RW.ITM	LCD,2,0,1;;	;LINE CODE
	RW.ITM	NLC,2,2,3;;	;NEXT LINE CODE
	RW.ITM	SCD,2,4,5;;	;SOURCE CODE
	RW.ITM	TYP,2,6,8;;	;TYPE CODE
	RW.FLG	RSF,2,9;;	;RESET ON FINAL
	RW.FLG	RSI,2,10;;	;RESET ON IDENTIFIER
	RW.ITM	RST,2,9,10;;	;BOTH RESET FLAGS
	RW.FLG	GPI,2,11;;	;GROUP INDICATE
	RW.FLG	GEN,2,12;;	;GENERATE EXISTS FOR THIS GROUP
	RW.FLG	FNC,2,13;;	;FINAL CONTROL
	RW.FLG	RLS,2,15;;	;REFERENCED BY LINE STATEMENT
	RW.FLG	RSU,2,16;;	;REFERENCED BY 'SUM UPON'
	RW.ITM	NSI,2,18,35;;	;NUMBER OF SUM ID'S

	RW.ITM	LIN,3,0,8;;	;LINE NUMBER
	RW.ITM	COL,3,9,17;;	;COLUMN NUMBER
	RW.ITM	NXT,3,18,26;;	;NEXT LINE NUMBER

	RW.SME	RES,LC;;	;DATAB LINK TO 'RESET'
	RW.SME	SLK,PC;;	;SOURCE, SUM OR VALUE LINK

	RW.ITM	UPN,5,0,17;;	;'UPON' LINK
	RW.ITM	USE,5,18,35;;	;'USE' PROCEDURE

	RW.ITM	SUP,6,0,17;;	;RUNTIME LOCATION SET TO -1 IF 'SUPPRESS'
	RW.ITM	NUP,6,18,35;;	;NUMBER OF UPON IDENTIFIERS

	;WORDS 7 THRU 25 ARE USED TO STORE THE SOURCE ITEM
	; (ALLOW FOR 3 SUBSCRIPTS WITH ADDITIVES)
	; (SEE P.MAC, SYMBOL .RWSRC )


;DEFINITIONS USED FOR UPON TABLE

	RW.ITM	UP1,1,18,35;;	;DATAB LINK TO UPON DATA ITEM

	RADIX	8

>	;END OF DEFINE RWTB.B


;USE THIS TO DEFINE THE WHOLE TABLE.

	DEFINE	RWTB.C	<

	RWTB.A
	RWTB.B

>	;END OF DEFINE RWTB.C
	SUBTTL	RCOTAB

	DEFINE	RCTB.C	<

	RADIX	10

	D.PNTR	RCOTAB,RC

	RC.ITM	DCI,1,0,17;;	;DATAB LINK FOR CONTROL ITEM
	RC.ITM	SAV,1,18,35;;	;%PARM AREA FOR SAVING VALUE

	RC.ITM	CHG,2,0,17	;LINK TO CH GROUP
	RC.ITM	CFG,2,18,35;;	;LINK TO CF GROUP

	RC.ITM	REE,3,0,17;;	;TAG OF RESET ROUTINE
	RC.ITM	BRO,3,18,35;;	;LINK TO BROTHER CONTROL IDENTIFIER

	RC.ITM	BR1,4,0,17;;	;LINK TO BROTHER CONTROL IDENTIFIER
	RC.ITM	FAL,4,18,35;;	;LINK TO FATHER

	RADIX	8

>	;END OF DEFINE RCTB.C
	SUBTTL	DEFINE THE SYMBOLS

;CALL THE MACROS ONCE SO THAT WE GET THE SYMBOLS IN THE CREF LISTING.

	DEFINE	D.PNTR	(TBLNAM,TBLID),<
	XLIST
		DEFINE	TBLID'.ITM	(ITMID,WRDNO,LFTBIT,RTBIT)<	TBLID'%'ITMID==<POINT RTBIT-LFTBIT+1,WRDNO-1,RTBIT>>

		DEFINE	TBLID'.FLG	(ITMID,WRDNO,BITNO)<	TBLID'%'ITMID==<POINT 1,WRDNO-1,BITNO>>

		DEFINE	TBLID'.SME	(ITM1,ITM2)<	TBLID'%'ITM1==TBLID'%'ITM2>
		DEFINE	TBLID'.WRD	(ITMID,WRDNO)<	TBLID'%'ITMID==WRDNO-1>
	LIST
>

	DEFINE	GEN	(TABLE)<
	IRP	TABLE,<
	PAGE
	SUBTTL	TABLE

	TABLE

>	;END OF TABLE
>	;END OF DEFINE GEN.

	LALL

	GEN	<FITB.C,DATB.C,EXTB.C,LITB.C,VATB.C,COTB.C,HLTB.C,USTB.C,
		FLTB.C,PRTB.C,CDTB.C,MNTB.C,AKTB.C,PGTB.C,RWTB.C,DBTB.C,
		RETB.C,TATB.C,ALTB.C,SETB.C,EOTB.C,TMTB.C,CPTB.C,DDTB.C,
		RNTB.C,RCTB.C>

	PURGE	GEN

	XALL
	SUBTTL	PREVENT LISTING ELSEWHERE.

	DEFINE	NOLIST	(TABLE)<
	IRP	TABLE,<NLIST0	TABLE>
>	;END OF DEFINE NOLIST.

	DEFINE	NLIST0	(A)<NLIST1	A>

	DEFINE	NLIST1	(NAM,TPE)<
		DEFINE	NAM'%'TPE<
		XLIST
		NAM'.'TPE
		LIST
>	;END OF DEFINE NAM'%'TPE.
>	;END OF DEFINE NLIST1

	NOLIST	<<FITB,C>,<DATB,C>,<EXTB,C>,<LITB,C>,<VATB,C>,<COTB,C>,
		<HLTB,C>,<USTB,C>,<FLTB,C>,<PRTB,C>,<CDTB,C>,<MNTB,C>,
		<AKTB,C>,<PGTB,C>,<RWTB,A>,<RWTB,B>,<RWTB,C>,<DBTB,C>,
		<RETB,C>,<TATB,C>,<ALTB,C>,<SETB,C>,<EOTB,C>,<TMTB,C>,
		<CPTB,C>,<DDTB,C>,<RNTB,C>,<RCTB,C>>

	PURGE	NOLIST
	SUBTTL	MACROS TO GENERATE CODE.

;REDEFINE THE MACROS TO GENERATE BYTE POINTERS INSTEAD OF SYMBOLS.

	DEFINE	D.PNTR	(TBLNAM,TBLID),<
	XLIST

	DEFINE TBLID'.ITM (ITMID,WRDNO,LFTBIT,RTBIT),<
		XLIST
TBLID'.'ITMID::	TBLID'%'ITMID+<TA>B17
		LIST
	>	;;END OF DEFINE TBLID'.ITM

	DEFINE TBLID'.FLG (FLGID,WRDNO,BITNO),<
		XLIST
		TBLID'.ITM	FLGID,WRDNO,BITNO,BITNO
		LIST
	>	;;END OF DEFINE TBLID'FLG

	DEFINE	TBLID'.SME	(ID1,ID2)<
		XLIST
		TBLID'.'ID1==:TBLID'.'ID2
		LIST
	>	;;END OF DEFINE TBLID'.SME

	DEFINE	TBLID'.WRD	(ITMID,WRDNO)<
		XLIST
		TBLID'.'ITMID==:WRDNO-1
		LIST
	>	;;END OF DEFINE TBLID'.WRD

	LIST
>	;END OF DEFINE D.PNTR

	END