Реферат: Прерывание BIOS
_AT_ Твердый диск: 1 2-байтовый 'FN' (Флаг, N сектора) для каждого сектора на дорожке. Последовательность полей 'N' определяет "коэффициент прослаивания" ("interleave factor").
_XT_ Твердый диск: ES:BX не используется. Вместо этого AL содержит значение "прослаивания" между 1 и 16 (10H).
Выход: Carry-флаг=1 при ошибке и код ошибки диска в AH.
(твердый диск: 'F'-поля установлены в 80H, чтобы пометить плохие секторы)
___ ____________________________________________________________________________
08H _AT_ _XT_ Дать параметры диска. Возвращает информацию об устройстве.
Вход: DL = диск
Выход: DL = число тв. дисков на первом контроллере
DH = максимальный номер головки
CH = максимальный номер цилиндра (младшие 8 бит)
CL = максим. номер сектора (и старшие биты макс. номера цилиндра)
___ ____________________________________________________________________________
09H _AT_ Инициализировать параметры диска. Сообщает BIOS о любом динамическом изменении таблиц параметров устройства.
Вход: Векторы для INT 41H и INT 46H адресуют Табл. параметров тв. диска соответственно для устройств 0 и 1.
Замечание: _XT_ должен указывать обе таблицы через вектор INT 40H.
___ ____________________________________________________________________________
0aH _AT_ _XT_ Чтение длинное: 512 байт + 4-байтоый ECC (код коррекции ошибок).
Вход: (как для подф. 02H)
Выход: Carry-флаг=1 при ошибке и код ошибки диска в AH.
ES:BX => в буфере (данные сектора + 4 байта) * число секторов (из AL)
___ ____________________________________________________________________________
0bH _AT_ _XT_ Запись длинная. Пишет 512 байт + 4-байтовый ECC.
Вход: (как для подф. 02H)
ES:BX => буфер содержит данные сектора + 4 байта на каждый сектор
Выход: Carry-флаг=1 при ошибке и код ошибки диска в AH.
___ ____________________________________________________________________________
0cH _AT_ _XT_ Искать цилиндр. Перемещает головку к нужной дорожке.
Вход: DL,DH,CH = диск, головка, дорожка (см. подф. 02H)
Выход: Carry-флаг=1 при ошибке и код ошибки диска в AH.