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