컬러 그래픽스 어댑터

섬네일|320x200의 4색 모드에서 디더링으로 점묘표현을 사용하여 색감 한계를 극복한 예. 실은 CGA의 주요 4색만으로 좋은 색감을 표현한 이런 예는 드문 편이며, 해당 사진은 다행히 녹색과 마젠타가 주요한 예.
컬러 그래픽스 어댑터(Color Graphics Adapter, CGA)는 1981년에 소개되었으며 IBM의 최초의 컬러 그래픽 카드였다. (원래 "컬러/그래픽스 모니터 어댑터"라는 이름으로 판매되었다.)

이 표준 IBM CGA 그래픽 카드는 16킬로바이트의 비디오 메모리를 장착했으며 NTSC 호환 모니터나 TV를 RCA 잭을 통해 연결하거나 제공되는 RGBI CRT 모니터에 연결할 수 있었다. 모토로라 MC6845 디스플레이 컨트롤러를 기반으로, CGA 카드는 몇 가지 그래픽과 텍스트 모드를 구현했다. 가장 높은 해상도 모드는 640x200이며, 가장 높은 색 깊이는 4비트 (16색)이다.

EGA, 모노크롬과 같이 CGA는 9핀 D-Sub를 사용하므로 현재 일반적으로 쓰이고 있는 15핀 D-Sub 모니터에는 연결할 수 없다. 흑백이었던 HGC와 다르게 컬러를 구현하였으나 HGC보다 해상도가 낮았다.

 CGA 색 팔레트 
 완전한 CGA 16 색 팔레트 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 흰색 (밝은 회색)#AAAAAA 15 밝은 흰색#FFFFFF

CGA의 4비트로 이뤄진 최대 색 깊이는 16색 팔레트이다. 가장 낮은 3개의 비트는 빨강, 초록, 파랑을 대표하며 세 개의 음극선관들과 일치한다. (검정은 3개의 모든 음극선관을 끄는 것이다. 자세한 것은 검정 수준을 볼 것) 사이언은 파랑, 초록이 섞인 것이고, 자홍색은 빨강과 파랑이 섞인 것이며 주황-갈색은 빨강과 초록이 섞인 것이다. 흰 색(밝은 회색)은 모든 3개의 음극이 쓰인 것이다.

어두운 회색이 많은 모니터에서 검정과 구분하기 힘들긴 하지만 나머지 8개의 색은 더 밝은 버전의 각 색을 제공하면서 4개의 "강화" 비트를 켬으로써 사용할 수 있다. CGA의 "RGB + 강화 비트" 설계는 "RGBI"라고 불리었다.

 표준 색 모드 
CGA는 다음의 2가지 텍스트 모드를 제공하였다:
 40×25 문자열 최대 16색. 각 문자열은 8x8 도트이다. 각 화소가 독립적으로 할당되지 않음에도 불구하고 이 모드에서 효과적인 화면 해상도는 320x200 화소이다. (화소 가로세로비는 1:1.2)
 80×25 문자열 최대 16색. 각 문자열은 8x8 또한 도트이다 (40x25의 것과 같은 문자열 세트), 화소의 가로세로비가 1:2.4이다. 이 모드에서 효과적인 화면 해상도는 640x200 화소이다. 또한, 화소들은 개별적으로 할당받을 수 없다. 이 모드에서 화면 위에 출력할 수 있는 문자열이 두 배나 되었는데, 다시 말해 이 카드는 4개의 다른 텍스트 페이지를 위해 충분한 비디오 램을 가지고 있었다.

 표준 RGB 그래픽 모드 
색인팔레트 #1팔레트 #20 기본 기본1 3 — 하늘 2 — 초록2 5 — 자홍 4 — 빨강3 7 — 흰색 6 — 갈색

CGA는 흔히 다음의 그래픽 모드를 제공했다:
 320×200 화소, 40x25 텍스트 모드. 그래픽 모드에서는 그러나 각 화소가 독립적으로 할당될 수 있다.
 640×200 화소, 80x25 텍스트 모드. 모든 화소는 독립적으로 할당된다.

텍스트 모드에서 폰트 비트맵 데이터가 카드의 캐릭터 롬에서 나왔으며 카드 자체에서 이를 수행할 수 있었다. 그래픽 모드에서 바이오스에 의한 텍스트 출력은 구분된 두 개의 테이블을 사용한다: 첫째, 128개의 문자열들을 제공하는 문자열 세트는 BIOS에서 F000:FA6E의 테이블에 의해 제공 받는다. 둘째, 문자열 세트는 보통 GRAFTABL과 같은 유틸리티를 통해(또는 프로그램을 요청함으로써) 뚜렷하게 구분되지 않은 경우 블랭크(blank)로 표시될 수 있다.

 이후의 RGB 그래픽 모드 및 트윅 
색인3d 팔레트0 기본1 3 — 하늘2 4 — 빨강3 7 — 흰색 (밝은 회색)
더 나은 그래픽을 RGBI 모니터에 달성할 수 있는 수많은 공식/비공식 기능이 존재하였다.
 320x200 그래픽 모드에서, 모드를 초기화할 때 검은색이 기본이었던 배경색은 다른 15색의 CGA 팔레트 가운데 아무 색으로든 바꿀 수 있었다. 이것은 배경색이 화면을 다시 그리지 않고도 바꿀 수 있으며 깜박임 효과 등 몇 가지 변화를 허용했다.
 640x200 그래픽 모드에서 배경색을 보통 흰 색에서 다른 15색 가운데 하나로 바꿀 수 있었다.
 텍스트 모드에서 테두리 색을 일반 검정에서 다른 15색 가운데 하나로 바꿀 수 있었다.
 컬러 그래픽 모드에 있을 때 모노크롬 비트를 켬으로써 세 번째 320x200의 4색 팔레트를 사용할 수 있었다. 이것은 현재의 그래픽 팔레트를 빨강, 하늘, 흰색, 그리고 전경색으로 전환할 수 있었다.
 정확도 타이밍(precision timing)을 통해 화면의 내용이 그려지고 있는 동안에 다른 팔레트로 바꿀 수 있었다. 이는 하나의 스캔라인마다 6개의 팔레트 가운데 하나를 사용하는 것을 허용하였다. 가장 좋은 예가 4.77 Mhz 8088에서 돌아갔을 때의 게임 캘리포니아 게임즈이다.   (빠른 컴퓨터에서 돌리는 것은 아무런 효과를 내지 않았는데, 팔레트 전환이 컴퓨터 속도에 매우 민감하기 때문이다.) 프로거의 경우 길과 강을 만들기 위해 배경색도 이와 같이 할 수 있었다.  .
 추가 색은 디더링을 사용하여 근접하게 표현할 수 있었다. (낮은 해상도에서는 그리 선명하지 않을 수도 있다.) 특히 게임 킹스 퀘스트 (King's Quest)는 높은 인텐시티에서 팔레트 2를, 배경색으로 인텐시티 파랑을 사용했다. 이것은 기본 RGB 색을 제공하였다. (노랑을 포함하여).

위의 사항들 중 몇 가지는 한꺼번에 되는 경우도 있었다. 이러한 예들은 다음의 게임들에서 찾을 수 있다. -   대부분의 소프트웨어 타이틀들은 이러한 가능성을 사용하지 않았지만 몇 가지 인상 깊은 예외도 있었다.

 160×100의 16색 모드 
기술적으로 이 모드는 그래픽 모드는 아니지만 80x25 텍스트 모드의 기능을 트윅한 것이다. 문자열 셀 높이 레지스터는 한 문자열 셀에 일반적인 8줄이 아닌 오직 2줄만 표시할 수 있었다. 텍스트 줄을 4배로 하여 25에서 100으로 표시하였다. 이렇게 억지로 잡아당긴 텍스트 문자열들은 완전한 문자열은 아니었다. 시스템은 한 줄에서 다음 줄로 이동하기 전에(화면 표시) 이러한 상위의 화소의 두 줄들만 표시했다.

 파일:ASCII.221.character.svg  문자열 221.  파일:Half-block.character.blue.red.svg  221 (파랑 문자열, 빨강 배경색)  파일:Half-block.character.red.blue.svg  221 (빨강 문자열, 파랑 배경색)  파일:ASCII.222.character.svg  문자열 222. 
확장 아스키 문자열 세트의 문자열 221은 완전한 왼쪽의, 문자열 매트릭스의 절반을 차지하는 상자 하나로 이루어져 있었다. (문자열 222는 완전한 오른쪽의, 문자열 매트릭스의 절반을 차지하는 상자 하나로 이루어져 있었다.)

각 문자열이 다른 전경과 배경 색으로 할당받을 수 있었기 때문에 (이를테면) 왼쪽 (배경색)에 파랑을 씌우고 오른쪽 (배경색)에 밝은 빨강을 씌울 수 있었다. 전경과 배경색을 바꿈으로써 반전시킬 수도 있었다.

 규격 
 연결 단자 
CGA는 표준 DE-9 커넥터를 사용한다.

+ 핀 할당 핀 기능1 그라운드2 그라운드3 빨강4 초록5 파랑6 인텐시티(Intensity)7 보존(Reserved)8 수평 동기9 수직 동기

 신호 
 종류 디지털, TTL해상도 640h × 200v, 320h × 200v 수평 주파수 15.75 kHz 수직 주파수 60 Hz 색 16

 같이 보기 
 그래픽 카드

 외부 링크 

  Colour Graphics Adapter Notes

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