[osask 6822] DOSASK.

  こんばんは、川合です。

  今までずっと「秘密プロジェクト」で通してきた、開発プロジェクト
についての話題です。

  こいつのコードネームは、「DOSASK」です。これは、T-OSASKや、
N-OSASKの親類のようなものと思いきや、そうではないのです。

---

  11月の下旬、僕はbtcfでOSASKを起動するのにすっかり慣れてしまい
、pcctolを使うためにDOSを起動するのが、やたらと遅く感じるように
なりました。DOSもHDDブートにすれば十分に速いんだと思いますが、僕
はブートセレクタが嫌いなので、結局DOS起動FDを作ってここからちん
たらとブートしていました。

  それで最初は、Win95からPCカードをダイレクトにいじる道を模索し
たのですが、結局よくわからなくてこれは失敗しました。

  ということで、じゃあDOSをbtcf対応にしようと思いました(そうす
ればDOSをCFに入れられるので、ブートが格段に速くなる)。いずれ
KHBIOS対応のFreeDOSを作るつもりなんだから、今から勉強しておくの
は悪くないと思ったのです。

  しかし、FreeDOSはそんなにいいDOSなのかという考えが頭をよぎり、
そもそもDOSなんてシングルタスクだし、ちっこいし、仮想化も仮想記
憶も保護例外管理もデバイスの競合アクセス管理も、ほとんど何もしな
くていいわけなんだから、それくらいぱぱっと作ってみるかな、と思い
ました。

  もちろんいきなりFreeDOS級の立派なものは作れません。だけど骨格
を作っておいて、ちょっとずつ付け足していけばいいだけです。僕が作
るなら、たぶんかなりコンパクトになりそうです。

  ということで作り始めてしまいました。

  しかし2日目で、ふと思いました。なんでいまさら僕がリアルモード
プログラミングで苦労しなきゃいけないんだろう。プロテクトモードで
ドライバとか書きたいよ。・・・うん、じゃあ、OSのコアは完全に32bi
t化しよう。そしてアプリを動かすときだけリアルモード。INT(0x21);
が来たらプロテクトモードに切り替わる。これはDOS|Extenderの逆とい
うわけだな。そんで、RUN386無しで.EXPも走るようにしよう。OSがもと
もと32bitなんだから、こんなの簡単だよ。むしろ普通の.COMとか.EXE
のほうが面倒なくらいだ。

  このDOSASKは、僕が作る以上、やっぱりそれなりには仮想化されてお
り、基本的なグラフィックAPIやBEEP制御APIなどを(本来のDOSからみ
ると追加的に)積む予定です。ハードウェアを直接叩かずにこれらの
APIを呼び出せば、AT/TOWNS/PC98で共通に動作するDOSASKアプリが書け
ます(この場合、拡張子は普通の.COMや.EXEや.EXPになるが、普通の
DOSやDOSプロンプトでは動かないことになる)。

  またpcctolのコアも内包するので、pcctolなんて使わずに普通にcopy
コマンドでCFにアクセスできますし、ディスクイメージの中もアクセス
できます。SF16も問題無く読めますし、FDをSF16フォーマットしてもOK
です。・・・そういう意味では、DOSASKはpcctolのバージョンアップ版
といえなくもありません。つまりpcctolにアプリ実行機能を付加して、
あれこれ再整理したのがDOSASKなのです。

  日本語や韓国語も使えます。モードを切り替えると、SJISでもEUCで
もOKです。パスの区切りは\だけではなく/も使えます。改行コードも、
CRLFだけではなくLFのみでもOKです。

  さらに、開発ツールを用意しようと思いました。具体的にはGOが動け
ばいいのです。で、GOを.EXPにするためにリンカを準備したりしていま
したが(そうすればGOでGOをmakeすることで.EXP版のGOができる)、そ
の過程でwin32のコンソールアプリなら、動かすのはそんな難しくない
ということが分かりました。ということで、今のGOがそのまま走っちゃ
うような、そんな機能も付けます。これができると、edimgとかbim2bin
などの、僕が今まで作ってきた全部のツールがすぐに使えることになり
ます。しかもWinのDOSプロンプトでもそのまま使えるわけで、これは結
構重宝しそうな気がします。

  これだけ全部つけても、100KBにはならないでしょう(全角フォント
を除く)。それでbtcfやKHBIOSに対応するので、ブートスピードはかな
り速くなると思います。

  このDOSASKはKH-DOSというのが一般公開名で、もちろんこれはKL-01
で公開されます。どこにどんな風にバンドルしてもOKです。

  ということで、とりあえずここまでできました。とりあえずこれくら
いのアプリなら走ります。・・・と、今日言うのが予定だったのですが
、すみません、予定が狂って、まだそこまでできていません。

  いや、こういうのは実際に動くところを見せないと説得力がないので
説明と同時にリリースしたかったのですが、しかしこれ以上気を持たせ
ておくのも申し訳ないので、とりあえず不本意ながらこのように説明し
てしまうことにしました。

  主にがちゃぴん関係で時間を奪われ、さらにUSB対応ブートセクタの
開発と改良に取り組んでしまったので、2週間ばかりDOSASK開発ができ
ませんでした。ということで、DOSASKのリリースは、あと3週間くらい
先です(まだがちゃぴん関係で時間を奪われる予定なので)。

  ええと念を押しておきますが、最初は、本当にheboOSレベルです。ア
プリが起動するよーっていう感じです。最初は.COMだけなんだけど、バ
ージョンが上がるごとに.EXEや.EXPがサポートされたり、INT(0x21);で
サポートされるファンクションが少しずつ増えたりと、そういう感じで
す。

  ただOSASKよりも格段に速く開発が進むことだけは確実です。すらす
ら書けますから。自分で仕様を考えなくていいというのは本当に楽です
。

---

  この開発の過程で、前からやりたいと思っていた、汎用ストレージド
ライバの仕様がかなり固まりました。そう遠くないうちにこの仕様を
OSASKにも適合させて、デバイスドライバを共通化する予定です(KHBIO
Sもこのドライバ)。どんな32bitOSとも相性がよく、またドライバを作
るのも使うのも簡単になっています。これにたどり着くまでに3案くら
いを作っては壊し、作っては壊ししました。これも、DOSASKが遅れ気味
な理由の一つです(もともとこのドライバ仕様の策定は予定してなかっ
た)。

---

  ちょっと前にoSasKdotで、マイクロソフトがWindowsの値段を吊り上
げてしまったらどうしよう、みたいな話題がありましたが、たぶんDOSA
SKがあれば、今までのツールが動くので問題はないでしょう。DOSASKで
も動くようなテキストエディタを見つけてくれば、DOSASKだけでGOを使
って開発できちゃいます。まあなんだかんだいっても、結局はLinuxの
ほうがツールが充実していて快適かもしれないんですけどね。でも、
DOSASKのほうが軽いぞ!(たぶん)。

---

  あ、そうだ。btcfのブートセクタもUSB対応にしようかな。そしたら
すこし起動が速くなります。僕は今のところ使わないので(我が家で唯
一USBブート可能ながちゃぴんPCに、まだPCカードスロットを付けてな
いので)、リクエストがあればさっさとやります(多分半日くらい)。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/

ML番号でジャンプ
ML単語検索