4. The SLC card contains a name only, and there is no reference
table entry for that name. The SLC card routine branches via ERRSLC to the Disk and Type output routine (DMSLIO), which
generates an error message for that name.
5. The SLC card contains both an address and a name. If there is a
REFTBL entry for the name, the sum of the current address of the
name and the address specified on the SLC card 1S placed 1n LOCCT; control returns to the initial and resume loading routine
to get another card. If there is no REFTBL entry for the name,
the SLC card routine branches via ERRSLC to the Disk and Type Output routine, which generates an error message for the name. ICS CARD ROUTINE - C2AE1
Function ---rbIs- routine establishes a reference table entry for "the control-seg_ent name on the ICS card if no entry for that name exists, adjusts the location counter to a fullword boundary, if
necessary, and adds the card-specified control-segment length to the
location counter if This routine has one entry point,
entered from the initial and resume ICS card.
named C2AE1. The routine is
loading routine when it finds an 1. The routine begins its operation with a test of card type. If
the card being processed is not an ICS card, the routine
branches to the ESD card analysis routine; otherwise, processing
continues in this routine.
2. The routine tests for a hexadecimal address on the ICS card. If
an address is present, the routine links to the DMSLSEA subroutine to convert the address to binary, otherwise the
routine branches via BADCRD to the disk and type output routine (DMSLIO). 3. The routine next links to the REFTBL search routine, which
determines whether there is a reference table entry for the
card-specified control-segment name. If such an entry is found,
the REFTBL search routine branches to the initial and resume loading routine; otherwise, the REFTBL search routine places the
control-segment name in the reference table, and processing
continues.
4. The routine determines whether the card-specified
control-segment length is zero or greater than zero. If the
length is zero, the routine places the current location counter
value in the reference table entry as the control segment's
starting address (ORG2), and branches to the initial and resume loading routine. If the length is greater than zero, the
routine sets the current location counter value at a fullword
boundary address. The routine then Flaces this adjusted current
location counter value in the reference table entry, adjusts the
location counter by adding the specified control-segment length
to it, and branches to RD in the initial and resume loading
routine to get another card. CMS Method of Operation and Program Organization 2-73
ESD TYPE 0 CARD ROUTINE - C3AA3
Function ---rhis-routine creates loader table and ESID table entries for the card-specified control section. Inl£I This routine has one entry point, location C3AA3. The routine is
entered from the ESD card analysis routine. 1. If this is the first section definition, its ESDID is proved.
2. This routine first determines whether a loader table (REFTBL)
entry has already been established for the card-specified
control section. To do this, the routine links to the REFTEL
search routine. The ESD type 0 card routine's subsequent
operation depends on whether there already is a REFTBL entry for
this control section. If there is such an entry, processing
continues with operation 5, below; if there is not, the REFTEL
search routine places the name of this control section in REFTBL, and processing continues with operation 3. 3. The routine obtains the card-specified control section length
and performs operation 4.
4. The routine links to location C2AJ1 in the lCS card routine and
returns to C3AD4 to obtain the current storage address of the
control section from the REFTBL entry, inserts the REFTBL entry
position (N -where this is the Nth REFTBL entry) in the
card-specified ESID table location, and calculates the
difference between the current address of the
control section and its card-specified (assembled) address.
This difference is the relocation factor; it is placed in the
REFTBL entry for this control section. If previous ESD's have
been waiting for this CSECT, a branch is taken to SDDEF, where
the waiting elements are processed. A flag is set in the REFTEL
entry to indicate a section definition.
5. The entry found in the REFTBL is examined to determine whether
it had been defined by a COMMON. If so, it is converted from a to a CSECT and performs operation 3.
6. If the entry had not been defined previously by an ESD type 0, processing continues at 3.
7. If the entry had been defined previously as other than COMMON, DMSLIO is called via ERROR" to print a warning message, "DUPLICATE IDENTIFIER". The entry in the ESlD table is set
negative so that the CSECT will be skipped (that is, not loaded) hy the TIT and RLD processing routines.
ESD TYPE 1 CARD ROUTINE - ENTESD
Function establishes a loader table entry for the entry point
specified on the ESD card, unless such an entry already exists. !D!II This routine is entered from the ESD card analysis routine.
2-74 IBM VM/310 System Logic and Program Determination--Volume 2
Previous Page Next Page