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