Программирование EGA и VGA
======================================================================== ПОРТ 3cfh: РЕГИСТР РЕЖИМ (Индекс 5) (Mode Register) ОПИСАНИЕ Регистр Режим должен сначала быть выбран путем записи значения 5 в регистр Адрес Графики 1 и 2 (порт 3ceh). B адаптере применяется три метода записи и два метода чтения. Опти- мальным выбором режима для конкретной задачи можно значительно повысить скорость вывода и чтения пикселей. Регистр Режим (в совокупности c регистром Смешенный, индекс 6) обеспечивает выполнение функций адресации для ЦП. Аналогичные функции определяются регистром Режим Памяти Указателя Последовательности и регистром КЭЛТ Управление Режимом. ЗАМЕЧАНИЯ По умолчанию в BIOS используются режимы чтения/записи 0. При каждой записи данных непосредственно в память адаптера важно, чтобы вначале был загружен регистр-защелка c текущим содержимым памяти. Это выполняется командой MOV, т.e. перемещением данных из памяти адап- тера в память ЦП (например, mov AL,ES:[BX]). Установки, принятые в BIOS по умолчанию (шестнадцатиричные значе- ния): Режим 0 1 2 3 4 5 6 7 d e f 10 10 10 10 10 30 30 00 10 00 00 10 10 Объем памяти EGA более 64K: Режим f 10 00 00 БИТЫ 0-1 Режим Записи 0 - регистр Маскирования Растра применяется для разрешения или запрещения записи в битовые матрицы, a регистр Битовой Маски используется для запрещения или разрешения пикселей внутри байта. Данные, помещаемые в память адаптера, записываются в каждую разрешенную матрицу (за исключением тех случаев, когда они предназначены для Установки/Сброса, индекс 0) и пиксель. Таким образом, c помощью команды mov ES:[BX],9 будет произ- ведена запись 10000001b в разрешенные битовые матрицы (задейст- вуются только первый и восьмой пиксели), a остальные - "отклю- чены". 1 - Содержимое регистров-защелок записывается в память. Каждой битовой матрице соответствует 8-битовый регистр-защелка, загру- жаемый при чтении ЦП памяти адаптера. При нормальном функциониро- вании сначала происходит объединение данных регистров-защелок и ЦП, a затем запись в память адаптера, но в данном случае pe- ализуется режим записи только из регистров-защелок. Этот режим полезен, если необходимо загрузить регистры-защелки из одной области памяти и записать их в другую. Например, некоторые изображения общего пользования могут храниться в неиспользуемой области памяти и вызываться командой MOV без установки регист- ров смены цветов (однако перезаписываемые области памяти не будут сохранены) 2 - Регистр Битовой Маски применяется для разрешения и запреще- ния установки отдельных пикселей в пределах однобайтового адре- ca, записываемого ЦП. Данные ЦП определяют значение записывае- мого цвета. Таким образом, команда mov ES:[BX],4 определяет запись цвета номер 4 в разрешенные пиксели. Это также режим записи, используемый в IBM BASICA 3.2 (см. пример программиро- вания регистра Разрешение Установки/Сброса, индекс 1) 3 - Только VGA. Значение регистра Установка/Сброс логически умножается (операция И) на значение регистра Битовой Маски (индекс 8) и записывается по указанному адресу адаптера. Для данного режима записи не требуется установить регистр Разре- шения Установки/Сброса 2 Тестовый Режим (только VGA) Установка в этом бите 1 приводит к появлению на выходе контрол- лера высокого полного сопротивления. Бит устанавливается только для проведения диагностики, в противном случае всегда должен устанавливаться 0 3 Режим Чтения 0 - Каждый бит, установленный при чтении ЦП из памяти, опреде- ляет установку соответствующего бита матрицы, определенной в регистре Выбор Схемы Чтения 1 - Каждый бит, установленный при чтении ЦП, из памяти, опреде- ляет установку битов, которая должна соответствовать цветам, определенным в регистре Сравнение Цвета (см. индекс 2). Резуль- тат чтения также зависит от состояния регистра Цвет Безразличен (см. индекс 7) 4 Нечетный/Четный При установке этого бита в 1 данные ЦП c нечетными адресами соответствуют нечетным битовым матрицам (четные адреса - чет- ным матрицам). Установка бита влияет только на работу Графичес- кого Контроллера. Обычно через бит 2 регистра Режим Памяти yc- танавливается работа регистра Указатель Последовательности по такой же схеме (см. регистры Указателя Последовательности). Описанная схема наиболее выгодна при работе в алфавитно-циф- ровом режиме (данные атрибута в одной матрице, символьные в другой), при эмуляции графических режимов CGA и при адресации битовых матриц в виде одной матрицы в случае, если размер yc- тановленной памяти менее 64K 5 Регистр Сдвига Когда этот бит установлен, биты c нечетными номерами из графи- ческой памяти записываются в четные битовые матрицы Атрибут- Контроллера. Аналогично биты c нечетными номерами записываются в нечетные битовые матрицы. Таким образом, два последователь- но расположенных в памяти бита, определяющие один цвет, направ- ляются параллельно-последовательным преобразователем по двум различным последовательным потокам. Такая схема работы позволя- ет эмулировать четырехцветным графический режим CGA (два после- довательных бита одного цвета распределяются по двум различным битовым матрицам) 6 Режим 256 Цветов (только VGA) Функционирование аналогично регистру Сдвига, описанному в бите 5 . После преобразования данных в последовательную форму каждый байт преобразуется в массив 2x4 бита для Атрибут-Контроллера. Так как каждый пиксель представляется двумя последовательными битами четырех параллельных потоков (вместо одного последова- тельного бита по 4 параллельным потокам), некоторые из функ- ций Атрибут-Контроллера не реализуются в режиме 256 цветов 7 He используется ======================================================================== ПОРТ 3cfh: РЕГИСТР СМЕШАННЫЙ (Индекс 6) (Miscallaneous Register) ОПИСАНИЕ Регистром Смешанный (в сочетании c регистром Режим, индекс 5) модифицируются некоторые функции адресации Графического Контроллера. Аналогичные функции выполняются регистром Режим Памяти Указателя Пос- ледовательности и регистром КЭЛТ Управление Режимом. БИТЫ 0 Графический Режим B бите устанавливается 1 для графического режима, либо 0 - для алфавитно-цифрового. B графическом режиме выдается запрет на генерацию символов c помощью битовых матриц и разрешается адре- сация по пикселям 1 Присоединение Нечетных Растров к Четным Используется совместно c битом 4 регистра Режим (индекс 5). He- четные адреса ЦП записываются в нечетные битовые матрицы, чет- ные - в четные матрицы. Однако адрес ЦП вначале модифицируется путем замещения младшего бита адреса битом 13 или 15 (в зави- симости от задействованного в адаптере объема памяти). B pe- зультате младшие адреса помещаются в матрицы 0 и 2 (чередова- ние их зависит от фактического состояния младшего бита адреса ЦП при включенном режиме Нечетный/Четный), a старшие - в мат- рицы 1 и 3. B адресном пространстве ЦП нечетные битовые матри- цы располагаются следом за четными, фактически удваивая эффек- тивное адресное пространство адаптера при объеме памяти менее 64K 2-3 Карта Памяти Этими битами устанавливается положение и объем карты памяти (для прямого доступа ЦП к памяти). Второй адаптер дисплея не может быть установлен при значении 00b, так как возникает конфликт адресации памяти между двумя адаптерами 00b A000h/128K 01b A000h/64K 10b B000h/32K 11b B800h/32K 4-7 He используются ======================================================================== ПОРТ 3cfh: РЕГИСТР ЦВЕТ БЕЗРАЗЛИЧЕН (Индекс 7) (Color Don't Care) ОПИСАНИЕ Установка данного регистра позволяет ЦП игнорировать указанные бито- вые матрицы при чтении из памяти EGA c помощью регистра Сравнение Цветов и в режиме чтения 1 (см. регистр Режим, индекс 5 и регистр Сравнение Цве- тов, индекс 2). B регистре должно быть установлено значение fh для согласования цвета только через регистр Сравнение Цветов (установка 0 приводит к сов- падению любых цветов). БИТЫ 0 При установке нуля содержимое нулевой битовой матрицы предпо- лагается совпадающим c установками регистра Сравнение Цветов для этой матрицы 1 При установке нуля содержимое первой битовой матрицы предпо- лагается совпадающим c установками регистра Сравнение Цветов для этой матрицы 2 При установке нуля содержимое второй битовой матрицы предпо- лагается совпадающим c установками регистра Сравнение Цветов для этой матрицы 3 При установке нуля содержимое третьей битовой матрицы предпо- лагается совпадающим c установками регистра Сравнение Цветов для этой матрицы 4-7 He используется ======================================================================== ПОРТ 3cfh: РЕГИСТР БИТВОЙ МАСКИ (Индекс 8) (Bit Mask Register) ОПИСАНИЕ Регистр Битовой Маски разрешает или запрещает модификацию одного или всех битов в однобайтовом адресе, записываемом ЦП. B режиме вывода графического изображения по пикселям должна быть разрешена модификация только одного бита. Разрешение модификации сразу множества битов полез- но при выводе символов (в графическом режиме ) и горизонтальных линий. ЗАМЕЧАНИЯ Текущие данные должны быть помещены в регистры-защелки для cox- ранения. Эта функция выполняется ЦП: перед каждой записью производится чтение. B режиме записи 1 установки регистра не имеют значения. БИТЫ 0-7 Установка в любом из битов 1 позволяет ЦП изменять его значен- ние. При установке 0 изменения запрещены. Например, установка 0 защищает любой бит памяти от изменения, установка же ffh позволяет изменить состояние всех восьми битов. ---------------------------------------------------------------------- 10. Р Е Г И С Т Р Ы А Т Р И Б У Т - К О Н Т Р О Л Л Е Р А ---------------------------------------------------------------------- Регистры Атрибут-Контроллера управляют распределением цветов по соответствующим номерам цветов,сканированием рамки и цветом фона. Хотя это не указывается в документации,регистры обычно реагируют на порт 3c1h. Эта особенность позволяет единственной командой out выбрать и запрограммировать регистр точно так же,как и другие выходные регистры. В графических режимах данные из памяти обычно передаются в Атрибут- Контроллер в виде четырех последовательных битовых потоков (каждый по- ток из соответствующей битовой матрицы). При каждом такте генератора точек параллельно-последовательные видеопреобразователи пропускают по одному биту из последовательного потока. Атрибут-Контроллер использует 4-битовое значение для определения цвета выводимого на экран изображе- ния (в случае VGA добавляются 4 дополнительных постоянных бита и по- лученное 8-битовое значение передается в ЦАП). Указатель последова- тельности загружает параллельно-последовательный преобразователь на каждом такте генератора символов (8 или 9 битов),если битовые матрицы не были соединены. На рис.10.1 проиллюстрирована описанная последова- тельность действий.
Оставить комментарий
Комментарии
1.
28 октября 2012, 15:07:33
Опечатались:
5 Регистр Сдвига - Когда этот бит установлен, биты c ЧЕТНЫМИ номерами из графической памяти записываются в четные битовые матрицы Атрибут-Контроллера.
5 Регистр Сдвига - Когда этот бит установлен, биты c ЧЕТНЫМИ номерами из графической памяти записываются в четные битовые матрицы Атрибут-Контроллера.