Trailing-Edge
-
PDP-10 Archives
-
BB-H506E-SM
-
cobol/source/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
SEARCH COPYRT
SALL
;COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1974, 1985
;ALL RIGHTS RESERVED.
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
SEARCH INTERM
;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
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
BIT 10 [1373] INDICATES A REPORT HEADING SEEN
BIT 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 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-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 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
IFE ANS74,<
DA.ITM DCR,9,0,8;; ;DEPENDING CONVERSION ROUTINE
DA.ITM KEY,9,9,17;; ;NUMBER OF KEYS FOR OCCURS
>;[1346]
IFN ANS74,<
DA.ITM DCR,9,0,9;; ;[1346] DEPENDING CONVERSION ROUTINE
DA.ITM KEY,9,10,17;; ;[1346] NUMBER OF KEYS FOR OCCURS
>;[1346]
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.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
;;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.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