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
             END
    Note: 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)