LD DE,(5C65);STKEND CALL 33C0;MOVE.FP EX DE,HL LD (5C65),HL;STKEND 2991 SFA.END POP DE POP DE XOR A INC A RET 2996 STK.VAR XOR A LD B,A BIT 7,C JR NZ,29E7;SV.COUNT BIT 7,(HL) JR NZ,29AE;SV.ARRAYS INC A 29A1 SV.SIMPLE$ INC HL LD C,(HL) INC HL LD B,(HL) INC HL EX DE,HL CALL 2AB2;STK.STO.$ RST 0018;GET.CHAR JP 2A49;SV.SLICE? 29AE SV.ARRAYS INC HL INC HL INC HL LD B,(HL) BIT 6,C JR Z,29C0;SV.PTR DEC B JR Z,29A1;SV.SIMPLE$ EX DE,HL RST 0018;GET.CHAR CP '(' JR NZ,2A20;REPORT.3 EX DE,HL 29C0 SV.PTR EX DE,HL JR 29E7;SV.COUNT 29C3 SV.COMMA PUSH HL RST 0018;GET.CHAR POP HL CP ',' JR Z,29EA;SV.LOOP BIT 7,C JR Z,2A20;REPORT.3 BIT 6,C JR NZ,29D8;SV.CLOSE CP ')' JR NZ,2A12;SV.RPT.C RST 0020;NEXT.CHAR RET 29D8 SV.CLOSE CP ')' JR Z,2A48;SV.DIM CP 'TO' JR NZ,2A12;SV.RPT.C 29E0 SV.CH.ADD RST 0018;GET.CHAR DEC HL LD (5C5D),HL;CH.ADD JR 2A45;SV.SLICE 29E7 SV.COUNT LD HL,0000 29EA SV.LOOP PUSH HL RST 0020;NEXT.CHAR POP HL LD A,C CP 11000000B JR NZ,29FB;SV.MULT RST 0018;GET.CHAR CP ')' JR Z,2A48;SV.DIM CP 'TO' JR Z,29E0;SV.CH.ADD 29FB SV.MULT PUSH BC PUSH HL CALL 2AEE;DE,(DE+1) EX (SP),HL EX DE,HL CALL 2ACC;INT.EXP1 JR C,2A20;REPORT.3 DEC BC CALL 2AF4;GET.HL*DE ADD HL,BC POP DE POP BC DJNZ 29C3;SV.COMMA BIT 7,C 2A12 SV.RPT.C JR NZ,2A7A;SL.RPT.C PUSH HL BIT 6,C JR NZ,2A2C;SV.ELEM$ LD B,D LD C,E RST 0018;GET.CHAR CP ')' JR Z,2A22;SV.NUMBER 2A20 REPORT.3 RST 0008;ERROR.1 DEFB 02;"Subscript wrong" 2A22 SV.NUMBER RST 0020;NEXT.CHAR POP HL LD DE,0005 CALL 2AF4;GET.HL*DE ADD HL,BC RET 2A2C SV.ELEM$ CALL 2AEE;DE,(DE+1) EX (SP),HL CALL 2AF4;GET.HL*DE POP BC ADD HL,BC INC HL LD B,D LD C,E EX DE,HL CALL 2AB1;STK.STO.0 RST 0018;GET.CHAR CP ')' JR Z,2A48;SV.DIM CP ',' JR NZ,2A20;REPORT.3 2A45 SV.SLICE CALL 2A52;SLICING 2A48 SV.DIM RST 0020;NEXT.CHAR 2A49 SV.SLICE? CP '(' JR Z,2A45;SV.SLICE RES 6,(IY+01);FLAGS RET 2A52 SLICING CALL 2530;SYNTAX.Z CALL NZ,2BF1;STK.FETCH RST 0020;NEXT.CHAR CP ')' JR Z,2AAD;SL.STORE PUSH DE XOR A PUSH AF PUSH BC LD DE,0001 RST 0018;GET.CHAR POP HL CP 'TO' JR Z,2A81;SL.SECOND POP AF CALL 2ACD;INT.EXP2 PUSH AF LD D,B LD E,C PUSH HL RST 0018;GET.CHAR POP HL CP 'TO' JR Z,2A81;SL.SECOND CP ')' 2A7A SL.RPT.C JP NZ,1C8A;REPORT.C LD H,D LD L,E JR 2A94;SL.DEFINE 2A81 SL.SECOND PUSH HL RST 0020;NEXT.CHAR POP HL CP ')' JR Z,2A94;SL.DEFINE POP AF CALL 2ACD;INT.EXP2 PUSH AF RST 0018;GET.CHAR LD H,B LD L,C CP ')' JR NZ,2A7A;SL.RPT.C 2A94 SL.DEFINE POP AF EX (SP),HL ADD HL,DE DEC HL EX (SP),HL AND A SBC HL,DE LD BC,0000 JR C,2AA8;SL.OVER INC HL AND A JP M,2A20;REPORT.3 LD B,H LD C,L 2AA8 SL.OVER POP DE RES 6,(IY+01);FLAGS 2AAD SL.STORE CALL 2530;SYNTAX.Z RET Z 2AB1 STK.STO.0 XOR A 2AB2 STK.STO.$ RES 6,(IY+01);FLAGS 2AB6 STK.STORE PUSH BC CALL 33A9;TEST.5.SP POP BC LD HL,(5C65);STKEND LD (HL),A INC HL LD (HL),E INC HL LD (HL),D INC HL LD (HL),C INC HL LD (HL),B INC HL LD (5C65),HL;STKEND RET 2ACC INT.EXP1 XOR A 2ACD INT.EXP2 PUSH DE PUSH HL PUSH AF CALL 1C82;EXPT.1NUM POP AF CALL 2530;SYNTAX.Z JR Z,2AEB;I.RESTORE PUSH AF CALL 1E99;IN.INT2 POP DE LD A,B OR C SCF JR Z,2AE8;I.CARRY POP HL PUSH HL AND A SBC HL,BC 2AE8 I.CARRY LD A,D SBC A,00 2AEB I.RESTORE POP HL POP DE RET 2AEE DE,(DE+1) EX DE,HL INC HL LD E,(HL) INC HL LD D,(HL) RET 2AF4 GET.HL*DE CALL 2530;SYNTAX.Z RET Z CALL 30A9;HL=HL*DE JP C,1F15;REPORT.4 RET 2AFF LET LD HL,(5C4D);DEST BIT 1,(IY+37);FLAGX JR Z,2866;L.EXISTS LD BC,0005 2B0B L.EACH.CH INC BC 2B0C L.NO.SP INC HL LD A,(HL) CP " " JR Z,2B0C;L.NO.SP JR NC,281F;L.TEST.CH CP 10 JR C,2B29;L.SPACES CP 16 JR NC,2B29;L.SPACES INC HL JR 2B0C;L.NO.SP 2B1F L.TEST.CH CALL 2C88;ALPHANUM JR C,2B0B;L.EACH.CH CP '$' JP Z,2BC0;L.NEW$ 2B29 L.SPACES LD A,C LD HL,(5C59);E.LINE DEC HL CALL 1655;MAKE.ROOM INC HL INC HL EX DE,HL PUSH DE LD HL,(5C4D);DEST DEC DE SUB 06 LD B,A JR Z,2B4F;L.SINGLE 2B3E L.CHAR INC HL LD A,(HL) CP 21 JR C,2B3E;L.CHAR OR 00100000B INC DE LD (DE),A DJNZ 2B3E;L.CHAR OR 10000000B LD (DE),A LD A,11000000B 2B4F L.SINGLE LD HL,(5C4D);DEST XOR (HL) OR 00100000B POP HL CALL 2BEA;L.FIRST PUSH HL 2B59 L.NUMERIC RST 0028;FP.CALC DEFB 02;delete DEFB 38;end-calc POP HL LD BC,0005 AND A SBC HL,BC JR 2BA6;L.ENTER 2B66 L.EXISTS BIT 6,(IY+01);FLAGS JR Z,2B72;L.DELETE$ LD DE,0006 ADD HL,DE JR 2B59;L.NUMERIC 2B72 L.DELETE$ LD HL,(5C4D);DEST LD BC,(5C72);STRLEN BIT 0,(IY+37);FLAGX JR NZ,2BAF;L.ADD$