2. The routine then checks the number of entries in the reference
table. If the number is zero, the routine performs operation 5; otherwise, the routine performs operation 3.
3. The routine next determines the address of the first (or next)
reference table entry to have its name checked, increments by one the count it is keeping of name COMparisons, and cOmpares the given name with the name contained in that entry. If the
names are identical, PRSERCH branches to the location specified
in the routine that linked to it. PRSERCH then returns the
address of the REFTBL entry; else PRSERCB performs operation 4. 4. The routine then determines whether there is another reference
table entry to be checked. If there is none, the routine
performs operation 5; if there is another, the routine
decrements by one the number of entries remaining and repeats
its operation starting with operation 3.
5. If all the entries have been checked, and none contains the
given name for which this routine is searching, the routine
increments by one the count it is keeping of name comparisons, places that new value in area TBLCT, moves the given name to form a new reference table entry, and returns to the calling
program.
Exits routine exits to either of two locations, both of which are
specified by the routine that linked to this routine. The first
location is that specified in the event that an entry for the given name is found; the second location is that specified in the event
that such as entry is not found. LOADER DATA BASES ESD Card Codes (col. 25 ••• ) £Qde 00 SD (CSECT or START) Oi LD (ENTRY) 02 ER (EXTRN) 04 PC (Private code) 05 CM (COMMON) 06 ID (Pseudo-register) OA WI (WEAK EXTERN) ESIDTB ENTRY The ESD ID table (ESIDTB) is constructed separately for each text deck
processed by the loader. The ESIDTB produces a correspondence between
ESD ID numbers (used on RLD cards) and entries in the loader reference
table (R!FTBL) as specified by the ESD cards. Thus, the ESIDTB is
constructed while processing the ESD cards. It is then used to process
the TXT and RLD cards in the text deck.
The ESIDTB is treated as an array and is accessed by using the ID number as an index. Each ESIDTB entry is 16 bits long. CMS Method of Operation and Program Organization 2-83
1
2
3
4-15 ftegDi.ng If 1, this entry corresponds to a CSECT that has been previously
defined. All TXT cards and RLD cards referring to this CSECT in
this text deck should be ignored.
If 1, this entry corresponds to a CSECT definition (SD). Waiting ESD itells exist for this ESDID. Unused. REFTBL entry number (for example 1, 2, 3, etc.)
Bit 1 is very crucial because it is necessary to use the VALUE field
of the REFTBL if the ID corresponds to an ER, Cft, or FR; but, the INFO field of the REFTBL entry must be used in the ID corresponds to an SD. REFTBI. EntA:Y I 10(0) - - - - - - HAftE 8 (8) 19 (9)
FLAG1 , INFO I 12 (C) 113 (D) NOTEl I VALUE 1 16 (10) 117(11) FLAG2 1 ADDRESS A REFTBL entry is 20 bytes. The fields have the following uses: !AftE Contains the symbolic name from the ESD data item.
Loader 7C
7D
7E
7F 80 81
82
83 90 ESD 00 01 03 07 05 04 02 05 06 Routine XBYTE XfiALF XFULL XDBL XUNDEF XCXD XCOMSET iEAKEXT CTLLIB PR - byte alignment PR - halfword alignment PR - fullword alignment PR - doubleword alignment Undefined symbol
Resolve CXD Define common area
Weak external reference TXTLIBs not to be used to resolve names !!FO Depends upon the type of the ESD item. ESD Item SD (CSECT or START) LD (ENTRY) eft (COftMON) PR (Psuedo Register) INFO Field Relocation factor
Zero
Maximum length
2-84 IBM VM/370 System Logic and Program Determination--Volume 2
Previous Page Next Page