「はじめて読む486」のサンプルプログラムを実行できる環境を作成する。


2024年4月2日 作成
2024年4月27日 修正中

修正中

修正中です。このドキュメントのとおりに作業を進めてはいけません。

30 年前に発売された「はじめて読む486」という本に掲載されているいくつかのサンプルプログラムを、現代の Windows 10、11 などの最新の OS で動かす方法を説明します。

実は Yahoo 知恵袋で、IT 業界では分かりやすい書籍が少ないという質問を受けてこのページの作成に踏み切りました。


それではさっそく始めましょう!


目次:

  1. この説明でインストールされるソフトウェア
  2. FreeDOS をダウンロードする。
  3. VirtualBox をインストールする。
  4. FDOS のディスクイメージを作成する。
    1. FDOS をダウンロードする。
    2. フロッピーディスクイメージを作成する。
    3. DiskExplorer をインストールする。
    4. FDOS のディスクイメージを作成する。
  5. 486 マシンを作成する。
  6. 486 マシンに OS をインストールする。
  7. CD-ROM イメージの読み出しに対応する。
  8. C コンパイラ / アセンブラをインストールする。
  9. 『はじめて読む486』のサンプルプログラム集を用意する。
  10. サイトの通りにコンパイル、makeをやってみる。


説明に使用した Windows のバージョン: Windows 11 バージョン 23H2(64bit)

使用できると思われるその他の OS: Windows 10(64bit), Windows 10, 11 の 32bit版、Linux、macOS など。

※基本的に DOSBox-X が動作するパソコンであれば問題ないと考えられます。(そのほか、Windows 7 の 32bit 版でも動作しました)


この説明でインストールされるソフトウェア


FreeDOS をダウンロードする。

  1. FreeDOS のサイトにアクセスします。
    http://www.freedos.org/
  2. Download FreeDOS 1.3 のボタンをクリックします。
    すると、各種ダウンロードファイルのリストのページが表示されます。
  3. リストの左下、For older hardware について…

    翻訳すると、
    お使いのシステムが LiveCD からの起動をサポートしていない場合は、LegacyCD を使用してインストールしてみてください。
    これにより、同じ FreeDOS 1.3 がインストールされますが、異なる起動方法が使用されます。
    BonusCD を使用して追加プログラムをインストールします。

    LiveCD とは「HDD にインストールすることなく、 CD から目的の OS が起動する」というものです。
    CD から起動した OS は、各種ファイルの保存を HDD ではなくメモリ上のディスクに作成するので、メモリが多く必要になります。
    過去の古いパソコンでは負担になるので LiveCD は選ばずに、LegacyCD を選びます。
    LegacyCD は HDD に OS をインストールします。

    ということで、LegacyCD をクリックします。

  4. するとダウンロードが始まります。(227MB です)
    ファイル名は、FD13-LegacyCD.zip です。

    ダウンロードが終了したら、そのファイルを右クリックして、「すべて展開...」を選びます。
    展開されたファイルのうち、FD13LGCY.iso を後で使います。

以上で FreeDOS をダウンロードできました。


VirtualBox をインストールする。

 

  1. VirtualBox のサイトにアクセスします。
    https://www.virtualbox.org/

    ページ左の Downloads のリンクをクリックします。

    するとダウンロードのページに移ります。

    画面中央付近の Windows hosts のリンクをクリックします。
    すると、「VirtualBox-7.0.14-161095-Win.exe」というファイル名のインストーラーがダウンロードされます。

  2. このインストーラーをダブルクリックして起動します。
    すると「ユーザーアカウント制御」の画面が出ます。
    「はい」を選びます。
  3. インストーラーの最初の画面です。Next> をクリックします。
  4. そのまま Next> をクリックします。
  5. すると警告が表示されます。

    翻訳すると、
    警告:ネットワークインターフェース

    Oracle VM VirtualBox 7.0.14 ネットワーク機能をインストールすると、ネットワーク接続がリセットされ、ネットワークから一時的に切断されます。

    今すぐインストールを続行しますか?

    つまり、「一時的にネットワークが切断される」ということのようです。
    Yes で問題ありません。
  6. さらに

    翻訳すると、
    不足している依存関係
    Pythonコア/win32api

    Oracle VM VirtualBox 7.0.14 Python バインディングをインストールするには、Python Core パッケージと win32api バインディングを最初にインストールする必要があります。

    ここで Oracle VM VirtualBox 7.0.14 Python バインディングのインストールを続行する場合は、後で手動でセットアップする必要があります。 詳細については、Oracle VM VirtualBox 7.0.14 SDK マニュアルを参照してください。

    今すぐインストールを続行しますか?

    これは、「Python を使って VirtualBox を操作する機能」を使いたい場合は、「Python」と Python から win32api へのアクセスを可能にする「pywin32」という拡張モジュールをインストールする必要がある、ということです。
    ここではその必要は無いので、そのまま、Yes ボタンを押します。
  7. "インストールの準備ができました"。Install ボタンを押します。
  8. するとインストールが開始されます。すぐに終わります。
  9. インストールの終了です。"Start Oracle VM VirtualBox .." にチェックを入れて、Finish ボタンを押します。

以上で VirtualBox をインストールできました。


FDOS のディスクイメージを作成する。

ここでは FDOS のフロッピーディスクイメージを作成します。

FDOS のサイトでダウンロードしたファイルは、フロッピーディスクイメージを仲介して、486 マシンに渡します。

フロッピーディスクイメージの内容を Windows で操作するために、DiskExplorer というソフトウェアを使用します。

DiskExplorer は .lzh 形式で配布されているので、+Lhaca という解凍ソフトを使用します。
 

FDOS をダウンロードする。

  1. FDOS のサイトにアクセスします。
    https://www.fdos.org/

    このページでは一部リンク切れしていますが、中央一番下の、「FDOS kernel and related builds.」の kernel のリンクをクリックします。
  2. すると、次のような画面になります。

    「Contents of zip files:」の、ke20xx_f32.zip をクリックします。
    すると、ke2043_86f32.zip がダウンロードされます。
    ke2043_86f32.zip は右クリックして、すべて展開... を行ってください。

    FDOS をダウンロードできました。

フロッピーディスクイメージを作成する。

ダウンロードした FDOS の各種ファイルは、フロッピーディスクイメージを仲介して、486 マシンに渡されます。


  1. VirtualBox の画面で、左のツールのメニューアイコンをクリックし、メディアを選びます。
  2. すると、次のような画面になります。

    フロッピーディスクのタブをクリックします。
  3. すると、次のような画面になります。
    上部のアイコンが HDD から フロッピーディスクに変わっています。

    左から2番目の作成ボタンを押します。
  4. すると次のような小さな画面が表示されます。

    ファイルのパス: は、

    C:\Users\<ユーザー名>\VirtualBox VMs\ke2043_86f32.img

    としてください。
    ファイル名は、FDOS のサイトでダウンロードしたファイル ke2043_86f32.zip と同じ名前になっています。
    Create ボタンを押します。
  5. すると、その場所に ke2043_86f32.img というファイルが作成されます。

    フロッピーディスクイメージを作成できました。

DiskExplorer をインストールする。

Windows でフロッピーディスクイメージの中を操作するには、そのためのソフトウェアが必要です。


  1. DiskExplorer の作者サイトにアクセスします。
    http://hp.vector.co.jp/authors/VA013937/

    Softwares をクリックして展開します。

    すると次のような画面になります。

    項目の DiskExplorer をクリックします。

    すると、次のような画面になります。

    「ダウンロード」の editd168.lzh のリンクをクリックします。
    すると、editd168.lzh というファイルがダウンロードされます。

    .lzh 形式での圧縮なので、別途解凍ソフトが必要になります
  2. 「+Lhaca」のダウンロードサイトにアクセスします。
    https://forest.watch.impress.co.jp/library/software/pluslhaca/

    右上の大きな「窓の杜からダウンロード」ボタンを押します。
    すると Lhaca076.EXE がダウンロードされます。
    Lhaca076.EXE をダブルクリックします。

    すると、ユーザーアカウント制御の画面が出ます。

    はいをクリックします。
  3. すると、次のような小さな画面が表示されます。

    OK をクリックします。
    すると、テキストが表示されます。適宜、閉じてください。

    これで「+Lhaca」がインストールされました。
  4. では、editd168.lzh を右クリックして、プログラムから開く... を選びます。
     
    プログラムのリストが出るので、一番下のほうの
    「PC でアプリを開く」(Windows 11 の場合)を選びます。
    すると、ファイルダイアログが開くので、

    C:\Program Files\Lhaca\Lhaca.exe


    を選択してください。
    選択すると、プログラムのリストの画面に戻ります。(Windows 11)
    リストに「+Lhaca」があるので、選択して、「常に使う」、「一度だけ」のどちらかのボタンを押します。

    すると、editd168.lzh が解凍されます。

    以上で DiskExplorer がインストールされました。
    (解凍してすぐに使えるタイプのソフトウェアです)

FDOS のディスクイメージを作成する。

DiskExplorer を使ってフロッピーディスクイメージを開き、その中に FDOS の各種ファイルをコピーします。
 

  1. VirtualBox で作成した、「ke2043_86f32.img」を DiskExplorer の「EDITDISK.exe」へドラッグアンドドロップします。

    すると、次のような小さな画面が表示されます。

    そのまま OK ボタンを押します。
  2. すると、次のような画面が表示されます。
    ke2043_86f32.img をディスクとして見たときの中身を表示しています。
    現在、空の状態です。


    空の状態の画面に、ke2043_86f32.zip を解凍した中の bin の中身をすべてドラッグアンドドロップします。


    すると、ke2043_86f32.img 内にコピーされます。


    この DiskExplorer の画面は閉じます。

    以上で、FDOS のディスクイメージが作成できました。


    ※ 以上の、
    1. VirtualBox の画面でフロッピーディスクイメージを新しく作成
    2. そのイメージを、DiskExplorer で開く
    3. 必要なファイルをドラッグアンドドロップする
    4. 仮想マシンのフロッピードライブ(仮想)に挿入して使用する。

    という1~3の手順と後述する4の手順は、VirtualBox でフロッピーディスクを Windows と相互で扱う際に必要な手順なので、なるべく覚えておきましょう。


    ※ ところで、下図のように DiskExplorer のショートカットを、フロッピーディスクイメージのそばに置いておくと、すぐにドラッグアンドドロップできて便利です。


486 マシンを作成する。

FDOS のディスクイメージができたので、486 マシンを作成し、OS のインストールもできます。
ここではまず、486 マシンを作成します。

以下の説明では、FreeDOS インストーラー CD(LegacyCD)の .iso ファイルを光学ドライブに設定しています。
FreeDOS インストーラー CD(LegacyCD)は、「486 マシンを起動するため」と、「HDD のフォーマットコマンドを使うため」に、 一時的に使用するだけです。FreeDOS 自体はインストールしません。


  1. VirtualBox の画面で、左のツールのメニューアイコンをクリックし、「ようこそ」を選びます。

    上部に並んでいるアイコンの、
    右端の「追加(A)」は、すでにあるマシンを左のリストに追加する、という意味です。
    右端から2番目の「新規(N)」は、新しくマシンを作成します。
  2. 新規(N) ボタンを押します。
    すると、「仮想マシンの作成」ウィンドウが表示されます。


    名前:  486
    フォルダー:  適宜、場所を決めてください。
    ISO イメージ:  FreeDOS としてダウンロードした FD13LGCY.iso を指定します。
    タイプ: Other を選びます。
    バージョン: DOS を選びます。


    たとえば、以上の設定を行った後は、下図のようになります。

    次へ ボタンを押します。
  3. すると、下図のような画面になります。

    このメインメモリーを最低の 4MB にすると、『はじめて読む486』のサポートサイトで案内されている、wmake というコマンドの実行時に「メモリーが足らない」というエラーメッセージが出てしまいます。

    そのままメインメモリー 32MB の状態で、次へ ボタンを押します。
  4. すると、下図のような画面になります。

    このまま、次へ。
  5. すると、下図のようなマシン作成の概要の画面になります。

    完了ボタンを押します。
    以上で 486 マシンが作成されました。

    ただし、ハードディスクを使うための準備や OS のインストールは行われていません。
    ”ハードウェアはソフトウェアが無ければ、ただの箱” です。


486 マシンに OS をインストールする。

FDOS のディスクイメージを使って、486 マシンに OS をインストールします。
 

  1. 「Oracle VM VirtualBox マネージャー」では
    486 というマシンが左のリストに登録され、選択されている状態です。

    上のアイコンの「起動」を押します。
  2. すると、しばらくしてから新しいウィンドウが開き、486 マシンが FreeDOS の CD から起動します。

    右側の灰色の部分が邪魔なときは、灰色部分の左上の「吹き出しに '!'」の青いアイコンをクリックします。

    画面一番下には、A:\>と表示されていて、DOS の各コマンドを実行できる状態です。

    このウィンドウ内をクリックすると、マウスとキーボードのすべての入力がこの画面に入力されます。
    その状態から Windows へ戻るには、キーボード右側の Ctrl ボタンを押します。
    (ウィンドウ右下に、Right Control と表示されているので、目当てになります)
    ウィンドウのタイトルバーをクリックするとキーボードの入力のみがこの画面に入力されます。
    これは覚えておいて下さい。
  3. 画面一番下の、A:\> の部分に、

    A:\>fdisk

    と入力し、Enter キーを押します。
    (fdisk は FreeDOS のインストーラー CD 内に入っているコマンドです)
  4. すると、下図のような画面になります。

    このまま Enter キーを押します。
  5. すると、下図のような画面になります。

    1 を押し、Enter キーを押します。(Create DOS partition...)
  6. すると、下図のような画面になります。

    1 を押し、Enter キーを押します。(Create Primary DOS Partition)
  7. すると、下図のような画面になります。

    翻訳すると、
    プライマリ DOS パーティションに利用可能な最大サイズを使用して、パーティションをアクティブにすることに同意しますか (Y/N)

    最大サイズを割り当て、アクティブにします。
    なので、このまま Enter キーを押します。
  8. すると、下図のような画面になります。

    これでディスク上にパーティションが作成されました。
    ESC キーを押します。

    すると下図の画面に戻ります。

    この画面も ESC キーを押します。

    すると、次のような画面が表示されます。

    翻訳すると、
    変更を有効にするには、システムを再起動する必要があります。
    作成または変更したドライブはフォーマットする必要があります
    再起動後。

    ESC キーを押して終了します。
  9. 仮想マシンメニューからリセットを選び、仮想マシンの再起動を行います。
    すると以下のような小さな画面が表示されます。

    リセット ボタンを押します。
  10. 再起動したら、続いて、fdisik の最後の指示に合った通り、次のコマンドを入力します。
    A:\>format c:
    コロンは、shift + ; です。
    画面は英語キーボードを想定していますが、私たちが使用しているのは日本語キーボードなので、一部の記号が別のボタンに配置されています。
    (format は FreeDOS のインストーラー CD 内に入っているコマンドです)

    すると、このようなメッセージが表示されます。

    固定ディスクドライブ C: 上のすべてのデータは失われます。承認してください。
    フォーマットを続行しますか?

    と聞いています。YES と3文字入力して Enter キーを押します。

    すると、

    ディスクに付けるラベル(ボリュームラベル)を聞いています。
    適当に入力します。そのまま Enter でも良いです。

    すると下図のようになるはずです。
  11. 続いて次のコマンドを実行します。
    A:\>fdisk /MBR
    実行後のメッセージは何もありません。
  12. デバイス メニューからフロッピードライブ>ディスクイメージを選択/作成 を選びます。
    すると、次のような画面が表示されます。

    先ほど作成した k32043_86f32.img がリストにあります。
    これを選択して、画面右下の 選択 ボタンを押します。

    続いて、b: と入力します。(コロンは、shift + ; です。)
    A:\>b:

    続いて、次のコマンドを入力します。
    B:\>sys c:
    (sys は FDOS のディスクイメージ内のコマンドです)

    すると、下図のような画面になるはずです。

    SYS: failed to open "B:COMMAND.COM"
    と表示されていますが、問題ありません。
    代わりに A:\FREEDOS\BIN\COMMAND.COM を用いた、と書かれています。

    このとき、sys コマンドにより、KERNEL.SYS というファイルが HDD へコピーされます。
    FreeDOS の KERNEL.SYS だと、サンプルプログラム 17 個中、環境によって 2~11 個しか動作しませんが、
    FDOS の KERNEL.SYS だと、サンプルプログラム 17 個中、14 個の動作確認ができています。


CD-ROM イメージの読み出しに対応する。

後でインストールすることになる open-watcom-c-dos-1.9.exe というインストーラーファイルは、80MB もあります。
フロッピーディスクは、1.44MB しかないので、無理です。
また、VirtualBox には「ファイル共有」という機能が用意されているものの、DOS は非対応になっています。
そのため、CD-ROM イメージ読み出し対応を行う必要があります。

また、必要性が高いので、CD-ROM ドライブ対応のほか、

も行っています。

 
  1. cdrom2.img をダウンロードしてください。
    cdrom2.img
  2. デバイス メニュー>フロッピードライブ>ディスクイメージを選択/作成 を選びます。
    すると、下図のような画面になります。

    左上の「追加」アイコンをクリックします。
    ファイルダイアログが表示されるので、ダウンロードした cdrom2.img を選択してください。

    選択すると下図のようになります。

    この画面で、cdrom2.img を選択状態にしてから、右下の選択ボタンを押してください。
    すると、フロッピーディスクドライブに挿入された状態になります。
    先ほども同じ作業をしましたね。
     
  3. 以下のように、コマンドを打ち込みます。
    B:\>cdinst

    すると下図のようになるはずです。

    これで CD-ROM ドライブでの CD-ROM イメージの読み出しに対応されました。
     
  4. 最後に、作成した OS の動作確認をします。

    デバイス メニューの光学ドライブ>仮想ドライブからディスクを除去
    デバイス メニューのフロッピードライブ>仮想ドライブからディスクを除去

    それぞれ行います。

    仮想マシン メニューのリセット を選びます。
    再起動されます。

    すると、次のような画面になるはずです。

    上図の ===== の区切りはそれぞれ、
    1. 日本語キーボード対応
    2. CD-ROM 対応
    3. マウス対応
    4. 終了

    となっています。

    「===== 2」の CD-ROM 対応の最後で、「CD-ROM ドライブは D: です」とメッセージが出ています。

    以上で 486 マシンに OS がインストールされました。


    ※ この環境ではサンプルプログラム 17 個中、14 個の動作確認ができています。

    動作を確認できない 3 個は、

    1. 9章 vsieve.exe
      仮想メモリを使うサンプル。
      さまざまな環境で試したが、動作しなかった。
       
    2. 12章 dpmpinfo.exe、dpmisiev.exe
      特殊な DPMI という環境で動作させるサンプル。
      Windows 3.1 など、DPMI のサーバーとなるシステムが必要。
      PC-9801版 Windows 3.1 は私の手元にあったので、PC-9801 版の同サンプルプログラムは動作確認できた。
      おそらく、PC/AT互換機版 Windows 3.1 があれば同様に動作すると思う。

    ほとんどのサンプルプログラムが動作するので良い環境ではないかと思います。


    ※ ところで、データが入っているだけのフロッピーディスクをフロッピーディスクドライブに挿入した状態で、マシンを起動させると、下図のようになります。

    このようにならないようにするには、3つの方法があります。

    を行います。
    「起動直後に F12 を押して、1 を押す」というのは、、

    ▼ 起動直後に、F12 を押します。


    ▼ すると、どの装置で起動するかを選べるので、Hard disks の 1) Primary Master を選びます。


C コンパイラ / アセンブラをインストールする。

「はじめて読む486」のサポートサイトで紹介されている通り、OpenWatcom の C コンパイラ(とアセンブラ)を使います。

 Open Watcom 1.9 をダウンロードする

  1. ダウンロードサイト: https://github.com/open-watcom

    私はまだ V2 を試したことがありませんので、V1.9 で説明します。
    画像左下の open-watcom-1.9 のリンクをクリックします。

    すると次のようなページが表示されます。

    画像下ほうの「Open Watcom 1.0-1.9 and Watcom 11.0c download」をクリックします。

    続いて表示されるページを下にスクロールして、

    この「Open Watcom 1.9 release」の、表「Version 1.90 Installer for C/C++」の、「DOS」の行の、
    「open-watcom-c-dos-1.9.exe」をクリックします。

    すると、ダウンロードされます。
    なお、このインストーラーにはアセンブラも含まれています。

Open Watcom 1.9 を CD-ROM イメージにコピーする。

open-watcom-c-dos-1.9.exe は 80MB もあり、フロッピーで受け渡すことはできません。
そこで、光学ドライブのディスクイメージで受け渡すことにします。

  1. デバイス メニューから、光学ドライブ>ディスクイメージを選択/作成... を選びます。
    すると次のような画面が表示されます。

    左上の2番目の 作成 ボタンを押します。

    すると次のような画面が表示されます。


    左上の構成ボタンを押すと、

    VISO名: CD-ROM イメージファイルのファイル名を指定できます。
    カスタムVISOオプション: (※これについて調べましたが、ほとんど情報がありません)
     
    オプションボタンを押すと、

    「隠しオブジェクトを表示」というチェックボックスが表示されます。
    この「隠しオブジェクト」とは、エクスプローラーで「隠しファイル」となっているフォルダやファイルのことです。
    オプションはそれだけみたいです。

    それでは、VISO名: は、わかりやすく、watcom としましょう。

    左のリストから open-watcom-c-dos-1.9.exe を探します。
    ダウンロードしてそのまま動かしていないなら、
    Cドライブ>Users>ユーザー名>Downloads とたどります。
    リスト上でキーボードの o キーを押すと、その頭文字のファイルへカーソルが飛びます。

    open-watcom-c-dos-1.9.exe を見つけたら選択状態にして、、

    画面中央の、「書類2枚に、水色の三角 ▶」のアイコンを押します。

    すると、右のリストに入ります。

    これで画面右下の 作成 ボタンを押します。

    すると、元の画面に戻ります。
    サイズが 0 B (0 byte)になっていますが、問題ありません。

    画面右下の 選択 ボタンを押します。

    486 マシンに戻り、CD-ROM ドライブ の D: へ移動して、dir と打ち込むと、、

    OPENWA~2.EXE というファイルがあり、これが open-watcom-c-dos-1.9.exe です。
    古い DOS はファイル名部分が 8 文字までなので、長いファイル名は短縮され、「OPENW~2.EXE」となります。
    (※ "~2" の部分は状況によって数字が異なります)
    サイズは 83MB となっています。

    以上で、Open Watcom 1.9 を CD-ROM イメージにコピーできました。

Open Watcom 1.9 をインストールする。

  1. 黒い画面に、「open-w~2」と入力し、Enter キーを押します。
    C:\>open-w~1

    すると、このような画面が現れます。

    普通のライセンス許諾の画面です。
    マウスが使えるはずなので、画面をクリックしてください。

    すると、下図のような画面になります。

    上図のメッセージで言っている、
    仮想マシン(486 マシン)でマウスを使いたいので、「キャプチャー」ボタンを押します。

    そして、マウスで I Agree ボタンを押します。
    (文字をベースにした GUI なので、Windows などよりもマウスは使いづらいかもしれません)
    (戻るときは、説明の通り、キーボード右側の CTRL キーを押してください)
  2. すると、インストールする場所を聞かれます。

    そのまま、左端の Next>> ボタンを押します。
  3. 続いて、「フルインストールするのか、部分を選んでインストールするのか」と聞かれます。
    (*) となっているのが選択中のものです。


    Selective の内容をちょっと見ると、、

    こんなふうに、ちょっとピンポイントで選択するには、ちょっと難しい感じがします。

    なので、ここでは Full Installation を選ぶことにしましょう。
    Full Installation を選び、Next>> ボタンを押します。
  4. すると、確認画面が出ます。Next>> ボタンを押します。
  5. すると、インストールが開始されます。

    1分程度で終了します。
  6. インストールの最後に、

    翻訳すると、
    セットアップでは、AUTOEXEC.BAT および CONFIG.SYS を変更する必要があります。

    セットアップでは次のことができます。
    (*) すべての変更を自動的に行います
    ( ) 後で変更を加えます

    とりあえず、「すべての変更を自動的に行います」(Make all the ...)のほうを選んでおきます。
  7. 続いて、まずは CONFIG.SYS ファイルについての変更が行われます。

    翻訳すると、
    セットアップは次のファイルを見つけられません:
    CONFIG.SYS

    [X] ファイルを作成します

    それ以外の場合は、新しいドライブを指定します。

    FreeDOS(FDOS)では、

    CONFIG.SYS FDCONFIG.SYS
    AUTOEXEC.BAT FDAUTO.BAT

    のように、改名されているので、そのファイル CONFIG.SYS は作られていません。
    これはそのまま OK ボタンを押して、CONFIG.SYS を作成します。

  8. 次に、AUTOEXEC.BAT についての変更が行われます。

    これも、同様に、OK ボタンを押します。
    これらのファイルには、OpenWatcom の C コンパイラやアセンブラなどを利用するための設定が書かれています。

  9. 次の画面は、

    翻訳すると、

    セットアップは、元の AUTOEXEC.BAT および CONFIG.SYS ファイルの内容を次のバックアップ ファイルに配置します。

    C:\AUTOEXEC.000
    C:\CONFIG.000

    OK ボタンを押します。
  10. 次の画面では、

    翻訳すると、
    セットアップはソフトウェアのインストールを完了しました。

    AUTOEXEC.BAT および CONFIG.SYS への変更を有効にするには、コンピュータを再起動する必要があります。

    と書いてあります。
    OK を押すと、黒い画面になります。
    ここでは、再起動はしなくてもだいじょうぶです。
  11. 少し余談になりますが、CONFIG.SYS と AUTOEXEC.BAT についてここで少し理解を深めましょう。

    CONFIG.SYS と AUTOEXEC.BAT

    通常の DOS では、コンピューターの起動時に最初に CONFIG.SYS の内容を読み込みます。
    CONFIG.SYS には DOS の動作(どのデバイスドライバを使う等)に関する設定が書かれています。
    CONFIG.SYS の読み込みが終わると、AUTOEXEC.BAT を自動的に実行します。
    AUTOEXEC.BAT には DOS の開始時にあらかじめ実行済みにしておきたいプログラムを具体的に書きます。

    新しい OS である FreeDOS では、FDCONFIG.SYS が存在する場合は、CONFIG.SYS は無視します。
    そして、FDCONFIG.SYS が存在せず、CONFIG.SYS が存在する場合は、CONFIG.SYS を読み込みます。
    FDCONFIG.SYS は従来の CONFIG.SYS よりも高機能になっています。

    AUTOEXEC.BAT については、AUTOEXEC.BAT ではなく、FDAUTO.BAT などの他のファイル名を代わりに使用することができるようになっています。
    (CONFIG.SYS, FDCONFIG.SYS 内の SHELL=…の記述の中でそのファイル名を指定できます)

    Watcom インストーラが作成した CONFIG.SYS と AUTOEXEC.BAT

    Watcom インストーラが作成した CONFIG.SYS は、
    FILES=20
    とだけ書いてあります。

    これは、たとえば、C言語でファイルを開くときに、

    FILE *fp = fopen( "sample.txt", "r" );

    このようにすると思いますが、この fopen() で「同時に」開けるファイルの数が 20 個まで、という意味です。


    また、AUTOEXEC.BAT のほうは、
    PATH C:\WATCOM\BINW;%PATH%
    SET INCLUDE=C:\WATCOM\H
    SET WATCOM=C:\WATOM
    SET EDPATH=C:\WATCOM\EDDAT
    SET WIPFC=C:\WATCOM\WIPFC
    このように書いてあります。
    それぞれの意味は、

    PATH Windows にも同じ環境変数があります。
    コマンドラインで、どのディレクトリにいても、フルパスではなく名前だけで呼び出せるようにするしくみです。
    ここではどこにいても Watcom のコマンドを名前だけで呼び出せるようにしています。
    INCLUDE C および C++ ヘッダーファイル(拡張子が .h のファイル)の場所
    WATCOM C および C++ライブラリファイルの場所
    EDPATH テキストエディタ「vi」のスクリプトファイルの場所。有名な vi を使う場合に使用します。
    WIPFC WIPFC とは Watcom Information Presentation Facility Compiler の略で、OS/2 用のドキュメント関係の書類を作成するソフトウェアのことらしいです。ほぼ使いません。


    そして、現状有効である FDCONFIG.SYS は下図のようになっています。

    FDCONFIG.SYS を読み込むので、CONFIG.SYS は無視されます。

    上図で、「FILES=40」と設定されており、これをわざわざ低い設定の「FILE=20」に書き換える必要はありませんね。

    また、現状有効である、FDAUTO.BAT は下図のようになっています。

    AUTOEXEC.BAT の名前は FDCONFIG.SYS の SHELL=... の記述中で FDAUTO.BAT へ代替されているので、AUTOEXEC.BAT は実行されず、FDAUTO.BAT が実行されます。
    FDAUTO.BAT では、Watcom インストーラで作成された AUTOEXEC.BAT と同じ内容を盛り込んであります。
  12. では、現状で Watcom のインストールとその設定はできていますので、動きを試してみましょう。
    C:\>wcl

    wcl と入力して Enter キーを押すと、OpenWatcom C(「C コンパイラ+リンカ」である wcl コマンド)のヘルプがテキストで表示されます。

    この一番下に Press any key to continue: と表示されています。

    何度か Enter キーを押してください。
    次々と画面に収まる分だけ表示されます。

    その他、各ツールも使用可能になっています。

    各ツール:
    C コンパイラ wcc
    アセンブラ wasm
    C コンパイラ+リンカ wcl
    ライブラリ wlib
    make wmake

以上で、C コンパイラ / アセンブラをインストールできました。

 

『はじめて読む486』のサンプルプログラム集を用意する。

書籍「はじめて読む486」のサポートサイトからサンプルプログラムをダウンロードし、486マシンへコピーします。

 『はじめて読む486』のサンプルプログラム集をダウンロードする。

  1. サポートサイト: https://github.com/tkmc/486

    上図の緑色のボタンをクリックして、表示されるメニューから Download ZIP を選びます。
    すると、486-master.zip というファイルがダウンロードされます。

    これを右クリックして、「すべて展開...」を選び、展開します。
    すると、「486-master」というフォルダができます。
    サンプルプログラムをダウンロードできました。

空のフロッピーディスクイメージを新しく作成する。

  1. 「486-master」フォルダの容量は、668 KB なので、CD-ROM イメージ(650MB)ではなく、フロッピーディスクイメージ(1.44MB)を使います。

    以前のセクション、「FDOS のディスクイメージを作成する」でもすでにフロッピーディスクイメージの作成は行いました。
    そのときは、「Oracle VM VirtualBox マネージャー」の画面で行いましたが、同じことが 486 マシンの画面からでも行えます。
  2. 486マシンの画面にて、デバイス メニュー>フロッピードライブ>ディスクイメージを選択/作成 を選ぶ。
  3. 「フロッピーディスク選択」の画面になります。画面上部の作成アイコンを押します。
  4. すると、下図のような小さな画面が表示されます。

    ファイルのパス: をフルパスで指定します。
    ファイルの場所  C:\Users\<ユーザー名>\VirtualBox VMs
    ファイル名 486-master.img
    …としましょう。
    C:\Users\<ユーザー名>\VirtualBox VMs\486-master.img
    と指定します。

    指定出来たら、Create ボタンを押します。

    これで、C:\Users\<ユーザー名>\VirtualBox VMs の場所に 486-master.img が作成されました。

『はじめて読む486』のサンプルプログラム集を空のフロッピーディスクイメージへコピーする。

  1. 「486 マシン」の「フロッピーディスク選択」の画面はそのままにして、ディスクイメージファイルを DiskExplorer で開きます。

    C:\Users\<ユーザー名>\VirtualBox VMs にて、
    作成した 486-master.img を DiskExplorer で開きます。


    小さな画面が表示されるので、plain image を選択した状態で、OK ボタンを押します。

    すると、このような画面が表示されます。

    486-master フォルダの「.gitignore」というファイル以外の全ファイルを、DiskExplorer の画面へドラッグアンドドロップします。

    ※ 「.」から始まるファイル名は昔は許されていませんでした。486 マシンの FreeDOS 上も同じで許されていません。なので、コピーしてはいけません。
    ※ .DOC というファイルは Windows では Word と ひも付けられているので Word のアイコンになっていますが、内容は単なるテキストなので、Word 文書として開くことはできません。(昔は .DOC ファイルはテキストファイルでした)

    すると、コピーされます。

    この DiskExplorer の画面は閉じてください。

    そのままにしていた、「486 マシン」の「フロッピーディスク選択」の画面にて、486-master.img が選択状態になっていることを確認してから、右下の 選択 ボタンを押します。

    以上で「486-master」フォルダの各ファイルを、新しいフロッピーディスクイメージ「486-master.img」に入れることができました。
    また、作成したフロッピーディスクイメージは、486 マシンの仮想フロッピードライブに入っている状態です。

フロッピーディスクから 486 マシンのハードディスクへコピーする。

  1. 486 マシンの画面に戻り、
    C:\>a:
    A:\>dir
    と入力します。

    すると、次のように 486-master の内容が表示されるはずです。

    続いて、
    A:\>xcopy *.* c:\486mast /s /i
    と入力します。
    c:\486mast フォルダ(ディレクトリ)が作成され、すべてのファイルがコピーされます。

    これでフロッピーディスクから 486 マシンのハードディスクへコピーされました。
    以上で、『はじめて読む486』のサンプルプログラム集の用意が整いました。

コンパイラがあり、ソースコードもあり、そして案内サイトもあります。

なので、あとはもうわかると思うのですが、、
 

サイトの通りにコンパイル、make をやってみる。

  1. https://github.com/tkmc/486 の下の方へスクロールすると、

    「『はじめて読む486』のサンプルを OpenWatcom でビルドする」というリンクがあります。
    これをクリックします。

    表示されるページをスクロールして、、

    「環境変数の設定を行ってください」とありますが、これは FDAUTO.BAT に記述済みです。

    その次に、「ディレクトリに移動します」とあります。
    A:\>c:
    C:\>cd 486mast
    C:\486MAST>cd source
    C:\486MAST\SOURCE>
    のようにします。

    そして、wasm proto0_a.asm を実行すると、

    このようにアセンブルされるはずです。

    PROTO0_A.OBJ ができあがっています。


    サイトの通りに続けると、この後は、wcl -ecc -D... と入力するところを行います。
    どうぞ行ってみてください。

    そして、サイトの通りに wmake を行うと、Error は出ませんが、一部 Warning が出ます。
    pmem.h(21): Warning! W138: No newline at end of file
    というのが多めに出てきます。これはそのテキストファイルの文字コードを、S-JIS ではなく、UTF-8 にすると出なくなります。

    また、
    Warning! W1080: SIEVE_A.OBJ ファイルは32ビットのオブジェクトファイルです
    というのも数件出ます。これは同書で想定内の警告だと思います。
    つまり、16bit の C言語プログラムに 32bit のオブジェクトファイルを結合しようとしている、という意味かな…私もその辺はあまり詳しくありません。

日本語対応を行う。


『はじめて読む486』は現代の CPU や OS の基本のしくみを理解する上でとても分かりやすいと評判の本ですが、同書で扱われている「486 CPU を搭載したパソコン」は今の時代にはなかなか手に入りません。

せっかくわかりやすい良い本なので、このページを活用してサンプルプログラムを動かして理解を深めてもらえると幸いです。