DOSパソコン・コンプレックスⅢ

仮想マシンでDOSを動かすだけではつまらない。実機で動かしたい。

今年を境にしてPCのUEFI(Unified Extensible Firmware Interface)からCSM(Compatibility Support Module)サポートが終了していく。CSMが無くなるとMBR起動ができなくなる。MBR起動ができないとUEFI起動に対応していないOSが起動できない。UEFI起動に対応していないOSとはWindowsならWindows7より前のXP以前。当然DOSも含む。今、PC実機でDOSを動かせなければ、近い将来のPCでDOSを実機動作させることはさらに困難になるだろう。ちょっと何言ってるのか分からんけど、とにかくレトロPCを調達することなく、いまどきのPCで仮想じゃなくリアルモードなDOS6環境を動かしたい。

こういうのを作る。エミュレータの全画面表示ではなくて、Core i5-5200UのネイティブなPC DOS J6.3/Vで動くDOS文書プログラムⅢ。


手持ちPCでMBR起動ができる新しめのはIntel DQ77MKベースの第三世代なi7-3770マシン(決して新しくは、無い)とHPの法人モデルノートPCで第五世代Broadwell Core i5-5200のもの、他使えるのはDELLの第9世代i7のPCなど。それぞれDOSを起動できる環境にしてみる。作ってもまともには使わないのは分かってるからUSBメモリからの起動にする。

MBR起動可能なUSBメモリを作るには①HPのフォーマッタやRufusなどのツールを使う、②実機のUSB-FDDで起動してUSBメモリをFDISKする、③実機のDOSマシンや仮想PCのHDDをイメージコピーするなどいくつかの方法があるが、①はオリジナルのブートコードではなくなる、②USB-FDD起動ができない実機が増えている、③はパーティションの調整が完全にはできない、など再現性に難があるので、今回は仮想PCソフトのVMwareで物理ディスクに直接DOSをインストールすることで、そのままMBR起動可能なFDISK形式のUSBメモリとして作成する。その後CONFIG.SYSなどを調整して実機に合わせる。

まず、VMwareの物理ディスクへのリンク機能を使って仮想ディスクを作成。それを仮想PCのプライマリマスターのHDDとして接続。VMwareの注意点としてハードウェア→プロセッサ→IOMMU(IOメモリ管理ユニット)を仮想化 を有効にしておかないと、起動時に「物理ディスクはすでに使用されています。」と表示されて仮想マシンが起動しない。他のデバイスとして、FDDを1基接続し、DOSの起動FDイメージを使って起動。あとはインストーラにまかせると仮想HDDを通して物理USBメモリにDOSがインストールされる。このときMBR、パーティションも作成される。インストーラに任せず、手動でFDISK /MBR、FDISK、FORMAT /Sのあと、既存のDOSインストール済みのHDDからXCOPYするとか、Norton Ghost (2003以下)でHDD全体コピーしても良い。USBメモリに仮想マシンで一通り動くことを確認したら実機用にCONFIG.SYS、AUTOEXEC.BATを編集する。主にHIMEM.SYS、EMM386.EXE、$FONT.SYS、$DISP.SYSあたりの設定変更が必要になる。編集はWindowsマシンでも可。(ロングファイル名でディレクトリエントリが少々おかしくなるが動作に大きな問題はないから気にしない。)

■DQ77MK
・CONFIG.SYS

BUFFERS=20
FILES=30
DOS=HIGH,UMB
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM FRAME=D000 I=B000-B7FF I=D000-E7FF
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\$DISP.SYS /HS=LC
DEVICEHIGH=C:\DOS\$IAS.SYS
DEVICEHIGH=C:\DOS\ANSI.SYS /X
INSTALL=C:\DOS\IBMMKKV.EXE /M=S /Z=4 /C /L /J=90 /S=C:\DOS\MULTDICT.PRO /U=C:\$USRDICT.DCT
DEVICEHIGH=C:\DOS\POWER.EXE

■HP ProBook
・CONFIG.SYS

BUFFERS=20
FILES=30
DOS=HIGH
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS /M:1
DEVICE=C:\DOS\EMM386.EXE RAM FRAME=D000 I=B000-B7FF I=D000-E7FF
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\$DISP.SYS /HS=LC
DEVICEHIGH=C:\DOS\$IAS.SYS /X=0
DEVICEHIGH=C:\DOS\ANSI.SYS /X
INSTALL=C:\DOS\IBMMKKV.EXE /M=S /Z=4 /C /L /J=90 /S=C:\DOS\MULTDICT.PRO /U=C:\$USRDICT.DCT
DEVICEHIGH=C:\DOS\POWER.EXE

■割と汎用 (DELLのノートやデスクトップ 第9世代i7の機械とかで確認)
・CONFIG.SYS

BUFFERS=20
FILES=30
DOS=HIGH
LASTDRIVE=H
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS /M:1
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\$DISP.SYS /HS=LC
DEVICEHIGH=C:\DOS\$IAS.SYS /X=0
DEVICEHIGH=C:\DOS\ANSI.SYS /X
DEVICEHIGH=C:\DOS\POWER.EXE
INSTALL=C:\DOS\IBMMKKV.EXE /M=S /Z=4 /C /L /J=90 /S=C:\DOS\MULTDICT.PRO /U=C:\$USRDICT.DCT

■共通
・AUTOEXEC.BAT

@ECHO OFF
SET COMSPEC=C:\DOS\COMMAND.COM
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
PROMPT $P$G
PATH C:\DOS
LH C:\DOS\KEYB.COM JP,932,C:\DOS\KEYBOARD.SYS

HP ProBookの場合は起動時にEscキーを1回押しBoot Optionsから起動デバイスを指定する。ここではUSB Hard Drive1として認識した。USB-FDDは接続してFDメディアを入れておくとDOSがA:ドライブとして認識する。FDメディアを起動時に入れておかないと認識しないのと、イジェクト検出ができなくてディスク入れ替え時はCtrl-Cを押す必要がある。こんなCP/Mのウォームリブートみたいな操作はナイコン時代のPC98で電源を切るときの作法以外ではやったことがない。FDDは2基つないでも1基しか認識しない。HIMEM.SYSの機種判別が失敗するらしく、/M:1で機種指定(IBM-PC)が必要。EMM386.EXEでEMSは使えるがUMBが使えなかった。$IAS.SYSがDOS=UMBとは別に/X=0オプションでUMBを使わないようにする指定が必要だった。

DQ77MKは起動時にF10を押してUSBメモリを選択。DQ77MKはとてもよく動く。EMSもUMBも使えるし、USB-FDDを2基接続してA:とB:ドライブそれぞれで認識、イジェクト検出も問題なし。ここまでできるなら「PC/AT互換機のDOS/Vマシン」と呼んでも差し支えないだろう。

何がどうすごいか、わかる人しかわからないが、32ビットDPMIサーバも動く。

今回もEMM386.EXEまわりの設定がポイント。HPやDELLのマシンでは時間がなくてあまり試せなかったからかUMBを安定して使うことができなかった。問題もいろいろあるけど、どのCSM対応UEFIのPCでも今回の目的であるPCDOS J6.3/VとDOS文書プログラムを動かすことができた。レトロPC趣味なのに今のPC実機でもそれなりに動かせるっていうのは、御三家やPC-9801派でなくてDOS/V派で良かったことだと思う。(意味深



今回の楽しい珍問答 (インスパイヤ元)

『今時のPCで、MS-DOSを起動して、昔のDOSアプリを走らせたい』- 価格.com
https://bbs.kakaku.com/bbs/-/SortID=19051508/

質問者: 今のPCでDOSの日本語エディタが使いたいんです。

回答者K: CONFIG.SYSが書けるかどうかですよ! 今どきのビデオチップはドライバがDOS/Vに対応してないけどね!! ← VESA BIOSって知ってる? 超最近はUEFI対応で問題になってるけどね。

回答者H: 無理!不可!! エミュレーター!!! ← MBR起動対応なら単独でDOS起動できるし。シアトルDOSとかdosemuとかさらっと出てくる割には浅くない?

回答者P: EMSとか何だっけ。USBって使えたっけ。 ← もともと286以上なAT互換機にハードEMSはいらないし、USBデバイスはBIOS接続で使えるし。PCDOSのIBMBIO.SYS組み込みデバイスはBIOS経由でアクセスするから云々…

回答者R: なぜかPC-9801シリーズの歴代MS-DOSをリストアッープ! 現在のMS-DOSは32ビット、64ビットだから日本語エディタくらい動くと思うよ!!!! ←レベルの高い珍回答。PC98遣いが言うことは当時から全く理解できなくて今もコンプレックス。

質問者: 萎えました。 日本語DOS環境あきらめます。

まあ揃いも揃って適当なこと書いてますねぇ。。質問者が意気消沈してしまうという残念な結果に。今どきのマシンでもCSMサポートがあればとりあえずMBR起動はできるから、あとはDOSの設定テクニックと運しだい。

仮想PCソフトでDOS/Vを動かすまとめ。PCDOS 2000日本語版+IBM Windows3.1J、OS/2 Warp日本語版を動かすための2020年時点でのファイナルアンサー。

・VirtualBox
これは第一の候補になる。VESA BIOS(VBE)で高解像度表示可能。Windows/Linux/macosのマルチプラットフォームでOSS。PCDOS+Windows3.1J、OS/2 Warp 4(3はVGA限定)が無難に動く。VBoxSVGAならDOS/Vテキスト表示もそこそこ早い。でもビデオが独自仕様になっていることは問題点。

・VMware Workstation/Player
次の候補としてはVMware。グラフィックをVGA以下に限定するなら一番の候補。問題点はSVGAでは動かないこと。VGA以下に限定すればPCDOS+Windows3.1J、OS/2 Warp 3/4が無難に動く。

・Bochs
完全なソフトウェアエミュレーションでDOS+Windows3.1Jを動かすならばこれ。高解像度グラフィックは実在のCLDGを模倣できる。日本語キーボードを使うにはパッチが必要だが、英語キーボードに限定すれば問題にはならない。問題点としてはOS/2 Warpの日本語WIN-OS/2が動かないこと。

この3ソフト以外はより苦労を伴うから避けた方が良い。仮想PCソフトでDOS/Vを動かしたい理由は様々だろうが、当時のゲームをするか、当時の環境でしか動かないFA機器を動かすとか開発ツールで保守するか、そうでなければOSマニアだろう。VGAに限定すれば特にVMwareは一度動いてしまえば不安定さが全くなく、Win95時期以降の実機より安定。

・VirtualPC
再現性は最も良いが現行Windowsではサポートが終了している。VirtualPC2004のまま動かすなら選択肢に入る。

・Hyper-V
VirtualPCの後継ではあるが、DOSはサポートされておらず起動はするがUMBが全く使えない。

・qemu
ver0.9くらいまではまあまあ動いたが、現行バージョンはダメ。動かない。

・pcem
DOS/Vの一部のソフトでマウスの挙動が異常で使えない。

・IBMulator
英語環境でも日本語環境でもマウスの挙動がおかしい。

・DOSBox
DOS/V環境は使いものにならない。

DOSパソコン・コンプレックスⅢ」への1件のフィードバック

  1. ピンバック: の回想録

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中