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 indicatedESID table entry,
the position (n) of the given entry within the reference tablethe 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 isalways 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
noESD 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 waitingelements. The element
contains theESD data item information to be resolved when the
requestedESDID is encountered. PRSERCH ROUTINE (DMSLDRD) Function compares each reference table entry name with the given
name determining (1) whether there is an entry for thatname and (2)
what the storage address of that entry is. This routine is initially entered at PRSERCH, and subsequently at
locationSEReH. 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
Function
entered for several of the routines within the loader.
requested location; branches to the return location +
2. The routine first obtains, from the indicated
the position (n) of the given entry within the reference table
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
4. The result of the subtraction in operation 2, above, is the
storage address of the given reference table entry. If there is
no
routine returns to the location specified by the calling
routine.
5. Adds an element to the chain of waiting
contains the
requested
name determining (1) whether there is an entry for that
what the storage address of that entry is.
location
the loader.
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)