HGC

HGC ( Hercules Graphics Card ) er en  standard for skærme og videoadaptere til IBM PC'en . Den understøtter højopløsningsteksttilstand og én grafiktilstand. Videoadapteren var tilsluttet en monokrom (grøn, gul, lysebrun eller ganske sjældent sort/hvid) skærm.

I teksttilstand blev 25 linjer tekst med 80 tegn pr. linje vist på skærmen. Denne tilstand var kompatibel med MDA -standarden . Opløsning i grafiktilstand er 720×348 pixels . Ligesom CGA og MDA var videocontrolleren baseret på MC6845 chippen, men var udstyret med 64 KB videohukommelse - fire gange mere end CGA og 16 gange mere end MDA.

Adapteren gav visning af 2 uafhængige sider, både i grafisk og alfanumerisk tilstand. Adressen på "null"-siden faldt sammen med adresserne optaget af MDA'en, og den "første" side, når den var aktiveret, optog de samme adresser som hukommelsen på CGA-adapteren. Programmer, der udsender direkte til CGA-hukommelsen, kunne således også fungere på denne videocontroller. I grafiktilstande, som i CGA, blev videohukommelsen opdelt i "banker", kun ikke i 2, men i 4. Da 350 ikke er et multiplum af fire, var opløsningen i grafiktilstand begrænset til 348 linjer.

Det blev antaget, at HGC understøtter én grafiktilstand, men det er ikke sandt. Ved at programmere 6845'eren på en bestemt måde var det muligt at sikre, at set fra programmers synspunkt så den "første" side af videohukommelsen nøjagtigt ud som CGA-videohukommelse, og det billede, der blev tegnet på skærmen, stemte nøje overens med det, der ville har været på en farveskærm, dog uden at tage hensyn til farver og paletter. CGA-emulatorprogrammerne, der dukkede op, gjorde det muligt at spille nogle af datidens spil på HGC, den anden del virkede ikke, fordi CGA I/O-portene ikke blev emuleret, og programmerne kunne få adgang til dem for at tage højde for vandret og rammesynkronisering.

I modsætning til CGA-grafiktilstandene blev HGC-grafiktilstandene ikke understøttet i BIOS'en, og programmøren skulle derfor selv udføre alle handlingerne. Senere inkluderede Microsoft værktøjet MSHERC.COM i MS-DOS, som tilføjede understøttelse af den primære HGC-videotilstand gennem interrupts og OS-funktioner, men få programmer brugte dette værktøj, især QBASIC. MSHERC-programmet indeholdt ligesom de fleste andre en fejl i programmeringstabellen - det samlede antal tegn var forkert angivet, på grund af hvilket den vandrette frekvens i grafiktilstand var mærkbart forskellig fra den vandrette frekvens i alfanumerisk tilstand, hvilket førte til et sammenbrud synkroniseret på nogle skærme.

Microsoft Windows-skallen understøttede (havde en indbygget driver til) HGC i version 3.xx, men support blev droppet med Windows 95, og softwaretricket til at installere EGA-driveren til Windows 3.11 på Windows 95 virkede ikke med HGC. På dette tidspunkt var HGC-kortets popularitet allerede forbi, og ingen gjorde en mærkbar indsats for at frigive driveren.

Udvikling af standarden

Senere blev HGC-standarden suppleret og udvidet: