ZXTape! H4x4CAP.ASM(}` P( ORG 63000  ENT $  LD IY,#5C3A RES 0,(IY+2)  CALL OBJ  CALL PRN  CALL SETCH  JP CICL 2CHAR DEFS 6 3BUF DEFS 20 4BM DEFW 50000 5AMP DEFW 128*32+50000 6STRLEN DEFW #10 7WORK DEFW 0 8COORD DEFW 0 9PTR DEFW #10A0 :P_VER DEFW 0 ;P_HOR DEFW 0 <HGT DEFW 8 =CURS DEFW 0 >START DEFW 41616 ?CLAST DEFB #0 @COL DEFB #38 AV_PG DEFW 0 BDATA DEFW 0 CFLOW DEFW 256 DQCLAST DEFB #1F ESCRB EQU 50000-6912 PVECT DEFW COLOR,UNDO,OK,VIEW,EXIT,SETF,TRACE,TRACE OUTNUM LD H,B  LD L,C  LD BC,0  PUSH BC  LD DE,#2710  AND A L1 SBC HL,DE  INC C  JR NC,L1 ! ADC HL,DE & DEC C + LD DE,#3E8 0L2 SBC HL,DE 5 INC B : JR NC,L2 ? ADC HL,DE D DEC B I LD (CHAR),BC N POP BC S LD DE,#64 XL3 SBC HL,DE ] INC C b JR NC,L3 g ADC HL,DE l DEC C q LD DE,#A vL4 SBC HL,DE { INC B  JR NC,L4  ADD HL,DE  DEC B  LD (CHAR+2),BC  LD (CHAR+4),HL  LD B,5  LD HL,CHAR DD LD A,(HL)  ADD A,#30  RST #10  INC HL  DJNZ DD  RET CONV LD HL,CHAR " LD DE,0 $ LD B,5 &LOOP LD A,(HL) ( AND #F * LD C,A , PUSH HL . EX DE,HL 0 ADD HL,HL 2 PUSH HL 4 POP DE 6 ADD HL,HL 8 ADD HL,HL : ADD HL,DE < LD E,C > LD D,0 @ ADD HL,DE B EX DE,HL D POP HL F INC HL H DJNZ LOOP J EX DE,HL L RET RPOSP LD A,22 T RST #10 V LD A,C X RST #10 Z LD A,B \ RST #10 ^ RET `DOWN INC H b LD A,H d AND 7 f RET NZ h LD A,L j ADD A,#20 l LD L,A n RET C p LD A,H r SUB 8 t LD H,A v RET xGETA LD A,C z AND #18 | ADD A,#40 ~ LD H,A  LD A,C  AND #7  RRCA  RRCA  RRCA  ADD A,B  LD L,A  RET PUT LD H,0  LD L,A  ADD HL,HL  ADD HL,HL  ADD HL,HL  ADD HL,HL  PUSH HL  ADD HL,HL  ADD HL,HL  LD DE,(BM)  ADD HL,HL  ADD HL,DE  EX DE,HL  CALL GETA  PUSH HL  LD B,4 ROW LD C,8 LOW LD A,(DE)  LD (HL),A  INC L  INC DE  LD A,(DE)  LD (HL),A  INC L  INC DE  LD A,(DE)  LD (HL),A  INC L  INC DE  LD A,(DE)  LD (HL),A  INC DE  DEC L  DEC L  DEC L  INC H  DEC C  JR NZ,LOW  DEC H  CALL DOWN  DJNZ ROW  POP HL  LD A,H  RRCA  RRCA  RRCA  AND #3  OR #58  LD H,A  EX DE,HL  POP HL  LD BC,(AMP)  ADD HL,BC  LD B,4 ATR LD A,(HL)  LD (DE),A  INC E  INC HL  LD A,(HL)  LD (DE),A  INC E  INC HL  LD A,(HL)  LD (DE),A  INC E " INC HL $ LD A,(HL) & LD (DE),A ( INC HL * LD A,E , ADD A,#1D . LD E,A 0 LD A,D 2 ADC A,0 4 LD D,A 6 DJNZ ATR : RET LCURSOR LD DE,(CURS) N CALL FACE P BIT 0,A R JR NZ,C1 T LD A,D V AND A X JR Z,C1 Z DEC D \C1 CALL FACE ^ BIT 1,A ` JR NZ,C2 b LD A,D dLIM1 CP #20-#4 f JR NC,C2 h INC D jC2 CALL FACE l BIT 2,A n JR NZ,C3 p LD A,E rLIM2 CP #14 t JR NC,C3 v INC E xC3 CALL FACE z BIT 3,A | JR NZ,C4 ~ LD A,E  AND A  JR Z,C4  DEC E C4 LD (CURS),DE  RET PRIC LD B,4 F2 CALL GETAA  LD C,4 F1 LD A,(HL)  XOR #17  LD (HL),A  INC L  DEC C  JR NZ,F1  INC E  DJNZ F2  RET GETAA LD A,E  AND #18  RRCA  RRCA  RRCA  OR #58  LD H,A  LD A,E  AND #7  RRCA  RRCA  RRCA  ADD A,D  LD L,A  RET ST LD HL,#4000  LD DE,SCRB  LD BC,6912  LDIR  RET REST LD HL,SCRB  LD DE,#4000  LD BC,6912  LDIR  RET SWAP LD HL,#4000  LD DE,SCRB SW LD A,(HL)  PUSH AF  LD A,(DE)  LD (HL),A  POP AF  LD (DE),A  INC DE  INC HL  LD A,H  CP #5B  RET Z  JR SW AT LD B,(IX+4)  LD C,(IX+2)  JP POSP $DLINA LD A,(QCLAST) & LD H,0 ( LD L,A * PUSH HL , LD DE,#80 . CALL #30A9 0 POP DE 2 ADD HL,DE 3 ADD HL,DE 4 RET <OBJ SET 0,(IY+2) > LD DE,EXS @ CALL PRST B RES 0,(IY+2) D RET FPRN SET 0,(IY+2) H LD BC,#701 J CALL POSP L LD A,(CLAST) N LD B,0 P LD C,A R CALL OUTNUM S RES 0,(IY+2) T RET GET2 LD A,L  AND 7  RRCA  RRCA  RRCA  ADD A,H  LD H,L  LD L,A  LD A,H  AND #18  OR #40  LD H,A  RET CICL CALL CURSOR  CALL PRIC  LD DE,(CURS)  HALT  CALL PRIC  CALL FACE  BIT 4,A  CALL Z,GT  LD A,#7F  IN A,(#FE)  BIT 1,A  CALL Z,PT  LD A,#7F  IN A,(#FE)  BIT 2,A  CALL Z,SWAP  LD A,#F7  IN A,(#FE)  RRCA  JP NC,LCH  RRCA  JP NC,RCH  RRCA  JP NC,LSCR  RRCA  JP NC,SAVE  RRCA  JP NC,EDIT , LD A,#7F . IN A,(#FE) 0 RRCA 2 JR C,CICL 4 RET @FACE LD A,#EF B IN A,(#FE) D LD B,8 FRLT RLCA H RR C J DJNZ RLT L SRL C N SRL C P SRL C R LD A,C T RET INP LD HL,CHAR+2 INP1 RES 5,(IY+1) WT LD B,(IX+1)  LD C,(IX+2)  LD A,B  ADD A,(IX)  LD B,A  CALL POSP  LD A,#5F  RST #10 MD CALL OUTBUF  BIT 5,(IY+1)  JR Z,WT " LD A,(23560) $ CP #D & RET Z ( CP #9 * JR NZ,CP8 , LD A,(IX) . CP (IX+3) 0 JR NC,CP8 2 INC (IX) 4 INC HL 6CP8 LD A,(23560) 8 CP #8 : JR NZ,CPIT < LD A,(IX) > AND A @ JR Z,CPIT B DEC (IX) D DEC HL FCPIT LD A,(23560) H CP #20 J JR C,INP1 L CP #80 N JR NC,INP1 P LD (HL),A R JR INP1 TOUTBUF LD DE,CHAR U CALL AT V LD B,5 XLES LD A,(DE) Z RST #10 \ INC DE ^ DJNZ LES ` RET bPRST LD A,(DE) d CP #FF f RET Z h RST #10 j INC DE l JR PRST nINPUT CALL PRST pINP2 LD DE,CHAR q LD B,5 r LD A,"0" sRG LD (DE),A t INC DE u DJNZ RG y LD (IX),0 z CALL INP | LD DE,CHAR ~ LD B,5 CTRL LD A,(DE)  CP #30  JP C,INP2  CP #3A  JP NC,INP2  SUB #30  LD (DE),A  INC DE  DJNZ CTRL  JP CONV GET LD H,0  LD L,A  ADD HL,HL  ADD HL,HL  ADD HL,HL  ADD HL,HL  PUSH HL  ADD HL,HL  ADD HL,HL  ADD HL,HL  LD DE,(BM)  ADD HL,DE  EX DE,HL  CALL GETA  PUSH HL  LD B,4 ROW1 LD C,8 LOW1 LD A,(HL)  LD (DE),A  INC L  INC DE  LD A,(HL)  LD (DE),A  INC L  INC DE  LD A,(HL)  LD (DE),A  INC L  INC DE  LD A,(HL)  LD (DE),A  INC DE  DEC L  DEC L  DEC L  INC H  DEC C  JR NZ,LOW1  DEC H  CALL DOWN  DJNZ ROW1 " POP HL $ LD A,H & RRCA ( RRCA * RRCA , AND #3 . OR #58 0 LD H,A 2 EX DE,HL 4 POP HL 6 LD BC,(AMP) 8 ADD HL,BC : LD B,4 <ATR1 LD A,(DE) > LD (HL),A @ INC E B INC HL D LD A,(DE) F LD (HL),A H INC E J INC HL L LD A,(DE) N LD (HL),A P INC E R INC HL T LD A,(DE) V LD (HL),A X INC HL Z LD A,E \ ADD A,#1D ^ LD E,A ` LD A,D b ADC A,0 d LD D,A f DJNZ ATR1 h RET SETCH LD DE,MSGN  LD IX,BFN  CALL INPUT  LD H,0  LD A,L  AND A  JR Z,SETCH  CP #3F  JR NC,SETCH  LD (QCLAST),A  LD DE,#80  CALL #30A9  LD DE,(BM)  ADD HL,DE  LD (AMP),HL  XOR A  LD (CLAST),A  RET COLOR LD DE,MSGC  LD IX,BFC  CALL INPUT  LD A,L  LD (COL),A  JP EDPT  SAVE CALL ST  LD HL,OUTS  LD (MD+1),HL LD DE,STX CALL PRST LD IX,SBF  LD (IX),0  LD HL,BUF+1  CALL INP1 NOF LD IX,BUF " LD (IX),3 $ CALL DLINA * LD (IX+11),L , LD (IX+12),H - PUSH HL . XOR A 0 LD DE,17 2 CALL #4C2 4 LD B,#30 5 HT HALT 6 DJNZ HT 8 LD A,#FF : POP DE < LD IX,(BM) = CALL #4C2 > LD DE,OUTBUF ? LD (MD+1),DE @ JP RTI L OUTS LD DE,BUF+1 M CALL AT N LD B,10 P O1 LD A,(DE) R RST #10 T INC DE V DJNZ O1 \ RET ` LOAD XOR A b SCF d LD IX,BUF f LD DE,17 h CALL #556 l LD DE,MSG5 n CALL PRST p LD DE,BUF+1 r LD B,#A t RJ LD A,(DE) v RST #10 x INC DE z DJNZ RJ LD IX,BUF LD H,(IX+12) LD L,(IX+11) LD DE,(FLOW) AND A SBC HL,DE JR NC,DY RES 5,(IY+1) HLD BIT 5,(IY+1) JR Z,HLD LD A,(23560) CP "N" JR NZ,DX DY SCF RET DX LD IX,BUF LD E,(IX+11) LD D,(IX+12) LD IX,(DATA) LD A,#FF SCF CALL #556 AND A RET LSCR CALL ST LD HL,SCRB LD (DATA),HL LD HL,6913 LD (FLOW),HL CALL LOAD JR C,ERR RTI CALL REST JP CICL GT LD A,(CLAST) LD BC,(CURS) CALL GET RET PT LD A,(CURS) CP 20 RET NC LD A,(CLAST) LD BC,(CURS) JP PUT POINT LD DE,(CURS)  CALL GETAA  LD A,#17  XOR (HL)  LD (HL),A RET  EXIT RES 0,(IY+2)  LD A,#1C  LD (LIM1+1),A  LD A,#14  LD (LIM2+1),A  CALL ST CALL OBJ ! CALL PRN " LD A,(CURS) $ CP #14 & JR C,J1 ( LD A,#14 ) LD (CURS),A * J1 LD A,(CURS+1) , CP #1C . JP C,CICL 0 LD A,#1C 2 LD (CURS+1),A 4 JP CICL ERR LD DE,ERT CALL PRST RES 5,(IY+1) ER BIT 5,(IY+1) JR Z,ER JR RTI LCH LD A,(CLAST) HALT AND A JP Z,CICL DEC A LD (CLAST),A CALL PRN JP CICL RCH LD A,(QCLAST) HALT DEC A LD B,A LD A,(CLAST) CP B JP NC,CICL INC A LD (CLAST),A CALL PRN JP CICL T EDIT CALL ST V SET 0,(IY+2) X EDPT LD DE,EDT Z CALL PRST ^ LD A,#1F ` LD (LIM1+1),A b LD A,#17 d LD (LIM2+1),A f TRACE CALL CURSOR h CALL POINT j HALT l CALL POINT n LD BC,#1901 p CALL POSP r LD DE,(CURS) t CALL GETAA v LD A,(HL) x AND #7 z ADD A,#30 | RST #10 ~ LD A,#20 RST #10 LD A,(HL) RRCA RRCA RRCA AND #7 ADD A,#30 RST #10 LD A,#20 RST #10 LD A,(HL) BIT 6,A LD A,"0" JR Z,VN INC A VN RST #10 CALL FACE BIT 4,A JR NZ,TRACE LD A,(CURS) CP #17 JP Z,ITMENU LD DE,(CURS) CALL GETAA LD A,(COL) LD (HL),A JP TRACE H UNDO CALL SWAP J JP EDPT L OK CALL ST N JP EDPT P SETF RES 0,(IY+2) R CALL ST T CALL SETCH V SET 0,(IY+2) X CALL REST Z JP EDPT \ VIEW CALL ST ] CALL OHJ ^ VL CALL FACE ` BIT 0,A b CALL Z,LC d CALL FACE f BIT 1,A h CALL Z,RC j CALL FACE l LD A,(CLAST) n LD BC,#A09 p CALL PUT r HALT t HALT v CALL FACE x BIT 4,A z JR NZ,VL1 | CALL REST ~ JP EDPT VL1 LD A,#7F IN A,(#FE) RRCA CALL NC,ARCAD JR VL LC LD A,(CLAST) AND A RET Z DEC A LD (CLAST),A RET RC LD A,(QCLAST) DEC A LD B,A LD A,(CLAST) CP B RET NC INC A LD (CLAST),A RET ARCAD LD DE,MSGC LD IX,BFC CALL INPUT LD A,L PUSH AF CALL DLINA LD DE,(BM) ADD HL,DE LD A,(CLAST) LD D,0 LD E,A ADD HL,DE POP AF LD (HL),A CALL OHJ RET OHJ LD DE,VTX JP PRST ITMENU LD A,(CURS+1) SRL A SRL A  LD H,0  LD L,A  ADD HL,HL  LD DE,VECT  ADD HL,DE  LD A,(HL)  INC HL  LD H,(HL)  LD L,A  PUSH HL  RET @EXS DEFB 22,1,0 A DEFM "1<< 2>> 3Load 4Save 5Edit B DEFB #FF CMSGN DEFB 22,10,2 D DEFM "CLUSTERS:" E DEFB #FF FBFN DEFB 0,14,10,2,12 ZSTX DEFB 22,10,5 \ DEFM "FILENAME: ^ DEFB #FF `SBF DEFB 0,15,10,9,15 dMSG5 DEFB 22,12,5 e DEFM "Load? f DEFB 22,10,3 g DEFM "Found file: h DEFB #FF jEDT DEFB 22,1,0 k DEFM "Req Undo Ok View ^^ Set l DEFB #FF rMSGC DEFB 22,1,0 s DEFM "Attribute: t DEFB #FF uBFC DEFB 0,12,1,2,10 ~ERT DEFB 22,13,3  DEFM "Drive Fault  DEFB #FF VTX DEFB 22,1,0  DEFM "FIRE-EXIT,SPACE-REQUEST  DEFB #FF ' ENT $ F