Add files via upload
[edfries-anteater.git] / bl2ant.src
1 10 ; DRAW ANTEATER
2 20 EATDRAW
3 30       STX AMXSAVE
4 40       LDY #$0B
5 50       LDA EDTABLE,X
6 60       STA TEMP2
7 70       LDA EYLOC,X
8 80       CLC 
9 90       ADC #$06
10 0100     STA TEMP1
11 0110     LDA #$00
12 0120     STA (TEMP1),Y
13 0130     DEY 
14 0140     LDA EATROT,X
15 0141     CLC 
16 0142     ADC #$01
17 0150     ASL A
18 0151     SEC 
19 0152     SBC #$01
20 0159     PHA 
21 0160     LDA EXLOC,X
22 0170     EOR EYLOC,X
23 0180     AND #$04
24 0190     BEQ EDNSHF
25 0200     PLA 
26 0201     SEC 
27 0202     SBC #$0A
28 0203     PHA 
29 0210 EDNSHF PLA 
30 0215     TAX 
31 0220 EDLOOP LDA EATPIC,X
32 0230     STA (TEMP1),Y
33 0240     DEX 
34 0250     DEY 
35 0260     BNE EDLOOP
36 0270     LDA #$00
37 0280     STA (TEMP1),Y
38 0290     LDX AMXSAVE
39 0300     LDA EXLOC,X
40 0310     STA HPOS0+1,X
41 0320     RTS 
42 0325     *=  $AD00
43 0330 EATPIC
44 0340     .BYTE $00,$00,$16,$3F,$7F,$9F,$12,$11,$21,$00
45 0350     .BYTE $00,$00,$16,$3F,$FF,$1F,$12,$0A,$0A,$00
46 0360     .BYTE $04,$0F,$0E,$0E,$0F,$06,$06,$02,$02,$02
47 0370     .BYTE $05,$0E,$0E,$0E,$0E,$06,$07,$02,$02,$02
48 0380     .BYTE $00,$00,$68,$FC,$FE,$F9,$48,$88,$84,$00
49 0390     .BYTE $00,$00,$68,$FC,$FF,$F8,$48,$50,$50,$00
50 0400     .BYTE $04,$04,$04,$0E,$06,$07,$07,$07,$07,$0A
51 0410     .BYTE $04,$04,$04,$06,$06,$0F,$07,$07,$0F,$02
52 0420 EDTABLE
53 0430     .BYTE $25,$26,$27
54 0440 EATMOVE
55 0450     INC EATOVER
56 0460     LDA EATOVER
57 0470     CMP #$04
58 0480     BEQ EAMCONT
59 0490     RTS 
60 0500 EAMCONT LDA #$00
61 0510     STA EATOVER
62 0520     LDX #$02
63 0530 EMBLOOP
64 0540     LDA EMODE,X
65 0550     BNE EMMORE
66 0560     JMP EMNIL
67 0570 EMMORE LDA EXLOC,X
68 0580     AND #$03
69 0590     BNE EMCHANGE
70 0600     LDA EYLOC,X
71 0610     AND #$07
72 0620     BNE EMCHANGE
73 0630     LDA EMODE,X
74 0640     CMP #$01
75 0650     BEQ TOPMOVE
76 0660     CMP #$02
77 0670     BNE EM1CONT
78 0680     JMP LEFTIE
79 0690 EM1CONT
80 0700     CMP #$03
81 0710     BNE EM2CONT
82 0720     JMP WANDER
83 0730 EM2CONT RTS 
84 0740 EMCHANGE LDA EXVEC,X
85 0750     CLC 
86 0760     ADC EXLOC,X
87 0770     STA EXLOC,X
88 0780     LDA EYVEC,X
89 0790     CLC 
90 0800     ADC EYLOC,X
91 0810     STA EYLOC,X
92 0820     LDA EYLOC,X
93 0830     CMP #TOP
94 0840     BNE EMEND
95 0850     LDA EMODE,X
96 0860     CMP #$01
97 0870     BEQ EMEND
98 0880     LDA #$01
99 0890     STA EMODE,X
100 0900     LDA #$09
101 0910     STA EATROT,X
102 0920     LDA RANDOM
103 0930     AND #$01
104 0940     BNE EMLEFT
105 0950     LDA #$1D
106 0960     STA EATROT,X
107 0970     LDA #$01
108 0980     STA EXVEC,X
109 0990     STA ETEMP,X
110 1000     INC EXLOC,X
111 1010     JMP EMRIGHT
112 1020 EMLEFT LDA #$FF
113 1030     STA EXVEC,X
114 1040     LDA #$00
115 1050     STA ETEMP,X
116 1060 EMRIGHT LDA #$00
117 1070     STA EYVEC,X
118 1080 EMEND JSR EATDRAW
119 1090 EMNIL DEX 
120 1100     BMI EMFINI
121 1110     JMP EMBLOOP
122 1120 EMFINI RTS 
123 1130 ; CONVERTS EATER X AND Y LOC.
124 1140 ; TO SCREEN COORDINATES
125 1150 EMCON
126 1160     LDA EXLOC,X
127 1170     LSR A
128 1180     LSR A
129 1190     SEC 
130 1200     SBC #$0B
131 1210     STA EXSCRN
132 1220     LDA EATROT,X
133 1230     CMP #$09
134 1240     BNE EMXOK
135 1250     DEC EXSCRN
136 1260 EMXOK LDA EYLOC,X
137 1270     LSR A
138 1280     LSR A
139 1290     LSR A
140 1300     SEC 
141 1310     SBC #$05
142 1320     STA EYSCRN
143 1330     RTS 
144 1340 ; TOGGLE LEFT RIGHT MOVE
145 1350 TOPMOVE
146 1360     LDA YLOC
147 1370     CMP #TOP
148 1380     BEQ TMSPEC
149 1390     LDA EXLOC,X
150 1400     CMP #$40
151 1410     BCC TM1
152 1420     CMP #$C8
153 1430     BCS TM1
154 1440     JMP TMEXIT
155 1450 TM1
156 1460     LDA ETEMP,X
157 1470     EOR #$01
158 1480     STA ETEMP,X
159 1490     TAY 
160 1500     LDA TMXVEC,Y
161 1510     STA EXVEC,X
162 1520     LDA #$00
163 1530     STA EYVEC,X
164 1540     LDA TMROT,Y
165 1550     STA EATROT,X
166 1560 TMEXIT STX AMXSAVE
167 1570     JSR EMCON
168 1580     LDX EXSCRN
169 1590     LDY EYSCRN
170 1600     INY 
171 1610     JSR FIND
172 1620     LDX AMXSAVE
173 1630     CMP #$40
174 1640     BEQ DOOM
175 1650     JMP EMCHANGE
176 1660 TMSPEC LDA #$01
177 1670     STA EXVEC,X
178 1680     LDA #$00
179 1690     STA EYVEC,X
180 1700     LDA #$1D
181 1710     STA EATROT,X
182 1720     LDA XLOC
183 1730     SEC 
184 1740     SBC EXLOC,X
185 1750     BCS TMSOK
186 1760     LDA #$FF
187 1770     STA EXVEC,X
188 1780     LDA #$09
189 1790     STA EATROT,X
190 1800 TMSOK JMP EMCHANGE
191 1810 DOOM LDA #$02
192 1820     STA EMODE,X
193 1830     LDA EATROT,X
194 1840     CMP #$09
195 1850     BNE DOMDON
196 1860     LDA EXLOC,X
197 1870     SEC 
198 1880     SBC #$04
199 1890     STA EXLOC,X
200 1900 DOMDON
201 1910     INX 
202 1920     CPX #$03
203 1930     BEQ DOM2
204 1940     CPX #$02
205 1950     BNE LIVOK
206 1960     LDY PTURN
207 1970     LDA ROUND,Y
208 1980     CMP #$01
209 1990     BEQ DOM2
210 2000 LIVOK CPX #$01
211 2010     BNE LIV2OK
212 2020     LDY PTURN
213 2030     LDA ROUND,Y
214 2040     BEQ DOM2
215 2050 LIV2OK LDA EMODE,X
216 2060     BNE DOM2
217 2070     LDA #$01
218 2080     STA EMODE,X
219 2090     LDA #TOP
220 2100     STA EYLOC,X
221 2110     LDA #$C0
222 2120     STA EXLOC,X
223 2130     LDA #$01
224 2140     STA EXVEC,X
225 2150     STA ETEMP,X
226 2160     LDA #$1D
227 2170     STA EATROT,X
228 2180 DOM2 DEX 
229 2190     LDA #$00
230 2200     STA ETEMP,X
231 2210     LDA LFROT
232 2220     STA EATROT,X
233 2230     LDA #$00
234 2240     STA EXVEC,X
235 2250     LDA LFYDAT
236 2260     STA EYVEC,X
237 2270     CLC 
238 2280     ADC EYLOC,X
239 2290     STA EYLOC,X
240 2300     JSR EATDRAW
241 2310     RTS 
242 2320 TMXVEC
243 2330     .BYTE $FF,1
244 2340 TMROT
245 2350     .BYTE 9,$1D
246 2360 LEFTIE
247 2370     JSR EMCON
248 2380     LDA RANDOM
249 2390     AND #$01
250 2400     STA $06FF
251 2410     BNE MEFIRST
252 2420 BACKTOME LDA EYLOC,X
253 2430     CMP YLOC
254 2440     BEQ LFB2
255 2450     BCC LFB1
256 2460     LDY #$02
257 2470     JSR LFSUB
258 2480     CMP #$40
259 2490     BNE LFB2
260 2500     JMP LFEND
261 2510 LFB1 LDY #$00
262 2520     JSR LFSUB
263 2530     CMP #$40
264 2540     BNE LFB2
265 2550     JMP LFEND
266 2560 LFB2 LDA $06FF
267 2570     BNE LFB5
268 2580 MEFIRST LDA EXLOC,X
269 2590     CMP XLOC
270 2600     BEQ LFB9
271 2610     BCC LFB3
272 2620     LDY #$03
273 2630     JSR LFSUB
274 2640     CMP #$40
275 2650     BNE LFB9
276 2660     JMP LFEND
277 2670 LFB3 LDY #$01
278 2680     JSR LFSUB
279 2690     CMP #$40
280 2700     BNE LFB9
281 2710     JMP LFEND
282 2720 LFB9 LDA $06FF
283 2730     BNE BACKTOME
284 2740 LFB5 LDA #$03
285 2750     STA EMODE,X
286 2760     LDA #$00
287 2770     STA EXVEC,X
288 2780     STA EYVEC,X
289 2790     JMP WANDER
290 2800 LFEND
291 2810     LDA EMODE,X
292 2820     CMP #$03
293 2830     BEQ LFECONT
294 2840     LDA ETEMP,X
295 2850     CLC 
296 2860     ADC #$02
297 2870     AND #$03
298 2880     STA TEMP1
299 2890     CPY TEMP1
300 2900     BNE LFECONT
301 2910     LDA RANDOM
302 2920     AND #$03
303 2930     BNE LFECONT
304 2940     JMP LFB5
305 2950 LFECONT LDA #$03
306 2960     CMP ETEMP,X
307 2970     BNE LFAEND
308 2980     CPY #$03
309 2990     BEQ LF2END
310 3000     LDA EXLOC,X
311 3010     SEC 
312 3020     SBC #$04
313 3030     STA EXLOC,X
314 3040     JMP LF2END
315 3050 LFAEND CPY #$03
316 3060     BNE LF2END
317 3070     INC EXLOC,X
318 3080 LF2END STY ETEMP,X
319 3090     LDA LFXDAT,Y
320 3100     STA EXVEC,X
321 3110     LDA LFYDAT,Y
322 3120     STA EYVEC,X
323 3130     LDA LFROT,Y
324 3140     STA EATROT,X
325 3150     JMP EMCHANGE
326 3160 LFSUB
327 3170     STY AMYSAVE
328 3180     STX AMXSAVE
329 3190     LDA LFXDAT,Y
330 3200     CLC 
331 3210     ADC EXSCRN
332 3220     TAX 
333 3230     LDA LFYDAT,Y
334 3240     CLC 
335 3250     ADC EYSCRN
336 3260     TAY 
337 3270     JSR FIND
338 3280     LDY AMYSAVE
339 3290     LDX AMXSAVE
340 3300     RTS 
341 3310 LFXDAT
342 3320     .BYTE $00,$01,$00,$FF
343 3330 LFYDAT
344 3340     .BYTE $01,$00,$FF,$00
345 3350 LFROT
346 3360     .BYTE $13,$1D,$27,$09
347 3370 WANDER
348 3380     JSR EMCON
349 3390     LDY ETEMP,X
350 3400     INY 
351 3410     TYA 
352 3420     AND #$03
353 3430     TAY 
354 3440     STA TEMP2
355 3450     JSR LFSUB
356 3460     CMP #$40
357 3470     BNE WAN1
358 3480     LDA RANDOM
359 3490     AND #$03
360 3500     BEQ WANWIN
361 3510 WAN1 LDY ETEMP,X
362 3520     DEY 
363 3530     TYA 
364 3540     AND #$03
365 3550     TAY 
366 3560     STA TEMP3
367 3570     JSR LFSUB
368 3580     CMP #$40
369 3590     BNE WAN2
370 3600     LDA RANDOM
371 3610     AND #$03
372 3620     BEQ WANWIN
373 3630 WAN2 LDY ETEMP,X
374 3640     JSR LFSUB
375 3650     CMP #$40
376 3660     BEQ WANWIN
377 3670     LDY TEMP3
378 3680     JSR LFSUB
379 3690     CMP #$40
380 3700     BEQ WANWIN
381 3710     LDY TEMP2
382 3720     JSR LFSUB
383 3730     CMP #$40
384 3740     BEQ WANWIN
385 3750     LDY ETEMP,X
386 3760     INY 
387 3770     INY 
388 3780     TYA 
389 3790     AND #$03
390 3800     TAY 
391 3810     JSR LFSUB
392 3820     CMP #$40
393 3830     BNE WANDER
394 3840 WANWIN
395 3850     LDA RANDOM
396 3860     AND #$1F
397 3870     BNE WANLS
398 3880     LDA #$02
399 3890     STA EMODE,X
400 3900 WANLS JMP LFEND