FreeDOS 1.3をQEMU上で動かそう ( 自動化スクリプトで日本語環境やツールも一括導入してみる )
ときどき妙に、「MS-DOSが懐かしくなる」ことがあります。まあ、PCを使い始めた頃の環境がDOSだったのですから、これはある意味当然のことなのかもしれません。郷愁ですね。
その中には、「こんなときは、自宅で鉄道旅行でもプランニングしよう(2)(MARS を動かす環境を作る)」で紹介したMARSのように、現在でも使い続けているツールもありますから、MS-DOS環境は一定整備しておかねばなりません。前回は、先人の作った環境をそのまま拝借してしまいましたが、今回はハードディスクイメージを新規作成し、DOS環境を一からインストールしてみましょう。
導入するOSは、「FreeDOS 1.3」となります。その名のとおり、フリーなDOS環境で、現在でも開発が続けられているという貴重な存在です。Wikipediaでは、下記のように紹介されています。
FreeDOSは、PC/AT互換機のためのオペレーティングシステム (OS) である。MS-DOS互換の自由な代替環境などを目的として作られた。現在の最新バージョンは2022年2月20日に公開された1.3である。
[1] 事前準備
(1) QEMUのインストール
DOSを動かすために実機を使うのは現実的でないので、仮想環境を使いましょう。今回は QEMU で386環境をエミュレート、そのうえで、FreeDOSを稼働させます。なお、実マシン環境は、Xubuntu 22.04 を使用しています。
まずは、QEMUをインストール
sudo apt -y install qemu qemu-utils qemu-system-x86
(2) ハードディスクイメージの作成
次に、FreeDOSをインストールするハードディスクイメージを作成します。DOSですので、128MBもあれば十分でしょう。
適当なディレクトリ(以下 /home/xxxx/freedos とする)を用意し、下記のコマンドでファイル(fd13.imgとする)を作成します。
cd /home/xxxx/freedos
qemu-img create -f raw fd13.img 128M
(3) FreeDOS 1.3 のダウンロード
このサイトの中央に表示されている LiveCD をクリック、FD13-LiveCD.zipをダウンロードし、(2)と同じディレクトリ(/home/xxxx/freedos)に解凍しておきます。
[2] FreeDOSのインストール
先に解凍したFreeDOSのCDイメージからブートし、FreeDOSのインストールを開始します。下記のスクリプトを起動しましょう。
qemu-system-i386 -m 16 -rtc base=localtime -drive file=fd13.img,format=raw -cdrom FD13LIVE.iso -boot d
1) インストールの実行
最初に下記の画面が出るので、ここからガイダンスに従って進めていくだけです。
まずは、 “Install to harddisk” を選択します。注意すべき点は、完了後 Reboot を選ぶと、再度この画面に戻ってきますので、ここでもう一度 “Install to harddiskを” を選択して進めることです。Language や Keyboard も、後から再設定できるので、English のままで構いません。
導入する Package は、英語版のツールに興味はないので、Plain DOS system だけにしておきます。
Full installation を選択すると、ディスク容量が128Mでは足りないと思いますので、その場合は、(2)で作成するディスクイメージ容量を512M程度にしておくと良いでしょう。
2) FreeDOSの起動
完了後、ハードディスクにインストールしたFreeDOSを起動します。
qemu-system-i386 -m 16 -rtc base=localtime -device sb16 -device adlib -drive file=/home/xxxx/freedos/fd13.img,format=raw -boot order=c
下記の画面が出れば、FreeDOS 1.3のインストールは完了です。
[3] 日本語環境と基本ツールのインストール
英語圏の方は、前項までの作業で終了。楽で良いですな。
しかし、極東に住む大和民族はそうはいかないので、ここから日本語環境を構築していきます。
日本語環境設定には、日本語フォント、Font Driver、Display Driverなどのインストールとセットアップが必要です。
しかし、これは何回やっても面倒、というか、毎回やり方を忘れてしまっているので、調べ直しに時間がかかり、そのうえ設定ミスをしたりするなどなど、いつもイライラが募ります。そんなつまらない作業を避けるべく、今回は「日本語環境構築を一括で行うスクリプト」を作成しました。日本語環境だけでなく、ついでにDOSの基本ツールも同時にインストールしてしまいます。
まあ、wget でダウンロード後、lha や unzip で解凍し適当なディレクトリにコピー、FreeDOSの設定ファイルである FDCONFIG.SYS と FDAUTO.BAT を修正してしまうだけなんですけどね。
1) 準備
必要なツール、wget と lhasa をインストールしておきます。また、FreeDOSのハードディスクイメージを Loopback device としてMountするディレクトリ(/mnt/freedos)を作成しておきます。
sudo apt -y install lhasa wget
sudo mkdir -p /mnt/freedos
2) 一括処理スクリプト
下記のスクリプトをコピーし、ディスクイメージと同一のディレクトリ(/home/xxxx/freedos)に、/home/xxxx/freedos/jp.sh という名称で作成しておきます。
if [ -d ./jpwork ]; then
rm -rf jpwork
fi
mkdir jpwork
cd jpwork
mkdir chej
cd chej
wget http://www.mna.jp/natrium/software/CHEJ610.LZH
lha e CHEJ610.LZH
rm CHEJ610.LZH
cd ..
mkdir dispv
cd dispv
wget https://web.archive.org/web/20230502101432/http://www.hmsoft.co.jp/lepton/software/dosv/disp160a.lzh
lha e disp160a.lzh
rm disp160a.lzh
cd ..
mkdir font
cd font
wget http://web.archive.org/web/20160929103053/http://homepage3.nifty.com/silo/FONTV/VGON16.LZH
lha e VGON16.LZH
rm VGON16.LZH
mv vgon16/*.tlf .
rm -rf vgon16
cd ..
mkdir fontn
cd fontn
wget https://www.nanshiki.co.jp/free/fontn10.lzh
lha e fontn10.lzh
rm fontn10.lzh
cd ..
mkdir pansi
cd pansi
wget https://ftp.vector.co.jp/19/70/374/pansi103.lzh
lha e pansi103.lzh
rm pansi103.lzh
cd ..
mkdir lpkkc
cd lpkkc
wget https://ftp.vector.co.jp/47/67/547/lpkkc107.zip
unzip lpkkc107.zip
rm *.zip
cd ..
mkdir adddev
cd adddev
wget http://hp.vector.co.jp/authors/VA003720/lpproj/dos/add255p1_20070904.zip
unzip add255p1_20070904.zip
rm *.zip
cd ..
wget https://www.gfd-dennou.org/library/cc-env/unixlike/uxtl411a.tgz
tar xzf uxtl411a.tgz
rm uxtl411a.tgz
cd uxtl411a
mv bin ../
cd ..
rm -rf uxtl411a
rm -rf appeal
cd bin
wget http://hp.vector.co.jp/authors/VA012947/software/fdsk136.lzh
lha e fdsk136.lzh
rm fdsk136.lzh
rm fdsk.txt
cd ..
mkdir usr
cd usr
mkdir mars
cd mars
wget https://www.swa785.net/pub/mars/mars533.lzh
lha e mars533.lzh
rm mars533.lzh
cd ../../
cd usr
mkdir jed
cd jed
wget https://ftp.vector.co.jp/03/94/633/jed194v.lzh
lha e jed194v.lzh
rm jed194v.lzh
cd ../../
cd usr
mkdir fd55
cd fd55
wget https://ftp.vector.co.jp/04/52/554/fd55_313.lzh
lha e fd55_313.lzh
rm fd55_313.lzh
cd ../../
cat > ./font/fontn.ini <<END
[CODE]
F040 F0FC
[FONT]
GONHN16X.TLF
GONHN19X.TLF
GONZN16X.TLF
END
cat > ./FDCONFIG.SYS <<END
rem SET DOSDIR=C:\FreeDOS
!LASTDRIVE=Z
!BUFFERS=20
!FILES=40
!MENUCOLOR=7,0
MENUDEFAULT=1,5
MENU 1 - Japanese Mode
MENU 2 - English Mode
MENU 3 - Load FreeDOS without drivers (Emergency Mode)
12?DOS=HIGH
12?DOS=UMB
12?DOSDATA=UMB
12?DEVICE=C:\FreeDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=TEST NOVME NOINVLPG
3?DEVICE=C:\FreeDOS\BIN\HIMEMX.EXE
12?SHELLHIGH=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
3?SHELL=C:\FreeDOS\BIN\COMMAND.COM C:\FreeDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
1?DEVICEHIGH=c:\FONTN\FONTNX.EXE /P=c:\FONT\\
1?DEVICEHIGH=c:\DISPV\DISPV.EXE
1?COUNTRY=081,932,C:\FreeDOS\BIN\COUNTRY.SYS
23?COUNTRY=001,858,C:\FreeDOS\BIN\COUNTRY.SYS
rem 1?DEVICE=c:\LPKKC\LPKKC.SYS /S128 /V
rem 1?DEVICE=c:\KTN4\KTN4.SYS /F=c:\KTN4\KTN4.CFG
rem 1?DEVICE=c:\KTN4\KTN4C.SYS /F=c:\KTN4\KTN4.CFG
END
cat > ./FDAUTO.BAT <<END
@ECHO OFF
rem set DOSDRV=C:
rem set DOSDIR=C:\FreeDOS
SET TZ=JST-9
set TEMP=C:\FreeDOS\TEMP
set TMP=%TEMP%
set BLASTER=A220 I5 D1 H5 P330
set OS_NAME=FreeDOS
set OS_VERSION=1.3
alias reboot=fdapm warmboot
alias halt=fdapm poweroff
set PATH=C:\FreeDOS\BIN;c:\chej;c:\pansi;c:\bin;c:\usr\mars;c:\usr\jed;c:\usr\fd55
loadhigh pansi.com
IF "%config%"=="1" chej jp
keyb jp
END
cd ../
sudo mount -t msdos -o loop,offset=32256,uid=$(id -u),gid=$(id -g) fd13.img /mnt/freedos
mv /mnt/freedos/fdconfig.sys fdconfig.org
mv /mnt/freedos/fdauto.bat fdauto.org
cp -rf jpwork/* /mnt/freedos/
sudo umount /mnt/freedos
実行権限を付加し、実行します。スクリプト中の sudo mount で「パスワード」を聞かれますので、入力してください。
cd /home/xxxx/freedos
chmod +x jp.sh
./jp.sh
なお、このスクリプトはサイトが封鎖されたり、URLが変更された場合、動かなくなります。2024年2月でも、DISPVのサイト(http://www.hmsoft.co.jp/lepton/software/dosv/disp160a.lzh)が亡くなってしまったようなので、Internet Archiveからダウンロードする設定に変更せざる得ませんでした。
3) FreeDOS 1.3 日本語環境の起動
完了後、再度FreeDOSを起動します。
qemu-system-i386 -m 16 -rtc base=localtime -device sb16 -device adlib -drive file=/home/xxxx/freedos/fd13.img,format=raw -drive file=fat:rw:/home/xxxx/freedos/programs/ -boot order=c
起動メニューには、日本語モード(デフォルト)、英語モードが選択できるようになっています。
日本語モードを選択すると、下記のような画面となります。
なお、-drive file=fat:rw:/active/freedos/programs/ のようにディレクトリを追加しておくと、ここが Dドライブ となり、ファイルのコピーなどに利用できます。
残念ながら、日本語入力はフリーのツールだけではできません。刀(KTN4)で日本語入力ができることは確認していますが。
3) 導入ツール
下記のツールもインストールしてみました。
Unix like tools
ls、cp、mv、cat、tar、which などのUNIX系のツールが動作します。また、ディレクトリのセパレータには、 ”/” が使えます。正直言って、このツールがないとDOS上で満足な作業が出来ません。個人的に必須のツール。
mars
JR運賃計算ツール。これのために、DOS環境を構築していると言っても過言ではありません。鉄旅ファンなら必携。
jed
エディタ。本当は ”VZ Editor”を使いたいのですが、商業ツールであり現状入手も難しそうなので、フリーのエディタである ”JED”をインストール。これも良く出来たツールです。
fd55
有名なファイラーなので、とりあえず入れてみました。本当のことを言うと、全く使ったことがありません。今回、動かしてみましたが起動が遅いな。”DFX”あたりのほうが良いかもしれません。
4) その他注意点
QEMU が Mouse と Keyboard を Capture してしまい、「メインOS上で入力できなくなる」場合があります。その際には、慌てず騒がず Ctrl+Alt+g を押すこと。制御が戻ってきます。