Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Цветной графический адаптер CGA_F
Цветной графический адаптер (CGA - Color Graphics Adapter) - это графический видеоконтроллер среднего разрешения. Для него зарезервированы порты ввода-вывода 3D0h - 3DFh, имеющие следующее назначение.
Порт Операция Описание ───────────────────────────────────────────────────────────── 3D4h Запись Регистр индекса ЭЛТ. Используется для выбора регистра ЭЛТ. Для записи регистра ЭЛТ Rn нужно выполнить команды: out 3D4h,n и out 3D5h,данные.
3D5h Запись/ Регистр данных ЭЛТ. Позволяет записывать все чтение регистры ЭЛТ и читать регистры R12 - R17. 3D8h Запись Регистр режимов дисплея: 7 6 5 4 3 2 1 0 ┌─┬─┬──┬──┬──┬──┬──┬──┐ │X│X│ │ │ │ │ │ │ Бит: └─┴─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┘ ──── │ │ │ │ │ └──>0: кол-во столбцов в текстовых режимах: │ │ │ │ │ 0=40 столбцов, 1=80 столбцов │ │ │ │ └─────>1: 0=текстовый режим, 1=графический режим │ │ │ └────────>2: 1=запрет цвета на композитном дисплее │ │ └───────────>3: 0=очистить экран, 1=активизировать │ │ экран │ └──────────────>4: разрешение по горизонтали: │ 0=320 точек, 1=640 точек └─────────────────>5: 1=бит 7 атрибутов - мерцание 0=бит 7 атрибутов - яркость фона 3D9h Запись Регистр выбора цветов: 7 6 5 4 3 2 1 0 ┌─┬─┬──┬──┬──┬──┬──┬──┐ │X│X│ │ │I R G B │ Биты: └─┴─┴┬─┴┬─┴──┴──┼──┴──┘ ───── │ │ └──────>0-3: цвет (см. 7.3): для текста - цвет │ │ рамки, для графики - цвет фона │ └──────────────>4: яркость: для текста - яркость фона, │ для графики - яркость пикселей └─────────────────>5: номер графической палитры (0 или 1) Примечание: Выбор палитры задает набор основных цветов в графическом режиме. Палитра 0 - зеленый/красный/коричневый, палитра 1 - бирюзовый/сиреневый/светло-серый (т. е. отличается добавлением синего цвета).
3DAh Чтение Регистр состояния дисплея:
7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬──┬──┬──┬──┐ │X│X│X│X│ │ │ │ │ Бит: └─┴─┴─┴─┴┬─┴┬─┴┬─┴┬─┘ ──── │ │ │ └───>0: 0=вывод изображения, 1=горизонтальная │ │ │ или вертикальная синхронизация │ │ └──────>1: 1=триггер светового пера сброшен │ └─────────>2: 1=защелка светового пера открыта └────────────>3: 0=экран включен, 1=выключен (позволяет проверить поступление видеосигнала на на экран - если этот бит установлен, вывод на экран не вызывает "хлопьев")
3DBh Запись/ Вывод любого байта выключает триггер светового Чтение пера. 3DCh Запись/ Вывод любого байта включает триггер светового Чтение пера. ─────────────────────────────────────────────────────────────
Видеопамять CGA располагается в адесах ОЗУ B8000h - BFFFFh. CGA имеет два типа текстовых режимов: 25 строк по 40 символов в строке и по 80 символов в строке. В режимах 25 х 40 одна страница занимает 800h байтов, поэтому видеопамять состоит из 8 страниц; в режимах 25 х 80 страница занимает 1000h байтов и видеопамять состоит из 4 страниц. Адрес кода символа в текстовых режимах равен B800h: n*P+m*L+2*C, адрес атрибута на единицу больше. Здесь L - номер строки (0 - 24), C - номер столбца (0 - 79 или 0 - 39), m = 2 * количество столбцов режима, n = 800h при m=80 и 1000h при m=160.
CGA имеет два типа графических режимов: цветной режим, имеющий разрешение 320 точек по горизонтали на 200 точек по вертикали, и черно-белый режим с разрешением 640 точек на 200 точек. В режиме 320 х 200 каждый пиксель задается двумя битами, кодирующими его цвет; в режиме 640 х 200 цвет пикселя задается одним битом (белый/черный). В графических режимах один экран требует 16К видеопамяти, поэтому имеется одна страница видеопамяти, которая размещается в адресах B8000h - BFFFFh. Эта страница расслоена на две области: область с адреса B8000h содержит пиксели, имеющие четные номера строк; область с адреса BA000h содержит пиксели из нечетных строк. Поэтому адрес байта, содержащего точку с координатами (X,Y), равен в цветном режиме B800h: 2000h * (Y % 2) + 80 * int(Y/2) + int(X/4), а номера соответствующих битов в этом байте равны 7 - 2 * (X % 4) и 6 - 2 * (X % 4). Здесь X - горизонтальная позиция точки (0 - 319), Y - ее вертикальная позиция (0 - 199). Адрес байта, содержащего точку с координатами (X,Y), равен в черно-белом режиме B800h: 2000h * (Y % 2) + 80 * int(Y/2) + int(X/8), а номер соответствующего бита в этом байте равен 7 - (X % 8). Здесь X - горизонтальная позиция точки (0 - 639), Y - ее вертикальная позиция (0 - 199). Date: 2015-09-18; view: 413; Нарушение авторских прав |