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

UptoLike

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

1хизменение частоты мерцания курсора.
0
1
2
3
4
5
6
7
Регистр 0ВhРегистр 0Аh
76543210
х
Управле-
курсором
ние
Начальная
строка
развёртки
курсора
Конечная строка
развёртки
курсора
ххх
б)
а)
Рис. 2.12. а) Формы курсора; б) Формат регистров формы курсора
Регистры 0Eh и 0Fh, формат которых аналогичен приведенному на рис. 2.12 б),
определяют символьную позицию в видеобуфере, в которой находится курсор.
14-битный ад
р
ес позиции к
ур
со
р
а
Регистр 0Ch Регистр 0Dh
76 0 07
0
Рис. 2.13. Регистры начального адреса видеобуфера
Позиция курсора задается как смещение от начального адреса видеобуфера с добавлением
младшего нулевого бита. Оба регистра допускают операции записи и считывания, что позволяет
помещать курсор в любую символьную позицию экрана или определять его текущую позицию.
Данный алгоритм формирования формы курсора применяется в адаптерах MDA, CGA и MCGA. В
адаптере EGA значение, загружаемое в регистр конца курсора, должно быть на единицу больше
номера нижней строки развертки курсора. В адаптере VGA нет режимазаворачиваниякурсора
на верх символьной матрицы, если номер строки в регистре 0Ah больше номера нижней
символьной строки матрицы. Кроме того, в данном адаптере биты 6–5 регистра конечной строки
развертки курсора (0Bh) определяют сдвиг курсора вправо относительно текущего его
месторасположения. Если в них не содержится комбинация 00b, то десятичный эквивалент битов
6–5 определяет количество сдвигов вправо.
Для удаления курсора из области экрана (невидимый курсор) следует запрограммировать
CRTC таким образом, чтобы либо позиция курсора оказалась за пределами выводимой части
видеобуфера, либо значения содержимого регистров начала и конца курсора были больше
количества строк в символьной матрице.
2.8. Графический режим работы видеосистем
В отличие от текстового режима работы, в графических режимах любая прикладная
программа должна управлять цветом каждого пикселя, выводимого на экран. В связи с этим
данные графических режимов хранятся в видеобуфере в виде двоичных полей. Максимальная
длина двоичного поля ограничена восемью битами, поэтому в каждом байте видеобуфера
содержится информация о представлении одного или нескольких пикселей на экране. Формат
двоичной карты видеобуфера определяется количеством бит, отводимых для "описания" каждого
пикселя, а нумерация битов и пикселей в пределах байта представлена в противоположном
направлении. Например, при формате двоичной карты равном четырем бит, левый пиксель
кодируется битами 4 – 7, а правыйбитами 0 – 3, т.е. выполняется линейное отображение
видеобуфера на экран. На рис. 2.14 представлены варианты кодировки пикселей в видеобуфере
адаптера CGA.
       1х – изменение частоты мерцания курсора.

   0                                               Регистр 0Аh            Регистр 0Вh
   1                                           7 6 5 4 3 2 1 0
   2
   3                                           х                        х х х
   4
   5                                           Управле- Начальная         Конечная строка
                                                 ние      строка             развёртки
   6            а)                             курсором развёртки             курсора       б)
   7                                                     курсора

       Рис. 2.12. а) Формы курсора; б) Формат регистров формы курсора

       Регистры 0Eh и 0Fh, формат которых аналогичен приведенному на рис. 2.12 б),
определяют символьную позицию в видеобуфере, в которой находится курсор.

                                 Регистр 0Ch         Регистр 0Dh
                           7 6                 0 7                  0
                                                                    0

                                 14-битный адрес позиции курсора

       Рис. 2.13. Регистры начального адреса видеобуфера

       Позиция курсора задается как смещение от начального адреса видеобуфера с добавлением
младшего нулевого бита. Оба регистра допускают операции записи и считывания, что позволяет
помещать курсор в любую символьную позицию экрана или определять его текущую позицию.
Данный алгоритм формирования формы курсора применяется в адаптерах MDA, CGA и MCGA. В
адаптере EGA значение, загружаемое в регистр конца курсора, должно быть на единицу больше
номера нижней строки развертки курсора. В адаптере VGA нет режима “заворачивания” курсора
на верх символьной матрицы, если номер строки в регистре 0Ah больше номера нижней
символьной строки матрицы. Кроме того, в данном адаптере биты 6–5 регистра конечной строки
развертки курсора (0Bh) определяют сдвиг курсора вправо относительно текущего его
месторасположения. Если в них не содержится комбинация 00b, то десятичный эквивалент битов
6–5 определяет количество сдвигов вправо.
       Для удаления курсора из области экрана (невидимый курсор) следует запрограммировать
CRTC таким образом, чтобы либо позиция курсора оказалась за пределами выводимой части
видеобуфера, либо значения содержимого регистров начала и конца курсора были больше
количества строк в символьной матрице.



                      2.8. Графический режим работы видеосистем

       В отличие от текстового режима работы, в графических режимах любая прикладная
программа должна управлять цветом каждого пикселя, выводимого на экран. В связи с этим
данные графических режимов хранятся в видеобуфере в виде двоичных полей. Максимальная
длина двоичного поля ограничена восемью битами, поэтому в каждом байте видеобуфера
содержится информация о представлении одного или нескольких пикселей на экране. Формат
двоичной карты видеобуфера определяется количеством бит, отводимых для "описания" каждого
пикселя, а нумерация битов и пикселей в пределах байта представлена в противоположном
направлении. Например, при формате двоичной карты равном четырем бит, левый пиксель
кодируется битами 4 – 7, а правый – битами 0 – 3, т.е. выполняется линейное отображение
видеобуфера на экран. На рис. 2.14 представлены варианты кодировки пикселей в видеобуфере
адаптера CGA.