Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

S-type macros

&pagelevel(4)&pagelevel

Operand values specified in S-type macros are transferred to the functional module in the form of a data area. The data area is part of the macro expansion. It contains the data definitions and storage definitions (DC and DS statements) required for transferring the operand values.

S-type macros support specification of the MF operand (see "S-type macros"). There are various ways of specifying this operand, depending on the functionality of the different macros. There are three MF formats:

MF format

for

Special features

MF format 1

Macros with 24-bit interface:
return code in register R15
Macros with 31-bit interface:
return code in register R15 or (if available) in
standard header

MF=S is the presetting (default
format) for the MF operand.

MF format 2

Macros with 31-bit interface:
return code in standard header

MF=S is the presetting (default
format) for the MF operand.

MF format 3

Macros with 31-bit interface:
return code in standard header

There is no particular presetting
for the MF operand.

Table 2: MF formats for the S-type macros

Detailed diagrams of all three MF formats are given below, followed by a description of the operands and operand values.
Examples of macros in the S, D, E, M and L form are given on "Macro Command Language Processor macros".
The different forms are described on "S-type macros".

MF format 1

[opaddr] MACRO

{[MF=S] [,op1,...,opn] /

MF= {L / (L,pre)} /

MF= {D / (D,pre)} /

MF= {(C,pre) / C} /

MF=(E, {addr / (r) })}

[,PARMOD=24 / 31]

The default format MF=S may not be specified explicitly for most macros in MF format 1. Any exceptions are indicated in the description of the macro (see also the operand description for MF=S, "S-type macros").
With the 24-bit interface, prefix notation (e.g. (C,pre)) may not be used for the C/D/L form. Any exceptions are indicated in the description of the macro involved.

MF format 2

[opaddr] MACRO

{[MF=S] [,op1,...,opn] /

MF=L [,op1,...,opn][,PREFIX=p] /

MF=M,op1,...,opn[,PREFIX=p][,MACID=mac] [,PARAM=addr / (r) / <var: pointer> / <reg: pointer>] /

MF=D[,PREFIX=p] /

MF=C[,PREFIX=p][,MACID=mac] /

MF=E[,PARAM=addr / (r) / <var: pointer> / (<reg: pointer>)]}

MF format 3

[opaddr] MACRO

{MF=L [,op1,...,opn][,PREFIX=p] /

MF=M,op1,...,opn[,PREFIX=p][,MACID=mac] /

MF=R,op1,...,opn[,PREFIX=p][,MACID=mac] /

MF=D[,PREFIX=p] /

MF=C[,PREFIX=p][,MACID=mac] /

MF=E[,PARAM=addr / (r) / <var: pointer> (<reg: pointer>)]}

opaddr
Assembler name: If MF=L, identifies the address of the data area, otherwise optional.opaddr can be used to address the data area with MF=(E,addr) or MF=M,PARAM=.

op1,...,opn
represent functional operands to be specified.

PARMOD=
controls macro expansion. Either the 24-bit or the 31-bit interface is generated.

24
The 24-bit interface is generated. Data areas and instructions use 24-bit addresses (address space <= 16 Mb).

31
The 31-bit interface is generated. Data areas and instructions use 31-bit addresses (address space <= 2 Gb). Data areas start with the standard header.

MF=
determines the type of macro generation. Seven forms of macro can be distinguished, depending on the value specified for the MF operand:

S (default form: presetting for MF formats 1 and 2):
This operand value may not be specified in format 3.
MF=S may not be specified explicitly for most macros in MF format 1, i.e. the default form is selected by omitting the MF operand. MF=S is not included in the macro format for these macros. MF=S is included in the description of the call format for macros that allow MF=S to be specified explicitly.
First the instruction part is generated and then the data area, taking the operand values specified in the macro into account. The data area contains no field names and no explanatory equates. Initialization values are entered in the standard header.