FAT: Difference between revisions

Jump to navigation Jump to search
443 bytes added ,  2 years ago
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]
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 on a little-endian machine can be slightly confusing. Consider two successive entries ofwith values 0x123 and 0x456 back-to-back. On a little-endian machine, theThe first byte of the first entry is the bottom two nibbles (0x23) and the highest nibble goes into the bottom nibble of the second byte (0x?1). Since the next entry is now starting mid-byte, only the lowest nibble can fit in the byte (0x6?) and the two highest nibbles go into the next byte (0x45). Therefore the 2 entries back-to-back look like this: 0x23 0x61 0x45.
 
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 ====
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu