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