pos = buffer+(clus/2)*3;
if (clus&1) {
next = (*(unsigned int *)(pos+1)) >> 4;
} else {
next = (*(unsigned int *)pos) & 0x0FFF;
}
|
ADDR 00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F : ------------------------------------------------------------------- 0000 EB 58 90 4D 53 57 49 4E 34 2E 31 00 02 08 20 00 :?X信SWIN4.1 0010 02 00 00 00 00 F8 00 00 3F 00 40 00 3F 00 00 00 : . ? @ ? 0020 41 E0 3E 00 B5 0F 00 00 00 00 00 00 02 00 00 00 :A.> オ 0030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 : 0040 80 00 29 E9 12 56 1D 4E 4F 20 4E 41 4D 45 20 20 : ). V NO NAME 0050 20 20 46 41 54 33 32 20 20 20 FA 33 C9 8E D1 BC : FAT32 .3ノ紗シ |
| 位置 | 内容 | 備考 |
| 0000h〜0002h | ジャンプ命令 | ブートドライブの場合にここのコードが実行されます。 |
| 0003h〜000Ah | ラベル | 初期化を行ったOS名やバージョンが記入されます。 OSR2では「MSWIN4.1」となりそれ以前のWIN95では「MSWIN4.0」となる。 |
| 000Bh〜000Ch | ドライブの論理セクターサイズ | 通常は512(200h)バイトとなる。 |
| 000Dh | アロケーションユニットのセクター数 | 01h … 512バイト 02h … 1024バイト 04h … 2048バイト 08h … 4096バイト 64h … 32768バイト |
| 000Eh〜000Fh | メインFATの開始セクター番号 | |
| 0010h | FATの組数 | ハードディスクの場合、通常は2となる。 |
| 0011h〜0012h | ルートディレクトリエントリ数 | 12/16ビットFAT用でFAT32では常に0となる。 |
| 0013h〜0014h | 全セクター数 | セクター数がショートであらわされる場合の全セクター数。 FAT32では常に0となる。 |
| 0015h | メディアID | FATの先頭の1バイトと同じ値が入る。 ハードディスクの場合、通常はF8hとなる。 |
| 0016h〜0017h | FATレコード数 | 12/16ビットFAT用でFAT32では常に0となる。 |
| 0018h〜0019h | 1トラックあたりのセクター数 | この3つはハードディスク情報を示す。 |
| 001Ah〜001Bh | ドライブのヘッド数 | |
| 001Ch〜001Fh | 不可視セクター数 | |
| ここまでは16ビットFATと互換がある。ここからはFAT32で拡張された。 | ||
| 0020h〜0023h | FAT32ドライブの全セクター数 | |
| 0024h〜0027h | FAT32ドライブのFATセクター数 | |
| 0028h〜0029h | アクティブFAT/ミラーリングフラグ | 通常は0000hが入っており、ミラーリングを行うと Bit7がONになり、Bit3〜0にアクティブFAT番号が入る。 |
| 002Ah〜002Bh | ファイルシステムバージョン | 現在は0000h。今後の拡張のための予約エリア。 |
| 002Ch〜002Fh | ルートディレクトリの開始クラスタ位置 | フォーマット直後は00000002h(FATのすぐ後ろ)を指し 意図的に移動しない限りはこのままとなる。 |
| 0030h〜0031h | ファイルシステム情報のセクター位置 | FSINFO(ファイルシステム情報)のセクター位置を指す。 |
| 0032h〜0033h | 予備ブートセクターのセクター位置 | |
| 0034h〜003Fh | 予約エリア | |
| 0040h | 起動ドライブ情報 | 80h … 起動可能ドライブ 00h … 起動不可ドライブ |
| 0042h | 拡張IPLフラグ | 29hの場合、ボリュームシリアル番号を持つ。 |
| 0043h〜0046h | ボリュームシリアル番号 | |
| 0047h〜0051h | ドライブ名 | |
| 0052h〜0059h | ファイルシステムタイプ | FAT32またはFAT16の文字が書き込まれる。 |