Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

The MF operand

&pagelevel(4)&pagelevel

The MF operand determines the type of macro generation.

MF value

Meaning/effect

MF=S

Default value; first generates the instruction part, then the data area. The data area does not contain any field names. The standard header is initialized.

MF=D

Generates a data area with field names and explanatory equates. The formation of field names can be influenced by the PREFIX or MACID operands in the call. The data area begins with the DSECT statement. This type of macro expansion is referred to below as generation of a DSECT.
A DSECT describes the structure of a storage area, without itself occupying storage space. The location counter is reset to zero.

MF=C

Generates a data area with field names and explanatory equates. The formation of field names can be influenced by the PREFIX or MACID operand in the call.

MF=L

Generates only the data area.
The data area does not contain any field names. The standard header is initialized. The generated data area can be referenced in a call with MF=E.

MF=E

Only the instructions necessary for calling the function module are generated. The instruction part usually ends with an SVC. The address of the data area with the parameter values must be specified in the macro call.

MF=(E,addr)
MF=(E,(r))
Only the processing code (SVC) is generated. addr or the register denoted by r contains the address of the data area (parameter list) for the MF=L expansion.

MF=E[,PARAM=addr]
MF=E[,PARAM=(r)]
The PARAM operand specifies the address of the operand list.
r = register containing the address of the data area. The register must be loaded with this address value before the macro call is made.

MF=M

The call generates instructions which supply all explicitly specified function operands in the existing operand list with the new values.

Table 28: MF operand in macros

When the instruction part and operand list are generated separately, the values specified in the assembly parameters (VERSION, PARMOD) must be the same.

The use of a standard header is dependent on the assembly parameter VERSION. Without standard header, the SVC 133 is generated in the instruction part; with standard header, the SVC 190.

Parameter lists must be aligned on a word boundary.

The parameter list should be supplied with values only through the corresponding macro with the explicitly specified operands. Complex interdependencies often exist between the individual bits, especially in the case of CATJV. Direct amendment of the parameter list is therefore inadvisable.

During macro processing, the address of the parameter list is loaded into register R1 (with MF=E and MF=S).