MACRO &lab csubroutine &parms,&work &lab anop aif c:&work,.a lclc &work &work setc 0 .a gbla &totallen gbla &worklen &worklen seta &work &totallen seta 0 aif c:&parms=0,.e lclc &len lclc &p lcla &i &i seta 1 .b &p setc &parms(&i) &len amid &p,2,1 aif "&len"=":",.c &len amid &p,1,2 &p amid &p,4,l:&p-3 ago .d .c &len amid &p,1,1 &p amid &p,3,l:&p-2 .d &p equ &totallen+4+&work &totallen seta &totallen+&len &i seta &i+1 aif &i<=c:&parms,^b .e tsc aif &work=0,.f sec sbc #&work tcs .f phd tcd mend MACRO &lab creturn &r &lab anop lclc &len aif c:&r,.a lclc &r &r setc 0 &len setc 0 ago .h .a &len amid &r,2,1 aif "&len"=":",.b &len amid &r,1,2 &r amid &r,4,l:&r-3 ago .c .b &len amid &r,1,1 &r amid &r,3,l:&r-2 .c aif &len<>2,.d ldy &r ago .h .d aif &len<>4,.e ldx &r+2 ldy &r ago .h .e aif &len<>10,.g ldy #&r ldx #^&r ago .h .g mnote 'Not a valid return length',16 mexit .h aif &totallen=0,.i lda &worklen+2 sta &worklen+&totallen+2 lda &worklen+1 sta &worklen+&totallen+1 .i pld tsc clc adc #&worklen+&totallen tcs aif &len=0,.j tya .j rtl mend MACRO &LAB PH4 &N1 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 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 FCLASSS &LAB PEA $021C LDX #$090A JSL $E10000 MEND MACRO &LAB FCLASSD &LAB PEA $011C LDX #$090A JSL $E10000 MEND MACRO &LAB FCLASSX &LAB PEA $001C LDX #$090A JSL $E10000 MEND MACRO &LAB FX2S &LAB PEA $0210 LDX #$090A JSL $E10000 MEND MACRO &LAB FX2D &LAB PEA $0110 LDX #$090A JSL $E10000 MEND MACRO &LAB FCMPX &LAB PEA $0008 LDX #$090A JSL $E10000 MEND MACRO &LAB FEXP2X &LAB PEA $000A LDX #$0B0A JSL $E10000 MEND MACRO &LAB FEXP1X &LAB PEA $000C LDX #$0B0A JSL $E10000 MEND MACRO &LAB FLN1X &LAB PEA $0004 LDX #$0B0A JSL $E10000 MEND MACRO &LAB FLOG2X &LAB PEA $0002 LDX #$0B0A JSL $E10000 MEND MACRO &LAB FLOGBX &LAB PEA $001A LDX #$090A JSL $E10000 MEND MACRO &LAB FX2I &LAB PEA $0410 LDX #$090A JSL $E10000 MEND MACRO &LAB FTINTX &LAB PEA $0016 LDX #$090A JSL $E10000 MEND MACRO &LAB FRINTX &LAB PEA $0014 LDX #$090A JSL $E10000 MEND MACRO &LAB FX2L &LAB PEA $0310 LDX #$090A JSL $E10000 MEND MACRO &LAB FXPWRY &LAB PEA $0012 LDX #$0B0A JSL $E10000 MEND MACRO &LAB FREMX &LAB PEA $000C LDX #$090A JSL $E10000 MEND MACRO &LAB FSCALBX &LAB PEA $0018 LDX #$090A JSL $E10000 MEND