119
|
1 1000 *******TL/1*************2
|
117
|
2 1010 GAME EQU $B503
|
|
3 1020 TXTTOP EQU $FB7E
|
|
4 1030 BASE EQU $FB
|
|
5 1040 DPAGE EQU BASE*$100
|
|
6 1050 SETDP BASE
|
|
7 1060 MSTACK EQU $FE52-$100
|
|
8 1070 INEEE EQU $B003
|
|
9 1080 OUTEEE EQU $B006
|
|
10 1090 ** DPAGE DEFINE
|
|
11 1100 ORG DPAGE+$10
|
|
12 1110 INDN RMB 1
|
|
13 1120 OUTDN RMB 1
|
|
14 1130 LB RMB 2
|
|
15 1140 GB RMB 2
|
|
16 1150 MHIGH RMB 1
|
|
17 1160 MOD RMB 1
|
|
18 1170 WT1 RMB 1
|
|
19 1180 WT2 RMB 1
|
|
20 1190 RNDH RMB 1
|
|
21 1200 RNDL RMB 1
|
|
22 1210 DREG RMB 1
|
|
23 1220 DBUF RMB 3
|
|
24 1230 XR RMB 2
|
|
25 1240 YR RMB 2
|
|
26 1250 ZR RMB 2
|
|
27 1260 PFTBEG RMB 2
|
|
28 1270 PC RMB 2
|
|
29 1280 SREG RMB 2
|
|
30 1290 SP RMB 2
|
|
31 1300 PFMAX RMB 2
|
118
|
32 1310 LSW RMB 1
|
|
33 1320 SY RMB 1
|
117
|
34 1330 CH RMB 1
|
|
35 1340 VAL RMB 1
|
|
36 1350 GL RMB 1
|
|
37 1360 OPER RMB 1
|
|
38 1370 GLL RMB 1
|
|
39 1380 INDEX RMB 1
|
|
40 1390 RMCODE RMB 1
|
|
41 1400 ACC RMB 1
|
|
42 1410 LSIZE RMB 1
|
|
43 1420 TCOUNT RMB 1
|
|
44 1430 TEND RMB 2
|
|
45 1440 WEND RMB 2
|
118
|
46 1450 AMODE RMB 1
|
119
|
47 1460 RSW RMB 1
|
117
|
48 1470 GEND RMB 2
|
|
49 1480 SSW RMB 1
|
|
50 1490
|
118
|
51 1500 ORG $5000
|
117
|
52 1510 **
|
|
53 1520 COMP LDA #BASE
|
|
54 1530 TFR A,DP
|
|
55 1540 CLRA
|
119
|
56 1550 STA OUTDN
|
|
57 1560 STA LSW
|
117
|
58 1570 STA INDEX
|
118
|
59 1580 STA AMODE
|
117
|
60 1590 STA LSIZE
|
|
61 1600 STA RSW
|
|
62 1610 STA PFMAX
|
|
63 1620 LDX #MSTACK
|
|
64 1630 STX SP
|
|
65 1640 LEAX 2,x
|
|
66 1650 STX PFTBEG
|
|
67 1660 CLRB
|
|
68 1670 C1 STA ,X+
|
|
69 1680 DECB
|
|
70 1690 BNE C1
|
|
71 1700 INCA
|
|
72 1710 STA TCOUNT
|
119
|
73 1720 LDA #' '
|
117
|
74 1730 STA CH
|
|
75 1740 LDX TXTTOP
|
|
76 1750 LEAX 2,X
|
|
77 1760 STX SREG
|
119
|
78 1770 LEAX WTBLE,PCR
|
117
|
79 1780 STX TEND
|
|
80 1790 LEAX OBJECT,PCR
|
|
81 1800 STX PC
|
|
82 1810 STX OBJMP+1,PCR
|
|
83 1820 **
|
|
84 1830 LBSR CRLF
|
|
85 1840 BSR REG0
|
|
86 1850 LBSR WORD
|
|
87 1860 CMPA #$30 PROC?
|
|
88 1870 BNE *+4
|
|
89 1880 BSR REGNAM
|
|
90 1890 BSR REG0
|
|
91 1900 CMPA #$31 FUNC?
|
|
92 1910 BNE *+4
|
|
93 1920 BSR REGNAM
|
|
94 1930 CLR LSIZE
|
119
|
95 1940 BSR REG0
|
117
|
96 1950 LBSR PROG
|
|
97 1960 LBSR STPOUT
|
|
98 1970 LDX TEND
|
|
99 1980 STX GEND
|
|
100 1990 PLOOP LDA SY
|
|
101 2000 CMPA #$8F /END CODE
|
|
102 2010 LBEQ ENDL
|
|
103 2020 CMPA $4
|
|
104 2030 BCC ERR4
|
|
105 2040 DECA
|
118
|
106 2050 STA AMODE
|
117
|
107 2060 LDA VAL
|
|
108 2070 LBSR DEFPF
|
|
109 2080 LBSR PUTHS
|
|
110 2090 FDB $03BD
|
|
111 2100 FDB PSHLB
|
|
112 2110 BSR REG0
|
|
113 2120 CLR LSIZE
|
|
114 2130 LBSR WORD
|
|
115 2140 CMPA #$37
|
|
116 2150 BNE PL1
|
|
117 2160 BSR REGNAM
|
|
118 2170 LDA #$38 )
|
|
119 2180 LBSR CHECK
|
|
120 2190 PL1 BSR PROG
|
118
|
121 2200 LDB AMODE
|
117
|
122 2210 CMPB #1
|
|
123 2220 BNE *+5
|
|
124 2230 LBSR RETP
|
|
125 2240 LDX GEND
|
|
126 2250 STX TEND
|
|
127 2260 LDB #5
|
|
128 2270 STB TCOUNT
|
|
129 2280 BRA PLOOP
|
|
130 2290 **
|
119
|
131 2300 * REGIST ZERO
|
117
|
132 2310 **
|
|
133 2320 REG0 LDX TEND
|
|
134 2330 CLR ,X+
|
|
135 2340 STX TEND
|
|
136 2350 INC TCOUNT
|
|
137 2360 RTS
|
|
138 2370 **
|
|
139 2380 * REGIST NAME
|
|
140 2390 **
|
|
141 2400 REGNAM COM RSW
|
|
142 2410 LBSR WORD
|
|
143 2420 LDB RSW
|
|
144 2430 BEQ *+5
|
|
145 2440 ERR4 LBRA ERROR
|
|
146 2450 LDX TEND
|
|
147 2460 LDA LSIZE
|
|
148 2470 STA ,X
|
|
149 2480 INC LSIZE
|
|
150 2490 LDX WEND
|
|
151 2500 STX TEND
|
|
152 2510 BSR WORD1
|
|
153 2520 CMPA #$36
|
|
154 2530 BNE REG2
|
|
155 2540 BSR WORD1
|
|
156 2550 BNE ERR4
|
|
157 2560 LDA VAL
|
|
158 2570 ADDA LSIZE
|
|
159 2580 BSR WORD1
|
|
160 2590 LDA #$3A
|
|
161 2600 LBSR CHECK
|
|
162 2610 REG2 CMPA #$3C
|
|
163 2620 BEQ REGNAM
|
|
164 2630 RTS
|
|
165 2640 **
|
|
166 2650 * PROGRAM
|
|
167 2660 **
|
|
168 2670 PROG CMPA #$32 VAR?
|
|
169 2680 BNE *+4
|
|
170 2690 BSR REGNAM
|
|
171 2700 BSR REG0
|
|
172 2710 CMPA #$33 ARRAY?
|
|
173 2720 BNE *+4
|
|
174 2730 BSR REGNAM
|
|
175 2740 LDB #-1
|
|
176 2750 STB INDEX
|
|
177 2760 **
|
|
178 2770 * STATEMENT
|
|
179 2780 **
|
|
180 2790 STAT BSR SSTAT
|
|
181 2800 LDB SSW
|
119
|
182 2810 BEQ RTS1
|
117
|
183 2820 LBRA ERROR
|
|
184 2830 **
|
|
185 2840 * STATEMENTS LIST
|
|
186 2850 **
|
|
187 2860 STLIST BSR SSTAT
|
|
188 2870 LDB SSW
|
|
189 2880 BEQ STLIST
|
|
190 2890 RTS1 RTS
|
|
191 2900 **
|
|
192 2910 * SINGLE STATEMENT
|
|
193 2920 **
|
|
194 2930 SSTAT CLRA
|
|
195 2940 STA ACC
|
|
196 2950 STA SSW
|
|
197 2960 LDY SY
|
|
198 2970 **
|
|
199 2980 * MULTIPLE STATEMENTS
|
|
200 2990 **
|
|
201 3000 SS1 CMPA #$34
|
|
202 3010 BCS SS2
|
|
203 3020 CMPA #$38
|
119
|
204 3030 BCC SS2
|
|
205 3040 ADDA #4
|
|
206 3050 PSHS A
|
117
|
207 3060 BSR WORD1
|
|
208 3070 BSR STLIST
|
|
209 3080 PULS A
|
|
210 3090 CLR SSW
|
|
211 3100 LBRA CHECK
|
|
212 3110 **
|
|
213 3120 * STOP
|
|
214 3130 **
|
|
215 3140 SS2 CMPA #$50
|
|
216 3150 BNE SS3
|
|
217 3160 BSR STPOUT
|
|
218 3170 WORD1 LBRA WORD
|
|
219 3180 **
|
|
220 3190 STPOUT LBSR PUTHS
|
|
221 3200 FCB 3,$7E
|
|
222 3210 FDB MONIT
|
|
223 3220 RTS
|
|
224 3230 **
|
|
225 3240 * RETURN
|
|
226 3250 **
|
|
227 3260 SS3 CMPA #$51
|
|
228 3270 BNE SS4
|
118
|
229 3280 LDB AMODE
|
117
|
230 3290 LBEQ ERR4
|
|
231 3300 PSHS B
|
|
232 3310 BSR WORD1
|
|
233 3320 PULS B
|
|
234 3330 DECB
|
|
235 3340 BEQ RETP
|
|
236 3350 LBSR EXPR
|
|
237 3360 RETP ,_BSR PUTHS
|
|
238 3370 FDB $037E
|
|
239 3380 FDB PULLB
|
|
240 3390 RTS
|
|
241 3400 **
|
|
242 3410 * PROC CALL
|
|
243 3420 **
|
|
244 3430 SS4 CMPA #2
|
|
245 3440 LBEQ PFCALL
|
|
246 3450 CMPA #$E0
|
|
247 3460 BCS SS5
|
|
248 3470 LBRA PFCALL
|
|
249 3480 **
|
119
|
250 3490 * ASSIGNMENT STATEMENT
|
118
|
251 3500 **
|
117
|
252 3510 SS5 CMPA #7
|
|
253 3520 BCS ASSIGN
|
|
254 3530 LBRA SS6
|
|
255 3540 ASSIGN LDB GL
|
|
256 3550 PSHS B
|
|
257 3560 LDB VAL
|
|
258 3570 PSHS B
|
|
259 3580 CMPA #5
|
119
|
260 3590 BNE ASS1
|
|
261 3600 LBSR SUBSC1
|
117
|
262 3610 LDB ,S
|
|
263 3620 LDA LSW
|
|
264 3630 BNE AS0
|
|
265 3640 LDA #$8B
|
|
266 3650 LBSR PUTAB
|
|
267 3660 LDA #1
|
|
268 3670 BRA AS2
|
|
269 3680 AS0 ADDB OPER
|
|
270 3690 STB ,S
|
|
271 3700 CLR LSW
|
|
272 3710 BRA AS1
|
|
273 3720 ASS1 CMPA #6
|
|
274 3730 BNE ASS2
|
|
275 3740 LBSR DSUBSC
|
|
276 3750 LDA #2
|
|
277 3760 BRA AS2
|
118
|
278 3770 ASS2 CMPA #4
|
117
|
279 3780 BEQ *+5
|
|
280 3790 LBRA ERROR
|
|
281 3800 LBSR WORD
|
|
282 3810 AS1 CLRA
|
|
283 3820 AS2 PSHS A
|
|
284 3830 LDA SY
|
118
|
285 3840 CMPA #$3C
|
117
|
286 3850 BNE *+9
|
|
287 3860 LBSR WORD
|
|
288 3870 BSR ASSIGN
|
119
|
289 3880 BRA AS3
|
117
|
290 3890 LDA #$3D
|
|
291 3900 LBSR CHECK
|
|
292 3910 LDA #$27
|
|
293 3920 LBSR CHECK
|
|
294 3930 LBSR EXPR
|
|
295 3940 AS3 PULS D
|
|
296 3950 STB OPER 4--
|
|
297 3960 PULS B
|
|
298 3970 STB GLL
|
|
299 3980 TSTA
|
119
|
300 3990 BNE AS4
|
117
|
301 4000 LBSR PUTX
|
|
302 4010 LDA #$A7
|
|
303 4020 LDS OPER
|
|
304 4030 LBRA PUTAB
|
|
305 4040 AS4 DECA
|
|
306 4050 BNE AS5
|
119
|
307 4060 LBSR PUTX
|
117
|
308 4070 LDA #$33
|
|
309 4080 LBSR PUTA
|
|
310 4090 LBRA STABX
|
|
311 4100 AS5 LBSR PUTHS
|
|
312 4110 FCB 10
|
|
313 4120 FDB $33D7
|
|
314 4130 FCB WT2
|
|
315 4140 FDB $33D7
|
|
316 4150 FCB WT1 $DE,WT2
|
|
317 4160 FDB $A700
|
|
318 4170 CLR INDEX
|
|
319 4180 RTS
|
|
320 4190 **
|
|
321 4200 ** NON-STATEMENT
|
|
322 4210 **
|
|
323 4220 SSEND COM SSW
|
|
324 4230 RTS
|
119
|
325 4240 **
|
|
326 4250 SS6 CMPA #$58
|
117
|
327 4260 BCC SSEND
|
|
328 4270 CMPA #$52
|
|
329 4280 BCS SSEND
|
|
330 4290 SUBA #$51
|
|
331 4300 PSHS A
|
|
332 4310 LBSR WORD
|
|
333 4320 PULS B
|
|
334 4330 **
|
|
335 4340 * REPEAT UNTIL
|
|
336 4350 **
|
|
337 4360 DECB
|
|
338 4370 BNE SS7
|
|
339 4380 STB INDEX
|
|
340 4390 BSR ASTOUT
|
|
341 4400 LBSR STLIST
|
|
342 4410 LDA #$60
|
|
343 4420 LBSR CHECK
|
|
344 4430 LBSR EXPR
|
|
345 4440 LBSR PUTHS
|
|
346 4450 FCB 2
|
|
347 4460 FDB $2603
|
|
348 4470 CLR SSW
|
|
349 4480 BRA MINOUT
|
|
350 4490 **
|
|
351 4500 * FOR-TO
|
|
352 4510 **
|
|
353 4520 SS7 DECB
|
|
354 4530 BNE SS8
|
|
355 4540 CMPA #4
|
119
|
356 4550 BEQ *+5
|
117
|
357 4560 LBRA ERROR
|
119
|
358 4570 LDB VAL
|
117
|
359 4580 PSHS B
|
|
360 4590 LDB GL
|
|
361 4600 PSHS B
|
|
362 4610 LBSR ASSIGN
|
|
363 4620 LDA #$61
|
|
364 4630 LBSR CHECK
|
|
365 4640 CLR ACC
|
|
366 4650 LBSR EXPR
|
|
367 4660 LDA #$64
|
|
368 4670 LBSR CHECK
|
|
369 4680 BSR ASTOUT
|
|
370 4690 LDA #$36
|
|
371 4700 LBSR PUTA
|
|
372 4710 CLR INDEX
|
|
373 4720 LBSR STAT
|
|
374 4730 LDA #$32
|
|
375 4740 LBSR PUTA
|
|
376 4750 PULS D
|
|
377 4760 STA GLL
|
|
378 4770 STB OPER
|
|
379 4780 LDA #$A1
|
118
|
380 4790 LBSR PUTABX
|
117
|
381 4800 LBSR PUTHS
|
119
|
382 4810 FCB 2
|
|
383 4820 FDB $2305
|
117
|
384 4830 LDA #$6C
|
|
385 4840 LDB OPER
|
|
386 4850 LBSR PUTAB
|
|
387 4860 MINOUT LBRA PULJMP
|
|
388 4870 ASTOUT LBRA PSHDEF
|
|
389 4880 **
|
|
390 4890 * WHILE-DO
|
|
391 4900 **
|
|
392 4910 SS8 DECB
|
|
393 4920 BNE SS9
|
|
394 4930 STB INDEX
|
|
395 4940 BSR ASTOUT
|
|
396 4950 LBSR EXPR
|
|
397 4960 LDA #$64
|
|
398 4970 LBSR CHECK
|
|
399 4980 LBSR PUTHS
|
|
400 4990 FCB 2
|
|
401 5000 FDB $2603
|
|
402 5010 BSR SLAOUT
|
|
403 5020 LDS INDEX
|
119
|
404 5030 PSHS B
|
117
|
405 5040 LBSR STAT
|
119
|
406 5050 PULS B
|
117
|
407 5060 STB INDEX
|
|
408 5070 BSR PEROUT
|
|
409 5080 BSR MINOUT
|
|
410 5090 PLUOUT LBRA PULDEF
|
|
411 5100 **
|
|
412 5110 ** IF—THEN
|
|
413 5120 **
|
|
414 5130 SS9 DECB
|
119
|
415 5140 BNE SS10
|
117
|
416 5150 LBSR EXPR
|
|
417 5160 LDA #$65
|
|
418 5170 LBSR CHECK
|
|
419 5180 LBSR PUTHS
|
|
420 5190 FCB 2
|
|
421 5200 FDB $2603
|
|
422 5210 BSR SLAOUT
|
|
423 5220 LDB INDEX
|
|
424 5230 PSHS B
|
119
|
425 5240 LBSR STAT
|
117
|
426 5250 PULS B
|
|
427 5260 CMPB INDEX
|
|
428 5270 BEQ *+4
|
|
429 5280 CLRB
|
|
430 5290 BRA PLUOUT
|
|
431 5300 SLAOUT LBRA PSHJMP
|
|
432 5310 PEROUT LBRA STCHG
|
|
433 5320 ***
|
|
434 5330 * CASE—OF
|
|
435 5340 SS10 DECB
|
|
436 5350 BNE SS11
|
|
437 5360 LBSR EXPR
|
|
438 5370 LDA #$66
|
|
439 5380 LBSR CHECK
|
|
440 5390 CLRB
|
119
|
441 5400 S10A INCB
|
117
|
442 5410 PSHS B
|
|
443 5420 STB ACC
|
|
444 5430 LBSR LEXPR
|
|
445 5440 LDA #$81
|
118
|
446 5450 LBSR AOPER
|
117
|
447 5460 LBSR PUTHS
|
|
448 5470 FCB 2
|
|
449 5480 FDB $2703
|
|
450 5490 BSR SLAOUT
|
|
451 5500 LDB INDEX
|
|
452 5510 PSHS B
|
|
453 5520 LBSR STAT
|
119
|
454 5530 BSR SLAOUT
|
117
|
455 5540 BSR PEROUT
|
|
456 5550 BSR PLUOUT
|
|
457 5560 PULS B
|
|
458 5570 STB INDEX
|
|
459 5580 PULS B
|
|
460 5590 LDA SY
|
119
|
461 5600 CMPA #$67
|
117
|
462 5610 BNE S10A
|
|
463 5620 PSHS B
|
|
464 5630 LBSR WORD
|
|
465 5640 LBSR STAT
|
|
466 5650 CLR INDEX
|
|
467 5660 PULS A
|
|
468 5670 LBRA PLDFN
|
|
469 5680 **
|
|
470 5690 * WRITE STATEMENT
|
|
471 5700 **
|
|
472 5710 SS11 LDA #$37
|
|
473 5720 LBSR CHECK
|
|
474 5730 LBSR EXPR
|
|
475 5740 LBSR PUTHS
|
|
476 5750 FDB $0297
|
|
477 5760 FCB OUTDN
|
119
|
478 5770 LDA #$3D
|
117
|
479 5780 LBSR CHECK
|
|
480 5790 WTLP CLR ACC
|
|
481 5800 BSR WTERM
|
|
482 5810 LDA SY
|
|
483 5820 CMPA #$3C
|
|
484 5830 BNE WTEN
|
|
485 5840 LBSR WORD
|
|
486 5850 BRA WTLP
|
|
487 5860 WTEN LDA #$36
|
|
488 5870 LBRA CHECK
|
|
489 5880 **
|
119
|
490 5890 WTERM CMPA #$6C
|
|
491 5900 BNE WR1
|
117
|
492 5910 LBSR PUTHS
|
|
493 5920 FDB $03BD
|
|
494 5930 FDB PUTSTR
|
|
495 5940 LDA CH
|
119
|
496 5950 WR01 CMPA #'"'
|
117
|
497 5960 BEQ WR02
|
|
498 5970 LBSR PUTA
|
118
|
499 5980 LBSR GETCH
|
119
|
500 5990 BRA WR01
|
118
|
501 6000 WR02 CLRA
|
117
|
502 6010 STA INDEX
|
|
503 6020 LBSR PUTA
|
|
504 6030 LBSR GETCH
|
|
505 6040 LBRA WORD
|
|
506 6050 **
|
|
507 6060 WR1 CMPA #$6B
|
|
508 6070 BNE WR3
|
|
509 6080 LBSR WORD
|
|
510 6090 CMPA #$37
|
119
|
511 6100 BEQ WR2
|
117
|
512 6110 LBSR PUTHS
|
|
513 6120 FDB $03BD
|
|
514 6130 FDB CRLFA
|
|
515 6140 RTS
|
|
516 6150 **
|
|
517 6160 WR2 LBSR WEXPR
|
|
518 6170 BSR WTEN
|
|
519 6180 LBSR PUTHS
|
|
520 6190 FDB $03BD
|
|
521 6200 FDB CRLFA
|
|
522 6210 RTS
|
|
523 6220 **
|
|
524 6230 WR3 CMPA #$6A
|
|
525 6240 BNE WR4
|
|
526 6250 LBSR SUBSC
|
|
527 6260 LBSR PUTHS
|
|
528 6270 FDB $03BD
|
|
529 6280 FDB SPACEA
|
119
|
530 6290 RTS
|
117
|
531 6300 **
|
|
532 6310 WR4 CMPA #$A9
|
|
533 6320 BNE WR5
|
119
|
534 6330 LBSR SUBSC
|
117
|
535 6340 LBSR PUTHS
|
|
536 6350 FDB $03BD
|
|
537 6360 FDB PUTCA
|
|
538 6370 RTS
|
|
539 6380 **
|
|
540 6390 WR5 CMPA #$26
|
|
541 6400 BNE WR6
|
|
542 6410 LBSR DSUBSC
|
118
|
543 6420 LBSR PUTPLB
|
117
|
544 6430 LBSR PUTHS
|
|
545 6440 FDB $03BD
|
|
546 6450 FDB PUTDA+1
|
|
547 6460 BRA WR66
|
|
548 6470 **
|
|
549 6480 WR6 LBSR EXPR
|
|
550 6490 LBSR PUTHS
|
|
551 6500 FDB $03BD
|
|
552 6510 FDB PUTDA
|
|
553 6520 WR66 CLR INDEX
|
119
|
554 6530 RTS11 RTS
|
117
|
555 6540 **
|
119
|
556 6550 * PUTX & PUTB
|
117
|
557 6560 **
|
|
558 6570 PUTABX PSHS D
|
|
559 6580 BSR PUTX
|
|
560 6590 PULS D
|
|
561 6600 BRA PUTAB
|
|
562 6610 **
|
|
563 6620 * PUT LP, OR GB BY INDEX
|
|
564 6630 **
|
|
565 6640 PUTX LDB GLL
|
|
566 6650 CMPB INDEX
|
|
567 6660 BEQ RTS11
|
|
568 6670 STB INDEX
|
|
569 6680 ADDB #LB+1
|
119
|
570 6690 LDA #$DE
|
117
|
571 6700 ***
|
|
572 6710 * PUT ACC A&B
|
|
573 6720 **
|
|
574 6730 PUTAB BSR PUTA
|
|
575 6740 TFR B,A
|
|
576 6750 **
|
|
577 6760 * PUT ACCA RS AN OBJECT
|
|
578 6770 **
|
|
579 6780 PUTA STX RNDH
|
118
|
580 6790 LBSR AOUT
|
117
|
581 6800 LDX RNDH
|
|
582 6810 RTS
|
119
|
583 6820 **
|
117
|
584 6830 * PUTHS STRING
|
|
585 6840 **
|
|
586 6850 PUTHS LDX ,S++
|
|
587 6860 LDB ,X+
|
|
588 6870 PS1 LDA ,X+
|
|
589 6880 BSR PUTA
|
|
590 6890 DECB
|
|
591 6900 BNE PS1
|
|
592 6910 JMP ,X
|
|
593 6920 **
|
|
594 6930 ** CHECK ACC
|
|
595 6940 **
|
|
596 6950 CHECK CMPA SY
|
|
597 6960 BEQ WORD
|
|
598 6970 **
|
|
599 6980 * ERROR
|
|
600 6990 **
|
|
601 7000 ERROR LBSR PUTSTR
|
|
602 7010 FDB $0D0A
|
|
603 7020 FCS "ERROR"
|
|
604 7030 LDX TEND
|
|
605 7040 LEAX 1,X
|
|
606 7050 NEG ,X
|
|
607 7060 ER0 LDA ,X+
|
|
608 7070 LBSR PUTCA
|
|
609 7080 CMPX WEND
|
|
610 7090 BNE ER0
|
|
611 7100 JMP GAME
|
119
|
612 7110 **
|
117
|
613 7120 * WORD DECORDER
|
|
614 7130 **
|
|
615 7140 WORD BSR WORDS
|
|
616 7150 LDA SY
|
|
617 7160 RTS
|
|
618 7170 WORDS CLRB
|
|
619 7180 STB SY
|
|
620 7190 STB VAL
|
|
621 7200 LDA CH
|
|
622 7210 ** SKIP CONT ,SPACE.;
|
|
623 7220 WD1 CMPA #$21
|
|
624 7230 BCS SKIP
|
119
|
625 7240 CMPA #'.'
|
117
|
626 7250 BEQ SKIP
|
119
|
627 7260 CMPA #';'
|
117
|
628 7270 BNE WD2
|
|
629 7280 SKIP BSR GETCH
|
|
630 7290 BRA WD1
|
|
631 7300 **
|
|
632 7310 * COMMENT
|
|
633 7320 **
|
119
|
634 7330 WD2 CMPA #'%'
|
|
635 7340 BNE WD3
|
117
|
636 7350 BSR GETCH
|
|
637 7360 CMPA #$20
|
|
638 7370 BCC *--4
|
|
639 7380 BRA WD1
|
|
640 7390 **
|
|
641 7400 * ASCC CONST
|
|
642 7410 **
|
119
|
643 7420 WD3 CMPA #'\''
|
117
|
644 7430 BNE WD4
|
|
645 7440 BSR GETCH
|
|
646 7450 STA VAL
|
|
647 7460 BSR GETCH
|
|
648 7470 GETCH PSHS X
|
|
649 7480 LBSR MEMIN
|
|
650 7490 STA CH
|
|
651 7500 PULS X,PC
|
|
652 7510 * HEX CONSTANT
|
119
|
653 7520 WD4 CMPA #'$'
|
117
|
654 7530 BNE WD5
|
|
655 7540 WD40 BSR GETCH
|
119
|
656 7550 BSR TSTNA
|
117
|
657 7560 BEQ WD41
|
|
658 7570 BCC RTS2
|
119
|
659 7580 CMPA #'F'+1
|
117
|
660 7590 BCC RTS2
|
|
661 7600 SUBA #7
|
119
|
662 7610 WD41 SUBA #'0'
|
117
|
663 7620 LDB VAL
|
|
664 7630 ASLB
|
|
665 7640 ASLB
|
|
666 7650 ASLB
|
|
667 7660 ASLB
|
|
668 7670 PSHS B
|
|
669 7680 ADDA ,S+
|
119
|
670 7690 STA VAL
|
117
|
671 7700 BRA WD40
|
|
672 7710 **
|
|
673 7720 * TEST ALPHA NUMERIC
|
119
|
674 7730 TSTNA CMPA #'0'
|
117
|
675 7740 BCS NAF
|
|
676 7750 CMPA #'9'+1
|
|
677 7760 BCS NT
|
119
|
678 7770 CMPA #'A'
|
117
|
679 7780 BCS NAF
|
|
680 7790 CMPA #'Z'+1
|
|
681 7800 BCS AT
|
|
682 7810 NAF CLRB CLEAR C
|
119
|
683 7820 AT LDB #-1
|
|
684 7830 RTS2 RTS
|
117
|
685 7840 NT CLRB
|
119
|
686 7850 RTS
|
117
|
687 7860 ** DECIMAL CONSTANT
|
118
|
688 7870 WD5 BSR TSTNA
|
119
|
689 7880 BNE WD6
|
|
690 7890 WD50 SUBA #'0'
|
117
|
691 7900 PSHS A
|
|
692 7910 LDA VAL
|
|
693 7920 LDB #10
|
|
694 7930 MUL
|
|
695 7940 ADDA ,S+
|
|
696 7950 STA VAL
|
|
697 7960 BSR GETCH
|
|
698 7970 BSR TSTNA
|
|
699 7980 BEQ WD50
|
|
700 7990 RTS
|
|
701 8000 * THE OTHER WORDS
|
118
|
702 8010 WD6 LDX TEND
|
117
|
703 8020 PSHS A
|
|
704 8030 NEGA
|
|
705 8040 LEAX 1,X
|
|
706 8050 BSR STAONE
|
|
707 8060 PULS A
|
|
708 8070 BSR TSTNA
|
|
709 8080 BCC TLOOK1
|
|
710 8090 WD61 LDA CH
|
|
711 8100 BSR TSTNA
|
|
712 8110 BCS *+4
|
|
713 8120 BNE TLOOK1
|
118
|
714 8130 BSR STAONE
|
|
715 8140 BRA WD61
|
117
|
716 8150 STAONE STA ,X+
|
|
717 8160 STX WEND
|
|
718 8170 BRA GETCH
|
|
719 8180 TLOOK1 LDA RSW
|
|
720 8190 BEQ TLOOK
|
|
721 8200 COM RSW
|
|
722 8210 RTS
|
|
723 8220 **
|
|
724 8230 * WORD TABLE SEARCH
|
|
725 8240 **
|
118
|
726 8250 TLOOK LDA TCOUNT
|
117
|
727 8260 STA SY
|
|
728 8270 LDX TEND
|
|
729 8280 S01 LDU WEND
|
|
730 8290 S02 LDA ,-U
|
|
731 8300 CMPA ,-X
|
|
732 8310 BEQ S06
|
|
733 8320 S03 TST ,X
|
|
734 8330 BEQ S05
|
|
735 8340 BMI S04
|
|
736 8350 LEAX -1,X
|
|
737 8360 BRA S03
|
|
738 8370 S04 LEAX -1,X
|
|
739 8380 BRA S01
|
|
740 8390 S05 DEC SY
|
|
741 8400 BNE S01
|
|
742 8410 LBRA ERROR
|
118
|
743 8420 S06 TSTA
|
117
|
744 8430 BPL S02
|
|
745 8440 LDB ,-X
|
|
746 8450 STB VAL
|
|
747 8460 LDA SY
|
|
748 8470 CMPA #1
|
|
749 8480 BNE *+6
|
|
750 8490 TFR B,A
|
|
751 8500 BRA S07
|
|
752 8510 CMPA #4
|
|
753 8520 BCS RTSS
|
|
754 8530 LDB #1
|
118
|
755 8540 TST AMODE
|
117
|
756 8550 BEQ *+6
|
|
757 8560 CMPA #6
|
|
758 8570 BCS *+3
|
|
759 8580 NEGB
|
119
|
760 8590 STB GL
|
117
|
761 8600 ANDA #$FD
|
|
762 8610 S07 STA SY
|
|
763 8620 RTSS RTS
|
119
|
764 8630 **
|
117
|
765 8640 * ARITHMATIC EXPRESSION
|
|
766 8650 **
|
|
767 8660 WEXPR LBSR WORD
|
|
768 8670 EXPR BSR LEXPR
|
|
769 8680 BSR OLOAD
|
|
770 8690 RTE RTS
|
|
771 8700 ** WORD * LEXPR
|
|
772 8710 WLEXPR LBSR WORD
|
119
|
773 8720 **
|
117
|
774 8730 * LOGICAL EXPRESSION
|
119
|
775 8740 **
|
118
|
776 8750 LEXPR BSR REXPR
|
117
|
777 8760 LE1 LDY SY
|
|
778 8770 CMPA #$82
|
|
779 8780 BCS RTE
|
119
|
780 8790 CMPA #$8A+1
|
117
|
781 8800 BCC RTE
|
|
782 8810 PSHS A
|
|
783 8820 LBSR WORD
|
|
784 8830 BSR REXPR
|
|
785 8840 LDB LSW
|
119
|
786 8850 BNE LE2
|
117
|
787 8860 LBSR PUTHS
|
|
788 8870 FDB $0397
|
|
789 8880 FCB WT1
|
|
790 8890 FCB $32
|
|
791 8900 PULS A
|
|
792 8910 ADDA #$10
|
|
793 8920 LDB #WT1
|
|
794 8930 LBSR PUTAB
|
|
795 8940 BRA LE1
|
|
796 8950 LE2 PULS A
|
119
|
797 8960 BSR OCORD
|
117
|
798 8970 BRA LE1
|
|
799 8980 **
|
|
800 8990 * RELATIONAL EXPRESS
|
119
|
801 9000 **
|
117
|
802 9010 REXPR BSR AEXPR
|
|
803 9020 RE1 LDA SY
|
|
804 9030 CMPA #$21
|
119
|
805 9040 BCS RTE
|
|
806 9050 CMPA #$30
|
117
|
807 9060 BCC RTE
|
|
808 9070 PSHS A
|
|
809 9080 LBSR WORD
|
|
810 9090 ASR AEXPR
|
|
811 9100 LDA #$80
|
|
812 9110 BSR AOPER
|
|
813 9120 PULS A
|
|
814 9130 LBSR PUTHS
|
|
815 9140 FCB 6
|
|
816 9150 FCB $3,$4F,$20,$02,$86,$FF
|
|
817 9160 BRA RE1
|
|
818 9170 ** ADDING OPERATFR
|
118
|
819 9180 AOPER LDB LSW
|
117
|
820 9190 BNE OCORD
|
|
821 9200 PSHS A
|
|
822 9210 CMPA #$80
|
|
823 9220 BEQ *+5
|
|
824 9230 BSR PUTPUL
|
|
825 9240 FCB $8C
|
|
826 9250 BSR PUTPLB
|
|
827 9260 PULS A
|
|
828 9270 SUBA #$70
|
|
829 9280 PUTA1 LBRA PUTA
|
|
830 9290 ** OUTPUT SAVED L-CC
|
|
831 9300 OLOAD LDA LSW
|
|
832 9310 BEQ RTE
|
|
833 9320 LDA ACC
|
|
834 9330 BEQ *+6
|
|
835 9340 LDA #$36
|
|
836 9350 BSR PUTA1
|
|
837 9360 LDA #$86
|
|
838 9370 OCORD PSHS A
|
|
839 9380 CLRA
|
|
840 9390 STA LSW
|
|
841 9400 COMA
|
|
842 9410 STA ACC
|
|
843 9420 LDA AMODE
|
|
844 9430 CMPA #$20
|
|
845 9440 BNE *+5
|
|
846 9450 LBSR PUTX
|
|
847 9460 CLR LSW
|
|
848 9470 PULS A
|
|
849 9480 ADDA AMODE
|
|
850 9490 LDB OPER
|
119
|
851 9500 LBRA PUTAB
|
117
|
852 9510 * PUT 'TAB:PULS A'
|
|
853 9520 PUTPUL LBSR PUTHS
|
|
854 9530 FCB 2
|
|
855 9540 FDB $1632
|
118
|
856 9550 RTE1 RTS
|
119
|
857 9560 * PUT 'PULS B'
|
|
858 9570 PUTPLB LDA #$33
|
117
|
859 9580 BRA PUTA1
|
|
860 9590 **
|
|
861 9600 * ADDING EXPRESSION
|
|
862 9610 **
|
|
863 9620 AEXPR BSR MEXPR
|
|
864 9630 AE1 LDA SY
|
|
865 9640 CMPA #$80
|
|
866 9650 BEQ AE2
|
|
867 9660 CMPA #$8B
|
|
868 9670 BNE RTE1
|
119
|
869 9680 AE2 PSHS A
|
117
|
870 9690 LBSR WORD
|
|
871 9700 BSR MEXPR
|
|
872 9710 PULS A
|
118
|
873 9720 BSR AOPER
|
117
|
874 9730 BRA AE1
|
|
875 9740 **
|
|
876 9750 * MUTIPLYING EXPRESSION
|
|
877 9760 **
|
|
878 9770 MEXPR BSR TERM
|
|
879 9780 ME1 LDA SY
|
|
880 9790 CMPA #$8E
|
|
881 9800 BEQ ME2
|
|
882 9810 CMPA #$8F
|
|
883 9820 BNE RTE1
|
|
884 9830 ME2 PSHS A
|
|
885 9840 LBSR WORD
|
|
886 9850 BSR TERM
|
|
887 9860 LDB LSW
|
|
888 9870 BEQ ME3
|
119
|
889 9880 LDA #$C6
|
117
|
890 9890 BSR OCORD
|
|
891 9900 FCB $8C
|
|
892 9910 ME3 BSR PUTPUL
|
|
893 9920 PULS A
|
|
894 9930 CMPA #$8E
|
|
895 9940 BHS ME4
|
|
896 9950 LBSR PUTHS
|
|
897 9960 FCB 3
|
|
898 9970 FCB $BD
|
|
899 9980 FDB MULT
|
|
900 9990 BRA ME1
|
|
901 10000 ME4 LBSR PUTHS
|
|
902 10010 FCB 3
|
|
903 10020 FCB $BD
|
|
904 10030 FDB DIV
|
|
905 10040 BRA ME1
|
|
906 10050 **
|
|
907 10060 * TERM
|
|
908 10070 **
|
|
909 10080 TERM LDA SY
|
119
|
910 10090 BNE TM1
|
117
|
911 10100 * SAVE L-COMMAND
|
119
|
912 10110 SLOAD PSHS A
|
117
|
913 10120 LBSR OLOAD
|
|
914 10130 LDA VAL
|
|
915 10140 STA OPER
|
|
916 10150 LDA GL
|
|
917 10160 STA GLL
|
|
918 10170 PULS A
|
118
|
919 10180 STA AMODE
|
117
|
920 10190 COM LSW
|
|
921 10200 LBRA WORD
|
|
922 10210 * CONSTfTRUE & FALSE
|
118
|
923 10220 TM1
|
117
|
924 10230 BEQ TM01
|
|
925 10240 CMPA #$A1
|
|
926 10250 BNE TM2
|
|
927 10260 TM01 SUBA #$A1
|
|
928 10270 STA VAL
|
|
929 10280 CLRA
|
|
930 10290 BRA SLOAD
|
|
931 10300 * SYSTEM VAR MHIGH & MOD
|
|
932 10310 TM2 CMPA #$16
|
119
|
933 10320 BRA *+6
|
117
|
934 10330 CMPA #$17
|
|
935 10340 BNE TM3
|
|
936 10350 STA VAL
|
|
937 10360 LDA #$10
|
|
938 10370 BRA SLOAD
|
|
939 10380 * SIMPLE VARIABLE
|
|
940 10390 TM3 CMPA #4
|
|
941 10400 BNE TM4
|
|
942 10410 LDA #$20
|
|
943 10420 BRA SLOAD
|
|
944 10430 * ( EXPTRSSION )
|
|
945 10440 TM4 CMPA #$35
|
|
946 10450 BCS TM5
|
|
947 10460 CMPA #$38
|
|
948 10470 BCC TM5
|
|
949 10480 PSHS A
|
|
950 10490 LBSR WLEXPR
|
|
951 10500 PULS A
|
|
952 10510 ADDA #4
|
|
953 10520 LBRA CHECK
|
|
954 10530 ** FUNCTION CALL
|
|
955 10540 TM5 CMPA #3
|
|
956 10550 BMI *+6
|
|
957 10560 CMPA #$E0
|
118
|
958 10570 BCS TM6
|
117
|
959 10580 BSR OLP
|
|
960 10590 PFCALL LDA VAL
|
|
961 10600 PSHS A
|
|
962 10610 LBSR WORD
|
|
963 10620 CMPA #$37
|
|
964 10630 BNE PFC1
|
|
965 10640 LDA LSIZE
|
|
966 10650 PSHS A
|
|
967 10660 INC LSIZE
|
|
968 10670 PFC2 INC LSIZE
|
|
969 10680 LBSR WEXPR
|
|
970 10690 CLRB
|
|
971 10700 STB ACC
|
|
972 10710 DECB
|
|
973 10720 STB GLL
|
|
974 10730 LDA #$A7
|
|
975 10740 LDB LSIZE
|
|
976 10750 LBSR PUTABX
|
|
977 10760 LDA SY
|
|
978 10770 CMPA #$3C
|
|
979 10780 BEQ PFC2
|
|
980 10790 PULS A
|
|
981 10800 STA LSIZE
|
|
982 10810 LDA #$3B
|
|
983 10820 LBSR CHECK
|
|
984 10830 PFC1 LDB #-1
|
118
|
985 10840 STB ACC
|
117
|
986 10850 STB INDEX
|
|
987 10860 LDA #$86
|
|
988 10870 LDB LSIZE
|
|
989 10880
|
|
990 10890
|
|
991 10900 CMPA #$C0
|
|
992 10910 BCC *+5
|
|
993 10920 LBRA CALPF
|
|
994 10930 LDX #LIBR
|
|
995 10940 SUBA #$C0
|
|
996 10950 PFC3 BEQ PFC4
|
|
997 10960 LBSR PUTA
|
|
998 10970 DECA
|
119
|
999 10980 BRA PFC3
|
117
|
1000 10990 PFC4 LDA #$BD
|
|
1001 11000 LBSR PUTA
|
|
1002 11010 LDD ,X
|
|
1003 11020 LBRA PUTAB
|
|
1004 11030 **
|
118
|
1005 11040 OLP LBSR OLOAD
|
117
|
1006 11050 LDB ACC
|
|
1007 11060 BEQ RTS4
|
|
1008 11070 LDA #$36
|
|
1009 11080 LBSR PUTA
|
|
1010 11090 CLR ACC
|
|
1011 11100 RTS4 RTS
|
|
1012 11110 ** FUNCTION RND
|
|
1013 11120 TM6 CMPA #$70
|
118
|
1014 11130 BNE TM61
|
117
|
1015 11140 BSR SUBSC
|
|
1016 11150 LBSR PUTHS
|
|
1017 11160 FCB $03BD
|
|
1018 11170 FDB RND
|
|
1019 11180 RTS
|
|
1020 11190 * FUNTION GET
|
|
1021 11200 TM61 CMPA #$71
|
|
1022 11210 BNE TM62
|
|
1023 11220 BSR SUBSC
|
|
1024 11230 LBSR PUTHS
|
|
1025 11240 FDB $0597
|
|
1026 11250 FCB INDN,$BD
|
|
1027 11260 FDB GETCH
|
|
1028 11270 RTS
|
|
1029 11280 * FUNCTION READ
|
|
1030 11290 TM62 CMPA #$72
|
|
1031 11300 BNE TM7
|
|
1032 11310 BSR SUBSC
|
|
1033 11320 LBSR PUTHS
|
|
1034 11330 FDB $0597
|
|
1035 11340 FDB INDN
|
|
1036 11350 FCB $8D
|
|
1037 11360 FDB GETDA
|
|
1038 11370 RTS
|
119
|
1039 11380 * FUNCTION NOTASL ET AL
|
117
|
1040 11390 TM7 CMPA #$40
|
|
1041 11400 BCS TM8
|
|
1042 11410 CMPA #$49+1
|
|
1043 11420 BCC TM8
|
|
1044 11430 PSHS A
|
|
1045 11440 BSR SUBSC
|
|
1046 11450 PULS A
|
119
|
1047 11460 LBRA PUTA
|
117
|
1048 11470 * ARRAY
|
118
|
1049 11480 TM8 CMPA #$5
|
117
|
1050 11490 BNE TM9
|
|
1051 11500 LDB VAL
|
|
1052 11510 PSHS B
|
|
1053 11520 LDB GL
|
|
1054 11530 PSHS B
|
|
1055 11540 BSR SUBSC1
|
|
1056 11550 PULS B
|
|
1057 11560 STB GLL
|
|
1058 11570 PULS B
|
|
1059 11580 LDA LSW
|
|
1060 11590 BEQ ARY1
|
|
1061 11600 ADDB OPER
|
|
1062 11610 STB OPER
|
|
1063 11620 LDA #$20
|
118
|
1064 11630 STA AMODE
|
117
|
1065 11640 RTS
|
|
1066 11650 ARY1 LDA #$8B
|
|
1067 11660 LBSR PUTABX
|
|
1068 11670 LBRA LDAAX
|
|
1069 11680 **
|
|
1070 11690 DSUBSC LDA #$3C
|
118
|
1071 11700 BSR SUBS1
|
117
|
1072 11710 LDA #$3B
|
|
1073 11720 PSHS A
|
|
1074 11730 BRA SUBS2
|
|
1075 11740 SUBSC LDA #$3E
|
118
|
1076 11750 SUBS1 PSHS A
|
117
|
1077 11760 LBSR WORD
|
|
1078 11770 LDA #$37
|
|
1079 11780 LBSR CHECK
|
118
|
1080 11790 SUBS2 LBSR EXPR
|
117
|
1081 11800 PULS A
|
|
1082 11810 LBRA CHECK
|
|
1083 11820 SUBSC1 LBSR WORD
|
|
1084 11830 LDA #$36
|
119
|
1085 11840 LBSR CHECK
|
117
|
1086 11850 LBSR LEXPR
|
|
1087 11860 LDB LSW
|
|
1088 11870 BEQ SBS5
|
|
1089 11880 LDB AMODE
|
|
1090 11890 BEQ SBS5
|
|
1091 11900 LBSR OLOAD
|
118
|
1092 11910 SBS5 LDA #$3A
|
117
|
1093 11920 LBRA CHECK
|
|
1094 11930 * MEM FUNCTION
|
|
1095 11940 TM9 CMPA #6
|
|
1096 11950 BNE TM10
|
|
1097 11960 BSR DSUBSC
|
|
1098 11970 LBSR PUTHS
|
|
1099 11980 FDB $0997
|
|
1100 11990 FCB WT2
|
|
1101 12000 FDB $3297
|
|
1102 12010 FCB WT1,$DE,WT1
|
|
1103 12020 FDB $A600
|
|
1104 12030 CLR INDEX
|
|
1105 12040 RTS
|
|
1106 12050 ** FOR EXPANTION
|
119
|
1107 12060 TM10 LBRA ERROR
|
117
|
1108 12070 **
|
|
1109 12080 * LIBRARY ADDRESSS TABLE
|
|
1110 12090 **
|
|
1111 12100 LIBR RMB 80
|
|
1112 12110 **
|
|
1113 12120 * ADDRESS DEPENDENT CODE
|
|
1114 12130 * GENARATION
|
|
1115 12140 **
|
|
1116 12150 * SET PRC—FUNC TABLE
|
|
1117 12160 **
|
|
1118 12170 SETPFT PSHS A
|
|
1119 12180 LDB #3
|
|
1120 12190 MUL
|
|
1121 12200 ADDD PFTBEG
|
|
1122 12210 STD XR
|
|
1123 12220 PULS A,PC
|
|
1124 12230 **
|
|
1125 12240 TWICE LBSR PUTSTR
|
|
1126 12250 FCB $0D,$0A
|
|
1127 12260 FCS "TWICE!"
|
|
1128 12270 JMP GAME
|
|
1129 12280 **
|
|
1130 12290 * DEF PROC-FUNC
|
|
1131 12300 **
|
|
1132 12310 DEFPF BSR SETPFT
|
|
1133 12320 LDX XR
|
|
1134 12330 TST ,X
|
119
|
1135 12340 BNE TWICE
|
117
|
1136 12350 COM ,X
|
|
1137 12360 LDX 1,X
|
|
1138 12370 STX YR
|
|
1139 12380 LDX XR
|
119
|
1140 12390 LEAX 1,X
|
117
|
1141 12400 BSR PCST
|
|
1142 12410 LDX YR
|
|
1143 12420 DP1 BEQ RT10
|
|
1144 12430 LDX ,X
|
|
1145 12440 STX ZR
|
|
1146 12450 LDX YR
|
|
1147 12460 BSR PCST
|
|
1148 12470 LDX ZR
|
119
|
1149 12480 STX YR
|
117
|
1150 12490 BRA DP1
|
|
1151 12500 **
|
118
|
1152 12510 * CALL PORC-FUNC
|
117
|
1153 12520 **
|
118
|
1154 12530 CALPF BSR SETPFT
|
117
|
1155 12540 INCA
|
|
1156 12550 CMPA PFMAX
|
|
1157 12560 BCS *+4
|
|
1158 12570 STA PFMAX
|
|
1159 12580 LDA #$BD
|
|
1160 12590 BSR AOUT
|
|
1161 12600 LDX XR
|
|
1162 12610 LDD 1,X
|
|
1163 12620 LDX PC
|
|
1164 12630 BSR STAABX
|
|
1165 12640 LDX XR
|
119
|
1166 12650 TST ,X
|
117
|
1167 12660 BNE PC2ADD
|
|
1168 12670 LEAX 1,X
|
|
1169 12680 BSR PCST
|
|
1170 12690 BRA PC2ADD
|
|
1171 12700 **
|
|
1172 12710 * PUL-DEF N TIMES
|
|
1173 12720 **
|
|
1174 12730 PLDFN PSHS A
|
|
1175 12740 BSR PULDEF
|
|
1176 12750 DEC ,S
|
|
1177 12760 BNE *-4
|
|
1178 12770 PULS A,PC
|
|
1179 12780 **
|
|
1180 12790 * PULL AND DEFINE
|
|
1181 12800 **
|
|
1182 12810 PULDEF BSR PULSTK
|
|
1183 12820 PCST LDD PC
|
|
1184 12830 STAABX STD ,X
|
119
|
1185 12840 RT10 RTS
|
117
|
1186 12850 **
|
|
1187 12860 JMPOUT LDA #$7E
|
118
|
1188 12870 AOUT LDX PC
|
117
|
1189 12880 STA ,X
|
|
1190 12890 BRA INCPC1
|
|
1191 12900 **
|
|
1192 12910 PULSTK LDX SP
|
|
1193 12920 LEAX 2,x
|
|
1194 12930 STX SP
|
|
1195 12940 LDD ,X
|
|
1196 12950 LDX ,X
|
|
1197 12960 RTS
|
|
1198 12970 **
|
|
1199 12980 * PUL STACK & Jump
|
|
1200 12990 **
|
|
1201 13000 PULJMP BSR JMPOUT
|
|
1202 13010 BSR PULSTK
|
|
1203 13020 PCST2 LDX PC
|
|
1204 13030 BSR STAABX
|
|
1205 13040 INCPC LEAX 1,X
|
|
1206 13050 INCPC1 LEAX 1,X
|
|
1207 13060 SETPC STX PC
|
|
1208 13070 RTS
|
|
1209 13080 **
|
|
1210 13090 * PUSH STACK & JUMP
|
|
1211 13100 **
|
|
1212 13110 PSHJMP BSR JMPOUT
|
|
1213 13120 BSR PSHDEF
|
|
1214 13130 PC2ADD LDX PC
|
|
1215 13140 BRA INCPC
|
|
1216 13150 **
|
|
1217 13160 * PUSH STRCK & DEFINE
|
|
1218 13170 **
|
119
|
1219 13180 PSHDEF LDX SP
|
117
|
1220 13190 BSR PCST
|
|
1221 13200 LEAX -2,X
|
|
1222 13210 STX SP
|
|
1223 13220 RTS
|
119
|
1224 13230 **
|
118
|
1225 13240 OUTPC3 BSR AOUT
|
117
|
1226 13250 LDD PC
|
|
1227 13260 ADDD #3
|
|
1228 13270 BRA PCST2
|
|
1229 13280 **
|
|
1230 13290 * LDA R,X
|
|
1231 13300 LDAAX LDA #$B7
|
|
1232 13310 BSR OUTPC3
|
|
1233 13320 LDA #$A6
|
119
|
1234 13330 LA1 BSR AOUT
|
117
|
1235 13340 BRA INCPC1
|
|
1236 13350 **
|
|
1237 13360 * STA B,X
|
|
1238 13370 STABX LDA #$F7
|
|
1239 13380 BSR OUTPC3
|
|
1240 13390 LDA #$A7
|
|
1241 13400 BRA LA1
|
|
1242 13410 **
|
|
1243 13420 * STACK TOP CHANGE
|
|
1244 13430 **
|
|
1245 13440 STCHG LDU SP
|
|
1246 13450 LEAU 2,U
|
|
1247 13460 PULU D,X
|
|
1248 13470 EXG D,X
|
|
1249 13480 PSHU D,X
|
|
1250 13490 RTS
|
|
1251 135n0 **
|
|
1252 13510 * END OF LOAD
|
119
|
1253 13520 **
|
117
|
1254 13530 ENDL LDX PFTBEG
|
119
|
1255 13540 LDA PFMAX
|
117
|
1256 13550 EL1 BEQ EL
|
|
1257 13560 TST ,X
|
|
1258 13570 BEQ UDERR
|
|
1259 13580 EL2 LEAX 3,X
|
|
1260 13590 DECA
|
|
1261 13600 BRA EL1
|
|
1262 13610 UDERR PSHS A
|
|
1263 13620 STA ZR
|
|
1264 13630 SUBA PFMAX
|
|
1265 13640 NEGA
|
|
1266 13650 PSHS A
|
|
1267 13660 LBSR PUTSTR
|
|
1268 13670 FDB $0D0A
|
|
1269 13680 FCS "UNDEF"
|
|
1270 13690 PULS A
|
|
1271 13700 LBSR PUTCA
|
|
1272 13710 PULS A
|
|
1273 13720 LDX ZR
|
|
1274 13730 BRA EL2
|
|
1275 13740 EL LDX PC
|
|
1276 13750 STX VARPTR+1,PCR
|
|
1277 13760 JMP GAME
|
|
1278 13770 **
|
|
1279 13780 * INPUT ROUTINE
|
|
1280 13790 * GET ONE CHR FORM MEMORY
|
119
|
1281 13800 **
|
117
|
1282 13810 MEMIN LDX SREG
|
|
1283 13820 LDA ,X+
|
|
1284 13830 BEQ LEND
|
|
1285 13840 MEM1 STX SREG
|
118
|
1286 13850 MEM2 LBRA PUTCA
|
117
|
1287 13860 LEND LDA #$D
|
|
1288 13870 BSR MEM2
|
119
|
1289 13880 LDA #$A
|
117
|
1290 13890 TST ,X++
|
|
1291 13900 BPL MEM1
|
119
|
1292 13910 LDA #'/'
|
117
|
1293 13920 RTS
|
|
1294 13930 **********************
|
|
1295 13940 * ADVANCE WORD
|
|
1296 13950 **
|
|
1297 13960 WTABLE FCB 0 END MARK
|
|
1298 13970 FCB $30,-'P'
|
|
1299 13980 FCC "ROC"
|
|
1300 13990 FCB $31,-'F'
|
|
1301 14000 FCC "UNC"
|
119
|
1302 14010 FCB $32,'V'
|
117
|
1303 14020 FCC "AR"
|
|
1304 14030 FCB $33,-'A'
|
|
1305 14040 FCC "RRAY"
|
119
|
1306 14050 FCB $34,-'B'
|
117
|
1307 14060 FCC "EGIN"
|
|
1308 14070 FCB $35,';'
|
|
1309 14080 FCB $36,-'['
|
|
1310 14090 FCB $37,-'('
|
119
|
1311 14100 FCB $38,-'E'
|
117
|
1312 14110 FCC "ND"
|
119
|
1313 14120 FCB $39,-'='
|
117
|
1314 14130 FCB $3A,-']'
|
|
1315 14140 FCB $3B,-')'
|
|
1316 14150 FCB $3C,-';'
|
|
1317 14160 FCB $3D,-':'
|
|
1318 14170 FCB $50,-'S'
|
|
1319 14180 FCC "TOP"
|
|
1320 14190 FCB $51,-'R'
|
|
1321 14200 FCC "ETURN"
|
|
1322 14210 FCB $55,-'I'
|
|
1323 14220 FCC "F"
|
|
1324 14230 FCB $65,-'T'
|
|
1325 14240 FCC "HEN"
|
|
1326 14250 FCB $53,-'F'
|
|
1327 14260 FCC "OR"
|
|
1328 14270 FCB $61,-'T'
|
|
1329 14280 FCC "O"
|
119
|
1330 14290 FCB $52,-'R'
|
117
|
1331 14300 FCC "EPEATI1
|
|
1332 14310 FCB $60,-'U'
|
|
1333 14320 FCC "NTIL"
|
119
|
1334 14330 FCB $54,-'W'
|
117
|
1335 14340 FCC "HILE"
|
|
1336 14350 FCB $64,-'D'
|
|
1337 14360 FCC "O"
|
|
1338 14370 FCB $56,-'C'
|
|
1339 14380 FCC "ASE"
|
119
|
1340 14390 FCB $66,-'O'
|
117
|
1341 14400 FCC "F"
|
|
1342 14410 FCB $67,-'E'
|
|
1343 14420 FCC "LSE"
|
119
|
1344 14430 FCB $57,-'W'
|
117
|
1345 14440 FCC "RITE"
|
|
1346 14450 FCB $69,-'A'
|
|
1347 14460 FCC "SCII"
|
|
1348 14470 FCB $6A,-'S'
|
|
1349 14480 FCC "PACE"
|
|
1350 14490 FCB $68,-'C'
|
|
1351 14500 FCC "RLF"
|
|
1352 14510 FCB $6C,-'"'
|
|
1353 14520 FCB $8B,-'+'
|
|
1354 14530 FCB $80,-'-'
|
|
1355 14540 FCB $8E -'*'
|
|
1356 14550 FCB $8F,-'/'
|
|
1357 14560 FCB $82,-'S'
|
|
1358 14570 FCC "BC"
|
|
1359 14580 FCB $84 —'A'
|
|
1360 14590 FCC "ND"
|
|
1361 14600 FCB $88,-'E'
|
|
1362 14610 FCC "OR"
|
|
1363 14620 FCB $89,-'A'
|
|
1364 14630 FCC "DC"
|
|
1365 14640 FCB $8A,-'O'
|
|
1366 14650 FCC ”R"
|
|
1367 14660 FCB $22,-'>'
|
|
1368 14670 FCB $25,-'<'
|
|
1369 14680 FCB $26,-'#'
|
|
1370 14690 FCB $27,-'='
|
|
1371 14700 FCB $2D,-'L','T'
|
|
1372 14710 FCB $2E,-'G','T'
|
|
1373 14720 FCB $40,-'N','E','G'
|
|
1374 14730 FCB $43,-'N','O','T'
|
|
1375 14740 FCB,$43,-'C','O','M'
|
|
1376 14750 FCB $44,-'L','S','R'
|
|
1377 14760 FCB $46,-'R','O','R'
|
119
|
1378 14770 FCB $47,-'A','S','R'
|
|
1379 14780 FCB $48,-'A','S','L'
|
|
1380 14790 FCB $49,-'R','O','L'
|
|
1381 14800 FCB $06,-'M','E','M'
|
117
|
1382 14810 FCB $A0,-'T'
|
|
1383 14820 FCC "RUE"
|
|
1384 14830 FCB $A1,-'F'
|
|
1385 14840 FCC "ALSE"
|
|
1386 14850 FCB $16,-'M'
|
119
|
1387 14860 FCC "HIGH"
|
117
|
1388 14870 FCB $17,-'M'
|
|
1389 14880 FCC "OD"
|
|
1390 14890 FCB $70,-'R','N','D'
|
|
1391 14900 FCB $71,-'G','E','T'
|
|
1392 14910 FCB $72,-'R'
|
|
1393 14920 FCC "EAD"
|
|
1394 14930 ******
|
|
1395 14940 WTBLE RMB $500
|
|
1396 14950 ******
|
|
1397 14960 * SUPORTING ROUTINES
|
|
1398 14970 * & I/0 CONTROL
|
|
1399 14980 **
|
|
1400 14990 SYSTEM EQU $8837
|
119
|
1401 15000 RUB EQU $8
|
|
1402 15010 STACK EQU $FEE00
|
117
|
1403 15020 ** OBJECT START
|
|
1404 15030 C LDS #STACK
|
|
1405 15040 VARPTR LDX #0
|
118
|
1406 15050 STX GB
|
117
|
1407 15060 STX LB
|
|
1408 15070 OBJMP JMP >0
|
|
1409 15080 **
|
|
1410 15090 * PUSH LB & SET NEW LP
|
|
1411 15100 **
|
|
1412 15110 PSHLB CLRB
|
|
1413 15120 ADDD LB
|
|
1414 15130 STD WT1
|
|
1415 15140 LDX WT1
|
|
1416 15150 LDD LB
|
|
1417 15160 STD ,X++
|
|
1418 15170 STX LB
|
119
|
1419 15180 RTS
|
117
|
1420 15190 **
|
|
1421 15200 * PULL LB
|
|
1422 15210 **
|
119
|
1423 15220 PULLB LDX LB
|
117
|
1424 15230 LDX ,--X
|
|
1425 15240 STX LB
|
|
1426 15250 TSTA
|
|
1427 15260 RTS
|
|
1428 15270 **
|
119
|
1429 15280 * RND FUNCTION
|
117
|
1430 15290 **
|
|
1431 15300 RND PSHS A
|
119
|
1432 15310 LDA RNDL
|
117
|
1433 15320 LDB $125
|
|
1434 15330 MUL
|
|
1435 15340 ADDD #1
|
|
1436 15350 STA RNDL
|
|
1437 15360 PSHS A
|
|
1438 15370 LDA RNDH
|
|
1439 15380 LDB #125
|
|
1440 15390 MUL
|
|
1441 15400 ADDA ,S+
|
|
1442 15410 STA RNDH
|
|
1443 15420 PULS B
|
|
1444 15430 MUL
|
|
1445 15440 INCA
|
|
1446 15450 RTS
|
|
1447 15460 **
|
|
1448 15470 * DVISITION SET MOD
|
|
1449 15480 **
|
|
1450 15490 DIV STB WT1
|
119
|
1451 15500 BEQ ERDIV
|
117
|
1452 15510 TFR A,B
|
|
1453 15520 CLRA
|
|
1454 15530 STA WT2
|
|
1455 15540 DV0 INC WT2
|
|
1456 15550 ASL WT1
|
|
1457 15560 BCC DV0
|
|
1458 15570 DV1 ROR WT1
|
|
1459 15580 CMPB WT1
|
|
1460 15590 BCS DV2
|
|
1461 15600 SUBB WT1
|
119
|
1462 15610 ORCC #1
|
|
1463 15620 BRA *+4
|
|
1464 15630 DV2 ANDCC #$FE CLR C
|
117
|
1465 15640 ROLA
|
|
1466 15650 DEC WT2
|
119
|
1467 15660 BNE DV1
|
117
|
1468 15670 STB MOD
|
|
1469 15680 TSTA
|
|
1470 15690 RTS
|
|
1471 15700 **
|
118
|
1472 15710 ERDIV STB OUTDN
|
119
|
1473 15720 LBSR CRLF
|
117
|
1474 15730 LBSR PUTSTR
|
|
1475 15740 FCC "ERR DIV 0"
|
|
1476 15750 MONIT JMP SYSTEM
|
|
1477 15760 **
|
|
1478 15770 MULT MUL
|
|
1479 15780 STA MHIGH
|
|
1480 15790 TFR B,A
|
|
1481 15800 RTS
|
|
1482 15810 **
|
|
1483 15820 * PUT A IN DECIMAL
|
|
1484 15830 **
|
|
1485 15840 PUTDA CLRB
|
|
1486 15850 PUTDR STB DREG
|
|
1487 15860 LEAX ,S
|
|
1488 15870 LEAS -4,S
|
|
1489 15880 CLR 1,X
|
|
1490 15890 LDB #3
|
|
1491 15900 P0 PSHS B
|
|
1492 15910 LDB #10
|
|
1493 15920 BSR DIV
|
|
1494 15930 ADDB #$30
|
|
1495 15940 STB ,X
|
|
1496 15950 LEAX -1,X
|
|
1497 15960 PULS B
|
|
1498 15970 DECB
|
|
1499 15980 BNE P0
|
|
1500 15990 COMA 3,X
|
119
|
1501 16000 LDA #'0'
|
117
|
1502 16010 LDB #4
|
|
1503 16020 P1 LEAX 1,X
|
|
1504 16030 DECB
|
|
1505 16040 CMPA ,X
|
|
1506 16050 BEQ P1
|
|
1507 16060 COM 4,S
|
|
1508 16070 LDA DREG
|
|
1509 16080 PSHS B
|
|
1510 16090 SUBA ,S+
|
|
1511 16100 BCS PRX
|
118
|
1512 16110 BSR SPACEA
|
117
|
1513 16120 PRX LDB ,X
|
|
1514 16130 BEQ P4
|
|
1515 16140 BSR PUTCA
|
|
1516 16150 LEAX 1,X
|
|
1517 16160 BRA PRX
|
|
1518 16170 P4 LEAS 4,S
|
|
1519 16180 CL1 RTS
|
|
1520 16190 **
|
|
1521 16200 * GET IN A DECIMAL
|
|
1522 16210 **
|
|
1523 16220 GETDA CLRA
|
|
1524 16230 PSHS A
|
|
1525 16240 BSR GETCA
|
|
1526 16250 CMPA #RUB
|
119
|
1527 16260 BNE GD1
|
|
1528 16270 PULS A
|
117
|
1529 16280 LDB #10
|
|
1530 16290 LBSR DIV
|
|
1531 16300 BRA GETDA+1
|
119
|
1532 16310 GD1 SUBA #'0'
|
117
|
1533 16320 BCS GD2
|
|
1534 16330 CMPA #10
|
|
1535 16340 BCC GD2
|
119
|
1536 16350 STA DBUF
|
|
1537 16360 PULS A
|
117
|
1538 16370 LDB #10
|
|
1539 16380 MUL
|
|
1540 16390 ADDB DBUF
|
119
|
1541 16400 TFR B,A
|
|
1542 16410 BRA GETDA+1
|
117
|
1543 16420 GD2 PULS A,PC
|
|
1544 16430 **
|
119
|
1545 16440 * SPACE A TIMES
|
|
1546 16450 **
|
118
|
1547 16460 SPACEA BEQ CL1
|
117
|
1548 16470 PSHS A
|
119
|
1549 16480 LDA #' '
|
117
|
1550 16490 BSR PUTCA
|
|
1551 16500 PULS A
|
119
|
1552 16510 DECA
|
118
|
1553 16520 BRA SPACEA
|
117
|
1554 16530 **
|
|
1555 16540 * STR OUT
|
|
1556 16550 **
|
|
1557 16560 PUTSTR PSHS X
|
|
1558 16570 LDX 2,S
|
119
|
1559 16580 STR1 LDA ,X+
|
117
|
1560 16590 BEQ STR2
|
119
|
1561 16600 LBSR PUTCA
|
117
|
1562 16610 BRA STR1
|
|
1563 16620 STR2 STX 2,S
|
|
1564 16630 PULS X,PC
|
|
1565 16640 **
|
|
1566 16650 * CRLF
|
|
1567 16660 **
|
|
1568 16670 CRLF LDA #$0D
|
|
1569 16680 BSR PUTCA
|
118
|
1570 16690 LDA #$0A
|
119
|
1571 16700 BRA PUTCA
|
117
|
1572 16710 **
|
119
|
1573 16720 * CRLF A TIMES
|
117
|
1574 16730 **
|
|
1575 16740 CRLFA BEQ CL1
|
|
1576 16750 PSHS A
|
|
1577 16760 BSR CRLF
|
|
1578 16770 PULS A
|
|
1579 16780 DECA
|
|
1580 16790 BRA CRLFA
|
|
1581 16800 **
|
|
1582 16810 * PUTCHR A
|
|
1583 16820 **
|
|
1584 16830 PUTCA PSHS X
|
|
1585 16840 LDB OUTDN
|
|
1586 16850 LEAX OUTAT,PC
|
|
1587 16860 ASLB
|
|
1588 16870 JSR [B,X]
|
|
1589 16880 PULS X,PC
|
|
1590 16890 **
|
|
1591 16900 * GET ACCA ONE CHR
|
|
1592 16910 **
|
|
1593 16920 GETCA PSHS X
|
|
1594 16930 LDB INDN
|
|
1595 16940 LEAX INAT,PC
|
|
1596 16950 ASLB
|
|
1597 16960 JSR [B,X]
|
119
|
1598 16970 PULS X,PC
|
117
|
1599 16980 **
|
|
1600 16990 * INPUT ROUTINE ADDRESS
|
|
1601 17000 **
|
|
1602 17010 INAT FDB INEEE
|
|
1603 17020 RMB 4
|
|
1604 17030 RMB 14
|
|
1605 17040 **
|
118
|
1606 17050 * OUTPUT AOUTINE ADDRESS
|
117
|
1607 17060 **
|
|
1608 17070 OUTAT FDB OUTEEE
|
|
1609 17080 RMB 6
|
|
1610 17090 RMB 12
|
|
1611 17100
|
|
1612 17110 * OBJECT PG AREA
|
|
1613 17120
|
|
1614 17130 OBJECT NOP
|
|
1615 17140 END
|