Google
 

Trailing-Edge - PDP-10 Archives - BB-H580C-SB_1981 - tables.mac
There are 21 other files named tables.mac in the archive. Click here to see a list.
; UPD ID= 3525 on 5/7/81 at 9:51 AM by WRIGHT                           
UNIVERSAL	TABLES FOR COBOL AND LIBOL
SUBTTL	TABLE DEFINITIONS



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


SEARCH	INTERM

;EDITS
;NAME	DATE		COMMENTS

;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
		RESTAB
		HLDTAB
		TAGTAB
		ALTAB
		SECTAB
		FLOTAB
		RPWTAB
		CDTAB
		USETAB
		AKTTAB
		DEBTAB
		RENTAB
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:
		BIT 0		MULTIPLE REEL/UNIT

		BIT 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	SIZE OF A NON-STANDARD LABEL
				RECORD, IN CHARACTERS.

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

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

	WORD 5:
		BITS 0-4	[68] NUMBER OF "FILE-LIMITS" CLAUSES.

		BITS 0-2	[74] UNUSED

		BITS 3-4	[74] 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		UNUSED

		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
				10 NON-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	[74] ORGANIZATION:
				[68] ACCESS MODE:
				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	MAXIMUM DATA RECORD SIZE IN CHARACTERS.

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

	WORD 8:
		LH		TABLE-LINK TO AKTTAB [ANS74]
				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		[68] TABLE-LINK TO A FILE USING THE SAME BUFFER AREA
		 RH		[68] TABLE-LINK TO "ERROR USE"

	WORD 11: LH		[68] TABLE-LINK TO "BEFORE BEGINNING REEL USE"
		 RH		[68] TABLE-LINK TO "BEFORE BEGINNING FILE USE".
				[74] LINAGE-COUNTER POINTER

	WORD 12: LH		[68] TABLE-LINK TO "AFTER BEGINNING REEL USE".
				[74] LINAGE LINES PER PAGE
		 RH		[68] TABLE-LINK TO "AFTER BEGINNING FILE USE".
				[74] LINAGE WITH FOOTING AT

	WORD 13: LH		[68] TABLE-LINK TO "BEFORE ENDING REEL USE".
				[74] LINAGE LINES AT TOP
		 RH		[68] TABLE-LINK TO "BEFORE ENDING FILE USE".
				[74] LINES AT BOTTOM

	WORD 14: LH		[68] TABLE-LINK TO "AFTER ENDING REEL USE".
				[74] USE ON DEBUGGING FILTAB
		 RH		[68] TABLE-LINK TO "AFTER ENDING FILE USE".
				[74] LINAGE-COUNTER INITIALIZATION ROUTINE

	WORD 15: LH		TABLE-LINK TO A FILE SHARING THE SAME RECORD AREA.
		 RH		TABLE-LINK TO DATAB ENTRY FOR LABEL.

	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

		BITS 14-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:
		(CBL74 ONLY)
		LH:		CONVERT RELATIVE KEY BEFORE
		RH:		CONVERT RELATIVE KEY BEFORE

	WORD 26:
		BITS 0-7	CHECKPOINT EVERY N RECORDS COUNT
		BITS 8-15	NOT USED
		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	NOT USED

	WORDS 28-N:

		THESE WORDS ARE PRESENT ONLY FOR RAC DEVICES.
		THE LEFT-HALF OF EACH ENTRY IS A TABLE-LINK TO A "LOW-LIMIT",
		THE RIGHT HALF IS A TABLE-LINK TO A "HIGH-LIMIT",
		AS DESCRIBED IN THE "FILE-LIMITS" CLAUSE FOR THIS FILE.
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

		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		[74] SEPARATE SIGN

		BIT 16		[74] 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		[68] THIS APPEARS IN A LABEL RECORDS CLAUSE
				[74] 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.

		LH		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 - [74] 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:	4 WORDS [68], 5 WORDS [74]

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		[74] ADDRESS OF DEBUG USE PROCEDURE

		RH		[74] SYMBOLIC FIRST ADDRESS  (I.E. TAG NUMBER)

NOTE 2:
	IN COBOLG WHEN PROTAB IS BEING OUTPUT TO REL FILE FOR COBDDT
	IN COBOL-68 WORD 4 IS SET TO ZERO
	IN COBOL-74 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

		BITS 4-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

		BITS 6-17	NOT USED

		BITS 18-35	DEPEND UPON CODE:
			IF BITS 0,1 OR 2 ARE ON, BITS 18-29 ARE NOT USED
				AND BITS 30-35 CONTAIN SWITCH NUMBER.
			IF BIT 3 IS ON, BITS 18-35 ARE NOT USED.
			IF BIT 4 ON, BITS 18-31 ARE NOT USED, BITS 32-35
				CONTAIN CHANNEL NUMBER.
			IF BIT 5 ON, BITS 18-35 CONTAINS SIZE OF 'CODE'.

	WORD 3-N:	CONTAINS VALUE OF CODE. PRESENT ONLY IF THIS
			IS A REPORT CODE (SEE WORD 2, BIT 5)
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
	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 0-6; THE REMAINDER
	OF THAT WORD, AND THE FOLLOWING WORDS, CONTAIN AN ASCII
	STRING.
11.	LITAB - LITERAL TABLE

11.1	USED BY:	PHASE 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-5	NOT USED

		BIT 6		NON-SIXBIT

		BIT 7		ALL

		BIT 8		NUMERIC

		BIT 10		NUMERIC LITERAL HAS AN IMBEDDED
				DECIMAL POINT

		BITS 11-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

		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:	BITS 0-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

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

		BITS 6-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
		BITS 1-2	NOT USED
		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
		BITS 10-17	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		RELATIVE ADDRESS OF FIRST CONTROL IDENTIFIER
		RH		NUMBER OF DIFFERENT CONTROL IDENTIFIERS

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

17.3	RPWTAB ENTRIES FOR EACH CONTROL IDENTIFIER (SEPERATE FROM RD ENTRY)


	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:  RH		TAG OF 'RESET' ROUTINE

	NOTE: FIRST WORD IS ZERO IF FOR 'FINAL' CONTROL

17.4	RPWTAB ENTRIES FOR GROUP AND ELEMENTARY ITEMS

	WORD 1	BIT 0		ALWAYS 1 TO DIFFERENTIATE FROM RD
		BITS 1-2	NOT USED
		BITS 3-17	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		NOT USED
		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 'UPON' TYPE DETAIL 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	UNUSED.

	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.
18.	CDTAB - COMMUNICATION DESCRIPTION TABLE

18.1	USED BY:	PHASES C,D,E
	ENTRY SIZE:	8 WORDS [68], 9 WORDS [74]

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)
\
	SUBTTL	FILTAB

;COMPILER'S FILTAB DEFINITIONS

	DEFINE	FITB.C	<

	RADIX	10

	D.PNTR	FILTAB,FI

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

	FI.FLG	MLT,2,0;;	;MULTIPLE UNIT/REEL
	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	LRS,4,0,11;;	;NON-STANDARD LABEL SIZE
	FI.ITM	NDV,4,12,17;;	;NUMBER OF DEVICES
	FI.ITM	VAL,4,18,35;;	;LINK TO VALTAB DEVICE ENTRY

IFN ANS68,<
	FI.ITM	NFL,5,0,4;;	;[68] NUMBER OF FILE-LIMITS
>
IFN ANS74,<
	FI.ITM	FAM,5,3,4;;	;[74] FILE ACCESS MODE
>
	FI.ITM	ERM,5,5,7;;	;EXTERNAL RECORDING MODE
	FI.ITM	IRM,5,8,10;;	;INTERNAL RECORDING MODE
	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	ACC,6,16,17;;	;[68] ACCESS MODE
	FI.SME	ORG,ACC;;	;[74] ORGANIZATION
	FI.ITM	ACK,6,18,35;;	;ACTUAL KEY LINK

	FI.ITM	NBF,7,0,5;;	;NUMBER OF BUFFERS
	FI.ITM	MRS,7,6,17;;	;MAX. DATA REC. SIZE
	FI.ITM	DRL,7,18,35;;	;DATA RECORD LINK

IFN ANS74,<
	FI.ITM	ALK,8,0,17;;	;[74] 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

IFN ANS68,<
;;[68] THESE DEFINITIONS FOR COBOL-68
	FI.ITM	BBR,11,0,17;;	;BEFORE BEGIN. REEL
	FI.ITM	BBF,11,18,35;;	;BEFORE BEGIN. FILE

	FI.ITM	ABR,12,0,17;;	;AFTER BEGIN. REEL
	FI.ITM	ABF,12,18,35;;	;AFTER BEGIN. FILE

	FI.ITM	BER,13,0,17;;	;BEFORE END REEL
	FI.ITM	BEF,13,18,35;;	;BEFORE END FILE

	FI.ITM	AER,14,0,17;;	;AFTER END REEL
	FI.ITM	AEF,14,18,35;;	;AFTER END FILE
>

IFN ANS74,<
;;[74] THESE DEFINITIONS FOR COBOL-74
	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	SRA,15,0,17;;	;SAME RECORD AREA
	FI.ITM	LRL,15,18,35;;	;LABEL RECORD LINK

	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.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

IFN ANS74,<
	FI.FLG	RLC,18,0;;	;FI.ALC POINTS TO [RECORD]
>
	FI.ITM	BLF,18,4,15;;	;BLOCKING FACTOR
IFN ANS74,<
	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.

IFN ANS74,<
	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;;	;CKECKPOINT EVERY N RECORD COUNT
	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	XXX,27,18,35;;	;NOT USED

	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
IFN ANS68,<
	DA.FLG	LRC,5,24;;	;[68] APPEARS IN LABEL RECORDS CLAUSE
>
IFN ANS74,<
	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,8;;	;DEPENDING CONVERSION ROUTINE
	DA.ITM	KEY,9,9,17;;	;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.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	PUR,1,6;;	;PURE ASCII CHARACTERS
	LI.FLG	ALL,1,7;;	;ALL
	LI.FLG	NLT,1,8;;	;NUMERIC LITERAL
	LI.FLG	FGC,1,9;;	;FIGURATIVE CONSTANT
	LI.FLG	INT,1,10;;	;DECIMAL POINT
	LI.ITM	NCH,1,11,17;;	;NUMBER OF CHARACTERS
	LI.ITM	FCC,1,18,35;;	;FIGURATIVE CONSTANT CODE

	RADIX	8

>	;END OF DEFINE LITB.C


;COMPILER'S CONTAB DEFINITIONS

	DEFINE	COTB.C	<

	RADIX	10

	D.PNTR CONTAB,CO

	CO.ITM	NAM,1,3,17;;	;NAMTAB POINTER

	CO.ITM	DAT,2,0,17;;	;DATTAB LINK
	CO.ITM	NVL,2,18,35;;	;NUMBER OF VALUES

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

	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
IFN ANS74,<
	FL.FLG	DEB,1,7;;	;OBJECT OF USE FOR DEBUGGING
>
	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.ITM	XTW,4,0,17;;	;EXIT WORD ADDRESS
	PR.ITM	FLO,4,18,35;;	;FLOTAB LINK

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

	RADIX	8

>	;END OF DEFINE PRTB.C


	SUBTTL	CDTAB & MNTAB

;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	RDL,3,0,17;;	;RECORD DATA LINK

	CD.ITM	DC,6,0,17;;	;DESTINATION COUNT

IFN ANS74,<
	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 MNTAB 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

	RADIX	8

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

	DEFINE	AKTB.C	<

	RADIX	10

IFN ANS74,<
	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

IFN ANS74,<
	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

	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	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.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.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


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

	RW.ITM	RDL,1,3,17;;	;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.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'

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

	;;RPWTAB CONTROL ENTRY POINTERS

	RW.ITM	DCI,1,0,17;;	;DATAB LINK FOR CONTROL
	RW.SME	SAV,SAM;;	;%PARAM AREA FOR SAVING VALUE

	RW.ITM	CHG,2,0,17;;	;LINK TO CH GROUP
	RW.FLG	RSF,2,9;;	;RESET ON FINAL
	RW.FLG	RSI,2,10;;	;RESET ON IDENTIFIER
	RW.ITM	RST,2,9,10;;	;[651] 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	RSU,2,16;;	;REFERENCED BY 'SUM UPON'
	RW.SME	CFG,NSI;;	;LINK TO CF GROUP

	RW.SME	REE,FIL;;	;TAG OF RESET ROUTINE

	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	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,COTB.C,HLTB.C,USTB.C,
		FLTB.C,PRTB.C,CDTB.C,AKTB.C,RWTB.C,DBTB.C,RNTB.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>,<COTB,C>,<HLTB,C>,<USTB,C>,
<FLTB,C>,<PRTB,C>,<CDTB,C>,<AKTB,C>,<RWTB,A>,<RWTB,B>,<RWTB,C>,<DBTB,C>,<RNTB,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