Системное программное обеспечение персональных ЭВМ

Cредства чтения секторов BIOS и DOS.


10.2. Cредства чтения секторов BIOS и DOS.

В BIOS работа с дисками поддерживается прерыванием 0x13. Это весьма "богатое" прерывание, имеющее много функций, определяемых содержимым регистра AH. Ниже приведена краткая сводка функций этого прерывания (номера функций 16-ричные):



0- сброс дисковой подсистемы;
1- состояние дисковой подсистемы;
2- чтение секторов;
3- запись секторов;
4- контроль секторов;
5,6,7- форматирование дорожки;
8- параметры накопителя;
9- инициализация таблиц BIOS для жесткого диска;
A- длинное чтение (жесткий диск);
B- длинная запись (жесткий диск);
C- поиск цилиндра (жесткий диск);
D- альтернативный сброс (жесткий диск);
E- чтение буфера секторов (жесткий диск);
F- запись буфера секторов (жесткий диск);
10- проверка готовности (жесткий диск);
11- перекалибровка дисковода (жесткий диск);
12,13,14- диагностика контроллера (жесткий диск);
15- тип диска;
16- состояние замены (гибкий диск);
17- установка типа;
18- установка типа носителя;
19- парковка головок;
1A,1B,1C- ESDI жесткий диск.

Для целей нашего пособия наиболее интересны функции 2 и 3 - чтение и запись. Формат обращения к этим функция преры- вания 0x13 (содержимое регистров) следующий:

AH- номер функции;
AL- количество секторов, которое нужно прочитать/записать; CX - номер дорожки и сектора (см.ниже); DH - номер головки; DL - физический номер дисковода (0 - дисковод A, 1 - B, 0x80 - 1-й жесткий диск, 0x81 - 2-й жесткий диск);
ES:BX- адрес области оперативной памяти, с которой происходит обмен.

После выполнения прерывания 0x13 флаг переноса устанавливается в 0, если операция прошла без ошибок или в 1 при наличии ошибок, в последнем случае регистр AH содержит код ошибки.

Номер дорожки и сектора задается в регистре CX в следующем упакованном формате:



Содержание раздела