MS-DOSからDOS/V起動ディスクを作った話

 お久しぶりです。MS-DOS実行形式を生成可能なCコンパイラ(ia16-elf-gcc)を見つけてテンションが上がってる海月です(C言語が書けるとは言ってない)。
 macOSのVBoxにWindows Meを導入しようと思って、Windows機から98の起動ディスクを引っ張ってきたのはいいんですけど、見事にファイルがぶっ壊れてて使い物になりませんでした。どうして(現場猫)。
 ここで思い出す。「仮想アプライアンスで移行してきたMS-DOSがあるじゃん。」
 ってなわけで、すでにセットアップ済みのMS-DOS環境から日本語DOSの起動に必要なファイルをコピーして起動ディスクを作っていきます。

作業開始

 まずはいつものやつ。新しいフロッピーイメージを用意して、C:\> FORMAT A: /S。 FORMATコマンドに /S オプションをつけてフォーマット後にシステムファイルの転送まで一気にやっちゃう。追加で拡張メモリ領域を利用するために、HIMEM.SYS, EMM386.EXEも転送しました。これでDOS自体は起動しますが、日本語表示ができないので「ダメ〜」(トム・ブラウン)。
 DOS/V環境が動作してるので、必要なドライバファイルの確認は簡単。C:\ > TYPE CONFIG.SYSで、起動時に組み込まれるドライバが見られます。細かく言えば色々違うけど、そこはご愛嬌。そもそもこのブログを読む人がいないので誰も気にしない。  

日本語ドライバの転送

 必要なドライバたちがわかったところで、早速ドライバを準備していきます。今回は以下のドライバを用意しました。たぶんこれだけあれば足りるはず。

  • BILING.SYS : バイリンガル対応に必要なドライバ
  • JDISP.SYS : ディスプレイドライバ
  • JFONT.SYS : フォントドライバ
  • JKEYB.SYS, JKEYBRD.SYS : 日本語キーボードドライバ
  • ANSI.SYS : エスケープシーケンス処理ドライバ
  • 各種フォントファイル(ANK16/24.FNT, KANJI16/24.FNT, GAIJI16/24.FNT)

 あとはフロッピー上にCONFIG.SYSとAUTOEXEC.BATを作成して、こいつらを起動時に読み込んであげるようにします。最終的にこんな感じになりました。

DEVICEHIGH=BILING.SYS
DEVICEHIGH=HIGHMEM.SYS
DEVICEHIGH=JFONT.SYS /P=A:\
DEVICEHIGH=JDISP.SYS /HS=LC
DEVICEHIGH=JKEYB.SYS /101 A:\JKEYBRD.SYS 
DEVICEHIGH=ANSI.SYS

 コンベンショナルメモリ領域を確保したいから全部ハイメモリ領域に展開したけど、本当にこれでいいのかわからん。でもとりあえず動くからヨシ!
 ここまでの作業が終われば最小構成での起動ができます。フロッピーしか読めないし、ファイルの編集もできないけど。

CDドライバとかその他もろもろ

 流石にテキストファイルの編集ができないのは不便なので、EDITが使えるようにします。とは言っても、C:\DOS\から EDIT.COM と QBASIC.EXE をコピーしてくるだけでOKです。楽チン。  また、セットアップのためにはCD-ROMが読めないとダメなので、例によってOAKCDROM.SYSを組み込んであげます。どこにでもいる野生の9xを捕まえて、OAKCDROM.SYS と MSCDEX.EXEを引っこ抜きましょう。終わったらCONFIG.SYSにDEVICEHIGH=OAKCDROM.SYS /D:CD001を、AUTOEXEC.BATにC:\DOS\MSCDEX.EXE /D:CD001 /L:Eをそれぞれ追記します。これでCDも読めます。
 インストールでもするかね、って思ったんですけどFDISKとFORMATができないとどうにもならんので、FDISK.EXEとFORMAT.EXEもコピー、っと。

 これで無事にDOS環境からインストールCDのSETUP.EXEが動くようになりました。早速Windows Meをインストールしよ......え、何?「Windows98からのアップグレード限定」...?
 そういうのは先に確認するようにしましょう。僕との約束だよ!ではまたいつか。