Как программа может определить формат FAT?
Для DOS версии 3.0 16-битовый формат используется, если размер диска превышает 4086 кластеров. Это число получилось исходя из того, что в 12 разрядах может быть представлено максимальное число 4096, кроме того, значения, большие 0ff6, зарезервированы.
Для DOS версии 3.2 16-битовый формат FAT используется в том случае, когда размер диска превышает 20790 секторов (именно секторов, а не кластеров). Фактически это означает, что 16-битовый формат используется только для дисков, имеющих размер более 10 мегабайтов.
Сектор загрузочной записи (BOOT-сектор) диска, отформатированного в DOS версии 4.0 в поле со смещением 36h содержит восьмибайтовую строку, идентифицирующую формат FAT. Она имеет вид "FAT12 " или "FAT16 ". Вы можете использовать это поле для определения формата FAT. В структуре BOOT, описанной в файле sysp.h, это поле называетcя fat_format.
Если разделы на жестком диске создавались утилитой DOS FDISK, формат FAT можно определить, анализируя содержимое поля sys
главной загрузочной записи (Master Boot Record). Если это поле содержит значение 1, используется 12-битовый формат, если 4 - 16-битовый. Однако диск, подготовленный программами диск-менеджеров, может иметь нестандартный для DOS формат таблицы разделов диска (Partition Table), и поле sys может содержать другие величины, отличные от 1 и 4.