10 ORG 50000 20 ;--------- BLOCO 1:CONSTANTES 30 RDVRM: EQU 04AH 40 WRTVRM: EQU 04DH 50 LDIRVM: EQU 05CH 60 WRTPSG: EQU 093H 70 GTSTCK: EQU 0D5H 80 GTTRIG: EQU 0D8H 90 RDVDP: EQU 13EH 100 INVRAM:EQU 200H 110 TCAN: EQU 003H 120 LIINV: EQU 008H 130 PAUSA: EQU 080H 140 COMPV: EQU 008H 150 TPINV: EQU 002H 160 IPVR: EQU 0A000H 170 ;-------- BLOCO 2:INICIA JOGO 180 INICIO: 190 LD A,209 200 LD HL,6996 210 CALL WRTVRM 220 LD HL,7000 230 CALL WRTVRM 240 LD HL,7004 250 CALL WRTVRM 260 LD HL,MSTEL 270 LD DE,6144 280 LD BC,32 290 CALL LDIRVM 300 LD A,3 310 LD (NAVES),A 320 LD HL,0 330 LD (PONTOS),HL 340 CALL PLACAR 350 XOR A 360 LD (LISAB),A 370 LD (FASE),A 380 CALL STFASE 390 ;-------- BLOCO 3:INICIA NAVE 395 INNAVE: 400 LD HL,ARPC 410 LD DE,6912 420 LD BC,20 430 CALL LDIRVM 440 LD A,160 450 LD (YNAVE),A 460 LD A,128 470 LD (XNAVE),A 480 LD A,209 490 LD (YTIRO),A 500 LD (YTIRO2),A 510 LD A,TCAN 520 LD (CCAN),A 530 LD HL,512 540 LD (FTIRO),HL 550 CALL INIBMB 560 ;-------- BLOCO 4:INICIA FASE 570 INFASE: 580 CALL INIINV 590 XOR A 600 LD (CONTDS),A 610 LD (PSINC),A 620 LD (CCINV),A 630 LD (STATX),A 640 LD A,30 650 OUT (153),A 660 LD A,24 670 OUT (153),A 680 LD A,(NAVES) 690 ADD A,47 700 OUT (152),A 710 ;-------- BLOCO 5:LOOP CENTRAL 720 CENTRAL: 730 LD A,(CCAN) 740 DEC A 750 LD (CCAN),A 760 AND A 770 JR NZ,SEGUE 780 LD A,TCAN 790 LD (CCAN),A 800 LD A,(MODE) 810 CALL GTSTCK 820 CP 3 830 JR Z,DIR 840 CP 7 850 JR Z,ESQ 860 CP 1 870 CP 5 880 RET Z 890 JR SEGUE 900 DIR: 910 LD A,(XNAVE) 920 CP 234 930 JR NC,SEGUE 940 INC A 950 LD (XNAVE),A 960 JR SEGUE 970 ESQ: 980 LD A,(XNAVE) 990 CP 16 1000 JR C,SEGUE 1010 DEC A 1020 LD (XNAVE),A 1030 JR SEGUE 1040 SEGUE: 1050 LD A,(MODE) 1060 CALL TRIGGER 1070 CP 255 1080 JR NZ,SEGUE2 1090 LD A,(YTIRO) 1100 CP 209 1110 JR NZ,TIRO2 1120 LD HL,6918 1130 LD A,16 1140 CALL WRTVRM 1150 LD A,(YNAVE) 1160 SUB 8 1170 LD (YTIRO),A 1180 LD A,(XNAVE) 1190 LD (XTIRO),A 1200 JR STIRO 1210 TIRO2: 1220 LD A,(YTIRO2) 1230 CP 209 1240 JR NZ,SEGUE2 1250 LD HL,6922 1260 LD A,16 1270 CALL WRTVRM 1280 LD A,(YNAVE) 1290 SUB 8 1300 LD (YTIRO2),A 1310 LD A,(XNAVE) 1320 LD (XTIRO2),A 1330 STIRO: 1340 LD HL,SDTIRO 1350 CALL STSND 1360 LD HL,100 1370 LD (FTIRO),HL 1380 SEGUE2: 1390 CALL IMPNAV 1400 CALL ESTRTM 1410 CALL SABOT 1420 LD A,(STATX) 1430 AND A 1440 JP NZ,EXPLS 1450 LD A,(YTIRO) 1460 CP 209 1470 JR Z,TIROX2 1480 LD (YTR),A 1490 LD A,(XTIRO) 1500 LD (XTR),A 1510 CALL TIROS 1520 LD A,(YTR) 1530 LD (YTIRO),A 1540 TIROX2: 1550 LD A,(YTIRO2) 1560 CP 209 1570 JR Z,SEGUE3 1580 LD (YTR),A 1590 LD A,(XTIRO2) 1600 LD (XTR),A 1610 CALL TIROS2 1620 LD A,(YTR) 1630 LD (YTIRO2),A 1640 SEGUE3: 1650 AND A 1660 AND A 1670 LD A,(CCINV) 1680 INC A 1690 LD (CCINV),A 1700 CP TPINV 1710 JR NZ,SEGUE4 1720 XOR A 1730 LD (CCINV),A 1740 CALL INVSR 1750 CALL ATBOMB 1760 SEGUE4: 1770 CALL TESTCH 1780 LD HL,(FTIRO) 1790 LD A,2 1800 CP H 1810 JR Z,SEGUE5 1820 INC HL 1830 INC HL 1840 INC HL 1850 INC HL 1860 LD (FTIRO),HL 1870 LD E,L 1880 LD A,0 1890 PUSH HL 1900 CALL WRTPSG 1910 POP HL 1920 LD E,H 1930 LD A,1 1940 CALL WRTPSG 1950 JR TSFASE 1960 SEGUE5: 1970 LD E,0 1980 LD A,8 1990 CALL WRTPSG 2000 TSFASE: 2010 LD A,(CONTDS) 2020 CP LIINV 2030 JR Z,TRFASE 2040 JP CENTRAL 2050 TRFASE: 2060 CALL STFASE 2070 JP INFASE 2080 ;-------- BLOCO 6:ALEATORIZADOR 2090 RANDOM: 2100 PUSH HL 2110 LD HL,(SEMT) 2120 LD DE,(FIMSEM) 2130 AND A 2140 SBC HL,DE 2150 JR NZ,RAND2 2160 LD HL,(INISEM) 2170 LD (SEMT),HL 2180 RAND2: 2190 LD HL,(SEMT) 2200 INC HL 2210 LD (SEMT),HL 2220 LD A,(HL) 2230 POP HL 2240 RET 2250 ;-------- BLOCO 7:DISPARA TIRO 2260 TRIGGER: 2270 CALL GTTRIG 2280 AND A 2290 JR Z,NAOPRE 2300 LD A,(DBOUNC) 2310 AND A 2320 JR Z,LIVRE 2330 XOR A 2340 RET 2350 LIVRE: 2360 LD A,1 2370 LD (DBOUNC),A 2380 LD A,255 2390 RET 2400 NAOPRE: 2410 XOR A 2420 LD (DBOUNC),A 2430 RET 2440 TIROS: 2450 LD HL,6916 2460 JR TIROS3 2470 TIROS2: 2480 LD HL,6920 2490 TIROS3: 2500 LD A,(YTR) 2510 DEC A 2520 CP 8 2530 JR C,FIMTR 2540 LD (YTR),A 2550 CALL WRTVRM 2560 LD A,(XTR) 2570 INC HL 2580 CALL WRTVRM 2590 RET 2600 FIMTR: 2610 LD A,209 2620 LD (YTR),A 2630 CALL WRTVRM 2640 RET 2650 ;-------- BLOCO 8:IMPRIME NAVE 2660 IMPNAV: 2670 LD A,(XNAVE) 2680 LD HL,6913 2690 CALL WRTVRM 2700 LD HL,6925 2710 CALL WRTVRM 2720 LD HL,6929 2730 CALL WRTVRM 2740 LD A,(YNAVE) 2750 LD HL,6912 2760 CALL WRTVRM 2770 LD HL,6924 2780 CALL WRTVRM 2790 LD HL,6928 2800 ADD A,14 2810 CALL WRTVRM 2820 LD A,(PFOGO) 2830 INC A 2840 LD (PFOGO),A 2850 CP 20 2860 RET NZ 2870 XOR A 2880 LD (PFOGO),A 2890 LD HL,6930 2900 LD A,(CFOGO) 2910 INC A 2920 LD (CFOGO),A 2930 AND 1 2940 INC A 2950 ADD A,A 2960 ADD A,A 2970 CALL WRTVRM 2980 LD HL,6927 2990 CALL RDVRM 3000 INC A 3010 AND 15 3020 CALL WRTVRM 3030 RET 3040 ;-------- BLOCO 9:INVASORES 3050 INVSR: 3060 XOR A 3070 LOOPIN: 3080 LD (LOPINV),A 3090 LD HL,ARRAY 3100 LD B,0 3110 ADD A,A 3120 ADD A,A 3130 LD C,A 3140 ADD HL,BC 3150 LD (PYINV),HL 3160 LD A,(HL) 3170 CP 209 3180 JR Z,PROXIN 3190 INC HL 3200 LD (PXINV),HL 3210 LD HL,IAPV 3220 LD A,(LOPINV) 3230 ADD A,A 3240 LD B,0 3250 LD C,A 3260 ADD HL,BC 3270 LD (APV),HL 3280 LD E,(HL) 3290 INC HL 3300 LD D,(HL) 3310 EX DE,HL 3320 LD A,(HL) 3330 CP 255 3340 JR Z,FIMINV 3350 PUSH AF 3360 LD A,(FLINC) 3370 AND A 3380 JR Z,NTINC 3390 INC HL 3400 NTINC: 3410 EX DE,HL 3420 POP AF 3430 LD (DIRI),A 3440 LD HL,(APV) 3450 LD (HL),E 3460 INC HL 3470 LD (HL),D 3480 LD HL,IARX 3490 LD A,(DIRI) 3500 LD C,A 3510 LD B,0 3520 ADD HL,BC 3530 LD B,(HL) 3540 LD HL,(PXINV) 3550 LD A,(HL) 3560 ADD A,B 3570 LD (HL),A 3580 LD HL,IARY 3590 LD A,(DIRI) 3600 LD C,A 3610 LD B,0 3620 ADD HL,BC 3630 LD B,(HL) 3640 LD HL,(PYINV) 3650 LD A,(HL) 3660 ADD A,B 3670 LD (HL),A 3680 LD HL,(PXINV) 3690 INC HL 3700 LD A,(DIRI) 3710 LD C,A 3720 AND A 3730 JR Z,$+7 3740 ADD A,8 3750 ADD A,A 3760 ADD A,A 3770 LD (HL),A 3780 LD A,C 3790 AND A 3800 CALL NZ,STBOMB 3810 PROXIN: 3820 LD A,(LOPINV) 3830 INC A 3840 CP LIINV 3850 JP NZ,LOOPIN 3860 XOR A 3870 LD (FLINC),A 3880 LD A,(PSINC) 3890 INC A 3900 LD (PSINC),A 3910 CP COMPV 3920 JR NZ,DSPINV 3930 LD A,1 3940 LD (FLINC),A 3950 XOR A 3960 LD (PSINC),A 3970 DSPINV: 3980 LD HL,ARRAY 3990 LD DE,6932 4000 LD BC,32 4010 CALL LDIRVM 4020 RET 4030 FIMINV: 4040 LD HL,(IVFASE) 4050 LD DE,32 4060 ADD HL,DE 4070 EX DE,HL 4080 LD HL,(APV) 4090 LD (HL),E 4100 INC HL 4110 LD (HL),D 4120 LD A,(YIFASE) 4130 LD HL,(PYINV) 4140 LD (HL),A 4150 LD A,(XIFASE) 4160 INC HL 4170 LD (HL),A 4180 RET 4190 ;-------- BLOCO 10:MOVE ESTRELAS 4200 ESTRTM: 4210 LD HL,PAUSA 4220 TEMPO: 4230 DEC HL 4240 LD A,H 4250 OR L 4260 JR NZ,TEMPO 4270 ESTRE: 4280 LD A,(EVENTO) 4290 LOPEV: 4300 DEC A 4310 LD (EVENTO),A 4320 AND A 4330 RET NZ 4340 LD A,10 4350 LD (EVENTO),A 4360 LD HL,64 4370 CALL ROT 4380 LD A,(TOGGLE) 4390 CPL 4400 LD (TOGGLE),A 4410 AND A 4420 RET Z 4430 LD HL,128 4440 CALL ROT 4450 LD HL,6918 4460 CALL APGFM 4470 LD HL,6922 4480 APGFM: 4490 CALL RDVRM 4500 CP 68 4510 RET NZ 4520 DEC HL 4530 DEC HL 4540 LD A,209 4550 CALL WRTVRM 4560 RET 4570 ROT: 4580 LD B,63 4590 DEC HL 4600 CALL RDVRM 4610 LD C,A 4620 LOPROT: 4630 DEC HL 4640 CALL RDVRM 4650 INC HL 4660 CALL WRTVRM 4670 DEC HL 4680 DJNZ LOPROT 4690 LD A,C 4700 CALL WRTVRM 4710 RET 4720 ;-------- BLOCO 11:SABOTADORES 4730 SABOT: 4740 LD A,(CSAB) 4750 INC A 4760 LD (CSAB),A 4770 CP 150 4780 RET NZ 4790 XOR A 4800 LD (CSAB),A 4810 LD A,(LISAB) 4820 AND A 4830 RET Z 4840 XOR A 4850 LOPSAB: 4860 LD (NSAB),A 4870 LD B,0 4880 LD C,A 4890 LD HL,ARSAB+1 4900 ADD HL,BC 4910 ADD HL,BC 4920 ADD HL,BC 4930 ADD HL,BC 4940 LD A,(HL) 4950 CP 255 4960 JR Z,PSAB 4970 CALL RANDOM 4980 AND 15 4990 JR Z,ATAQ 5000 LD A,(HL) 5010 LD B,A 5020 LD A,(XNAVE) 5030 CP B 5040 LD C,B 5050 JR C,SESQ 5060 LD A,(NSAB) 5070 ADD A,2 5080 LD B,A 5090 LD A,C 5100 INC A 5110 DJNZ $-1 5120 JR SSEGUE 5130 SESQ: 5140 LD A,(NSAB) 5150 ADD A,2 5160 LD B,A 5170 LD A,C 5180 DEC A 5190 DJNZ $-1 5200 SSEGUE: 5210 LD (HL),A 5220 INC HL 5230 LD A,(HL) 5240 CP 32 5250 JR NZ,$+4 5260 LD (HL),28 5270 LD B,(HL) 5280 LD A,52 5290 SUB B 5300 LD (HL),A 5310 PSAB: 5320 LD A,(NSAB) 5330 INC A 5340 LD C,A 5350 LD A,(LISAB) 5360 LD B,A 5370 LD A,C 5380 CP B 5390 JR C,LOPSAB 5400 LD HL,ARSAB 5410 LD DE,6996 5420 SLA B 5430 SLA B 5440 LD C,B 5450 LD B,0 5460 CALL LDIRVM 5470 RET 5480 ATAQ: 5490 INC HL 5500 LD (HL),32 5510 IN A,(170) 5520 LD B,50 5530 BIP: 5540 RES 7,A 5550 OUT (170),A 5560 SET 7,A 5570 OUT (170),A 5580 DJNZ BIP 5590 DEC HL 5600 LD B,(HL) 5610 LD A,(XNAVE) 5620 ADD A,8 5630 SUB B 5640 CP 16 5650 JR NC,PSAB 5660 LD A,1 5670 LD (STATX),A 5680 JR PSAB 5690 RET 5700 ;-------- BLOCO 12:EXPLOSAO 5710 EXPLS: 5720 LD HL,6914 5730 LD A,68 5740 CALL WRTVRM 5750 LD A,10 5760 INC HL 5770 CALL WRTVRM 5780 LD HL,SDEXPL 5790 CALL STSND 5800 LD HL,60000 5810 TEXPL: 5820 DEC HL 5830 DEC HL 5840 INC HL 5850 LD A,H 5860 OR L 5870 JR NZ,TEXPL 5880 LD A,(NAVES) 5890 DEC A 5900 LD (NAVES),A 5910 AND A 5920 RET Z 5930 JP INNAVE 5940 ;-------- BLOCO 13:SETA BOMBAS 5950 STBOMB: 5960 CALL RANDOM 5970 AND 31 5980 AND A 5990 RET NZ 6000 CALL RANDOM 6010 AND 7 6020 LD C,A 6030 LD A,(LIBOMB) 6040 LD B,A 6050 LD A,C 6060 CP B 6070 RET NC 6080 LD (NBOMB),A 6090 ADD A,A 6100 ADD A,A 6110 LD HL,IABOMB 6120 LD B,0 6130 LD C,A 6140 ADD HL,BC 6150 LD A,(HL) 6160 CP 209 6170 RET NZ 6180 PUSH HL 6190 LD HL,(PYINV) 6200 LD A,(HL) 6210 POP HL 6220 LD (HL),A 6230 INC HL 6240 PUSH HL 6250 LD HL,(PXINV) 6260 LD A,(HL) 6270 POP HL 6280 LD (HL),A 6290 LD HL,IARX 6300 LD A,(DIRI) 6310 LD C,A 6320 ADD HL,BC 6330 LD A,(HL) 6340 PUSH AF 6350 LD HL,IADB 6360 LD A,(NBOMB) 6370 LD C,A 6380 ADD HL,BC 6390 POP AF 6400 LD (HL),A 6410 RET 6420 ;-------- BLOCO 14:MOVE BOMBAS 6430 ATBOMB: 6440 XOR A 6450 LPBOMB: 6460 LD (NBOMB),A 6470 ADD A,A 6480 ADD A,A 6490 LD B,0 6500 LD C,A 6510 LD HL,IABOMB 6520 ADD HL,BC 6530 LD A,(HL) 6540 CP 209 6550 JR Z,PRBOMB 6560 INC A 6570 CP 170 6580 JR Z,FIMBMB 6590 LD (HL),A 6600 INC HL 6610 AND 2 6620 AND A 6630 JR NZ,PRBOMB 6640 PUSH HL 6650 LD HL,IADB 6660 LD A,(NBOMB) 6670 LD C,A 6680 LD B,0 6690 ADD HL,BC 6700 LD B,(HL) 6710 POP HL 6720 LD A,(HL) 6730 ADD A,B 6740 LD (HL),A 6750 PRBOMB: 6760 LD A,(NBOMB) 6770 INC A 6780 LD C,A 6790 LD A,(LIBOMB) 6800 LD B,A 6810 LD A,C 6820 CP B 6830 JR NZ,LPBOMB 6840 JR IMPBMB 6850 FIMBMB: 6860 LD (HL),209 6870 JR PRBOMB 6880 IMPBMB: 6890 LD HL,IABOMB 6900 LD DE,6964 6910 LD BC,32 6920 CALL LDIRVM 6930 RET 6940 ;-------- BLOCO 15:INICIA BOMBAS 6950 INIBMB: 6960 XOR A 6970 LPINIB: 6980 LD (NBOMB),A 6990 LD HL,IABOMB 7000 ADD A,A 7010 ADD A,A 7020 LD B,0 7030 LD C,A 7040 ADD HL,BC 7050 LD (HL),209 7060 INC HL 7070 INC HL 7080 LD (HL),20 7090 INC HL 7100 LD (HL),15 7110 LD A,(NBOMB) 7120 INC A 7130 CP 8 7140 JR NZ,LPINIB 7150 RET 7160 ;-------- BLOCO 16:TESTA COLISAO 7170 TESTCH: 7180 CALL RDVDP 7190 BIT 5,A 7200 RET Z 7210 LD A,(YTIRO) 7220 CP 209 7230 JR Z,CPTR2 7240 LD (YTR),A 7250 LD A,(XTIRO) 7260 LD (XTR),A 7270 CALL CPTIRO 7280 LD (YTIRO),A 7290 LD A,(FLAC) 7300 AND A 7310 JR Z,CPTR2 7320 LD HL,6918 7330 LD A,68 7340 CALL WRTVRM 7350 CPTR2: 7360 LD A,(YTIRO2) 7370 CP 209 7380 JR Z,CPCOM 7390 LD (YTR),A 7400 LD A,(XTIRO2) 7410 LD (XTR),A 7420 CALL CPTIRO 7430 LD (YTIRO2),A 7440 LD A,(FLAC) 7450 AND A 7460 JR Z,CPCOM 7470 LD HL,6922 7480 LD A,68 7490 CALL WRTVRM 7500 CPCOM: 7510 LD HL,IABOMB 7520 LD (PTABLE),HL 7530 CALL CPBMB 7540 LD HL,ARRAY 7550 LD (PTABLE),HL 7560 CALL CPBMB 7570 RET 7580 CPBMB: 7590 XOR A 7600 LCBOMB: 7610 LD (NBOMB),A 7620 ADD A,A 7630 ADD A,A 7640 LD B,0 7650 LD C,A 7660 LD HL,(PTABLE) 7670 ADD HL,BC 7680 LD A,(HL) 7690 CP 209 7700 JR Z,CPRBMB 7710 LD B,A 7720 LD A,(YNAVE) 7730 SUB B 7740 ADD A,8 7750 CP 10 7760 JR NC,CPRBMB 7770 INC HL 7780 LD B,(HL) 7790 LD A,(XNAVE) 7800 SUB B 7810 ADD A,8 7820 CP 16 7830 JR NC,CPRBMB 7840 DEC HL 7850 LD (HL),209 7860 LD A,1 7870 LD (STATX),A 7880 CPRBMB: 7890 LD A,(NBOMB) 7900 INC A 7910 CP 8 7920 JR NZ,LCBOMB 7930 RET 7940 CPTIRO: 7950 XOR A 7960 LD (FLAC),A 7970 LPCPIN: 7980 LD (LOPINV),A 7990 ADD A,A 8000 ADD A,A 8010 LD B,0 8020 LD C,A 8030 LD HL,ARRAY 8040 ADD HL,BC 8050 LD A,(HL) 8060 CP 209 8070 JR Z,CPPIN 8080 LD B,A 8090 LD A,(YTR) 8100 SUB B 8110 ADD A,8 8120 CP 16 8130 JR NC,CPPIN 8140 INC HL 8150 LD B,(HL) 8160 LD A,(XTR) 8170 SUB B 8180 ADD A,8 8190 CP 16 8200 JR NC,CPPIN 8210 DEC HL 8220 LD (HL),209 8230 LD A,1 8240 LD (FLAC),A 8250 CALL ACERT 8260 CPPIN: 8270 LD A,(LOPINV) 8280 INC A 8290 CP 8 8300 JR NZ,LPCPIN 8310 LD A,(FLAC) 8320 AND A 8330 LD A,(YTR) 8340 RET Z 8350 LD A,209 8360 RET 8370 ACERT: 8380 LD A,(CONTDS) 8390 INC A 8400 LD (CONTDS),A 8410 LD HL,(PONTOS) 8420 LD DE,(PTFASE) 8430 ADD HL,DE 8440 LD (PONTOS),HL 8450 LD DE,(RECORD) 8460 AND A 8470 SBC HL,DE 8480 JR C,NAOREC 8490 ADD HL,DE 8500 LD (RECORD),HL 8510 NAOREC: 8520 CALL PLACAR 8530 RET 8540 ;-------- BLOCO 17:INICIA INVAS. 8550 INIINV: 8560 XOR A 8570 LOPINI: 8580 LD (LOPINV),A 8590 ADD A,A 8600 LD HL,ARRAY 8610 LD B,0 8620 LD C,A 8630 ADD HL,BC 8640 ADD HL,BC 8650 LD A,(YIFASE) 8660 LD (HL),A 8670 INC HL 8680 LD A,(XIFASE) 8690 LD (HL),A 8700 INC HL 8710 INC HL 8720 LD A,(CFASE) 8730 LD (HL),A 8740 LD HL,IAPV 8750 ADD HL,BC 8760 LD (APV),HL 8770 LD HL,(IVFASE) 8780 ADD HL,BC 8790 EX DE,HL 8800 LD HL,(APV) 8810 LD (HL),E 8820 INC HL 8830 LD (HL),D 8840 LD A,(LOPINV) 8850 INC A 8860 CP LIINV 8870 JR NZ,LOPINI 8880 RET 8890 ;-------- BLOCO 18:SONS 8900 STSND: 8910 LD A,(HL) 8920 CP 255 8930 RET Z 8940 INC HL 8950 LD E,(HL) 8960 PUSH HL 8970 CALL WRTPSG 8980 POP HL 8990 INC HL 9000 JR STSND 9010 ;-------- BLOCO 19:PLACARES 9020 PLACAR: 9030 LD A,8 9040 OUT (153),A 9050 LD A,24 9060 OUT (153),A 9070 LD HL,(PONTOS) 9080 CALL IMPPL 9090 LD A,18 9100 OUT (153),A 9110 LD A,24 9120 OUT (153),A 9130 LD HL,(RECORD) 9140 CALL IMPPL 9150 RET 9160 IMPPL: 9170 LD DE,10000 9180 CALL DIGITO 9190 LD DE,1000 9200 CALL DIGITO 9210 LD DE,100 9220 CALL DIGITO 9230 LD DE,10 9240 CALL DIGITO 9250 LD DE,1 9260 DIGITO: 9270 LD A,48 9280 AND A 9290 CONTDI: 9300 SBC HL,DE 9310 JR C,FIMDIG 9320 INC A 9330 JR CONTDI 9340 FIMDIG: 9350 ADD HL,DE 9360 OUT (152),A 9370 RET 9380 ;-------- BLOCO 20:INICIA FASE 9390 STFASE: 9400 LD A,(FASE) 9410 PUSH AF 9420 INC A 9430 CP 5 9440 JR NC,$+5 9450 LD (LIBOMB),A 9460 DEC A 9470 SRL A 9480 SRL A 9490 SRL A 9500 AND 3 9510 JR Z,$+5 9520 LD (LISAB),A 9530 POP AF 9540 AND 7 9550 LD B,0 9560 LD C,A 9570 LD HL,TPFASE 9580 ADD HL,BC 9590 LD A,(HL) 9600 LD (PTFASE),A 9610 LD HL,IPFASE 9620 ADD HL,BC 9630 ADD HL,BC 9640 LD A,(HL) 9650 LD (XIFASE),A 9660 INC HL 9670 LD A,(HL) 9680 LD (YIFASE),A 9690 LD HL,ACFASE 9700 ADD HL,BC 9710 LD A,(HL) 9720 LD (CFASE),A 9730 LD HL,DISPLT 9740 ADD HL,BC 9750 ADD HL,BC 9760 LD E,(HL) 9770 INC HL 9780 LD D,(HL) 9790 LD HL,IPVR 9800 ADD HL,DE 9810 LD (IVFASE),HL 9820 LD A,(FASE) 9830 INC A 9840 LD (FASE),A 9850 RET 9860 ;-------- BLOCO 21:VARIAVEIS 9870 VARS: 9880 XNAVE: DEFB 0 9890 YNAVE: DEFB 0 9900 XTIRO: DEFB 0 9910 YTIRO: DEFB 0 9920 XTIRO2: DEFB 0 9930 YTIRO2: DEFB 0 9940 XTR: DEFB 0 9950 YTR: DEFB 0 9960 STATX: DEFB 0 9970 DBOUNC: DEFB 0 9980 MODE: DEFB 0 9990 CONTDS: DEFB 0 10000 EVENTO:DEFB 0 10010 TOGGLE:DEFB 0 10020 CCAN: DEFB 0 10030 LOPINV:DEFB 0 10040 DIRI: DEFB 0 10050 FASE: DEFB 0 10060 CFASE: DEFB 0 10070 YIFASE:DEFB 0 10080 XIFASE:DEFB 0 10090 PSINC: DEFB 0 10100 CCINV: DEFB 0 10110 FLINC: DEFB 0 10120 PFOGO: DEFB 0 10130 CFOGO: DEFB 0 10140 NBOMB: DEFB 0 10150 LIBOMB:DEFB 1 10160 NAVES: DEFB 0 10170 FLAC: DEFB 0 10180 CSAB: DEFB 0 10190 NSAB: DEFB 0 10200 LISAB: DEFB 1 10210 ; 10220 INISEM:DEFW 16384 10230 FIMSEM:DEFW 32767 10240 SEMT: DEFW 0 10250 CVRAM: DEFW 0 10260 IVFASE:DEFW 0 10270 PXINV: DEFW 0 10280 PYINV: DEFW 0 10290 APV: DEFW 0 10300 PTABLE:DEFW 0 10310 FTIRO: DEFW 0 10320 PONTOS:DEFW 0 10330 RECORD:DEFW 0 10340 PTFASE:DEFW 0 10350 ;-------- BLOCO 22:ARRAYS 10360 ARRAY: DEFS 32 10370 IAPV: DEFS 16 10380 IABOMB:DEFS 32 10390 ARSAB: DEFB 175,20,24,2,175,80,28,13,175,220,24,08 10400 IADB: DEFS 8 10410 IARX: DEFB 0,0,1,1,1,0,-1,-1,-1 10420 IARY: DEFB 0,-1,-1,0,1,1,1,0,-1 10430 ARPC: DEFB 160,128,0,14,209,128,16,15,209,128,16,15,160,128,12,0,176,128,16,8 10440 ACFASE:DEFB 8,4,2,10,6,5,3,15 10450 TPFASE:DEFB 50,60,70,80,90,100,110,120 10460 IPFASE:DEFB 255,70,90,240,255,20,90,207,90,240,255,20,120,207,110,240 10470 DISPLT:DEFW 0,98H,14CH,200H,2BEH,370H,453H,50EH 10480 SDTIRO:DEFB 7,254,0,0,1,0,8,15,255 10490 SDEXPL:DEFB 7,247,6,31,8,16,12,32,13,0,255 10500 ; 10510 MSTEL: DEFM ' PONTOS:00000 ' 10520 DEFM 'MAX:00000 NAVES: ' 10530 END