Antoine Vignau 4d4fb6a665 Let's free the code!!
Some old (WIP) disassemblies and my own source code now available online.
2024-07-23 23:38:22 +02:00

628 lines
14 KiB
Plaintext

0010 .LI OFF
0020 ANTBYT1 .EQ $1000
0030 ANTBYT2 .EQ $1020
0040 ANTBYT3 .EQ $1040
0050 ANTBYT4 .EQ $1060
0060 DESTBYT1 .EQ $1080
0070 DESTBYT2 .EQ $10A0
0080 AAMSBYT .EQ $10C0
0090 AALSBYT .EQ $10E0
0100 ANTDIR .EQ $E0
0110 ANTDEST .EQ $DD
0120 ANTX .EQ $DC
0130 ANTY .EQ $DB
0140 ANTXX .EQ $DA
0150 ANTYY .EQ $D9
0160 ANTNUM .EQ $D8
0170 ANTCOUNT .EQ $D7
0180 ANTORIENT .EQ $D6
0190 ANTXOLD .EQ $D5
0200 ANTYOLD .EQ $D4
0210 ANTXXOLD .EQ $D3
0220 ANTYYOLD .EQ $D2
0230 TEMP1 .EQ $F0
0240 TEMP2 .EQ $F1
0250 TEMP3 .EQ $F2
0260 RNDBYTE1 .EQ $F3
0270 RNDBYTE2 .EQ $F4
0280 SCRPNT1 .EQ $F5
0290 SCRPNT2 .EQ $F7
0300 POINTER1 .EQ $F9
0310 POINTER2 .EQ $FB
0320 POINTER3 .EQ $FD
0330 HEIGHT .EQ $ED
0340 PATINDEX .EQ $DC
0350 FOODNUM .EQ $AD
0360 K1 .EQ $D1
0370 INIT.K1 .EQ $D0
0380 K2 .EQ $CF
0390 INIT.K2 .EQ $CE
0400 COUNT4ANTS .EQ $CD
0410 ROUND .EQ $B4
0420 ANTMOV1 .EQ $78
0430 ANTMOV2 .EQ $77
0440 ANTMOV3 .EQ $76
0450 ANTMOV4 .EQ $75
0460 MAN.MASTER.Z .EQ $4600
0470 WASP.MASTER.Z .EQ $5806
0480 FOOD.MASTER.Z .EQ $6953
0490 SPIDER.MASTER.Z .EQ $6003
0500 ANT.INITIALIZE.Z .EQ $171B
0510 MAN.INITIALIZE.Z .EQ $4603
0520 WASP.INITIALIZE.Z .EQ $5803
0530 SPIDER.INITIALIZE.Z .EQ $6000
0540 FOOD.INITIALIZE.Z .EQ $6950
0550 CREATE.ANT.Z .EQ $171E
0560 SET.BLOCK.VACANT.Z .EQ $1700
0570 PLOT.ANT.3.Z .EQ $1703
0580 RANDOM1.Z .EQ $1706
0590 RANDOM2.Z .EQ $1709
0600 SET.BLOCK.ANT.Z .EQ $1718
0610 PLOT.ANT.2.Z .EQ $170C
0620 ERASE.ANT.Z .EQ $170F
0630 DELAY.Z .EQ $5800
0640 PLOT.ANT.Z .EQ $1712
0650 GET.BLOCK.Z .EQ $1715
0660 ERASE.WEB.Z .EQ $600C
0670 VACATE.ANTS.BLOCKS.Z .EQ $4F06
0680 PICK.DEST2.Z .EQ $171B
0690 .OR $10FD
0700 JMP PLOT.SPLAT
0710 JMP MOVE.4.ANTS
0720 PLOT.SPLAT
0730 LDY ANTNUM
0740 LDA ANTBYT3,Y
0750 STA ANTXX
0760 STA ANTXXOLD
0770 LDA ANTBYT1,Y
0780 AND #$3F
0790 STA ANTX
0800 STA ANTXOLD
0810 LDA ANTBYT2,Y
0820 STA ANTY
0830 STA ANTYOLD
0840 JSR ERASE.ANT.Z
0850 LDA #$40
0860 STA POINTER1+1
0870 LDA #$F0
0880 STA POINTER1
0890 JMP PLOT.ANT.3.Z
0900 MOVE.4.ANTS
0910 DEC K1
0920 BEQ .5
0930 RTS
0940 .5 LDA INIT.K1
0950 STA K1
0960 JSR CREATE.ANT.Z
0970 LDA #$04
0980 STA COUNT4ANTS
0990 .1 LDY ANTNUM
1000 .2 DEY
1010 STY ANTNUM
1020 DEC COUNT4ANTS
1030 BMI .3
1040 LDA ANTBYT1,Y
1050 BEQ .6
1060 JSR MOVE.1.ANT
1070 JMP .1
1080 .3 INY
1090 BNE .4
1100 LDA ANTORIENT
1110 EOR #$80
1120 STA ANTORIENT
1130 JSR RANDOM1.Z
1140 JSR RANDOM2.Z
1150 LDY #$20
1160 .4 STY ANTNUM
1170 RTS
1180 .6 LDA #$15
1190 JSR DELAY.Z
1200 JMP .2
1210 MOVE.1.ANT
1220 LDA ANTBYT4,Y
1230 BMI .13
1240 CMP #$20
1250 AND #$1F
1260 TAX
1270 BCC .1
1280 STX TEMP1
1290 JSR RANDOM2.Z
1300 LDX ROUND
1310 CMP TABLE399,X
1320 LDX TEMP1
1330 BCS .1
1332 LDA DESTBYT1,X
1334 AND #$40
1336 BEQ .1
1340 DEX
1342 BPL .23
1344 LDX #$02
1346 .23 JSR PICK.DEST2.Z
1350 .1 LDA ANTBYT1,Y
1360 AND #$3F
1370 STA ANTX
1380 STA ANTXOLD
1390 LDA ANTBYT2,Y
1400 STA ANTY
1410 STA ANTYOLD
1420 .2 LDA ANTBYT3,Y
1430 STA ANTXX
1440 STA ANTXXOLD
1450 LDA ANTBYT4,Y
1460 AND #$20
1470 BNE .11
1480 LDA ANTBYT4,Y
1490 LSR
1500 BEQ .12
1510 STA ANTBYT4,Y
1520 JMP PLOT.SPLAT
1530 .12 JSR ERASE.ANT.Z
1540 LDA #$00
1550 LDY ANTNUM
1560 STA ANTBYT1,Y
1570 .13 RTS
1580 .11 LDA ANTBYT1,Y
1590 AND #$C0
1600 STA ANTDIR
1610 CLC
1620 ADC #$80
1630 STA ANTMOV4
1640 ASL
1650 EXT1
1660 BMI .21
1670 LDA ANTY
1680 AND #$07
1690 BEQ .22
1700 LDA ANTDIR
1710 JMP .6
1720 .21 LDA ANTXX
1730 BEQ .3
1740 CMP #$04
1750 BEQ .3
1760 LDA ANTDIR
1770 JMP .6
1780 .22 LDA DESTBYT1,X
1790 AND #$3F
1800 CMP ANTX
1810 BEQ .4
1820 LDX ANTDIR
1830 BCC .5
1840 LDA #$40
1850 LDY #$C0
1860 BNE .6
1870 .5 LDA #$C0
1880 LDY #$40
1890 BNE .6
1900 .4 LDA DESTBYT2,X
1910 AND #$F8
1920 CMP ANTY
1930 BEQ .10
1940 BCC .14
1950 LDA #$00
1960 STA ANTMOV4
1970 LDA #$80
1980 LDX #$C0
1990 LDY #$40
2000 BNE .6
2010 .14 LDA #$80
2020 STA ANTMOV4
2030 LDA #$00
2040 LDX #$40
2050 LDY #$C0
2060 BNE .6
2070 .10 LDA DESTBYT1,X
2080 ORA #$40
2090 STA DESTBYT1,X
2100 LDA ANTBYT4,Y
2110 ORA #$80
2120 STA ANTBYT4,Y
2130 AND #$1F
2140 TAX
2150 LDA TABLE9A,X
2160 STA FOODNUM
2170 JMP ERASE.ANT.Z
2180 .3 LDA DESTBYT2,X
2190 AND #$F8
2200 CMP ANTY
2210 BEQ .7
2220 LDX ANTDIR
2230 BCC .8
2240 LDA #$80
2250 LDY #$00
2260 BEQ .6
2270 .8 LDA #$00
2280 LDY #$80
2290 BNE .6
2300 .7 LDA DESTBYT1,X
2310 AND #$3F
2320 CMP ANTX
2330 BEQ .10
2340 BCC .9
2350 LDA #$C0
2360 STA ANTMOV4
2370 LDA #$40
2380 LDX #$00
2390 LDY #$80
2400 BNE .6
2410 .9 LDA #$40
2420 STA ANTMOV4
2430 LDA #$C0
2440 LDX #$80
2450 LDY #$00
2460 .6 STA ANTMOV1
2470 STX ANTMOV2
2480 STY ANTMOV3
2490 LDA ANTMOV1
2500 JSR ANT.MOVE.LEGAL.CHECK
2510 BMI .15
2520 BEQ .16
2530 .18 RTS
2540 .16 LDA ANTMOV1
2550 JMP .20
2560 .15 LDA ANTMOV2
2570 JSR ANT.MOVE.LEGAL.CHECK
2580 BMI .17
2590 BNE .18
2600 LDA ANTMOV2
2610 JMP .20
2620 .17 LDA ANTMOV3
2630 JSR ANT.MOVE.LEGAL.CHECK
2640 BMI .19
2650 BNE .18
2660 LDA ANTMOV3
2670 JMP .20
2680 .19 LDA ANTMOV4
2690 JSR ANT.MOVE.LEGAL.CHECK
2700 BNE .18
2710 LDA ANTMOV4
2720 .20 STA ANTDIR
2730 JSR ERASE.ANT.Z
2740 JSR PLOT.ANT.Z
2750 LDY ANTNUM
2760 LDA ANTDIR
2770 ORA ANTX
2780 STA ANTBYT1,Y
2790 LDA ANTY
2800 STA ANTBYT2,Y
2810 LDA ANTXX
2820 STA ANTBYT3,Y
2830 RTS
2840 TABLE399 .HS 0006090C0F1215181B1E
2850 ANT.MOVE.LEGAL.CHECK
2860 BEQ AUP
2870 BPL AR
2880 ASL
2890 BMI ANTLEFT
2900 JMP ANTDOWN
2910 AUP JMP ANTUP
2920 AR JMP ANTRIGHT
2930 ANTLEFT
2940 LDA ANTXX
2950 BEQ .1
2960 CMP #$04
2970 BEQ .4
2980 SEC
2990 SBC #$01
3000 STA ANTXX
3010 BEQ .2
3020 CMP #$04
3030 BEQ .2
3040 LDA #$00
3050 RTS
3060 .2 INC ANTX
3070 .11 JSR SET.BLOCK.VACANT.Z
3080 LDA ANTY
3090 AND #$07
3100 BNE .3
3110 DEC ANTX
3120 LDA#$00
3130 RTS
3140 .3 LDA ANTY
3150 CLC
3160 ADC #$08
3170 STA ANTY
3180 JSR SET.BLOCK.VACANT.Z
3190 LDA ANTY
3200 SEC
3210 SBC #$08
3220 STA ANTY
3230 DEC ANTX
3240 LDA #$00
3250 RTS
3260 .4 LDA ANTX
3270 CMP #$02
3280 BNE .1
3290 JSR VACATE.ANTS.BLOCKS.Z
3300 LDA #$00
3310 LDY ANTNUM
3320 STA ANTBYT1,Y
3330 LDA #$01
3340 RTS
3350 .1 DEC ANTX
3360 JSR GET.BLOCK.Z
3370 AND #$BF
3380 BEQ .5
3390 CMP #$03
3400 BEQ .6
3410 INC ANTX
3420 LDA #$80
3430 RTS
3440 .6 JSR ERASE.WEB.Z
3450 .5 LDA ANTY
3460 AND #$07
3470 BEQ .7
3480 LDA ANTY
3490 CLC
3500 ADC #$08
3510 STA ANTY
3520 JSR GET.BLOCK.Z
3530 AND #$BF
3540 BEQ .8
3550 CMP #$03
3560 BEQ .9
3570 LDA ANTY
3580 SEC
3590 SBC #$08
3600 STA ANTY
3610 INC ANTX
3620 LDA #$80
3630 RTS
3640 .9 JSR ERASE.WEB.Z
3650 .8 JSR SET.BLOCK.ANT.Z
3660 LDA ANTY
3670 SEC
3680 SBC #$08
3690 STA ANTY
3700 .7 LDA ANTXX
3710 SEC
3720 SBC #$01
3730 BPL .10
3740 LDA #$06
3750 .10 STA ANTXX
3760 JSR SET.BLOCK.ANT.Z
3770 LDA #$00
3780 RTS
3790 ANTRIGHT
3800 LDA ANTXX
3810 BEQ .2
3820 CMP #$04
3830 BEQ .1
3840 CLC
3850 ADC #$01
3860 STA ANTXX
3870 CMP #$07
3880 BEQ .12
3890 CMP #$04
3900 BEQ .3
3910 LDA #$00
3920 RTS
3930 .12 LDA #$00
3940 STA ANTXX
3950 .3 JSR SET.BLOCK.VACANT.Z
3960 LDA ANTY
3970 AND #$07
3980 BEQ .4
3990 LDA ANTY
4000 CLC
4010 ADC #$08
4020 STA ANTY
4030 JSR SET.BLOCK.VACANT.Z
4040 LDA ANTY
4050 SEC
4060 SBC #$08
4070 STA ANTY
4080 .4 INC ANTX
4090 LDA #$00
4100 RTS
4110 .1 LDA ANTX
4120 CMP #$2C
4130 BNE .2
4140 JSR VACATE.ANTS.BLOCKS.Z
4150 LDA #$00
4160 LDY ANTNUM
4170 STA ANTBYT1,Y
4180 LDA #$01
4190 RTS
4200 .2 INC ANTX
4210 JSR GET.BLOCK.Z
4220 AND #$BF
4230 BEQ .5
4240 CMP #$03
4250 BEQ .6
4260 DEC ANTX
4270 LDA #$80
4280 RTS
4290 .6 JSR ERASE.WEB.Z
4300 .5 LDA ANTY
4310 AND #$07
4320 BEQ .10
4330 LDA ANTY
4340 CLC
4350 ADC #$08
4360 STA ANTY
4370 JSR GET.BLOCK.Z
4380 AND #$BF
4390 BEQ .8
4400 CMP #$03
4410 BEQ .9
4420 LDA ANTY
4430 SEC
4440 SBC #$08
4450 STA ANTY
4460 DEC ANTX
4470 LDA #$80
4480 RTS
4490 .9 JSR ERASE.WEB.Z
4500 .8 JSR SET.BLOCK.ANT.Z
4510 LDA ANTY
4520 SEC
4530 SBC #$08
4540 STA ANTY
4550 .10 LDA ANTXX
4560 CLC
4570 ADC #$01
4580 STA ANTXX
4590 CMP #$07
4600 BNE .11
4610 LDA #$00
4620 STA ANTXX
4630 .11 JSR SET.BLOCK.ANT.Z
4640 DEC ANTX
4650 LDA #$00
4660 RTS
4670 ANTUP
4680 LDA ANTY
4690 CMP #$13
4700 BNE .1
4710 LDY ANTNUM
4720 LDA #$00
4730 STA ANTBYT1,Y
4740 JSR VACATE.ANTS.BLOCKS.Z
4750 LDA #$01
4760 RTS
4770 .1 SEC
4780 SBC #$01
4790 STA ANTY
4800 AND #$07
4810 BEQ .2
4820 CMP #$07
4830 BEQ .3
4840 LDA #$00
4850 RTS
4860 .2 LDA ANTY
4870 CLC
4880 ADC #$08
4890 STA ANTY
4900 .11 JSR SET.BLOCK.VACANT.Z
4910 LDA ANTXX
4920 BEQ .4
4930 CMP #$04
4940 BEQ .4
4950 INC ANTX
4960 JSR SET.BLOCK.VACANT.Z
4970 DEC ANTX
4980 .4 LDA ANTY
4990 SEC
5000 SBC #$08
5010 STA ANTY
5020 LDA #$00
5030 RTS
5040 .3 JSR GET.BLOCK.Z
5050 AND #$BF
5060 BEQ .6
5070 CMP #$03
5080 BEQ .5
5090 INC ANTY
5100 LDA #$80
5110 RTS
5120 .5 JSR ERASE.WEB.Z
5130 .6 LDA ANTXX
5140 BNE .7
5150 .8 JSR SET.BLOCK.ANT.Z
5160 LDA #$00
5170 RTS
5180 .7 CMP #$04
5190 BEQ .8
5200 INC ANTX
5210 JSR GET.BLOCK.Z
5220 AND #$BF
5230 BEQ .10
5240 CMP #$03
5250 BEQ .9
5260 DEC ANTX
5270 INC ANTY
5280 LDA #$80
5290 RTS
5300 .9 JSR ERASE.WEB.Z
5310 .10 JSR SET.BLOCK.ANT.Z
5320 DEC ANTX
5330 JSR SET.BLOCK.ANT.Z
5340 LDA #$00
5350 RTS
5360 ANTDOWN
5370 LDA ANTY
5380 CMP #$CC
5390 BNE .1
5400 LDA #$00
5410 LDY ANTNUM
5420 STA ANTBYT1,Y
5430 JSR VACATE.ANTS.BLOCKS.Z
5440 LDA #$01
5450 RTS
5460 .1 CLC
5470 ADC #$01
5480 STA ANTY
5490 AND #$07
5500 BEQ .2
5510 CMP #$01
5520 BEQ .3
5530 LDA #$00
5540 RTS
5550 .2 DEC ANTY
5560 .11 JSR SET.BLOCK.VACANT.Z
5570 LDA ANTXX
5580 BEQ .4
5590 CMP #$04
5600 BEQ .4
5610 INC ANTX
5620 JSR SET.BLOCK.VACANT.Z
5630 DEC ANTX
5640 .4 INC ANTY
5650 LDA #$00
5660 RTS
5670 .3 LDA ANTY
5680 CLC
5690 ADC #$08
5700 STA ANTY
5710 JSR GET.BLOCK.Z
5720 AND #$BF
5730 BEQ .6
5740 CMP #$03
5750 BEQ .5
5760 LDA ANTY
5770 SEC
5780 SBC #$09
5790 STA ANTY
5800 LDA #$80
5810 RTS
5820 .5 JSR ERASE.WEB.Z
5830 .6 LDA ANTXX
5840 BNE .7
5850 .8 JSR SET.BLOCK.ANT.Z
5860 LDA ANTY
5870 SEC
5880 SBC #$08
5890 STA ANTY
5900 LDA #$00
5910 RTS
5920 .7 CMP #$04
5930 BEQ .8
5940 INC ANTX
5950 JSR GET.BLOCK.Z
5960 AND #$BF
5970 BEQ .10
5980 CMP #$03
5990 BEQ .9
6000 DEC ANTX
6010 LDA ANTY
6020 SEC
6030 SBC #$09
6040 STA ANTY
6050 LDA #$80
6060 RTS
6070 .9 JSR ERASE.WEB.Z
6080 .10 JSR SET.BLOCK.ANT.Z
6090 DEC ANTX
6100 JSR SET.BLOCK.ANT.Z
6110 LDA ANTY
6120 SEC
6130 SBC #$08
6140 STA ANTY
6150 LDA #$00
6160 RTS
6170 TABLE9 .HS 01010101000100010001000000000000000100010001000100000000
6180 TABLE8 .HS 2020202000000000000000B0B0B0A0A0A01010101010101030303030
6190 .LI ON
6200 TABLE9A .HS 01010101020202020303030404040505050606060707070708080808
6210 .LI OFF