Введение в архитектуру персонального компьютера. Соппа И.В. - 47 стр.

UptoLike

Составители: 

Байт
видеобуфера
7 654321 0
СССССССССССС
0123456701 23
7
0
Пикселы
на эк
р
ане
Рис. 2.14. Представление данных в видеобуфере адаптера CGA
Адаптер CGA поддерживает два графических режима: 4-цветный режим 320*200 и 2-
цветный режим 640*320. Для первого из них каждый пиксель представлен в видеобуфере двумя
битами, для второгоодним (рис. 2.12). Независимо от режима данные в видеобуфере хранятся в
виде двух блоков: информация 100 четных строк развертки занимает 8 Кбайт с начальным
адресом В800:0000h, а 100 нечетных строк развертки (тоже 8 Кбайт) с начальным адресом
В800:2000h. Контроллер CRTC программируется на вывод 100 строк "символов" высотой в две
строки развертки, при этом верхняя (четная) строка берется из нижнего блока, а нижняя (нечетная)
строкаиз второго.
В двухцветном режиме 640200 каждый пиксель представлен одним битом. Если бит равен
0, то пиксель выводится на экран как черный, в противном случае цвет пикселя определяют
четыре бита регистра выбора цвета. Процедура BIOS поддерживает в области данных дисплея по
адресу 0040:0066h переменную CRT_РAL, значение которой определяет содержимое регистра
выбора цвета. Следовательно, для задания цвета необходимо модифицировать данную
переменную.
В 4-х цветном режиме 320200 каждый пиксель представлен значениями 00b, 01b, 10b и
11b. При значении 00b цвет пикселя совпадает с цветом окаймления экрана и задается
содержимым регистра выбора цвета. Цвет пикселя с ненулевыми значениями задается с помощью
трех аппаратных палитр согласно таблице 2.5.
Таблица 2.5. Определение аппаратных палитр в адаптере CGA
Режим
Значение
пиксела
Выбор цвета 001
001
Зелёный
Вишнёвый Красный
Коричневый Белый
ГолубойГолубой
Белый
Красный
01b
10b
11b
Цвет пиксела
Термин "аппаратный" связан с тем, что программными средствами изменить состав
входящих в них цветов не представляется возможным. В графе "режим" таблицы 2.5 указано
содержимое бита 2 регистра управления режимом, а в графе "выбор цвета" – бита 5 одноименного
регистра контроллера CRTC. Модификация этих регистров может быть осуществлена прямым
программированием, либо командой INT 10h.
Адаптер EGA позволяет полностью эмулировать режимы работы адаптера CGA в
графическом режиме. Однако в собственном графическом режиме (16-цветный 200 или 350
строчный) каждый байт видеобуфера содержит информацию о восьми пикселях. Это связано с
тем, что видеобуфер адаптера емкостью 256 Кбайт состоит из четырех параллельных банков ОЗУ
в том смысле, что они занимают одно и тоже адресное пространство со стороны процессора.
Значения пикселя определяют состояния бит с одинаковым смещением байта в каждом банке и с
одинаковыми номерами бит в пределах байта. Следовательно, цвет каждого пикселя определяют
четыре бита, взятые одновременно из каждого банка (рис. 2.15).
           7     6 5 4 3 2 1        0                     7                          0
            С0     С1   С2     С3          Байт            С0 С1 С2 С3 С4 С5 С6 С7
                                         видеобуфера

                                  Пикселы
                                  на экране

       Рис. 2.14. Представление данных в видеобуфере адаптера CGA

       Адаптер CGA поддерживает два графических режима: 4-цветный режим 320*200 и 2-
цветный режим 640*320. Для первого из них каждый пиксель представлен в видеобуфере двумя
битами, для второго – одним (рис. 2.12). Независимо от режима данные в видеобуфере хранятся в
виде двух блоков: информация 100 четных строк развертки занимает 8 Кбайт с начальным
адресом В800:0000h, а 100 нечетных строк развертки (тоже 8 Кбайт) с начальным адресом
В800:2000h. Контроллер CRTC программируется на вывод 100 строк "символов" высотой в две
строки развертки, при этом верхняя (четная) строка берется из нижнего блока, а нижняя (нечетная)
строка – из второго.
       В двухцветном режиме 640∗200 каждый пиксель представлен одним битом. Если бит равен
0, то пиксель выводится на экран как черный, в противном случае цвет пикселя определяют
четыре бита регистра выбора цвета. Процедура BIOS поддерживает в области данных дисплея по
адресу 0040:0066h переменную CRT_РAL, значение которой определяет содержимое регистра
выбора цвета. Следовательно, для задания цвета необходимо модифицировать данную
переменную.
       В 4-х цветном режиме 320∗200 каждый пиксель представлен значениями 00b, 01b, 10b и
11b. При значении 00b цвет пикселя совпадает с цветом окаймления экрана и задается
содержимым регистра выбора цвета. Цвет пикселя с ненулевыми значениями задается с помощью
трех аппаратных палитр согласно таблице 2.5.

       Таблица 2.5. Определение аппаратных палитр в адаптере CGA

                    Режим                     0               0               1
                    Выбор цвета               0               0               1

                        01b             Зелёный         Голубой       Голубой
                        10b             Красный         Вишнёвый      Красный
                        11b             Коричневый      Белый         Белый

                    Значение                           Цвет пиксела
                     пиксела


        Термин "аппаратный" связан с тем, что программными средствами изменить состав
входящих в них цветов не представляется возможным. В графе "режим" таблицы 2.5 указано
содержимое бита 2 регистра управления режимом, а в графе "выбор цвета" – бита 5 одноименного
регистра контроллера CRTC. Модификация этих регистров может быть осуществлена прямым
программированием, либо командой INT 10h.
        Адаптер EGA позволяет полностью эмулировать режимы работы адаптера CGA в
графическом режиме. Однако в собственном графическом режиме (16-цветный 200 или 350
строчный) каждый байт видеобуфера содержит информацию о восьми пикселях. Это связано с
тем, что видеобуфер адаптера емкостью 256 Кбайт состоит из четырех параллельных банков ОЗУ
в том смысле, что они занимают одно и тоже адресное пространство со стороны процессора.
Значения пикселя определяют состояния бит с одинаковым смещением байта в каждом банке и с
одинаковыми номерами бит в пределах байта. Следовательно, цвет каждого пикселя определяют
четыре бита, взятые одновременно из каждого банка (рис. 2.15).