Программирование видеоадаптеров




Режим 320х400 пикселов, 256 цветов


Мы начнем рассмотрение нестандартных режимов с режима, имеющего разрешение 320х400 пикселов. Программирование этого режима является самым простым и безопасным, так как при его установке нам не придется изменять содержимое регистров контроллера ЭЛТ.

Как мы указывали при описании режимов видеоадаптеров, в режиме 13h используется двойное сканирование. То есть в этом режиме - 320х200 пикселов на самом деле отображается не 200, а 400 линий сканирования. Перепрограммировав несколько регистров адаптера можно перевести его в режим 320х400 пикселов.

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

       Устанавливаем при помощи функций BIOS стандартный режим номер 13h (320х200 пикселов, 256 цветов). При этом программируются все регистры видеоадаптера и нам останется только изменить содержимое нескольких регистров.

       Изменяем структуру видеопамяти, чтобы иметь возможность адресовать 256 Кбайт памяти. Для этого в регистре определения структуры памяти синхронизатора запрещаем режимы в которых доступ по разным адресам (кратным двум и/или кратным четырем) осуществляется к различным цветовым слоям памяти. А в регистре режима работы графического контроллера сбрасываем в ноль бит управления четным/нечетным режимом. Это запрещает доступ по четным адресам к четным цветовым слоям, а по нечетным адресам - к нечетным цветовым слоям видеопамяти. Затем в регистре смешанного назначения графического контроллера сбрасываем бит управляющий сцеплением четных и нечетных слоев памяти. После этих действий видеопамять по своей структуре напоминает режим 10h, за исключением того, что каждый пиксел управляется одним байтом, расположенным в одном из слоев видеопамяти.

       Очищаем видеопамять (для одной или двух страниц по необходимости), так как при установке режима 13h BIOS очищает только первые 64 Кбайт из 256 Кбайт. Остальная часть видеопамяти может содержать данные, которые  появятся на экране монитора после перепрограммирования контроллера ЭЛТ.




Содержание  Назад  Вперед