Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!
Подтверждая отправку данной формы, Вы даете Согласие на обработку персональных данных в соответствии с Политикой обработки персональных данных

Верификация секторов HDD (Int 13h, функция 44h - BIOS Extensions).

Верификация секторов HDD (Int 13h, функция 44h - BIOS Extensions).

Для работы с HDD-дисками большого объема возможности адресации CHS стали «тормозом»и не позволяли работать с полным объемом дисков. Поэтому для обеспечения поддержки новых возможностей HDD в набор функций BIOS Int 13h фирмой Phoenix Technologies были введены дополнительные функции (BIOS Extensions). Дополнительные функции имеют номера 41h - 49h и 4Eh. Порядок работы с этими функциями отличается от принятого для стандартных функций прерывания Int 13h:

- вся адресная информация передается через буфер в оперативной памяти, а не через регистры;

- соглашения об использовании регистров изменены (для обеспечения передачи новых структур данных);

- для определения дополнительных возможностей аппаратуры (параметров) используются флаги.

Основной структурой данных для дополнительных функций прерывания Int I3h является «Пакет дискового адреса» (Disk Address Packet). Получив пакет дискового адреса, программа BIOS, (например, Int 13h, функция 44h: проверка секторов на диске по их контрольным суммам), запущенная через прерывание Int 13h преобразует содержащиеся в нем данные в физические параметры, соответствующие используемому носителю информации. Формат пакета дискового адреса описан в табл. 1.

Функция Int 13h, 44h осуществляет проверку секторов на диске по их контрольным суммам (без передачи информации между диском и оперативной памятью). Для запуска этой функции требуется записать в регистры процессора следующие значения:

• в АН — значение 44h (номер вызываемой функции);

• в DL — номер дисковода;

• в DS : SI — адрес буфера, содержащего пакет дискового адреса;

• и выполнить команду Int 13h.

После завершения операции, функция возвращает в регистре АН состояние дисковой системы (статус возврата). В случае аварийного завершения выполнения функции поле счетчика блоков (в пакете дискового адреса) содержит число блоков, которые были успешно верифицированы (проверены до того, как произошла ошибка).

 

Таблица 1. Формат пакета дискового адреса.

Смещение

Размер поля

Назначение поля

00h

BYTE

Размер пакета в байтах

01h

BYTE

Зарезервировано (имеет значение 0)

02h

BYTE

Число передаваемых блоков (0-7Fh) или признак передачи большого массива данных (FFh)

03h

BYTE

Зарезервировано (имеет значение 0)

04h

DWORD

Адрес буфера данных в оперативной памяти в режиме «сегмент:смещение» или признак линейной адресации памяти (FFFF: FFFFh)

08h

QWORD

Абсолютный номер начального блока (LBA-адрес) данных на диске

10h

QWORD

64-разрядный линейный адрес буфера передачи

18h

DWORD

Число передаваемых блоков при передаче большого массива данных

1Ch

DWORD

Зарезервировано (имеет значение 0)

 

Дополнительные функции BIOS предназначены только для жестких дисков и дисководов сменных дисков большой емкости, причем функции рассчитаны на использование не более четырех устройств (номер диска в диапазоне 80h-83h).


Лицензия