close

Цветной графический адаптер

Перейти к навигации Перейти к поиску
Image
Режим 644×200 2 цвета с цветом по умолчанию — веб-браузер Arachne .

Color Graphics Adapter или CGA , выпущенный в 1981 году, был первой цветной графической картой IBM (первоначально называвшейся Color/Graphics Adapter или IBM Color/Graphics Monitor Adapter , [ 1 ] ) и первым стандартом цветной графики для IBM PC . .

Когда IBM представила свой ПК в 1981 году, стандарт CGA, несмотря на то, что он появился в то же время, поначалу мало использовался, поскольку большинство покупателей покупали ПК для профессионального использования. Для игр были другие гораздо более популярные компьютеры, и в то время считалось, что цветная графика не имеет никакого другого применения, кроме чисто игрового. Следовательно, многие первые покупатели ПК выбрали адаптер монохромного дисплея (MDA), который позволял отображать только текст.

В 1982 году была выпущена графическая карта Hercules , которая позволяла отображать монохромную графику с гораздо более высоким разрешением, чем CGA, а также была совместима с MDA, что еще больше подорвало продажи CGA. Все изменилось в 1984 году, когда IBM представила IBM Personal Computer/AT и Enhanced Graphics Adapter (EGA). При этом цена старой карты CGA значительно снизилась и стала интересной недорогой альтернативой, так что новые компании, занимающиеся производством ПК-клонов, быстро приняли ее. Недорогие ПК без AT с картами CGA в последующие годы продавались очень хорошо, и, как следствие, для них было выпущено много игр, несмотря на их ограничения. Популярность CGA начала угасать, когда в 1987 году VGA -карта стала новым высокопроизводительным решением, низведя EGA до недорогих ПК.

Стандартная карта IBM CGA включала 16 килобайт видеопамяти и могла быть подключена к составному видеомонитору NTSC или телевизору через разъем RCA или к 4-битному монитору «RGBI» [ 2 ] , такому как IBM 5153 , через разъем DE- 9 разъем . [ 3 ] Позволяет отображать различные графические и текстовые режимы. Максимальное разрешение составляло 640×200, а максимальная поддерживаемая глубина цвета — 2 бита (4 цвета). Самый популярный режим, используемый в большинстве игр CGA, отображал 4 цвета при разрешении 320x200.

Хотя 4 цвета обычно считались пределом для карты CGA, это число можно было увеличить различными способами (некоторые официальные, некоторые нет).

Цветовая палитра CGA

'''Полная палитра из 16 цветов CGA'''
0 — черный
#000000
8 — серый (темный)
#555555
1 — синий
#0000AA
9 — темно-синий
#5555FF
2 — зеленый
#00AA00
10 — темно-зеленый
#55FF55
3 — голубой
#00AAAA
11 — темно-голубой
#55FFFF
4 — красный
#AA0000
12 — темно-красный
#FF5555
5 — пурпурный
#AA00AA
13 — темно-пурпурный
#FF55FF
6 — коричневый
#AA5500
14 — желтый
#FFFF55
7 — белый (светло-серый)
#АААААА
15 — глубокий белый
#FFFFFF

Карта CGA работала с цветными мониторами CRT RGBI. Он был основан на видеоконтроллере Motorola 6845 и имел палитру из 16 цветов. Красный, зеленый и синий цвета соответствовали каждому из трех катодных лучей, а черный цвет означал, что все лучи почти выключены. Голубой был смесью зеленых и синих лучей, пурпурный — синего и красного, а коричневый — зеленого и красного. Белый (или светло-серый) представлял собой смесь всех трех лучей.

Остальные 8 цветов были достигнуты путем включения бита усиления , делающего более яркую версию каждого цвета, хотя на многих мониторах темно-серый был неотличим от черного. Компоновка CGA RGB+Bit Intensifying называлась RGBI .

Commodore 128 использовал тот же метод для передачи цветов из своего выхода RGBI, поэтому можно было подключить одни и те же мониторы и отображать те же 16 цветов.

Существует некоторая путаница в отношении цвета №6 на мониторах RGBI: строго следуя цветовой модели RGBI, цвет №6 должен быть темно-желтым (#AAAA00) (см. ниже). Однако IBM решила включить в цветной монитор 5153 дополнительную схему для обнаружения цвета № 6 и понижения уровня зеленого компонента до более приятного оттенка коричневого (# AA5500), поэтому большинство «CGA-совместимых» мониторов имитируют это поведение. Преобладающая теория об этом решении заключается в том, что IBM намеревалась использовать цвета, приближенные к цветам терминала мэйнфрейма 3270 , в частности 3279 , но эта информация не доказана.

Стандартные текстовые режимы

CGA позволял использовать два текстовых режима:

  • 40×25 символов с 16 цветами для текста и 8 для фона. Каждый символ состоит из шаблона размером 8×8 пикселей . Эффективное разрешение в этом режиме составляет 320×200 пикселейсоотношением сторон 1:1,2), хотя доступ к отдельным пикселям недоступен. Таким образом, шаблоны были ограничены одним из 256 символов, хранящихся на микросхеме ПЗУ на самой карте, поэтому шрифт текстовых режимов был фиксированным и не мог быть изменен (хотя на исходной карте IBM CGA IBM PC можно было выбрать между двумя разными шрифтами, нормальным или тонким, меняя перемычку , отсутствующую в большинстве клонов). В этом режиме каждый символ мог иметь основной цвет и цвет фона, которые можно было свободно выбирать из полной палитры CGA (см. Таблицу); например, желтый текст для одного символа, белый на черном для следующего и голубой на сером для другого. Карте хватило видеопамяти на 8 разных страниц текста в этом режиме.
  • 80×25 символов с 16 цветами для текста и 8 для фона. Опять же, каждый символ представлял собой точечный узор 8x8 (с использованием того же набора символов, что и в режиме 40x25) с соотношением сторон 1: 2,4. Эффективное разрешение составляло 640 × 200 пикселей, что, как и в других текстовых режимах, было недоступно по отдельности. Поскольку количество символов на экране в этом режиме было удвоено, в VRAM можно было хранить только 4 страницы текста .

Стандартные графические режимы

Фиксированная 4-цветная палитра CGA №1
цвет по умолчанию 5 — пурпурный
3 — голубой 7 — белый (светло-серый)
Фиксированная 4-цветная палитра CGA № 2
цвет по умолчанию 4 — красный
2 — зеленый 6 — коричневый (оранжевый)

CGA предлагает два часто используемых графических режима:

  • 320×200 пикселей , как в текстовом режиме 40×25. Однако в графическом режиме можно было получить доступ к каждому пикселю по отдельности, хотя одновременно можно было отображать только 4 цвета. Эти 4 цвета не могли быть свободно выбраны из 16, так как для этого режима было только две официальные палитры:
    1. Пурпурный, голубой, белый и цвет фона (по умолчанию черный).
    2. Красный, зеленый, коричневый/желтый и цвет фона (по умолчанию черный).

Включив буст-бит, можно было получить более яркие версии этих цветов.

Соотношение сторон 1:1,2 приходилось учитывать при рисовании на экране крупных геометрических фигур.
  • 640×200 пикселей, как в текстовом режиме 80×25. Все пиксели могут быть свободно доступны. Этот режим был монохромным, допуская только черный и белый цвета (хотя это можно было изменить) с соотношением сторон 1: 2,4.

В текстовом режиме растровые изображения шрифтов брались из ПЗУ символов, которое было доступно только самой карте. Однако в графических режимах для вывода текста использовались две разные таблицы: первые 128 символов набора были получены из таблицы в BIOS по адресу F000:FA6E, а остальные 128 поступили с адреса, указанного прерыванием 1F (0000 :007С). Эта вторая половина отображалась как пробелы (или бессмысленные символы, в зависимости от реализации), если только она явно не была определена, как правило, такой утилитой, как GRAFTABL, или запущенной программой.

Композитный режим видео

Хотя многим это было неизвестно, существовал дополнительный графический режим составного видео 160 × 200 (с соотношением сторон 1,67: 1), в котором можно было использовать 16 различных цветов. В этом режиме не использовалась таблица цветов CGA, но он был больше похож на режим «удвоенного высокого разрешения» Apple II , поскольку оба использовали одинаковую технику. Композитный режим использовался редко; отсутствие поддержки в BIOS помешало многим программистам принять его, а стоимость системы IBM была настолько высока, что большинство покупателей не могли позволить себе дорогой монитор RGB. Только несколько программ (в основном игры) использовали этот режим.

Распространенным заблуждением является то, что композитный режим поддерживается некоторыми мониторами RGB, но это противоречило бы тому, как этот режим работает. Наиболее вероятным объяснением является убеждение, что режимы 160x200 у IBM PCjr / Tandy 1000 или Amstrad CPC одинаковые (они одинаковы по разрешению, но не по цвету и организации памяти). Любая попытка включить композитный режим на мониторе RGB приводила к результату, идентичному графическому режиму 640x200.

Другие графические режимы и приемы

Третья фиксированная палитра «трюк» CGA
цвет по умолчанию 4 - красный
3 — голубой 7 — белый (светло-серый)

Был ряд официальных и неофициальных возможностей, которые можно было использовать для улучшения графики.

  • В режиме 320x200 цвет фона, который по умолчанию был черным после инициализации, можно было изменить на любой из 16 цветов в палитре CGA. Это позволило внести некоторое разнообразие и некоторые эффекты мерцания, поскольку можно было изменить цвет без перерисовки экрана.
  • В режиме 640×200 основной цвет можно было изменить на любой из 16 основных цветов.
  • В текстовых режимах цвет границы (отображаемый за пределами области отображения и обычно черный) можно изменить на любой из 16 цветов.
  • Была третья палитра из 4 цветов для режима 320×200, которую можно было использовать, включив монохромный бит при включенном цветном режиме. Это изменило цвета палитры на красный, голубой, белый, а также цвет фона.
  • Благодаря точному времени можно было переключать палитры, пока содержимое экрана все еще рисовалось, что позволяло использовать любые 3 палитры в каждой строке сканирования. Лучшим примером использования этой техники является игра California Games [ 4 ] при запуске на 8088 на частоте 4,77 МГц (на более быстром компьютере эффект не будет получен, так как синхронизация, необходимая для смены лепестков в системе, будет потерян ) нужный момент ) То же самое можно сделать с цветом фона, чтобы создать реку и дорогу в Frogger . [ 5 ] Другим задокументированным примером этой техники является преобразование Atarisoft игры Jungle Hunt в IBM PC.
  • Дополнительные цвета могут быть аппроксимированы дизерингом . Если изображение отображалось на обычном телевизоре (у которого в то время было низкое разрешение), вы могли видеть 16 сплошных цветов при работе со стандартным разрешением 320×200, но если изображение просматривалось на цветном мониторе (разрешение) отображались не все 16 цветов, но сглаживание было заметно.

Некоторые из этих методов можно комбинировать. Некоторые примеры можно найти в играх. [ 6 ] В большинстве названий эти возможности не использовались, но есть несколько удивительных исключений.

Режим 160×100 с 16 цветами

Технически это был не графический режим, а трюк, сделанный с использованием текстового режима 80x25. Он заключался в изменении регистра, указывающего высоту символьных ячеек, чтобы он отображал только 2 строки на ячейку вместо обычных 8. Это увеличило количество видимых строк текста в четыре раза, с 25 до 100. Эти «сжатые» символы отображались не целиком, а только две верхние строки по 8 пикселей каждая.

 ASCII.221.character.gif   Персонаж 221. 
 Полублочный.персонаж.синий.красный.gif   221 с синим текстом и красным фоном. 
 Полублок.персонаж.красный.синий.gif   221 с красным текстом и синим фоном. 
 ASCII.222.character.gif   Персонаж 222. 

Символ 221 расширенного набора символов ASCII представляет собой прямоугольник, занимающий левую половину ячейки, а символ 222 — правую половину.

Каждый символ мог иметь свой цвет для текста и фона, поэтому он мог быть окрашен, например, синим слева (текст) и красным справа (фон), с возможностью инвертирования путем замены цветов текста и фон.

Используя символ 221 или 222, каждую половину каждого символа можно использовать как отдельный пиксель, что дает в общей сложности 160 пикселей на горизонтальную строку. Таким образом, можно было отображать 160×100 пикселей с 16 одновременными цветами и соотношением сторон 1:1,2.

Одиночный.пиксель.в.CGA.160x100.mode.gif


Один большой «пиксель» в режиме 160х100.
Это две верхние строки середины символа 221.
Обратите внимание на 8 пикселей, из которых он состоит, и на
соотношение сторон пикселей 1:1,2.

Хотя для достижения конечной цели отображения 16 одновременных цветов потребовалось немало времени, он работал достаточно хорошо [ 7 ] , и этот режим упоминался (хотя и не объяснялся подробно) в официальной документации по оборудованию IBM.

Используя другие символы для объединения искусства ASCII с этой техникой, можно было достичь более высокого уровня детализации.

Тот же метод сжатия текстовых ячеек можно было использовать с режимом 40x25, но это имело смысл только в сочетании с ASCII-графикой, иначе результирующее разрешение было бы только 80x100. [ 8 ] ​[ 9 ] ​[ 10 ]

Ошибки и опечатки

Наиболее заметной аппаратной ошибкой CGA был «снег», появляющийся в текстовом режиме 80x25. Видеопамять на исходной карте IBM CGA не была двухпортовой , поэтому одновременный доступ для чтения или записи между видеоконтроллером Motorola 6845 и ЦП был невозможен . Вот почему вы увидите, как случайные прямоугольные блоки включаются и выключаются всякий раз, когда процессор и видеоконтроллер одновременно обращаются к памяти. Эта ошибка была исправлена ​​в большинстве клонов, но все еще существует в некоторых итерациях (например, в AT&T PC 6300 ).

Память CGA в графических режимах была чересстрочной, что доставляло хлопот программистам. Обычно видеопамять строго линейна: следующая строка данных изображения соответствует следующей строке пикселей. Но с CGA следующая строка данных изображения соответствовала строке пикселей двумя строками ниже. Так продолжается до конца экрана и только тогда начинают заполняться свободные ряды. поэтому первая половина экранной памяти предназначена для строк 0, 2, 4 и т. д. до конца экрана, а вторая половина CGA VRAM предназначена для строк 1, 3, 5 и т. д. Это добавляет шаги расчета для многих графических операций в CGA, если программист хотел иметь «визуальные артефакты» при обновлении экрана.

Темно-желтый
#АААА00

IBM разработала монитор IBM 5153 CGA [ 11 ] для преднамеренного затемнения индексированного цвета № 6 с темно-желтого на коричневый; однако у некоторых мониторов-клонов такой схемы не было. На этих мониторах и на мониторах 5153 с неисправной схемой цвет с номером 6 оставался темно-желтым (см. изображение).

Вся видеопамять карты CGA (16 384 байта) не полностью используется всеми видеорежимами, инициализируемыми BIOS (текст 40x25 и 80x25, графика 320x200 и 640x200). Только путем установки видеорежимов вручную путем программирования Motorola 6845 CGA все 16384 байта могут одновременно отображаться как отдельные пиксели.

Конкурирующие адаптеры

У CGA было два основных конкурента:

  • Для бизнеса и обработки текста IBM выпускает адаптер для монохромного дисплея (MDA) одновременно с CGA. MDA создает текст размером 80×25, рисуя каждый символ в поле размером 9×14 пикселей, из которых 7×11 — это сам символ, что дало бы нам разрешение 720×350 пикселей, что явно превосходило 8. ×8 текстовых режимов CGA. Из-за высокой цены CGA в то время MDA был предпочтительным выбором для бизнеса.
  • В 1982 году появляется графическая карта Hercules (HGC), которая не производится IBM. Он предлагает текстовый режим с высоким разрешением, совместимый с MDA, и монохромный графический режим с разрешением 720 × 348 пикселей, что намного лучше, чем максимальное разрешение, которое может предложить CGA. Таким образом, даже без поддержки цвета адаптер Hercules предлагает более качественную монохромную графику и возможность работать с гораздо более дешевыми мониторами, что делает его предпочтительным выбором для многих. Начиная с 1985 года резидентные программы- эмуляторы , такие как SIMCGA, позволяли отображать графические режимы CGA в графическом режиме Hercules (результат выглядел размытым , грубым. Hercules, вероятно, является наиболее широко используемой картой для подключения монохромных мониторов в эпоху IBM PC.

Менее используемым конкурентом была Plantronics Colorplus , карта, совместимая с CGA, которая удваивает объем видеопамяти до 32 КБ, позволяя использовать новые графические режимы: 16 цветов при разрешении 320×200 и 4 цвета при разрешении 640×200. Расширенные режимы CGA, присутствующие в IBM PCjr и Tandy 1000 , аналогичны этим режимам.

CGA была заменена на потребительской стороне картой IBM Enhanced Graphics Adapter (EGA), которая поддерживала большинство режимов CGA и добавляла дополнительное разрешение 640x350, а также 16-цветную палитру из 64. и графические режимы.

Ссылки

  1. ^ [1] Архивировано 4 марта 2016 г. в Wayback Machine .; видеть раздел 1-133, "Цветной/графический адаптер", стр. 143 документа ibm_techref_v202_1.pdf.
  2. Красный, Зеленый, Синий, Интенсивность
  3. ^ Кумар, А. (2002). Публикации Анмола, изд. Энциклопедия управления компьютерным оборудованием . п. 1050. ISBN  9788126110308 . 
  4. mobygames.com
  5. mobygames.com
  6. mobygames.com
  7. mobygames.com
  8. oldskool.org
  9. oldskool.org
  10. oldskool.org
  11. International Business Machines Corporation (1983): Техническое справочное руководство IBM Personal Computer XT, страницы с D-42 по D-43.

Смотрите также

Другие видеокарты:

Внешние ссылки