Функции BIOS для работы с дисками
Наилучший и самый безопасный способ работы с дисками на физическом уровне в среде MS-DOS - использование функций базовой системы ввода/вывода BIOS. Эти функции учитывают все особенности аппаратуры и предоставляют достаточно широкий набор средств доступа к дискам на физическом уровне.
Вся дисковая подсистема обслуживается прерыванием INT13h . Это прерывание выполняет множество функций. Для вызова определенной функции программа должна занести ее код в регистр AH. При этом в другие регистры следует записать параметры - номер НМД или НГМД, номер цилиндра, головки , адрес таблиц параметров НМД или НГМД и т. д.
Библиотека системы разработки Borland C++ содержит специальную функцию _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 |