Функции BIOS для работы с дисками
Наилучшим и самым безопасным способом работы с дисками на физическом уровне является использование функций BIOS. Эти функции учитывают все особенности аппаратуры и предоставляют достаточно широкий набор средств доступа к дискам на физическом уровне.
Вся дисковая подсистема обслуживается прерыванием BIOS INT13h. Это прерывание выполняет множество функций. Для вызова определенной функции программа должна занести ее код в регистр AH, другие регистры, как правило, должны содержать параметры - номера используемых дисководов, цилиндров, головок, адреса таблиц параметров дискеты и жесткого диска и т.д.
Библиотека транслятора Microsoft QC 2.5 содержит специальную функцию _bios_disk(), сильно упрощающую работу с дисковыми функциями BIOS. В примерах программ, приведенных в книге, мы продемонстрируем как непосредственный вызов прерывания INT 13h, так и использование функции _bios_disk().
Мы приведем краткую таблицу функций прерывания INT 13h, после чего займемся детальным описанием этих функций. В примечании к описанию функций мы будем указывать типы компьютеров, на которых данная функция работоспособна.
00h | Сброс дисковой подсистемы |
01h | Получить состояние дисковой подсистемы |
02h | Чтение сектора |
03h | Запись сектора |
04h | Проверка сектора |
05h | Форматирование дорожки |
06h | Форматирование дорожки (НМД) |
07h | Форматирование диска (НМД) |
08h | Получить текущие параметры дисковода (НМД) |
09h | Инициализация таблиц параметров жесткого диска |
0Ah | Чтение длинное (НМД) |
0Bh | Запись длинная (НМД) |
0Ch | Поиск цилиндра (НМД) |
0Dh | Альтернативный сброс дисковода (НМД) |
0Eh | Чтение буфера сектора (НМД) |
0Fh | Запись буфера сектора (НМД) |
10h | Проверка готовности дисковода (НМД) |
11h | Рекалибровка дисковода (НМД) |
12h | Проверка памяти контроллера (НМД) |
13h | Проверка дисковода (НМД) |
14h | Проверка контроллера (НМД) |
15h | Получить тип дисковода |
16h | Проверка замены диска |
17h | Установка типа дискеты |
18h | Установка среды носителя данных для форматирования |
19h | Парковка головок (НМД) |
1Ah | Форматирование диска (ESDI НМД) |