TITLE 'MACRO TO DO AN IF STATEMENT'
         MACRO
         IF    &COND
         GBLC  &STACK(100)
         GBLA  &STACKPT
         GBLB  &ELSEF(100)
&STACKPT SETA &STACKPT+1
&STACK(&STACKPT) SETC '&SYSNDX'
&ELSEF(&STACKPT) SETB 0
          L 0,&COND(1)
          C 0,&COND(3)
          AIF   ('&COND(2)' NE 'EQ').SEQ01
          BNE   IFA&SYSNDX
.SEQ01    ANOP
          AIF ('&COND(2)' NE 'LT').SEQ02
          BC   10,IFA&SYSNDX
.SEQ02    ANOP
          AIF ('&COND(2)' NE 'GT').SEQ03
          BC   12,IFA&SYSNDX
.SEQ03    ANOP
          MEND
          MACRO
          ELSE
          GBLC  &STACK(100)
          GBLA  &STACKPT
          GBLB  &ELSEF(100)
&ELSEF(&STACKPT) SETB 1
          B   IFB&STACK(&STACKPT)
IFA&STACK(&STACKPT) EQU *
          MEND
*
          MACRO
          ENDIF
          GBLC  &STACK(100)
          GBLA  &STACKPT
          GBLB  &ELSEF(100)
          AIF (&ELSEF(&STACKPT)).SEQ02
IFA&STACK(&STACKPT) EQU *
          AGO .SEQ01
.SEQ02    ANOP
IFB&STACK(&STACKPT) EQU *
.SEQ01    ANOP
&STACKPT  SETA &STACKPT-1
          MEND
          EJECT
P1        START
          BALR  12,0
          USING *,12
*         YOUR PROGRAM GOES HERE
          IF (A,LT,B)
            IF (A,LT,C)
              L  1,A
            ELSE
              L  1,C
            ENDIF
          ELSE
            IF (C,GT,B)
               L   1,B
            ELSE
              L   1,C
            ENDIF
          ENDIF
          ST  1,MIN
* TEST IF WITHOUT ELSE
          IF (MIN,LT,=F'0')
            SR  1,1
            ST  1,MIN
          ENDIF
          BR 14
*
*         END OF YOUR PROGRAM
*
A         DC    F'3'
B         DC    F'4'
C         DC    F'2'
MIN       DS    F
          END