Peter you can think a macro (as Charles implemented it) as the following:
inline function pos(x,y)
x=cos(an1)*xa*cos(an3)+xc
y=sin(an2)*ya*sin(an3)+yc
end function
The "inline function" will substitute this:
pos(x1,y1)
for i=1 to e
pos(x2,y2)
Line x1, y1, x2, y2, 1, cr,cg,cb
an1+=st*ti1
an2+=st*ti2
an3+=st*ti3
xa*=da
ya*=da
x1=x2
y1=y2
next
with that:
x1=cos(an1)*xa*cos(an3)+xc
y1=sin(an2)*ya*sin(an3)+yc
for i=1 to e
pos(x2,y2)
Line x1, y1, x2, y2, 1, cr,cg,cb
an1+=st*ti1
an2+=st*ti2
an3+=st*ti3
xa*=da
ya*=da
x1=x2
y1=y2
next
at compile time; which makes the app faster as there is one less function call to do...