082E LD.DATA POP HL LD A,(IX+00) AND A JR Z,0873;LD.PROG LD A,H OR L JR Z,084C;LD.DATA.1 DEC HL LD B,(HL) DEC HL LD C,(HL) DEC HL INC BC INC BC INC BC LD (5C5F),IX;X.PTR CALL 19E8;RECLAIM.2 LD IX,(5C5F);X.PTR 084C LD.DATA.1 LD HL,(5C59);E.LINE DEC HL LD C,(IX+0B) LD B,(IX+0C) PUSH BC INC BC INC BC INC BC LD A,(IX-03) PUSH AF CALL 1655;MAKE.ROOM INC HL POP AF LD (HL),A POP DE INC HL LD (HL),E INC HL LD (HL),D INC HL PUSH HL POP IX SCF LD A,FF JP 0802;LD.BLOCK 0873 LD.PROG EX DE,HL LD HL,(5C59);E.LINE DEC HL LD (5C5F),IX;X.PTR LD C,(IX+0B) LD B,(IX+0C) PUSH BC CALL 19E5;RECLAIM.1 POP BC PUSH HL PUSH BC CALL 1655;MAKE.ROOM LD IX,(5C5F);X.PTR INC HL LD C,(IX+0F) LD B,(IX+10) ADD HL,BC LD (5C4B),HL;VARS LD H,(IX+0E) LD A,H AND C0 JR NZ,08AD;LD.PROG.1 LD L,(IX+0D) LD (5C42),HL;NEWPPC LD (IY+0A),00;NSPPC 08AD LD.PROG.1 POP DE POP IX SCF LD A,FF JP 0802;LD.BLOCK 08B6 ME.CONTRL LD C,(IX+0B) LD B,(IX+0C) PUSH BC INC BC RST 0030;BC.SPACES LD (HL),80 EX DE,HL POP DE PUSH HL PUSH HL POP IX SCF LD A,FF CALL 0802;LD.BLOCK POP HL LD DE,(5C53);PROG 08D2 ME.NEW.LP LD A,(HL) AND C0 JR NZ,08F0;ME.VAR.LP 08D7 ME.OLD.LP LD A,(DE) INC DE CP (HL) INC HL JR NZ,08DF;ME.OLD.L1 LD A,(DE) CP (HL) 08DF ME.OLD.L1 DEC DE DEC HL JR NC,08EB;ME.NEW.L2 PUSH HL EX DE,HL CALL 19B8;NEXT.ONE POP HL JR 08D7;ME.OLD.LP 08EB ME.NEW.L2 CALL 092C;ME.ENTER JR 08D2;ME.NEW.LP 08F0 ME.VAR.LP LD A,(HL) LD C,A CP 80 RET Z PUSH HL LD HL,(5C4B);VARS 08F9 ME.OLD.VP LD A,(HL) CP 80 JR Z,0923;ME.VAR.L2 CP C JR Z,0909;ME.OLD.V2 0901 ME.OLD.V1 PUSH BC CALL 19B8;NEXT.ONE POP BC EX DE,HL JR 08F9;ME.OLD.VP 0909 ME.OLD.V2 AND E0 CP A0 JR NZ,0921;ME.VAR.L1 POP DE PUSH DE PUSH HL 0912 ME.OLD.V3 INC HL INC DE LD A,(DE) CP (HL) JR NZ,091E;ME.OLD.V4 RLA JR NC,0912;ME.OLD.V3 POP HL JR 0921;ME.VAR.L1 091E ME.OLD.V4 POP HL JR 0901;ME.OLD.V1 0921 ME.VAR.L1 LD A,FF 0923 ME.VAR.L2 POP DE EX DE,HL INC A SCF CALL 092C;ME.ENTER JR 08F0;ME.VAR.LP 092C ME.ENTER JR NZ,093E;ME.ENT.1 EX AF,AF' LD (5C5F),HL;X.PTR EX DE,HL CALL 19B8;NEXT.ONE CALL 19E8;RECLAIM.2 EX DE,HL LD HL,(5C5F);X.PTR EX AF,AF' 093E ME.ENT.1 EX AF,AF' PUSH DE CALL 19B8;NEXT.ONE LD (5C5F),HL;X.PTR LD HL,(5C53);PROG EX (SP),HL PUSH BC EX AF,AF' JR C,0955;ME.ENT.2 DEC HL CALL 1655;MAKE.ROOM INC HL JR 0958;ME.ENT.3 0955 ME.ENT.2 CALL 1655;MAKE.ROOM 0958 ME.ENT.3 INC HL POP BC POP DE LD (5C53),DE;PROG LD DE,(5C5F);X.PTR PUSH BC PUSH DE EX DE,HL LDIR POP HL POP BC PUSH DE CALL 19E8;RECLAIM.2 POP DE RET 0970 SA.CONTRL PUSH HL LD A,FD CALL 1601;CHAN.OPEN XOR A LD DE,09A1;"Start tape" etc CALL 0C0A;PO.MSG SET 5,(IY+02);TV.FLAG CALL 15D4;WAIT.KEY PUSH IX LD DE,0011 XOR A CALL 04C2 SA.BYTES POP IX LD B,32 0991 SA.1.SEC HALT DJNZ 0991;SA,1,SEC LD E,(IX+0B) LD D,(IX+0C) LD A,FF POP IX JP 04C2;SA.BYTES 09A1 DEFB 80 09A2 DEFM 'Start tape, then press any key' 09C0 DEFB '.'+128,13 09C2 DEFM 'Program:' 09CA DEFB ' '+128,13 09CC DEFM 'Number array:' 09D9 DEFB ' '+128,13 09DB DEFM 'Character array:' 09EB DEFB ' '+128,13 09ED DEFM 'Bytes:' 09F3 DEFB ' '+128 09F4 PRINT.OUT CALL 0B03;PO.FETCH CP 20 JP NC,0AD9;PO.ABLE CP 06 JR C,0A69;PO.QUEST CP 18 JR NC,0A69;PO.QUEST LD HL,0A0B;control table LD E,A LD D,00 ADD HL,DE LD E,(HL) ADD HL,DE PUSH HL JP 0B03;PO.FETCH 0A11 DEFB 0A5F-0A11;PO.COMMA DEFB 0A69-0A12;PO.QUEST DEFB 0A23-0A13;PO.BACK.1 DEFB 0A3D-0A14;PO.RIGHT DEFB 0A69-0A15;PO.QUEST DEFB 0A69-0A16;PO.QUEST DEFB 0A69-0A17;PO.QUEST DEFB 0A4F-0A18;PO.ENTER DEFB 0A69-0A19;PO.QUEST DEFB 0A69-0A1A;PO.QUEST DEFB 0A7A-0A1B;PO.1.OPER DEFB 0A7A-0A1C;PO.1.OPER DEFB 0A7A-0A1D;PO.1.OPER DEFB 0A7A-0A1E;PO.1.OPER DEFB 0A7A-0A1F;PO.1.OPER DEFB 0A7A-0A20;PO.1.OPER DEFB 0A75-0A21;PO.2.OPER DEFB 0A75-0A22;PO.2.OPER 0A23 PO.BACK 1 INC C LD A,22 CP C JR NZ,0A3A;PO.BACK.3 BIT 1,(IY+01);FLAGS JR NZ,0A38;PO.BACK.2 INC B LD C,02 LD A,18 CP B JR NZ,0A3A;PO.BACK.3 DEC B 0A38 PO.BACK.2 LD C,21 0A3A PO.BACK.3 JP 0DD9;CL.SET 0A3D PO.RIGHT LD A,(5C91);P.FLAG PUSH AF LD (IY+57),01;P.FLAG LD A,20 CALL 0B65;PO.CHAR POP AF LD (5C91),A;P.FLAG RET 0A4F PO.ENTER BIT 1,(IY+01);FLAGS JP NZ,0ECD;COPY.BUFF LD C,21 CALL 0C55;PO.SCR DEC B JP 0DD9;CL.SET 0A5F PO.COMMA CALL 0B03;PO.FETCH LD A,C DEC A DEC A AND 10 JR 0AC3;PO.FILL 0A69 PO.QUEST LD A,3F JR 0AD9;PO.ABLE 0A6D PO.TV.2 LD DE,0A87;PO.CONT LD (5C0F),A;TVDATA hi JR 0A80;PO.CHANGE 0A75 PO.2.OPER LD DE,0A6D;PO.TV.2 JR 0A7D;PO.TV.1 0A7A PO.1.OPER LD DE,0A87;PO.CONT 0A7D PO.TV.1 LD (5C0E),A;TVDATA 0A80 PO.CHANGE LD HL,(5C51);CURCHL LD (HL),E INC HL LD (HL),D RET 0A87 PO.CONT LD DE,09F4;PRINT.OUT CALL 0A80;PO.CHANGE LD HL,(5C0E);TVDATA