Службы ROM BIOS для дисков |
Автор lisa
|
19.07.2011 г. |
Страница 1 из 22 ROM BIOS исходной машины IBM PC предлагала только шесть различных служб для работы с диском. Так как подсистемы по обслуживанию дискет и фиксированных дисков для семейства машин PC и PS/2 стали значительно более сложными, то и число служб ROM BIOS, поддерживающих дисковые операции ввода-вывода, возросло. Для обеспечения модульности и гибкости программного обеспечения ROM BIOS фирма IBM отделила друг от друга утилиты поддержки подсистемы для фиксированного диска и утилиты поддержки дискет. Тем не менее общее число служб ROM BIOS для диска возросло с шести для первоначальной IBM PC до 22 для PS/2 (табл.10.1).
Все службы ROM BIOS для диска активизируются с помощью прерывания 13Н (в десятичной нотации 19), и их выбор осуществляется загрузкой номера службы в регистр АН. Дисководы идентифицируются числом, передаваемым в регистре DL, при этом для индикации фиксированного диска старший бит устанавливается равным 1. Таким образом, первый дисковод компьютера для дискет определяется как имеющий номер ООН, а первый дисковод для фиксированного диска — номер 80Н.
С целью обеспечения доступа к информации о возможностях аппаратной части дискового контроллера и дискового накопителя ROM BIOS использует в своей работе ряд таблиц с описательными параметрами, называемых базовыми таблицами диска. ROM BIOS поддерживает сегментные адреса базовых таблиц диска, для этого она использует векторы прерываний. Адрес таблицы для текущего дисковода для дискет находится в векторе прерывания 1ЕН (0000:0074Н); адреса таблиц для первого и второго дисковода для фиксированных дисков находятся в векторах 41Н (0000:0104Н) и 46Н (0000:0118Н).
Для большинства программистов базовые таблицы дисков являются невидимой частью дисковых служб. Однако порой в специальных целях может возникнуть потребность в изменении некоторых базовых параметров диска. По этой причине ближе к концу данной главы мы включили краткое описание базовых таблиц диска.
В следующих разделах описывается каждая служба ROM BIOS в отдельности.
|
Последнее обновление ( 19.07.2011 г. )
|