DOSBoxメモ (8) 目標の整理と現状・今後の方針

すっかり取り散らかして,何を目標にしているか自分でもわからなくなりそうなのでまず整理します.

最終目標は,Raspberry Pi 5 Model B (RPi5) で日本語DOSアプリ,Log200(DOS版)を動かすことです.

もともとSlackware 14.x (x86 32bit版)でdosemu + FreeDOS + 日本語FONT + 鳳を動かして,そこでLog200を動かしていました.

前項の表にあるように,現有の環境では唯一Manjaro AMD64でdosemuが動きます.かつて,Slackware x86 32bit版で動かしていたFreeDOSのディレクトリーが残っていて,それをManjaroにコピーして,dosemuを起動すると,Log200が見事に起動するのです.

Manjaro AMD64上にインストールしたdosemuによって,かつて使用していたdosemu用ファイルツリーからブートしてLog200の起動に成功

鳳による単漢変換ですが漢字入力もできます.

なんとかこの環境を,dosemuでないPC/DOSエミュレーターに移植して,最終的にRaspberry Pi上で使えないか,と考えたわけです.

dosemuはx86系のハードウェアでしか動かず,プリミティブな印象がありますが,ホストのLinuxファイルシステム上のサブディレクトリーを仮想HDDとしてC:やD:ドライブとしてマウントできるばかりでなく,そこからブートもできてしまうという秀逸な機能があります.

もし同じことがDOSBox(-X)やBochsでできれば,話はここで終わりにできました.

DOSBox(-X)ではホストのLinuxファイルシステムのサブディレクトリーをdosemuのようにドライブとしてマウントはできますが,そこからブートはできません.

Bochsに至ってはx86 PCを忠実に再現しているのでホストのサブディレクトリーをHDDに見立てるような機能はそもそもありません.

それでまた,dosemuはホストのLinuxファイルシステムを仮想ドライブとしてブートした上で,別に仕立てた仮想ディスクイメージをフォーマットして,内容をコピーすればちゃんとそのイメージから起動することができるようになります.

ここまできたら,その仮想ディスクイメージをDOSBox(-X)やBochsにマウントすればいいじゃないか,と思ったのですが,そこがなかなかうまくいきません.テストして確認したところでは,DOSBox(-X)とBochsの仮想ディスクイメージはコンパチで使い回せますが,dosemuとは方式が違うようです.

さきほどchatGPTに変換する方法はないか聞いてみたので,その回答をもとに変換できないか試してみることにします.

Linuxのext4のファイルツリーとして.

DOSBox メモ (7) エミュレーター動作まとめ

Tested DOS/PC Emulators

PCOSDosemuDOSBoxDOSBox-XBochs
Mac mini 2018 (Core i7)macOS Sonoma 14.4.1 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
Macbook Retina 12″ 2017 (Core i7)macOS Ventura 13.6.6 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
PC Core i7-4790SManjaro AMD64Installed and RunningInstalled and RunningN/A *2N/A
Debian AMD64 Bookworm 12.5N/AInstalled and Ran *3N/A *2Installed but NOT working *5
Raspberry Pi 4 Model BSlackware ARM (32bit) 15.0N/A *1N/AN/A *2 *4Installed and Running
Raspberry Pi 5 Model BRaspberry Pi OS Bookworm 12.5N/A *1Installed and RunningN/A *2Installed but NOT working *5
Slackware AArch64 currentN/A *1N/AN/A *2 *4Installed and Running
Manjaro ARM (64bit)N/A *1Installed and RunningN/A *2N/A
Notes
*1 Dosemu requires x86/AMD CPU.
*2 Maybe available via Flatpak
*3 No longer installed for certain reasons.
*4 Flatpak installation fails on the respective environment.
*5 Drops into the debugger at every start-up.
すべて当社調べ.

DOSBoxメモ (6) ARMのDOSBoxはNG

macOSではBochsで仕立てたFreedosのHDDイメージをDOSBox-Xにつないでブートできました.

同じことをSlackware ARM (32bit版と64bit版のAArch64)にて試してみました.どちらもsbopkgにてBochsのbuild & installはできていて,macOS版のBochsで仕立てたディスクイメージでブートできました.

ただし,Raspberry Pi 4 Model B (RPi4)では遅くて使い物になりそうにありません.RPi5ではなんとか実用に耐えそうです

続いて,DOSBoxをRPi4とRPi5にてsbopkgでbuildしたところ,どちらも成功し,自前のDOSでブートします.ここで,macOS MacPorts版と同様に,

mount e /path/to/images/folder
imgmount c e:drivec.img
boot -l c

としても,エラーとなってブートしてくれません(RPi4もRPi5も).

たぶん,SlackBuildsのbuildスクリプトがARM用にちゃんとできていないのだと思います.

同じARM用でもRaspberry Pi OS用はまだ試していません.動く可能性はあると思います.

ただし,今のところRPi4はSlackware ARM (32bit) 15.0, RPi5はSlackware AArch64 (ARM 64bit版) currentというハンディキャップがあります.

DOSBoxメモ (4) HDDイメージづくり難航

今は,DOSBOX本家のWikiIMGMOUNTのページを参考に色々やっています.珍しく熟読して,ほとんどこのページに書いてあることをしています.

動作環境はmacOSのDOSBox-Xです.

これまでディスクイメージをqemu-imgで用意したり,ddコマンドで用意しましたが,うまくいかないのでこのWikiに書いてあるとおり,bximageコマンドを試してみようと思いました.このコマンドはBochsというまた別のPCエミュレーターの付属ユーティリティーです.

これも

port install bochs

であっさりインストールできて動きました.

Bochsは「ソフトがなければただの箱」というタイプで,起動可能なメディアを繋がない状態ではDOSBox(-x)のように組み込みのDOSからbootするようなことはありません.

このままBochs使えばいいじゃないかとも一瞬思いましたが,設定方法がまた全然違う流儀で,頭を切り替えるのが嫌なので,ツールだけ利用することにします.

それで,bximageを使って40MBのHDDイメージをこさえて,DOSBox-Xの2番目のドライブとしてマウントして,FreedosのlegacyなFDDとCD-ROMもマウントしてセットアップをすると正常に終了しますが,なんかディスクのサイズが40MBでないし,実際そのできがったはずのHDDイメージからのbootもできません.

書けばそれだけですが,色々試行錯誤して結局作ったディスクイメージからbootできないところで終わります.

流儀の違うBochsを試すことにするかな.その前提としてSlackware ARMで動くかにかかってきます.

Bochsのインストール

  • Slackware AArch64 current 成功
  • Slackware ARM (32bit) 15.0 成功
  • Manjaro AMD64 パッケージがない (ArchLinuxにも)
  • Debian 確認中

いずれも,それぞれのdistroの公式パッケージツール/buildツールを使用して,flatpakのようなものは使っていません.

Slackware流儀で,システムをいじる前にrootになってます.
Slackwareはsbopkg.

DOSBoxメモ (3) DOSBox-X on macOS

ちょっと長期戦になりそうなので,コンソールの切り替えをしないで,調べ物やその他PCでの作業をしながらDOSB0x(-X)をいじれるよう,macOS版のインストールを試みました.

MacでGNUなどのソフトを動かすのにMacPortsを使っています.

port install dosbox

とすると

Error: dosbox cannot be installed for the configured build_arch 'x86_64' because it only supports the arch(s) 'i386 ppc'.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port dosbox failed

と,エラーになります.インテルCPUの32bitのmacOSは何年も前に廃れたのでbuildスクリプトが間違っているはずですが,どうしようもないです.ダメ元で,

port install dosbox-x

としたら,buildできて動きました.Flatpakは使わなくていいようです.

ちなみに,dosemuは “Error: Port dosemu not found” です.

これでしばらくああでもないこうでもないとやってみます.

Slackwareの流儀で,システムをいじる前にrootになっていますので,毎回 “sudo” はしません.