Open1

DOSの動作環境

カゴRPカゴRP

アセンブラはDOSで学習するのが良いと言いながら、動作環境に触れないのはどうかと思い、今回は有償・無償・過去の遺産問わず書き残しておきます。

2020年現在、正式に配布されている入手可能なMS-DOS互換OSは恐らくFreeDOSのみです。FreeDOSは正式に日本語をサポートしていませんが、DOS/V時代のフリーウェアを利用して何とかDOS/V化出来るようです。動作確認しているのは今のところ仮想環境のみです。

動作環境

親OS 仮想環境 MS-DOS/V 6.2 PC-DOS/V 2000 DR-DOS 7.03 FreeDOS 1.2
Windows10 Hyper-V - - -
Windows10 86BOX
Windows10 VirtualBox
Windows7 Virtual PC 2007

Hyper-V

Windows10のHyper-Vでは古いOSを除外しているのでFreeDOSしかインストールできませんでした。
DOSの動作環境はメインメモリ数メガ・HDD数十メガの時代のものなので、Hyper-Vはオーバースペックです。

86BOX

86BOXをHyper-VやVirtualBOX等と同列に扱って良いのかわかりませんが・・・
仮想マシンではなく、x86エミュレーターです。90年代当時とはハード構成が違うので、新しいPCでは古いOSではサポートしてない新しい機構があり、誤動作の原因になる事があります。そういった意味では古いOSを動作させるには一番都合が良い環境と言えます。
86BOXを動作させるには実機のBIOSが必要になります。BIOSはアップデート用ファイルで動作するようです。2000年頃のDOS/V PowerReportの付録CDには、各メーカーの最新BIOSが入っていました。

VirtualBox

VirtualBoxはフロッピーイメージ等の読み込みが速く、本来実機では数秒~数十秒かかるような読み込みが一瞬で終わります。そのためメディアのロード時間にメッセージを表示するような古いゲームで使用することには向いていません。
例えばRPG等でステータス異常の攻撃を受けたことを示すメッセージをフロッピーのロード時に表示する動作があると一瞬で消えてしまうので、ステータス異常に気付けず突然死なんて事が起こるかもしれません。
86BOXは処理が遅いと評価されているようですが、遅いのではなくて意図的に遅らせてるのではないかとも思えます。

VirtualBoxではMS-DOS/V 6.2が起動できませんでした。
CONFIG.SYS内でJDISP.SYSが問題を起こしているようで、引数に/HS=LCを付けると問題なく起動できました。

VirtualPC 2007

Windows7のVirtualPC2007ではDR-DOSはEMM386.EXEが誤動作して起動できませんでした。動作させるだけなら、CONFIG.SYSとAUTOEXEC.BATの拡張メモリに関する定義を外せば起動しますが、メモリ不足になると思います。
PC-DOS/VのEMM386.EXEを使いまわすことが出来ましたが、PC-DOS/Vを所有していてDR-DOSにこだわる意味は無いと思います。フリーの拡張メモリドライバが無いか探してみましたが、PC-9800シリーズ用にはVEM386というドライバがありましたが、IBM-PC用は見当たりませんでした。

MS-DOS,PC-DOS,DR-DOSは、Starting ** DOS...が表示されている間にF8キーを押すとCONFIG.SYSとAUTOEXEC.BATの命令を1行毎に実行を選択できるようになります。CONFIG.SYSやAUTOEXEC.BATで問題が起きて起動できないときは、この方法で問題が起きている個所を実行しなければコマンドプロンプトまでたどり着けると思います。
FreeDOSのFDCONFIG.SYSにはブートセレクターのような機能があるので、SafeModeで起動すれば良いでしょう。

Windowsのソフトウェア

フロッピーイメージファイル書き込み

外部とのファイルのやり取りを行うのにフロッピーディスクイメージファイルに書き込むソフトが必需品になると思います。拡張子VFDファイルが一番使いまわしがきくと思います。

ImDisk Virtual Disk Driver

実機に仮想フロッピードライブを作成するドライバー
ディスク操作やファイル操作はWindowsの機能で行います。

ND

FATパーティション ファイル操作ツール
PC-9801エミュレーターで使用されているツールですが、仮想マシンでも利用可能です。
フォーマット機能やイメージファイル作成機能はありませんが、レジストリを使用しないのでイメージへのファイルの読み書きはVirtual Floppy Drive等をインストールせずこれを使用しています。

フロッピーイメージファイル作成

fsutil

Windows標準のコマンドラインファイル処理ユーティリティ
ファイル作成機能を用いてvfdファイルを作成
Nullで埋められたファイルが作成されます。vfdファイルにはEXE形式ファイルにあるMZのようなEXE形式ファイルを示す署名が無いのでこの方法で作成可能なようです。

バッチファイル

cvfd.bat
@echo off
if "%1" == "" (
@echo %0 [filename]
) else (
fsutil file createnew %1.VFD 1474560
)

未フォーマット状態のVFDイメージファイルが作成されます。

フォーマット 1セクター
バイト数
1トラック
セクター数
1面
トラック数
盤面数 バイト数 プラットフォーム
1.44M 2HD 512 18 80 2 1,474,560 PC/AT互換機
1.25M 2HD 1024 8 77 2 1,261,568 PC-9801シリーズ
720K 2DD 512 9 80 2 737,280 PC/AT互換機
640K 2DD 512 8 80 2 655,360 PC-9801シリーズ

3モードFDDでも640Kの2DDフロッピーは読めないと思いますが資料として残しておきます。2DDフロッピーを買う理由は無かったと思いますが、90年代以前のパソコン書籍に2DDフロッピーが付属してくることがありました。

DOSのソフトウェア

ジャンル 名前 提供 説明
ファイル管理 FILMTN フリー -
ファイル管理 FD フリー FILMTNの前に使用していたファイル管理ソフト
ページャー MIEL フリー 高機能more
テキストエディタ VZエディタ 市販 入手困難
テキストエディタ NEED フリー -
バイナリエディタ HexIt フリー 英語DOS
バイナリエディタ Pat フリー PC-9800
デバッガ EXDEB フリー シンボリックデバッガー
圧縮・解凍 LHA フリー LZH形式ファイル圧縮解凍
圧縮・解凍 PKZIP フリー ZIP形式ファイル解凍

日本語化ソフトウェア

DR-DOSやFreeDOSを日本語化するために必要なドライバーソフトウェア類

ジャンル 名前 提供 説明
日本語キーボード KEYB 標準 FreeDOS付属
日本語キーボード JIS_A01 - DR-DOSで使用
フォントドライバ FONTX - 日本語フォントドライバーマルチフォント
16ドット半角フォント - - $FONTX.SYS用フォント等
19ドット半角フォント - - $FONTX.SYS用フォント等
16ドット全角フォント - - $FONTX.SYS用フォント等
ディスプレイドライバ DISPV - 日本語フォントを表示するのに必要
言語モード切替 CHEJ - CHEV互換 ディスプレイドライバのモード切替
言語モード自動切替 RCHEV - プログラム実行時に自動切換えする常駐ソフト
日本語入力サポート LPKKC - 日本語FEPの動作切替ドライバ
日本語入力FEP - 日本語入力フロントエンドプロセッサ
日本語入力FEP - 日本語入力フロントエンドプロセッサ

配布先がVectorなら古いファイルも残っていますが、GeoCitiesやInfoseek等のWebサイトスペースを無料で提供していたサービスが何年か前から終了していてサイトが閉鎖されています。特にフォントファイルの様な素材を提供していたサイトはリンク切れが多くなっています。