Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборка Часть2 / АВМиС / Лабораторные / Лабораторная работа_Видеоадаптер.doc
Скачиваний:
39
Добавлен:
15.09.2014
Размер:
128.51 Кб
Скачать

Запись напрямую в видеопамять

Альтернативным способом вывода информации на экран может быть использование видеобуфера. Таким образом, мы можем записать символ напрямую в видео память. Довольно просто доступ осуществляется при работе в 4,5,6 или 13 режиме (это уже отмечалось ранее). При работе в данных режимах прямо из программы можно обратится к видеопамяти. Начальный адрес видеопамяти для режимов 4,5,6 – b800:0000h, для режима 13h – a000:0000h, и все эти режимы поддерживают одну страницу видеопамяти.

Для примера осуществим вывод пиксела на экран для режима 13h.

Пример:

……

offset = 320*y + x;

_ES = 0xA000;

*offset = color;

…..

Переопределение таблицы знакогенератора.

Для вывода на экран любого изображения в графическом режиме работы видеоадаптера необходимо заставить светиться группу пикселов, которые будут составлять контур изображения на экране. Такой же метод необходимо применять и при выводе символов на экран. Обычно контур символа представлен матрицей m x n, где m и n – соответственно количество строк и столбцов, отводимых под формирование одного символа. Как уже упоминалось выше для вывода символа на экран можно воспользоваться функцией AH = 09h прерывания 10h.

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

1. При работе с графическими режимами младше 13h при выводе символа функцией AH = 09h дополнительно учитывается значение бита 7 кода цвета. Если он равен 0 то пикселы, которые образуют контур символа, будут иметь код цвета заданный битами 0-6 BL. Остальные пикселы в пределах знакоместа (пикселы фона) будут иметь код цвета 0 (цвет фона). Если он равен 1 то цвет пикселов символа определяется операцией XOR текущего кода цвета пиксела с кодом цвета в битах 0 – 6 BL.

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