デバイス名のオープンに関する生 DOS/Win 9x DOS 窓/NT,2000,XP DOS 窓 (NVVDM) の非互換性について

無理やりまとめておく。

バイスオープン時にニセのドライブ名として使える文字(0x20〜0x7e の範囲でアルファベット以外):

  • 純正 DOS (PC/MS-DOS, Window 9x の起動ディスク)――制限はなさそう。
  • Windows 2000 SP4 のコマンドプロンプト(NTVDM)――0x20〜0x40 の数字と記号、および ` (0x60) は有効。0x5b〜0x5f, 0x7b 以降はエラー。
  • Windows 95,98SE GUI 起動時の DOS プロンプト――一部を除いて NTVDM とほぼ逆。0x20〜0x40 はエラー、0x5b〜0x60, 0x7b 以降は有効。
  • FreeDOS (kernel 2035a) ――すべてエラー。
  • OS/2 Warp V4 (FX00505) MVDM――純正 DOS と同じ。すべて通す。

なんというかこう、NT 系と 9x 系で使える文字がちょうど逆ってのがもどかしい。結局どちらでも通るのは ` (0x60) ぐらいだ。むしろ NTVDM がなぜこれを通すのか不思議だ。何かのバックドアでも仕込んであるんだろうか。

ということで、fepctrl に関してはニセドライブ名を 0x60 にすれば FreeDOS 以外は救えそうな気がしてきた(まだ DR-DOS とか ROMDOS とか PTS-DOS は試してないくせに)。
FreeDOS はどう対応したもんですかね。

  1. 実ドライブアクセスの可能性を許容し、ニセドライブ名を使わずにデバイスのオープンを試みる。
  2. あらかじめデバイスチェーンを辿り、ドライバが存在したときだけオープンする。
  3. FreeDOSカーネルを修正。DOS の仕様にあわせる。
  4. あきらめる。

あー。