허큘리스 그래픽 카드

허큘리스 그래픽 카드(Hercules Graphics Card, HGC)는 허큘리스 컴퓨터 테크놀로지가 개발한 컴퓨터 그래픽 컨트롤러이다. 전성기 동안 널리 지원되는 디스플레이 표준이 되었다. 모노크롬 모니터(녹색, 황갈색, 흰색)에 연결된 IBM PC 호환 시스템에 일반화되었다. 높은 해상도의 텍스트 모드와 단일 그래픽 모드를 지원하였다. 1984년에 499 달러의 가격으로 판매되었으나 제조사 제안 가격보다 더 낮게 판매되기도 했다. CGA보다 해상도가 높아서 많은 인기를 끌었다.

역사 
허큘리스는 1982년에 허큘리스 컴퓨터 테크놀로지의 설립자 Van Suwannukul이 개발하였다. 이 시스템은 본래 Suwannukul이 IBM PC에서 박사 논문을 태국어로 작성하기 위해 만들었다.

단자 
DE9F 단자. 5V TTL 전기 신호 사용.

수평 주파수 18.425 ±0.500 kHz, 수직 주파수 50 Hz.

프로그래밍 
허큘리스 그래픽 카드는 베이직 컴퓨터 언어의 해석판인 HBASIC이 포함된 디스켓과 함께 제공된다. 이를 이용하면 모노크롬 모니터의 그래픽을 프로그래밍할 수 있다. 같은 이름의 통합 개발 환경(HBasic)이 등장하기도 했다.

텍스트 모드에서 메모리는 MDA 카드와 같은 모습을 보인다. 화면은 80 x 25 문자를 이루므로 한 줄에 80 ASCII 코드/특성(한 줄에 160 바이트, 기호 당 2바이트)을 가진다. 메모리에 주어진 화면 위치의 주소는 다음 공식을 지닌다.
 address = (0xb0000) + ( row * 160 ) + (column * 2)
그래픽 모드에서 줄들은 인터리빙되므로 프로그래밍을 하기가 조금 더 힘들다. 한 바이트에 8개의 화소, 다시 말해 한 줄에 90바이트가 있다. 화면 상에 연속되는 줄이 메모리 안에서 4줄까지 인터리빙되므로 메모리에서는 다음과 같이 나타난다.
 화면 라인 #0 시작점 B000:0000
 화면 라인 #1 시작점 B000:2000
 화면 라인 #2 시작점 B000:4000
 화면 라인 #3 시작점 B000:6000
 화면 라인 #4 시작점 B000:005A ...
주어진 화소를 포함하는 메모리 주소는 다음과 같이 계산한다:
 mem = (0xb8000) + ((y&3)<<13)+(y>>2)*90+(x>>3)

차기 버전의 카드 
HGC 표준은 다음의 두 그래픽 카드로 확장되었다:
 허큘리스 그래픽 카드 플러스(Hercules Graphics Card Plus, 1986년 6월): 80 x 25 텍스트 모드에 쓰이는 사용자 정의 글꼴 지원.
 허큘리스 인컬러 카드 (Hercules InColor Card, 1987년 4월): 64 팔레트의 16색을 지원하는 EGA와 비슷한 색 기능 지원. 80x25 텍스트 및 720x348 그래픽 지원.

CGA 에뮬레이션 
허큘리스 카드 상의 CGA 에뮬레이션은 거의 전적으로 하드웨어를 통해 수행되거나 주기적인 인터럽트로 데이터를 복사하는 브루트 포스(brute force)를 통해 소프트웨어(예: SIMCGA PC 프로그램 등) 상에서 수행된다. 하드웨어 에뮬레이션은 일반적으로 게임 등 허큘리스 지원을 추가하기 위해 응용 프로그램의 프로그래머들에 의해 처리된다.

각주

참고 문헌 
 Wilton, Richard (1987) Programmer's Guide To PC and PS/2 Video Systems, Microsoft Press, 
 Hercules Computer Technology (1987) Hercules Compatibility Guide (a leaflet)
 "Hercules graphics" definition , Wi-FiPlanet.com
 How to Print Hercules Graphics SCREEN 3 to an Epson Printer, Microsoft.com
 Hercules Monochrome Graphics Adapter, Everything2.com

그래픽 카드
컴퓨터 디스플레이 표준