%nitems 3
%nitems 3
MACRO
&LABL SWAPR &ONE, &TWO, &TEMP
IF (%NITEMS() GT 2)
&LABL ST→&ONE &TEMP
RMO &TWO, &ONE
LD→&TWO &TEMP
ELSE
&LABL ST→&ONE $TEMP
RMO &TWO, &ONE
LD→&TWO $TEMP
J $NEXT
$TEMP RESW 1
SNEXT RESW 0
ENDIF
MEND
%NITEMS() = 3
. SWAPR S, T, SWAPAREA
STA SWAPAREA
RMO S,T
LDT SWAPAREA
%NITEMS() = 2
and the call (first macro call, so $ → $AA)
SWAPR S, T
has the expansion
. SWAPR S, T
STA $AATEMP
RMO S,T
LDT $AATEMP
J $AANEXT
$AATEMP RESW 1
$AANEXT RESW 0