annotate poster/os9/os9.ind @ 18:1fc9d0bd924f default tip

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 20 Apr 2019 18:06:35 +0900
parents 7fd82a802a66
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
1 -title: OS9
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
3 -author: 河野真治
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
4
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
5 --OS-9 の特徴
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
6
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
7 Microware 社によりMotorola のMC6809用に作られた 8bit OS。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
8
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
9 Module と言う単位をメモリ上にどこに配置しても良い
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
10 Time sharing を採用した並列実行(concurrent) (平行(parallel)ではない)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
11 Unix like なshell とpipe
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
12 Unified file system ( Device descriptor, Device driver)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
13 Floppy disk 128k 階層型ファイルシステム
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
14 Basic09 というPascal likeな言語を持つ。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
15
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
16
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
17 --MC6809
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
18
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
19 <center><img src="6809.gig"></center>
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
20
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
21
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
22 --Level 1/2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
23
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
24 level 1 ROM上のOS9 p1 kernel で動作する。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
25 level 1 MMUで2Mbyteのメモリを使える
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
26
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
27 -- Module
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
28
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
29 87CD から始まり、CRC24 で検証されたコードとデータの固まり
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
30 Relocatable
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
31 entry point とモードフラグ
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
32
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
33 ROMに常駐できる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
34
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
35 8bitなのでメモリ空間は64k(16bit addressing)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
36
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
37 8080/6809 は 8bit CPUというよりは、8bit busな16bit CPU
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
38
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
39 --何をするか
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
40
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
41 Emulator 上で OS-9 を動かそう。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
42
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
43 できれば Level 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
44
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
45
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
46 --なんで?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
47
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
48 昔、自作のに乗っけれなかった。せっかく5万円も出して買ったのに。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
49
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
50 残念ながらハードはもうないけど、Emulator なら?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
51
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
52 20年前に「年取ったらやろう」と思っていたが、そろそろやるべき。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
53
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
54
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
55 --level 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
56
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
57 アドレス変換に対応し、512kメモリを使用できる。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
58 ユーザ空間とシステム空間を別にできる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
59
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
60 8k単位で16task*64k分を512kから自由に割り振れる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
61
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
62 TLB base ではなく、変換機構をメモリで実装する方式
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
63
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
64 --kernel構成
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
65
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
66 OS9p1
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
67 system callと割り込み処理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
68 Module 発見と管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
69
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
70 OS9p2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
71 メモリ管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
72 Task管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
73 Signal
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
74
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
75 --kernel構成2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
76
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
77 IOMan
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
78 SCF/RBFと device driver とdescriptor の登録
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
79
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
80 SCF
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
81 sequencial file io manager
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
82
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
83 RBF
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
84 randome block file io manager
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
85 file system管理
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
86
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
87 --Runtime module
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
88
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
89 init
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
90 boot用初期データ
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
91
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
92 sysgo
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
93 clockとShellの起動
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
94
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
95 Clock
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
96 timer 割り込み
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
97 日付計算
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
98
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
99 --Runtime module 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
100
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
101 Shell
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
102
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
103 Device descriptor
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
104 D0
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
105 Term
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
106
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
107 Device driver
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
108 PTY
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
109 PDisk
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
110
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
111 --nitros9
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
112
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
113 OS9 をdisassemble したものらしい
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
114
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
115 Tandy Coco 上で動いていたらしい
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
116
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
117 ライセンス的にはだめかも
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
118
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
119 大目に見られてる?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
120
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
121 --Emulator
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
122
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
123 sbc09というアセンブラEmulator上に実装して動作させた
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
124
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
125 Java版を作った人がいるらしい
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
126
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
127 Unix上のOS9 emulator があるが動作せず
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
128
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
129 osnineという途中まで作られたものがあった
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
130
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
131 level 2 まで動かす?
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
132
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
133 --利点と欠点
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
134
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
135 初期の8bit用のUnix like OS
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
136
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
137 8bitのOSでMMUを持つものとしては唯一 (M/PMもあったが)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
138
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
139 comapct で信頼できるmodule構成
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
140
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
141 CRCの意味は不明
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
142
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
143 メモリ領域はmodule構成ではない
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
144
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
145 --利点と欠点 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
146
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
147 PICのせいもあり、比較的低速
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
148
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
149 real-time scheduling を持ってない
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
150
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
151 プロセス間通信は貧弱 (signal のみ)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
152
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
153 68K用などは現在も生きてる製品
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
154
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
155 --level 2
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
156
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
157 sbc09 を mmu 対応にして level 2 まで動かした。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
158
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
159 nitros9 という「まだメンテされている(〜2014)」ソースに対応した。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
160
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
161 Coco (tandy color computer)
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
162
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
163 0xfe00-0xffff は MMU による影響を受けない
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
164 ROM切り替えで、2MBのfull ramとして使える
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
165
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
166 --vrbf
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
167
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
168 仮想RBF (random block filer manager )
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
169
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
170 Unix 上のファイルを Emulator 側からos9のファイルシステムとして見せる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
171
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
172 os9はopen されたファイルを path descriptor というioman が管理するデータ構造で実装する。それに対応する
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
173 構造体を vrbf 内で用意する。256個と決まっているので固定配列で良い。そこに FILE *を置けばよい。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
174
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
175 os9はディレクトリを普通のファイルとして開いてしまうので、os9のディレクトリ構造を作って返す。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
176
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
177 fmemopen というメモリ上のバッファを FILE* として開く機能を使う
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
178
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
179 --vrbf 続き
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
180
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
181 dir -e はファイルの属性を持つ特別なsector (file descriptor)を getstat のundocumented commandを
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
182 使ってアクセスするので、それを返す必要がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
183
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
184 os9は current directory をLSN( 24bit logical sector number)で持つが、面倒なので、current directory 名を256個のFIFOっで管理。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
185 同じ名前は再利用。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
186
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
187 path descriptor でcurrent directoryを管理してくれれば良いのだが、そうでなくて、LSN。しかも、path descriptor と別。なので、
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
188 別に管理する必要がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
189
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
190 --level2 での割り込み
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
191
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
192 時分割処理に必要な clock module は割り込みを行う。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
193
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
194 割り込み時には、どのmmuにいるかわからない。なので、
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
195
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
196 os9にentry割り込みルーチンを登録する
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
197 os9 が割り込み後mmuを設定してentry割り込みルーチンを呼び出す
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
198 engry割り込みルーチンで、serviceタスクを SSvcIRQに登録して jmp [D.XIRQ]
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
199 すると iret してくれる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
200 os9 側が暇な時に、serviceタスクをsystem mode で呼び出す
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
201 service は処理の後、task 切り替えをする用に jmp [>D.Clock] する
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
202
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
203
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
204
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
205 --level2 のoverhead
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
206
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
207 vrbf はサービスするprocessとは別なシステムメモリ空間にいるので、データは copy sysetm callを使う必要がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
208
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
209 vrbf のC側からはos9のsystem callを呼べないので、mmu を一時的に作って、それを使ってアクセス。mmuの情報はprocess descriptor 上にある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
210
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
211 call するプロセスのレジスタはsystem spaceにコピーされていて、そこに値を書き込むと返される。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
212
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
213 hook がたくさんあり、indirect jump ばっかりが増える。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
214
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
215 Coco ではIOは全部のプロセスに見えてしまってる。特に保護されてない。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
216
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
217 --module 間のlink
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
218
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
219 os9 のlinkは、system に登録されるだけ。同じメモリ空間に登録されるとは限らない。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
220
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
221 同じ空間に登録されれば、module にアクセスできる。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
222
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
223 module に付属している固定メモリはある
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
224
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
225 malloc されたものは自由に取り扱えるが、どこにあるかはprocess毎に異なる
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
226
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
227 --OS-9 上のソフト
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
228
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
229 BASIC09
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
230 FORTH
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
231 BASIC
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
232 GAME09
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
233
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
234 --Micro C
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
235
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
236 mohta氏と手塚氏の作った 6809 用の整数Cコンパイラ。構造体がある。
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
237
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
238 かなり動いているんですが...
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
239
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
240 --さらに
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
241
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
242 qemu で TLB base で動かす
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
243
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
244 interpreter base の Emualtor ではなく、compile base にする
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
245
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
246 nitros-9 のソースコードのコメントを増やす
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
247
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
248   まぁ、あんまりやりすぎないように
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
249
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
250
7fd82a802a66 add os9
anatofuz
parents:
diff changeset
251