少ないリソースを酷使する

低レイヤーとレトロPC(PC98,MSX)が好きな情報学生

Linux上のPC-98エミュでFreeDOS環境を整える(1)

前回の記事LinuxにPC-98x1エミュレータを入れてみました.
しかし,「PC-98エミュを入れたところでOSがないと既存のアプリが動かせんやん!!!」
と,なってしまいますよね.
かと言って,当時のPC-98用OSは手に入りづらい・・・
そんな貴方のために,今日はお金をかけず簡単にPC-98エミュレータ上にDOS環境を構築する流れを備忘録的に書いていきます.

FreeDOSとは

世の中には無料で配布されているDOSがあります,その一つがFreeDOSです.

FreeDOSは、PC/AT互換機のためのオペレーティングシステム (OS) である。 MS-DOS互換の自由な代替環境などを目的として作られた。
(引用:https://ja.wikipedia.org/wiki/FreeDOS)

要するに,MS-DOSを持ってなくてもこれを使えばMS-DOSプログラムが動かせるってことですね.
MS-DOS互換」とは言ってますが,実際はMS-DOS以上に高機能なDOSになってます.

PC-98向けFreeDOS

FreeDOS(98)

元々のFreeDOSは上記にもある通りPC/AT互換機のためのオペレーティングシステム (OS) ですが,
これをPC-98にも移植したFreeDOS(98)という神プロジェクトがあります.
現在の最新版(機能的に最新)な物は以下で公開・配布されています.
http://bauxite.sakura.ne.jp/software/dos/freedos.htm

最終更新は2020年07月09日(記事執筆時点)と,つい最近更新されました,神.

動作条件

READMEから引用すると,以下のようなスペックが求められるようです.

FreeDOS(98)の動作に必須となる環境は以下の通りです。

  • NEC PC-9801シリーズおよびその互換機 (ハイレゾモード、PC-98LT、PC-98HAは未対応)
  • 256Kバイト以上の基本メモリ
  • 2DD(640K)もしくは2HD(1M)のフロッピーディスクドライブ、SASI、SCSIIDE接続のハードディスクのうち、いずれか1基以上(PC-9801初代/E/F/Mの2D(320KFD)は未対応)

PC-9801初代のHDインターフェースには対応していない可能性がありますが、未確認です…)

推奨環境は以下のようになります。

  • 80286以上のCPUを持つPC-9801シリーズおよびその互換機(i386以上を推奨)
  • 640Kバイト以上のメモリ(1.6Mバイト以上を強く推奨)
  • SASI、SCSIIDE接続のハードディスク

1Mバイト超のメモリが存在しない場合、FreeCOMがXMSを使ったメモリスワップを利用できないため、基本メモリの空き容量が少なくなるかもしれません。 (ディスクイメージに入っているMEMコマンドで、空きメモリ容量が確認できます)

ディスクイメージはFD,HD共にエミュレータでの動作を想定している,
よって,実機で動作させるには一手間必要かもしれない.

ダウンロードから起動まで(めっちゃ簡単)

ダウンロード

というわけでPC-98エミュでFreeDOSを使ってみましょう.
先ほど示した公開ページから,

FreeDOS(98)各種PC-98エミュレータ用ハードディスクイメージ(HDI形式)

の項目にあるzipをダウンロードしましょう.
んで,zipを解凍します.

$ unzip -d FreeDOS_98 fd98_hd_250m_20200709.zip

起動

今回は前回の記事でセットアップしたNP2kaiエミュでFreeDOSを使ってみます.
まずはNP2kai起動.

$ ./xnp2kai

f:id:T-takeda:20201013233035p:plain

メニューバーから,[HardDisk]→[IDE0-0]→[Open]を選択する. f:id:T-takeda:20201021221631p:plain

先ほど解凍したFreeDOSフォルダの中にある****.hdiを選択して開く. f:id:T-takeda:20201021221700p:plain

[Emulate]→[Reset]でエミュレータをリセットする. f:id:T-takeda:20201021222334p:plain

そうして,少し待つとFreeDOSが起動します!!簡単!!
f:id:T-takeda:20201021222410p:plain

ちょっとしたテスト

dirコマンドでフォルダの中身をみれます.
verDOSのバージョンを表示したり,timeでシステム時刻を確認したりして動作を確認します.
f:id:T-takeda:20201021222433p:plain

まとめ

とりあえず,今日はここまで!
次回は実際にFreeDOS(98)上でMS-DOS向けのアプリ何か試しに起動してみます.