Several ways of communicating between segments of an overlay program
are discussed in this section. A higher level or assembler language
program can use a CALL statement or a CALL macro instruction, respectively,
to cause control to be passed to a symbol defined in another segment.
The CALL can cause the segment to be loaded if it is not already present
in storage. An assembler language program can also use three additional
ways to communicate between segments:
- A branch instruction that causes a segment to be loaded and control
to be passed to a symbol defined in that segment.
- A segment load (SEGLD) macro instruction, which requests loading
of a segment. Processing continues in the requesting segment while
the requested segment is being loaded.
- A segment load and wait (SEGWT) macro instruction, which requests
loading of a segment. Processing continues in the requesting segment
only after the requested segment is loaded.
Any of the four methods can be used to make inclusive references.
Only the CALL and branch can be used to make exclusive references.
Do not use the SEGLD or the SEGWT macro instructions to make exclusive
references. Both imply that processing is to continue in the requesting
segment. An exclusive reference leads to erroneous results when the
program is executed.