-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathfort.s
279 lines (278 loc) · 6.94 KB
/
fort.s
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
00010 ******************
00020 * Fort *
00030 * Apocalypse *
00040 * ROM *
00050 * *
00060 * By Steve Hales *
00070 * *
00080 * Copyright *
00090 * September 1 *
00100 * 1982 Synapse *
00110 * Software *
00120 * *
00130 ******************
00140 .LI OFF
00150 *
00160 * FEBUARY 8, 1983
00170 *
00180 * SYSTEM EQUATES
00190 *
00200 FRAME .EQ $14
00210 ATTRACT .EQ $4D
00220 VDSLST .EQ $200
00230 VVBLKI .EQ $222
00240 VVBLKD .EQ $224
00250 SDMCTL .EQ $22F
00260 SDLST .EQ $230
00270 PRIOR .EQ $26F
00280 PCOLR0 .EQ $2C0
00290 PCOLR1 .EQ $2C1
00300 PCOLR2 .EQ $2C2
00310 PCOLR3 .EQ $2C3
00320 COLOR0 .EQ $2C4
00330 COLOR1 .EQ $2C5
00340 COLOR2 .EQ $2C6
00350 COLOR3 .EQ $2C7
00360 COLOR4 .EQ $2C8
00370 DMACTL .EQ $D400
00380 M0PF .EQ $D000
00390 M1PF .EQ $D001
00400 M2PF .EQ $D002
00410 M3PF .EQ $D003
00420 P0PF .EQ $D004
00430 P1PF .EQ $D005
00440 P2PF .EQ $D006
00450 P3PF .EQ $D007
00460 M0PL .EQ $D008
00470 M1PL .EQ $D009
00480 M2PL .EQ $D00A
00490 M3PL .EQ $D00B
00500 P0PL .EQ $D00C
00510 P1PL .EQ $D00D
00520 P2PL .EQ $D00E
00530 P3PL .EQ $D00F
00540 COLPM0 .EQ $D012
00550 COLPM1 .EQ $D013
00560 COLPM2 .EQ $D014
00570 COLPM3 .EQ $D015
00580 COLPF0 .EQ $D016
00590 COLPF1 .EQ $D017
00600 COLPF2 .EQ $D018
00610 COLPF3 .EQ $D019
00620 COLBK .EQ $D01A
00630 HITCLR .EQ $D01E
00640 CHBASE .EQ $D409
00650 RANDOM .EQ $D20A
00660 CHBAS .EQ $2F4
00670 CH .EQ $2FC
00680 CH2 .EQ $2F2
00690 KBCODE .EQ $D209
00700 GRACTL .EQ $D01D
00710 SIZEP0 .EQ $D008
00720 SIZEP1 .EQ $D009
00730 SIZEP2 .EQ $D00A
00740 SIZEP3 .EQ $D00B
00750 PMBASE .EQ $D407
00760 HPOSP0 .EQ $D000
00770 HPOSP1 .EQ $D001
00780 HPOSP2 .EQ $D002
00790 HPOSP3 .EQ $D003
00800 HPOSM0 .EQ $D004
00810 HPOSM1 .EQ $D005
00820 HPOSM2 .EQ $D006
00830 HPOSM3 .EQ $D007
00840 SIZEM .EQ $D00C
00850 CONSOL .EQ $D01F
00860 NMIEN .EQ $D40E
00870 DLIST .EQ $D402
00880 HSCROL .EQ $D404
00890 VSCROL .EQ $D405
00900 WSYNC .EQ $D40A
00910 VCOUNT .EQ $D40B
00920 STICK .EQ $278
00930 TRIG0 .EQ $D010
00940 AUDF1 .EQ $D200
00950 AUDC1 .EQ $D201
00960 AUDF2 .EQ $D202
00970 AUDC2 .EQ $D203
00980 AUDF3 .EQ $D204
00990 AUDC3 .EQ $D205
01000 AUDF4 .EQ $D206
01010 AUDC4 .EQ $D207
01020 AUDCTL .EQ $D208
01030 SKCTL .EQ $D20F
01040 SKSTAT .EQ $D20F
01050 CDTMV1 .EQ $218
01060 CDTMV2 .EQ $21A
01070 CDTMA1 .EQ $226
01080 CDTMA2 .EQ $228
01090 VVBLKI.RET .EQ $E45F
01100 VVBLKD.RET .EQ $E462
01110 *
01120 * CONSTANTS
01130 *
01140 MIS .EQ $300
01150 PL0 .EQ $400
01160 PL1 .EQ $500
01170 PL2 .EQ $600
01180 PL3 .EQ $700
01190 RIGHT .EQ $8
01200 LEFT .EQ $4
01210 DOWN .EQ $2
01220 UP .EQ $1
01230 CHECK.SUM .EQ $264C
01240 *
01250 * CHANGE THESE CONSTANTS
01260 * WHEN PROGRAM NEED TO GO MOBILE
01270 *
01280 * START LEN
01290 PLAYER .EQ $0 $800 R
01300 PLAY.SCRN .EQ $300 $300 R
01310 CHR.SET1 .EQ $800 $400 R
01320 CHR.SET2 .EQ $C00 $400 R
01330 POD.1 .EQ $C00+920 $4E R
01340 POD.2 .EQ $3925 $9B R
01350 MAP .EQ $1100+3 $2800 R
01360 SLAVES .EQ $3904 $20 R
01370 SCANNER .EQ $39C0 $640 R
01380 RAM1.STUFF .EQ $C00+144 $48
01390 RAM2.STUFF .EQ $100
01400 PL .EQ $8000
01410 PACKED.MAP .EQ PL $D34
01420 PACKED.SCAN .EQ PL+$D34 $4ED
01430 PROGRAM .EQ PL+$1221 $2D2C
01440 S.LINE1 .EQ CHR.SET1+736
01450 S.LINE2 .EQ CHR.SET1+832
01460 S.LINE3 .EQ CHR.SET1+928
01470 LASERS.1 .EQ CHR.SET2+8
01480 LASERS.2 .EQ CHR.SET2+40
01490 LASER.3 .EQ CHR.SET2+72
01500 BLOCK.1 .EQ CHR.SET2+80
01510 BLOCK.2 .EQ CHR.SET2+88
01520 BLOCK.3 .EQ CHR.SET2+96
01530 BLOCK.4 .EQ CHR.SET2+104
01540 BLOCK.5 .EQ CHR.SET2+112
01550 BLOCK.6 .EQ CHR.SET2+120
01560 BLOCK.7 .EQ CHR.SET2+128
01570 BLOCK.8 .EQ CHR.SET2+136
01580 WINDOW.1 .EQ CHR.SET2+712
01590 WINDOW.2 .EQ CHR.SET2+720
01600 EXP .EQ $20
01610 EXP2 .EQ $3F
01620 EXPLOSION .EQ CHR.SET2+256
01630 EXPLOSION2 .EQ CHR.SET2+504
01640 MISS.LEFT .EQ $71
01650 MISS.RIGHT .EQ $72
01660 MISS.CHR.LEFT .EQ CHR.SET2+904
01670 MISS.CHR.RIGHT .EQ CHR.SET2+912
01680 EXP.WALL .EQ $47+128
01690 *
01700 MAX.LEFT .EQ 48
01710 MAX.RIGHT .EQ 192
01720 MAX.UP .EQ 100
01730 MAX.DOWN .EQ 212
01740 MAX.FUEL .EQ $2000
01750 MIN.LEFT .EQ 110
01760 MIN.RIGHT .EQ 130
01770 MIN.UP .EQ 146
01780 MIN.DOWN .EQ 166
01790 MAX.TANKS .EQ 6
01800 POD.SPEED .EQ 15
01810 *
01820 * ZERO PAGE USAGE
01830 *
01840 .OR $15
01850 ADR1 .BS 2
01860 ADR2 .BS 2
01870 TEMP1 .BS 1
01880 TEMP2 .BS 1
01890 TEMP3 .BS 1
01900 TEMP4 .BS 1
01910 TEMP5 .BS 1
01920 TEMP6 .BS 1
01930 TEMP.MODE .BS 1
01940 *
01950 ADR1.I .BS 2
01960 ADR2.I .BS 2
01970 TEMP1.I .BS 1
01980 TEMP2.I .BS 1
01990 TEMP3.I .BS 1
02000 TEMP4.I .BS 1
02010 S.ADR .BS 2
02020 S.TEMP .BS 1
02030 S.FLG .BS 1
02040 TANK.START.X
02050 .BS MAX.TANKS
02060 TANK.START.Y
02070 .BS MAX.TANKS
02080 TIM1.VAL .BS 1 LASER 1
02090 TIM2.VAL .BS 1 LASER 2
02100 TIM3.VAL .BS 1 CHOP EXPLODE
02110 TIM4.VAL .BS 1 RE FUEL
02120 TIM5.VAL .BS 1 TANK EXPLODE
02130 TIM6.VAL .BS 1 DEMO TIMER
02140 TIM7.VAL .BS 1 ROBO EXPLODE
02150 TIM8.VAL .BS 1 ROBO MISSILE
02160 TIM9.VAL .BS 1 SLAVE MESS
02170 SSIZEM .BS 1
02180 .OR $43
02190 S1.1.VAL .BS 1
02200 S1.2.VAL .BS 1
02210 S2.VAL .BS 1
02220 S3.VAL .BS 1
02230 S4.VAL .BS 1
02240 S5.VAL .BS 1
02250 S6.VAL .BS 1 MISSILE SND
02260 GAME.POINTS .BS 1
02270 DEMO.STATUS .BS 1
02280 DEMO.COUNT .BS 1
02290 *
02300 MAX.PODS .EQ 39
02310 *
02320 .OR POD.1
02330 POD.STATUS .BS MAX.PODS
02340 POD.DX .BS MAX.PODS
02350 .OR POD.2
02360 POD.X .BS MAX.PODS
02370 POD.Y .BS MAX.PODS
02380 POD.TEMP1 .BS MAX.PODS
02390 POD.TEMP2 .BS MAX.PODS
02400 *
02410 .OR SLAVES
02420 SLAVE.STATUS .BS 8
02430 SLAVE.X .BS 8
02440 SLAVE.Y .BS 8
02450 SLAVE.DX .BS 8
02460 *
02470 .OR $50
02480 .IN "H1:FORT7.S"
02490 *
02500 .OR PROGRAM
02510 .TF "H1:FORT.OBJ"
02520 *
02530 *
02540 *
02550 * REST OF PROGRAM IS
02560 * INSIDE INCLUDE FILES
02570 *
02580 *
02581 .IN "H1:FNT1.S"
02582 .IN "H1:FNT2.S"
02583 *
02590 .IN "H1:FORT1.S"
02600 .IN "H1:FORT2.S"
02610 .IN "H1:FORT3.S"
02620 .IN "H1:FORT4.S"
02630 .IN "H1:FORT5.S"
02640 .IN "H1:FORT6.S"
02650 .IN "H1:FORT8.S"
02680 *
02690 END.CART
02700 .BS $BFFA-*
02710 .DA CART.START
02720 .HS 00
02730 .DA #%10000100
02740 .DA CART.START
02750 *
02760 * EOF
02770 *