macro &l pstr &s &l dc i1'L:&s' dc c'&s' mend macro &l short &a,&b lclb &i lclb &m &a amid &a,1,1 &m setb ("&a"="M").or.("&a"="m") &i setb ("&a"="I").or.("&a"="i") aif c:&b=0,.a &b amid &b,1,1 &m setb ("&b"="M").or.("&b"="m").or.&m &i setb ("&b"="I").or.("&b"="i").or.&i .a &l sep #&m*32+&i*16 aif .not.&m,.b longa off .b aif .not.&i,.c longi off .c mend macro &l long &a,&b lclb &i lclb &m &a amid &a,1,1 &m setb ("&a"="M").or.("&a"="m") &i setb ("&a"="I").or.("&a"="i") aif c:&b=0,.a &b amid &b,1,1 &m setb ("&b"="M").or.("&b"="m").or.&m &i setb ("&b"="I").or.("&b"="i").or.&i .a &l rep #&m*32+&i*16 aif .not.&m,.b longa on .b aif .not.&i,.c longi on .c mend macro &l ~GetNextEvent &p1,&p2 &l ph2 &p1 ph4 &p2 ldx #$0A06 jsl $E10000 mend macro &l ph2 &n1 &l anop aif "&n1"="*",.f lclc &c &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 lda (&n1) pha ago .e .b aif "&c"="<",.c lda &n1 pha ago .e .c &n1 amid &n1,2,l:&n1-1 pei &n1 ago .e .d &n1 amid &n1,2,l:&n1-1 pea &n1 ago .f .e aif s:longa=1,.f sep #%00100000 .f mexit .g mnote "Missing closing '}'",16 mend macro &l ph4 &n1 &l anop aif "&n1"="*",.f lclc &c &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 _EMStatus &lab ldx #$0606 jsl $E10000 MEND MACRO &lab _GetInGlobals &lab ldx #$0C0C jsl $E10000 MEND MACRO &lab _GetInputDevice &lab ldx #$120C jsl $E10000 MEND MACRO &lab _GetOutGlobals &lab ldx #$0D0C jsl $E10000 MEND MACRO &lab _GetOutputDevice &lab ldx #$130C jsl $E10000 MEND MACRO &lab _SetInGlobals &lab ldx #$090C jsl $E10000 MEND MACRO &lab _SetInputDevice &lab ldx #$0F0C jsl $E10000 MEND MACRO &lab _SetOutGlobals &lab ldx #$0A0C jsl $E10000 MEND MACRO &lab _SetOutputDevice &lab ldx #$100C jsl $E10000 MEND macro &l ~InitTextDev &p1 &l ph2 &p1 ldx #$150C jsl $E10000 mend macro &l ~SetInGlobals &p1,&p2 &l ph2 &p1 ph2 &p2 ldx #$090C jsl $E10000 mend macro &l ~SetInputDevice &p1,&p2 &l ph2 &p1 ph4 &p2 ldx #$0F0C jsl $E10000 mend macro &l ~SetOutGlobals &p1,&p2 &l ph2 &p1 ph2 &p2 ldx #$0A0C jsl $E10000 mend macro &l ~SetOutputDevice &p1,&p2 &l ph2 &p1 ph4 &p2 ldx #$100C jsl $E10000 mend macro &l ~WriteChar &p1 &l ph2 &p1 ldx #$180C jsl $E10000 mend macro &l ~DisposeHandle &p1 &l ph4 &p1 ldx #$1002 jsl $E10000 mend macro &l ~NewHandle &p1,&p2,&p3,&p4 &l ph4 &p1 ph2 &p2 ph2 &p3 ph4 &p4 ldx #$0902 jsl $E10000 mend macro &l ~WriteLine &p1 &l ph4 &p1 ldx #$1A0C jsl $E10000 mend MACRO &lab _MMStartUp &lab ldx #$0202 jsl $E10000 MEND MACRO &lab _DisposeHandle &lab ldx #$1002 jsl $E10000 MEND