annotate poster/os9/os9s.html @ 8:7fd82a802a66

add os9
author anatofuz
date Fri, 19 Apr 2019 18:23:10 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
1 <html>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
2 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
3 <head>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
4 <STYLE type="text/css">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
5 .main { width:100%; }
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
6 .side { top:0px; width:0%; position:fixed; left:80%; display:none}
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
7 </STYLE>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
8 <script type="text/javascript">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
9 function showElement(layer){
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
10 var myLayer = document.getElementById(layer);
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
11 var main = document.getElementById('mmm');
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
12 if(myLayer.style.display=="none"){
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
13 myLayer.style.width="20%";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
14 main.style.width="80%";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
15 myLayer.style.display="block";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
16 myLayer.backgroundPosition="top";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
17 } else {
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
18 myLayer.style.width="0%";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
19 main.style.width="100%";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
20 myLayer.style.display="none";
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
21 }
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
22 }
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
23 </script>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
24 <title>OS9/GAME09/FORTH/TL1</title>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
25 </head>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
26 <body>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
27 <div class="main" id="mmm">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
28 <h1>OS9/GAME09/FORTH/TL1</h1>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
29 <a href="#" right="0px" onclick="javascript:showElement('menu')">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
30 <span>Menu</span>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
31 </a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
32 <a href="#" left="0px" onclick="javascript:showElement('menu')">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
33 <span>Menu</span>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
34 </a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
35
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
36 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
37
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
38 <author> 河野真治</author>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
39
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
40 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
41 <h2><a name="content000">OS-9 の特徴</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
42 Microware 社によりMotorola のMC6809用に作られた 8bit OS。1980年初頭。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
43 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
44
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
45 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
46 Module と言う単位をメモリ上にどこに配置しても良い
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
47 Time sharing を採用した並列実行(concurrent) (平行(parallel)ではない)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
48 Unix like なshell とpipe
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
49 Basic09 というPascal likeな言語を持つ。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
50
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
51 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
52
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
53 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
54 <h2><a name="content001">MC6809</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
55
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
56 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
57 <center><img src="mc6809.gif"></center>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
58 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
59
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
60 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
61 <h2><a name="content002">Level 1/2</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
62 level 1 ROM上のOS9 p1 kernel で動作する。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
63 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
64 level 2 MMUで2Mbyteのメモリを使える
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
65 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
66 アドレス変換に対応し、512kメモリを使用できる。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
67
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
68 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
69
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
70 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
71 <h2><a name="content003">何をするか</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
72
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
73 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
74 Emulator 上で OS-9 を動かそう。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
75 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
76
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
77 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
78 できれば Level 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
79
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
80 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
81 なんで?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
82 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
83 昔、自作のに乗っけれなかった。せっかく5万円も出して買ったのに。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
84 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
85 残念ながらハードはもうないけど、Emulator なら?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
86 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
87 20年前に「年取ったらやろう」と思っていたが、そろそろやるべき。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
88 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
89
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
90 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
91 <h2><a name="content004">OS9 with MMU</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
92 <img src="fig/os9mmu.svg">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
93
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
94 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
95
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
96 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
97 <h2><a name="content005">kernel構成</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
98 <img src="fig/os9.svg">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
99
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
100 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
101
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
102 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
103 <h2><a name="content006">kernel構成</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
104 OS9p1
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
105 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
106 system callと割り込み処理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
107 Module 発見と管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
108
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
109 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
110 OS9p2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
111 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
112 メモリ管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
113 Task管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
114 Signal
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
115
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
116 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
117
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
118 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
119 <h2><a name="content007">kernel構成2</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
120
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
121 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
122 IOMan
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
123 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
124 SCF/RBFと device driver とdescriptor の登録
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
125
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
126 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
127 SCF
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
128 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
129 sequencial file io manager
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
130
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
131 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
132 RBF
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
133 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
134 randome block file io manager
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
135 file system管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
136
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
137 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
138
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
139 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
140 <h2><a name="content008">Runtime module</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
141
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
142 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
143 init
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
144 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
145 boot用初期データ
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
146
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
147 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
148 sysgo
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
149 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
150 clockとShellの起動
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
151
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
152 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
153 Clock
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
154 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
155 timer 割り込み
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
156 日付計算
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
157
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
158 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
159
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
160 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
161 <h2><a name="content009">Runtime module 2</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
162
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
163 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
164 Shell
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
165 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
166 Device descriptor
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
167 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
168 D0
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
169 Term
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
170
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
171 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
172 Device driver
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
173 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
174 PTY
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
175 PDisk
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
176
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
177 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
178
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
179 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
180 <h2><a name="content010">nitros9</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
181
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
182 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
183 OS9 をdisassemble したものらしい
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
184 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
185 Tandy Coco 上で動いていたらしい
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
186 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
187 ライセンス的にはだめかも
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
188 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
189 大目に見られてる?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
190 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
191
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
192 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
193 <h2><a name="content011">Emulator</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
194 sbc09というアセンブラEmulator上に実装して動作させた
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
195 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
196 sbc09 を mmu 対応にして level 2 まで動かした。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
197 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
198 仮想RBF (random block filer manager )
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
199 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
200
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
201 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
202 Unix 上のファイルを Emulator 側からos9のファイルシステムとして見せる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
203
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
204 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
205
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
206 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
207 <h2><a name="content012">OS-9 上のソフト</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
208
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
209 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
210
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
211 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
212 BASIC09
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
213 FORTH
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
214 BASIC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
215 GAME09
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
216 TL/1
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
217
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
218 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
219
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
220 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
221 <h2><a name="content013">FORTH</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
222
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
223 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
224 PostScript の元になった言語
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
225 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
226 関数単位
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
227 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
228
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
229 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
230 assembler を自分でかける
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
231 : ACCEPT-TEST
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
232 CR ." PLEASE TYPE UP TO 80 CHARACTERS:" CR
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
233 ABUF 80 ACCEPT
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
234 CR ." RECEIVED: " [CHAR] " EMIT
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
235 ABUF SWAP TYPE [CHAR] " EMIT CR
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
236
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
237 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
238
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
239 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
240 <h2><a name="content014">GAME09</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
241
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
242 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
243 VTLの日本での実装
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
244 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
245 記号的なBASIC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
246 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
247 コンパイラとかが書かれた
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
248 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
249
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
250 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
251 100 "ADDRESS=" A=?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
252 110 "TO =" D=? @ !=900
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
253 120 @=(A&gt;D) #=-1
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
254 900 / ??=A .=20 E=A !=1000
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
255 910 $=$D .=5 B=0,5 ;=E+B&gt;=A .=3 #=930
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
256 920 ?$=E:B) " "
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
257
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
258 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
259 割とダメ。行番号なしの rvtl というのがある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
260 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
261
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
262 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
263 <h2><a name="content015">Micro C</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
264 mohta氏と手塚氏の作った 6809 用の整数Cコンパイラ。構造体がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
265 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
266
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
267 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
268 04D7: * getchar()
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
269 04D7: * { return getc(stdin);
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
270 04D7: getchar
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
271 04D7: 3440 PSHS U
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
272 04D9: 33E4 LEAU ,S
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
273 04DB: EC20 LDD 0,Y
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
274 04DD: 3406 PSHS D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
275 04DF: 17FFB7 LBSR getc
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
276 04E2: 3262 LEAS 2,S
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
277 04E4: * }
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
278 04E4: 35C0 PULS U,PC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
279
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
280 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
281 これを CbC にしたものがある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
282 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
283
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
284 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
285 <h2><a name="content016">TL/1</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
286 大西氏のコンパイラ言語、データ型はByteとByte Arrayのみ。手続きと関数がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
287 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
288
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
289 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
290 PROC WAIT
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
291 FUNC TIME
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
292 %--- MAIN ---
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
293 VAR MMI,MMJ,MMK
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
294 BEGIN
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
295 WRITE(1:ASCII($A))
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
296 MMI:=1 MMJ:=2 MMK:=3
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
297 WAIT(4,5)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
298 WRITE(1:MMI,CRLF)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
299 END
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
300 %-- PROCEDURE WAIT --
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
301 WAIT(WWA,WWB)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
302 VAR WWJ,WWK
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
303 BEGIN
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
304 WWJ:=4
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
305 WWK:=TIME(6,7)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
306 WRITE(1:MMI,WWJ,WWA,WWB,WWK,CRLF)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
307 END
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
308
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
309 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
310 型がないのは現代的な気がする
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
311 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
312
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
313 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
314 <h2><a name="content017">TL/1のオブジェクト</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
315
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
316 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
317 020B: 9F 16 STX &lt;$16
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
318 020D: 30 C9 01 C2 LEAX +$01C2,U
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
319 0211: 86 01 LDA #$01
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
320 0213: A7 00 STA +$00,X Mainの大域変数
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
321 0215: 86 02 LDA #$02 =局所変数
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
322 0217: A7 01 STA +$01,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
323 0219: 86 03 LDA #$03
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
324 021B: A7 02 STA +$02,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
325 021D: 86 04 LDA #$04
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
326 021F: A7 03 STA +$03,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
327 0221: 86 05 LDA #$05
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
328 0223: A7 04 STA +$04,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
329 0225: 86 03 LDA #$03
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
330 0227: 17 00 0F LBSR $0239
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
331 022A: 86 01 LDA #$01
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
332 022C: 97 01 STA &lt;$01
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
333 022E: A6 00 LDA +$00,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
334 0230: 17 FE 3A LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
335 0233: 17 FE C6 LBSR $00FC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
336 0236: 16 FE D6 LBRA $010F
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
337 0239: AF E3 STX ,--S
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
338 023B: 30 86 LEAX A,X 呼出側の局所変数の確保
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
339 023D: 86 04 LDA #$04
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
340 023F: A7 02 STA +$02,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
341 0241: 86 06 LDA #$06
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
342 0243: A7 04 STA +$04,X 局所変数
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
343 0245: 86 07 LDA #$07
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
344 0247: A7 05 STA +$05,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
345 0249: 86 04 LDA #$04
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
346 024B: 17 00 24 LBSR $0272
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
347 024E: A7 03 STA +$03,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
348 0250: 86 01 LDA #$01
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
349 0252: 97 01 STA &lt;$01
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
350 0254: A6 20 LDA +$00,Y 大域変数
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
351 0256: 17 FE 14 LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
352 0259: A6 02 LDA +$02,X 呼び出した方の引数
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
353 025B: 17 FE 0F LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
354 025E: A6 00 LDA +$00,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
355 0260: 17 FE 0A LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
356 0263: A6 01 LDA +$01,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
357 0265: 17 FE 05 LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
358 0268: A6 03 LDA +$03,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
359 026A: 17 FE 00 LBSR $006D
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
360 026D: 17 FE 8C LBSR $00FC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
361 0270: 35 90 PULS PC,X
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
362
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
363 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
364
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
365 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
366 <h2><a name="content018">Gears OS の参考になる?</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
367
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
368 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
369 module は Code Gear 。Data Gear を導入する。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
370 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
371 OS 自体を module 構成にする
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
372 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
373 module を memory に mapping する
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
374 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
375 module 間の通信
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
376 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
377 module の生態系 (version 管理 )
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
378 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
379
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
380 <pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
381 動く module の version の組合せ
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
382
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
383 </pre>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
384 TL/1 言語はシンプルに
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
385 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
386 型はメタレベルで付ける
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
387 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
388 大きなデータは write などの通信で行う
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
389 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
390
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
391 <hr/>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
392 <h2><a name="content019">さらに</a></h2>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
393 qemu で TLB base で動かす
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
394 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
395 interpreter base の Emualtor ではなく、compile base にする
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
396 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
397 nitros-9 のソースコードのコメントを増やす
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
398 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
399   まぁ、あんまりやりすぎないように
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
400 <p>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
401 </div>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
402 <ol class="side" id="menu">
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
403 OS9/GAME09/FORTH/TL1
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
404 <li><a href="#content000"> OS-9 の特徴</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
405 <li><a href="#content001"> MC6809</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
406 <li><a href="#content002"> Level 1/2</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
407 <li><a href="#content003"> 何をするか</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
408 <li><a href="#content004"> OS9 with MMU</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
409 <li><a href="#content005"> kernel構成</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
410 <li><a href="#content006"> kernel構成</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
411 <li><a href="#content007"> kernel構成2</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
412 <li><a href="#content008"> Runtime module</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
413 <li><a href="#content009"> Runtime module 2</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
414 <li><a href="#content010"> nitros9</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
415 <li><a href="#content011"> Emulator</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
416 <li><a href="#content012"> OS-9 上のソフト</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
417 <li><a href="#content013"> FORTH</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
418 <li><a href="#content014"> GAME09</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
419 <li><a href="#content015"> Micro C</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
420 <li><a href="#content016"> TL/1</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
421 <li><a href="#content017"> TL/1のオブジェクト</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
422 <li><a href="#content018"> Gears OS の参考になる?</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
423 <li><a href="#content019"> さらに</a>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
424 </ol>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
425
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
426 <hr/> 河野真治 / Tue Apr 16 16:57:59 2019
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
427 </body></html>