Информационные технологииStfw.Ru 🔍

Регистры адаптера

🕛 28.12.2008, 20:20
1.3.1. Внешние регистры
* В скобках () повторяется адрес регистра.
Регистр общего назначения (3C2) * бит 7 6 5 4 3 2 1 0 | | | | | | | +- выбор адреса, 1=3Dx;0=3Bx. | | | | | | +- 1=разрешает доступ процессору к ОЗУ. | | | | +-+- 00=14МГц;01=16МГц; | | | | 10=внешний тактовый генератор. | | | +- 1=запрещает внутреннее управление видео, | | | управление с контактной колодки. | | +- 1=выбирает старшую страницу памяти в | | четно/нечетных режимах | | (режимы 0,1,2,3,7). | +- 1=выбирает отрицательный импульс | горизонтального обратного хода. +- 1=выбирает отрицательный импульс вертикального обратного хода.

Регистр признаков (3DA) бит 1 0 | +- вывод 19 контактной колодки адаптера +- вывод 17 контактной колодки адаптера

Входной статусный регистр 0. Только читается. (3C2) бит 7 4 | +- 1=позволяет процессору читать состояние | 4-х битного переключателя конфигурации | адаптера (в ОЗУ 40:88h). +- бит прерывания: 1=происходит вывод на экран; 0=обратный ход луча по вертикали.

Входной статусный регистр 1. Только читается. (3DA) бит 5 4 3 2 1 0 | | | | | +- 0=свидетельствует об обратном | | | | | горизонтальном или вертикальном | | | | | ходе луча. | | | | +- строб светового пера. | | | +- 0=кнопка пера нажата. | | +- 1=обратный вертикальный ход. Бит может | | быть использован для прерывания REQ2 | | (для XT) через биты 5 и 6 регистра 11h | | видео контроллера. +-+- разряды диагностики, подсоединяются к двум из 6-ти цветовых выходов контроллера атрибутов. Возможны комбинации: +-+-+-+-+ | Регистр цветовой | Входной статусный | | плоскости | регистр 1 | +-+-+-+-+ | бит 5 | бит 4 | бит 5 | бит 4 | +-+-+-+-+ | 0 | 0 | красный | синий | | 0 | 1 |яр.синий | зеленый | | 1 | 0 |яр.красн.|яр.зелен.| +-+-+-+-+

1.3.2. Регистры задатчика последовательностей
+-+-+-+ | Имя регистра | Порт | Индекс | +-+-+-+ | Адрес | 3C4 | - | | Сброс | 3C5 | 0 | | Режим синхронизации | 3C5 | 1 | | Маска | 3C5 | 2 | | Выбор знакогенератора | 3C5 | 3 | | Режим памяти | 3C5 | 4 | +-+-+-+

Регистр сброса. (3C5/0) бит 1 0 | +- асинхронный сброс,0=перевод выходов в третье | состояние. +- синхронный сброс, используемый при смене ре- жимов синхронизации.

Регистр режима синхронизации. (3C5/1) бит 3 2 1 0 | | | +- 0=ширина символа 9 точек, действителен в | | | режиме 7, в остальных ширина 8 точек. | | +- 0=обращение контроллера к ОЗУ занимает 4 | | цикла из 5-ти возможных, необходимы в | | режиме высокого разрешения. | | 1=обращение контроллера к ОЗУ занимает 2 | | цикла; в режиме среднего разрешения, когда | | объем передаваемых данных меньше, позволяет | | уменьшить время доступа процессора к видео- | | ОЗУ. | +- 1=параллельно-последовательный преобразователь | перезагружается лишь на каждый отличающийся | символ. | 0=перезагружается на каждый символ. +- 1=частота синхросигнала делится на 2.

Регистр маски. (R/W) (3C5/2) бит 3 2 1 0 | | | +- 1=разрешен доступ к плоскости 0. | | +- 1=разрешен доступ к плоскости 1. | +- 1=разрешен доступ к плоскости 2. +- 1=разрешен доступ к плоскости 3. 0Fh в регистре диктует процессору производить за ОДИН цикл памяти 32-х разрядные операции. В четно/нечетном режиме карты 0-3 будут иметь одинаковые маски.

Регистр выбора знакогенератора (3C5/3) бит 3 2 1 0 | | +-+- выбор карты B; Когда бит_3 байта атрибутов=0, | | действительна следующая таблица | | +-+-+-+ | | | биты 1,0 | выбрана карта | расположение | | | +-+-+-+ | | | 0 0 | 0 | 1-e 8K пл.2,банк 0 | | | | 0 1 | 1 | 2-e 8K пл.2,банк 1 | | | | 1 0 | 2 | 3-e 8K пл.2,банк 2 | | | | 1 1 | 3 | 4-e 8K пл.2,банк 3 | | | +-+-+-+ +-+- выбор карты A; Когда бит_3 байта атрибутов=1, действительна следующая таблица +-+-+-+ | биты 3,2 | выбрана карта | расположение | +-+-+-+ | 0 0 | 0 | 1-e 8K пл.2,банк 0 | | 0 1 | 1 | 2-e 8K пл.2,банк 1 | | 1 0 | 2 | 3-e 8K пл.2,банк 2 | | 1 1 | 3 | 4-e 8K пл.2,банк 3 | +-+-+-+
В текстовом режиме 3-й бит атрибутов обычно включает или выключает повышенную яркость символа, однако может быть использован в качестве переключателя между знакогенера- торами, когда выбраны различные значения для карт A и B. Бит 1 регистра режима памяти должен быть равен 1, иначе всегда выбирается банк 0. Для 128К возможны 2 знакогене- ратора, для 256К - 4. Пример переключения знакогенератора дан в приложении 1 программа two_Fonts .

Регистр режима памяти (3C5/4) бит 2 1 0 | | +- 1=выбран текстовый режим, возможен выбор | | знакогенератора. | +- 1=используется расширенная память. +- 0=четные адреса процессора адресуют к картам 0 и 2, нечетные к 1 и 3, как в CGA. 1=последовательный доступ к данным в битовой плоскости. Доступ к плоскостям осуществляется в соответствии со значением в регистре масок.


1.3.3. Регистры видео контроллера (3C4/3C5)
+-+-+-+ | Имя регистра |единиц|Индекс| +-+-+-+ | индексный | | - | | по горизонтали всего | сим | 00 | | размер отoбражаемого по горизонтали | сим | 01 | | начало невидимой области по горизонтали | сим | 02 | | конец невидимой области по горизонтали | сим | 03 | | начало строчного импульса | сим | 04 | | конец строчного ипмульса | сим | 05 | | по вертикали всего (младшие 8 разрядов) |строка| 06 | | регистр переполнений | | 07 | | начало видимой области по вертикали |строка| 08 | | размер символа по вертикали |строка| 09 | | начало курсора |строка| 0A | | конец курсора |строка| 0B | | начальный адрес видео (старший байт) | | 0C | | начальный адрес видео (младший байт) | | 0D | | положение курсора (старший байт) | | 0E | | положение курсора (младший байт) | | 0F | | начало кадрового имульса (младшие) |строка| 10 | | адрес светового пера (старший байт) | | 10 | | конец кадрового импульса |строка| 11 | | адрес светового пера (младший байт) | | 11 | | конец видимой области по вертикали |строка| 12 | | логическая длина линии экрана | | 13 | | положение подчеркивания |строка| 14 | | начало невидимой области V (младшие) |строка| 15 | | конец невидимой области V(младшие 5 бит)|строка| 16 | | режим управления | | 17 | | сравнение строк | | 18 | +-+-+-+
Регистры видеоконтроллера во многом аналогичны регистрам микросхемы 6845 адаптера CGA [5]. О регистре 11h следует сказать особо: разряды 5 4 | +- 0=сброс прерывания, +- 0=разрешение прерывания.

1.3.4. Регистры графического контроллера
+-+-+-+ | Имя регистра | Порт | Индекс | +-+-+-+ | Позиционный 1 | 3CC | - | = 0 | Позиционный 2 | 3CA | - | = 1 | Индексный | 3CE | - | | Установка/Сброс | 3CF | 0 | | Разрешение установки | 3CF | 1 | | Сравнение цвета | 3CF | 2 | | Циклического сдвига | 3CF | 3 | | Масочный чтения | 3CF | 4 | | Регистр режима | 3CF | 5 | | Смешаный | 3CF | 6 | | Игнорирование цвета | 3CF | 7 | | Разрядная маска | 3CF | 8 | +-+-+-+

Регистр установки/сброса (3CF/0) бит 3 2 1 0 | | | | +-+-+-+- установка/сброс плоскостей 0,1,2,3

Регистр разрешения установки/сброса (3CF/1) бит 3 2 1 0 | | | | +-+-+-+- разрешение установки/сброса плоскостей 0,1,2 3

Регистр сравнения цвета (3CF/2) бит 3 2 1 0 | | | | +-+-+-+- 0,1,2,3 Если процессор устанавливает режим чтения 1 графического контроллера и читает память, данные, возвращаемые из памяти, содержат 1 в каждом бите, где значение 4-х битовой плоскости совпало со значением в регистре сравнения цветов.

Регистр циклического сдвига (3CF/3) бит 4 3 2 1 0 | | | | | | | +-+-+- счетчики 0 1 2; содержат значение числа | | позиций, на которые сдвинутся данные про- | | цессора во время записи в память. Эта | | операция выполняется, когда режим записи 0. +-+- выбор функции логической операции с данными: 0 0 = данные не изменяются, 0 1 = AND, 1 0 = OR, 1 1 = XOR. Циклический сдвиг выполняется до логической операции.

Регистр выбора карты чтения (3CF/4) бит 2 1 0 +-+-+- карты 0,1,2; представляют значение номера плоскости, из которой процессор читает данные. Смотри пример check_Color .

Регистр режима (3CF/5) бит 5 4 3 2 1 0 | | | | +-+- режим записи; | | | | 0 0 = каждая плоскость записывается данными | | | | процессора в соответствии с регистрами | | | | масок и циклического сдвига. Плоскости, | | | | для которых разрешены установка/сброс | | | | записываются 8 битами, значение которых | | | | содержится в соответствующем разряде | | | | регистра сброса/установки. | | | | 0 1 = каждая плоскость м.б. переписана в дру- | | | | гую через регистры-защелки, содержимое | | | | регистров масок игнорируется. | | | | 1 0 = альтернативный способ записи точки | | | | плоскости N(0..3) заполняются значениями | | | | бита N данных согласно регистр | | | | разрядной маски. | | | +- 1=переводит выходы графического контроллера | | | в высокоимпедансное состояние для проверки. | | +- 0=процессор читает данные из плоскости | | памяти, выбранной регистром выбора карты | | чтения. | | 1=процессор читает результат сравнения 4-х | | плоскостей и регистра сравнения цвета. | +- 1=выбирает четно/нечетный режим адресации, | используемый при эмуляции CGA. +- 1=регистры сдвига переключают поток данных на четные или нечетные плоскости. Использованию различных режимов чтения, записи посвящены подпрограммы Drow_point и check_Color .

Смешаный регистр (3CF/6) бит 3 2 1 0 | | | +- 1=выбирает графический режим, адресация к | | | знакогенератору запрещена. | | +- 1=связывет четную карту с нечетной +-+- 0 0 - A000 для 128 К, 0 1 - A000 для 64 К, 1 0 - B000 для 32 К, 1 1 - B800 для 32 К. Если адаптер адресуется с A0000 в системе не может быть использован дополнительный адаптер.

Регистр игнорирования цвета (3CF/7) бит 3 2 1 0 +-+-+-+- плоскости 0,1,2,3. 0=соответствующая плоскость игнорируется при сравнении (подпрограмма check_Color ).

Регистр маски (3CF/8) бит 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+- 0=предохраняет соответствующий бит от изменений при записи байта данных. Маска используется для всех плоскостей одновременно.


1.3.5. Регистры контроллера атрибутов
+-+-+-+ | Имя регистра | Порт | Индекс | +-+-+-+ | Адресации | 3C0 | - | | Регистры палитры | 3C0 | 00-0F | | Управление режимом | 3C0 | 10 | | Регистр цвета окантовки | 3C0 | 11 | | Разрешение цвет. плоскости | 3C0 | 12 | | Горизонтальный сдвиг | 3C0 | 13 | +-+-+-+

Адресный регистр (3C0/0) бит 5 4 3 2 1 0 | +-+-+-+-+- адрес атрибутов. | Контроллер атрибутов не имеет возможности | контролировать выбор адресного или регистра данных. | Внутренний триггер выбирает адресный регистр или | регистр данных. Обращение по адресу 3DA сбрасывает этот | триггер и выбирает адресный регистр (см. программу | Screen_Shock). Следующая инструкция OUT загружает | регистр данных. +- 1=доступ со стороны контроллера разрешен, 0=загрузка регистров данными.

Регистры палитры (3C0/0-F) бит 5 4 3 2 1 0 | | | | | +- B R,G,B == 2/3 интенсивности | | | | +- G r,g,b == 1/3 интенсивности | | | +- R | | +- b /при эмуляции MONO - подчеркивание, | +- g /при эмуляции - интенсивность, +- r Позволяют динамически переключать атрибуты текста или цвет в графическом режиме. Для избежания мерцания изображения модифицировать регистры палитры необходимо во время вертикального обратного хода луча. Мониторы, имеющие 6 входов цветности, дают 64 цвета.

Регистр режима. (3C0/10) бит 3 2 1 0 | | | +- 0/1=выбирается текстовый/графический режим. | | +- 0/1=монохромный/цветной режим. | +- 0=9-я точка имеет цвет фона, | 1=разрешены специальные графические символы. +- 0=выбирает фоновую интенсивность, 1=разрешает мерцание в текстовом и графи- ческом режимах.

Регистр цвета окантовки. (3C0/11)
бит 5 4 3 2 1 0 | | | | | +- B | | | | +- G | | | +- R | | +- b | +- g +- r Подпрограмма Edge задания цвета края экрана приведена в приложении 1.

Регистр разрешения цветовой плоскости (3C0/12) бит 5 4 3 2 1 0 | | +-+-+-+- 1=разрешает соответствующую плоскость +-+- выбирают 2 из 6-ти цветов для входного статусного региста. +-+-+ | Регистр разрешения | Входной стат. регистр 1 | | разряды 5 4 | разряды 5 4 | +-+-+ | 0 0 | R B | | 0 1 | b G | | 1 0 | r g | +-+-+ Подпрограмма to_Blue выбора цветовой плоскости приведена в приложении 1.

Регистр горизонтального сдвига (3C0/13) бит 3 2 1 0 +-+-+-+- представляет число графических элементов сдвига видео данных влево: в монохромном режиме максимум на 9, в остальных на 8. Подпрограмма Screen_Shock использования регистра приведена в приложении 1.

EGA   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉