procedure
" ["loc:
"] NAME
:sym "[
" [RL1
:regslist] "]
" [",
" RL2
:regslist]...
eproc
"
NAME
.
RL2
is declared, the specified registers are stored in the stack.
...
" is processed.
RL2
is declared, the registers are restored from the stack.
RL1
tells how to assign the arguments when the procedure is called.
RL2
is always .l.
loc:
is declared, the procedure definition will be local, i.e. its labels will start with '.'.
NAME
can be up to 30 characters long.
procedure...
.
procedure loc:WaitMouse[]
.w btst.b #6,$bfe001
bne.s .w
eproc
assembly
.0000000
.w btst.b #6,$bfe001
bne.s .w
.0000001 rts
procedure SlowClr[a0/d0.b],a0/d1
move.l d0,d1
lsr.l #2,d1
subq.l #1,d1
.c clr.l (a0)+
dbra d1,.c
eproc
assembly
p0000000 movem.l a0/d1,-(sp) ;store RL2 registers
move.l d0,d1
lsr.l #2,d1
subq.l #1,d1
.c clr.l (a0)+
dbra d1,.c
p0000001 movem.l (sp)+,a0/d1 ;restore registers
rts