FAT12ファイルシステムのFATテーブル

FATテーブルの位置

FAT12のファイルシステムの内容から、
FATテーブルの先頭位置は 8セクタ FAT12のファイルシステム情報
FATテーブルの個数は 2個 FAT12のファイルシステム情報
FATテーブルのセクタ数は 12セクタ FAT12のファイルシステム情報
からFAT12のFATテーブルは、セクタ 8 と セクタ 20 に同じものがあります

FATテーブルの内容

FATテーブルの内容は 8 セクタと 20セクタに同じものがありますが先頭部分の
      000 F8 FF FF 03, F0 FF FF 6F , 00 FF 0F 00, 00 00 00 00
      010 00 00 00 00, 00 00 00 00 , 00 00 00 00, 00 00 00 00 
について説明します

FAT12の場合には 3バイト毎に2つのFATを リトルエンディアン(little endian)で格納してあります
仮にFATの先頭が "0x23 0x61 0x45" だとすると
この3バイトを リトルエンディアンですから 0x456123 と考えてから
下位の 0x123が 0番目の FAT値
上位の 0x456が 1番目の FAT値
となります。
実際のFATテーブルが
      000 F8 FF FF 03, F0 FF FF 6F , 00 FF 0F 00, 00 00 00 00 
ですから
      0x0 0xff8
      0x1 0xfff
      0x2 0x003
      0x3 0xfff
      0x4 0xfff
      0x5 0x006
      0x6 0xfff
      0x7 0x000 
となります。

FATテーブルの値

FATテーブルの先頭部分の 0 (0xff8) と 1 (0xfff) は初期化時にセットされ、変化しません

FATテーブルの値が
      0x000 の場合は未使用領域
      0xff8 以上の場合はデータ領域の終了
      0xff7 の場合は異常領域
      0x002 以上で 0xff6 以下の場合は次に続くデータ領域のクラスタ番号を示します

ルートディレクトリの格納場所(セクタ)

ルートディレクトリの位置は 32セクタですが、
この位置は、FAT12のファイルシステムの内容から、

1セクタのバイト数 (512バイト) FAT12のファイルシステム情報
FATテーブルの先頭位置は 8セクタ FAT12のファイルシステム情報
FATテーブルの個数は 2個 FAT12のファイルシステム情報
FATテーブルのセクタ数は 12セクタ FAT12のファイルシステム情報
ルートディレクトリに記載出来る最大数(512個) FAT12のファイルシステム情報
から
   格納される位置は 8 + (12 * 2) = 32 セクタとなります

   また ルートディレクトリとして使用する領域は、512個ですから
   1個当たり 32バイト使用しますので
	 512 * 32 = 16384 バイト必要となります、
   1セクタのバイト数は 512 バイトですから
	 16384 / 512 = 32 セクタ使用します
32 セクタ使用しますので、ルートディレクトリの領域は 32 セクタ から 63 セクタになります

FATテーブルが示すデータの格納場所のセクタ

ルートディレクトリの次の位置は 64セクタですから、このセクタが

クラスタ 番号 2の場所になります。
クラスタ 番号 3以上については、1クラスタのセクタ数が加算されます

1クラスタのセクタ数は 2セクタ FAT12のファイルシステム情報
の内容からから 2セクタずつ加算されます

このページはリンクフリーですが、リンクの際には連絡を頂けると有難いです
リンクの際の連絡はここからお願いします(fatlink@pjc.co.jp)

Mail: freeinfo@pjc.co.jp