Определение текущих параметров НГМД или НМД
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой
На входе: AH 08h
  DL Адрес НГМД или НМД (0, 1, ..., 80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
  BL Тип устройства (только для IBM PC/AT и PS/2)
  DL Кол-во устройств, подключенных к первому контроллеру диска
  DH Максимальный номер головки
  CL Максимальный номер сектора
  CH Максимальный номер цилиндра
  ES:DI Адрес таблицы параметров НГМД
Примечание:   PC, XT, AT, PS/2

С помощью этой функции программа может определить тип НГМД или НМД, количество устройств, подключенных к первому контроллеру НМД и другие параметры, которые нужны программе для организации доступа к диску на физическом уровне.

 

Инициализация контроллера НМД.

На входе: AH 09h
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

Функцию инициализации контроллера НМД применяют после изменения таблиц параметров жесткого диска. Функции BIOS "узнают" о внесенных в таблицы изменениях и инициализируют соответствующим образом контроллер НМД.

 

Чтение секторов длинное (НМД).

На входе: AH 0Ah
  AL Количество секторов, которые нужно прочитать
  CH Номер дорожки
  CL Номер сектора
  DH Номер головки
  DL Адрес НМД (80h, 81h, ...)
  ES:BX Адрес буфера для данных
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

Функция "Чтение секторов длинное" отличается от обычной функции чтения (с кодом 02h) тем, что она дополнительно считывает в буфер данных 4 байта кода коррекции ошибки (ECC).

 

Поиск дорожки (НМД).

На входе: AH 0Ch
  CH Номер дорожки
  CL Номер сектора
  DH Номер головки
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

С помощью функции 0Ch программа может подвести головки к дорожке с заданным номером. Функции чтения и записи секторов не требуют предварительного поиска дорожки, они выполняют поиск самостоятельно.

 

Альтернативный сброс НМД.

На входе: AH 0Dh
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

Вы можете использовать эту функцию для сброса контроллера вместо функции с кодом 00h. В отличие от функции сброса дисковой системы с кодом 00h, эта функция не влияет на контроллер НГМД, она сбрасывает только контроллер накопителя на жестком магнитном диске.

 

Чтение буфера сектора (НМД).

На входе: AH 0Eh
  ES:BX Адрес буфера для данных
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT

Контроллеры НМД, как правило, имеют внутренний буфер данных. С помощью функции 0Eh программа может прочитать содержимое этого буфера в оперативную память. Обращение к диску при этом не происходит. Функция чтения буфера используется в основном для диагностики контроллера.

 

Запись буфера сектора (НМД).

На входе: AH 0Fh
  ES:BX Адрес буфера для данных
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT

Функция полностью аналогична предыдущей, за исключением того, что происходит не чтение, а запись данных из оперативной памяти в буфер контроллера. Она может быть использована для инициализации содержимого буфера сектора перед форматированием диска функцией 05h прерывания INT 13h.

 

Определение состояния НМД.

На входе: AH 10h
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

О готовности НМД можно судить по байту состояния, передаваемому функцией в регистре AH. Аналогичный байт возвращается в регистре AH функцией 01h.

 

Рекалибровка НМД.

На входе: AH 11h
  DL Адрес НМД (80h, 81h, ...)
На выходе: AH Состояние устройства после завершения последней операции
  CF 1, если произошла ошибка, 0, если ошибки нет
Примечание:   PC, XT, AT, PS/2

Вызов функции приводит к позиционированию головок выбранного НМД на нулевую дорожку. Дополнительно в регистре AH возвращается байт состояния устройства.

 

Дата: 2019-05-28, просмотров: 210.