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 стороны носителя