-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathevaluate.src
126 lines (126 loc) · 2.71 KB
/
evaluate.src
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
20 EVALUATE
30 LDA STSCORE
40 STA NSCORE
50 LDA STSCORE+1
60 STA NSCORE+1
70 JSR POSEVAL
80 LDX #$15
90 EVLOOP LDA BOARD,X
0100 BEQ EVSKIP
0110 CMP #$FF
0120 BEQ EVSKIP
0130 JSR FIXSCORE
0140 EVSKIP LDA BOARD2,X
0150 BPL EV2SKIP
0160 LDA BOARD,X
0170 TAY
0180 AND #$80
0190 CMP TYPE
0200 BNE EV2SKIP
0210 TYA
0220 CLC
0230 ADC #$0C
0240 EOR #$80
0250 JSR FIXSCORE
0260 EV2SKIP INX
0270 CPX #$6F
0280 BNE EVLOOP
0290 RTS
0300 STSCORE .WORD $4000
0310 POINTS
0320 .WORD 0 ; ATTK BONUS
0330 .WORD 100 ; PAWN
0340 .WORD 300 ; KNIGHT
0350 .WORD 350 ; BISHOP
0360 .WORD 500 ; ROOK
0370 .WORD 900 ; QUEEN
0380 .WORD 5000 ; KING
0390 .WORD 1 ; P MOBILITY
0400 .WORD 2 ; N MOBILITY
0410 .WORD 3 ; B MOBILITY
0420 .WORD 1 ; R MOBILITY
0430 .WORD 1 ; Q MOBILITY
0440 .WORD 0 ; K MOBILITY
0450 .WORD 100 ; P HANGING
0460 .WORD 300 ; N HANGING
0470 .WORD 350 ; B HANGING
0480 .WORD 500 ; R HANGING
0490 .WORD 900 ; Q HANGING
0500 .WORD 5000 ; K HANGING
0510 POSEVAL JSR EVGEN
0520 LDX #$6F
0530 LDA #$00
0540 EPCLEAR STA BOARD2,X
0550 DEX
0560 BPL EPCLEAR
0570 EPLOOP JSR PULLXY
0580 CPX #$FF
0590 BEQ EPZEXIT
0600 LDA BOARD,Y
0610 BNE EPCHECK
0620 LDA BOARD,X
0630 CLC ; AWARD MOBILITY
0640 ADC #$06
0650 JSR FIXSCORE
0660 JMP EPLOOP
0670 EPCHECK LDA BOARD,X ; FIND
0680 AND #$80 ; HANGING PIECES
0690 STA TEMP
0700 LDA BOARD,Y
0710 AND #$80
0720 CMP TEMP
0730 BEQ EPUP ; PIECE GUARDED
0740 LDA BOARD,X
0750 AND #$7F
0760 STA TEMP
0770 LDA BOARD,Y
0780 AND #$7F
0790 SEC
0800 SBC TEMP
0810 BMI EPDOWN
0820 LDA BOARD2,Y ; PIECE ATTACKD
0830 SEC ; BY WEAKER
0840 SBC #$0F ; PIECE
0850 STA BOARD2,Y
0860 JMP EPLOOP
0870 EPDOWN TYA
0880 TAX
0890 DEC BOARD2,X ; PUNISH HANGIN
0900 LDA BOARD,X ; AWARD ATTACK
0910 AND #$80
0920 JSR FIXSCORE
0930 JMP EPLOOP
0940 EPUP TYA
0950 TAX
0960 INC BOARD2,X
0970 JMP EPLOOP
0980 EPZEXIT RTS
0990 FIXSCORE
1000 PHA
1010 AND #$80
1020 CMP COMPTYPE
1030 BEQ EVADD
1040 PLA
1050 AND #$7F
1060 ASL A
1070 TAY
1080 LDA NSCORE
1090 SEC
1100 SBC POINTS,Y
1110 STA NSCORE
1120 LDA NSCORE+1
1130 SBC POINTS+1,Y
1140 STA NSCORE+1
1150 RTS
1160 EVADD PLA
1170 AND #$0F
1180 ASL A
1190 TAY
1200 LDA NSCORE
1210 CLC
1220 ADC POINTS,Y
1230 STA NSCORE
1240 LDA NSCORE+1
1250 ADC POINTS+1,Y
1260 STA NSCORE+1
1270 RTS