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

558 lines
13 KiB
Plaintext

0010 .LI OFF
0020 TEMP1 .EQ $F0
0030 TEMP2 .EQ $F1
0040 TEMP3 .EQ $F2
0050 TEMP4 .EQ $FF
0060 TEMP5 .EQ $94
0070 SCRPNT1 .EQ $F5
0080 SCRPNT2 .EQ $F7
0090 POINTER1 .EQ $F9
0100 POINTER2 .EQ $FB
0110 POINTER3 .EQ $FD
0120 POINTER4 .EQ $EE
0130 HEIGHT .EQ $ED
0140 PATINDEX .EQ $EC
0150 AAMSBYT .EQ $10C0
0160 AALSBYT .EQ $10E0
0170 ANTBYT1 .EQ $1000
0180 ANTBYT2 .EQ $1020
0190 ANTBYT3 .EQ $1040
0200 ANTBYT4 .EQ $1060
0210 ANTXOLD .EQ $D5
0220 ANTYOLD .EQ $D4
0230 ANTXXOLD .EQ $D3
0240 ANTX .EQ $DC
0250 ANTY .EQ $DB
0260 ANTXX .EQ $DA
0270 ANTNUM .EQ $D8
0280 DESTBYT1 .EQ $1080
0290 DESTBYT2 .EQ $10A0
0300 K8 .EQ $AF
0310 INIT.K8 .EQ $AE
0320 FOODNUM .EQ $AD
0330 FOODX .EQ $AC
0340 FOODY .EQ $AB
0350 FOODBYT1 .EQ $65D0
0360 FOODBYT2 .EQ $65D8
0370 FOODBYT3 .EQ $65E0
0380 ANTHOLD .EQ $65E8
0390 BYTE3 .EQ $AA
0400 WIDTH .EQ $A9
0410 FOODHEIGHT .EQ $A8
0420 SWAT .EQ $C5
0430 MANDIR .EQ $C8
0440 GRAB.FOOD .EQ $B7
0450 BYFOOD .EQ $B6
0460 MANSTATE .EQ $C7
0470 MANXX .EQ $CA
0480 SPIDERBYT4 .EQ $4118
0490 ANTPOSITIONS .EQ $65F0
0500 ANTPOS .EQ $A7
0510 ORIENT .EQ $A6
0520 ANT.ORIENTATIONS .EQ $65F8
0530 STING.MAN.Z .EQ $600F
0540 ERASE.ANT.Z .EQ $170F
0550 PLOT.ANT4.Z .EQ $1703
0560 PLOT.FOOD.Z .EQ $6959
0570 CHKBLK.Z .EQ $695C
0580 PUSH.FOOD.SOUND.Z .EQ $6950
0590 SET.OFF.SCREEN.Z .EQ $695F
0600 .OR $6EC0
0610 .TA $1EC0
0620 TABLE93 .HS 0C111B210C121B22
0630 TABLE94 .HS 0808080911131311
0640 TABLE95 .HS 0400000004000004
0650 TABLE100 .HS 6666666767686868
0660 TABLE101 .HS 0080C00090205090
0670 TABLE102 .HS 4080C048D82050D0
0680 TABLE103 .HS 2010101818101020
0690 TABLE104 .HS 0204030303030402
0700 TABLE105 .HS FF03070A0D101317
0710 TABLE106 .HS 03070A0D1013171B
0720 TABLE107 .HS 0303020202020303
0730 TABLE108 .HS 4000006040202060
0740 TABLE109 .HS 0000080810101818
0750 TABLE110 .HS 0201010102010101FEFFFFFFFFFFFFFF0302020203020202FEFFFFFFFFFFFFFF
0760 TABLE111 .HS 0001020304040506030302010006050404040506000102030303020100060504
0770 TABLE112 .HS 40111B4888121B88
0780 TABLE113 .HS 0000000200010101
0790 TABLE114 .HS FFFFFF01FF010101
0800 TABLE115 .HS 0C00000C14000015
0810 TABLE116 .HS 0201012C011A1A2C
0820 TABLE117 .HS 04080B0E1114181C
0830 TABLE118 .HS 0004080B0E111418
0840 TABLE119 .HS 0117172F0117172F
0850 TABLE120 .HS 020202FF03FFFFFF
0860 TABLE121 .HS 7008087070E0E070
0870 TABLE122 .HS 0303020202020303
0880 TABLE123 .HS 00FFFF0000FFFF00
0890 TABLE124 .HS 0101010101010101FFFFFFFF00FFFFFF0202020202020202FFFFFFFF00FFFFFF
0900 TABLE125 .HS 0303032B0219192B
0910 TABLE126 .HS 10090A0B0C0D0E0F10090A0B0C0D0E0FF8FFFEFDFCFBFAF9F8FFFEFDFCFBFAF9
0920 TABLE127 .HS 03F8F803FE0808FE
0930 TABLE128 .HS 030303FE04FEFEFE
0940 TABLE129 .HS 08090A0B03030303030303090A0B1112131919191919191911121314
0950 TABLE130 .HS 04040404111213141B1C1D2B2B2B0404041213141B1C1D1E2B2B2B2B
0960 TABLE131 .HS 0905052508161625
0970 .OR $7060
0980 .TA $2060
0990 JMP VERT.FOOD
1000 JMP VERT.FOOD2
1010 JMP UPDATE.VERT.DESTBYTS2
1020 .BS $03
1030 VERT.FOOD
1040 LDX FOODNUM
1050 LDY TABLE122,X
1060 LDA TABLE105,X
1070 STA TEMP1
1080 LDA TABLE107,X
1090 VERT.FOOD2
1100 STA TEMP2
1110 LDA BYTE3
1120 BMI .1
1130 RTS
1140 .1 LDA TABLE106,X
1150 TAX
1160 LDA #$00
1170 STA TEMP3
1180 .3 LDA DESTBYT1,X
1190 AND #$40
1200 STA ANTHOLD,Y
1210 BEQ .2
1220 INC TEMP3
1230 .2 DEY
1240 DEX
1250 CPX TEMP1
1260 BNE .3
1270 LDY TEMP3
1280 CPY TEMP2
1290 BCS .4
1300 JSR PLOT.HORIZ.ANTS
1310 LDA BYTE3
1320 AND #$FD
1330 LDX FOODNUM
1340 STA FOODBYT3,X
1350 LSR
1360 BCC .5
1370 RTS
1380 .5 JMP PLOT.FOOD.Z
1390 .4 INC ORIENT
1400 LDA ORIENT
1410 LDX FOODNUM
1420 STA ANT.ORIENTATIONS,X
1430 LDA BYTE3
1440 AND #$84
1450 ORA #$02
1460 STA BYTE3
1470 STA FOODBYT3,X
1480 JSR ERASE.HORIZ.ANTS
1490 LDX ANTPOS
1500 DEX
1510 BPL .6
1520 LDX #$07
1530 .6 STX ANTPOS
1540 JSR UPDATE.HORIZ.ANTBYTS
1550 LDY FOODNUM
1560 LDA ANTPOS
1570 STA ANTPOSITIONS,Y
1580 BEQ .7
1590 JSR PLOT.HORIZ.ANTS
1600 JMP PLOT.FOOD.Z
1610 .7 JSR PUSH.FOOD.SOUND.Z
1620 JSR UPDATE.VERT.DESTBYTS
1630 LDA FOODY
1640 CLC
1650 ADC TABLE114,X
1660 STA FOODY
1670 STA FOODBYT2,X
1680 CMP TABLE131,X
1690 BNE .14
1700 LDA #$86
1710 STA FOODBYT3,X
1720 LDA FOODY
1730 .14 CLC
1740 ADC TABLE113,X
1750 STA TEMP4
1760 TAX
1770 LDY FOODX
1780 JSR CHKBLK.Z
1790 LDY FOODX
1800 INY
1810 LDX TEMP4
1820 JSR CHKBLK.Z
1830 LDY FOODX
1840 INY
1850 INY
1860 LDX TEMP4
1870 JSR CHKBLK.Z
1880 LDA FOODNUM
1890 CMP #$02
1900 BEQ .18
1910 CMP #$05
1920 BEQ .18
1930 LDY FOODX
1940 INY
1950 INY
1960 INY
1970 LDX TEMP4
1980 JSR CHKBLK.Z
1990 .18 JSR MOVE.HORIZ.ANTS.BLOCKS
2000 JSR PLOT.FOOD.Z
2010 LDA FOODX
2020 STA TEMP3
2030 LDX FOODNUM
2040 LDA TABLE104,X
2050 STA WIDTH
2060 LDA FOODY
2070 CLC
2080 ADC TABLE120,X
2090 JSR ERASE.ROW
2100 JSR PLOT.HORIZ.ANTS
2110 LDX FOODNUM
2120 LDA TABLE116,X
2130 CMP FOODY
2140 EXT2
2150 BEQ .19
2160 RTS
2170 .19 LDY TABLE118,X
2180 LDA TABLE117,X
2190 STA TEMP1
2200 LDA TABLE121,X
2210 .20 STA DESTBYT2,Y
2220 INY
2230 CPY TEMP1
2240 BNE .20
2250 LDA #$00
2260 STA FOODBYT3,X
2270 LDY #$11
2280 JSR .21
2290 LDY #$1B
2300 JSR .21
2310 JMP SET.OFF.SCREEN.Z
2320 .21 LDA #$04
2330 STA WIDTH
2340 LDA #$00
2350 .22 STA $1AC0,Y
2360 STA $1AF0,Y
2370 STA $1F70,Y
2380 STA $1FA0,Y
2390 INY
2400 DEC WIDTH
2410 BNE .22
2420 RTS
2430 UPDATE.HORIZ.ANTBYTS
2440 LDX FOODNUM
2450 LDA FOODY
2460 CLC
2470 ADC TABLE120,X
2480 STA TEMP4
2490 LDA TABLE122,X
2500 STA TEMP1
2510 CLC
2520 ADC FOODX
2530 STA TEMP2
2540 .3 LDX TEMP1
2550 LDA ANTHOLD,X
2560 BEQ .1
2570 JSR .2
2580 .1 DEC TEMP2
2590 DEC TEMP1
2600 LDA TEMP2
2610 CMP FOODX
2620 BCS .3
2630 RTS
2640 .2 LDX TEMP4
2650 LDY TEMP2
2660 LDA AAMSBYT,X
2670 STA POINTER1+1
2680 LDA AALSBYT,X
2690 STA POINTER1
2700 LDA (POINTER1),Y
2710 AND #$1F
2720 TAY
2730 LDA ANTBYT2,Y
2740 CLC
2750 LDX FOODNUM
2760 ADC TABLE114,X
2770 STA ANTBYT2,Y
2780 RTS
2790 UPDATE.VERT.DESTBYTS
2800 LDX FOODNUM
2810 LDA TABLE127,X
2820 UPDATE.VERT.DESTBYTS2
2830 STA TEMP1
2840 LDA TABLE122,X
2850 STA WIDTH
2860 LDY TABLE118,X
2870 .6 JSR .5
2880 INY
2890 DEC WIDTH
2900 BPL .6
2910 RTS
2920 .5 LDA DESTBYT2,Y
2930 CLC
2940 ADC TEMP1
2950 STA DESTBYT2,Y
2960 RTS
2970 PLOT.HORIZ.ANTS
2980 LDA #$08
2990 STA POINTER1+1
3000 LDX FOODNUM
3010 LDA TABLE108,X
3020 STA POINTER1
3030 LDA ORIENT
3040 AND #$01
3050 BEQ .4
3060 LDA #$10
3070 CLC
3080 ADC POINTER1
3090 STA POINTER1
3100 .4 LDA #$00
3110 CPX #$05
3120 BNE .1
3130 LDA #$04
3140 .1 STA ANTXX
3150 LDA TABLE112,X
3160 STA ANTX
3170 LDA FOODY
3180 ASL
3190 ASL
3200 ASL
3210 STA TEMP1
3220 LDA ANTPOS
3230 CLC
3240 ADC TABLE109,X
3250 TAY
3260 LDA TABLE126,Y
3270 CLC
3280 ADC TEMP1
3290 STA ANTY
3300 LDY #$00
3310 STY TEMP4
3320 LDA TABLE104,X
3330 STA WIDTH
3340 .3 LDY TEMP4
3350 LDA ANTHOLD,Y
3360 BEQ .2
3370 JSR PLOT.ANT4.Z
3380 .2 INC ANTX
3390 LDA ANTXX
3400 EOR #$04
3410 STA ANTXX
3420 INC TEMP4
3430 DEC WIDTH
3440 BNE .3
3450 RTS
3460 MOVE.HORIZ.ANTS.BLOCKS
3470 LDX FOODNUM
3480 LDA FOODY
3490 CLC
3500 ADC TABLE128,X
3510 STA TEMP4
3520 LDA TABLE122,X
3530 STA TEMP1
3540 CLC
3550 ADC FOODX
3560 STA TEMP2
3570 .3 LDX TEMP1
3580 LDA ANTHOLD,X
3590 BEQ .1
3600 JSR .4
3610 BNE .2
3620 .1 JSR .5
3630 .2 DEC TEMP2
3640 DEC TEMP1
3650 LDA TEMP2
3660 CMP FOODX
3670 BCS .3
3680 RTS
3690 .5 LDX FOODNUM
3700 LDA TEMP4
3710 CLC
3720 ADC TABLE114,X
3730 TAX
3740 LDY TEMP2
3750 LDA AAMSBYT,X
3760 STA POINTER1+1
3770 LDA AALSBYT,X
3780 STA POINTER1
3790 LDA (POINTER1),Y
3800 AND #$C0
3810 STA (POINTER1),Y
3820 RTS
3830 .4 LDY TEMP2
3840 LDX TEMP4
3850 LDA AAMSBYT,X
3860 STA POINTER1+1
3870 LDA AALSBYT,X
3880 STA POINTER1
3890 LDA (POINTER1),Y
3900 AND #$3F
3910 STA TEMP3
3920 LDA (POINTER1),Y
3930 AND #$C0
3940 STA (POINTER1),Y
3950 TXA
3960 LDX FOODNUM
3970 CLC
3980 ADC TABLE114,X
3990 TAX
4000 LDA AAMSBYT,X
4010 STA POINTER1+1
4020 LDA AALSBYT,X
4030 STA POINTER1
4040 LDA (POINTER1),Y
4050 AND #$C0
4060 ORA TEMP3
4070 STA (POINTER1),Y
4080 RTS
4090 ERASE.HORIZ.ANTS
4100 LDX FOODNUM
4110 LDA #$00
4120 CPX #$05
4130 BNE .1
4140 LDA #$04
4150 .1 STA ANTXXOLD
4160 LDA TABLE112,X
4170 STA ANTXOLD
4180 LDA FOODY
4190 ASL
4200 ASL
4210 ASL
4220 STA TEMP1
4230 LDA ANTPOS
4240 CLC
4250 ADC TABLE109,X
4260 TAY
4270 LDA TABLE126,Y
4280 CLC
4290 ADC TEMP1
4300 STA ANTYOLD
4310 STA TEMP4
4320 LDY #$00
4330 STY TEMP1
4340 LDA TABLE104,X
4350 STA WIDTH
4360 .3 LDY TEMP1
4370 LDA ANTHOLD,Y
4380 BEQ .2
4390 LDA TEMP4
4400 STA ANTYOLD
4410 JSR ERASE.ANT.Z
4420 .2 INC ANTXOLD
4430 LDA ANTXXOLD
4440 EOR #$04
4450 STA ANTXXOLD
4460 INC TEMP1
4470 DEC WIDTH
4480 BNE .3
4490 .LI ON
4500 RTS
4510 .LI OFF
4520 .OR $5F40
4530 .TA $2F40
4540 ERASE.ROW
4550 LDY #$08
4560 STY HEIGHT
4570 ASL
4580 ASL
4590 ASL
4600 STA TEMP2
4610 CMP #$70
4620 BCS .4
4630 CMP #$38
4640 BCC .5
4650 LDA #$10
4660 BNE .3
4670 .4 CMP #$B0
4680 BCS .14
4690 LDA #$F0
4700 .3 STA TEMP4
4710 .2 LDA WIDTH
4720 STA TEMP1
4730 LDY TEMP2
4740 LDA (SCRPNT1),Y
4750 STA POINTER1+1
4760 CLC
4770 ADC #$60
4780 STA POINTER4+1
4790 LDA (SCRPNT2),Y
4800 STA POINTER1
4810 STA POINTER4
4820 LDA TEMP2
4830 CLC
4840 ADC TEMP4
4850 TAY
4860 LDA (SCRPNT1),Y
4870 CLC
4880 ADC #$60
4890 STA POINTER2+1
4900 LDA (SCRPNT2),Y
4910 STA POINTER2
4920 LDY TEMP3
4930 .1 LDA (POINTER2),Y
4940 STA (POINTER1),Y
4950 STA (POINTER4),Y
4960 INY
4970 DEC TEMP1
4980 BNE .1
4990 INC TEMP2
5000 DEC HEIGHT
5010 BNE .2
5020 RTS
5030 .6 LDA #$80
5040 BNE .12
5050 .5 CMP #$20
5060 BCC .6
5070 .14 CMP #$C8
5080 BCS .6
5090 LDA #$00
5100 .12 STA TEMP4
5110 STA TEMP5
5120 .8 LDA TEMP3
5130 CMP #$12
5140 BEQ .7
5150 LDA #$55
5160 LDY #$2A
5170 JSR .13
5180 .9 LDA WIDTH
5190 STA TEMP1
5200 LDY TEMP2
5210 LDA (SCRPNT1),Y
5220 STA POINTER1+1
5230 CLC
5240 ADC #$60
5250 STA POINTER4+1
5260 LDA (SCRPNT2),Y
5270 STA POINTER1
5280 STA POINTER4
5290 LDY TEMP3
5300 .11 LDA TEMP4
5310 STA (POINTER1),Y
5320 STA (POINTER4),Y
5330 INY
5340 DEC TEMP1
5350 BEQ .10
5360 LDA TEMP5
5370 STA (POINTER1),Y
5380 STA (POINTER4),Y
5390 INY
5400 DEC TEMP1
5410 BNE .11
5420 .10 INC TEMP2
5430 DEC HEIGHT
5440 BNE .9
5450 RTS
5460 .7 LDA #$2A
5470 LDY #$55
5480 JSR .13
5490 BNE .9
5500 .13 ORA TEMP4
5510 STA TEMP4
5520 TYA
5530 ORA TEMP5
5540 STA TEMP5
5550 .LI ON
5560 RTS
5570 .LI OFF