POP BC JR C,1D84;REPORT.I RST 0020;NEXT.CHAR OR 00100000B CP B JR Z,1D7C;F.FOUND RST 0020;NEXT.CHAR JR 1D64;F.LOOP 1D7C F.FOUND RST 0020;NEXT.CHAR LD A,01 SUB D LD (5C44),A;NSPPC RET 1D84 REPORT.I RST 0008;ERROR.1 DEFB 11;"FOR without NEXT" 1D86 LOOK.PROG LD A,(HL) CP ':' JR Z,1DA3;LOOK.P.2 1D8B LOOK.P.1 INC HL LD A,(HL) AND 11000000B SCF RET NZ LD B,(HL) INC HL LD C,(HL) LD (5C42),BC;NEWPPC INC HL LD C,(HL) INC HL LD B,(HL) PUSH HL ADD HL,BC LD B,H LD C,L POP HL LD D,00 1DA3 LOOK.P.2 PUSH BC CALL 198B;EACH.STMT POP BC RET NC JR 1D8B;LOOK.P.1 1DAB NEXT BIT 1,(IY+37);FLAGX JP NZ,1C2E;REPORT.2 LD HL,(5C4D);DEST BIT 7,(HL) JR Z,1DDB;REPORT.1 INC HL LD (5C68),HL;MEM RST 0028;FP.CALC DEFB E0;get-mem-0 DEFB E2;get-mem-2 DEFB 0F;addition DEFB C0;st-mem-0 DEFB 02;delete DEFB 38;end-calc CALL 1DDA;NEXT.LOOP RET C LD HL,(5C68);MEM LD DE,000F ADD HL,DE LD E,(HL) INC HL LD D,(HL) INC HL LD H,(HL) EX DE,HL JP 1E73;GO.TO.2 1DD8 REPORT.1 RST 0008;ERROR.1 DEFB 00;"NEXT without FOR" 1DDA NEXT.LOOP RST 0028;FP.CALC DEFB E1;get-mem-1 DEFB E0;get-mem-0 DEFB E2;get-mem-2 DEFB 36;less-0 DEFB 00;jump-true DEFB 02;to NEXT.1 DEFB 01;exchange 1DE2 NEXT.1 DEFB 03;subtract DEFB 37;greater-0 DEFB 00;jump-true DEFB 04;to NEXT.2 DEFB 38;end-calc AND A RET 1DE9 NEXT.2 DEFB 38;end-calc SCF RET 1DEC READ.3 RST 0020;NEXT.CHAR 1DED READ CALL 1C1F;CLASS.01 CALL 2530;SYNTAX.Z JR Z,1E1E;READ.1 RST 0018;GET.CHAR LD (5C5F),HL;X.PTR LD HL,(5C57);DATADD LD A,(HL) CP ',' JR Z,1E0A;READ.1 LD E,'DATA' CALL 1D86;LOOK.PROG JR NC,1E0A;READ.1 1E08 REPORT.E RST 0008;ERROR.1 DEFB 0D;"Out of DATA" 1E0A READ.1 CALL 0077;TEMP.PTR1 CALL 1C56;VAL.FET.1 RST 0018;GET.CHAR LD (5C57),HL;DATADD LD HL,(5C5F);X.PTR LD (IY+26),00;X.PTR CALL 0078;TEMP.PTR2 1E1E READ.2 RST 0018;GET.CHAR CP ',' JR Z,1DEC;READ.1 CALL 1BEE;CHECK.END RET 1E27 DATA CALL 2530;SYNTAX.Z JR NZ,1E37;DATA.2 1E2C DATA.1 CALL 24FB;SCANNING CP ',' CALL NZ,1BEE;CHECK.END RST 0020;NEXT.CHAR JR 1E2C;DATA.1 1E37 DATA.2 LD A,'DATA' 1E39 PASS.BY LD B,A CPDR LD DE,0200 JP 198B;EACH.STMT 1E42 RESTORE CALL 1E99;FIND.INT2 1E45 REST.RUN LD H,B LD L,C CALL 196E;LINE.ADDR DEC HL LD (5C57),HL;DATADD RET 1E4F RANDOMIZE CALL 1E99;FIND.INT2 LD A,B OR C JR NZ,1E5A;RAND.1 LD BC,(5C78);FRAMES 1E5A RAND.1 LD (5C76),BC;SEED RET 1E5F CONTINUE LD HL,(5C6E);OLDPPC LD D,(IY+36);OSPCC JR 1E73;GO.TO.2 1E67 GO.TO CALL 1E99;FIND.INT2 LD H,B LD L,C LD D,00 LD A,H CP 11110000B JR NC,1E9F;REPORT.B 1E73 GO.TO.2 LD (5C42),HL;NEWPPC LD (IY+0A),D;NSPPC RET 1E7A OUT CALL 1E85;TWO.PARAM OUT (C),A RET 1E60 POKE CALL 1E85;TWO.PARAM LD (BC),A RET 1E85 TWO.PARAM CALL 2DD5;FP.TO.A JR C,1E9F;REPORT.B JR Z,1E8E;TWO.P.1 NEG 1E8E TWO.P.1 PUSH AF CALL 1E99;FIND.INT2 POP AF RET 1E94 FIND.INT1 CALL 2DD5;FP.TO.A JR 1E9C FIND.I.1 1E99 FIND.INT2 CALL 2DA2;FP.TO.BC 1E9C FIND.I.1 JR C,1E9F;REPORT.B RET Z 1E9F REPORT.B RST 0008;ERROR.1 DEFB 0A;"Integer out of range" 1EA1 RUN CALL 1E67 GO.TO LD BC,0000 CALL 1E45;REST.RUN JR 1EAF;CLEAR.RUN 1EAC CLEAR CALL 1E99;FIND.INT2 1EAF CLEAR.RUN LD A,B OR C JR NZ,1EB7;CLEAR.1 LD BC,(5CB2);RAMTOP 1EB7 CLEAR.1 PUSH BC LD DE,(5C4B);VARS LD HL,(5C59);E.LINE DEC HL CALL 19E5;RECLAIM.1 CALL 0D6B;CLS LD HL,(5C65);STKEND LD DE,0032;50d ADD HL,DE POP DE SBC HL,DE JR NC,1EDA;REPORT.M LD HL,(5CB4);P.RAMT AND A SBC HL,DE JR NC,1EDC;CLEAR.2 1EDA REPORT.M RST 0008;ERROR.1 DEFB 15;"RAMTOP no good" 1EDC CLEAR.2 EX DE,HL LD (5CB2),HL;RAMTOP POP DE POP BC LD (HL),3E DEC HL LD SP,HL PUSH BC LD (5C3D),SP;ERR.SP EX DE,HL JP (HL) 1EED GO.SUB POP DE LD H,(IY+0D);SUBPPC INC H EX (SP),HL INC SP LD BC,(5C45);PPC PUSH BC PUSH HL LD (5C3D),SP;ERR.SP PUSH DE CALL 1E67;GO.TO.1 LD BC,0014 1F05 TEST.ROOM LD HL,(5C65);STKEND ADD HL,BC JR C,1F15;REPORT.4 EX DE,HL LD HL,0050;80d ADD HL,DE JR C,1F15;REPORT.4 SBC HL,SP RET C 1F15 REPORT.4 LD L,03;"Out of memory" JP 0055,ERROR.3 1F1A FREE.MEM LD BC,0000 CALL 1F05;TEST.ROOM LD B,H LD C,L RET 1F23 RETURN POP BC POP HL POP DE LD A,D CP 3E JR Z,1F36;REPORT.7 DEC SP EX (SP),HL EX DE,HL LD (5C3D),SP;ERR.SP PUSH BC JP 1E73;GO.TO.2 1F36 REPORT.7 PUSH DE PUSH HL RST 0008;ERROR.1 DEFB 06;"RETURN without GO SUB" 1F3A PAUSE CALL 1E99;FIND.INT2 1F3D PAUSE.1 HALT DEC BC LD A,B OR C JR Z,1F4F;PAUSE.END LD A,B AND C INC A JR NZ,1F49;PAUSE.2 INC BC 1F49 PAUSE.2 BIT 5,(IY+01);FLAGS JR Z,1F3D;PAUSE.1 1F4F PAUSE.END RES 5,(IY+01);FLAGS RET 1F54 BREAK.KEY LD A,7F IN A,(FE) RRA RET C LD A,FE IN A,(FE) RRA RET 1F60 DEF.FN CALL 2530;SYNTAX.Z JR Z,1F6A;DEF.FN.1 LD A,'DEF FN' JP 1E39;PASS.BY 1F6A DEF.FN.1 SET 6,(IY+01);FLAGS CALL 2C8D;ALPHA JR NC,1F89;DEF.FN.4 RST 0020;NEXT.CHAR CP '$' JR NZ,1F7D;DEF.FN.2