Anonymous user
FAT: Difference between revisions
Jump to navigation
Jump to search
m
FAT12/Little endian doesn't affect the storage, only it's interpretation. That distinction is made clearer, and the example was provided
[unchecked revision] | [unchecked revision] |
(→ExFAT) |
m (FAT12/Little endian doesn't affect the storage, only it's interpretation. That distinction is made clearer, and the example was provided) |
||
Line 441:
If "table_value" is greater than or equal to (>=) 0xFF8 then there are no more clusters in the chain. This means that the whole file has been read. If "table_value" equals (==) 0xFF7 then this cluster has been marked as "bad". "Bad" clusters are prone to errors and should be avoided. If "table_value" is not one of the above cases then it is the cluster number of the next cluster in the file.
Since FAT12 uses an entry size that is not evenly divisible by 8 bits, figuring out how to interpret the FAT
This placement might be confusing, but if we consider a little-endian machine it will start make more sense. If you load the WORD value at offset zero, the resulting value will be 0x6123. Now the nibbles are in correct order, so to get the value of the first of the two entries you just have to AND the value with 0xfff. For the second entry, you have to first load WORD at offset 1, resulting in the value of 0x4561 and shifting it down by 4 bits (effectively removing the bottom nibble).
==== FAT 16 ====
|