最近のパソコンやスマートフォンは基本ソフト(OS)の主張が強く、電源を入れると、 まずはOSが無駄に時間をかけて起動し、ユーザにユーザインタフェースを示して、 アイコンクリックなどの操作によって、個別のソフトを立ち上げるという設計になっています。
それに対しX68000は、使いたいソフトが入ったフロッピーディスクを挿入して電源を入れる、 もしくはリセットすると、可能な限り速やかに、目的のソフトが立ち上がってくれます。
この「使いたいソフトが入ったフロッピーディスク」のことを、ここでは「起動ディスク」と呼びますが、 現実にはフロッピーディスクというメディアは使わず、ディスクイメージ化したものを扱います。
フロッピーディスクは、ジャケットに黒いペラペラのドーナツ型磁性体フィルムが収められた構造の情報記録媒体です。
このフィルムの表と裏の2面それぞれに塗られた磁性体に情報が記録されていて、77本のトラックと呼ばれる同心円周に、
磁気ヘッドを位置合わせして密着させ、読み書きする構造になっています。
この同心円の1本の円周上に、基本的には8つの区画(セクタ)を設定し、
そのセクタごとに1024バイトのデータの塊を個別に読み書きできるようにフロッピーディスクコントローラで
制御されています。
※「基本的には」と書きましたが、環境設定次第で9個の区画にすることも可能でした。(→9scdrv.x,9scfmt.x)
さて、以上の考察により、フロッピーディスクは2面、77周、8区画に分かれていることが
わかります。掛け算すると、1232個のセクタです。
これを、まずトラックごとに、サイド(面)0のセクタ1〜8、次にサイド1のセクタ1〜8、という順に、
1024バイトのデータ部分だけ読み出し、77トラック分つなげたものが、XDFファイルです。
XDFファイルには純粋にセクタ内のデータだけが含まれており、エラーチェック用の符号であるCRCは含まれていません。
次に、XDFファイルに含まれる1232個のデータの塊について考察します。
ここからは、データの塊を「クラスタ」と呼ぶことにします。
X68000の2HDフロッピーでは、1クラスタは1024バイトで、セクタと同じ大きさです。
| クラスタ 番号 | 内容 | 備考 |
| 0 | ブートストラップコード X68000で実行可能なプログラムが入っています。 DB.XでXDFファイルを開くとコードが読めます。 |
FORMAT.Xで初期化されるので、 通常、意識する必要はありません。 |
| 1〜2 | 第1FAT ファイル・アロケーションテーブル |
|
| 3〜4 | 第2FAT | 予備と言われていますが、使う機会はなさそうです。 |
| 5〜10 | ルートディレクトリ | 最大で192個のファイル、ディレクトリまたはボリューム名 |
| 11〜1231 | 記録データ。1221クラスタ分 | 1024バイト単位 |
本項は「起動ディスク」の考察ですので、重要なのは最初のクラスタの内容になるかと思います。
ここには、X68000で実行可能なプログラムと合わせて、MS-DOSフォーマットで定義されている情報 (クラスタごとのセクタ数や、ルートディレクトリの最大数など)が保存されています。
そのプログラムの動作をざっくり説明すると、
(1)ルートディレクトリを読んでHuman.sysを探し、先頭セクタ番号を求める
(2)Human.sysが連続したセクタに保存されているものと信じてロードする
(3)読み込んだHuman.sysのエントリアドレスにジャンプ
(4)上記の実行に問題が生じた場合、メッセージを表示してディスクをイジェクト
ということをしています。
このあたりのことは、標準のFORMAT.Xが世話してくれることなので、 特別な事情がなければ、カスタマイズする必要はありません。
ただ、X68000エミュレータ用のゲームなどを自作して公開することを考えたとき、 これぐらいの知識は持っておいて無駄にはならないと思います。
特に、Human.sysが何故連続したFATに置かれる必要があるのかは、 ブートストラップコードがFATを解析していない事情から理解できると思います。
Copyright©2026 カピバラ父さん