Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Example Macro Expansion of PUTMSG

For the code fragment,


. . .

JEQ NEXT
DUMPM PUTMSG =C’COP 3601’, =X'04', MSGLEN
NEXT STA LAST

. . .

assuming that 4 prior macro expansions have occurred before the


macro facility encounters this code fragment (so the $ system
qualifier is at $AE) , then the expansion will be
. . . Note: the macro facility has
to be “smart enough” to not
JEQ NEXT expand $ a 2nd time
.DUMPM PUTMSG =C’COP 3601’, =X'04', MSGLEN
DUMPM STA $AESAVA
STX $AESAVX
CLEAR X
.$AELOOP PUTC (=C’COP 3601’,X), =X'04'
$AELOOP STA $AFSAVE
LDCH =C’COP 3601’,X
J $AFLOOP
$AFSAVE RESW 1
$AFLOOP TD =X'04
JEQ $AFLOOP PUTC expansion:
($ system qualifier
WD =X'04
has the value $AF)
LDA $AFSAVE
TIX MSGLEN
JLT $AELOOP
LDA $AESAVA
LDX $AESAVX
J $AENEXT
$AESAVA RESW 1 PUTMSG expansion:
$AESAVX RESW 1 ($ system qualifier
$AENEXT RESW 0 has the value $AE)
NEXT STA LAST

. . .

You might also like