КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

Программа вывода получается простейшей, работает на всех адаптерах и во всех режимах, но довольно медленно.
12.8.3.
Int 13h — поддержка дисков
Функции дискового сервиса вызываются программным прерыванием Int 13h.
Традиционно дисковый сервис подразделяет физические диски на дискеты (diskette) и фиксированные диски (fixed disk). Набор функций (табл. 7.8) для этих классов устройств несколько различается как по составу, так и по реализации. Классы различаются по диапазонам номеров физических устройств: для дискет отводят¬ся номера 0-7Fh (реально только 0-3), а для фиксированных дисков — 80h-FFh.
Контроллеры дисковых интерфейсов, имеющие в своем составе дополнительные модули BIOS, перехватывают вектор Int 13h, беря на себя обслуживание своих устройств. Когда в IBM PC/XT появились жесткие диски со своим контроллером, модуль BIOS этого контроллера, инициализирующийся во время теста POST, вставал на место Int 13 h, а указатель на исходный обработчик дискового сервиса (драйвер НГМД из системной BIOS) сохранялся на месте Int 40h. Хотя поддерж¬ка жестких дисков давно уже включена в системную BIOS, ради совместимости

12.8. Сервисы и прерывания BIOS
487
возможность использования прерывания Int 40h для вызова драйвера гибких дисков сохраняется. Интерфейс этого вызова совпадает clnt 13h,но номер устрой¬ства (в регистре DL) не должен превышать 7Fh.
Кроме функций дискового сервиса (Int 13h)c дисковыми устройствами связа¬ны еще и векторы, обслуживающие аппаратные прерывания от контроллера НГМД — Int 0Eh (линия IRQ 6) и от контроллера жестких дисков — Int 76h (линия IRQ 14). При наличии двухканального порта АТА второй канал обычно за¬действует линию IRQ 15 (вектор 77h). В XT контроллер жестких дисков занимал линию IRQ 5 (вектор ODh). Дополнительные контроллеры дисков могут исполь¬зовать и другие прерывания. Аппаратные прерывания вырабатываются контрол¬лерами по завершении (нормальному и аварийному) внутренних операций. На эти прерывания BIOS не реагирует, а при инициализации их векторы направляются на программную заглушку (инструкцию IRET).

Hosted by uCoz