Работа с дисками
Рефераты >> Кибернетика >> Работа с дисками

5.1 Сброс дисковой системы.

На входе:

AH

00h

 

DL

Адрес устройства НМД или НГМД (0, 1, ., 80h, 81h, .)

На выходе:

-

 

Примечание:

 

PC, XT, AT, PS/2

Эта функция вызывает сброс и рекалибровку дискового контроллера (в ходе этой процедуры головки устанавливаются на нулевую дорожку). Если в байте адреса старший бит (бит 7) установлен в 1, выполняется сброс контроллера НМД.

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

Адрес устройства, равный 0, соответствует первому НГМД (A:), 1 - второму (B:) и т. д. Адреса 80h, 81h соответствуют первому и второму НМД, соответственно.

5.2 Определение состояния дисковой системы.

На входе:

AH

01

 

DL

Адрес устройства НГМД или НМД (0, 1, ., 80h, 81h, .)

На выходе:

AL

Состояние устройства после завершения последней операции

Примечание:

 

PC, XT, AT, PS/2

Эта функция может быть использована для анализа результата выполнения операции и получения кода ошибки. Функция берет передаваемый в регистре AL код ошибки из области данных BIOS (байт с адресом 0000h:0441h).

Код ошибки может принимать следующие значения:

Значение

Описание

00h

Успешное завершение операции

01h

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

02h

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

03h

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

04h

Сектор не найден

05h

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

06h

Произошла замена дискеты

07h

Неправильные параметры НМД

08h

Переполнение канала прямого доступа ПДП при работе с НГМД

09h

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

0Ah

Обнаружен плохой сектор (только для НМД)

0Bh

Обнаружена плохая дорожка (только для НМД)

0Ch

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

0Dh

Неправильный номер сектора при форматировании (только для НМД)

0Eh

Обнаружена адресная метка управляющих данных (только для НМД)

0Fh

Ошибка ПДП при работе с НМД

10h

Обнаружена ошибка в контрольной сумме CRC /ECC

11h

Данные скорректированы с использованием ECC (только для НМД)

20h

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

40h

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

80h

Таймаут - программа не успевает обрабатывать данные

AAh

НМД не готов

BBh

Неизвестная ошибка (только для НМД)

CCh

Сбой при записи (только для НМД)

E0h

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

FFh

Ошибка операции чтения (только для НМД)

5.3 Чтение сектора.

На входе:

AH

02h

 

AL

Количество секторов, которые нужно прочитать

 

CH

Номер дорожки

 

CL

Номер сектора

 

DH

Номер головки

 

DL

Адрес устройства НГМД или НМД (0, 1, ., 80h, 81h, .)

 

ES:BX

Адрес буфера для данных

На выходе:

AH

Состояние дисковода после завершения последней операции

 

CF

1, если произошла ошибка, 0, если ошибки нет

Примечание:

 

PC, XT, AT, PS/2


Страница: