-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.src
141 lines (141 loc) · 2.76 KB
/
main.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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
10 .OPT NO LIST
20 *= $4000
30 BOARD = $6000
40 BOARD2 = $6100
50 PEXTRA = $C0
60 CSTKPTR = $C1
70 COUNT = $C2
80 TYPE = $C3
90 BLOK = $C4
0100 TEMP = $C5
0110 TEMP2 = $C6
0120 CAPTFLAG = $C7
0130 GOFLAG = $C8
0140 PRINTFLAG = $C9
0150 RTSTKPTR = $CA
0160 STKPTR = $80
0170 NSCORE = $82
0180 BEST = $84
0190 LEVEL = $86
0200 SEEK = $87
0210 SEEK2 = $88
0220 COMPTYPE = $89
0230 ALPHA = $8A
0240 BETA = $8C
0250 LASTMOVE = $8E
0260 CAPTCONT = $90
0270 VIEWFLAG = $91
0280 CSTACK = $0480
0290 SCOREL = $0580
0300 SCOREH = $0590
0310 STORE = $05A0
0320 BESTSTART = $05B0
0330 BESTEND = $05C0
0340 KILLSTART = $05D0
0350 KILLEND = $05E0
0360 RTSTACK = $0600
0370 .INCLUDE #D:SYSEQU.M65
0380 .INCLUDE #D:IOMAC.LIB
0390 START
0400 LDA #$00
0410 STA VIEWFLAG
0420 JSR SETUP
0430 LDA #$00
0440 STA COMPTYPE
0450 STA TYPE
0460 LDA #$00
0470 STA PRINTFLAG
0480 BEQ NEXTMOVE
0490 OPEN 1,OPOUT,0,"P:"
0500 NEXTMOVE LDA #$00
0510 STA LEVEL
0520 LDA #$00
0530 STA STKPTR
0540 STA RTSTKPTR
0550 LDA #$80
0560 STA STKPTR+1
0570 LDA #$03
0580 STA SEEK
0590 LDA #$0F
0600 STA SEEK2
0610 LDA #$01
0620 STA ALPHA
0630 LDA #$00
0640 STA ALPHA+1
0650 LDA #$FF
0660 STA BETA
0670 LDA #$7F
0680 STA BETA+1
0690 JSR MOVE
0700 LDX BESTSTART
0710 LDY BESTEND
0720 LDA BOARD,Y
0730 AND #$0F
0740 CMP #$06
0750 BEQ GAMEOVER
0760 LDA BOARD,X
0770 STA BOARD,Y
0780 LDA #$00
0790 STA BOARD,X
0800 JSR SHOWMOVE
0810 JSR BOARDRAW
0820 LDA COMPTYPE
0830 EOR #$80
0840 STA COMPTYPE
0850 STA TYPE
0860 BNE NOTWHITE
0870 LDA PRINTFLAG
0880 BEQ NOTWHITE
0890 LDA #13 ; CARRAGE RETURN
0900 STA TEMP2
0910 JSR OUTPRINT
0920 NOTWHITE JMP NEXTMOVE
0930 GAMEOVER RTS
0940 .INCLUDE #D:MOVGEN.SRC
0950 .INCLUDE #D:MKMOVE.SRC
0960 .INCLUDE #D:EVAL2.SRC
0970 .INCLUDE #D:BOARDRAW.SRC
0980 SHOWMOVE
0990 LDA #33
1000 STA $55
1010 LDA LEVEL
1020 TAX
1030 CLC
1040 ADC #$05
1050 STA $54
1060 LDA BESTSTART,X
1070 JSR OUTPUT
1080 LDA #$2D ; INSERT DASH
1090 JSR OUTCHAR
1100 LDX LEVEL
1110 LDA BESTEND,X
1120 JSR OUTPUT
1130 LDA #$20 ; SPACE
1140 JSR OUTCHAR
1150 RTS
1160 OUTPUT
1170 SEC
1180 SBC #$15
1190 LDX #$00
1200 OUTLOOP INX
1210 SEC
1220 SBC #$0A
1230 BPL OUTLOOP
1240 CLC
1250 ADC #$4B
1260 STX TEMP
1270 JSR OUTCHAR
1280 LDA #$09
1290 SEC
1300 SBC TEMP
1310 CLC
1320 ADC #$30
1330 JSR OUTCHAR
1340 RTS
1350 OUTCHAR
1360 STA TEMP2
1370 JSR $F6A4
1380 LDA PRINTFLAG
1390 BEQ OUTCEXIT
1400 OUTPRINT BPUT 1,TEMP2,1
1410 OUTCEXIT RTS