-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathchess.src
More file actions
182 lines (182 loc) · 3.78 KB
/
Copy pathchess.src
File metadata and controls
182 lines (182 loc) · 3.78 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
10 .OPT NO LIST
20 *= $4000
30 BOARD = $6000
40 MOVTAB = $C0
50 COUNT = $C2
60 TYPE = $C3
70 BLOK = $C4
80 TEMP = $C5
90 CAPTFLAG = $C6
0100 GOFLAG = $C7
0110 START
0120 LDA #$00
0130 STA TYPE
0140 JSR SETUP
0150 MAINLOOP JSR MOVGEN
0160 RTS
0170 DIRDATA
0180 .BYTE -1,-9,1,9,-10,-8,10,8,11,7,19,17,-7,-11,-17,-19,-9,-18,9,18
0190 DIRIND
0200 .BYTE 0,8,4,0,0,0
0210 DIST
0220 .BYTE 0,8,4,4,8,8
0230 GODATA
0240 .BYTE 0,0,1,1,1,0
0250 SETUP LDY #$80
0260 SETLOOP LDA BDATA-1,Y
0270 STA BOARD-1,Y
0280 DEY
0290 BNE SETLOOP
0300 RTS
0310 BDATA
0320 .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
0330 .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
0340 .BYTE $FF,$84,$82,$83,$85,$86,$83,$82,$84
0350 .BYTE $FF,$81,$81,$81,$81,$81,$81,$81,$81
0360 .BYTE $FF,0,0,0,0,0,0,0,0
0370 .BYTE $FF,0,0,0,0,0,0,0,0
0380 .BYTE $FF,0,0,0,0,0,0,0,0
0390 .BYTE $FF,0,0,0,0,0,0,0,0
0400 .BYTE $FF,$01,$01,$01,$01,$01,$01,$01,$01
0410 .BYTE $FF,$04,$02,$03,$05,$06,$03,$02,$04
0420 .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
0430 .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
0440 MOVGEN
0450 LDA #$00
0460 STA MOVTAB
0470 LDA #$50
0480 STA MOVTAB+1
0490 LDA #$12
0500 STA BLOK
0510 GENLOOP TAX
0520 LDA BOARD,X
0530 CMP #$00
0540 BEQ ENDGEN
0550 CMP #$FF
0560 BEQ ENDGEN
0570 AND #$80
0580 CMP TYPE
0590 BNE ENDGEN
0600 LDA BOARD,X
0610 AND #$07
0620 CMP #$01
0630 BNE NOTPAWN
0640 JMP PAWNSUB
0650 NOTPAWN TAX
0660 DEX
0670 LDA DIST,X
0680 STA COUNT
0690 LDA GODATA,X
0700 STA GOFLAG
0710 LDA DIRIND,X
0720 TAX
0730 GEN2LOOP LDA BLOK
0740 SLIDE CLC
0750 ADC DIRDATA,X
0760 TAY
0770 LDA BOARD,Y
0780 STA CAPTFLAG
0785 BEQ MVFOUND
0790 CMP #$FF
0800 BEQ END2GEN
0810 AND #$80
0820 CMP TYPE
0830 BEQ END2GEN
0840 MVFOUND STY TEMP
0850 LDY #$00
0860 LDA BLOK
0870 STA (MOVTAB),Y
0880 INY
0890 LDA TEMP
0900 STA (MOVTAB),Y
0910 INC MOVTAB
0920 INC MOVTAB
0940 LDA CAPTFLAG
0950 BNE END2GEN ; STOP-PIECE CAPTURED
0960 LDA GOFLAG
0970 BEQ END2GEN ; STOP-PIECE MOVES 1
0975 LDA TEMP
0980 JMP SLIDE
0990 END2GEN INX ; TRY NEXT DIRECTION
1000 DEC COUNT
1010 BNE GEN2LOOP
1020 ENDGEN INC BLOK
1030 LDA BLOK
1040 CMP #$59
1050 BEQ EXITGEN
1060 JMP GENLOOP
1070 EXITGEN RTS
1080 PDATA
1090 .BYTE -9,-8,-10,-18,9,8,10,18
1100 PLEFT
1110 .BYTE $49,$1C
1120 PRIGHT
1130 .BYTE $51,$24
1140 PAWNSUB
1150 LDY #$00
1160 LDA BOARD,X
1170 AND #$80
1180 BEQ PAWN2
1190 LDY #$04
1200 PAWN2 LDA BLOK
1210 CLC
1220 ADC PDATA,Y
1230 TAX
1240 LDA BOARD,X
1250 BNE PAWN3
1260 JSR PSAVE
1270 PAWN3 INY
1280 LDA PDATA,Y
1290 CLC
1300 ADC BLOK
1310 TAX
1320 LDA BOARD,X
1330 BEQ PAWN4
1340 CMP #$FF
1350 BEQ PAWN4
1360 AND #$80
1370 CMP TYPE
1380 BEQ PAWN4
1390 JSR PSAVE ; CAN ATTACK
1400 PAWN4 INY
1410 LDA PDATA,Y
1420 CLC
1430 ADC BLOK
1440 TAX
1450 LDA BOARD,X
1460 BEQ PAWN5
1470 CMP #$FF
1480 BEQ PAWN5
1490 AND #$80
1500 CMP TYPE
1510 BEQ PAWN5
1520 JSR PSAVE
1530 PAWN5 INY ; TEST MOVE 2
1540 LDX #$00
1550 LDA TYPE
1560 BPL PSKIP
1570 INX
1580 PSKIP LDA BLOK
1590 CMP PLEFT,X
1600 BCC PEXIT
1610 CMP PRIGHT,X
1620 BCS PEXIT
1630 CLC
1640 ADC PDATA,Y
1650 TAX
1660 LDA BOARD,X
1670 BNE PEXIT
1680 JSR PSAVE
1690 PEXIT JMP ENDGEN
1700 PSAVE
1710 STY TEMP
1720 LDA BLOK
1730 LDY #$00
1740 STA (MOVTAB),Y
1750 INY
1760 TXA
1770 STA (MOVTAB),Y
1780 INC MOVTAB
1790 INC MOVTAB
1800 PS2 LDY TEMP
1810 RTS