Mercurial > hg > Members > kono > os9 > sbc09
comparison basic/basic.asm @ 57:2088fd998865
sbc09 directry clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 23 Jul 2018 16:07:12 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
56:4fa2bdb0c457 | 57:2088fd998865 |
---|---|
1 ;NAM TB01V137 | |
2 * WRITTEN 20-OCT-77 BY JOHN BYRNS | |
3 * REVISED 30-DEC-77 | |
4 * REVISED 18-JAN-78 | |
5 * REVISED 10-APR-78 | |
6 * REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
7 * REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
8 * REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
9 * REVISED 24-JUL-81 FOR WHISTON BOARD | |
10 * REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
11 * REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
12 * REVISED 21-NOV-84 FOR 6809 | |
13 * REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
14 * | |
15 EOL EQU $04 | |
16 ETX EQU $03 | |
17 SPACE EQU $20 | |
18 CR EQU $0D | |
19 LF EQU $0A | |
20 BS EQU $08 | |
21 CAN EQU $18 | |
22 BELL EQU $07 | |
23 FILL EQU $00 | |
24 DEL EQU $7F | |
25 BSIZE EQU 73 | |
26 STKCUS EQU 48 | |
27 * | |
28 ACIA EQU $E000 | |
29 RMCR EQU ACIA | |
30 TRCS EQU ACIA | |
31 RECEV EQU ACIA+1 | |
32 TRANS EQU ACIA+1 | |
33 CNTL1 EQU $03 | |
34 CNTL2 EQU $15 | |
35 RDRF EQU $01 | |
36 ORFE EQU $20 | |
37 TDRE EQU $02 | |
38 * EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
39 * DESIRED ROM AND RAM LAYOUT | |
40 LORAM EQU $0080 ADDRESS OF DIRECT PAGE SCRATCH RAM | |
41 BUFFER EQU $4000 ADDRESS OF MAIN RAM | |
42 RAMSIZ EQU $2000 SIZE OF MAIN RAM | |
43 ROMADR EQU $400 ADDRESS OF TINY BASIC ROM | |
44 * | |
45 RAMBEG EQU BUFFER+BSIZE | |
46 RAMEND EQU BUFFER+RAMSIZ | |
47 * | |
48 RAMPAT EQU $AA0F | |
49 ROMPAT EQU $F055 | |
50 * | |
51 ORG LORAM | |
52 USRBAS RMB 2 | |
53 USRTOP RMB 2 | |
54 STKLIM RMB 2 | |
55 STKTOP RMB 2 | |
56 CURSOR RMB 2 | |
57 SAVESP RMB 2 | |
58 LINENB RMB 2 | |
59 SCRTCH RMB 2 | |
60 CHAR RMB 2 | |
61 ZONE RMB 1 | |
62 MODE RMB 1 | |
63 RESRVD RMB 1 | |
64 LOEND EQU * | |
65 * | |
66 ORG ROMADR | |
67 BASIC JMP SETUP | |
68 WARMS LDS STKTOP | |
69 JSR INTEEE | |
70 BRA WMS05 | |
71 SETUP LDS #RAMEND-52 | |
72 SET03 STS STKTOP | |
73 JSR INTEEE | |
74 CLEAR LDD #RAMBEG | |
75 STD USRBAS | |
76 STD USRTOP | |
77 CLR02 STD STKLIM | |
78 WMS05 JSR CRLF | |
79 LDX #VSTR | |
80 JSR PUTSTR | |
81 CMDB LDS STKTOP | |
82 CLR MODE | |
83 JSR CRLF | |
84 LDX USRBAS | |
85 STX CURSOR | |
86 CMDE LDX #0000 | |
87 STX LINENB | |
88 TST MODE | |
89 BNE CMD01 | |
90 LDA #': | |
91 JSR PUTCHR | |
92 CMD01 JSR GETLIN | |
93 JSR TSTNBR | |
94 BCC CMD02 | |
95 BVS CMD05 | |
96 JSR SKIPSP | |
97 CMPA #EOL | |
98 BEQ CMDE | |
99 JSR MSLINE | |
100 BRA CMDB | |
101 CMD02 PSHS X | |
102 LDX USRTOP | |
103 CMPX STKLIM | |
104 PULS X | |
105 BEQ CMD03 | |
106 JMP ERRORR | |
107 CMD03 ADDD #0 | |
108 BEQ CMD05 | |
109 CMD04 PSHS D | |
110 SUBD #9999 | |
111 PULS D | |
112 BHI CMD05 | |
113 BSR EDITOR | |
114 BRA CMDE | |
115 CMD05 JMP ERRORS | |
116 VSTR FCC /TINY V1.37/ | |
117 FCB EOL | |
118 ****************************** | |
119 ****************************** | |
120 EDITOR PSHS D | |
121 JSR SKIPSP | |
122 STX SCRTCH | |
123 LDA 0,S | |
124 LDX CURSOR | |
125 CMPX USRTOP | |
126 BEQ ED00 | |
127 CMPD 0,X | |
128 BCC ED01 | |
129 ED00 LDX USRBAS | |
130 ED01 JSR FNDLIN | |
131 STX CURSOR | |
132 BCS ED04 | |
133 STX SAVESP | |
134 LEAX 2,X | |
135 ED02 LDA ,X+ | |
136 CMPA #EOL | |
137 BNE ED02 | |
138 ED03 CMPX USRTOP | |
139 BEQ ED35 | |
140 LDA ,X+ | |
141 STX CHAR | |
142 LDX SAVESP | |
143 STA ,X+ | |
144 STX SAVESP | |
145 LDX CHAR | |
146 BRA ED03 | |
147 ED35 LDX SAVESP | |
148 STX USRTOP | |
149 STX STKLIM | |
150 ED04 LDX SCRTCH | |
151 LDB #-1 | |
152 ED05 INCB | |
153 LDA ,X+ | |
154 CMPA #EOL | |
155 BNE ED05 | |
156 TSTB | |
157 BNE ED55 | |
158 LEAS 2,S | |
159 RTS | |
160 ED55 LEAX -1,X | |
161 ADDB #4 | |
162 ED06 LEAX -1,X | |
163 DECB | |
164 LDA 0,X | |
165 CMPA #SPACE | |
166 BEQ ED06 | |
167 LDA #EOL | |
168 STA 1,X | |
169 CLRA | |
170 LDX USRTOP | |
171 STX CHAR | |
172 ADDD USRTOP | |
173 STD USRTOP | |
174 STD STKLIM | |
175 JSR TSTSTK | |
176 BCC ED07 | |
177 STX USRTOP | |
178 STX STKLIM | |
179 JMP ERRORF | |
180 ED07 LDX USRTOP | |
181 ED08 STX SAVESP | |
182 LDX CHAR | |
183 CMPX CURSOR | |
184 BEQ ED09 | |
185 LDA ,-X | |
186 STX CHAR | |
187 LDX SAVESP | |
188 STA ,-X | |
189 BRA ED08 | |
190 ED09 PULS D | |
191 LDX CURSOR | |
192 STD ,X++ | |
193 STX CHAR | |
194 ED10 LDX SCRTCH | |
195 LDA ,X+ | |
196 STX SCRTCH | |
197 LDX CHAR | |
198 STA ,X+ | |
199 STX CHAR | |
200 CMPA #EOL | |
201 BNE ED10 | |
202 RTS | |
203 ****************************** | |
204 ****************************** | |
205 PUTS01 JSR PUTCHR | |
206 LEAX 1,X | |
207 PUTSTR LDA 0,X | |
208 CMPA #EOL | |
209 BNE PUTS01 | |
210 RTS | |
211 ****************************** | |
212 ****************************** | |
213 CRLF LDX #CRLFST | |
214 BSR PUTSTR | |
215 CLR ZONE | |
216 RTS | |
217 CRLFST FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
218 ****************************** | |
219 ****************************** | |
220 ERRORF BSR ER01 | |
221 FCC /SORRY/ | |
222 FCB EOL | |
223 ERRORS BSR ER01 | |
224 FCC /WHAT ?/ | |
225 FCB EOL | |
226 ERRORR BSR ER01 | |
227 FCC /HOW ?/ | |
228 FCB EOL | |
229 BREAK BSR ER01 | |
230 FCC /BREAK/ | |
231 FCB EOL | |
232 END BSR ER01 | |
233 FCC /STOP/ | |
234 FCB EOL | |
235 ER01 BSR CRLF | |
236 LDA #BELL | |
237 JSR PUTCHR | |
238 LDD LINENB | |
239 JSR PRNT4 | |
240 LDA #SPACE | |
241 JSR PUTCHR | |
242 PULS X | |
243 BSR PUTSTR | |
244 BSR CRLF | |
245 JMP CMDB | |
246 ****************************** | |
247 ****************************** | |
248 GL00 BSR CRLF | |
249 GETLIN LDX #BUFFER | |
250 GL03 JSR GETCHR | |
251 CMPA #SPACE | |
252 BCS GL05 | |
253 CMPA #$7F | |
254 BEQ GL03 | |
255 CMPX #BUFFER+BSIZE-1 | |
256 BNE GL04 | |
257 LDA #BELL | |
258 BRA GL02 | |
259 GL04 STA ,X+ | |
260 GL02 JSR PUTCHR | |
261 BRA GL03 | |
262 GL05 CMPA #BS | |
263 BEQ GL07 | |
264 CMPA #CAN | |
265 BEQ GL00 | |
266 CMPA #LF | |
267 BEQ GL09 | |
268 CMPA #CR | |
269 BNE GL03 | |
270 TST MODE | |
271 BEQ GL06 | |
272 JSR PUTCHR | |
273 BRA GL08 | |
274 GL06 PSHS X | |
275 JSR CRLF | |
276 PULS X | |
277 GL08 LDA #EOL | |
278 STA 0,X | |
279 LDX #BUFFER | |
280 RTS | |
281 GL07 CMPX #BUFFER | |
282 BEQ GL03 | |
283 LEAX -1,X | |
284 LDA #BS | |
285 JSR PUTCHR | |
286 LDA #SPACE | |
287 JSR PUTCHR | |
288 LDA #BS | |
289 BRA GL02 | |
290 GL09 ORCC #$01 | |
291 ROR MODE | |
292 BRA GL02 | |
293 ****************************** | |
294 ****************************** | |
295 REM00 LEAX 1,X | |
296 REM BSR SKIPSP | |
297 CMPA #EOL | |
298 BNE REM00 | |
299 ENDSMT JSR TSTEOL | |
300 ENDS02 LDA LINENB | |
301 ORA LINENB+1 | |
302 BEQ REM09 | |
303 REM05 CMPX USRTOP | |
304 BNE NXTLIN | |
305 JMP ERRORR | |
306 NXTLIN LDD ,X++ | |
307 STD LINENB | |
308 MSLINE JSR TSTBRK | |
309 BSR IFAN | |
310 BCS IMPLET | |
311 PSHS D | |
312 REM09 RTS | |
313 IMPLET JMP LET | |
314 ****************************** | |
315 ****************************** | |
316 IFAN BSR SKIPSP | |
317 STX CURSOR | |
318 LDX #VERBT | |
319 FAN00 LDA ,X+ | |
320 CMPA #EOL | |
321 BNE FAN04 | |
322 LDX CURSOR | |
323 ORCC #$01 | |
324 RTS | |
325 FAN04 STX CHAR | |
326 LDX CURSOR | |
327 STX SCRTCH | |
328 FAN05 LDX SCRTCH | |
329 CMPA 0,X | |
330 BNE FAN07 | |
331 LEAX 1,X | |
332 STX SCRTCH | |
333 LDX CHAR | |
334 LDA ,X+ | |
335 STX CHAR | |
336 CMPA #EOL | |
337 BNE FAN05 | |
338 LDD 0,X | |
339 LDX SCRTCH | |
340 ANDCC #$FE | |
341 RTS | |
342 FAN07 LDX CHAR | |
343 FAN08 LDA ,X+ | |
344 CMPA #EOL | |
345 BNE FAN08 | |
346 LEAX 2,X | |
347 BRA FAN00 | |
348 ****************************** | |
349 ****************************** | |
350 NXTNSP LEAX 1,X | |
351 SKIPSP LDA 0,X | |
352 CMPA #SPACE | |
353 BEQ NXTNSP | |
354 RTS | |
355 ****************************** | |
356 ****************************** | |
357 TSTHEX BSR TSTDIG | |
358 BCC TST05 | |
359 CMPA #'A | |
360 BCS TST03 | |
361 CMPA #'F | |
362 BHI TST03 | |
363 SUBA #'A-10 | |
364 ANDCC #$FE | |
365 RTS | |
366 ****************************** | |
367 ****************************** | |
368 TSTLTR CMPA #'A | |
369 BCS TST03 | |
370 CMPA #'Z | |
371 BLS TST05 | |
372 TST03 ORCC #$01 | |
373 RTS | |
374 ****************************** | |
375 ****************************** | |
376 TSTDIG CMPA #'0 | |
377 BCS TST03 | |
378 CMPA #'9 | |
379 BHI TST03 | |
380 SUBA #'0 | |
381 TST05 ANDCC #$FE | |
382 RTS | |
383 ****************************** | |
384 ****************************** | |
385 TSTVAR BSR SKIPSP | |
386 BSR TSTLTR | |
387 BCS TSTV03 | |
388 TFR A,B | |
389 LDA 1,X | |
390 BSR TSTLTR | |
391 BCC TST03 | |
392 LEAX 1,X | |
393 SUBB #'A | |
394 ASLB | |
395 CLRA | |
396 ADDD STKTOP | |
397 TSTV02 ANDCC #$FE | |
398 TSTV03 RTS | |
399 ****************************** | |
400 ****************************** | |
401 USER JSR ARGONE | |
402 PSHS D | |
403 JSR SKIPSP | |
404 CMPA #', | |
405 BEQ USER03 | |
406 CMPA #') | |
407 ORCC #$01 | |
408 BEQ USER05 | |
409 USER02 JMP ERRORS | |
410 USER03 LEAX 1,X | |
411 JSR EXPR | |
412 PSHS A | |
413 JSR SKIPSP | |
414 CMPA #') | |
415 PULS A | |
416 BNE USER02 | |
417 ANDCC #$FE | |
418 USER05 LEAX 1,X | |
419 STX CURSOR | |
420 JSR [,S++] | |
421 LDX CURSOR | |
422 ANDCC #$FE | |
423 RTS | |
424 ****************************** | |
425 ****************************** | |
426 TSTSNB JSR SKIPSP | |
427 CMPA #'- | |
428 BNE TSTNBR | |
429 LEAX 1,X | |
430 BSR TSTNBR | |
431 BCS TSN02 | |
432 NEGA | |
433 NEGB | |
434 SBCA #0 | |
435 ANDCC #$FC | |
436 TSN02 RTS | |
437 ****************************** | |
438 ****************************** | |
439 TSTNBR JSR SKIPSP | |
440 JSR TSTDIG | |
441 BCC TSTN02 | |
442 CMPA #'$ | |
443 ORCC #$01 | |
444 BNE TSTN09 | |
445 TSTN20 LEAX 1,X | |
446 CLR ,-S | |
447 CLR ,-S | |
448 TSTN23 LDA 0,X | |
449 JSR TSTHEX | |
450 BCS TSTN07 | |
451 LEAX 1,X | |
452 PSHS X | |
453 PSHS A | |
454 LDD 3,S | |
455 BITA #$F0 | |
456 BNE TSTN11 | |
457 ASLB | |
458 ROLA | |
459 ASLB | |
460 ROLA | |
461 ASLB | |
462 ROLA | |
463 ASLB | |
464 ROLA | |
465 ADDB ,S+ | |
466 STD 2,S | |
467 PULS X | |
468 BRA TSTN23 | |
469 TSTN02 LEAX 1,X | |
470 PSHS A | |
471 CLR ,-S | |
472 TSTN03 LDA 0,X | |
473 JSR TSTDIG | |
474 BCS TSTN07 | |
475 LEAX 1,X | |
476 PSHS X | |
477 PSHS A | |
478 LDD 3,S | |
479 ASLB | |
480 ROLA | |
481 BVS TSTN11 | |
482 ASLB | |
483 ROLA | |
484 BVS TSTN11 | |
485 ADDD 3,S | |
486 BVS TSTN11 | |
487 ASLB | |
488 ROLA | |
489 BVS TSTN11 | |
490 ADDB 0,S | |
491 ADCA #0 | |
492 BVS TSTN11 | |
493 STD 3,S | |
494 LEAS 1,S | |
495 PULS X | |
496 BRA TSTN03 | |
497 TSTN07 PULS D | |
498 ANDCC #$FE | |
499 TSTN09 ANDCC #$FD | |
500 RTS | |
501 TSTN11 LDX 1,S | |
502 LEAS 5,S | |
503 ORCC #$03 | |
504 RTS | |
505 ****************************** | |
506 ****************************** | |
507 TSTSTK STS SAVESP | |
508 LDD SAVESP | |
509 SUBD #STKCUS | |
510 SUBD STKLIM | |
511 RTS | |
512 ****************************** | |
513 ****************************** | |
514 PEEK JSR PAREXP | |
515 PSHS D | |
516 PSHS X | |
517 LDB [2,S] | |
518 PULS X | |
519 LEAS 2,S | |
520 CLRA | |
521 RTS | |
522 ****************************** | |
523 ****************************** | |
524 POKE JSR PAREXP | |
525 PSHS D | |
526 JSR SKIPSP | |
527 CMPA #'= | |
528 BEQ POKE05 | |
529 JMP ERRORS | |
530 POKE05 LEAX 1,X | |
531 JSR EXPR | |
532 JSR TSTEOL | |
533 PSHS X | |
534 STB [2,S] | |
535 PULS X | |
536 LEAS 2,S | |
537 JMP ENDS02 | |
538 ****************************** | |
539 ****************************** | |
540 TSTFUN JSR SKIPSP | |
541 STX CURSOR | |
542 LDX #FUNT | |
543 JSR FAN00 | |
544 BCS TSTF05 | |
545 PSHS D | |
546 TSTF05 RTS | |
547 ****************************** | |
548 ****************************** | |
549 FUNT FCC /USR/ | |
550 FCB EOL | |
551 FDB USER | |
552 FCC /PEEK/ | |
553 FCB EOL | |
554 FDB PEEK | |
555 FCC /MEM/ | |
556 FCB EOL | |
557 FDB TSTSTK | |
558 FCB EOL | |
559 ****************************** | |
560 ****************************** | |
561 FLINE LDX USRBAS | |
562 FNDLIN CMPX USRTOP | |
563 BNE FND03 | |
564 ORCC #$03 | |
565 RTS | |
566 FND03 CMPD 0,X | |
567 BNE FND05 | |
568 ANDCC #$FC | |
569 RTS | |
570 FND05 BCC FND07 | |
571 ORCC #$01 | |
572 ANDCC #$FD | |
573 RTS | |
574 FND07 PSHS A | |
575 LDA #EOL | |
576 LEAX 1,X | |
577 FND09 LEAX 1,X | |
578 CMPA 0,X | |
579 BNE FND09 | |
580 PULS A | |
581 LEAX 1,X | |
582 BRA FNDLIN | |
583 ****************************** | |
584 ****************************** | |
585 RELEXP BSR EXPR | |
586 PSHS D | |
587 CLRB | |
588 JSR SKIPSP | |
589 CMPA #'= | |
590 BEQ REL06 | |
591 CMPA #'< | |
592 BNE REL03 | |
593 LEAX 1,X | |
594 INCB | |
595 JSR SKIPSP | |
596 CMPA #'> | |
597 BNE REL05 | |
598 LEAX 1,X | |
599 ADDB #4 | |
600 BRA REL07 | |
601 REL03 CMPA #'> | |
602 BNE EXPR06 | |
603 LEAX 1,X | |
604 ADDB #4 | |
605 JSR SKIPSP | |
606 REL05 CMPA #'= | |
607 BNE REL07 | |
608 REL06 LEAX 1,X | |
609 ADDB #2 | |
610 REL07 PSHS B | |
611 BSR EXPR | |
612 PSHS X | |
613 SUBD 3,S | |
614 TFR CC,A | |
615 LSRA | |
616 TFR A,B | |
617 ASLA | |
618 ASLA | |
619 PSHS B | |
620 ADDA ,S+ | |
621 ANDA #$06 | |
622 BNE REL08 | |
623 INCA | |
624 REL08 CLRB | |
625 ANDA 2,S | |
626 BEQ REL09 | |
627 COMB | |
628 REL09 CLRA | |
629 PULS X | |
630 LEAS 3,S | |
631 RTS | |
632 ****************************** | |
633 ****************************** | |
634 EXPR CLR ,-S | |
635 CLR ,-S | |
636 JSR SKIPSP | |
637 CMPA #'- | |
638 BEQ EXPR05 | |
639 CMPA #'+ | |
640 BNE EXPR03 | |
641 EXPR02 LEAX 1,X | |
642 EXPR03 BSR TERM | |
643 EXPR04 ADDD 0,S | |
644 STD 0,S | |
645 JSR SKIPSP | |
646 CMPA #'+ | |
647 BEQ EXPR02 | |
648 CMPA #'- | |
649 BNE EXPR06 | |
650 EXPR05 LEAX 1,X | |
651 BSR TERM | |
652 NEGA | |
653 NEGB | |
654 SBCA #0 | |
655 BRA EXPR04 | |
656 EXPR06 PULS D | |
657 RTS | |
658 ****************************** | |
659 ****************************** | |
660 TERM JSR FACT | |
661 PSHS D | |
662 TERM03 JSR SKIPSP | |
663 CMPA #'* | |
664 BEQ TERM07 | |
665 CMPA #'/ | |
666 BEQ TERM05 | |
667 PULS D | |
668 RTS | |
669 TERM05 LEAX 1,X | |
670 BSR FACT | |
671 PSHS X | |
672 LEAX 2,S | |
673 PSHS D | |
674 EORA 0,X | |
675 JSR ABSX | |
676 LEAX 0,S | |
677 JSR ABSX | |
678 PSHS A | |
679 LDA #17 | |
680 PSHS A | |
681 CLRA | |
682 CLRB | |
683 DIV05 SUBD 2,S | |
684 BCC DIV07 | |
685 ADDD 2,S | |
686 ANDCC #$FE | |
687 BRA DIV09 | |
688 DIV07 ORCC #$01 | |
689 DIV09 ROL 7,S | |
690 ROL 6,S | |
691 ROLB | |
692 ROLA | |
693 DEC 0,S | |
694 BNE DIV05 | |
695 LDA 1,S | |
696 LEAS 4,S | |
697 TSTA | |
698 BPL TERM06 | |
699 LEAX 2,S | |
700 BSR NEGX | |
701 TERM06 PULS X | |
702 BRA TERM03 | |
703 TERM07 LEAX 1,X | |
704 BSR FACT | |
705 MULT PSHS B | |
706 LDB 2,S | |
707 MUL | |
708 LDA 1,S | |
709 STB 1,S | |
710 LDB 0,S | |
711 MUL | |
712 LDA 2,S | |
713 STB 2,S | |
714 PULS B | |
715 MUL | |
716 ADDA 0,S | |
717 ADDA 1,S | |
718 STD 0,S | |
719 BRA TERM03 | |
720 ****************************** | |
721 ****************************** | |
722 FACT JSR TSTVAR | |
723 BCS FACT03 | |
724 PSHS X | |
725 TFR D,X | |
726 LDD 0,X | |
727 PULS X | |
728 FACT02 RTS | |
729 FACT03 JSR TSTNBR | |
730 BCC FACT02 | |
731 JSR TSTFUN | |
732 BCC FACT02 | |
733 PAREXP BSR ARGONE | |
734 PSHS A | |
735 JSR SKIPSP | |
736 CMPA #') | |
737 PULS A | |
738 BNE FACT05 | |
739 LEAX 1,X | |
740 RTS | |
741 FACT05 JMP ERRORS | |
742 ****************************** | |
743 ****************************** | |
744 ARGONE JSR TSTSTK | |
745 BCC FACT04 | |
746 JMP ERRORF | |
747 FACT04 JSR SKIPSP | |
748 CMPA #'( | |
749 BNE FACT05 | |
750 LEAX 1,X | |
751 JMP EXPR | |
752 ****************************** | |
753 ****************************** | |
754 ABSX TST 0,X | |
755 BPL NEG05 | |
756 NEGX NEG 0,X | |
757 NEG 1,X | |
758 BCC NEG05 | |
759 DEC 0,X | |
760 NEG05 RTS | |
761 ****************************** | |
762 ****************************** | |
763 TSTEOL PSHS A | |
764 JSR SKIPSP | |
765 CMPA #EOL | |
766 BEQ TEOL03 | |
767 JMP ERRORS | |
768 TEOL03 LEAX 1,X | |
769 PULS A | |
770 RTS | |
771 ****************************** | |
772 ****************************** | |
773 LET JSR TSTVAR | |
774 BCC LET03 | |
775 JMP ERRORS | |
776 LET03 PSHS D | |
777 JSR SKIPSP | |
778 CMPA #'= | |
779 BEQ LET05 | |
780 JMP ERRORS | |
781 LET05 LEAX 1,X | |
782 JSR EXPR | |
783 BSR TSTEOL | |
784 STX CURSOR | |
785 PULS X | |
786 STD 0,X | |
787 LDX CURSOR | |
788 JMP ENDS02 | |
789 ****************************** | |
790 ****************************** | |
791 IF JSR RELEXP | |
792 TSTB | |
793 BEQ IF03 | |
794 JMP MSLINE | |
795 IF03 JMP REM | |
796 ****************************** | |
797 ****************************** | |
798 GOTO JSR EXPR | |
799 BSR TSTEOL | |
800 JSR FLINE | |
801 BCS GOSB04 | |
802 JMP NXTLIN | |
803 ****************************** | |
804 ****************************** | |
805 GOSUB JSR EXPR | |
806 BSR TSTEOL | |
807 STX CURSOR | |
808 JSR FLINE | |
809 BCC GOSB03 | |
810 GOSB04 JMP ERRORR | |
811 GOSB03 JSR TSTSTK | |
812 BCC GOSB05 | |
813 JMP ERRORF | |
814 GOSB05 LDD CURSOR | |
815 PSHS D | |
816 LDD LINENB | |
817 PSHS D | |
818 JSR NXTLIN | |
819 PULS D | |
820 STD LINENB | |
821 PULS X | |
822 JMP ENDS02 | |
823 ****************************** | |
824 ****************************** | |
825 RETURN EQU TSTEOL | |
826 ****************************** | |
827 ****************************** | |
828 PRINT JSR SKIPSP | |
829 PR01 CMPA #', | |
830 BEQ PR05 | |
831 CMPA #'; | |
832 BEQ PR07 | |
833 CMPA #EOL | |
834 BEQ PR04 | |
835 CMPA #'" | |
836 BNE PR02 | |
837 LEAX 1,X | |
838 BSR PRNTQS | |
839 BRA PR03 | |
840 PR02 JSR EXPR | |
841 PSHS X | |
842 BSR PRNTN | |
843 PULS X | |
844 PR03 JSR SKIPSP | |
845 CMPA #', | |
846 BEQ PR05 | |
847 CMPA #'; | |
848 BEQ PR07 | |
849 CMPA #EOL | |
850 BEQ PR04 | |
851 JMP ERRORS | |
852 PR04 PSHS X | |
853 JSR CRLF | |
854 PULS X | |
855 BRA PR08 | |
856 PR05 LDB #$7 | |
857 PR06 LDA #SPACE | |
858 JSR PUTCHR | |
859 BITB ZONE | |
860 BNE PR06 | |
861 PR07 LEAX 1,X | |
862 JSR SKIPSP | |
863 CMPA #EOL | |
864 BNE PR01 | |
865 PR08 LEAX 1,X | |
866 JMP ENDS02 | |
867 * | |
868 * | |
869 PRQ01 JSR PUTCHR | |
870 PRNTQS LDA ,X+ | |
871 CMPA #EOL | |
872 BNE PRQ03 | |
873 JMP ERRORS | |
874 PRQ03 CMPA #'" | |
875 BNE PRQ01 | |
876 RTS | |
877 * | |
878 PRNTN TSTA | |
879 BPL PRN03 | |
880 NEGA | |
881 NEGB | |
882 SBCA #0 | |
883 PSHS A | |
884 LDA #'- | |
885 JSR PUTCHR | |
886 PULS A | |
887 PRN03 LDX #PRNPT-2 | |
888 PRN05 LEAX 2,X | |
889 CMPD 0,X | |
890 BCC PRN07 | |
891 CMPX #PRNPTO | |
892 BNE PRN05 | |
893 PRN07 CLR CHAR | |
894 PRN09 CMPD 0,X | |
895 BCS PRN11 | |
896 SUBD 0,X | |
897 INC CHAR | |
898 BRA PRN09 | |
899 PRN11 PSHS A | |
900 LDA #'0 | |
901 ADDA CHAR | |
902 JSR PUTCHR | |
903 PULS A | |
904 CMPX #PRNPTO | |
905 BEQ PRN13 | |
906 LEAX 2,X | |
907 BRA PRN07 | |
908 PRN13 RTS | |
909 PRNPT FDB 10000 | |
910 FDB 1000 | |
911 FDB 100 | |
912 FDB 10 | |
913 PRNPTO FDB 1 | |
914 * | |
915 PRNT4 LDX #PRNPT+2 | |
916 BRA PRN07 | |
917 ****************************** | |
918 ****************************** | |
919 INPUT JSR TSTVAR | |
920 BCS IN11 | |
921 PSHS D | |
922 STX CURSOR | |
923 IN03 LDA #'? | |
924 JSR PUTCHR | |
925 JSR GETLIN | |
926 IN05 JSR SKIPSP | |
927 CMPA #EOL | |
928 BEQ IN03 | |
929 JSR TSTSNB | |
930 BCC IN07 | |
931 LDX #RMESS | |
932 JSR PUTSTR | |
933 JSR CRLF | |
934 BRA IN03 | |
935 IN07 STX SCRTCH | |
936 PULS X | |
937 STD 0,X | |
938 LDX CURSOR | |
939 JSR SKIPSP | |
940 CMPA #', | |
941 BEQ IN09 | |
942 JMP ENDSMT | |
943 IN09 LEAX 1,X | |
944 JSR TSTVAR | |
945 BCC IN13 | |
946 IN11 JMP ERRORS | |
947 IN13 PSHS D | |
948 PSHS X | |
949 LDX SCRTCH | |
950 JSR SKIPSP | |
951 CMPA #', | |
952 BNE IN05 | |
953 LEAX 1,X | |
954 BRA IN05 | |
955 RMESS FCC /RE-ENTER/ | |
956 FCB EOL | |
957 ****************************** | |
958 ****************************** | |
959 RUN LDX STKTOP | |
960 LDA #52 | |
961 RUN01 CLR ,X+ | |
962 DECA | |
963 BNE RUN01 | |
964 LDX USRBAS | |
965 JMP REM05 | |
966 ****************************** | |
967 ****************************** | |
968 LIST JSR TSTNBR | |
969 BCC LIST03 | |
970 CLRA | |
971 CLRB | |
972 STD CURSOR | |
973 LDA #$7F | |
974 BRA LIST07 | |
975 LIST03 STD CURSOR | |
976 JSR SKIPSP | |
977 CMPA #', | |
978 BEQ LIST05 | |
979 LDA CURSOR | |
980 BRA LIST07 | |
981 LIST05 LEAX 1,X | |
982 JSR TSTNBR | |
983 BCC LIST07 | |
984 JMP ERRORS | |
985 LIST07 JSR TSTEOL | |
986 PSHS D | |
987 LDD CURSOR | |
988 STX CURSOR | |
989 JSR FLINE | |
990 LIST09 CMPX USRTOP | |
991 BEQ LIST10 | |
992 PULS D | |
993 CMPD 0,X | |
994 BCS LIST11 | |
995 PSHS D | |
996 LDD ,X++ | |
997 PSHS X | |
998 JSR PRNT4 | |
999 PULS X | |
1000 LDA #SPACE | |
1001 JSR PUTCHR | |
1002 JSR PUTSTR | |
1003 LEAX 1,X | |
1004 PSHS X | |
1005 JSR CRLF | |
1006 PULS X | |
1007 JSR TSTBRK | |
1008 BRA LIST09 | |
1009 LIST10 LEAS 2,S | |
1010 LDA #ETX | |
1011 JSR PUTCHR | |
1012 LIST11 LDX CURSOR | |
1013 JMP ENDS02 | |
1014 ****************************** | |
1015 ****************************** | |
1016 VERBT FCC /LET/ | |
1017 FCB EOL | |
1018 FDB LET | |
1019 FCC /IF/ | |
1020 FCB EOL | |
1021 FDB IF | |
1022 FCC /GOTO/ | |
1023 FCB EOL | |
1024 FDB GOTO | |
1025 FCC /GOSUB/ | |
1026 FCB EOL | |
1027 FDB GOSUB | |
1028 FCC /RETURN/ | |
1029 FCB EOL | |
1030 FDB RETURN | |
1031 FCC /POKE/ | |
1032 FCB EOL | |
1033 FDB POKE | |
1034 FCC /PRINT/ | |
1035 FCB EOL | |
1036 FDB PRINT | |
1037 FCC /INPUT/ | |
1038 FCB EOL | |
1039 FDB INPUT | |
1040 FCC /REM/ | |
1041 FCB EOL | |
1042 FDB REM | |
1043 FCC /STOP/ | |
1044 FCB EOL | |
1045 FDB END | |
1046 FCC /END/ | |
1047 FCB EOL | |
1048 FDB END | |
1049 FCC /RUN/ | |
1050 FCB EOL | |
1051 FDB RUN | |
1052 FCC /LIST/ | |
1053 FCB EOL | |
1054 FDB LIST | |
1055 FCC /NEW/ | |
1056 FCB EOL | |
1057 FDB CLEAR | |
1058 FCC /?/ | |
1059 FCB EOL | |
1060 FDB PRINT | |
1061 FCB EOL | |
1062 ****************************** | |
1063 ****************************** | |
1064 TSTBRK bsr BRKEEE | |
1065 beq GETC05 | |
1066 GETCHR bsr INEEE | |
1067 CMPA #ETX | |
1068 BNE GETC05 | |
1069 JMP BREAK | |
1070 GETC05 RTS | |
1071 PUTCHR INC ZONE | |
1072 JMP OUTEEE | |
1073 ****************************** | |
1074 ****************************** | |
1075 INEEE BSR BRKEEE | |
1076 BEQ INEEE | |
1077 LDA RECEV | |
1078 ANDA #$7F | |
1079 RTS | |
1080 OUTEEE PSHS A | |
1081 OUT01 LDA TRCS | |
1082 BITA #TDRE | |
1083 BEQ OUT01 | |
1084 PULS A | |
1085 STA TRANS | |
1086 RTS | |
1087 BRKEEE PSHS A | |
1088 BRK03 LDA TRCS | |
1089 BITA #ORFE | |
1090 BEQ BRK05 | |
1091 LDA RECEV | |
1092 BRA BRK03 | |
1093 BRK05 BITA #RDRF | |
1094 PULS A | |
1095 RTS | |
1096 * | |
1097 LDA #CNTL1 | |
1098 STA RMCR | |
1099 LDA #CNTL2 | |
1100 STA TRCS | |
1101 INTEEE EQU * | |
1102 RTS | |
1103 | |
1104 | |
1105 | |
1106 ****************************** | |
1107 ****************************** | |
1108 END |