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 и заполняются программой. В них драйверу сообщается полное количество сек—