General
Application area: | XS programming; see "XS programming" |
Macro type: | Type O; see "O-type macros" |
the user has the choice between a 24-bit addressing mode and a 31-bit addressing mode (AMODE=24/31). Programs stored above the 16-Mb boundary must be run in 31-bit addressing mode.
Those macros which did not have 31-bit interfaces have been extended by this type of interface. The former interface is retained and referred to as the 24-bit interface.Data areas and instructions use 24-bit addresses for the 24-bit interface and 31-bit addresses for the 31-bit interface. The 31-bit interface may be used in 24-bit addressing mode also. In the latter case, the addresses contained in the data area are interpreted as 24-bit addresses (i.e. the leftmost byte is not evaluated).
Macro description
The GPARMOD macro serves to assign, at program assembly time, one of the values
24 or 31 to the global Assembler variable &SYSMOD. &SYSMOD is evaluated at the time those macros are generated which allow for both a 24-bit and a 31-bit interface, but which were issued without the operand PARMOD=... being specified. Depending on the value of &SYSMOD either the 24-bit or the 31-bit interface is generated for the subsequent macros. Note that any specification of the PARMOD operand in a particular macro call prevails over the value in &SYSMOD at macro generation time.
Macro format and description of operands
GPARMOD |
[24 / 31] |
24
The 24-bit interface is generated for the subsequent macros. Data lists and instructions use 24-bit addresses (address space <= 16 Mb).
31
The 31-bit interface is generated for the subsequent macros. Data lists and instructions use 31-bit addresses (address space <= 2 Gb).
Examples
MAC1, MAC2 and MAC3 refer to macros which can generate both a 24-bit and a 31-bit interface.
: : GPARMOD 31 ——————————————————————————————————————————————————————— (1) MAC1 op1, ..., op4 MAC2 op1, op2, op3 MAC3 op1, ..., op7 : : : : GPARMOD 24 ——————————————————————————————————————————————————————— (2) MAC1 op1, ..., op4 MAC2 op1, ..., PARMOD=31 MAC3 op1, ..., op7 : : : : GPARMOD 31 ——————————————————————————————————————————————————————— (3) MAC1 op1, ..., PARMOD=24 MAC2 op1, ..., PARMOD=24 MAC3 op1, ..., op7 : :
(1) | &SYSMOD is set to 31. Since the subsequent macros are issued without the PARMOD operand specified, the 31-bit interface is generated for each of these macros. |
(2) | &SYSMOD is set to 24. For MAC1 and MAC3, the 24-bit interface is generated, for MAC2 the 31-bit interface. |
(3) | &SYSMOD is set to 31. For MAC1 and MAC2, the 24-bit interface is generated in accordance with the value specified for the PARMOD operand; for MAC3, the 31-bit interface is generated as specified for &SYSMOD. |