- •2.2. Структура видеоадаптера.
- •2.3. Графические режимы работы видеоадаптера vga и организация видеопамяти.
- •Линейная организация видеопамяти.
- •Плоскостная организация видеопамяти.
- •2.4. Понятие палитры. Организация палитры ega, vga.
- •2.5. Видеостраницы.
- •2.7. Нестандартные режимы видеоадаптера vga.
- •2.8. Регистры контроллера элт.
- •Регистры синхронизатора.
- •2.10. Формирование изображения.
- •Постановка задачи и задания на лабораторную работу.
- •Задание 1.
- •Задание 2.
- •Приложение.
- •Int 10h ; средствами bios
- •ClearPage(0);
- •ClearPage(1);
- •PutPixel(I,1,I,0);
- •PutPixel(I,1,I,1);
- •DrawPenta(X,y,с,k,0); ; начальный пятиугольник
- •SetPage(Page);
- •DrawPenta(X,y,с,k,Page);
- •SetPage(Page); ; установка активной страницы
- •DrawPenta(...,1-Page); ; стирание предыдущ. Пятиуг.
- •; На скрытой странице, т.Е.
- •; Рисование черным цветом
- •Конец цикла
- •Asm ; возврат в текстовый режим
2.8. Регистры контроллера элт.
Видеоадаптеры EGA и VGA имеют большое количество внутренних адресуемых регистров. Все подобные регистры объединяются в группы. Доступ к большинству регистров видеоадаптеров внутри каждой группы осуществляется через два порта, адреса которых отличаются на 1. В первый порт (индексный) записывается индекс регистра, к которому осуществляется доступ, а через второй порт (порт данных; его адрес равен адресу индексного порта + 1) можно выполнять обмен данными (чтение/запись).
Регистры контроллера ЭЛТ составляют самую многочисленную группу регистров видеоадаптеров. Для видеоадаптера VGA группа содержит 24 регистра. Ниже перечислены некоторые из них.
Индекс |
Регистр контроллера ЭЛТ |
0Ch |
Старший байт начального адреса (Start address Register — SAR, high byte) |
0Dh |
Младший байт начального адреса (Start address Register — SAR, low byte) |
14h |
Положение подчеркивания символа (Underline Location Register — ULR) |
17h |
Управление режимом (Mode Control Register — MCR) |
Для видеоадаптера VGA адреса порта индексного регистра и порта данных соответственно равны 3D4h и 3D5h.
Регистры начального адреса видеопамяти (индексы 0Ch и 0Dh).
В регистрах SAR адрес видеоданных, которые отображаются в верхнем левом углу экрана монитора. Регистры начального адреса можно использовать для перемещения изображения по экрану и для переключения активной страницы видеопамяти.
Если нужно использовать регистры для переключения страниц видеопамяти, то в регистры SAR надо записать смещение (базу) страницы видеопамяти (относительно начала видеопамяти), которую необходимо отобразить на экране.
Регистр управления режимом (индекс 17h).
Регистр содержит набор битов, управляющих контроллером ЭЛТ.
-
Регистры синхронизатора.
Синхронизатор управляет всеми временными параметрами видеоадаптера, а также разрешением и запрещением доступа к отдельным цветовым слоям видеопамяти. Синхронизатор содержит 5 регистров. Некоторые из них рассмотрены ниже.
Индекс |
Регистр синхронизатора |
2 |
Регистр маски плоскости (Map Mask) |
4 |
Регистр определения структуры памяти (Memory Mode Register — MMR) |
Доступ к регистрам осуществляется через индексный порт с адресом 3C4h и через порт данных с адресом 3C5h.
Регистр маски плоскости (индекс 2).
Разрешает или запрещает битовые плоскости во время записи в видеопамять.
Биты 0-3 отвечают за каждую из 4 плоскостей соответственно. Если эти биты принимают значение 1, то соответствующая плоскость может быть модифицирована.
Биты 4-7 не используются.
Регистр определения структуры памяти (индекс 4).
BIOS инициализирует этот регистр во время выбора режима работы видеоадаптера и определяет структуру видеопамяти в этом режиме.
Бит 0. Для адаптера VGA этот бит сброшен в 0.
Бит 1. Для видеоадаптера EGA бит равен 1, если объем видеопамяти больше 64 Кб.
Бит 2. Если бит содержит 0, то доступ по четным адресам происходит к нулевому цветовому слою, а по нечетным — к первому.
Биты 3-7 не используются.