Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6456
Последний выпуск: 19.06.2015

Программирование EGA и VGA


----------------------------------------------------------------------
                                                    9. Р Е Г И С Т Р Ы
                       Г Р А Ф И Ч Е С К О Г О   К О Н Т Р О Л Л Е Р А
----------------------------------------------------------------------


     С помощью регистров Графического Контроллера осуществляется обра-
ботка потока данных между ЦП и памятью EGA. Они также используются
для передачи данных из памяти в виде битовых матриц в Атрибут-Конт-
роллер при разрешенном графическом режиме. Некоторые из регистров гра-
фического Контроллера предназначены для обеспечения режимов эмуляции
CGA. ОПИСАНИЕ функций Графического Контроллера сделает более ясным по-
нимание внутренних особенностей функционирования адаптера.
     Для каждой битовой матрицы памяти имеется один 8-битовый регистр-
защелка. В графическом режиме данные не записываются (или не читаются)
в память; АЛУ. установленные на плате,объединяют данные из ЦП с содер-
жимым регистров-защелок. Существует 4 таких регистра-защелки (по одно-
му для каждой матрицы),которые хранят содержимое последнего прочитан-
ного адреса памяти адаптера. Затем комбинированные данные записываются
в память. Поскольку регистры-защелки содержат полные байты данных
(часто изменяется только один бит),для защиты  от изменения немодифи-
цированных данных важно ,чтобы они содержали текущие данные. В регист-
ры-защелки должно загружаться текущее содержимое памяти до их модифи-
кации при передаче из графической памяти в регистр ЦП (например,коман-
дой MOV AL,ES:[BX],где ES:[BX] -ссылка на память EGA). Обычно факти-
ческое значение,считываемое ЦП, игнорируется, хотя назначением этих
данных можно управлять в режиме чтения.
     Регистры управления графикой осуществляют управление функциями
комбинирования данных ЦП и регистров-защелок. Например, с данными мо-
гут быть выполнены логические операции И, ИЛИ, исключающее ИЛИ;бито-
вые матрицы могут "постоянно" включаться или выключаться; позиции би-
тов могут маскироваться как неизменяемые. Отметим появление здесь
функции маскирования битовой матрицы, которая является функцией ре-
гистра Указатель Последовательности.



=======================================================================
ПОРТ 3cah: РЕГИСТР ПОЛОЖЕНИЯ ГРАФИКИ 2 (Только EGA)
           (Graphics 2 Position Register)

ОПИСАНИЕ

     B EGA входят две микросхемы Графического Контроллера, каждая из ко-
торых управляет двумя матрицами (так, что общее число матриц равно 4).
Эти две микросхемы обозначаются Графика 1 и Графика 2. Регистр Положе-
ние Графики 2 выбирает, какие два бита шины данных ЦП определяют микро-
схему Графика 2, т.e. определяет, какие цветовые матрицы управляют cxe-
мой Графика 2 (следует заметить, что введен дополнительный бит для pea-
лизации этой функции, так как достаточно одного бита на 4-битовую мат-
рицу).

ЗАМЕЧАНИЯ

     Микросхема всегда должна программироваться для положения 1.
     Значение регистра содержит адрес чтения для регистра VGA Управле-
ние Признаком (см. порт 3?ah группы Внешних регистров).
     Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе-
ния):

     Режим     0  1  2  3  4  5  6  7  d  e  f 10
              01 01 01 01 01 01 01 01 01 01 01 01

БИТЫ
 0-1     Номер положения
 2-7     He используются



=======================================================================
ПОРТ 3cch: РЕГИСТР ПОЛОЖЕНИЕ ГРАФИКА 1 (Только EGA)
           (Graphics 1 Position Register)

ОПИСАНИЕ

     B EGA входят две микросхемы Графического Контроллера, каждая из ко-
торых управляет двумя матрицами (так, что общее число матриц равно 4).
Эти две микросхемы обозначаются Графика 1 и Графика 2. Регистр Положе-
ние Графики 1 выбирает, какие два бита шины данных ЦП определяют микро-
схему Графика 1, т.e. определяет, какие цветовые матрицы управляют cxe-
мой Графика 1 (следует заметить, что введен дополнительный бит для pea-
лизации этой функции, так как достаточно одного бита на 4-битовую мат-
рицу).

ЗАМЕЧАНИЯ

     Микросхема всегда должна программироваться для положения 0.
     Значение регистра содержит адрес чтения для регистра VGA Смешан-
ный Вывод (см. порт 3c2h группы Внешних регистров).
     Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе-
ния):

     Режим     0  1  2  3  4  5  6  7  d  e  f 10
              00 00 00 00 00 00 00 00 00 00 00 00

БИТЫ
 0-1     Номер положения
 2-7     He используются



=======================================================================
ПОРТ 3ceh: РЕГИСТР АДРЕС ГРАФИКИ 1 И 2
           (Graphics 1 and 2 Address Register)

ОПИСАНИЕ

     Регистр Адрес Графики 1 и 2 определяет регистр порта 3cfh. Номер
индекса выбранного регистра выдается в порт 3ceh (командой OUT).

Индекс   Регистр
  0      Установка/Сброс
  1      Разрешение Установки/Сброса
  2      Сравнение Цветов
  3      Циклический Сдвиг Данных
  4      Выбор Схемы Чтения
  5      Регистр Режим
  6      Смешанный
  7      Цвет Безразличен
  8      Битовая Маска


=======================================================================
ПОРТ 3cfh: РЕГИСТР УСТАНОВКА/СБРОС (Индекс 0)
           (Set/Reset Register)

ОПИСАНИЕ

     Регистр Установка/Сброс может быть использован для выбора битовых
матриц в режиме "постоянного" сброса или установки. При определении
битовой матрицы как "установленной" бит маскирования устанавливается
в 1 на все время записи в память. При определении битовой матрицы в
режиме сброса в бите маскирования устанавливается 0.
     Регистр может быть использован для записи абсолютного значения
цвета в память (незатрагиваемого логическими функциями) для ограниче-
ния количества разрешенных цветов путем поддержания в конкретной бито-
вой матрице (или матрицах) состояния "включено" или "выключено" или для
сброса матриц, запрещенных в регистре Маскирования битов.

ЗАМЕЧАНИЯ

     Регистр влияет только в режиме записи 0 (см. описание регистра
Режим, индекс 5).
     Следует разрешить использование регистра Установка/Сброс через pe-
гистр Разрешение Установки/Сброса (индекс 1). B противном случае все би-
товые матрицы будут устанавливаться или сбрасываться в процессе записи в
режиме 0. B VGA применяется для записи режим 3, в котором регистр Уста-
новка/Сброс используется напрямую (нет необходимости задействовать pe-
гистр Разрешение Установки/Сброса, см. регистр Режим).
     Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе-
ния):

     Режим     0  1  2  3  4  5  6  7  d  e  f 10
              00 00 00 00 00 00 00 00 00 00 00 00

БИТЫ
   0     Установка/Сброс, битовая матрица 0
   1     Установка/Сброс, битовая матрица 1
   2     Установка/Сброс, битовая матрица 2
   3     Установка/Сброс, битовая матрица 3
 4-7     He используются



=======================================================================
ПОРТ 3cfh: РЕГИСТР РАЗРЕШЕНИЯ УСТАНОВКИ/СБРОСА (Индекс 1)
           (Enable Set/Reset Register)

ОПИСАНИЕ

     Регистр Разрешение Установки/Сброса может быть использован для "пос-
тоянного" разрешения или запрета битовой матрицы памяти, выбираемой че-
рез регистр Установка/Сброс.

ЗАМЕЧАНИЯ

     Регистр влияет только в режиме записи 0 (см. ниже описание регистра
Режим).
     До разрешения Установки/Сброса через этот регистр следует устано-
вить функцию сброса или установки в регистре Установка/Сброс.
     Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе-
ния):

     Режим     0  1  2  3  4  5  6  7  d  e  f 10
              00 00 00 00 00 00 00 00 00 00 00 00

БИТЫ
   0     Разрешение Установки/Сброса, битовая матрица 0
   1     Разрешение Установки/Сброса, битовая матрица 1
   2     Разрешение Установки/Сброса, битовая матрица 2
   3     Разрешение Установки/Сброса, битовая матрица 3
 4-7     He используются

     Пример программирования
     -------------------------------------------------------------------

     Ниже приведены две короткие программы, написанные для DOS (BASICA)
3.2. Программа, написанная на ассемблере, имеет имя SET_RST, a основная
программа для запуска написана на языке BASIC.
     Программа SЕТ_RSТ обеспечивает такую установку регистров, что в би-
товую матрицу 0 всегда записывается 0. Это особенно заметно при печати
цифр - наличие только 8 цветов. Однако линии при этом могут выводиться
шестнадцатью цветами, a окружности - белым цветом, несмотря на отсутст-
вие белого среди выводимых номеров цветов.
     Как было отмечено выше, регистр Установка/Сброс имеет значение
только при записи в режиме 0. Этот режим используется в процедурах вы-
вода символов и поэтому при их выводе задействуется 8 цветов. B то же
время в процедурах вывода линий и окружностей применяется режим вывода
2. Режим записи 0 обычно используется для записи 8-битовых комбинаций
(комбинация битов символа), в то время как peжим записи 2 применяется
в графических процедурах. Именно такое внутреннее использование режимов
записи задействовано в языке BASIC.

     10   CLS:KEY OFF
     20   SCREEN 9
     30   SHELL "set_rst"
     40   FOR I%=0 TO 15
     50      FOR J%=0 TO 20
     60         LINE(0+I%*20+J%,40)-(40+I%*20+J%,200),I%
     70      NEXT J%
     80   NEXT I%

     90   CIRCLE(320,170)150
     100  LOCATE 20,1
     110  FOR I%=1 TO 15
     120     COLOR I%:PRINT I%;
     130  NEXT I%

     cseg    segment 'public'
             assume  cs:cseg

     main    proc    far
     start:
             push    DS
             sub     AX,AX
             push    AX
             mov     DX,3ceh       ; адрес Графики 1 и 2
             mov     AL,0          ; индекс регистра Установка/Сброс
             out     DX,AL
             inc     DX            ; адрес регистра Установка/Сброс
             mov     AL,0000b      ; сброс всех матриц
             out     DX,AL
             dec     DX            ; адрес Графика 1 и 2
             mov     AL,1          ; индекс регистра Разрешения Установки
                                   ; Сброса
             out     DX,AL
             inc     DX            ; адрес регистра Разрешения Установки
                                   ; Сброса
             mov     AL,0001b      ; разрешение только матрицы 0
             out     DX,AL         ; возможен только сброс матрицы 1
             ret

     main    endp
     cseg    ends
             end     start
     -------------------------------------------------------------------

========================================================================
ПОРТ 3cfh: РЕГИСТР СРАВНЕНИЯ ЦВЕТОВ (Индекс 2)
           (Color Compare Register)

ОПИСАНИЕ

     Регистр Сравнения Цветов, как это следует из его названия, осущест-
вляет сравнение цвета, установленного в регистре, c содержимым памяти
адаптера. Сначала в регистр Сравнения Цветов записывается значение соот-
ветствующего цвета, a затем читается содержимое памяти. Значение читае-
мого бита будет равно 1, если цвет совпадает c указанным в регистре
Сравнения Цветов, и 0 - в противном случае (таким образом, в процессе
чтения ЦП по восьми пикселям может быть проведено сравнение цветов).
Регистр применяется только в режиме чтения 1 (см. регистр Режим, ин-
декс 5). Фактическое значение любой битовой матрицы может быть игнори-
ровано (подразумевается совпадение) при использовании регистра Цвет
(индекс 7).
     Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе-
ния):

     Режим     0  1  2  3  4  5  6  7  d  e  f 10
              00 00 00 00 00 00 00 00 00 00 00 00

БИТЫ
 0-3     Номер сравниваемого цвета
 4-8     He используется

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог