 MACRO
&lab long &stat
&lab anop
 lcla &t
 lcla &len
 lclc &ch
&t seta 0
&len seta l:&stat
.a
 aif &len=0,.b
&ch amid &stat,&len,1
 aif ("&ch"="x").or.("&ch"="y").or.("&ch"="i"),.i
 aif ("&ch"="a").or.("&ch"="m"),.m
.c
&len seta &len-1
 ago ^a
.i
 longi on
&t seta &t+16
 ago ^c
.m
 longa on
&t seta &t+32
 ago ^c
.b
 aif &t=0,.d
 rep #&t
.d
 mend
 MACRO
&lab short &stat
&lab anop
 lcla &t
 lcla &len
 lclc &ch
&t seta 0
&len seta l:&stat
.a
 aif &len=0,.b
&ch amid &stat,&len,1
 aif ("&ch"="x").or.("&ch"="y").or.("&ch"="i"),.i
 aif ("&ch"="a").or.("&ch"="m"),.m
.c
&len seta &len-1
 ago ^a
.i
 longi off
&t seta &t+16
 ago ^c
.m
 longa off
&t seta &t+32
 ago ^c
.b
 aif &t=0,.d
 sep #&t
.d
 mend
 MACRO
&lab str &string
&lab dc i1'l:&string',c'&string'
 MEND
 macro
&lab ph4 &n1
 aif "&n1"="*",.f
 lclc &c
&lab anop
&c amid &n1,1,1
 aif "&c"="#",.d
 aif s:longa=1,.a
 rep #%00100000
.a
 aif "&c"<>"{",.b
&c amid &n1,l:&n1,1
 aif "&c"<>"}",.g
&n1 amid &n1,2,l:&n1-2
 ldy #2
 lda (&n1),y
 pha
 lda (&n1)
 pha
 ago .e
.b
 aif "&c"<>"[",.c
 ldy #2
 lda &n1,y
 pha
 lda &n1
 pha
 ago .e
.c
 aif "&c"<>"<",.c1
&n1 amid &n1,2,l:&n1-1
 pei &n1+2
 pei &n1
 ago .e
.c1
 lda &n1+2
 pha
 lda &n1
 pha
 ago .e
.d
&n1 amid &n1,2,l:&n1-1
 pea +(&n1)|-16
 pea &n1
 ago .f
.e
 aif s:longa=1,.f
 sep #%00100000
.f
 mexit
.g
 mnote "Missing closing '}'",16
 mend
 MACRO
&lab _MMStartUp
&lab ldx #$0202
 jsl $E10000
 MEND
 MACRO
&lab _AcceptRequests
&lab ldx #$1B01
 jsl $E10000
 MEND
 MACRO
&lab jcs &loc
&lab bcc *+5
 jmp &loc
 mend
 MACRO
&lab jcc &loc
&lab bcs *+5
 jmp &loc
 mend
 MACRO
&lab _FWEntry
&lab ldx #$2403
 jsl $E10000
 MEND
 MACRO
&lab _DInfoGS &params
&lab jsl $E100A8
 dc i2"$202C"
 dc i4"&params"
 MEND
 MACRO
&lab _DStatusGS &params
&lab jsl $E100A8
 dc i2"$202D"
 dc i4"&params"
 MEND
