# Hercules Graphics Card

La Hercules Graphics Card (aussi connue sous les noms de HGC ou carte Hercules) est une carte graphique noir et blanc haute définition (pour l'époque) vendue par une société indépendante d'IBM, nommée Hercules Computer Technology, pour les premiers IBM PC. Pour les moniteurs à tube cathodique qui n'affichaient jusque-là que des caractères ASCII (selon le standard MDA), cette carte offrait la possibilité d'afficher une matrice de pixels. Les premiers IBM PC étaient vendus sans carte ou interface intégrée, mais avec de nombreux ports ISA.

## Caractéristiques de la carte

La norme CGA (pour Color Graphics Adapter) d'IBM définit un format d'image dans une définition de 320x200 en 4 couleurs ou de 640x200 en noir et blanc. Mais à la fin de l'année 1981, cet adaptateur, comme le MDA, ne répondait déjà plus à la demande du public, tirée à la fois par les graphismes des consoles de jeux vidéo de deuxième génération et le besoin des premiers logiciels de traitement de texte. Un étudiant en électrotechnique, Khun Van Suwannukul, créa une carte graphique lui donnant une résolution d'écran suffisante pour écrire des textes en alphabet thaï$^,$. Cette carte, à laquelle il donna le nom de sa ville de résidence (Hercules) pouvait afficher des images dans une définition de 720x348, tout en restant compatible avec la norme MDA d'IBM (pour Monochrome Display Adapter) : 80x25 en noir et blanc, en mode texte uniquement, et avec son moniteur comme l'IBM 5151 (connecteur DE-9). La carte pouvait commuter entre deux modes d'affichage :
* un mode texte 80×25 avec une police de caractère en 9×14 pixels (soit une résolution effective de 720×350) identique à la carte MDA d'IBM, et bien plus lisible que les polices en 8x8 pixels de la carte CGA, que ce soit en 40x25 (320x200) ou en 80x25 (640x200).
* un mode graphique en 720×348 (la carte MDA d'IBM n'a pas de mode graphique).
La carte Hercules fut mise sur le marché en 1982 au prix de 499 $ : moins chère que la carte CGA proposée par IBM, et de meilleure qualité, la carte Hercules s'est vite imposée dans les milieux professionnels en raison de la définition plus importante affichée, mais aussi parce que cette carte intégrait un port parallèle, permettant de brancher des imprimantes (évitant d'acheter un adaptateur supplémentaire). La carte Hercules a indirectement imposé cette norme au monde des IBM PC$^,$. La majorité des imprimantes de l'époque utilisait la norme série.
Les 64 Kio de RAM de la carte Hercules peuvent contenir deux pages graphiques. En comparaison, la carte MDA avait 4 Kio de RAM et la carte CGA en avait 16. L'une ou l'autre des pages peut être affichée en réglant un bit dans le registre de commande de mode. Un autre bit, dans un registre de configuration exclusif à la carte détermine si les deuxièmes 32 Kio de RAM sont accessibles à l'adresse de B8000h. Ce bit est réinitialisé au démarrage du système afin que la carte n'entre pas en conflit avec une CGA ou une autre carte couleur à cette adresse. Cette possibilité permettait d'avoir 2 cartes graphiques et donc 2 moniteurs sur la même machine ; allongeant sa durée de vie malgré l'apparition de cartes "super-CGA" et de la carte EGA (dont la mémoire vidéo commence à l'adresse A0000h). Comme la carte MDA, la mémoire vidéo de la carte Hercules commence à l'adresse B0000h.

## Ripostes d'IBM

Les composants graphiques suivants produits par IBM ne seront pas compatibles avec la carte Hercules, et deux d'entre eux n'arriveront pas à la résolution horizontale de cette carte : le circuit MCGA (Multicolor Graphics Array) se limitera à 320×200 en 256 couleurs, le circuit VGA (Video Graphics Array) offrira en plus le 640×480 en palette de 16 couleurs (mode VGA, qui n'avait pas de très bonnes performances sur le bus AT Classique, mais fonctionnait bien sur le bus MCA). Le circuit XGA offrira enfin une définition de 1024×768 et les fonctions de sprites et de transparence (alpha channel) d'un écran graphique actuel. La carte EGA (Enhanced Graphics Adapter), norme précédant le VGA, avait "seulement" une définition maximale de 640×350.