Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Macro syntax for format operands

&pagelevel(3)&pagelevel

The macro operands may be subdivided into two groups:

Control operands

Function operands

Operands which determine the macro form and generation

Interface-specific operands

Control operands

MF

PREFIX

MACID

PARAM

XPAND

controls code generation (“macro form”)

controls name generation (first character)

controls name generation (2nd to 4th characters)

controls parameter area addressing

controls data structure expansion

Macro forms

The MF operand determines the macro form and can have any of the following values:

MF = C | D | L | E | M

MF = C

The layout of the data structure (usually the parameter area) is generated, with names being specified for each individual field and equate. The data structure becomes part of the current control section (CSECT/DSECT).

The function operands of the macro are not evaluated.

PREFIX

The PREFIX operand is used for name generation. PREFIX is one, and only one, letter that is used as the first letter of all names. The identifier of the functional unit of which the macro is a part is used as the default PREFIX. In order to avoid the use of identical names, PREFIX should be specified explicitly if the same data structure is used more than once within a module.

MACID

The MACID operand is also used for name generation and defines the 2nd to 4th characters of a name. The default value is formed by two characters serving as the development group ID and one character serving as a macro-specific identifier. The default value guarantees that the same name will not occur twice within one component group.

MF = D

as with MF = C; in addition, a DSECT statement is generated. The MACID operand is ignored, i.e. the default value is assumed.

 

MF = L

generates a parameter area entity by evaluating the function operands. This macro form generates no field names; the label specification is used for naming the generated constants.

MF = E

generates the instructions required for the function call. The function operands are ignored. The PARAM control operand must be used to ensure that the parameter area can be addressed correctly:

PARAM=<address>

parameter area address, given as a name.

PARAM=(<reg>)

parameter area address, to be fetched from the register with the name <reg>.

MF = M

modifies a parameter area previously initialized by copying a MF=L form, evaluating the specified function operands in the process. Any operands that are not specified retain their original state.

The macro caller is responsible for ensuring the consistency of the parameter area.

MF=M cannot be used unless the MF=D form or MF=C form was invoked with the same values for the PREFIX and MACID operands and a USING statement was issued to address the DSECT (MF=D form).