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