【2024.12.13更新】 RunCPM を追加
【2024.12.13更新】 MSX-DOS PlayerのバージョンアップによりASM.COMが動作可能に
【2024.12.02更新】 MSX-DOS スーパーハンドブック ASM.COMの情報を追加
【2024.10.18更新】 MSX-DOS Playerのバージョンアップにより各種DOSアプリの動作が向上
【2024.10.09更新】 MSX-DOS Player(実行方法 ver.2)を追加
【2022.01.02更新】初版公開
いにしえの8bitパソコン「MSX」のDOSアプリ(MSX-DOS 外部コマンド)を2024年現在の最新環境であるWindows 11のコマンドプロンプトで実行する方法が俺的に便利だったので忘備録としてメモします。
仕掛けをざっくり言うと、Windowsのコマンドプロンプト環境下で「MSX-DOS」や「MS-DOS」といった古いOSの実行環境を構築します。なお当方の利用環境はWindows 11です。Windows 11より下のOSでも実行できるかもしれません。
- 実行方法 ver.2(MSX-DOS Player)
- 実行方法 ver.1(MS-DOS PlayerとMSX-DOS Emulator)
- 使用例
- 実行できないアプリ
- 【オマケ】CP/M用アプリをWindows PCで動作させる方法
実行方法 ver.2(MSX-DOS Player)
「MSX-DOS Player for Win32」はWindowsのコマンドプロンプトにてMSX-DOS(1)をエミュレートする実行環境です。2024年10月にリリースされ、これまでの手順より短くシンプルになりました。
用意するもの
MSX-DOSのシステムファイル(MSXDOS.SYS、COMMAND.COM)は必要ありません。
Windows(のコマンドプロンプト)
当方は「Windows 11」を利用しています。各種32bit版Windowsでも動作するようですが当方は実行環境を持っていませんので詳細不明です。
MSX-DOS Player for Win32
TAKEDA, toshiyaさんがリリースしている、MSX-DOS及びCP/M-80のアプリ(外部コマンド)をWindowsのコマンドプロンプトで起動するためのプログラムです。
↓ MSX-DOS Player for Win32のダウンロードはこちら ↓ takeda-toshiya.my.coocan.jp
Zipアーカイブを展開すると2つの実行ファイルが存在します。
MSX-DOS自体がCP/Mのエミュレーション環境であるとも言えますので普段遣いはmsx.exeでほぼ問題ないと思われます。msx.exeでは問題が発生するCP/Mアプリはcpm.exeを用いると確実性は上がるかもしれません。
MSX-DOSの外部コマンド
いにしえのフロッピーディスクから頑張って掘り出してください(投げやり)。なお、MSX-DOS2用の外部コマンドは非対応につき動作しません。
コマンドの実行
MSX-DOS Playerと実行したい外部コマンドや各種ファイルを同一ディレクトリに格納してから、コマンドプロンプトで以下のように実行します。
msx <MSX-DOSの外部コマンド> <外部コマンドのオプション指定>
こう記述することで、msx.exeがMSX-DOSの外部コマンドを実行します。実機を用いるより爆速!!
実行方法 ver.1(MS-DOS PlayerとMSX-DOS Emulator)
2024年10月まで唯一の方法としてご紹介していた「MS-DOS Player for Win32-x64」と「MSX-DOS Emulator」を併用する方法です。こちらの方法より上記のMSX-DOS Playerのほうが圧倒的に処理速度が速いのですが、実行結果は変わるかもしれません。
用意するもの
MS-DOSのシステムファイル(MSDOS.SYS、IO.SYS、COMMAND.COMのようなファイル)およびMSX-DOSのシステムファイル(MSXDOS.SYS、COMMAND.COM)は必要ありません。
64bit版 Windows(のコマンドプロンプト)
当方は「Windows 11」を利用しています。Windows 11は64bit版のみリリースされており、32bit版は存在しません。
MS-DOS Player for Win32-x64
TAKEDA, toshiyaさんがリリースしている、intel製16bit CPUの「MS-DOS(いわゆるDOS汎用)」アプリを64bit版Windowsのコマンドプロンプトで起動するためのプログラムです。
↓ MS-DOS Playerのダウンロードはこちら ↓ takeda-toshiya.my.coocan.jp
プログラム(実行ファイル)は多数の中から選べますが、当方は「IA32_x64版」を利用しています。
「IA32_x86版」など各種x86版のプログラムを用いれば32bit版 Windowsの各種コマンドプロンプトでも実行できるかもしれませんが、当方は未確認です。
MSX-DOS Emulator
Inatcherさんがリリースしている、Zilog製8bit CPU(いわゆるZ80)の「MSX-DOS」及び「CP/M」用アプリをMS-DOS環境で起動するためのプログラムです。作者さん曰く、MSX-Cを動作させることを目標に開発されたプロダクトのようです。
↓ MSX-DOS Emulatorのダウンロードはこちら ↓ www.vector.co.jp
プログラム(実行ファイル)は8086版(MSX.EXE)と80386版(MSX386.EXE)の2種類が存在しますが、当方は「80386版(MSX386.EXE)」を利用しています。
MSX-DOSの外部コマンド
いにしえのフロッピーディスクから頑張って掘り出してください(投げやり)。なおMSX-DOS2用の外部コマンドは非対応につき動作しません。
コマンドの実行
MS-DOS Player、MSX-DOS Emulator、実行したい外部コマンドや各種ファイルを同一ディレクトリに格納してから、コマンドプロンプトで以下のように実行します。
msdos msx386 <MSX-DOSの外部コマンド> <外部コマンドのオプション指定>
こう記述することで、msdos(MS-DOS Player)がmsx386(MSX-DOS Emulator)を実行し、msx386がMSX-DOSの外部コマンドを実行します。二重のエミュレート環境!しかも爆速!
「MSX-DOSの外部コマンド」は、拡張子(.COM)まで正確に記述する必要があります。拡張子を省略するとMSX-DOS Emulatorは正しく実行できません。
使用例
MSX-C(Cコンパイラ)
MSXで動作させるにはあまりにも重たすぎる処理の筆頭である、Cコンパイラ。場合によってはたった1秒でコンパイルを完了するとのこと。現代の64bit CPUパワーを存分に体感してください!
MSX-DOS スーパーハンドブック ASM.COM(Z80アセンブラ)
アスキー刊「MSX-DOS スーパーハンドブック」に掲載されていた、2パスZ80アセンブラです。昨今のWindowsで動作する64bit CPU環境ならコンパイル作業が凄く速い!!
同社の「MSX-DOS TOOLS」に収録されたM80・L80のほうが高性能かつ高価だったことに対してASM.COMは紙面のプログラム打ち込み入力を頑張れば無料で入手できたほか、コンパイル環境の構築自体はASMのほうが手軽だったため、愛用者は意外と多かった印象です。
ASM.COMは当初は動作しなかったのですが、2024年12月12日版のMSX-DOS Playerから動作するようになりました。
PMEXTによるPMA・LZHアーカイブの展開
msx PMEXT <Filename> A:
MSX-DOS Playerの動作環境では、カレントドライブがドライブA(A:)となっています。よって、Windowsのコマンドプロンプトは「C:」で動作していてもファイル展開の展開先ドライブは「A:」を指定する必要があります。
PMEXTによるアーカイブの展開処理で、本来であればCP/Mの仕様により展開後のファイルサイズが128バイト単位で嵩上げされたり展開後のタイムスタンプが不定になる問題を解決するパッチ「PMEXTLD」の適用にも対応(2024年10月12日バージョンより)。
↓ PMEXTの入手 および PMEXTLDの適用法はこちら ↓ github.com
MGSEL用ディレクトリファイルを作成する
MGSDRVの音楽プレイヤーアプリ「MGSEL」に対応する楽曲データのインデックスファイルを、MGSF.COM という外部コマンドで生成する方法。
msx MGSF SAMPLE *.MGS
こう記述すると、ディレクトリ内に存在する全てのMGSDRV形式データファイル(拡張子 .MGS)のタイトル情報を収集し、SAMPLE.DIR というインデックスファイルを生成します。
MS-DOS Player for Win32-x64 と MSX-DOS Emulatorを併用する場合は…
msdos msx386 MGSF.COM SAMPLE *.MGS
実行できないアプリ
グラフィック処理を伴うアプリ
ざっくり言うと、コンソール画面(テキスト画面)外で動作するアプリは実行できません。実行時にSCREENモードが変わるアプリは期待薄です。テキストモードの変更に関してはある程度動くかもしれませんが…
スロット・I/O・BIOSを利用するアプリ
MSX本体のハードウェア機能と直結する処理を伴うアプリは実行できません。前述のグラフィック処理もけっきょくはVDPを操作して処理されるものですし、音が鳴る・特定のスロットやポートを読み書きしている・MSXのBIOSを利用している…等の処理も本体ハードウェアの機能を利用しています。
今回の仕掛けはあくまでDOS(ファイル操作と最低限の入出力)のエミュレート環境であって、MSXの本体機能をエミュレートする環境ではありません。
MSX-DOS2用アプリは実行できないかも?
MSX-DOS PlayerおよびMSX-DOS Emulatorが想定するMSX-DOSのバージョンは 1 です。MSX-DOS2用アプリは実行できないかもしれません。
MGSC
MGSCはMSX-DOS1でも動作するアプリですが、プログラム内にDOS2のファンクションコール(70h)が含まれているらしいためにMSX-DOS Emulatorでは動作しないようです。
PMARC2
MSX-DOS EmulatorではPMarc2は実行されるもののデータ生成は行われないようです。
【オマケ】CP/M用アプリをWindows PCで動作させる方法
iz-cpm
MSX-DOS Emulatorでは実行できない・実行してもファイルが正常に生成できない場合は「iz-cpm」を用いると成功する場合があります。
https://twitter.com/_NetNomad/status/1477977646030106633
↓ iz-cpm のGitHubはこちら ↓ github.com
CP/M 2.2 player for generic MS-DOS
CP/M 2.2 player for generic MS-DOSは、Windows95の登場より前のNEC PC-9801やDOS/Vマシンといった16bit CPUのパソコンで稼働するMS-DOS(互換品含む)でCP/M-80用アプリを実行できる環境です。
これとWindows向け各種MS-DOS仮想環境を併用すれば64bit CPUのWindowsでも実行可能になるはずです。
↓ CP/M 2.2 player for generic MS-DOS のGitHubはこちら ↓ github.com
RunCPM
Windowsで動作するCP/Mエミュレート環境です。対応するCP/Mのバージョンは2.2となります。
↓ RunCPM の GitHubはこちら ↓ github.com
ぜひお試しください。