type
BPB_Type = record
SectSiz Word; {Количество байт в секторе:
для MS-DOS всегда 512 байт}
ClustSiz Byte; {Количество секторов в кластере} ResSecs Word; {Количество секторов перед FAT) FatCnt Byte; {Количество копий FAT} RootSiz Word; {Количество элементов корневого каталога} TotSecs Word; {Количество секторов на диске} Media Byte; {Дескриптор носителя} FatSize Word {Количество секторов в FAT} end; {BPB_Type}
В этой структуре поле SectSiz, определяющее размер сектора в байтах, для любых операционных систем, совместимых с MS-DOS, всегда имеет значение 512. Дисковые накопители могут читать и записывать секторы и другого размера — 128, 256 или 1024 байта. Такие секторы не могут обслуживаться ДОС и являются для нее «плохими» — при попытке доступа к ним программы ДОС выдадут сообщения об ошибке. Это обстоятельство широко используется для защиты программ от несанкционированного копирования (см. гл.7).
Несколько смежных секторов диска объединяются в группу, называемую кластером. Кластер — это минимальная порция дискового пространства, которую ДОС может выделить файлу. Поле ClustSiz содержит количество секторов в одном кластере. Обычно это число представляет собой степень двойки: 1, 2, 4, 8 и т.д. Причем чем больше объем диска, тем крупнее кластер. Для ГД размер кластера чаще всего составляет 2 сектора (для дискет диаметром 5'/4 дюйма) или 1 сектор (ЗУз дюйма). Для ЖД в кластер обычно входят 4, 8 или 16 секторов.
Поле Media определяет тип носителя информации. Стандартными значениями этого поля могут быть:
$FF - дискета 320 Кбайт (2 стороны, 8 секторов);
$FE - дискета 160 Кбайт (1 сторона, 8 секторов);
$FD - дискета 360 Кбайт (2 стороны, 9 секторов);
$FC - дискета 180 Кбайт (1 сторона, 9 секторов);
$F9 - дискета 1.2 Мбайт (2 стороны, 15 секторов);
$F8 - жесткий диск.
Как показывает практика, содержимое поля Media не всегда соответствует действительности (например, во многих случаях жесткий диск имеет дескриптор $00). Пожалуй, единственным относительно надежным признаком может служить информация в трех младших битах этого поля (табл.3.1).
Таблица 3.1 Значения младших бит поля Media
Разряд |
Значение |
Признак |
0 |
i |
Испояьзуются 2 стороны носителя |