ZXTape! FULLMENU /},\L$pc@T@@P@5D$R5`@SSc`\]/ LD (MAP),HL  LD HL,59690  LD DE,TABL  LD BC,5*3  LDIR  CALL WDW JP MENU ! JP DRAGON 2COORD DEFW 0 3MAP DEFW 55600 4VAL NOP 5STORE DEFW 0 6DX NOP 7DY NOP 8TEMP DEFW 0 9KEY NOP :POS DEFW #A0E ;NUM NOP <XC DEFW 0 =FS NOP >FP DEFW 0 ?STAT NOP @CT DEFB 0 ACOUNT DEFB 2 CENGY DEFB 9 DLIFE DEFB 9 ESCORE DEFW 0 FPTR DEFW 59690+20 eTABL DEFS 5*4 xSUBR DEFW DRAKON,SEEKER,FALL,STRIKE yMX DEFB 10 zMY DEFB 4 {PM DEFB 3 |UM DEFB 4 }MAX NOP ~LEN DEFB 10 R0 NOP R1 NOP ROUT DEFW 0 ZAGLAV DEFB 22,2,26 DEFM "SILA" DEFB 22,8,26 DEFM "JIZNI" DEFB 22,18,7 DEFM "UBITA" DEFB 127 DEFM " NEXISTY" DEFB #FF MSG DEFW PRT LD IY,#5C3A RUS LD HL,58914-256 LD (23606),HL RET LAT LD HL,60*256 LD (23606),HL RET OPEN LD HL,23612 RES 0,(HL) RET EXIT DI IM 0 LD IY,#5C3A EXX LD HL,#2758 EXX LD SP,(STORE) EI RET SETIM2 DI LD A,#FE LD I,A LD HL,INR LD (#FEFF),HL IM 2 EI RET ,PUT LD A,(DE) - LD (HL),A . INC H / INC DE 0 LD A,(DE) 1 LD (HL),A 2 INC H 3 INC DE 4 LD A,(DE) 5 LD (HL),A 6 INC H 7 INC DE 8 LD A,(DE) 9 LD (HL),A : INC H ; INC DE < LD A,(DE) = LD (HL),A > INC H ? INC DE @ LD A,(DE) A LD (HL),A B INC H C INC DE D LD A,(DE) E LD (HL),A F INC H G INC DE H LD A,(DE) I LD (HL),A N RET PTBL LD B,A  PUSH DE  LD (TEMP),IX  LD IX,57962  INC B  DEC B  JR Z,PTBL_P PTLP5 LD D,0  LD E,(IX)  LD H,D  LD L,(IX+1) ! CALL #30A9 & LD DE,9 + CALL #30A9 0 INC HL 5 INC HL : PUSH HL ? POP DE D ADD IX,DE I DJNZ PTLP5 NPTBL_P LD A,(IX) S LD (DX),A X INC IX ] LD A,(IX) b LD (DY),A g INC IX l POP DE q PUSH DE v LD A,(DY) { LD B,A PTLP_1 PUSH BC  LD A,E  AND #18  ADD A,64  LD H,A  LD A,E  AND 7  RRCA  RRCA  RRCA  ADD A,D  LD L,A  LD B,8 PTLP2 PUSH BC  PUSH HL  LD C,D  LD A,(DX)  LD B,A PTLP3 LD A,C  INC C  CP 25  JR NC,PTPS  LD A,E  CP 16  JR NC,PTPS  LD A,(IX)  NOP  LD (HL),A PTPS INC L  INC IX  DJNZ PTLP3  POP HL  INC H % POP BC * DJNZ PTLP2 / POP BC 4 INC E 9 DJNZ PTLP_1 > POP DE C LD A,(DY) H LD B,A MPTLP4 PUSH BC R PUSH DE W CALL GET_A \ LD C,D a LD A,(DX) f LD B,A kPTLP6 LD A,C p INC C u CP 25 z JR NC,PTPS5  LD A,E  CP 16  JR NC,PTPS5  LD A,(IX)  LD (HL),A PTPS5 INC IX  INC L  DJNZ PTLP6  POP DE  INC E  POP BC  DJNZ PTLP4  LD IX,(TEMP)  RET GET_A 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 WIND LD HL,0  LD (COORD),HL  LD HL,(MAP)  LD C,16 WIND2 LD B,25 WIND1 PUSH BC  LD A,(HL)  LD (VAL),A  INC HL  PUSH HL  CALL WRSYM  INC B  LD (COORD),BC  POP HL  POP BC  DJNZ WIND1  LD DE,(COORD)  LD D,0  INC E  LD (COORD),DE  DEC C  JR NZ,WIND2  RET WRSYM LD BC,(COORD)  LD A,(VAL)  LD DE,57000-256  LD H,0 " LD L,A $ ADD HL,HL & ADD HL,HL ( ADD HL,HL * ADD HL,DE , EX DE,HL . LD A,C 0 AND #18 2 ADD A,64 4 LD H,A 6 LD A,C 8 AND 7 : RRCA < RRCA > RRCA @ ADD A,B B LD L,A D PUSH HL G CALL PUT R LD DE,57769-32 T LD A,(VAL) V LD H,0 X LD L,A Z ADD HL,DE [ PUSH HL \ POP BC ] POP HL ^ LD A,H _ RRCA ` RRCA a RRCA b AND 3 c OR #58 d LD H,A e LD A,(BC) f LD (HL),A g LD BC,(COORD) h RET tCOMPUT LD L,C v LD H,0 w LD D,H x LD E,L y ADD HL,HL z ADD HL,HL { ADD HL,DE | ADD HL,HL } ADD HL,DE ~ ADD HL,HL  ADD HL,DE  ADD HL,DE  ADD HL,DE  LD E,B  ADD HL,DE  LD DE,(MAP)  ADD HL,DE  LD L,(HL)  LD H,0  LD DE,57865-32  ADD HL,DE  LD D,(HL)  RET INR PUSH AF  PUSH HL  PUSH DE  PUSH BC PORT CALL SINCL2  LD (KEY),A  POP BC  POP DE  POP HL  POP AF  EI  RET KEMPST XOR A  IN A,(31)  AND #1F # RET (SINCL1 LD BC,63486 - IN A,(C) 7 AND #1F < RET ASINCL2 LD BC,61438 F IN A,(C) K LD D,A L LD C,0 P LD B,4 UROT RR D Z RL C [ RR D \ RL C _ DJNZ ROT d LD A,C e RRA f RRA g RRA h CPL i AND #1F j RET nKEYB LD B,5 s LD HL,KEYS x LD D,0 }KEYLP LD A,(HL)  IN A,(#FE)  INC HL  AND (HL)  CPL  CP #FF  RL D  INC HL  DJNZ KEYLP  LD A,D  CPL  AND #1F  RET KEYS DEFB 127,4,251,1,253,1,223,1,223,2 BLANK LD D,7 BL1 LD HL,22528  LD BC,768 BL2 LD A,(HL)  AND %111000  JR Z,BLP  SUB 8  LD E,A  LD A,(HL)  AND 7  OR E  LD (HL),A BLP LD A,(HL)  AND 7 " JR Z,BLP1 ' DEC (HL) ,BLP1 INC HL 1 DEC BC 6 LD A,B ; OR C @ JR NZ,BL2 E HALT J HALT O DEC D T JR NZ,BL1 Y RET OBJECT LD D,0  LD A,(POS)  LD H,(IX+3)  SUB 2  CP H  RET NC ADVERT ADD A,2  CP H  RET C  LD A,(POS+1)  LD H,(IX+2)  SUB 2  CP H  RET NC ADHOR ADD A,2  CP H  RET C  SET 1,D  RET INBLOW SET 1,(IX+1)  LD A,6  LD (IX+4),A  LD HL,SCORE  INC (HL)  CALL PRTAB  RET BLOW LD A,(IX+4) ! CP 10 & JR NZ,BW1 + CALL DEAD 5 JP DPASS :BW1 LD D,(IX+2) ? LD E,(IX+3) D CALL PTBL I INC (IX+4) J LD D,7 K LD HL,VZRV L CALL SND M LD HL,VZRV+1 N RLC (HL) O JP DPASS lCHFIR LD D,0 q LD A,(FP) v LD H,(IX+3) { SUB 2  CP H  RET NC  ADD A,3  CP H  RET C  LD A,(FP+1)  LD H,(IX+2)  SUB 2  CP H  RET NC  ADD A,4  CP H  RET C  SET 1,D  RET DEAD RES 0,(IX+1)  LD HL,STAT  RES 0,(HL)  LD HL,COUNT  LD A,(HL)  AND A  JP Z,NEXTW  DEC (HL)  RET DRAGON LD IX,TABL SCAN CALL SINCL2  LD (KEY),A  LD A,3 DGON LD (CT),A  BIT 0,(IX+1)  JR Z,DPASS  BIT 1,(IX+1)  JP NZ,BLOW  LD A,(STAT)  BIT 0,A  JR Z,MODUL  CALL CHFIR  BIT 1,D  CALL NZ,INBLOW MODUL LD A,(IX+3)  BIT 7,A  JR NZ,M1  CP 18  CALL NC,DEAD M1 LD L,(IX)  LD H,0  ADD HL,HL  LD BC,SUBR  ADD HL,BC  LD A,(HL)  INC HL % LD H,(HL) * LD L,A / LD (ENEM+1),HL MENEM CALL SEEKER R LD D,(IX+2) W LD E,(IX+3) \ LD A,(IX+4) a CALL PTBL b LD A,(DX) c LD (ADVERT+1),A d LD A,(DY) e LD (ADHOR+1),A f CALL OBJECT g BIT 1,D h CALL NZ,DEC1 iDPASS LD DE,5 j ADD IX,DE n LD A,(CT) r DEC A v JR NZ,DGON z LD A,(STAT) | BIT 0,A ~WP CALL NZ,FLAME  LD A,(KEY)  LD H,A  LD DE,(POS)  BIT 0,H  JR Z,D1  LD A,D  OR A  JR Z,D1  DEC D D1 BIT 1,H  JR Z,D2  LD A,D  CP 22  JR Z,D2  INC D D2 BIT 2,H  JR Z,D3  LD A,E  CP 13  JR Z,D3  INC E D3 BIT 3,H  JR Z,D4  LD A,E  CP 2 JR Z,D4  DEC E  D4 LD (POS),DE  BIT 4,H  CALL NZ,SETF ! CALL WIND $ LD BC,(POS) . LD (XC),BC 8 LD H,3 = LD7 LD L,2 B LD8 PUSH HL G CALL COMPUT L POP HL Q BIT 1,D V JP Z,UBIT [ INC B ` DEC L e JR NZ,LD8 j LD BC,(XC) o INC C t LD (XC),BC y DEC H ~ JR NZ,LD7 D9 LD A,(NUM) CP 3 JR NZ,D5  XOR A  LD (NUM),A ( D5 LD DE,(POS) 2 CALL PTBL < LD A,(NUM) F INC A P LD (NUM),A Z LD HL,(MAP) d LD DE,25 n AND A LD (MAP),HL LD BC,32766 IN A,(C) RRCA JP NC,EXIT RRCA CHNG CALL NC,W1 JP DRAGON UBIT LD DE,(POS) LD A,E CP 13 ADC A,0 LD E,A LD A,D CP 12 JR NC,U1 INC D JR U2 U1 DEC D U2 LD (POS),DE LD A,(NUM) JR D9 DEC1 LD HL,ENGY DEC (HL) LD A,(HL) AND A CALL M,DEC2 AND A JP M,EXIT CALL PRTAB LD D,(IX+2) LD E,(IX+3) LD A,9 CALL PTBL LD HL,UDAR  LD D,3  CALL SND RET  DEC2 LD HL,LIFE  DEC (HL)  LD A,9  LD (ENGY),A " LD A,(HL) ' RET T NEXTW LD HL,(PTR) Y LD DE,TABL ^ LD BC,15 c LDIR d LD SP,(STORE) h LD A,2 m LD (COUNT),A r LD DE,15 w LD HL,(PTR) | ADD HL,DE LD (PTR),HL LD DE,59915 AND A SBC HL,DE JP C,DRAGON LD HL,59690 LD (PTR),HL JP DRAGON SETF LD A,(STAT) BIT 0,A RET NZ SET 0,A LD (STAT),A LD DE,(POS) DEC E LD (FP),DE LD A,3 LD (FS),A LD D,7 LD HL,OGON JP SND FLAME LD A,(FS) CP 6 JR NZ,FLAM1 LD A,(STAT) RES 0,A LD (STAT),A  RET  FLAM1 LD DE,(FP) CALL PTBL  LD A,(FS)  INC A  LD (FS),A # RET FIRE LD A,(FP) CP 2 JR NC,FR1 LD A,(STAT) RES 0,A LD (STAT),A LD DE,(FP) LD A,8 CALL PTBL LD D,7 LD HL,STUK CALL SND RET FR1 LD DE,(FP) LD A,7 CALL PTBL LD DE,(FP) DEC E DEC E LD (FP),DE RET DRAKON LD D,6  LD HL,STUK  CALL SND  BIT 5,(IX+1)  JR Z,DR1  LD A,(POS+1)  SUB 4  CP (IX+2)  CALL C,ATTACK  INC (IX+2)  LD A,(IX+2)  CP 25  CALL NC,SWAP DR1 BIT 4,(IX+1)  JR Z,DR2  LD A,(POS+1)  ADD A,4  CP (IX+2)  CALL NC,ATTACK  DEC (IX+2)  LD A,(IX+2)  CP 2  CALL C,SWAP1 DR2 BIT 2,(IX+1)  RET Z  INC (IX+3)  INC (IX+3)  RET ATTACK SET 2,(IX+1)  RET SWAP RES 5,(IX+1)  SET 4,(IX+1)  RET SWAP1 RES 4,(IX+1)  SET 5,(IX+1)  RET hFALL INC (IX+3) i LD HL,ZUD j LD D,6 k CALL SND l LD HL,ZUD+1 m RLC (HL) n RET rSEEKER LD A,(POS+1) w CP (IX+2) | JR C,SEK1  INC (IX+2)  JR SEK2 SEK1 DEC (IX+2) SEK2 LD A,(POS)  CP (IX+3)  JR C,SEK3  INC (IX+3)  RET SEK3 DEC (IX+3)  RET STRIKE LD A,(IX+3)  CP 2  CALL C,ATTACK  BIT 2,(IX+1)  JR NZ,STDN  DEC (IX+3)  RET STDN INC (IX+3)  INC (IX+3)  RET 0W1 LD A,(STAT) 5 BIT 0,A : RET NZ ? LD HL,FIRE D LD (WP+1),HL I LD HL,W2 N LD (CHNG+1),HL S RET XW2 LD A,(STAT) ] BIT 0,A b RET NZ g LD HL,FLAME l LD (WP+1),HL q LD HL,W1 v LD (CHNG+1),HL { RET PRTAB CALL OPEN  LD DE,#1C04  CALL POS1  LD A,(ENGY)  CALL DECIM  LD DE,#1C0B  CALL POS1  LD A,(LIFE)  CALL DECIM  LD DE,#0D13  CALL POS1  LD BC,(SCORE)  CALL 6683  RET POS1 LD A,22  RST 16  LD A,E  RST 16  LD A,D  RST 16  RET DECIM ADD A,#30  RST 16  RET OKNO CALL OPEN  LD H,B  LD L,C  PUSH DE  PUSH BC  CALL POS1 %LN1 LD A,"a" * RST 16 / DJNZ LN1 4 POP BC 9 LD A,E > ADD A,C C DEC A H LD E,A M CALL POS1 RLN2 LD A,"a" W RST 16 \ DJNZ LN2 a POP DE f PUSH DE kLN3 CALL POS1 p LD A,"b" u RST 16 z INC E  DEC C  JR NZ,LN3  POP DE  LD A,D  ADD A,H  DEC A  LD D,A LN4 CALL POS1  LD A,"b"  RST 16  INC E  DEC L  JR NZ,LN4  RET WRITE LD A,(DE)  CP #FF  RET Z  RST 16  INC DE  JR WRITE WDW CALL RUS  LD DE,#1900  LD BC,#710  CALL OKNO  LD DE,#11  LD BC,#2005  CALL OKNO  LD DE,ZAGLAV  CALL WRITE  CALL LAT  RET PSND LD C,#FD ULP LD B,#FF Z LD A,(HL) _ OUT (C),A d LD B,#BF i INC HL n LD A,(HL) s OUT (C),A x INC HL } DEC D  JR NZ,LP  RET STUK DEFB 0,9,1,0,7,54,8,16,12,10,13,1 VZRV DEFB 6,31,7,7,8,16,9,16,10,16,12,50,13,1 OGON DEFB 6,2,2,9,3,3,7,0,12,10,13,255,9,16 ZUD DEFB 0,9,1,0,7,56,8,16,12,99,13,1 UDAR DEFB 6,31,7,7,13,1 SETW LD A,(MX)  DEC A " LD D,A ' LD A,(MY) , DEC A 1 LD E,A 6 LD A,(LEN) ; INC A < INC A @ LD B,A E LD A,(PM) J INC A K INC A O LD C,A T JP OKNO |WRTEX LD A,(DE)  CP #FF  JR Z,INCR  LD A,22  RST 16  LD A,(R1)  RST 16  LD A,(R0)  RST 16  LD A,(DE)  RST 16  LD HL,R0  INC (HL)  INC DE  JR WRTEX INCR LD A,(MX)  LD (R0),A  LD HL,R1  INC (HL)  RET PUNCT LD A,(MX)  LD D,A  LD A,(UM)  LD E,A  CALL GET_A  LD A,(LEN)  LD B,A FL LD (HL),C  INC L  DJNZ FL  RET SELECT LD A,(MY)  LD B,A ! LD A,(UM) & SUB B + LD H,0 0 LD L,A 5 ADD HL,HL : LD DE,(ROUT) ? ADD HL,DE D LD D,(HL) I INC HL N LD E,(HL) S PUSH DE X RET ]FORM LD A,(MX) b LD D,A g LD A,(MY) l LD E,A q CALL GET_A v LD A,(PM) { LD B,A FO1 LD A,(LEN)  LD C,A FO2 LD (HL),120  INC L  DEC C  JR NZ,FO2  INC E  CALL GET_A  DJNZ FO1  RET MENU LD A,(MX)  LD (R0),A  LD A,(MY)  LD (R1),A  LD A,(PM)  LD B,A  LD A,(MY)  ADD A,B  LD (MAX),A  CALL OPEN  CALL RUS  LD A,(PM)  LD B,A  LD DE,(MSG) PD CALL WRTEX  INC DE  DJNZ PD  CALL FORM  CALL SETW UPR LD BC,32766  IN A,(C)  RRCA  JR C,DAL  LD C,120  CALL PUNCT  LD A,(UM) % INC A * LD (UM),A / LD B,A 4 LD A,(MAX) 9 CP B > JR NZ,DAL C LD A,(MY) H LD (UM),A MDAL LD C,8 R CALL PUNCT W LD BC,49150 \ IN A,(C) a RRCA f JP NC,EXIT g EI h HALT i HALT k JR UPR XPRT DEFM "SINCLAIR" Y DEFB 255 Z DEFM "KEMPSTON" [ DEFB 255 \ DEFM "KURSOR" ] DEFB 255 *