Аппаратные интерфейсы ПК - [215]

Шрифт
Интервал

программисты пользуются далеко не всегда, поскольку работает он довольно медленно. Подробно рассматривать функции видеосервиса не будем (этому посвящены отдельные книги), отметим особо лишь функцию телетайпного вывода>Int 10h(0Eh). При вызове >AH=0Eh, в >AL — код выводимого символа, в >BL — цвет (только для графического режима). Символ выводится в текущую позицию курсора, и курсор сдвигается на следующую, переходя на новую строку после конца предыдущей и прокручивая экран при его заполнении. Специальные символы вызывают возврат на начало строки (>CR, код 0Dh), перевод строки (>LF, 0Ah) и короткий гудок (>BEL, 07h). Этой функцией часто пользуются для вывода сообщений программами, работающими на нижнем уровне (например, модули инициализации ПЗУ расширений BIOS, загрузчики и другие, не имеющие еще доступа к сервисам операционных систем). Программа вывода получается простейшей, работает на всех адаптерах и во всех режимах, но довольно медленно.

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 13h, а указатель на исходный обработчик дискового сервиса (драйвер НГМД из системной BIOS) сохранялся на месте >Int 40h. Хотя поддержка жестких дисков давно уже включена в системную BIOS, ради совместимости возможность использования прерывания >Int 40h для вызова драйвера гибких дисков сохраняется. Интерфейс этого вызова совпадает с >Int 13h, но номер устройства (в регистре >DL) не должен превышать 7Fh.

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

Стандартные драйверы дисковых функций BIOS (включая и расширенный сервис) имеют однозадачное происхождение. Во время выполнения функции значительное процессорное время может затрачиваться на ожидание завершения операции устройством. Драйверы многозадачного режима построены иначе: у них есть вызывающая часть, инициализирующая начало операции, и обработчик аппаратного прерывания от контроллера, сообщающий операционной системе о выполнении операции и результате.

Традиционный сервис BIOS

Традиционный дисковый сервис работает в 16-разрядном режиме процессора, все параметры вызова передаются через регистры процессора. Адрес сектора задается в системе CHS и размещен весьма специфично. Сервис вызывается программным прерыванием>Int 13h, при вызове принимаются следующие соглашения:

♦ номер функции задается в регистре >АН и не должен превышать 3Fh;

♦ логический номер диска задается в регистре >DL (бит 7 = 0 — признак обращения к НГМД);

♦ номер цилиндра (0-1023) задается в регистре >СН (младшие 8 бит) и >CL[7:6] (старшие 2 бита);

♦ номер головки (0-255) задается в регистре >DH;

♦ номер начального сектора (1-63) задается в регистре >CL[5:0];

♦ количество секторов, участвующих в операции, 8 бит — в регистре >AL (0-255);

♦ указатель на начало буфера оперативной памяти для считываемых и записываемых данных (address of buffer) — в регистрах >ЕS:BX;

♦ результат выполнения операции определяется по флагу переноса: >СF = 0 — успешное выполнение операции, >CF = 1 — обнаружены ошибки (код состояния возвращается в регистре >АН, код завершения последней операции с дискетами хранится по адресу 40:41h, с жесткими дисками — 40:74h);

♦ таблица параметров диска для дискет (DPT) задана указателем в памяти по адресу 0:78h, для жестких дисков (HDPT) — 0:104h или 0:118h.

Список функций традиционного сервиса приведен в табл. 12.7, подробнее они описаны в [4, 9]. Устройства могут не поддерживать некоторые функции, о чем драйверы должны «честно сообщить» кодом возврата 01h.


Таблица 12.7. Функции традиционного дискового сервиса

Номер функции АННазначение параметровИспользование регистров указателей и таблиц
DLDH, CL, CHALES: BXDPT/HDPT
00hReset Disk System — сброс дисковой системы (всех контроллеров и устройств), позиционирование на нулевой цилиндр

Рекомендуем почитать
Программируем Arduino. Профессиональная работа со скетчами.

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches».


Импульсные блоки питания для IBM PC

Книга посвящена вопросам ремонта и обслуживания импульсных источников вторичного электропитания, которые используются практически во всем современном импортном и отечественном радиоэлектронном оборудовании.В книге рассмотрены теоретические вопросы проектирования и расчета импульсных источников питания, подробно описаны основы их схемотехники и принципы функционирования. Описываются различные способы стабилизации выходных напряжений, способы защиты источников питания от перегрузок во вторичных цепях, а также рассматриваются способы отключения источников питания при повышении выходных напряжений выше установленных пределов.В качестве примеров рассмотрены источники питания современных компьютеров AT и ATX форм-факторов.


Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++

Книга предназначена для самостоятельного изучения и применения на практике цифровых сигнальных процессоров DSP (Digital Signal Processor). На примере популярной микросхемы ADSP2181 фирмы Analog Devices рассмотрены устройство, архитектура и технические характеристики цифрового сигнального процессора. Приведено описание вычислительных блоков процессора, средств разработки программного обеспечения, языка программирования и системы команд процессора. Разработанные автором книги практические схемы с применением сигнального процессора, исходные тексты программ и схемы вспомогательных устройств, полезных при отладке программ для процессора помогут получить необходимые практические навыки, с помощью которых читатель легко освоит другие типы сигнальных процессоров.


Работаем на нетбуке. Начали!

Вы приобрели нетбук? И теперь хотите понять, чем он отличается от привычного всем ноутбука? Тогда вы держите в руках действительно необходимую книгу. Прочитав ее, вы не только освоите все тонкости, относящиеся к работе с нетбуками, но и узнаете о том, как работать на компьютере. Вы научитесь выбирать мобильный компьютер и аксессуары к нему, узнаете, как установить и настроить операционную систему, научитесь пользоваться пакетом Microsoft Office, выясните, какие программы следует иметь на жестком диске, как защитить сам ноутбук и данные на нем, можно ли модернизировать нетбук и что делать в случае его поломки.


GPS: Все, что Вы хотели знать, но боялись спросить

Определение своего положения с помощью GPS навигатора, отдельного прибора, или устройства, встроенного в карманный компьютер или сотовый телефон, уже стало совершенно обычной вещью.Постепенно столь же привычным становится определение положения объекта с помощью систем телематики на основе GPS/GSM/GPRS, когда на мониторе компьютера или экранчике сотового телефона можно увидеть участок карты с отметкой, где находится другой человек или его автомобиль.«GPS» — это первые буквы английских слов «Global Positioning System» — глобальная система местоопределения.


Информатика: аппаратные средства персонального компьютера

Рассмотрены основы информатики и описаны современные аппаратные средства персонального компьютера. Сформулированы подходы к определению основных понятий в области информатики и раскрыто их содержание. Дана классификация современных аппаратных средств персонального компьютера и приведены их основные характеристики. Все основные положения иллюстрированы примерами, в которых при решении конкретных задач используются соответствующие программные средства.Рекомендуется для подготовки по дисциплине «Информатика».