LD A,B OR C RET Z PUSH HL RST 0030;BC.SPACES PUSH DE PUSH BC LD D,H LD E,L INC HL LD (HL)," " LDDR PUSH HL CALL 2BF1;STK.FETCH POP HL EX (SP),HL AND A SBC HL,BC ADD HL,BC JR NC,2B9B;L.LENGTH LD B,H LD C,L 2B9B L.LENGTH EX (SP),HL EX DE,HL LD A,B OR C JR Z,2BA3;L.IN.W/S LDIR 2BA3 L.IN.W/S POP BC POP DE POP HL 2BA6 L.ENTER EX DE,HL LD A,B OR C RET Z PUSH DE LDIR POP HL RET 2BAF L.ADD$ DEC HL DEC HL DEC HL LD A,(HL) PUSH HL PUSH BC CALL 2BC6;L.STRING POP BC POP HL INC BC INC BC INC BC JP 19E8;RECLAIM.2 2BC0 L.NEW$ LD A,11011111B LD HL,(5C4D);DEST AND (HL) 2BC6 L.STRING PUSH AF CALL 2BF1;STK.FETCH EX DE,HL ADD HL,BC PUSH BC DEC HL LD (5C4D),HL;DEST INC BC INC BC INC BC LD HL,(5C59);E.LINE DEC HL CALL 1655;MAKE.ROOM LD HL,(5C4D);DEST POP BC PUSH BC INC BC LDDR EX DE,HL INC HL POP BC LD (HL),B DEC HL LD (HL),C POP AF 2BEA L.FIRST DEC HL LD (HL),A LD HL,(5C59);E.LINE DEC HL RET 2BF1 STK.FETCH LD HL,(5C65);STKEND DEC HL LD B,(HL) DEC HL LD C,(HL) DEC HL LD D,(HL) DEC HL LD E,(HL) DEC HL LD A,(HL) LD (5C65),HL;STKEND RET 2C02 DIM CALL 28B2;LOOK.VARS 2C05 D.RPORT.C JP NZ,1C8A;REPORT.C CALL 2530;SYNTAX.Z JR NZ,2C15;D.RUN RES 6,C CALL 2996;STK.VAR CALL 1BEE;CHECK.END 2C15 D.RUN JR C,2C1F;D.LETTER PUSH BC CALL 19B8;NEXT.ONE CALL 19E8;RECLAIM.2 POP BC 2C1F D.LETTER SET 7,C LD B,00 PUSH BC LD HL,0001 BIT 6,C JR NZ,2C2D;D.SIZE LD L,05 2C2D D.SIZE EX DE,HL 2C2E D.NO.LOOP RST 0020;NEXT.CHAR LD H,FF CALL 2ACC;INT.EXP1 JP C,2A20;REPORT.3 POP HL PUSH BC INC H PUSH HL LD H,B LD L,C CALL 2AF4;GET.HL*DE EX DE,HL RST 0018;GET.CHAR CP ',' JR Z,2C2E;D.NO.LOOP CP ')' JR NZ,2C05;D.RPORT.C RST 0020;NEXT.CHAR POP BC LD A,C LD L,B LD H,00 INC HL INC HL ADD HL,HL ADD HL,DE JP C,1F15;REPORT.4 PUSH DE PUSH BC PUSH HL LD B,H LD C,L LD HL,(5C59);E.LINE DEC HL CALL 1655;MAKE.ROOM INC HL LD (HL),A POP BC DEC BC DEC BC DEC BC INC HL LD (HL),C INC HL LD (HL),B POP BC LD A,B INC HL LD (HL),A LD H,D LD L,E DEC DE LD (HL),00 BIT 6,C JR Z,2C7C;DIM.CLEAR LD (HL)," " 2C7C DIM.CLEAR POP BC LDDR 2C7F DIM.SIZES POP BC LD (HL),B DEC HL LD (HL),C DEC HL DEC A JR NZ,2C7F;DIM.SIZES RET 2C88 ALPHANUM CALL 2D1B;NUMERIC CCF RET C 2C8D ALPHA CP 'A' CCF RET NC CP 'Z' RET C CP 'a' CCF RET NC CP 'z' RET 2C9B DEC.TO.FP CP 'BIN' JR NZ,2CB8;NOT.BIN LD DE,0000 2CA2 BIN.DIGIT RST 0020;NEXT.CHAR SUB '1' ADC A,00 JR NZ,2CB3;BIN.END EX DE,HL CCF ADC HL,HL JP C,31AD;REPORT.6 EX DE,HL JR 2CA2;BIN.DIGIT 2CB3 BIN.END LD B,D LD C,E JP 2D2B;STACK.BC 2CB8 NOT.BIN CP '.' JR Z,2CCB;DECIMAL CALL 2D3B;INT.TO.FP CP '.' JR 2CEB;E.FORMAT RST 0020;NEXT.CHAR CALL 2D1B;NUMERIC JR C,2CEB;E.FORMAT JR 2CD5;DEC.STO.1 2CCB DECIMAL RST 0020;NEXT.CHAR CALL 2D1B;NUMERIC 2CCF DEC.RPT.C JP C,1C8A;REPORT.C RST 0028;FP.CALC DEFB A0;stk-zero DEFB 38;end-calc 2CD5 DEC.STO.1 RST 0028;FP.CALC DEFB A1;stk-one DEFB C0;st-mem-0 DEFB 02;delete DEFB 38;end-calc 2CDA NXT.DGT.1 RST 0018;GET.CHAR CALL 2D22;STK.DIGIT JR C,2CEB;E.FORMAT RST 0028;FP.CALC DEFB E0;get-mem-0 DEFB A4;stk-ten DEFB 05;division DEFB C0;st-mem-0 DEFB 04;multiply DEFB 0F;addition DEFB 38;end-calc RST 0020;NEXT.CHAR JR 2CDA;NXT.DGT.1 2CEB E.FORMAT CP 'E' JR Z,2CF2;SIGN.FLAG CP 'e' RET NZ 2CF2 SIGN.FLAG LD B,FF RST 0020;NEXT.CHAR CP '+' JR Z,2CFE;SIGN.DONE CP '-' JR 2CFF;ST.E.PART INC B 2CFE SIGN.DONE RST 0020;NEXT.CHAR 2CFF ST.E.PART CALL 2D1B;NUMERIC JR C,2CCF;DEC.RPT.C PUSH BC CALL 2D3B;INT.TO.FP CALL 2DD5;FP.TO.A POP BC JP C,31AD;REPORT.6 AND A JP M,31AD;REPORT.6 INC B JR Z,2D18;E.FP.JUMP NEG 2D18 E.FP.JUMP JP 2D4F;E.TO.FP 2D1B NUMERIC CP '0' RET C CP '9'+1 CCF RET 2D22 STK.DIGIT CALL 2D1B;NUMERIC RET C SUB 30 2D28 STACK.A LD C,A LD B,00 2D2B STACK.BC LD IY;5C3A;ERR.NR XOR A LD E,A LD D,C LD C,B LD B,A CALL 2AB6;STK.STORE RST 0028;FP.CALC DEFB 38;end-calc AND A RET 2D3B INT.TO.FP PUSH AF RST 0028;FP.CALC DEFB A0;stk-zero DEFB 38;end-calc POP AF 2D40 NXT.DGT.2 CALL 2D22;STK.DIGIT RET C RST 0028;FP.CALC DEFB 01;exchange DEFB A4;stk-ten DEFB 04;multiply