FAT16 BPB Calculation
Posted: Sat Feb 26, 2011 8:25 am
hello,
Plz need help how i can determine a value in FAT16 for some Media. Here is the example for 256Mb flashdisk i've got from windows formater.
FAT16 Boot structure: (256Mb Flashdisk)
JMP instruction: '0xEB 0x3C 0x90'
OEM: 'MSDOS5.0'
Bytes per Sector: '0x0200' (512 dec)
Sectors per cluster: '0x08' (8 dec)
Reserved Sectors: '0x0004' (4 dec)
Number of FATs: '0x02'
Max root entries: '0x0200' (512 dec)
Small sectors: '0x0000' (0 dec)
Media type: '0xF8'
Sectors per FAT: '0x00FA' (250 dec)
Sectors per track: '0x003F' (63 dec)
Number of heads: '0x00FF' (255 dec)
Hidden sectors: '0x00000000' (0 dec)
Large sectors: '0x0007D200' (512512 dec)
Disk number: '0x00'
Current head (not used): '0x00'
NT signature: '0x29' (41 dec)
Volume serial number: '0xDC7F521A' (3699331610 dec)
Volume label: 'NO NAME '
System ID: 'FAT16 '
My question is.. How we calculation the large sector? and determine heads and track?
I have count the large sector in bytes :512512*512bytes = 262406144 bytes
And compare with this 256*1024*1024 = 268435456 bytes
Not Same...! How it can be?
Plz need help some the algorithm or clue here...
Best Regards,
Raddel
Plz need help how i can determine a value in FAT16 for some Media. Here is the example for 256Mb flashdisk i've got from windows formater.
FAT16 Boot structure: (256Mb Flashdisk)
JMP instruction: '0xEB 0x3C 0x90'
OEM: 'MSDOS5.0'
Bytes per Sector: '0x0200' (512 dec)
Sectors per cluster: '0x08' (8 dec)
Reserved Sectors: '0x0004' (4 dec)
Number of FATs: '0x02'
Max root entries: '0x0200' (512 dec)
Small sectors: '0x0000' (0 dec)
Media type: '0xF8'
Sectors per FAT: '0x00FA' (250 dec)
Sectors per track: '0x003F' (63 dec)
Number of heads: '0x00FF' (255 dec)
Hidden sectors: '0x00000000' (0 dec)
Large sectors: '0x0007D200' (512512 dec)
Disk number: '0x00'
Current head (not used): '0x00'
NT signature: '0x29' (41 dec)
Volume serial number: '0xDC7F521A' (3699331610 dec)
Volume label: 'NO NAME '
System ID: 'FAT16 '
My question is.. How we calculation the large sector? and determine heads and track?
I have count the large sector in bytes :512512*512bytes = 262406144 bytes
And compare with this 256*1024*1024 = 268435456 bytes
Not Same...! How it can be?
Plz need help some the algorithm or clue here...
Best Regards,
Raddel