торов на дорожке (поле Sectors) и описание каждого сектора (поле Tracks). Таким образом, длина поля Tracks зависит от текущего количества секторов на дорожке.

Записать/прочитать дорожку

CL = $41/$61 Структура блока параметров:

type

IOCTL_Read_Write__Type = record

Control Byte; /Всегда содержит 0} Head Word; {Номер головки) Cyl Word; {Номер дорожки}

Sec Word; {Номер сектора; нумерация начинается с 0} MaxSec Word; {Максимальный номер сектора на дорожке} Buf Pointer {Адрес буфера для обмена данными} end;

Обратите внимание: при обращении к IOCTL нумерация секторов, головок и цилиндров начинается с нуля (при обращении к прерыванию $13 секторы нумеруются, начиная с единицы). Таким образом, поле MaxSec содержит количество секторов на дорожке минус 1.

Форматировать/проверить дорожку CL = $42/$62

При обращении к этим функциям блок параметров имеет такую структуру:

type

IOCTL_Format_Type = record

Control: Byte; {Управляющий байт}

Head : Word; {Номер головки}

Track : Word; (Номер дорожки} end;

В поле Control используется только младший бит. При входе его значение 0 указывает на необходимость форматирования дорожки, а значение 1 — проверить, поддерживается ли нестандартный формат дорожки. При выходе значение 0 в этом бите означает, что указанный образ дорожки может использоваться, а значение 1 — не может использоваться.

В заключение обзора возможностей ДОС отмечу еще две полезные функции, функция с номером $Е устанавливает текущий диск (диск по умолчанию). Диск задается содержимым регистра DL перед обращением к функции, после возврата регистр AL содержит общее количество логических дисков, установленных на данном компьютере, функция $19 возвращает в регистре AL номер текущего (умалчиваемого) диска.