CGA
Color Graphics Adapter (CGA) - представленная в 1981 (одновременно с MDA) видеокарта для IBM-совместимых, которая первой стала поддерживать цвет.
Стандартная CGA несет на борту 16 килобайт видеопамяти и соединяется с NTSC совместимым монитором или телевизором посредством RCA коннектора, либо с RGBI CRT монитором. Основа карты - контролер Motorola MC6845. Самое большое разрешение - 640х200, самое большое количество одновременно отображаемых цветов - четыре.
Представленная альтернатива MDA ослепила привыкший к зеленому компьютерный мир. Новый адаптер обеспечивал 16 ярких чистых цветов (сюда относятся вводящие в заблуждение черный, темно-серый, светло-серый и белый цвета). Помимо этого, он обладал способностью работать в нескольких графических режимах с различной разрешающей способностью.
Как об этом говорит наименование адаптера, он предназначался для формирования графического изображения на цветном экране. Однако он обеспечивал работу и с монохромными дисплеями, созданными не IBM для плат MDA. Он мог работать в паре как с монохромными, так и с композитными мониторами, и даже с модулятором телевизионных приемников. (Тем не менее, вы не можете подключить CGA напрямую к телевизору, если у последнего нет композитного видеовхода). Обеспечивается также работа светового пера.
CGA — это многорежимный дисплейный адаптер. Он может использоваться и для символьных и для побитных технологий. Для каждой из них он реализует несколько режимов. Он содержит 16 Кб памяти, прямо доступной центральному микропроцессору.
Символьные режимы CGA
Символьный режим функционирования CGA устанавливается по умолчанию. В этом режиме функционирование CGA напоминает MDA. Главным отличием этих двух адаптеров является то, что второй был создан для работы с нестандартными вертикальными и горизонтальными частотами, обеспечивая более четкое изображение. CGA же использует стандартные частоты — те, что используются композиционными дисплеями. Это дает возможность быть совместимым с большим семейством мониторов, но в то же время уменьшает качество изображения. Для того, чтобы обеспечить функционирование с 15.525 Кгц горизонтальной частоты и 60 Гц вертикальной, CGA разделил дисплей на матрицу в 640 горизонтальных пикселей и 200 вертикальных. Для того, чтобы расположить 2000 символов на экране размером 80 х 25 сим-волов — в формате MDA — используются ячейки 8x8 пикселей.
16 Кб памяти CGA позволяют работать с 4 страницами текста. Обычно в текстовом режиме используется единственная страница — первая. Остальные доступны программам и пользователю через BIOS и через регистр режима CGA.
Качество символов CGA
В системах CGA каждый символ располагается в матрице 7x7. Одна точка зарезервирована для подстрочного элемента и еще одна — для разделения. Очевидно, что подстрочный элемент имеет протяженность на все изображение, что позволяет избежать использование дополнительных линий для разделения строк текста. Использование меньшего количества точек при изображении символа означает, что его изображение будет иметь более грубую и менее приятную форму по сравнению с MDA.
Текст в 40 столбцах
Но даже такое упрощение в изображении символов не дает хорошего качества при работе на стандартных телевизорах. В большинстве телевизоров строки символов в 80 столбцах имеют расплывчатое изображение. Это происходит из-за слабой разрешающей способности телевизионной трубки. Для того, чтобы позволить работать с цветными телевизорами, IBM реализовала специальный текстовый режим, позволяющий работать с устройством низкой разрешающей способности. В этом режиме число столбцов уменьшается с 80 до 40. Число строк сохраняется — 25. Телевизоры позволяют с успехом обрабатывать это количество строк.
Символы в этом режиме формируются в тех же рамках — 8 х 8, и с тем же качеством изображения. Они смотрятся грубоватыми, но все же лучшими, по сравнению с режимом с 80 столбцами, благодаря тому, что символы этого режима более широкие.
Хотя режим в 40 столбцов редко используется серьезными пользователями, многие программы (особенно утилиты) позволяют его реализовывать, генерируя текст по 40 символов в каждой строке. Вот почему некоторые ими формируемые изображения смотрятся такими странными сегодня. Сорокастолбцовый режим является самым необычным для текстовых систем IBM.
Цвета символов
В любом текстовом режиме IBM, используя атрибуты, можно работать с 16-цветовой палитрой. Любой символ текста может быть изображен любым из 16 цветов.
Фон символа — точки, входящие в матрицу символа 8 х 8 и не участвующие в формировании формы символа, — может также иметь один из 16 цветов, но с одним ограничением. В режиме, устанавливаемом по умолчанию, для фона можно использовать 8 цветов, потому что бит в байте параметров, устанавливающий яркость или интенсивность фонового цвета, предназначается для другой цели. Он используется для задания режима мерцания символа.
Специальный регистр CGA изменяет назначение этого бита. Загружая определенные значения в этот регистр, пользователь или программа могут выбирать между использованием мерцания или изображением цвета фона с повышенной интенсивностью. Однако этот регистр управляет всем текстом экрана, поэтому невозможно одновременно использовать и мерцающие символы и повышенную интенсивность цветового фона. CGA требует от программистов прямого обращения к этому регистру. Более усовершенствованные адаптеры IBM используют дополнительную программу BIOS для реализации этой функции.
Цвет границы
Еще один регистр CGA управляет цветом границы. Границей экрана является его область, не входящая в зону отображения информации. По умолчанию в цветном режиме CGA (при изображении текста на черном фоне) устанавливает эту зону в черный цвет. Измените фон цвета текста и окажется, что символы приобретут несносную форму с расплывчатостью по периметру.
Установка регистра, отвечающего за цвет границы, который может быть установлен в один из 16 имеющихся цветов, предназначается для формирования более приятного изображения на экране. Этот регистр называется регистром выбора цвета и он доступен через порт ввода-вывода по адресу 03D9(Hex). Младшие 4 бита этого регистра управляют цветом границ.
Нежелательное мерцание и снег
Самой неприятной особенностью CGA, утомляющую большинство пользователей, является тенденция адаптера порождать мерцания отображаемого текста в текстовом режиме с высокой разрешающей способностью. Нежелательное мерцание является следствием малой мощности PC и XT. Отображение текста на экране требует, чтобы каждый байт, используемый при формировании изображения, был перенесен, потому что каждый символ на экране и его атрибуты должны изменить свое положение. Система отображения IBM разработана таким образом, что информация заносится на экран только в течение короткого периода времени, названного вертикальным возвращением (vertical retrace). В течение этого времени электронный луч возвращается назад, с нижней кромки экрана в правом углу — наверх в левый угол. За это время электронный луч отключается, поэтому не имеет значения, какие информационные сигналы передаются ему — на экране ничего не появится. Если память CGA актуализировать в любое другое время, когда электронный луч не погашен, система может в это время сканировать видеопамять и выбрать из нее случайные шумы, которые затем могут быть посланы на экран. В результате на нем могут появиться маленькие яркие пятна. Этот видеошум называется снегом. (Людям с богатым воображением эти появляющиеся на экране точки напоминают снегопад). Плата CGA обеспечивает обработку бита состояния, указывающего, когда происходит вертикальное возвращение луча. Этот бит сигнализирует программам или BIOS, что они могут занести информацию для формирования изображения. Периода времени, за которое происходит вертикальное возвращение луча, хватает только на заполнение нескольких строк. Если заполнять весь экран, может появиться снег. IBM пошла другим путем. Она увеличила время в тот момент, когда отключена электронная пушка, на столько, чтобы полностью заполнить экран. Вместо моментального потемнения экрана во время вертикального возвращения луча, он гаснет постепенно, несколько долей секунды. Эта технология и вызывает мерцание изображения.
Конструкторам CGA приходилось выбирать между мерцанием и снегом. Другие видеоадаптеры используют более быструю память, что дает возможность проактуализировать ее за время вертикального возврата луча. Еще более простым выходом служит возможность использовать память, которую можно актуализировать во время чтения.
Графические режимы
Стандарт CGA реализует в графических режимах три уровня разрешающей способности: низкий, средний и высокий. Каждый режим характеризуется числом точек, которые могут поддерживаться на экране, и числом цветов. Чем больше разрешающая способность, тем меньше цветов обеспечивает CGA. 16 К его памяти ограничивают число бит, которые можно выделить в качестве атрибутов каждой точки на АРА дисплее.
Низкая разрешающая способность
Самая низкая разрешающая способность графического режима CGA, который не поддерживается IBM, делит весь экран на 160 строк шириной в 200 точек. Так как, в таком случае, от дисплея требуется 32000 пикселей, только половина байта атрибутов предназначается для описания 4 плоскостей цветов, что является достаточным для поддержания 16 цветов. Все 16 цветов доступны CGA при формировании изображения на экране. Но получаемое изображение имеет такую угловатую форму, что этот режим редко используется.
Средняя разрешающая способность
Этот режим возник как компромисс между цветом и точностью изображения. Он основывается на использовании 320 строк шириной в 200 точек и позволяет обрабатывать две плоскости цветов, что в свою очередь дает возможность изображать на экране одновременно цветовую гамму из четырех составляющих.
Однако 4 цвета не могут быть выбраны произвольным образом. IBM позволяет использовать 4 палитры цветов: красный, зеленый, коричневый и черный; белый, фуксиновый, циановый и черный (или другой указанный цвет фона); и предыдущие две палитры, но с большей интенсивностью окраски. Для задания необходимой палитры используется специальный порт ввода-вывода с адресом 03D9(Hex). Пятый бит порта по этому адресу выбирает между красным/зеленым (значение 0) и фуксиновым/циановым (значение 1). Этот порт несет еще и другую функциональную нагрузку. Его четвертый бит задает интенсивность: 0 — тусклая; 1 — яркая. Нулевой и третий биты задают цвет фона. По умолчании BIOS устанавливает интенсивное свечение фуксин/циановой палитры на черном фоне.
Высокая разрешающая способность
В этом режиме CGA выделяет по 1 биту на каждый пиксель экрана, обеспечивая обработку 640 горизонтальных пикселей и 200 вертикальных. Так как из-за этого не остается свободной памяти для хранения атрибутов, все пиксели имеют одну и ту же интенсивность и окраску. Однако цвет изображения можно изменять посредством регистра выбора цветов.
Распределение памяти CGA
В графическом режиме CGA работает с необычным распределением памяти. Информация по четным сканируемым строкам, начиная с 0, располагается в памяти с началом по адресу 0В8000(Нех). Нечетные хранятся в такой же последовательности по адресу большем на 2000 (Hex). Такое необычное распределение памяти было использовано всецело из практических причин, происходящих из конструкций аппаратных средств.
Если несколько битов назначаются для описания одного пикселя, они хранятся как последовательность битов в определенном "байте". Для режима со средней разрешающей способ-ностью — это 4 пикселя на 1 байт. Такая необычная планировка памяти не должна беспокоить вас. Все графические программы и языки автоматически принимают ее в расчет при работе в этом режиме CGA.
Выходные сигналы
Можно подключать дисплей к CGA, используя один из трех отличных друг от друга разъемов. Выбор разъема зависит от типа дисплея, к которому подключается адаптер.
Лучше всего использовать цветной дисплей для персональных компьютеров IBM 5151. В этом дисплее используется цифровой TTL вход, реализуемый на базе девятиконтактного D-образного разъема. Обеспечиваются отдельные цифровые сигналы включения и выключения, подающиеся на каждую из трех пушек (красную, зеленую и голубую) сигнал интенсивности (он задает яркость всех трех пушек одновременно), горизонтальный синхроимпульс, вертикальный и землю. Все эти сигналы представляются в позитивной форме. Иными словами, высокий уровень сигнала включает электронную пушку или воспринимается как синхроимпульс. Исключение составляет сигнал вертикальной синхронизации. Первые экземпляры этого устройства с такими формами сигналов породили оживленное обсуждение, потому что горизонтальный синхроимпульс было принято в то время использовать в негативной форме.
Композитный выходной сигнал можно снять с CGA как с RCA-разъема, устанавливаемого на кронштейне, так и с поверхности самой платы. Через RCA-разъем обеспечивается совместимость как с цветными, так и с монохромными дисплеями, что удовлетворяет требованиям стандарта NTSC.
Композиционный выход, обеспечиваемый платой, подразумевает, что используется модулятор, преобразующий сигнал CGA в стандартный телевизионный. Контакты однорядного разъема платы содержат необходимые для модулятора сигналы.
Черно-белый режим
При подключении CGA к черно-белому монитору текст становится очень трудно читаемым. Изображение в полутонах является следствием цветового сигнала, являющего частью составного видеосигнала. Это ограничивает широту видеосигнала и отрицательно сказывается на формировании черно-белых символов, вызывая появление неприятных вертикальных полос на экране.
От неприятностей можно избавиться, перейдя в черно-белый режим, который освободит частоту, занимаемую сигналом цветности. И хотя эту операцию можно реализовать посредством регистра CGA, команда MODE, поддерживаемая DOS, более удобна. Достаточно просто ввести: MODE BW - и поддиапазон цвета будет освобожден.
Дополнительная информация
В режиме вывода на композитный интерфейс некоторые игры могут использовать хак для "расширения" отображаемой палитры (см. обзор Newbilius)