Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

GPARMOD - Control macro expansion

&pagelevel(3)&pagelevel

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.