Image: RyzenマシンでFreeDOS/Vを動かす

Ryzenマシンと言っても4年前に発売されたRyzen第1世代なのだが、この自作機で生のDOS/Vは動くか。結論は「動く」。海外にはRyzenでMS-DOSを動かす動画が出ていたが、日本で同じようにDOS/Vを動かしたという報告は、軽く調べた限り見つからなかった。

動く水準としては10数年前から変わっていない(詳細は後述)。2017年にIntelはUEFIからCSM (Compatibility Support Module) を削除していくと発表しており、実際、今年のIntel 500シリーズチップセット搭載マザーボードのビデオBIOSがCSMを含まなくなった。CSMが削除されれば、いよいよDOSを直接動かすことは不可能になる。もっとも、ASUSのサポート情報を読んだところでは、サードパーティーのグラボを乗せればCSMはまだ有効なようだ。

使用環境の詳細はPCプロフィール21/01 - Diary on windにて。

一口にDOS/Vを動かすといっても、方法は色々ある。手っ取り早いのはUSBメモリにFreeDOSの環境を作成して、そこに日本語環境を組む方法。フリーソフトのドライバーとオープンソースのDOSとの組み合わせですぐにDOS/V環境を構築できる。10年前は情報を見つけるのが大変だったが、その後もDOS/V環境を組もうという人たちがポツポツと解説記事を出していて、今では様々な方法を見つけることができる。

用途にもよるが、実機でDOS/Vを動かしても実用的な環境になるかというと微妙なところだ。Sound BlasterがないのでDOSゲームでは当然サウンドは鳴らせないし、V-TextやWindows 3.1といったハイレゾ環境への対応もあんまりだから、同じVGAのDOS環境なら仮想環境の上で組んだ方が色々と都合いい。日本語入力ドライバーにはEMSを必要とするものが多いが、JEMM386がそのままではExceptionエラーを出して暴走するので困った。これはUMBCHKというツールで使用可能なメモリアドレスを調べて、I=aaaa-bbbbスイッチを付けて使用範囲を絞り込んで対処した。日本語入力のインストールは面倒になってしまったのでやっていない。この日本語入力に関しても、DOSVAXJ3ではDOS/Vアプリケーション上でWindowsのIMEが使えてしまうので、生DOSよりも仮想環境の方が便利になってきた。

用意したフリーの日本語DOS/Vドライバー

  • FONTN - フォントドライバー
  • CHEJ - 日本語環境設定用
  • DSPVV - ディスプレイドライバー
  • PANSI - ansi.sys代用ドライバ

CONFIG.SYS

!MENUCOLOR=7,0
MENU
MENU   FreeDOS Language Selection Menu
MENU   ヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘ
MENU
MENUDEFAULT=1,5
MENU 1) Japanese Mode
MENU 2) English Mode
MENU
DEVICE=C:\HIRAM\HIMEMX.EXE
DEVICE=C:\FDOS\JEMM386.EXE I=D000-E3FF I=EC00-EFFF
DEVICEHIGH=C:\PANSI103\PANSI.SYS
DOSDATA=UMB
DOS=HIGH,UMB
LASTDRIVE=Q
1?SHELL=C:\COMMANDJ.COM /E:512 /P
2?SHELL=C:\COMMAND.COM /E:512 /P
1?COUNTRY=81,932,C:\FDOS\COUNTRY.SYS
2?COUNTRY=81,437,C:\FDOS\COUNTRY.SYS

AUTOEXEC.BAT

@echo off
set PATH=.;C:\;C:\FDOS
rem display con=(ega,,1)
GOTO %CONFIG%
:1
SET COMSPEC=C:\COMMANDJ.COM
rem mode con codepage prepare=((437) \locale\ega.cpx) > NUL
rem mode con codepage select=437 > NUL
rem LH NLSFUNC \FDOS\COUNTRY.SYS
LH C:\FONTN10\FONTNX.EXE /P=C:\FONTN10\
LH C:\DSPVV109\DSPVV.COM /HS=ON
LH C:\CHEJ610\CHEJ.EXE JP
LH KEYB.EXE US,437,C:\FDOS\KEYBOARD.SYS
GOTO end
:2
SET COMSPEC=C:\COMMAND.COM
:end

FreeDOS関連のファイルはC:\FDOSフォルダーに入れている。また、キーボードは米国英語配列に合わせている。日本語配列であればLH KEYB.EXE JP,932,C:\FDOS\KEYBOARD.SYSとなる。

スクリーンショット

私個人的には、RyzenでDOS/Vが動いたことよりも、Radeon RX 580で正しく表示できたことの方が驚いた。ビデオBIOSはもうUEFIにしか対応していないと思っていた。

RX580のDisplayPort出力では1280x1024に拡大スケーリングされるようだ。ディスプレイ側ではなくグラボ側のスケーリング。DSPVVはハードウェアスクロールをONにしているが、正常に表示できた。

Image: JED

FILMTN。FDはunsafeな面がありそうなので、USB起動環境では使っていない。

Image: FILMTN

ベンチマーク SYSTEM SPEED TEST。Memory throughputが25006.31MB/sとなっており、およそDDR4-2666に一致するだろうか。

Image: SYSTEM SPEED TEST

Visual C++ 4.0付属のVisual C++ 1.5でDOSアプリケーションの開発環境を組んでみる。と言っても、私は既に仮想環境で組んでいたファイルを持ってくるだけ。

Image: Visual C++ 4.0

clコマンドが実行できたのみならず、CodeViewもちゃんと使えた。DOSエクステンダが正常に動作した証拠だ。USBマウスは使えないが、PS/2で接続したマウスはDOS/V用のマウスドライバと組み合わせれば、カーソルで操作することもできた。ただ、属性の解釈がおかしくなるのか、ダブルバイト文字にカーソルを重ねるとテキスト表示がバグる。ディスプレイドライバーDISPVVとの相性だろうか。

Image: CodeView

XP世代のパソコン(MeからXPへの過渡期)にはUSBマウスをPS/2マウスとして使用できるものがあった。USBマウスのサポートは早々に削除されてしまったが、USBキーボードは現在でもDOS上でそのまま使用できる。

これを書くきっかけになった記事。リスペクト→ DOSパソコン・コンプレックスⅢ | の回想録


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい.