annotate os9/level2/cmds/fixbasic.pl @ 97:5aeff8abca9c

add echo control on sbc09
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 27 Dec 2018 01:17:31 +0900
parents f20bf9874697
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
90
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #!/usr/bin/perl
97
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
2 #
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
3 #
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
4 # the basic source include direct ACIA access
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
5 # which is not allowed in OS-9
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
6 # sbc09 emulator on OS-9, echos input in default
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
7 # the basic assumes input has no echo, so call echo
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
8 # off at initialization
90
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 while(<>) {
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 next if (/^ACIA/ .. /^TDRE/) ;
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 next if (/^TSTBRK/ .. /^ END/) ;
91
1de7b2760b9d fix basic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
13 if (/^CLEAR/) {
97
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
14 print <<"EOFEOF";
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
15 JSR \$24 ;; echo off
91
1de7b2760b9d fix basic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
16 EOFEOF
1de7b2760b9d fix basic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
17 }
97
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
18 # if (/^GL02/) {
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
19 # print "GL02\n"; # do not echo input
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
20 # next;
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
21 # }
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
22 if (/FDB\s+CLEAR/) {
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
23 print;
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
24 print <<"EOFEOF";
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
25 FCC /BYE/
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
26 FCB EOL
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
27 FDB EXIT
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
28 EOFEOF
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
29 next;
91
1de7b2760b9d fix basic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
30 }
90
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 print;
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 }
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
97
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
34 print <<"EOFEOF";
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
35 EXIT
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
36 JSR \$24 ;; echo off
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
37 JSR \$27 ;; echo on
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
38 JMP \$2a ;; exit
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
39
90
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 TSTBRK bsr BRKEEE
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 bcc GETC05
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 GETCHR bsr INEEE
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 CMPA \#ETX ; 3
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 BNE GETC05
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 JMP BREAK
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 INTEEE
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 GETC05 RTS
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 PUTCHR INC ZONE
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 JMP OUTEEE
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 INEEE PSHS D
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 JSR 0
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 STB ,S
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 PULS D,PC
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 OUTEEE PSHS D
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 TFR A,B
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 JSR 3
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 PULS D,PC
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 BRKEEE PSHS D
92
faa3bd1d062a fix break on basic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
63 JSR \$F
90
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 PULS D,PC
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 ******************************
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 END
ec33be78865e add basic to os9 level2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 EOFEOF
97
5aeff8abca9c add echo control on sbc09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 94
diff changeset
69