Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Адаптеры и контроллеры ЭВМ.docx
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
844.13 Кб
Скачать

Video bios хранится в специальном пзу (rom), размещенном на плате видеоадаптера vga. Его

емкость составляет 32 Кбайт. При включении компьютера первыми получают управление именно

программы Video BIOS и лишь затем программа тестирования оборудования компьютера POST (Power-On

Self Test), содержащаяся в ROM BIOS PC. Именно поэтому первые сообщения, появляющиеся на экране

монитора при включении PC, содержат сведения о видеоадаптере, версии Video BIOS и фирме-

производителе.

ROM Video BIOS видеоадаптера VGA является 8-разрядным. Низкое быстродействие ПЗУ, по

сравнению с оперативной памятью PC, замедляет работу видеосистемы и компьютера в целом. Для

ускорения работы практически во всех PC предусмотрена возможность копирования (разрешается при

помощи программы конфигурирования CMOS Setup) содержимого ROM BIOS и ROM Video BIOS в

специально отведенную область оперативной памяти PC, называемую теневой памятью (Shadow Memory).

Использование механизма теневой памяти увеличивает быстродействие видеосистемы, а также позволяет

при необходимости программным путем заменить Video BIOS на более новую версию.

2.1.2.1. Видеосервис bios

Видеосервис Video BIOS (в дальнейшем для краткости будем использовать термин «видеосервис

BIOS») реализуется с помощью механизма программных прерываний, т. е. путем выдачи прикладной

программой центральному процессору команды INT на прерывание с указанием номера прерывания.

Напомним, что прерывание (interrupt) — это изменение нормального хода выполнения центральным про-

цессором текущей программы и переход к выполнению более приоритетной, называемой программой

обработки прерывания. После завершения программы обработки прерывания CPU возвращается к

выполнению приостановленной программы. Архитектурой PC предусмотрены аппаратные и программные

прерывания.

2.1.2.1.1. Аппаратные прерывания

Аппаратные прерывания инициализируются различными устройствами PC (клавиатурой, мышью и др.)

путем подачи на CPU электрического сигнала по специальным линиям, называемым линиями запроса на

прерывание IRQ (Interrupt Request Line). B IBM PC/AT предусмотрено 15 линий IRQ (IRQ0 - IRQ15, (по

линии IRQ2 осуществляется каскадное соединение контроллеров прерываний). Номер линии, по которой

пришел запрос на прерывание, однозначно определяет обслуживающую данное прерывание программу. В

частности, для обработки событий, связанных с перемещением курсора мыши, традиционно используется

прерывание IRQ4, для клавиатуры - IRQ1, для принтера, подключенного к порту LPT1, - IRQ7 и т. д.

2.1.2.1.2. Программные прерывания

Программные прерывания реализуются путем подачи прикладной программой команды INT

центральному процессору с указанием в ней номера прерывания. Перед подачей этой команды прикладная

программа заносит номер функции в регистр АХ (первый из регистров общего назначения процессоров Intel

8088 и 80х86). Обычно в рамках одного прерывания доступно несколько функций, при этом отдельные

функции могут содержать несколько подфункций. Для выбора необходимой подфункции ее номер перед

вызовом прерывания также заносится в соответствующий регистр общего назначения CPU.

Номер прерывания (аппаратного или программного) однозначно связан с адресом программы обработки

прерывания, которую должен вызвать центральный процессор при инициализации прерывания. Для простой

и эффективной локализации процедуры обслуживания прерываний служит таблица векторов прерываний,

67

содержащаяся в первых ячейках оперативной памяти. В каждой строке этой таблицы (четыре байта)

содержится адрес программы обработки прерывания, а порядковый номер строки таблицы соответствует

номеру прерывания. С точки зрения языков программирования высокого уровня (PASCAL, FORTRAN),

процедура инициализации прерывания подобна процедуре вызова подпрограммы из основной (главной)

программы. Функции Video BIOS

Видеосервис BIOS реализуется при помощи программного прерывания INT 10h. Прерывание 10h имеет

несколько десятков функций управления изображением на экране монитора (табл. 2.2).

Как и сами прерывания, функции нумеруются шестнадцатеричными числами.

В качестве наиболее простого и наглядного примера использования видеосервиса BIOS рассмотрим

функцию 00h прерывания 10h — установка выбранного видеорежима. Номер видеорежима выбирается в

соответствии с табл. 1.4. Например, основной текстовый режим видеосистемы VGA (80´25 символов,

720´400/16) имеет номер 03h. Для его инициализации при помощи видеосервиса BIOS необходимо

выполнить следующие действия:

· занести в младший байт регистра AX (AL, от англ. Low — нижний) номер видеорежима — в данном

случае 03h;

· занести в старший байт регистра АХ (АН, от англ. High — верхний) номер функции — в данном

случае 00h;

· инициализировать прерывание 10h командой INT 10h. В процессе выполнения этой короткой программы будет активизирована одна из подпрограмм Video

68

BIOS, которая корректно выполнит модификацию содержимого соответствующих регистров видеоадаптера

и служебных областей системной памяти PC, в результате чего видеосистема корректно перейдет в

выбранный видеорежим.

Отметим, что за каждой функцией видеосервиса BIOS закреплены свои регистры общего назначения.

Например, координаты курсора в текстовом режиме всегда заносятся в регистр DX: номер столбца — в

младший байт DL, а номер строки—в старший DH.

Видеосервис BIOS обеспечивает простое и надежное управление видеосистемой PC независимо от ее

конкретной аппаратной реализации. Однако он имеет один существенный недостаток — сравнительно

низкую скорость выполнения функций. С целью повышения быстродействия видеосистемы используется

альтернативный метод: непосредственное изменение состояния регистров видеоадаптера прикладной

программой. Такой метод потенциально является более быстрым и эффективным, однако требует от

программиста детального знания аппаратных особенностей используемого видеоадаптера (адресов портов

ввода/ вывода, назначения и структуры данных в управляющих регистрах и т. п.).

Отметим, что управление видеоадаптером путем модификации содержимого его регистров — это

работа на свой страх и риск, поскольку малейшая ошибка может привести к сбоям в работе видеосистемы

или к «зависанию» компьютера, а в некоторых случаях — и к выходу монитора из строя. Наглядный пример

таких «сырых» программ, некорректно обновляющих содержимое регистров видеоадаптера, — драйверы к

первым моделям видеоадаптеров SVGA, особенно изделиям типа Noname. В лучшем случае такой

видеоадаптер работал медленно и некорректно, выводя на экран «мусор», а в худшем — приводил к краху

операционной системы. Поэтому главное отличие качественного видеоадаптера — качественное

программное обеспечение (драйвер).