Address
You can code any of the following expressions after the
keyword and equal sign:
- Any expression that is valid for an A-type address constant. For
example:
MODCB ACB=ACB1,APPLID=NAME1,AM=VTAM ⋮ NAME1 DC X'07' DC CL7'INQUIRY' - A register number or the label of an EQU instruction for the register,
enclosed in parentheses. For example:
L 3,ADRNAME MODCB ACB=ACB1,APPLID=(3),AM=VTAM ⋮ ADRNAME DC A(NAME1)Note: This form is prohibited if you are using the “simple” list form of the macroinstruction (MF=L). List forms are explained in Forms of the manipulative macroinstruction. - An expression of the form (S,expr) where expr is
any expression valid for an S-type address constant. This form of
operand is especially useful for gaining access to a control block
field with a DSECT. For example, the program has already used GENCB
to build an ACB in dynamically allocated storage and has placed the
address of the ACB in register 7. The DSECT ACBMAP is used to access
the information in MYACB:
LA 5,MYACB USING ACBMAP,5 MODCB ACB=(7),APPLID=(S,APPL1),AM=VTAM ⋮ MYACB DS XL108 ACBMAP DSECT DS XL72 APPL1 DS A DS XL32 ENDNote: This form is prohibited if you are using the “simple” list form of the macroinstruction (MF=L). - An expression of the form (*,expr) where expr is
any expression valid for an S-type address constant. The address specified
by expr is indirect; that is, it is the
address of a fullword that contains the operand. For example, the
program determines which APPLID address is used, and primes register
5 with the appropriate displacement into APPLIST:
L 7,APPLIST(5) MODCB ACB=ACB1,APPLID=(*,0(7)),AM=VTAM ⋮ APPLIST EQU * DC A(APPL1) DC A(APPL2)