end;
При обращении к операции $60 (получить параметры) в поле Control используется только один младший бит 0: значение 0 этого бита указывает на то, что надо дать умалчиваемое значение ВРВ (т.е. то, которое хранится в драйвере), а значение 1 требует от драйвера построить блок параметров BIOS заново. К сожалению, операция $60 не поддерживает диски большой емкости и в этом случае возвращает нулевое количество секторов в поле BPB.TotSecs.
В операции $40 (установить параметры) используются три младших бита поля Control:
• бит 0: значение 0 заставляет драйвер использовать ВРВ, подготовленный в этом вызове, а значение 1 — умалчиваемый ВРВ;
• бит 1: значение 1 указывает на то, что драйвер должен игнорировать все данные из блока параметров этого вызова, за исключением образа дорожки;
• бит 2: значение 1 сообщает драйверу, что все секторы на дорожке
имеют одинаковый размер.
Поля TypeDrv, Attrib и Cylindrs в операциях $40 и $60 заполняются драйвером. В поле TypeDrv драйвер возвращает тип устройства:
0-360 Кбайт дискета диаметром 51 / ^ дюйма 1-1.2 Мбайт дискета, 51/^ дюйма
2 - 720 Кбайт дискета, З1/^ дюйма
3 - 160 Кбайт дискета диаметром 8 дюймов
4 - 320 Кбайт дискета, 8 дюймов
5 - жесткий диск
6 - магнитная лента
7 - 1.44 Мбайт дискета, 31/^ дюйма и другие дисковые устройства
Атрибуты устройства возвращаются драйвером в поле Attrib. В этом поле используются только два младших бита:
• бит 0 — признак заменяемости носителя (1 — не заменяется);
• бит 1 — признак возможности аппаратного контроля замены дискеты (1 — есть контроль).
В поле Cylindrs драйвер записывает полное количество цилиндров на физическом устройстве.
Поле Media заполняется драйвером при вызове операции $60 и программой при вызове операции $40. Это поле конкретизирует вид носителя для ГД, поддерживающих различные форматы дискет. Например, для S^/^—f^towiowro привода, рассчитанного на 1,2 Мбайт, значение 0 этого поля сообщает, что используется дискета емкостью 1,2 Мбайт, а 1 — емкостью 360 Кбайт.
Поля ВРВ и Add заполняются драйвером при обращении к операции $60 и подготавливаются программой при обращении к операции $40. Структура этих полей рассмотрена в п.3.1.1.
Поля Sectors и Tracks используются только в функции $40 и заполняются программой. В них драйверу сообщается полное количество сек—