こんばんは、川合です。 今までずっと「秘密プロジェクト」で通してきた、開発プロジェクト についての話題です。 こいつのコードネームは、「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/