The BootSector
The BootSector is loaded by the MBR or by the BIOS. When it gets control, it does not know where it is, or what state the PC is in. It only knows that it is just 512 bytes and that it isn't much, so it's first task is too load more code into memory and jump to it. Also, another 'ByteConsumer' is located in this sector. It is a table that holds information required to load the System-code modules, and later for accessing this partition for read/write operations.
Offset | Length | Description | |
0000h | 0000d | 8h | 80X86 code jump past this datastructure. |
0008h | 0008d | 8h | '+V2_FS+' signature, terminated with a zero. |
0010h | 0016d | 3h | High Version number (currently ('000') |
0013h | 0019d | 1h | '.' (Dot) |
0014h | 0020d | 3h | Low Version number (currently '007') |
0017h | 0023d | 1h | Zero (0) |
0018h | 0024d | 4h | Maximum Objects. This value indicates the maximum amount of files that can be loaded on this partition simultaneously. It gets set at format time and is fixed afterwards |
001Ch | 0028d | 4h | Current Objects. Indicates the current amount of files stored on this partition |
0020h | 0032d | 4h | MaxSector. The total amount of sectors of this partition. (Multiply by 512 to get the amount of bytes) |
0024h | 0036d | 4h | FirstAvailableSector. This value indicates the first free sector that can be used to write data to. Subtract this from MaxSectors to get the amount of free sectors. |
0028h | 0040d | 1h | Sectors used by System16 |
0029h | 0041d | 1h | Sectors used by System32 |
002Ah | 0042d | 4h | FirstDataSector. This value is the sectorindex to the FileList. |
002Eh | 0046d | 1D0h | Bootcode |
01FEh | 0002d | 2h | 55AAh signature |