68 Глава 3

00

Нет ошибки

$01

Неправильная команда

$02

Не найдена адресная метка

$03

Попытка записи на диск, защищенный от записи

$'04

Не найден сектор

$05

Ошибка при сбросе ЖД

$06

Произошла замена дискеты (изменялось положение запора дискового привода)

$0-7

Неправильные параметры дисковода ЖД

$08

Переполнение канала прямого доступа к памяти (КПДП)

$09

Выход за границу 64 Кбайт при работе КПДП

$ОА

Обнаружен плохой сектор

$ОВ

Обнаружена плохая дорожка

$ОС

Неправильный номер дорожки

$OD

Неправильный номер сектора при форматировании

$OE

Обнаружена адресная метка управляющих данных

$OF

Ошибка КПДП

$10

Обнаружена ошибка в данных

$11

Данные скорректированы схемами контроля

$20

Сбой контроллера

$40

Сбой при поиске дорожки

$8t)

Программа не успевает обрабатывать данные (ошибка таймаута)

SAA

Не готов дисковод

$ВВ

Неизвестная ошибка

$СС

Сбой при записи

$ЕО

Ошибка регистра состояния

$FF

Ошибка операции чтения


Сбросить контроллер диска

Вход: АН = 0;

DL — номер диска.

функция $00 вызывает сброс и рекалибровку контроллера дисков (головки устанавливаются на нулевой цилиндр). Сброс рекомендуется выполнять после того, как произошла ошибка при выполнении других операций, например при чтении данных. После сброса можно попытаться выполнить неудавшуюся операцию еще раз.

Получить статус диска

Вход: АН = 1;

DL — номер диска. Выход: AL — признак ошиЬки предыдущего обращения к диску

(совпадает со значением АН в остальных функциях)

Функция $ 01 используется для анализа предыдущей дисковой операции. Передаваемый в регистре AL код завершения операции берется из области данных BIOS — из байта по адресу $0000 : $0441.

Читать/записать сектор

Вход: АН = 2 — читать сектор;

-= 3 — записать сектор, AL — количество секторов, которые нужно прочитать (записать);

СХ — цилиндр/сектор;