7. Goes to location PASSTWO (in RLD routine) to process RLD cards.
8. The routine then clears the ESID table, sets the absolute load
flag on, and branches to the location specified in a general
register (see "Exits"). Exits routine exits to the location specified in a general register.
This may be either of two locations:
1. Location RD in the initial and resume loading routine. This
exit occurs when the END card routine is processing an END card.
2. The location in the LDT card routine that is specified by that
routine's linkage to the END card routine. This exit occurs when the LDT card routine entered this routine to clear the ESID table and set the absolute load flag on. CONTROL CARD ROUTINE - CTLCRD1
Function ---rbIs-routine handles the and LIBRARY control cards. This routine has one entry point, location CTLCRD1. The routine is
entered from the LDT card routine. 1. The CMS function SCAN is called to parse the card.
2. If the card is not an ENTRY or LIBRARY card, the routine
determines whether the NOINV option (no printing of invalid card images) was specified. If printing is suppressed, control
passes to RD in the initial and resume loading routine, where
another card is read. If printing is not suppressed, control
passes to the disk and type output routine (DeSLIO), where the
invalid card image is printed in the load map. If the card is a
valid control card, processing continues. ENTRY Card
----3.--If the name is already defined in REFTBL, its
address is placed in ENTADR. Otherwise, a new entry is
REFTBL, indicating an undefined external reference
resolved by later input or library search), and this
entry's address is placed in ENTADR.
REFTBL
made in
(to be
REFTBL
4. The control card is printed by calling DftSLIO via CTLCRD; it
then exits to RD. 111U!A!i! Car d
5. only nonobligatory reference LIBRARY cards are bandIed; any
others are considered invalid.
6. Each entry-point name is individually isolated and is searched
for in the REFTBL. If it has already been loaded and defined,
nothing is done and the next entry-point name is processed. Otherwise, the nonobligatory bit is set in the flag byte of the
REFTBL entry.
7. Processing continues at operation 4. Method of Operation and Program Organization 2-81
REFADR ROUTINE (DMSLDRB)
Function computes the storage address of a given entry in the reference table. This routine has one entry point, location REFADR. The routine is
entered for several of the routines within the loader. QEerg!!QB 1. Checks to see if requested ESDID is zero. If so, uses LOCCNT as
requested location; branches to the return location + 44; otherwise continues this routine.
2. The routine first obtains, from the indicated ESID table entry,
the position (n) of the given entry within the reference table the nth HEFTEr . 3. The routine then multiplies n by 16 (the number of bytes in each
REFTBL entry) and subtracts this result from the starting
address of the reference table. The starting address of the
reference table is held in area TBLREF; this address is the
highest address in storage, and the reference table is always built downward from that address.
4. The result of the subtraction in operation 2, above, is the
storage address of the given reference table entry. If there is
no ESD for the entry, goes to operation 5; otherwise, this
routine returns to the location specified by the calling
routine.
5. Adds an element to the chain of waiting elements. The element
contains the ESD data item information to be resolved when the
requested ESDID is encountered. PRSERCH ROUTINE (DMSLDRD) Function compares each reference table entry name with the given
name determining (1) whether there is an entry for that name and (2)
what the storage address of that entry is. This routine is initially entered at PRSERCH, and subsequently at
location SEReH. The routine is entered from several routines within
the loader. 1. This routine begins its operation by obtaining the number of
entries currently in the reference table (this number is
contained in area TBLCT), the size of a reference table entry
(16 bytes), and the starting address of the reference table
(always the highest address in storage, contained in area
TBLREF) .• 2-82 IBM VM/370 System Logic and Program Determination--Voluae 2
Previous Page Next Page