SDカード容量 | ブロック(セクタ)サイズ |
1クラスタのブロック(セクタ)数 |
クラスタサイズ |
---|---|---|---|
〜15MB |
確保不能 |
||
16〜127MB |
512BYTE |
4 |
2kB |
128〜255MB | 512BYTE | 8 |
4kB |
256〜511MB | 512BYTE | 16 |
8kB |
512〜1023MB | 512BYTE | 32 |
16kB |
1024MB〜2048MB | 512BYTE | 64 |
32kB |
2GB〜4GB | 512BYTE | 128 |
64kB |
4GB〜8GB | 512BYTE | 256 |
128kB(NT4のみ) |
8GB〜16GB | 512BYTE | 512 |
256kB(NT4のみ) |
+B-C |
bytesPerSector |
1ブロック(セクタ)のバイト数 | 0002→0200→512BYTE |
+D |
sectorsPerClaster |
1クラスタのブロック(セクタ)数 | 0x40→64 ゆえに512x64=32kBクラスタである |
+E-F |
reservedSectors |
systemが占有しているブロック(セクタ)サイズ | 0600→0006→6block
ゆえにblock0006がFATの先頭である. 0600を0006と読み替えているのは、桁数の多い2進数をバイトアクセスなメモリに格納するために下位バイトから順に格納す るという決まりだからです.こういう並びをリトルエンディアンと呼称します. |
+13-14 |
totalSectors | ブロック(セクタ)の総数 | 0000の場合は、
後述のbigTotalSectorsがとって替わるようになって
いる |
+16-17 |
sectorsPerFAT |
FATがSDカード上に占めるセクタ数 | e900→00e9→233 ゆえに233x512=119296BYTE FAT16ですから2BYTEで1クラスタの情報を管理しているのですから、このSDカード上のFATは119296/2=59648クラスタを管理して いることになります.1クラスタあたり32kBYTEですので、SDカードの容量=32kB x 59648=1.9GBとなり、だいたいSDカード容量とつじつまが合います. |
+20-23 |
bigTotalSectors | ブロック(セクタ)の総数 | 00103a00→003a1000→3805184
ゆえに3805184x512=1.9GBとなり、だいたいSDカード容量とつじつまが合います. |
未使用クラスタ | 0x0000 |
予約クラスタ | 0x0001 |
有効なユーザ・データ・クラスタ | 0x0002 〜 0xffff6 |
不良クラスタ | 0xfff7 |
最終クラスタ | 0xfff8 〜 0xffff |
最初のエントリ |
2番目のエントリ |
3番目のエントリ |
||
+0-7 |
00だったら、それ以降にはファイル情報が書かれてない. E5だったら、それは削除されたファイルである. 2Eだったら、サブディレクトリに関係する.ここでは割愛する. それ以外なら8文字のファイル名 |
SDCARD |
BEER |
先頭がE5なので消去済みの意味 |
+8-A |
3文字の拡張子 |
TXT |
TXT |
|
+B |
ファイル種別 bit5 作成変更時に1 bit4 directory flag bit3 volume flag bit2 hidden flag bit1 system flag bit0 read only flag |
08→1000B ゆえにボリューム名がSDCARD |
20H→00100000B bit5=1なので作成されたばっかりということか? ゆえに、ファイル名がBEER.TXT |
20H |
+C |
reserved |
00 |
18H |
18H |
+D |
作成mSec (0-199mSec) |
00 |
3EH→62 |
12H |
+E-F |
作成時間 |
0000 |
1091→9110H→1001000100010000B bit 15 〜 11 時 10010B→18時 bit 10 〜 5 分 001000B→8分 bit 4 〜 0 秒÷2 10000B→32分 |
AF91→91AFH |
+10-11 |
作成日付 |
0000 |
933F→3F93H→0011111110010011B bit 15 〜 9 年 (1980年をゼロ年とする) 0011111B→31→2011年 bit 8 〜 5 月 (1 〜 12) 1100B→12月 bit 4 〜 0 日 (1 〜 31) 10011B→19日 |
933F→3F93H |
+12-13 |
アクセス日付 |
0000 |
933F→3F93H | 933F→3F93H |
+14-15 |
FAT32でだけつかうのでFAT16では無視 |
0000 |
0000 |
0000 |
+16-17 |
変更時間 |
0891→9108H→37128 |
cc90→90ccH | AC91→91ACH |
+18-19 |
変更日付 |
933F→3F93H→16275 |
933f→3F93H | 933F→3F93H |
+1A-1B |
開始クラスタ |
0000 |
0200→0002 | 0300→0003 |
+1C-1F |
ファイルサイズ 単位はBYTE |
00000000 |
20000000→20H→32BYTE |
16030000→00000316H→790BYTE |
開始ブロック(セクタ) |
終了ブロック(セクタ) |
||
クラスタ番号2 |
最初のクラスタ | 504 |
567 |
クラスタ番号3 | 2番目のクラスタ |
568 |
631 |
クラスタ番号4 | 3番目のクラスタ | 632 |
698 |
クラスタ番号5 | 4番目のクラスタ | 696 |
759 |
クラスタ番号6 | 5番目のクラスタ | 760 |
823 |
クラスタ番号7 | 6番目のクラスタ | 824 |
887 |
開始ブロック(セクタ) | 終了ブロック(セクタ) | ||
クラスタ番号2 | 最初のクラスタ | 504 | 567 |
クラスタ番号3 | 2番目のクラスタ | 568 | 631 |
クラスタ番号4 | 3番目のクラスタ | 632 | 698 |
クラスタ番号5 | 4番目のクラスタ | 696 | 759 |
クラスタ番号6 | 5番目のクラスタ | 760 | 823 |
クラスタ番号7 | 6番目のクラスタ | 824 | 887 |
開始ブロック(セクタ) | 終了ブロック(セクタ) | ||
BEER.TXT |
クラスタ番号2 | 504 | 567 |
クラスタ番号3 | 568 | 631 | |
クラスタ番号4 | 632 | 642のアドレス+BFHでEOF | |
BEER2.TXT |
クラスタ番号5 | 696 | 759 |
クラスタ番号6 | 760 | 823 | |
クラスタ番号7 | 824 | 834のアドレス+BFHでEOF |