360 Assembly macros

From Rosetta Code

360 Assembly Structured Macros

There is a long history of IBM Assembler 370 Structured Macros. An early very well known version is found in JES328X product. Now there as part of SPM (Structured Programming Macros) concept. A recent version is HLASM Toolkit Features User's Guide (GC26-8710-10) http://publibz.boulder.ibm.com/epubs/pdf/asmtug21.pdf . You will found : <lang 360asm>IF ... THEN ELSE ENDIF DO WHILE=(...) ENDDO DO UNTIL=(...) ENDDO</lang> The classic macro REGEQU for refrerencing the registers is found in all good MACLIBs.
PROLOG and EPILOG are not part of this set my own version is: <lang 360asm> MACRO &N PROLOG &N CSECT

        USING &N,13

@SAVEAR B @STM-@SAVEAR(15)

        DC    17F'0'
        DC    CL8'&N'

@STM STM 14,12,12(13)

        ST    13,4(15)
        ST    15,8(13)
        LR    13,15
        MEND</lang>

<lang 360asm> MACRO &N EPILOG &N CNOP 0,4

        L     13,4(0,13)
        LM    14,12,12(13)
        XR    15,15
        BR    14
        MEND</lang>

See also

  • HLASM Programmer's Guide (SC26-4941-06)

http://publibz.boulder.ibm.com/epubs/pdf/asmp1021.pdf

  • HLASM Language Reference (SC26-4940-06)

http://publibz.boulder.ibm.com/epubs/pdf/asmr1021.pdf

  • HLASM Toolkit Features User's Guide (GC26-8710-10)

http://publibz.boulder.ibm.com/epubs/pdf/asmtug21.pdf