前回はWSL2上のUbuntu24.04 LTSのQEMUでFreeDOSを走らせて、コマケーところを「観察」しました。今回は、毒を食らわば皿までとばかり、Windows11上で「直接」QEMUを走らせ、その上でFreeDOSの動きをみてみます。「直接」とは言ってもMSYS2のお世話になることになるのでありますが。
※実機動作確認には以下を使用しております。
先に結論
このところFreeDOSを QEMU(システム)上で走らせてみてます。過去回と今回で実行してみた環境は以下の6つが主です。
-
- ラズパイ4(Arm v8.0機)上でRaspberry Pi OS(64bit)、VNC接続GUI
- ラズパイ4(Arm v8.0機)上でRaspberry Pi OS(64bit)、SSH接続curses
- WSL2上のUbuntu 24.04 LTS(64bit)、GUI
- WSL2上のUbuntu 24.04 LTS(64bit)、curses
- Windows11 (MINGW64)、GUI
- Windows11 (MINGW64)、curses
うち、1、3、5のQEMUのGUI(VGAエミュレーション)ウインドウを開いて使う方式では、どれも問題なくFreeDOS1.3を使えてます。唯一、(物理)日本語キーボード使っている場合、FreeDOS側がUSキーボードがデフォルトであるため記号が「化け」ますが、前回確認したとおり、
keyb jp
を行えば日本語キーボード配列も対応可能でした。GUIのみで運用してしまう場合には FDAUTO.BATにkeyb jp入れておくのが良さそうです。
一方、2,4,6は、テキストのみでそれぞれのコンソール内でFreeDOSを動作させるものです。Windowsパソコンでは、Windows Terminalのウインドウ(タブ)内でFreeDOSが走るのでいろいろお楽。なお、こちらの環境では keyb jp しなくても日本語キーボードで普通に入力可能です。keyb jpすると、かえって日本語キーボードとは異なるキーボード配列になってしまいます。どこのキーボードだが分かりませぬ。こちらの環境を使うならば keyb jp しないっと。
このモードでの起動は、使用するQEMUのバージョンにより、QEMUに付加するオプションが以下の2通りに異なります。
-curses
-diaplay curses
2の環境では、Windows Terminalのコマンドプロンプトからラズパイ4機にssh接続してます。テキスト表示に関する限り問題はでておらず、スクリーンエディタやFreeDOSのユーティリティツールなどもフツーに使えます。罫線キャラクタも正常表示されます。
4は、Windows TerminalのUbuntuのウインドウ内で正常にFreeDOSが動作しているように見えます。唯一の欠点がFreeDOSのエディタなどで多用されている罫線キャラクタが「化ける」ことです。IBM PCの 0xA0以降に割り振られている拡張文字をWindows TerminalのUTF-8環境で表示するときに ?(ひし形反転)になってしまうみたいです。
6は、今回インストールの上、テストしたものです。MSYS2のMINGW64版QEMUでは、VGA Blank mode と表示され、期待したような操作を行えませんでした。
なお、追加で述べておくと以下のQEMUオプションを使っても、FreeDOSはSTDIOにシリアル接続した風で立ち上がり、コンソール画面内である程度の操作はできます。しかしキーによっては意図せぬ挙動が発生したり無反応だったりします。また、FreeDOSのエディタなどは使えませんでした。ちょっと無理。
-nographic
Windows11上で「直接」QEMUしてFreeDOS
Windows11上で直接QEMUは実行可能ではあります。詳細は以下ページに
しかし、もともとQEMUはLinux環境でビルドされるソフトウエアのようで、Windows11上にMSYS2環境がインストールされている前提です。
みんな大好きMSYS2はWindows11上で「直接」Linux系のソフトウエアをビルドして実行できる環境です。ただし、以下のような条件でMSYS2といっても環境は一種類ではありませぬ(いろいろあり、ショーガ無い、ノージンジャー)
-
- 32ビットなのか64ビットなのか
- 実行ライブラリは MSVCRT なのか UCRT なのか
- ツールチェーンは GCC なのか LLVM(コマンド名的には clang)なのか
この辺の詳しい話は御本家の以下ページなど参照くだされ。
さて、実際にQEMUが対応しているのは、以下の2種のみみたいです。
-
- MINGW64
- UCRT64
32ビットは不可、64ビット環境のみで実行ライブラリは(Windowsの伝統的な)MSVCRTと、(最近イケてる?)UCRTの両対応。しかし、ツールチェーンは(伝統の)GCCのみ。(最近人気の)LLVMには対応せず。
ということらしいです。知らんけど。
忘却力のお惚け老人は固陋に MINGW64 のみ、直ぐに起動できるように手元環境を整えてあったので、MINGW64上でのみQEMU+FreeDOSしてみてます。UCRT64環境の方は見てないのであしからず。
QEMUのインストールそのものは、「いつもの」pacman で可能です。お楽。
pacman -S mingw-w64-x86_64-qemu
9.0.2 とな。過去回の中で一番あたらしいんでないかい。つい数か月前くらいのバージョンみたい。
GUIでフツーに起動してみれば、Windows11上にQEMUのWindowが開き、過去回でやったとおりでFreeDOSのインストールが可能。そしてQEMUのGUIウインドウの中ではフツーに操作が可能です。罫線キャラクタも化けないし、EDITも動作OK。日本語キーボード対応に keyb jp が必用なことは想定内。問題なし。
今度はQEMUに -diaplay curses オプションつけて、テキスト・モードでどうよ、と実行してみたらこんな感じ。
ダメだあ。メモリの中では「走っている」のかもだけれども、取り付く島もないないっす。やっぱり実行環境的にはWindowsはLinuxとは違うということ?
結局、cursesモードは、「遠く」のマシンで使う分には完璧、近ければ近いほど何か問題があると。なんだかな。。。