컬러 그래픽스 어댑터

**컬러 그래픽스 어댑터**(Color Graphics Adapter, **CGA**, 원래 명칭: 컬러/그래픽스 어댑터, Color/Graphics Adapter 또는 IBM 컬러/그래픽스 모니터 어댑터, IBM Color/Graphics Monitor Adapter)는 1981년에 출시된 IBM의 IBM PC용 첫 번째 컬러 그래픽 카드로, 사실상 표준인 컴퓨터 디스플레이 표준을 확립했다.

## 하드웨어 설계
오리지널 IBM CGA 그래픽 카드는 모토로라 6845 디스플레이 컨트롤러를 기반으로 제작되었으며, 16 킬로바이트의 비디오 메모리가 내장되어 있었고 여러 그래픽 및 텍스트 모드를 제공했다. 모든 모드 중 가장 높은 해상도는 이었으며, 지원되는 가장 높은 색 깊이는 4비트(16색)였다.

CGA 카드는 IBM 5153 컬러 디스플레이와 같은 4비트 디지털(TTL) RGBI 인터페이스를 사용하는 다이렉트 드라이브 CRT 모니터에 연결하거나, RCA 단자를 통해 NTSC 호환 텔레비전 또는 컴포지트 비디오 컴퓨터 모니터에 연결할 수 있었다. RCA 단자는 베이스밴드 비디오만 제공했으므로, 컴포지트 비디오 입력이 없는 텔레비전에 CGA 카드를 연결하려면 별도의 RF 변조기가 필요했다.

IBM은 CGA와 함께 사용할 수 있는 5153 개인용 컴퓨터 컬러 디스플레이를 생산했지만, 출시 당시에는 사용할 수 없었으며 1983년 3월이 되어서야 출시되었다.

IBM의 자체 컬러 디스플레이를 사용할 수 없었을 때, 고객은 컴포지트 출력(필요한 경우 RF 변조기 사용)을 사용하거나 RGBI 형식 및 스캔 속도를 지원하는 타사 모니터를 사용하여 다이렉트 드라이브 출력을 사용할 수 있었다. 일부 타사 디스플레이에는 강도(intensity) 입력이 없어 사용 가능한 색상이 8개로 줄어들었으며, 많은 디스플레이에 어두운 노란색을 갈색으로 렌더링하는 IBM 고유의 회로가 부족하여 갈색을 사용하는 모든 소프트웨어가 잘못 표시되기도 했다.

## 출력 기능
CGA는 여러 비디오 모드를 제공했다.

그래픽 모드:
* 16색 팔레트에서 선택된 16색의  모드.  텍스트 모드의 특정 구성을 활용한다.
** 픽셀당 4비트를 사용하며, 총 메모리 사용량은 (160&nbsp;× 100&nbsp;× 4)&nbsp;/ 8&nbsp;= 8 킬로바이트이다.
* 3개의 고정된 팔레트에서 선택된 4색의  모드. 고강도 및 저강도 변형이 있으며, 색상 1은 16색 팔레트에서 선택된다.
** 픽셀당 2비트를 사용하며, 총 메모리 사용량은 (320&nbsp;× 200&nbsp;× 2)&nbsp;/ 8&nbsp;= 16 킬로바이트이다.
* 검은색 하나와 16색 팔레트에서 선택된 색상 하나로 구성된 2색의  모드.
** 픽셀당 1비트를 사용하며, 총 메모리 사용량은 (640&nbsp;× 200)&nbsp;/ 8&nbsp;= 16 킬로바이트이다.
일부 소프트웨어는 컴포지트 모니터에 연결했을 때 아티팩트 컬러를 활용하여 더 높은 색 깊이를 구현했다.

텍스트 모드:
*  픽셀 글꼴을 사용한  모드 (유효 해상도 )
*  픽셀 글꼴을 사용한  모드 (유효 해상도 )

IBM은 CGA가 가정용 텔레비전 세트와 호환되도록 의도했다.  텍스트 및  그래픽 모드는 텔레비전에서 사용 가능하며,  텍스트 및  그래픽 모드는 모니터용으로 의도되었다.


파일:Cga p0.png|320&nbsp;×&nbsp;200 팔레트 0의 4색
파일:Cga p0 low.png|320&nbsp;×&nbsp;200 팔레트 0 저강도의 4색
파일:Cga p1.png|320&nbsp;×&nbsp;200 팔레트 1의 4색
파일:Cga p1 low.png|320&nbsp;×&nbsp;200 팔레트 1 저강도의 4색
파일:Cga p3.png|320&nbsp;×&nbsp;200 팔레트 3의 4색
파일:Cga p3 low.png|320&nbsp;×&nbsp;200 팔레트 3 저강도의 4색
파일:Cga 640x200.png|640&nbsp;×&nbsp;200 2색
파일:Cga 160x100.png|160&nbsp;×&nbsp;100 16색
파일:Cga composite 640.png|컴포지트 아티팩트 컬러 (640&nbsp;×&nbsp;200 단색 기반)
파일:Cga composite 320p1.png|컴포지트 아티팩트 컬러 (320&nbsp;×&nbsp;200 팔레트 1 기반)
파일:Cga composite 320p0.png|컴포지트 아티팩트 컬러 (320&nbsp;×&nbsp;200 팔레트 0 기반)



파일:Paku-paku5-dos.png|160&nbsp;×&nbsp;100 16색 모드의 PakuPaku
파일:CGA Partial Mandelbrot Set.png|320&nbsp;×&nbsp;200 팔레트 1을 사용하여 망델브로 집합을 렌더링한 Fractint


## 컬러 팔레트
CGA는 4비트 RGBI 16색 색역을 사용하지만, 사용 중인 그래픽 모드에 따라 모든 색상을 항상 사용할 수 있는 것은 아니다. 중해상도 및 고해상도 모드에서는 색상이 더 낮은 비트 깊이로 저장되며 전체 16색 팔레트에서 직접 선택하는 것이 아니라 고정된 팔레트 인덱스에 의해 선택된다.

저해상도 모드나 컬러 레지스터 프로그래밍을 위해 4비트가 사용될 때, 이들은 RGBI 컬러 모델에 따라 배열된다.

* 하위 3비트는 빨강, 초록, 파랑 색상 구성 요소를 나타낸다.
* 네 번째 "강도(intensifier)" 비트가 설정되면 세 가지 색상 구성 요소(빨강, 초록, 파랑) 모두의 밝기가 증가한다.

이 네 가지 색상 비트는 모니터에 의해 내부적으로 해석되거나 NTSC 색상으로 변환된다(아래 참조).

### RGBI 모니터 사용 시
다이렉트 드라이브 모니터를 사용할 때, 4개의 색상 비트는 카드 뒷면의 DE-9 커넥터로 직접 출력된다.

모니터 내에서 이 네 가지 신호는 빨강, 초록, 파랑 색상 전자총을 구동하도록 해석된다. 위에서 설명한 RGBI 컬러 모델과 관련하여, 모니터는 디지털 4비트 색상 번호를 각 전자총에 대해 0.0에서 1.0 범위의 7가지 뚜렷한 아날로그 전압으로 변환한다.

색상 6은 특별하게 처리된다. 일반적으로 색상 6은 오른쪽에서 보는 것처럼 어두운 노란색이 되지만, 더 보기 좋은 갈색 톤을 얻기 위해 IBM 5153 컬러 디스플레이를 비롯한 대부분의 RGBI 모니터에 있는 특수 회로는 색상 6에 대해 예외를 두어 아날로그 초록색 신호의 진폭을 줄임으로써 색조를 어두운 노란색에서 갈색으로 변경한다. 감소량은 모니터 모델마다 달랐다. 오리지널 IBM 5153 개인용 컴퓨터 컬러 디스플레이는 초록색 신호의 진폭을 약 3분의 1 정도 줄이는 반면, IBM 5154 강화 컬러 디스플레이는 내부적으로 모든 4비트 RGBI 색상 번호를 6비트 ECD 색상 번호로 변환하는데, 이는 초록색 신호의 진폭을 절반으로 줄이는 것과 같다. 탠디 CM-2, CM-4 및 CM-11 모니터는 초록색 신호 감소량을 조절하기 위해 "BROWN ADJ."라고 표시된 가변 저항기를 제공한다.

이 "갈색이 조정된 RGBI" 팔레트는 EGA 및 VGA와 같은 이후 PC 그래픽 표준의 기본 팔레트로 유지되었으며, 프로그래밍을 통해 훨씬 더 큰 색역에서 색상을 선택할 수 있지만 기본적으로는 이 팔레트를 사용한다.

나중에 나온 CGA 에뮬레이션 모드의 비디오 카드/모니터는 다음 공식으로 색상을 근사화한다.
 red   := 2/3×(colorNumber & 4)/4 + 1/3×(colorNumber & 8)/8
 green := 2/3×(colorNumber & 2)/2 + 1/3×(colorNumber & 8)/8
 blue  := 2/3×(colorNumber & 1)/1 + 1/3×(colorNumber & 8)/8
 if (color == 6)
    green := green * 2/3

이를 통해 표준 CGA 팔레트가 생성된다:

참고: 표시된 색상 16진수 값은 8비트 RGB에 해당하며, 내부적으로 CGA는 4비트 RGBI이다.

### 컴포지트 컬러 모니터/텔레비전 사용 시
섬네일|NTSC 출력 사용 시 CGA의 16색 (1983년 이후 카드 개정판)|alt=컴포지트 출력의 경우, 이러한 4비트 색상 번호는 CGA의 온보드 하드웨어에 의해 카드의 RCA 출력 잭으로 공급되는 NTSC 호환 신호로 인코딩된다. 비용 문제로 인해 NTSC 표준에서 요구하는 RGB-to-YIQ 컨버터를 사용하지 않고 일련의 플립플롭과 지연 선을 사용하여 수행된다.

결과적으로 보이는 색조는 순도가 떨어진다. 특히 청록색과 노란색은 녹색 빛을 띠며 색상 6은 갈색 대신 어두운 노란색으로 다시 보인다.

컴포지트 색상 생성 회로에서 생성된 색상의 상대적 휘도는 CGA 개정판마다 다르다. 1983년까지 생산된 초기 CGA의 경우 색상 1-6 및 9-14에 대해 동일하지만, 나중에 나온 CGA는 추가 저항기가 추가되어 다르다.

## 표준 텍스트 모드

CGA는 4개의 BIOS 텍스트 모드(IBM 문서에서는 영숫자 또는 A/N 모드로 불리는 **모드 0**에서 **3**)를 제공한다. 이 모드에서는 화면의 개별 픽셀을 직접 다룰 수 없다. 대신 화면은 문자 셀 격자로 나뉘며, 각 셀은 카드의 ROM에 포함된 "일반" 및 "가는(thin)" 두 가지 비트맵 글꼴 중 하나로 정의된 문자를 표시한다. 글꼴은 고정되어 있어 소프트웨어로 수정하거나 선택할 수 없으며 보드 자체의 점퍼를 통해서만 선택할 수 있다.

글꼴은 1비트 색 깊이의 비트맵으로 저장되며, "1"은 문자를, "0"은 배경을 나타낸다. 이 색상들은 화면의 각 문자에 대해 전체 16색 CGA 팔레트에서 독립적으로 선택할 수 있다. 문자 집합은 하드웨어 코드 페이지 코드 페이지 437에 의해 정의된다.

글꼴 비트맵 데이터는 카드 자체에서만 사용할 수 있으며 CPU에서는 읽을 수 없다. 그래픽 모드에서 BIOS에 의한 텍스트 출력은 글꼴 ROM의 텍스트를 비트 단위로 비디오 메모리에 복사하여 작동한다.

### 40&nbsp;×&nbsp;25 모드
BIOS **모드 0**과 **1**은 모두 40열 25행 텍스트 모드이며 각 문자는  도트 패턴이다. 이 모드에서의 유효 화면 해상도는  픽셀이다(픽셀 가로세로비 1:1.2). 카드는 이 모드에서 8개의 서로 다른 텍스트 페이지를 저장할 수 있는 충분한 비디오 RAM을 가지고 있다.

이 두 모드의 차이점은 컴포지트 모니터에서만 볼 수 있는데, 모드 0은 컬러버스트를 비활성화하여 모든 텍스트를 그레이스케일로 표시한다. 모드 1은 컬러버스트를 활성화하여 컬러 표시가 가능하다. 모드 0과 모드 1은 RGB 모니터와 컴포지트 컬러 출력을 지원하지 않고 CGA를 에뮬레이션하는 나중의 어댑터에서는 기능적으로 동일하다.

### 80&nbsp;×&nbsp;25 모드
BIOS **모드 2**와 **3**은 80열 25행 텍스트 모드를 선택하며 각 문자는 여전히  도트 패턴이지만 더 높은 스캔 속도로 표시된다. 이 모드의 유효 화면 해상도는  픽셀이다. 이 모드에서 카드는 4개의 서로 다른 텍스트 페이지를 저장할 수 있는 충분한 비디오 RAM을 가지고 있다.

40열 텍스트 모드와 마찬가지로 모드 2는 컴포지트 신호에서 컬러버스트를 비활성화하고 모드 3은 이를 활성화한다.

### 텍스트 모드 색상
각 문자 셀은 전경색과 배경색을 위해 4비트를 저장했다. 그러나 카드의 기본 구성에서 배경색의 네 번째 비트는 강도를 설정하지 않고 셀의 깜빡임(blink) 속성을 설정한다. 이 비트가 설정된 화면의 모든 문자는 주기적으로 깜빡이는데, 이는 전경색이 배경색으로 변경되어 문자가 보이지 않게 됨을 의미한다. 모든 문자는 일제히 깜빡인다.

하드웨어 레지스터를 설정하여 깜빡임 기능을 비활성화하고 고강도 배경색에 대한 액세스를 복구할 수 있다.

화면의 모든 깜빡이는 문자는 동기화되어 깜빡인다. 깜빡임 속성 효과는 기본적으로 활성화되어 있고 고강도 배경 효과는 비활성화되어 있다. 배경색으로 나머지 8개 색상 인덱스(8-15)를 자유롭게 선택하는 유일한 방법은 깜빡임을 비활성화하는 것이다.

특히 MS-DOS와 함께 제공된 GW 베이직 및 마이크로소프트 QBASIC 프로그래밍 언어는 완전한 색상 제어로 CGA의 모든 텍스트 모드를 지원했지만, BASIC 언어를 통해 CGA를 깜빡임 모드에서 16개 배경색 모드로 전환하는 일반적인 수단을 제공하지 않았다. 그러나 BASIC 언어의 OUT 문을 사용하여 하드웨어 레지스터를 직접 프로그래밍하면 가능했다.

## 표준 그래픽 모드
CGA는 ,  및 의 세 가지 해상도로 그래픽 모드를 제공한다. 모든 모드에서 화면의 모든 픽셀을 직접 설정할 수 있지만 상위 모드의 색 깊이는 전체 16색 팔레트에서 자유롭게 선택하는 것을 허용하지 않는다.

### 320&nbsp;×&nbsp;200
중해상도  모드(**모드 4** 및 **5**)에서 각 픽셀은 2비트이며 4색 팔레트에서 색상을 선택한다. 모드 4에는 두 개의 팔레트가 있고 모드 5에는 단일 팔레트가 있다.

하드웨어 레지스터를 프로그래밍하여 몇 가지 선택을 할 수 있다. 첫째, 선택된 팔레트. 둘째, 강도(전체 화면에 대해 정의됨). 셋째, 색상 0(배경색)을 16개 색상 중 어느 것으로든 설정할 수 있다.

특정 BIOS 그래픽 모드는 사용 가능한 팔레트에 영향을 준다. BIOS 모드 4는 초록/빨강/갈색과 청록/자홍/하양의 두 가지 팔레트를 제공한다.

텍스트 모드 0 및 2와 마찬가지로, **모드 5**는 컬러버스트를 비활성화하여 컴포지트 모니터에서 색상이 그레이스케일로 나타나게 한다. 그러나 텍스트 모드와 달리 이는 RGBI 모니터에 표시되는 색상에도 영향을 미쳐 위에서 본 청록/빨강/하양 팔레트로 변경한다. 이 팔레트는 IBM에서 문서화하지 않았지만 일부 소프트웨어에서 사용되었다.

### 640&nbsp;×&nbsp;200
고해상도  모드(**모드 6**)에서 각 픽셀은 1비트이며 하드웨어 레지스터 프로그래밍을 통해 16색 팔레트에서 선택할 수 있는 두 가지 색상을 제공한다.

이 모드에서 비디오 그림은 단순한 비트맵으로 저장되며 픽셀당 1비트가 색상을 "전경" 또는 "배경"으로 설정한다. 기본적으로 색상은 검은색과 밝은 흰색이지만 전경색은 16색 CGA 팔레트의 모든 항목으로 변경할 수 있다. 오리지널 IBM CGA 카드에서 배경색은 검은색에서 변경할 수 없다.

이 모드는 기본적으로 컴포지트 컬러버스트 신호를 비활성화한다. BIOS는 640 × 200 모드에서 컬러버스트를 켤 수 있는 옵션을 제공하지 않으며 사용자는 이를 활성화하기 위해 모드 제어 레지스터에 직접 써야 한다.

## 추가 그래픽 모드 및 조정

특수 효과를 얻기 위해 활용할 수 있는 여러 공식 및 비공식 기능이 존재한다.

*  그래픽 모드에서 모드 초기화 시 기본적으로 검은색인 배경색(테두리 색상에도 영향을 미침)을 CGA 팔레트의 다른 15개 색상 중 하나로 변경할 수 있다. 이를 통해 화면을 다시 그릴 필요 없이(즉 비디오 RAM의 내용을 변경하지 않고) 배경색을 변경할 수 있어 몇 가지 변형과 깜빡임 효과가 가능하다.
* 텍스트 모드에서 테두리 색상(일반 디스플레이 영역 외부 및 오버스캔 영역 포함)을 기본 검은색에서 다른 15개 색상 중 하나로 변경할 수 있다.
* 정밀한 타이밍을 통해 비디오가 출력되는 동안 다른 팔레트로 전환할 수 있어 주사선(scanline)당 6개 팔레트 중 하나를 사용할 수 있다. 순정 4.77&nbsp;MHz 8088에서 실행되는 캘리포니아 게임즈가 그 예이다. 프로그래머가 미리 결정된 위치에서 팔레트를 전환하기 위해 사용한 방법이 기계 속도에 극도로 민감하기 때문에 더 빠른 컴퓨터에서 실행하면 효과가 나타나지 않는다. 프로거에서 강과 도로를 만드는 데 사용된 것처럼 배경색에 대해서도 동일한 작업을 수행할 수 있다. 이 기술의 또 다른 문서화된 사례는 아타리소프트가 PC로 이식한 정글 헌트이다.
* 디더링을 사용하여 추가적인 색상을 근사화할 수 있다.
* 저강도의 팔레트 0을 사용하고 어두운 파란색을 배경색으로 사용하면 갈색뿐만 아니라 세 가지 기본 RGB 색상을 제공한다.

위의 몇 가지 조정을 결합할 수 있다. 여러 게임에서 사례를 찾을 수 있다.

### 160&nbsp;×&nbsp;100 16색 모드
섬네일| 모드의 단일 대형 "픽셀". 이는 문자 221의 절반인 상단 두 행이다. 8개의 구성 비정사각형 픽셀과 1:1.2 픽셀 가로세로비에 주목하라.[섬네일| 모드를 사용하는 [팩맨 (비디오 게임)|팩맨 클론인 PakuPaku의 타이틀 화면]]
엄밀히 말하면 이 모드는 그래픽 모드가 아니라  텍스트 모드의 변형이다. 문자 셀 높이 레지스터를 일반적인 8줄 대신 문자 셀당 2줄만 표시하도록 변경한다. 이렇게 하면 표시되는 텍스트 행 수가 25행에서 100행으로 4배 증가한다. 이 "조밀하게 압축된" 텍스트 문자는 전체 문자가 아니다. 시스템은 다음 행으로 이동하기 전에 글꼴의 상단 두 픽셀 줄(각 8개씩)만 표시한다.

CGA 문자 집합의 문자 221은 문자 행렬의 왼쪽 절반 전체를 차지하는 상자로 구성된다. (문자 222는 오른쪽 절반 전체를 차지하는 상자로 구성된다.)

각 문자에는 서로 다른 전경색과 배경색을 할당할 수 있으므로 예를 들어 왼쪽은 파란색(전경색), 오른쪽은 밝은 빨간색(배경색)으로 색칠할 수 있다. 전경색과 배경색을 바꾸면 이를 반전시킬 수 있다.

문자 221 또는 222를 사용하면 잘린 각 문자 셀의 각 절반을 개별 픽셀로 취급할 수 있어 행당 160개의 수평 픽셀을 사용할 수 있다. 따라서 픽셀 가로세로비가 1:1.2인 16색의  픽셀이 가능하다.

16색 그래픽 디스플레이를 얻기 위한 우회적인 방법이지만 꽤 잘 작동하며 이 모드는 IBM의 공식 하드웨어 문서에서도 언급된다(설명되지는 않았지만). 이 모드는 일찍이 1983년 게임 Moon Bugs에서 사용되었다.

이 모드에서 앞서 언급한 기술과 아스키 아트를 결합하여 다른 문자를 사용함으로써 더 자세한 묘사가 가능하다. 이는 Macrocom, Inc에서 Icon: Quest for the Ring (1984년 출시) 및 The Seven Spirits of Ra (1987년 출시) 두 게임에서 탐구되었다.

동일한 텍스트 셀 높이 감소 기술을  텍스트 모드에도 사용할 수 있으며  해상도와 약 1.67:1의 픽셀 가로세로비를 얻을 수 있다.

## 컴포지트 출력

RGBI 모니터 대신 컴포지트 출력을 사용하면 NTSC의 휘도와 크로미넌스 사이의 열악한 분리로 인해 낮은 품질의 비디오가 생성되었다. 이는 특히 80열 텍스트에서 문제가 된다.

center|590px |섬네일|RGB(왼쪽)와 컴포지트 모니터(오른쪽)의 80열 텍스트 비교

이러한 이유로 각 텍스트 및 그래픽 모드에는 컴포지트 컬러버스트를 비활성화하는 복제 모드가 있어 흑백 그림이 되지만 색 번짐을 제거하여 더 선명한 그림을 생성한다. RGBI 모니터에서 각 모드의 두 버전은 일반적으로 동일하지만, "흑백" 버전이 세 번째 팔레트를 생성하는  그래픽 모드는 예외이다.

### 확장 아티팩트 컬러
프로그래머들은 고해상도 도트의 뚜렷한 패턴이 일정한 단색 영역으로 변하는 것을 발견하고 이 결함을 자산으로 바꾸어 완전히 새로운 아티팩트 컬러를 표시할 수 있게 했다. 표준  4색 및  검정 기반 컬러 그래픽 모드 모두에서 이 기술을 사용할 수 있었다.

#### 내부 작동
직접 색상은 위의 "CGA 컬러 팔레트"에서 설명한 일반적인 16색이다.

컴포지트 모니터의 NTSC 크로마 디코더가 휘도 정보의 일부를 색상으로 잘못 해석하기 때문에 아티팩트 컬러가 보인다. 픽셀을 적절한 패턴으로 신중하게 배치함으로써 프로그래머는 원하는 새로운 색상을 생성하는 특정 교차 색상 아티팩트를 생성할 수 있다. 이는 다음 그림에서 볼 수 있듯이  모드의 순수 흑백 픽셀이나  모드의 직접 색상과 아티팩트 컬러의 조합으로 나타난다.

파일:CGA CompVsRGB 640.png|640 × 200
파일:CGA CompVsRGB 320p0.png|320 × 200 팔레트 0
파일:CGA CompVsRGB 320p1.png|320 × 200 팔레트 1


따라서 320 × 200 대 640 × 200 모드 사이의 선택, 두 팔레트 사이의 선택, 그리고 하나의 자유롭게 선택 가능한 색상( 모드에서는 배경, 640 × 200 모드에서는 전경)을 통해 많은 서로 다른 아티팩트 컬러 세트를 사용할 수 있으며 총 100개 이상의 색역을 얻을 수 있다.
나중에 열성 팬들의 데모씬 시연을 통해 CGA가 동시에 표시할 수 있는 최대 색상 수가 1024개로 늘어났다. 이 기술은 텍스트 행의 수를 4배로 늘리는 텍스트 모드 조정을 포함한다. 그런 다음 U 및 ‼와 같은 특정 ASCII 문자를 사용하여 필요한 패턴을 생성하며, 이는 컴포지트 모니터에서 의 유효 해상도를 가진 디더링되지 않은 이미지를 생성한다.

각 라인이 출력되는 동안 160 사이클의 NTSC 컬러 클록이 발생하므로 40열 모드에서 각 픽셀은 반 사이클을 차지하고 80열 모드에서 각 픽셀은 4분의 1 사이클을 사용한다. 문자 표시를 상단 1~2개 주사선으로 제한하고 코드 페이지 437의 특정 문자에 있는 픽셀 배열을 활용하면 최대 1024색을 표시할 수 있다. 이 기술은 데모씬 데모인 8088 MPH에서 사용되었다.

#### 가용성 및 주의사항
이 기술의  변형(위 참조)은 컴포지트 컬러 모니터에서 표준 BIOS 지원 그래픽 모드가 보이는 방식이다. 그러나  변형은 CGA의 하드웨어 레지스터에서 비트(컬러버스트 비활성화)를 직접 수정해야 한다. 결과적으로 일반적으로 별도의 "모드"로 지칭된다.

NTSC 인코딩/디코딩 프로세스에 전적으로 의존하기 때문에 컴포지트 컬러 아티팩팅은 RGBI 모니터에서 사용할 수 없으며 EGA, VGA 또는 현대의 그래픽 어댑터에서도 에뮬레이션되지 않는다.

현대의 게임 중심 PC 에뮬레이터인 도스박스는 CGA 모드를 지원하며 컴포지트 모니터의 컬러 아티팩팅을 에뮬레이션할 수 있다.  컴포지트 모드와 더 복잡한  변형이 모두 지원된다.

#### 해상도 및 용도
의도적으로 사용되었든 원치 않는 아티팩트였든 컴포지트 아티팩팅은 수직 해상도를 변경하지 않고 유효 수평 해상도를 최대 160픽셀(흑백 텍스트의 경우 그 이상)로 감소시킨다. "아티팩트" 색상이 적용된 결과물인 컴포지트 비디오 디스플레이는 때때로  / 16색 "모드"로 설명되기도 하지만 기술적으로는 표준 모드를 사용한 기법이었다.

이 컴포지트 컬러 아티팩팅 방식의 낮은 해상도로 인해 거의 게임에서만 사용되었다. 많은 유명 타이틀이 컴포지트 컬러 모니터에 최적화된 그래픽을 제공했다. IBM PC로 이식된 게임 시리즈의 첫 번째 게임인 Ultima II는 CGA 컴포지트 그래픽을 사용했다. King's Quest I 또한 PC, PCjr 및 탠디 1000에서 16색 그래픽을 제공했지만 타이틀 화면에서 4색으로 제한된 일반 CGA 그래픽 모드만 사용하는 'RGB 모드'를 제공했다.


파일:Microsoft Decathlon RGBvsComposite.png|Microsoft Decathlon. 상단: 컴포지트 모드 게임, 하단: RGB 모드 게임, 왼쪽: RGB 모니터 사용, 오른쪽: 컴포지트 모니터 사용.
파일:KQ CompVsRGB.png|King's Quest. 상단: 컴포지트 모드 게임, 하단: RGB 모드 게임, 왼쪽: RGB 모니터 사용, 오른쪽: 컴포지트 모니터 사용.
파일:Ultima2 CompVsRGB.png|Ultima II. 왼쪽: RGB 모니터 사용, 오른쪽: 컴포지트 모니터 사용.


## 제한 사항, 버그 및 오류
CGA의 비디오 타이밍은 모토로라 6845 비디오 컨트롤러에 의해 제공된다. 이 집적 회로는 원래 문자 기반의 영숫자(텍스트) 디스플레이용으로만 설계되었으며 최대 128개의 문자 행을 다룰 수 있다.

CGA에서 200개의 주사선을 가진 그래픽 모드를 구현하기 위해 MC6845는 그림당 100개의 문자 행과 문자 행당 2개의 주사선으로 프로그래밍된다. MC6845가 출력하는 비디오 메모리 주소는 문자 행 내의 각 주사선에 대해 동일하기 때문에 CGA는 비디오 메모리에서 래스터 데이터를 가져오기 위해 MC6845의 "행 주소" 출력(즉 문자 행 내의 주사선)을 추가 주소 비트로 사용해야 한다.

이는 단일 주사선의 래스터 데이터 크기가 2의 거듭제곱이 아니면 래스터 데이터를 비디오 메모리에 연속적으로 배치할 수 없음을 의미한다. 대신 CGA의 그래픽 모드는 짝수 번호 주사선을 메모리에 연속적으로 저장하고 이어서 비디오 메모리 위치 8,192에서 시작하는 홀수 번호 주사선의 두 번째 블록을 저장한다. 이 배열은 비디오 메모리를 조작하는 소프트웨어에 대해 그래픽 모드에서 추가적인 오버헤드를 발생시킨다.

MC6845 비디오 컨트롤러가 인터레이스 비디오를 위한 타이밍을 제공할 수 있음에도 불구하고 CGA의 회로는 동기화 신호를 항상 순차 주사(progressive)가 되도록 정렬한다. 결과적으로 표준 15&nbsp;kHz 모니터를 사용하여 수직 해상도를 400 주사선으로 두 배로 늘리는 것은 불가능하다.

80열 텍스트 모드에서 사용되는 더 높은 대역폭으로 인해 프로그램이 화면을 그리는 동안 비디오 메모리에 직접 쓰면 화면에 무작위의 짧은 수평선("눈(snow)"이라고 함)이 나타난다. BIOS는 수평 되돌이(horizontal retrace) 기간에만 메모리에 액세스하거나 스크롤하는 동안 일시적으로 출력을 꺼서 이 문제를 피한다. 이로 인해 디스플레이가 깜빡거리지만 IBM은 눈이 내리는 것보다 낫다고 판단했다. "눈" 문제는 다른 비디오 어댑터나 대부분의 CGA 호환 기종에서는 발생하지 않는다.

80열 텍스트 모드에서는 픽셀 클록 주파수가 두 배가 되며 모든 동기화 신호는 적절한 지속 시간을 유지하기 위해 두 배의 클록 사이클 동안 출력된다. 컴포지트 출력의 컬러버스트 신호 회로는 예외이다. 이 회로는 여전히 동일한 수의 사이클을 출력하는데 이제 두 배의 클록 속도이므로 생성된 컬러버스트 신호가 대부분의 모니터에 너무 짧아 색상이 나오지 않거나 불안정해진다. 따라서 IBM 문서는 80열 텍스트 모드를 RGBI 및 흑백 컴포지트 모니터에 대해서만 "기능"으로 나열한다. 테두리 색상을 갈색으로 설정하면 안정적인 색상을 얻을 수 있는데 이는 공교롭게도 올바른 컬러버스트 신호와 동일한 위상을 생성하여 이를 대체하는 역할을 하기 때문이다.

## 듀얼 헤드 지원
CGA는 IBM MDA와 함께 출시되었으며 동일한 컴퓨터에 MDA와 함께 설치될 수 있다. PC DOS에 포함된 명령을 사용하면 CGA와 MDA 카드 간에 디스플레이 출력을 전환할 수 있다. 로터스 1-2-3 및 오토캐드와 같은 일부 프로그램은 두 디스플레이를 동시에 사용하는 것을 지원한다.

## 소프트웨어 지원
CGA는 1990년대 초반까지 PC 소프트웨어에서 널리 지원되었다. 이 보드를 지원한 일부 소프트웨어는 다음과 같다:

* Visi On (초기 GUI, 640x200 흑백 모드 사용)
* 윈도우 3.0 (및 이전 버전, 640x200 흑백 모드 지원)
* OS/2 1.1 (및 이전 버전)
* Graphics Environment Manager (GEM)

## 경쟁 어댑터
BYTE지는 1982년 1월 CGA의 출력이 "매우 훌륭하며—기존 마이크로컴퓨터의 컬러 그래픽보다 약간 더 나은 수준"이라고 설명했다. PC Magazine은 이에 동의하지 않았으며 1983년 6월 보고서에서 "IBM 모노크롬 디스플레이는 텍스트가 매우 아름답고 눈이 편안하지만 단순한 문자 그래픽으로 제한된다. 컬러/그래픽 어댑터에 연결된 디스플레이의 텍스트 품질은... 기껏해야 중간 수준이며 장기적으로 눈의 피로를 유발한다"라고 보도했다.

회고적 논평에서 넥스트 제너레이션 또한 CGA에 대해 부정적인 견해를 취하며 "당시(1980년대 초) 기준으로도 이 그래픽은 끔찍했으며 시장에서 사용 가능한 다른 컬러 기계들과 비교하면 초라했다"고 언급했다.

CGA에는 여러 경쟁자가 있었다:

* 비즈니스 및 워드 프로세싱 용도로 IBM은 CGA와 동시에 **[[모노크롬 디스플레이 어댑터]]**(MDA)를 제공했다. 처음에 MDA는 CGA보다 훨씬 인기가 많았다. 아주 많은 PC가 기업에 판매되었기 때문에 날카로운 고해상도 흑백 텍스트가 응용 프로그램 실행에 더 바람직했기 때문이다.
* 1982년에 IBM 제품이 아닌 **[[허큘리스 그래픽 카드]]**(HGC)가 도입되었는데 이는 PC를 위한 최초의 타사 비디오 카드였다. MDA 호환 텍스트 모드 외에도 CGA보다 높은  픽셀 해상도의 흑백 그래픽 모드를 제공했다.
* 역시 1982년에 표준 CGA 보드의 두 배 메모리(16k 대비 32k)를 가진 **[[플랜트로닉스 컬러플러스]]** 보드가 도입되었다. 추가 메모리는 그래픽 모드에서 색 깊이를 두 배로 늘리는 데 사용되어  해상도에서 16색 또는  해상도에서 4색의 두 가지 추가 그래픽 모드를 제공할 수 있었다.
* IBM PCjr(1984) 및 호환되는 탠디 1000(1985)은 비디오 RAM을 16&nbsp;kB 이상으로 확장하여  해상도에서 16색과  해상도에서 4색을 허용하는 "확장 CGA" 비디오 하드웨어를 내장했다. 탠디 1000이 PCjr보다 훨씬 오래 생존했기 때문에 이러한 비디오 모드는 **"[[탠디 그래픽스 어댑터]]" 또는 "TGA"**로 알려지게 되었으며 1980년대 게임에서 매우 인기가 있었다. 플랜트로닉스 컬러플러스도 이와 비슷했으나 덜 널리 사용되었다.
* 1984년에 IBM은 또한 CAD 응용 프로그램 등을 위한 고급 그래픽 솔루션인 **[[프로페셔널 그래픽스 컨트롤러]]**를 도입했다. 이는 CGA와 대부분 하위 호환되었다. PGC는 4,000달러라는 가격표 때문에 널리 채택되지 못하고 1987년에 단종되었다.

다른 대안들:

* 파라다이스 시스템즈는 1984년에 MDA 모니터용 최초의 성공적인 CGA 호환 카드를 출시했다. 이는 CGA의 16색을 흑백 음영으로 표시했다. 하드웨어적으로 CGA와 호환되었기 때문에 파라다이스 카드는 특별한 소프트웨어 지원이나 추가 드라이버가 필요하지 않았다.
* 일부 CGA 호환 칩셋(Olivetti M24 / AT&T 6300, DEC VAXmate, 그리고 일부 컴팩 및 도시바 휴대용 기기에 포함됨)의 또 다른 확장은 수직 해상도를 두 배로 늘린 것이다. 이는 더 높은 품질의  텍스트 디스플레이와 추가적인  그래픽 모드를 제공한다.

CGA 카드는 소비자 시장에서 IBM의 강화 그래픽 어댑터(EGA) 카드로 계승되었다. EGA는 CGA의 대부분 모드를 지원하고 추가 해상도()와 텍스트 및 그래픽 모드 모두에서 64개 중 16색을 소프트웨어로 선택할 수 있는 팔레트를 추가했다.

## 사양

### RGBI 모니터용 DE-9 커넥터
섬네일|PC 뒷면을 바라볼 때 보이는 DE-9 커넥터컬러 그래픽스 어댑터는 다이렉트 드라이브 비디오(RGBI 모니터용)를 위해 표준 DE-9 커넥터를 사용한다. 카드의 커넥터는 암형(female)이고 모니터 케이블의 커넥터는 수형(male)이다.

### 컴포지트 모니터 또는 텔레비전용 RCA 커넥터
섬네일|오른쪽에 RCA 컴포지트 출력 커넥터가 보이는 CGA 비디오 어댑터 보드의 뒷면
컬러 그래픽스 어댑터는 NTSC 호환 텔레비전 또는 컴포지트 비디오 컴퓨터 모니터와의 연결을 위해 표준 RCA 단자를 사용한다. 카드의 커넥터는 암형이고 모니터 케이블의 커넥터는 수형이다.

## 같이 보기
* 그래픽 카드

## 각주

## 외부 링크
* 
*  Colour Graphics Adapter Notes

분류:컴퓨터 디스플레이 표준