JR 2734;S.LOOP 2773 S.TIGHTER PUSH DE LD A,C BIT 6,(IY+01);FLAGS JR NZ,2790;S.NEXT AND 00111111B ADD A,08 LD C,A CP 10;AND JR NZ,2788;S.NOT.AND SET 6,C JR 2790;S.NEXT 2788 S.NOT.AND JR C,2761;S.RPORT.C CP 17;'+' JR Z,2790;S.NEXT SET 7,C 2790 S.NEXT PUSH BC RST 0020;NEXT.CHAR JP 24FF;S.LOOP 2795 DEFB '+',CF DEFB '-',C3 DEFB '*',C4 DEFB '/',C5 DEFB 'up arrow',C6 DEFB '=',CE DEFB '>',CC DEFB '<',CD DEFB '<=',C9 DEFB '>=',CA DEFB '<>',CB DEFB 'OR',C7 DEFB 'AND',C8 DEFB 00 27B0 DEFB 06;'-' DEFB 08;'*' DEFB 08;'/' DEFB 0A;'up arrow' DEFB 02;'OR' DEFB 03;'AND' DEFB 05;'<=' DEFB 05;'>=' DEFB 05;'<>' DEFB 05;'>' DEFB 05;'<' DEFB 05;'=' DEFB 06;'+' 27BD S.FN.SBRN CALL 2530;SYNTAX.Z JR NZ,27F7;SF.RUN RST 0020;NEXT.CHAR CALL 2C8D;ALPHA JP NC,1C8A;REPORT.C RST 0020;NEXT.CHAR CP '$' PUSH AF JR NZ,27D0;SF.BRKT.1 RST 0020;NEXT.CHAR 27D0 S.F.BRKT.1 CP '(' JR NZ,27E6;SF.RPORT.C RST 0020;NEXT.CHAR CP ')' JR Z,27E9;SF.FLAG.6 27D9 SF.ARGMTS CALL 24FB;SCANNING RST 0018;GET.CHAR CP ',' JR NZ,27E4;SF.BRKT.2 RST 0020;NEXT.CHAR JR 27D9;SF.ARGMTS 27E4 SF.BRKT.2 CP ')' 27E6 SF.RPRT.C JP NZ,1C8A;REPORT.C 27E9 SF.FLAG.6 RST 0020;NEXT.CHAR LD HL,5C3B;FLAGS RES 6,(HL) POP AF JR Z,27F4;S.SYN.EN SET 6,(HL) 27F4 SF.SYN.EN JP 2712;S.CONT.2 27F7 SF.RUN RST 0020;NEXT.CHAR AND 11011111B LD B,A RST 0020;NEXT.CHAR SUB '$' LD C,A JR NZ,2802;SF.ARGMT1 RST 0020;NEXT.CHAR 2802 SF.ARGMT1 RST 0020;NEXT.CHAR PUSH HL LD HL,(5C53);PROG DEC HL 2808 SF.FND.DF LD DE,00CE;'DEF FN' PUSH BC CALL 1D86;LOOK.PROG POP BC JR NC,2814;SF.CP.DEF 2812 REPORT.P RST 0008;ERROR.1 DEFB 18;"FN without DEF" 2814 SF.CP.DEF PUSH HL CALL 28AB;FN.SKPOVR AND 11011111B CP B JR NZ,2825;FN.NOT.FD CALL 28AB;FN.SKPOVR SUB '$' CP C JR Z,2831;SF.VALUES 2825 SF.NOT.FD POP HL DEC HL LD DE,0200 PUSH BC CALL 198B;EACH.STMT POP BC JR 2808;SF.FND.DF 2831 SF.VALUES AND A CALL Z,28AB;FN.SKPOVR POP DE POP DE LD (5C5D),DE;CH.ADD CALL 28AB;FN.SKPOVR PUSH HL CP ')' JR Z,2885;SF.R.BR.2 2843 SF.ARG.LP INC HL LD A,(HL) CP 0E LD D,01000000B JR Z,2852;SF.ARG.VL DEC HL CALL 28AB;FN.SKPOVR INC HL LD D,00 2852 SF.ARG.VL INC HL PUSH HL PUSH DE CALL 24FB;SCANNING POP AF XOR (IY+01);FLAGS AND 01000000B JR NZ,288B;REPORT.Q POP HL EX DE,HL LD HL,(5C65);STKEND LD BC,0005 SBC HL,BC LD (5C65),HL;STKEND LDIR EX DE,HL DEC HL CALL 28AB;FN.SKPOVR CP ')' JR Z,2885;SF.R.BR.2 PUSH HL RST 0018;GET.CHAR CP ',' JR NZ,288B;REPORT.Q RST 0020;NEXT.CHAR POP HL CALL 28AB;FN.SKPOVR JR 2843;SF.ARG.LP 2885 SF.R.BR.2 PUSH HL RST 0018;GET.CHAR CP ')' JR 288D;SF.VALUE 288B REPORT.Q RST 0008;ERROR.1 DEFB 19;"Parameter error" 288D SF.VALUE POP DE EX DE,HL LD (5C5D),HL;CH.ADD LD HL,(5C0B);DEFADD EX (SP),HL LD (5C0B),HL;DEFADD PUSH DE RST 0020;NEXT.CHAR RST 0020;NEXT.CHAR CALL 24FB;SCANNING POP HL LD (5C5D),HL;CH.ADD POP HL LD (5C0B),HL;DEFADD RST 0020;NEXT.CHAR JP 2712;S.CONT.2 28AB FN.SKPOVR INC HL LD A,(HL) CP 21 JR C,28AB;FN.SKPOVR RET 28B2 LOOK.VARS SET 6,(IY+01);FLAGS RST 0018;GET.CHAR CALL 2C8D;ALPHA JP NC,1C8A;REPORT.C PUSH HL AND 00011111B LD C,A RST 0020;NEXT.CHAR PUSH HL CP '(' JR Z,18EF;V.RUN/SYN SET 6,C CP '$' JR Z,28DE;V.STR.VAR SET 5,C CALL 2C88;ALPHNUM JR NC,28E3;V.TEST.FN 28D4 V.CHAR CALL 2C88;ALPHNUM JR NC,18EF;V.RUN/SYN RES 6,C RST 0020;NEXT.CHAR JR 28D4;V.CHAR 28DE V.STR.VAR RST 0020;NEXT.CHAR RES 6,(IY+01);FLAGS 28E3 V.TEST.FN LD A,(5C0C);DEFADD hi AND A JR Z,18EF;V.RUN/SYN CALL 2530;SYNTAX.Z JP NZ,2951;STK.F.ARG 28EF V.RUN/SYN LD B,C CALL 2530;SYNTAX.Z JR NZ,28FD;V.RUN LD A,C AND 11100000B SET 7,A LD C,A JR 2934;V.SYNTAX 28FD V.RUN LD HL,(5C4B);VARS 2900 V.EACH LD A,(HL) AND 01111111B JR Z,2932;V.80.BYTE CP C JR NZ,292A;V.NEXT RLA ADD A,A JP P,293F;V.FOUND.2 JR C,293F;V.FOUND.2 POP DE PUSH DE PUSH HL 2912 V.MATCHES INC HL 2913 V.SPACES LD A,(DE) INC DE CP " " JR Z,2913;V.SPACES OR 00100000B CP (HL) JR Z,2912;V.MATCHES OR 10000000B CP (HL) JR NZ,2929;V.GET.PTR LD A,(DE) CALL 2C88;ALPHNUM JR NC,293E;V.FOUND 2929 V.GET.PTR POP HL 292A V.NEXT PUSH BC CALL 19B8;NEXT.ONE EX DE,HL POP BC JR 2909;V.EACH 2932 V.80.BYTE SET 7,B 2934 V.SYNTAX POP DE RST 0018;GET.CHAR CP '(' JR Z,2943;V.PASS SET 5,B JR 294B;V.END 293E V.FOUND.1 POP DE 293F V.FOUND.2 POP DE POP DE PUSH HL RST 0018;GET.CHAR 2943 V.PASS CALL 2C88;ALPHNUM JR NC,294B;V.END RST 0020;NEXT.CHAR JR 2943;V.PASS 294B V.END POP HL RL B BIT 6,B RET 2951 STK.F.ARG LD HL,(5C0B);DEFADD LD A,(HL) CP ')' JP Z,28EF;V.RUN/SYN 295A SFA.LOOP LD A,(HL) OR 01100000B LD B,A INC HL LD A,(HL) CP 0E JR Z,296B;SFA.CP.VR DEC HL CALL 28AB;FN.SKPOVR INC HL RES 5,B 296B SFA.CP.VR LD A,B CP C JR 2981;SA.MATCH INC HL INC HL INC HL INC HL INC HL CALL 28AB;FN.SKPOVR CP ')' JP Z,28EF;V.RUN/SYN CALL 28AB;FN.SKPOVR JR 295A;SFA.LOOP 2981 SFA.MATCH BIT 5,C JR NZ,2991;SFA.END INC HL