FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する

# はじめに
世の中には、MS-DOS互換のOSが沢山ありますが、ここにFreeDOSという素晴らしいオープンソースソフトウェアがあります。
これを利用して、様々な用途に用いることが出来る環境を構築することとします。

主な用途は以下の通りです。他にもいろいろあるでしょう。

- 8086リアルモードでプログラミングする
- テキストWebブラウザでネットサーフィンする
- MS-DOS時代を懐かしむ


※本記事は下記の記事から分離したものとなります。
[アセンブラを理解したいのならアセンブラを学べ（INT 21Hもあるよ） - Qiita](https://qiita.com/tmiki/items/7866f6db9344ced8d5bb)

# 準備するもの
下記作業に移る前に、以下のソフトウェアを予めインストールしておく必要があります。

- Oracle VirtualBox

# FreeDOSのインストール
公式サイトの記事が素晴らしく分かりやすいので、これに従って環境構築します。
基本的な流れは下記の通りです。

- **"standard" installer**をダウンロードする。
- VirtualBoxでFreeDOS用の仮想マシン（以下、VMと呼ぶ）を作り、CD-ROMドライブを追加する。
- 「"standard" installer」CDをマウントする。
- VMを起動させるとCD-ROMからブートするので、そこからインストーラを起動する。
- 必要なツールをインストールする。
- FreeDOSが起動する。

## **"standard" installer**をダウンロードする

インストールCDはここからダウンロードできます。「CDROM “standard” installer」というリンクがそれです。
http://www.freedos.org/download/

## VirtualBoxでFreeDOS用の仮想マシン（以下、VMと呼ぶ）を作り、CD-ROMドライブを追加する。
Vagrantは使わずに、Oracle VM VirtualBoxマネージャーからプリミティブにVMを作っていきます。
VMの名前は「FreeDOS12」としておきます。
タイプは「Other」、バージョンは「DOS」とします。

![2018-12-03_01h02_20.png](https://qiita-image-store.s3.amazonaws.com/0/137777/0b55a53f-b74b-d761-0505-5b221a1d6e83.png)

「必要なメモリーサイズは32MBです。」なんて表示されますが、多すぎじゃないでしょうか。32MB、なんと大容量なのでしょうか。これだけあれば何でもできる…！
![2018-12-03_01h02_29.png](https://qiita-image-store.s3.amazonaws.com/0/137777/da3905e3-cd1e-433e-3957-af1e60868d4b.png)

この後HDDサイズも聞かれますが、基本的にはデフォルトの500MBで十分でしょう。というかこれも多すぎじゃないでしょうか。
昔はHDD1MBで1万円だった時代があったなんて、いったい誰が信じてくれるでしょうか…
![2018-12-03_01h03_11.png](https://qiita-image-store.s3.amazonaws.com/0/137777/0febcd79-7610-2f69-5f13-83bff837456c.png)

あとは画面の案内に従って、作成を完了させます。するとこんな感じでVMが出来ます。よく見たらSoundBlaster 16互換のサウンドボードもついてますね。
![2018-12-03_01h05_08.png](https://qiita-image-store.s3.amazonaws.com/0/137777/432dcc11-a2a4-b5d8-1dc9-8dadf3a39cfa.png)

先ほどダウンロードした"standard" installerのISOイメージを、VMのCD-ROMドライブにインサートします。
先ほど作ったVMを選択して「設定」ボタンを押し、ポップアップされたウィンドウの「ストレージ」を選択します。IDEのセカンダリが空になっているので、ここに先ほどダウンロードしたISOイメージを登録します。
![2018-12-03_01h05_57.png](https://qiita-image-store.s3.amazonaws.com/0/137777/ba96b91d-724a-382a-efac-14f38d9ff43c.png)

念のためブート順序を確認し、CD-ROMドライブが優先されていることを確認します。
![2018-12-03_01h12_43.png](https://qiita-image-store.s3.amazonaws.com/0/137777/5163a4a5-7f74-78de-b35a-d71e5c19de4f.png)

後はVMを起動するだけです。

## VMを起動させるとCD-ROMからブートするので、そこからインストーラを起動する。
公式のインストール手順はこちらです。非常に丁寧に書かれています。
途中、どのパッケージをインストールするか聞かれますが、迷わずFull installationしてください。
[Install Howto - FreeDOS](http://wiki.freedos.org/install/)

## FreeDOSが起動する。
起動すると下記のような画面が表れます。
![2018-12-08_02h59_28.png](https://qiita-image-store.s3.amazonaws.com/0/137777/4907e1dc-b404-d8a4-6ec1-1e138592e1a7.png)

## 必要なツールをインストールする。
Full installationと言いつつも、開発ツールはインストールされません。FreeDOSのパッケージマネージャである、「FDIMPLES」を起動します。

```
C:\> FDIMPLES.COM
```

「Development」カテゴリのチェックが全て外れているので、カテゴリごとチェックを入れます。全部併せても大したディスク容量ではないので問題ありません。
![2018-12-08_03h04_55.png](https://qiita-image-store.s3.amazonaws.com/0/137777/afed350e-f1ae-fa2a-6072-bb66437f0c6e.png)

後はエディタも入れましょう。とりあえずvi互換エディタであるelvisがあれば当面は困りません。ただ、よく見るとバイナリエディタみたいなものもあり、便利そうです。これも併せてインストールします。
![2018-12-08_03h09_36.png](https://qiita-image-store.s3.amazonaws.com/0/137777/d227ca0c-c4ec-0c28-ed78-258c320258b5.png)


おや？「Networking」なんてカテゴリもあります。すごい…ちゃんとTCP/IPが使えます…！
とりあえずこのあたりもチェックを入れておきましょう。
![2018-12-08_03h07_22.png](https://qiita-image-store.s3.amazonaws.com/0/137777/358361d4-766f-4030-cf27-ff841a60af3d.png)

必要なパッケージのチェックが完了したら、TABキーで「OK」にフォーカスをあわせたのち、Enterを押し、処理を続行させます。

## AUTOEXEC.BATのPATH設定を追加する。
パッケージをインストールしただけでは、elvisやJWasmにパスが通りません。elvisでAUTOEXEC.BATを編集しましょう。

```
C:\> \ELVIS\VI AUTOEXEC.BAT
```

デフォルトでは下記のパスしか設定されておりません。

```
SET PATH=%dosdir%\BIN
```

以下のように書き換えましょう。

```
SET PATH=%dosdir%\BIN;C:\ELVIS;C:\DEVEL\JWASM
```

最後に、書き換えたPATH環境変数を有効にするため、AUTOEXEC.BATを実行します

```
C:\> AUTOEXEC.BAT
```

これでセットアップは完了です。

# おわりに
インターネット老人会案件だと思います、これ。