背景
フリーウェアをWebサイトで公開する場合、より多くの人に使い易いことを考えた結果、FreeDOSで動作するフリーウェアのバイナリが良さそうかと思ったこと。djgppはGCCなのでフリーウェアを、ほとんど修正することなくコンパイルできると期待した。実際、修正なくコンパイルできて動作した。しかし標準ライブラリのlsearch()、lfind()がなかったためフリーウェアの公開で使うことは中止。FreeDOSのCコンパイル環境の構築方法を記事としてまとめることにしました。
30年前にMS-DOSは良く使っていました。当時も少しDOS-Extenderのdjgppを使っていましたが、久しくDOSは使ったことがないので、良くわかっていない点があること、ご了承ください。
インフォメーション
2024年4月にMicrosoftが「MS-DOS 4.0」をオープンソース化したようです。この記事を初投稿した時、8bit CPU WZetaのシミュレータを開発していました。その後、8bitパソコンのエミュレータにするためグラフィック機能を搭載することになってDOSを諦めることになっています。
はじめに
2022年2月20日、FreeDOS 1.3は2016年末以来、5年以上ぶりのアップデートしたようです。
窓の杜:「FreeDOS 1.3」がリリース ~オープンソースの「MS-DOS」互換OS
gihyo.jp:「FreeDOS 1.3」がリリース,オープンソースのMS-DOS互換OSが5年ぶりにアップデート
DOSのC言語環境は16bitが基本なのでC言語のソースコードを修正したくない場合、32bitのCコンパイラを探すことになります。FreeDOSではOpen Watcomが良く使われているようなのですが整数型のintが2バイトだったため、他のCコンパイラを見つけることになりました。djgppはIA-32(32bit)のGCC 4.7なのでdjgppをインストールすることにしました。FreeDOSの公式サイトからダウンロードできるBonusCDにdjgppは入っていました。このため簡単にインストールできました。
インストールしたマシンはMicrosoftの有償版のVirtual PC 2004です。無償版のVirtual PC 2004 SP1は、まだダウンロードできるみたいです。Virtual PC 2007 SP1もあるようですが、この記事ではVirtual PC 2004です。
FreeDOS 1.3のインストール
FreeDOSの公式サイトからFreeDOS 1.3 LiveCDとBonusCDをダウンロードします。
LiveCDのzipファイルを展開するとISOファイルと一緒に入っているフロッピーのイメージがあるので、このフロッピーのイメージを使って仮想マシンを起動します。日本語は無いのでEnglishでインストールします。
新規の仮想ディスクの場合、パーティションを作る必要があります。
パーティション作成後、リブートします
キーボードは各自、自分の環境に合わせてください。キーボードは日本語がありました。
パッケージは後で追加できるので、ここではPlain DOS systemを選択
Yesを選択
インストールが開始され、進行状況は画面下に表示されます
インストール完了、リブート
リブート後、FreeDOSがHDDから起動して次のような画面になればFreeDOS 1.3のインストールは成功です
DJGPP(Cコンパイラ)のインストール
FreeDOS標準のエディタ以外のエディタが使いたい場合や、必要なアーカイバがある場合は、ここでDJGPPといっしょにインストールします。Emacsもありますが、デフォルトの設定では、あまり大きなファイルは編集できないようです。
ISOをBonusCDに変更します
fdimplesコマンドの実行
GUIに従って、インストールしたいパッケージを選択します
選択が終わればTABキーを使って「OK」のところまでカーソルを持っていきます
OKのところでエンターを押すと、インストールが開始されます
最後にDJGPPの環境変数を設定します。
C:ドライブのルートにあるFDAUTO.BAT(MS-DOSのAUTOEXEC.BATに相当)があるので、それを編集してDJGPPの環境変数を追加します
上記画面のset PATH、set DJGPP のように設定してください。
編集後、リブートすれば、FreeDOSのCコンパイラ環境の出来上がりです