Ассемблер и программирование для IBM PC



       

ГЛАВА 18. Дисковая память IV: Функции BIOS


-----------------------------------------------------------

Дисковая память IV: Функции BIOS

Цель: Показать основные требования к программированию функций BIOS для создания и чтения дисковых файлов.

ВВЕДЕНИЕ ----------------------------------------------------------- Для дисковых операций можно программировать непосред ственно на уровне BIOS, хотя BIOS и не обеспечивает автоматически использование оглавления или блокирование/ деблокирование записей. Дисковая операция BIOS INT 13H рас сматривает все "записи", как имеющие размер сектора, а адресацию диска осуществляет в терминах действительных номера дорожки и номера сектора. Для дисковых операций чтения, записи и верификации необ ходима инициализация следующих регистров:

AH Определяет тип операции: чтение, запись, верификация или форматирование. AL Определяет число секторов. CH Определяет номер дорожки. CL Определяет номер начального сектора. DH Номер головки (стороны) : 0 или 1 для дискеты. DL Номер дисковода: 0=A, 1=B и т.д. ES:BX Адрес буфера ввода/вывода в области данных (за исключением операции верификации).

ДИСКОВЫЕ ОПЕРАЦИИ В BIOS ----------------------------------------------------------- Для указания необходимой дисковой операции необходимо перед INT 13H загрузить в регистр AH соответствующий код.

AH = 00: Сброс системы контролера дисковода Данная операция осуществляет полный сброс контролера дис ковода и требует для выполнения INT 13H загрузку в регистр AH значение шест.00. Операция используется в случаях, когда после других дисковых операций возвращается код серьезной ошибки.

AH = 01: Определить состояние дисковода Данная операция возвращает в регистре AL состояние дисковода после последней операции вводда/вывода (см.Байт состояния в следующем разделе). Операция требует только загрузки значения 01 в регистр AH.

AH = 02: Чтение секторов Данная операция выполняет чтение в память определенного числа секторов на одной дорожке. Число секторов обычно 1, 8 или 9. Адрес памяти для области ввода должен быть загружен в регистр BX, причем следует помнить, что реальный адрес




Содержание  Назад  Вперед