Phoenard
Public Attributes | List of all members
SDMINFAT::biosParmBlock Struct Reference

BIOS parameter block. More...

#include <PHNSDMinimal_fat.h>

Public Attributes

uint16_t bytesPerSector
 
uint8_t sectorsPerCluster
 
uint16_t reservedSectorCount
 
uint8_t fatCount
 
uint16_t rootDirEntryCount
 
uint16_t totalSectors16
 
uint8_t mediaType
 
uint16_t sectorsPerFat16
 
uint16_t sectorsPerTrtack
 
uint16_t headCount
 
uint32_t hidddenSectors
 
uint32_t totalSectors32
 
uint32_t sectorsPerFat32
 
uint16_t fat32Flags
 
uint16_t fat32Version
 
uint32_t fat32RootCluster
 
uint16_t fat32FSInfo
 
uint16_t fat32BackBootBlock
 
uint8_t fat32Reserved [12]
 

Detailed Description

BIOS parameter block.

The BIOS parameter block describes the physical layout of a FAT volume.

Member Data Documentation

uint16_t SDMINFAT::biosParmBlock::bytesPerSector

Count of bytes per sector. This value may take on only the following values: 512, 1024, 2048 or 4096

uint16_t SDMINFAT::biosParmBlock::fat32BackBootBlock

If non-zero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

uint16_t SDMINFAT::biosParmBlock::fat32Flags

This field is only defined for FAT32 media and does not exist on FAT12 and FAT16 media. Bits 0-3 – Zero-based number of active FAT. Only valid if mirroring is disabled. Bits 4-6 – Reserved. Bit 7 – 0 means the FAT is mirrored at runtime into all FATs. – 1 means only one FAT is active; it is the one referenced in bits 0-3. Bits 8-15 – Reserved.

uint16_t SDMINFAT::biosParmBlock::fat32FSInfo

Sector number of FSINFO structure in the reserved area of the FAT32 volume. Usually 1.

uint8_t SDMINFAT::biosParmBlock::fat32Reserved[12]

Reserved for future expansion. Code that formats FAT32 volumes should always set all of the bytes of this field to 0.

uint32_t SDMINFAT::biosParmBlock::fat32RootCluster

Cluster number of the first cluster of the root directory for FAT32. This usually 2 but not required to be 2.

uint16_t SDMINFAT::biosParmBlock::fat32Version

FAT32 version. High byte is major revision number. Low byte is minor revision number. Only 0.0 define.

uint8_t SDMINFAT::biosParmBlock::fatCount

The count of FAT data structures on the volume. This field should always contain the value 2 for any FAT volume of any type.

uint16_t SDMINFAT::biosParmBlock::headCount

Number of heads for interrupt 0x13. Not used otherwise.

uint32_t SDMINFAT::biosParmBlock::hidddenSectors

Count of hidden sectors preceding the partition that contains this FAT volume. This field is generally only relevant for media visible on interrupt 0x13.

uint8_t SDMINFAT::biosParmBlock::mediaType

This dates back to the old MS-DOS 1.x media determination and is no longer usually used for anything. 0xF8 is the standard value for fixed (non-removable) media. For removable media, 0xF0 is frequently used. Legal values are 0xF0 or 0xF8-0xFF.

uint16_t SDMINFAT::biosParmBlock::reservedSectorCount

Number of sectors before the first FAT. This value must not be zero.

uint16_t SDMINFAT::biosParmBlock::rootDirEntryCount

For FAT12 and FAT16 volumes, this field contains the count of 32-byte directory entries in the root directory. For FAT32 volumes, this field must be set to 0. For FAT12 and FAT16 volumes, this value should always specify a count that when multiplied by 32 results in a multiple of bytesPerSector. FAT16 volumes should use the value 512.

uint8_t SDMINFAT::biosParmBlock::sectorsPerCluster

Number of sectors per allocation unit. This value must be a power of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64, and 128.

uint16_t SDMINFAT::biosParmBlock::sectorsPerFat16

Count of sectors occupied by one FAT on FAT12/FAT16 volumes. On FAT32 volumes this field must be 0, and sectorsPerFat32 contains the FAT size count.

uint32_t SDMINFAT::biosParmBlock::sectorsPerFat32

Count of sectors occupied by one FAT on FAT32 volumes.

uint16_t SDMINFAT::biosParmBlock::sectorsPerTrtack

Sectors per track for interrupt 0x13. Not used otherwise.

uint16_t SDMINFAT::biosParmBlock::totalSectors16

This field is the old 16-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors32 must be non-zero. For FAT32 volumes, this field must be 0. For FAT12 and FAT16 volumes, this field contains the sector count, and totalSectors32 is 0 if the total sector count fits (is less than 0x10000).

uint32_t SDMINFAT::biosParmBlock::totalSectors32

This field is the new 32-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors16 must be non-zero.


The documentation for this struct was generated from the following file: