-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathevalnew.src
More file actions
157 lines (157 loc) · 3.47 KB
/
Copy pathevalnew.src
File metadata and controls
157 lines (157 loc) · 3.47 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
20 EVALNEW
30 LDA NSTSCORE
40 STA NSCORE
50 LDA NSTSCORE+1
60 STA NSCORE+1
70 JSR POSITRON
80 LDX #$15
90 NEVLOOP LDA BOARD,X
0100 BEQ NEVSKIP
0110 CMP #$FF
0120 BEQ NEVSKIP
0130 JSR NFIXSCORE
0140 LDA BOARD3,X
0150 BEQ NEVSKIP
0160 STA TEMP
0170 LDA BOARD,X
0180 AND #$80
0190 JSR NSMFIX
0200 NEVSKIP LDA BOARD2,X
0210 BPL NEV2SKIP
0220 LDA BOARD,X
0230 TAY
0240 AND #$80
0250 CMP TYPE
0260 BNE NEV2SKIP
0270 TYA
0280 CLC
0290 ADC #$0C
0300 EOR #$80
0310 JSR NFIXSCORE
0320 NEV2SKIP INX
0330 CPX #$6F
0340 BNE NEVLOOP
0350 RTS
0360 NSTSCORE .WORD $4000
0370 NPOINTS
0380 .WORD 0 ; ATTK BONUS
0390 .WORD 100 ; PAWN
0400 .WORD 300 ; KNIGHT
0410 .WORD 350 ; BISHOP
0420 .WORD 500 ; ROOK
0430 .WORD 900 ; QUEEN
0440 .WORD 5000 ; KING
0450 .WORD 1 ; P MOBILITY
0460 .WORD 4 ; N MOBILITY
0470 .WORD 3 ; B MOBILITY
0480 .WORD 1 ; R MOBILITY
0490 .WORD 1 ; Q MOBILITY
0500 .WORD 0 ; K MOBILITY
0510 .WORD 100 ; P HANGING
0520 .WORD 300 ; N HANGING
0530 .WORD 350 ; B HANGING
0540 .WORD 500 ; R HANGING
0550 .WORD 900 ; Q HANGING
0560 .WORD 5000 ; K HANGING
0570 POSITRON JSR EVGEN
0580 LDX #$6F
0590 LDA #$00
0600 PZCLEAR STA BOARD2,X
0610 DEX
0620 BPL PZCLEAR
0630 PZLOOP JSR PULLXY
0640 CPX #$FF
0650 BEQ PZEXIT
0660 LDA BOARD,Y
0670 BEQ PZLOOP
0680 PZCHECK LDA BOARD,X ; FIND
0690 AND #$80 ; HANGING PIECES
0700 STA TEMP
0710 LDA BOARD,Y
0720 AND #$80
0730 CMP TEMP
0740 BEQ PZUP ; PIECE GUARDED
0750 LDA BOARD,X
0760 AND #$7F
0770 STA TEMP
0780 LDA BOARD,Y
0790 AND #$7F
0800 SEC
0810 SBC TEMP
0820 BMI PZDOWN
0830 LDA BOARD2,Y ; PIECE ATTACKD
0840 SEC ; BY WEAKER
0850 SBC #$0F ; PIECE
0860 STA BOARD2,Y
0870 JMP PZLOOP
0880 PZDOWN TYA
0890 TAX
0900 DEC BOARD2,X ; PUNISH HANGIN
0910 LDA BOARD,X ; AWARD ATTACK
0920 AND #$80
0930 JSR NFIXSCORE
0940 JMP PZLOOP
0950 PZUP TYA
0960 TAX
0970 INC BOARD2,X
0980 JMP PZLOOP
0990 PZEXIT RTS
1000 NSMFIX
1010 CMP COMPTYPE
1020 BNE NSMSUB
1030 LDA TEMP
1040 CLC
1050 ADC NSCORE
1060 STA NSCORE
1070 BCC NSMEXIT
1080 INC NSCORE+1
1090 JMP NSMEXIT
1100 NSMSUB LDA NSCORE
1110 SEC
1120 SBC TEMP
1130 STA NSCORE
1140 BCS NSMEXIT
1150 DEC NSCORE+1
1160 NSMEXIT RTS
1170 NFIXSCORE
1180 PHA
1190 AND #$80
1200 CMP COMPTYPE
1210 BEQ NEVADD
1220 PLA
1230 AND #$7F
1240 ASL A
1250 TAY
1260 LDA NSCORE
1270 SEC
1280 SBC NPOINTS,Y
1290 STA NSCORE
1300 LDA NSCORE+1
1310 SBC NPOINTS+1,Y
1320 STA NSCORE+1
1330 RTS
1340 NEVADD PLA
1350 AND #$0F
1360 ASL A
1370 TAY
1380 LDA NSCORE
1390 CLC
1400 ADC NPOINTS,Y
1410 STA NSCORE
1420 LDA NSCORE+1
1430 ADC NPOINTS+1,Y
1440 STA NSCORE+1
1450 RTS
1460 BOARD3
1470 .BYTE 0,0,0,0,0,0,0,0,0,0
1480 .BYTE 0,0,0,0,0,0,0,0,0,0
1490 .BYTE 0,0,0,0,0,0,0,0,0,0
1500 .BYTE 0,0,0,0,0,0,0,0,0,0
1510 .BYTE 0,0,1,1,1,1,1,1,0,0
1520 .BYTE 0,0,1,1,4,4,1,1,0,0
1530 .BYTE 0,0,1,1,4,4,1,1,0,0
1540 .BYTE 0,0,1,1,1,1,1,1,0,0
1550 .BYTE 0,0,0,0,0,0,0,0,0,0
1560 .BYTE 0,0,0,0,0,0,0,0,0,0
1570 .BYTE 0,0,0,0,0,0,0,0,0,0
1580 .BYTE 0,0,0,0,0,0,0,0,0,0