The processor can treat addresses as having either 24 or 31 bits. Addressing mode (AMODE) describes whether the processor is using 24-bit or 31-bit addresses. Programs can reside in 24-bit addressable areas or beyond the 24-bit addressable area (above 16 megabytes). Residency mode (RMODE) specifies whether the program must reside in the 24-bit addressable area or can reside anywhere in 31-bit addressable storage.
Addressing mode (AMODE) and residency mode (RMODE) are program attributes specified (or defaulted) for each CSECT, load module, and load module alias. These attributes are the programmer's specification of the addressing mode in which the program is expected to get control and where the program is expected to reside in virtual storage.
A 370-XA or 370-ESA processor can operate with either 24-bit addresses (16 megabytes of addressability) or 31-bit addresses (2 gigabytes of addressability). This ability of the processor to permit the execution of programs in 24-bit addressing mode as well as programs in 31-bit addressing mode is called bimodal operation. A program's AMODE attribute determines whether the program is to receive control with 24-bit or 31-bit addresses. Once a program gets control, the program can change the AMODE if necessary.
In 24-bit addressing mode, the processor treats all virtual addresses as 24-bit values. This makes it impossible for a program in 24-bit addressing mode to address virtual storage with an address greater than 16,777,215 (16 megabytes) because that is the largest number that a 24-bit binary field can contain.
In 31-bit addressing mode, the processor treats all virtual addresses as 31-bit values.
Each load module and each alias entry has an AMODE attribute.
A CSECT can have only one AMODE, which applies to all its entry points. Different CSECTs in a load module can have different AMODEs.
RMODE specifies where a program is expected to reside in virtual storage. The RMODE attribute is not related to central storage requirements. (RMODE 24 indicates that a program is coded to reside in virtual storage below 16 megabytes. RMODE ANY indicates that a program is coded to reside anywhere in virtual storage.)
Each load module and each alias entry has an RMODE attribute. The alias entry is assigned the same RMODE as the main entry.
Programs without these characteristics can reside anywhere in virtual storage.
Addressing mode and residency mode describes AMODE and RMODE processing and 31-bit addressing support of AMODE and RMODE in detail.