DH — номер головки;
DL — номер диска;
ES'.BX — адрес буфера.
Функции $02 и $03 используются соответственно для чтения и записи данных. Обмен данными с диском осуществляется порциями, кратными размеру сектора диска (для ДОС этот размер составляет 512 байт). При осуществлении операции используется контроллер прямого доступа к памяти (КПДП), схемы управления которым позволяют за одно обращение передать до 64 Кбайт данных, причем передача идет под управлением схем КПДП (без участия микропроцессора). КПДП не может проверить действительный размер буфера, выделенного для обмена данными с диском;
ответственность за неправильную длину буфера возлагается на программиста.
Функции $02 и $03 позволяют обратиться к любому физическому сектору (или группе смежных секторов). В частности, только с их помощью возможен доступ к сектору главного загрузчика. Если данные читаются (записываются) из нескольких секторов, т.е. если регистр AL > 1, обмен данными идет начиная с цилиндра и сектора, заданных в регистре СХ, по секторам до конца дорожки, далее по головкам до конца цилиндра, затем по цилиндрам.
Проверить сектор
Вход: АН" = 4;
AL — количество проверяемых секторов;
СХ — цилиндр/сектор;
DH — номер головки;
DL — номер диска.
С помощью функции $04 программа может убедиться в доступности указанных секторов. Данные проверяются по методу циклического контроля (CRC), однако обмен данными не осуществляется, поэтому при обращении к функции ей не нужен адрес буфера*. Перед обращением программа должна убедиться в готовности дисковода (мотор привода диска должен вращаться с рабочей скоростью), в противном случае будет установлен признак ошибки.
Форматировать дорожку
Вход: АН = 5;
AL — для ГД — количество секторов на дорожке, для ЖД — фактор чередования секторов;
СХ — цилиндр/сектор;
DH — номер головки;
DL — номер диска;
ES:BX — адрес данных для форматирования.
' На ПК, выпущенных до 15.11.85, буфер в ES:BX должен содержать эталон тестируемого сектора.