2. Режимы работы видеоадаптеров

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

Существуют несколько стандартных режимов работы видеоадаптеров, поддерживаемых практически всеми адаптерами. Список стандартных режимов работы видеоадаптеров представлен в следующей таблице:

Режим работы Тип информации Количество цветов Разрешение, пиксел x пиксел Размер символов, пиксел x пиксел
0, 1 Текстовый цветной 16 40x25 8x8
0*, 1* Текстовый цветной 16 40x25 8x14
0+, 1+ Текстовый цветной 16 40x25 9x16
2, 3 Текстовый цветной 16 80x25 8x8
2*, 3* Текстовый цветной 16 80x25 8x14
2+, 3+ Текстовый цветной 16 80x25 9x16
4, 5 Графический цветной 4 320x200  
6 Графический цветной 2 640x200  
7 Текстовый монохромный 2 80x25 9x14
7+ Текстовый монохромный 2 80x25 9x16
8, 9,
0Ah
Используются видеоадаптерами компьютера PC jr, и в настоящее время интереса не представляют
0Bh,
0Ch
Зарезервировано
0Dh Графический цветной 16 320x200  
0Eh Графический цветной 16 640x200  
0Fh Графический монохромный 2 640x350  
10h Графический цветной 16 640x350  
11h Графический цветной 2 640x480  
12h Графический цветной 16 640x480  
13h Графический цветной 256 320x200  

Для видеоадаптеров EGA, VGA и SVGA режимы 0 и 1, 2 и 3, 4 и 5 не различаются. Отличие этих режимов существенно только для видеоадаптера CGA. В режимах 0, 2 и 5 не выполняется разбивка цветов (color burst) для композитного видеосигнала. В результате изображение на монохромных мониторах становиться более качественным.

Стандартные режимы работы не включают в себя все режимы, в которых могут работать видеоадаптеры. Видеоадаптеры SVGA могут также работать в режимах, имеющих улучшенные характеристики. Характеристики этих режимов отличаются у видеоадаптеров разных фирм.

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

Чтобы преодолеть несовместимость и избавить разработчиков программного обеспечения от необходимости создания собственных драйверов, ассоциация VESA (Video Electronics Standards Association) разработала одноименный стандарт VESA. Этот стандарт охватывает практически все возможности, предоставляемые современными видеоадаптерами.

Приведем список режимов работы видеоадаптеров, соответствующих стандарту VESA:

Режим работы Тип информации Количество цветов Разрешение, пиксел x пиксел Размер символов, пиксел x пиксел
100h Графический цветной 256 640x400  
101h Графический цветной 256 640x480 8х16
102h Графический цветной 16 800x600 8х8
103h Графический цветной 256 800x600 8х8
104h Графический цветной 16 1024x768  
105h Графический цветной 256 1024x768 8х16
106h Графический цветной 16 1280x1024  
107h Графический цветной 256 1280x1024  
108h Текстовый цветной 16 80x60  
109h Текстовый цветной 16 132x25 9х16
10Ah Текстовый цветной 16 132x43 9х9
10Bh Текстовый цветной 16 132x50  
10Ch Текстовый цветной 16 132x60  
10Dh Графический цветной 32768 320x200  
10Eh Графический цветной 65536 320x200  
10Fh Графический цветной 16777216 320x200  
110h Графический цветной 32768 640x480  
111h Графический цветной 65536 640x480  
112h Графический цветной 16777216 640x480  
113h Графический цветной 32768 800x600  
114h Графический цветной 65536 800x600  
115h Графический цветной 16777216 800x600  
116h Графический цветной 32768 1024x768  
117h Графический цветной 65536 1024x768  
118h Графический цветной 16777216 1024x768  
119h Графический цветной 32768 1024x768  
11Ah Графический цветной 65536 1280x1024  

Более полную информацию о стандарте VESA мы привели в главе "Видеоадаптеры SVGA". В этой главе мы также поместили описание расширения BIOS, позволяющего легко программировать видеоадаптеры SVGA, совместимые со стандартом VESA.

Режимы 0 и 1

При использовании видеоадаптеров EGA или VGA не существует функциональных различий между режимом 0 и режимом 1. В данных режимах монитор отображает цветную текстовую (алфавитно-цифровую) информацию - 25 строк и 40 столбцов. Из-за низкой разрешающей способности режимы 0 и 1 практически не применяются. Современные видеоадаптеры поддерживают эти режимы только для обеспечения совместимости с видеоадаптерами CGA и MDA.

Для отображения каждого символа используется матрица пикселов размера 8x8 пикселов, что соответствует низкому качеству изображения. Можно различить отдельные пикселы из которых состоят символы отображаемого текста.

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

Стандартный цвет Дополнительный цвет
Черный Серый
Синий Светло-синий
Зеленый Светло-зеленый
Морской волны Голубой
Красный Светло-красный
Фиолетовый Малиновый
Коричневый Желтый
Белый Ярко-белый

Для видеоадаптеров EGA, VGA и SVGA можно изменить используемую палитру цветов. Адаптер EGA с улучшенным цветным монитором позволяет выбрать 16 цветов из 64 возможных, а VGA и SVGA - 16 цветов из 262144 возможных.

В режимах 0 и 1 адаптеры EGA, VGA и SVGA поддерживают восемь страниц видеопамяти. Страницей называется часть видеопамяти, полностью определяющая содержимое одного экрана монитора. Одна из этих восьми страниц является активной. Ее содержимое отображается на экране. Для изменения активной страницы можно вызвать соответствующую функцию BIOS или непосредственно изменить содержимое регистра начального адреса, расположенного в контроллере электронно лучевой трубки.

Рисунок 2.1 демонстрирует страничную организацию видеопамяти. На мониторе отображается содержимое первой страницы памяти, расположенной по адресу B000:0800h.

Рисунок 2.1 Страничная организация видеопамяти

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

Страницы видеопамяти располагаются по следующим адресам:

Страница 0 - B800:0000h Страница 1 - B800:0800h
Страница 2 - B800:1000h Страница 3 - B800:1800h
Страница 4 - B800:2000h Страница 5 - B800:2800h
Страница 6 - B800:3000h Страница 7 - B800:3800h

Видеоадаптеры VGA и SVGA в режимах с низким разрешением используют двойное сканирование. Двойное сканирование заключается в том, что при работе видеоадаптера в режимах с разрешением 200 строк, каждая из строк отображается на экране дважды, увеличивая разрешение по вертикали до 400 строк. В результате улучшается восприятие текста на экране, так как фактически увеличивается разрешающая способность. Двойное сканирование реализуется в режимах 0, 1, 2, 3, 4, 5, 6, 0Dh и 0Eh.

Режимы 0*, 1*

Режимы EGA 0* и 1* являются расширенными версиями режимов 0 и 1 адаптера CGA. Эти режимы отличаются только размером матрицы пикселов, используемой для отображения символов текста. В режимах 0* и 1* матрица имеет большее число элементов - 8х14 пикселов.

Из-за различий в размерности матриц символов ухудшается совместимость между видеоадаптерами CGA и EGA. В частности возникают трудности при установке формы курсора и положения линии подчеркивания символов.

Режимы 0+, 1+

Видеоадаптеры VGA и SVGA реализуют собственные расширенные версии режимов 0 и 1. Они обозначаются как 0+ и 1+. Эти режимы отличаются от режимов 0 и 1 только размером матрицы пикселов, используемой при отображении символов текста. В режимах 0+ и 1+ матрица имеет большее число элементов - 9х16 пикселов.

Как и для режимов 0* и 1*, отличие размерности матриц символов создает трудности при создании совместимых программ для адаптеров CGA, EGA, VGA и SVGA. Необходимо быть уверенным в правильности установки формы курсора и положения линии подчеркивания символов.

Режимы 2 и 3

Во втором и третьем режимах монитор отображает цветную текстовую информацию. Количество строк, также как и в режимах 0 и 1, равно 25, а количество столбцов увеличено до 80. Для видеоадаптеров EGA, VGA и SVGA данные режимы не имеют различий.

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

В данных режимах работы видеоадаптеры EGA, VGA и SVGA поддерживают 8 страниц экрана. Исключение составляют конфигурации, в которых видеоадаптер EGA имеет только 64 Кбайт видеопамяти. В этом случае EGA поддерживает только первые 4 страницы видеопамяти. Одна из этих восьми страниц является активной.

Страницы видеопамяти располагаются по следующим адресам:

Страница 0 - B800:0000h Страница 1 - B800:1000h
Страница 2 - B800:2000h Страница 3 - B800:3000h
Страница 4 - B800:3000h Страница 5 - B800:5000h
Страница 6 - B800:4000h Страница 7 - B800:7000h

Режимы 2*, 3*

Режимы EGA 2* и 3* являются расширенными версиями режимов 2 и 3 для CGA. Эти режимы отличаются только размером матрицы пикселов, используемой для отображения символов текста. В режимах 2* и 3* матрица имеет большее число элементов - 8х14 пикселов.

Режимы 2+, 3+

Видеоадаптеры VGA и SVGA реализуют собственные расширенные версии режимов 2 и 3. Они обозначаются как 2+ и 3+. Эти режимы отличаются от режимов 2 и 3 только размером матрицы пикселов, используемой при отображении символов текста. В режимах 2+ и 3+ матрица имеет большее число элементов - 9х16 пикселов.

Как указывалось выше, в режимах 2 и 3 видеоадаптеры VGA и SVGA используют двойное сканирование.

Режимы 4 и 5

В этих режимах отображается цветная графическая информация. Экран монитора имеет разрешение 320 пикселов по горизонтали и 200 пикселов по вертикали. При отображении могут использоваться либо четыре основных, либо четыре альтернативных цвета:

Стандартные цвета Альтернативные цвета
Черный Черный
Светло-синий Зеленый
Малиновый Красный
Белый Коричневый

В отличие от предыдущих режимов поддерживается только одна страница видеопамяти. Ее начальный адрес равен B800:0000h.

Режим 6

В этом режиме отображается графическая информация. Экран монитора имеет разрешение 640 пикселов по горизонтали и 200 пикселов по вертикали. Поддерживаются только два цвета. Для видеоадаптера CGA режим 6 является режимом с максимальным разрешением.

Определена только одна страница видеопамяти, имеющая начальный адрес B800:0000h. Если видеоадаптеры VGA или SVGA работают в режиме 6, то они используют двойное сканирование.

Режим 7

В этом режиме отображается монохромная текстовая информация. Экран монитора имеет разрешающую способность 25 строк на 80 столбцов. Матрица символов имеет ширину 9 пикселов, а высоту - 14 пикселов.

Видеоадаптеры EGA, VGA и SVGA в режиме 7 практически полностью программно совместимы с видеоадаптером MDA.

В режиме 7 видеоадаптеры EGA, VGA и SVGA поддерживают 8 страниц видеопамяти, за исключением конфигураций, в которых адаптер EGA имеет только 64 Кбайт памяти. В этом случае EGA поддерживает только первые 4 страницы.

Страницы экрана располагаются в видеопамяти по следующим адресам:

Страница 0 - B800:0000h Страница 1 - B800:1000h
Страница 2 - B800:2000h Страница 3 - B800:3000h
Страница 4 - B800:3000h Страница 5 - B800:5000h
Страница 6 - B800:4000h Страница 7 - B800:7000h

Режим 7+

Режим видеоадаптеров VGA и SVGA номер 7+, является расширенной версией режима 7 адаптера EGA. Этот режим отличается только размером матрицы пикселов, используемой для отображения символов текста. В режиме 7+ матрица имеет большее число элементов - 9х16 пикселов.

Режимы 8, 9, 0Ah

Данные режимы используются только в компьютере PCjr и в нашей книге не рассматриваются.

Режим 0Dh

Режим 0Dh используется для отображения графической информации. При этом разрешающая способность составляет 320 пикселов по горизонтали и 200 пикселов по вертикали. Данный режим похож на режим 4, но в нем видеоадаптер может отображать 16 цветов.

В зависимости от объема памяти видеоадаптера, поддерживается различное количество страниц видеопамяти:

Объем видеопамяти Количество страниц видеопамяти
256 Кбайт 8
128 Кбайт 4
64 Кбайт 2

Страницы видеопамяти располагаются по следующим адресам:

Страница 0 - B800:0000h Страница 1 - B800:1000h
Страница 2 - B800:2000h Страница 3 - B800:3000h
Страница 4 - B800:3000h Страница 5 - B800:5000h
Страница 6 - B800:4000h Страница 7 - B800:7000h

Если видеоадаптеры VGA и SVGA работают в режиме 0Dh, то для увеличения разрешающей способности они используют двойное сканирование.

Режим 0Eh

Режим 0Eh используется для отображения графической информации. Разрешающая способность составляет 640 пикселов по горизонтали и 200 пикселов по вертикали. В данном режиме видеоадаптер может одновременно отображать 16 различных цветов.

В зависимости от объема видеопамяти поддерживается различное количество страниц видеопамяти:

Объем видеопамяти Количество страниц видеопамяти
256 Кбайт 4
128 Кбайт 2
64 Кбайт 1

Страницы видеопамяти располагаются по следующим адресам:

Страница 0 - A000:0000h Страница 1 - A000:4000h
Страница 2 - A000:8000h Страница 3 - A000:C000h

Если видеоадаптеры VGA и SVGA работают в режиме 0Eh, то они используют двойное сканирование.

Режим 0Fh

Монохромный графический режим с разрешением 640 пикселов по горизонтали и 350 пикселов по вертикали.

Видеоадаптер EGA поддерживает две страницы экрана за исключением того случая, когда видеопамять ограничена 64 Кбайт. В этом случае доступна только одна страница.

Страницы видеопамяти располагаются по следующим адресам:

Страница 0 - A000:0000h Страница 1 - A000:8000h

Каждый пиксел определяется двумя битами. Пикселы могут быть черного цвета, белого цвета, интенсивно белого цвета или могут отображаться постоянно мигающими.

Режим 10h

Цветной графический режим с разрешением 640 пикселов по горизонтали и 350 пикселов по вертикали. Данный режим обеспечивает отображение 16 цветов, кроме конфигураций, в которых видеоадаптер EGA укомплектован только 64 Кбайт видеопамяти. Адаптер EGA с 64 Кбайт видеопамяти обеспечивает отображение только четырех цветов.

Стандартная цветовая палитра для данного режима представлена в следующей таблице:

Полная палитра(объем видеопамяти не меньше 128 Кбайт) Неполная палитра(64 Кбайт видеопамяти)
Черный Черный
Голубой Голубой
Зеленый Черный
Синий Голубой
Красный Красный
Фиолетовый Белый
Коричневый Красный
Белый Белый
Темно-серый Черный
Светло-голубой Голубой
Светло-зеленый Черный
Светло-синий Голубой
Светло-красный Красный
Светло-малиновый Белый
Желтый Красный
Интенсивно-белый Белый

Вы можете изменить цветовую палитру, переустановив регистры палитры в контроллере атрибутов. Как это сделать мы расскажем в главе "Контроллер атрибутов".

Режим 11h

Цветной графический режим с разрешением 640 пикселов по горизонтали и 480 пикселов по вертикали. Данный режим обеспечивает отображение только двух цветов.

Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.

Режим 12h

Цветной графический режим с разрешением 640 пикселов по горизонтали и 480 пикселов по вертикали. Данный режим обеспечивает отображение 16 цветов. Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.

Режим 13h

Цветной графический режим с разрешением 320 пикселов по горизонтали и 200 пикселов по вертикали. Данный режим обеспечивает возможность одновременного отображения 256 цветов.

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

Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.