OS2/MVDM/特定DOS

OS2/MVDM/特定DOS

MVDM の特殊なモード(という説明でいいんか?)。

仮想86 モードで VM を立ち上げ、ディスクイメージもしくは実際のディスク(FD/HDパーティション)から OS(バージョン 3.3 以上の DOS)を実際にブートする。 Linux でいうところの DOSEmu に近い位置付けだと思う。

なお、日本語版 OS/2 ではサポート対象外機能となっている。

支援ドライバ

\OS2\MDOS あたりに特定DOS 用のデバイスドライバやツールがいくつか入っている。 あらかじめ特定DOS の起動ディスク上にコピーしておく。

  • himem.sys
  • emm.sys
  • fsfilter.sys
  • exit_vdm.com

英語アプリで日本語表示&入力

なんかさー、特定DOS 使うとさー、(すくなくともウィンドウ表示のときは)DOS 側に日本語ディスプレイドライバとか入れてないのに日本語出ちゃうんだよねー。 逆にいうと英語モードの罫線とか記号とか出なくて画面がやや悲惨とか $DISP.SYS(あるいは JDISP.SYS)いれちゃうとけっこう危険があぶないとかいろいろあるわけで。
この際それを逆手にとって、英語アプリで擬似 DOS/V 対応気分でも味わおうかと。

手順:

まず必要なドライバやらツールやらを特定DOS 側にコピーしておく。

  • 上記のドライバ、ツール
  • $IAS.SYS, $IAS.SUB, IAESTUB.SYS (\OS2\MDOS か \OS2\MDOS\DOSV あたりに入っている)
  • ダミー日本語ディスプレイドライバ:dspstub.sys(dspstub_20060913.zip

次に特定DOS の CONFIG.SYS を設定する。

とりあえず手持ちの MS-DOS 6.2/V を使った例

LASTDRIVE=Z
BUFFERS=4
DOS=HIGH,UMB

device=himem.sys
device=emm386.sys /umb
devicehigh=fsfilter.sys
devicehigh=jfont.sys /u=0 /24=off
devicehigh=dspstub.sys
devicehigh=$IAS.sys
devicehigh=IAESTUB.sys
devicehigh=jkeyb.sys /106 jkeybrd.sys

あとは特定DOS セッション用のプログラムアイコンを作って、プロパティを設定する(プロパティ→セッション(S)→DOS設定(S)→すべてのDOS設定)。

項目
*DOS_MODE DOS/V
*FEP_MODE OS2_FS_FEP
DOS_HIGH HMA を使うならオン
DOS_STARTUP_DRIVE 起動したい DOS がインストールされているドライブのドライブ文字、もしくは FD イメージのパス名
DOS_UMB UMB を使うならオン
IDLE_SENSITIVITY 1 (設定しなくてもいいが、CPU 負荷がかなり悲惨なことに)

とりあえず Turbo Pascal 5.5(無料で落とせる英語版)の IDE を起動してみた。 Pascal だとシフトJIS 2バイト目の \ であまり悩ますにすむのでそこそこいけそうな気がしてきた。

…そういやダミードライバを 43/50 行モードに対応させてなかった。