-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathevgen.src
More file actions
121 lines (121 loc) · 2.38 KB
/
evgen.src
File metadata and controls
121 lines (121 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
10 .OPT NO LIST
20 EVDIR
30 .BYTE -1,-10,1,10,-11,-9,11,9
40 .BYTE 12,8,21,19,-12,-8,-21,-19
50 EVIND
60 .BYTE 0,8,4,0,0,0
70 EVDIS
80 .BYTE 0,8,4,4,8,8
90 EVGO
0100 .BYTE 0,0,1,1,1,0
0110 EVGEN
0120 LDA #$15
0130 STA BLOK
0140 LDA #$FF
0150 JSR PUSHA
0160 JSR PUSHA
0170 EVGLOOP LDX BLOK
0180 LDA BOARD,X
0190 BEQ EVGEND
0200 CMP #$FF
0210 BEQ EVGEND
0220 AND #$07
0230 CMP #$01
0240 BNE EVGSKIP
0250 JMP EVPSUB
0260 EVGSKIP TAX
0270 DEX
0280 LDA EVDIS,X
0290 STA COUNT
0300 LDA EVGO,X
0310 STA GOFLAG
0320 LDA EVIND,X
0330 TAX
0340 EVG2LOOP LDA BLOK
0350 EVSLIDE CLC
0360 ADC EVDIR,X
0370 TAY
0380 LDA BOARD,Y
0390 STA CAPTFLAG
0400 BEQ EVMVFND
0410 CMP #$FF
0420 BEQ EVG2END
0430 EVMVFND LDA BLOK
0440 JSR PUSHA
0450 TYA
0460 JSR PUSHA
0470 LDA CAPTFLAG
0480 BNE EVG2END ; STOP-PIECE CAPTURED
0490 LDA GOFLAG
0500 BEQ EVG2END ; STOP-PIECE MOVES 1
0510 LDA TEMP
0520 JMP EVSLIDE
0530 EVG2END INX ; TRY NEXT DIRECTION
0540 DEC COUNT
0550 BNE EVG2LOOP
0560 EVGEND INC BLOK
0570 LDA BLOK
0580 CMP #$63
0590 BNE EVGLOOP
0600 RTS
0610 EPDATA
0620 .BYTE -10,-9,-11,-20,10,9,11,20
0630 EPLEFT
0640 .BYTE 81,31
0650 EPRIGHT
0660 .BYTE 89,39
0670 EVPSUB
0680 LDY #$00
0690 STY GOFLAG
0700 LDA BOARD,X
0710 AND #$80
0720 BEQ EVPAWN2
0730 LDY #$04
0740 EVPAWN2 LDA BLOK
0750 CLC
0760 ADC EPDATA,Y
0770 TAX
0780 LDA BOARD,X
0790 BNE EVPAWN3
0800 JSR PSAVE
0810 INC GOFLAG
0820 EVPAWN3 INY
0830 LDA EPDATA,Y
0840 CLC
0850 ADC BLOK
0860 TAX
0870 LDA BOARD,X
0880 BEQ EVPAWN4
0890 CMP #$FF
0900 BEQ EVPAWN4
0910 JSR PSAVE ; CAN ATTACK
0920 EVPAWN4 INY
0930 LDA EPDATA,Y
0940 CLC
0950 ADC BLOK
0960 TAX
0970 LDA BOARD,X
0980 BEQ EVPAWN5
0990 CMP #$FF
1000 BEQ EVPAWN5
1010 JSR PSAVE
1020 EVPAWN5 INY ; TEST MOVE 2
1030 LDA GOFLAG
1040 BNE EPEXIT
1050 LDX #$00
1060 LDA TYPE
1070 BPL EPSKIP
1080 INX
1090 EPSKIP CMP EPLEFT,X
1100 BCC EPEXIT
1110 CMP EPRIGHT,X
1120 BCS EPEXIT
1130 CLC
1140 ADC EPDATA,Y
1150 TAX
1160 LDA BOARD,X
1170 BNE EPEXIT
1180 LDA GOFLAG
1190 BNE EPEXIT
1200 JSR PSAVE
1210 EPEXIT JMP EVGEND