TITLE 'DEMONSTRATE MACROS, A SIMPLE ADDITION MACRO'
MACRO
ADD &A,&B,&C
* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
LCLC &FO
LCLB &BFLAG
&FO SETC '&A'
AIF (K'&A EQ 1).SEQ03
AIF (NOT((K'&A EQ 2)AND('&A'(2,2) GE '0')AND('&A'(2,2) LE
AND('&A'(1,1) EQ 'R'))).SEQ01
&FO SETC '&A'(2,2)
&BFLAG SETB 1
AGO .SEQ03
.SEQ01 ANOP
AIF (NOT((K'&A EQ 3)AND('&A'(2,3) GE '10')AND
('&A'(2,3) LE '15')AND('&A'(1,1) EQ 'R'))).SEQ02
&FO SETC '&A'(2,3)
&BFLAG SETB 1
AGO .SEQ03
.SEQ02 ANOP
.SEQ03 ANOP
AIF (&BFLAG).SEQ04
L 0,&A
AGO .SEQ05
.SEQ04 ANOP
LR 0,&FO
.SEQ05 ANOP
A 0,&B
ST 0,&C
MEND
P1 START
BALR 12,0
USING *,12
* YOUR PROGRAM GOES HERE
ADD A,B,C
L 5,D
L 13,=F'100'
ADD R5,E,F
ADD D5,E,F1
ADD R13,E,F2
ADD D13,E,F3
BR 14
* END OF YOUR PROGRAM
A DC F'3'
B DC F'4'
C DS F
D DC F'8'
D5 DC F'5'
D13 DC F'13'
E DC F'4'
F DS F
F1 DS F
F2 DS F
F3 DS F
END