Grafische kleurenadapter
De Color Graphics Adapter of CGA , uitgebracht in 1981, was de eerste kleuren grafische kaart van IBM (oorspronkelijk de Color/Graphics Adapter of IBM Color/Graphics Monitor Adapter genoemd , [ 1 ] ) , en de eerste grafische kleurenstandaard voor de IBM PC .
Toen IBM zijn pc in 1981 introduceerde, werd de CGA-standaard, ondanks dat hij tegelijkertijd verscheen, aanvankelijk weinig gebruikt, aangezien de meeste kopers een pc kochten voor professioneel gebruik. Voor games waren er andere, veel populairdere computers, en in die tijd werden kleurenafbeeldingen niet als louter speels beschouwd. Daarom kozen veel vroege pc-kopers voor de Monochrome Display Adapter (MDA), die alleen tekstweergave toestond.
In 1982 werd de Hercules-grafische kaart uitgebracht , waarmee monochrome afbeeldingen konden worden weergegeven met een veel hogere resolutie dan de CGA, en die compatibel was met de MDA, waardoor de verkoop van de CGA verder werd geschaad. Alles veranderde in 1984 toen IBM de IBM Personal Computer/AT en de Enhanced Graphics Adapter (EGA) introduceerde. Hierdoor daalde de prijs van de oude CGA-kaart aanzienlijk en werd het een interessant goedkoop alternatief, zodat nieuwe bedrijven die zich toelegden op de productie van kloon-pc's het snel overnamen. Goedkope niet-AT-pc's met CGA-kaarten verkochten in de jaren die volgden zeer goed, en als gevolg daarvan werden er ondanks hun beperkingen veel games voor uitgebracht. De populariteit van de CGA begon af te nemen toen in 1987 de VGA -kaart de nieuwe high-end oplossing werd, waardoor de EGA degradeerde naar goedkope pc's.
De IBM CGA-standaardkaart bevatte 16 kilobytes VRAM en kon worden aangesloten op een NTSC - composietvideomonitor of televisie via een RCA-connector , of op een 4-bit "RGBI" [ 2 ] -monitor zoals de IBM 5153 via een DE- 9 aansluiting . [ 3 ] Het maakte het mogelijk om verschillende grafische en tekstmodi weer te geven. De maximale resolutie was 640×200 en de hoogste ondersteunde kleurdiepte was 2 bits (4 kleuren). De meest populaire modus, gebruikt in de meeste CGA-spellen, gaf 4 kleuren weer met een resolutie van 320x200.
Hoewel 4 kleuren over het algemeen als de limiet voor de CGA-kaart werden beschouwd, was het mogelijk om dat aantal op verschillende manieren te verhogen (sommige officieel, andere niet).
Het CGA-kleurenpalet
| '''Compleet palet van 16 CGA-kleuren''' | |
|---|---|
| 0 — zwart #000000 |
8 — grijs (donker) #555555 |
| 1 — blauw #0000AA |
9 — diepblauw #5555FF |
| 2 — groen #00AA00 |
10 — diepgroen #55FF55 |
| 3 — cyaan #00AAAA |
11 — diep cyaan #55FFFF |
| 4 — rood #AA0000 |
12 — dieprood #FF5555 |
| 5 — magenta #AA00AA |
13 — diep magenta #FF55FF |
| 6 — bruin #AA5500 |
14 — geel #FFFF55 |
| 7 — wit (lichtgrijs) #AAAAAA |
15 — diep wit #FFFFFF |
De CGA-kaart werkte met CRT RGBI-kleurenmonitoren. Het was gebaseerd op de Motorola 6845 videocontroller en had een 16 kleurenpalet. Rood, groen en blauw kwamen overeen met elk van de drie kathodestralen, en zwart betekende dat alle stralen bijna uit waren. Cyaan was een mengsel van groene en blauwe stralen, magenta was blauw en rood en bruin was groen en rood. Wit (of lichtgrijs) was een mengsel van alle drie de stralen.
De overige 8 kleuren werden bereikt door een boost-bit in te schakelen , waardoor een helderdere versie van elke kleur werd gemaakt, hoewel donkergrijs op veel monitoren niet van zwart te onderscheiden was. De RGB+Bit Intensifying -layout van de CGA werd RGBI genoemd .
De Commodore 128 gebruikte dezelfde methode om kleuren uit de RGBI-uitvoer te verzenden, zodat dezelfde monitoren konden worden aangesloten en dezelfde 16 kleuren konden weergeven.
Er is enige verwarring over kleur #6 op RGBI-monitoren: strikt volgens het RGBI-kleurmodel moet kleur #6 donkergeel zijn (#AAAA00) (zie hieronder). IBM koos er echter voor om extra circuits in de 5153-kleurenmonitor op te nemen om kleur #6 te detecteren en de groene component te downgraden naar een aangenamere bruine tint (#AA5500), dus de meeste "CGA-compatibele" monitoren bootsen dit gedrag na. De heersende theorie over deze beslissing is dat IBM de kleuren wilde benaderen die van de 3270 - mainframeterminal , met name de 3279 , maar deze informatie is niet bewezen.
Standaard tekstmodi
De CGA liet twee tekstmodi toe:
- 40×25 karakters met 16 kleuren voor de tekst en 8 voor de achtergrond. Elk karakter is opgebouwd uit een patroon van 8×8 pixels . De effectieve resolutie in deze modus is 320×200 pixels (met een beeldverhouding van 1:1,2), hoewel afzonderlijke pixels niet toegankelijk zijn. Patronen waren daarom beperkt tot een van de 256 tekens die op een ROM -chip op de kaart zelf waren opgeslagen, dus het lettertype van de tekstmodi stond vast en kon niet worden gewijzigd (hoewel het op een originele IBM CGA-kaart van de IBM PC mogelijk was om te selecteren tussen twee verschillende lettertypen, normaal of dun, waarbij een jumper wordt gewijzigd die in de meeste klonen niet aanwezig is). In deze modus kon elk personage een primaire en achtergrondkleur hebben die vrij gekozen kon worden uit het volledige CGA-palet (zie tabel); bijvoorbeeld gele tekst voor het ene teken, wit op zwart voor het volgende en cyaan op grijs voor een ander. De kaart had in deze modus genoeg VRAM voor 8 verschillende pagina's tekst.
- 80×25 karakters met 16 kleuren voor de tekst en 8 voor de achtergrond. Wederom was elk teken een 8x8-puntpatroon (met dezelfde tekenset als de 40x25-modus), met een beeldverhouding van 1: 2,4. De effectieve resolutie was 640×200 pixels, die net als de andere tekstmodi niet afzonderlijk toegankelijk waren. Omdat het aantal tekens op het scherm in deze modus verdubbelde, konden er slechts 4 pagina's tekst in VRAM worden opgeslagen .
Standaard grafische modi
| Vast CGA-palet met 4 kleuren #1 | ||
| standaard kleur | 5 — magenta | |
| 3 — cyaan | 7 — wit (lichtgrijs) | |
| Vast CGA-palet met 4 kleuren #2 | ||
| standaard kleur | 4 — rood | |
| 2 — groen | 6 — bruin (oranje) | |
De CGA bood twee veelgebruikte grafische modi:
- 320×200 pixels , zoals in 40×25 tekstmodus. In de grafische modus was het echter mogelijk om elke pixel afzonderlijk te benaderen, hoewel slechts 4 kleuren tegelijkertijd konden worden weergegeven. Die 4 kleuren konden niet vrij worden gekozen uit het totaal van 16, aangezien er slechts twee officiële paletten waren voor deze modus:
- Magenta, cyaan, wit en de achtergrondkleur (standaard zwart).
- Rood, groen, bruin/geel en de achtergrondkleur (standaard zwart).
Door de boost-bit aan te zetten was het mogelijk om helderdere versies van deze kleuren te krijgen.
- Bij het tekenen van grote geometrische vormen op het scherm moest rekening worden gehouden met de beeldverhouding van 1:1,2.
- 640×200 pixels, zoals in 80×25 tekstmodus. Alle pixels waren vrij toegankelijk. Deze modus was monochroom, waardoor alleen zwarte en witte kleuren mogelijk waren (hoewel dit kon worden gewijzigd), met een beeldverhouding van 1: 2,4.
In de tekstmodus kwamen de lettertype- bitmaps van het personage-ROM, dat alleen toegankelijk was voor de kaart zelf. In grafische modi gebruikte de tekstuitvoer echter twee verschillende tabellen: de eerste 128 tekens van de set werden verkregen uit een tabel in het BIOS op adres F000:FA6E, en de overige 128 kwamen van het adres aangegeven door de interrupt 1F (0000 :007C). Deze tweede helft verscheen als spaties (of onzintekens, afhankelijk van de implementatie), tenzij expliciet gedefinieerd, meestal door een hulpprogramma zoals GRAFTABL of door het lopende programma.
Composiet video modus
Hoewel voor velen onbekend, was er een extra grafische modus van 160×200 composietvideo (met een beeldverhouding van 1,67: 1), waarin 16 verschillende kleuren konden worden gebruikt. Deze modus maakte geen gebruik van de CGA-kleurentabel, maar leek meer op de "verdubbelde hoge resolutie" -modus van de Apple II , omdat beide een vergelijkbare techniek gebruikten. Composietmodus werd zelden gebruikt; gebrek aan ondersteuning in het BIOS weerhield veel programmeurs ervan het te gebruiken, en de kosten van een IBM-systeem waren zo hoog dat de meeste kopers zich de dure RGB-monitor niet konden veroorloven. Slechts een paar softwaretitels (meestal games) gebruikten deze modus.
Een veel voorkomende misvatting is dat de composietmodus werd ondersteund door sommige RGB-monitormachines, maar dit zou een contradictie zijn in termen van hoe deze modus werkt. De meest waarschijnlijke verklaring is de overtuiging dat de 160x200-modi van de IBM PCjr / Tandy 1000 of de Amstrad CPC hetzelfde zijn (ze zijn hetzelfde in resolutie, maar niet in kleur en geheugenorganisatie). Elke poging om de composietmodus op een RGB-monitor in te schakelen, leverde een resultaat op dat identiek was aan de grafische modus van 640x200.
Andere grafische modi en trucs
| Derde vast palet "truc" CGA | ||
| standaard kleur | 4 - rood | |
| 3 — cyaan | 7 — wit (lichtgrijs) | |
Er waren een aantal officiële en niet-officiële mogelijkheden die gebruikt konden worden om betere graphics te krijgen.
- In de 320x200-modus kon de achtergrondkleur, die na initialisatie standaard zwart was, worden gewijzigd in een van de 16 kleuren in het CGA-palet. Dit zorgde voor enige variatie en enkele glinsterende effecten, omdat het mogelijk was om de kleur te veranderen zonder het scherm opnieuw te hoeven tekenen.
- In de 640×200-modus kan de hoofdkleur worden gewijzigd in een van de 16 basiskleuren.
- In tekstmodi kan de randkleur (weergegeven buiten het weergavegebied en normaal gesproken zwart) worden gewijzigd in een van de 16 kleuren.
- Er was een derde palet van 4 kleuren voor de 320×200-modus die kon worden gebruikt door de monochrome bit in te schakelen met de kleurmodus aan. Dit veranderde de paletkleuren in rood, cyaan, wit, plus de achtergrondkleur.
- Door nauwkeurige timing was het mogelijk om van palette te wisselen terwijl de scherminhoud nog werd getekend, waardoor elke 3 op elke scanlijn kon worden gebruikt. Het beste voorbeeld van het gebruik van deze techniek is het spel California Games [ 4 ] wanneer het wordt uitgevoerd op een 8088 op 4,77 MHz (op een snellere computer zou het effect niet worden verkregen, omdat de synchronisatie die nodig is om de paddles in het systeem te veranderen zou zijn verloren ) het juiste moment) Hetzelfde kan worden gedaan met de achtergrondkleur, om de rivier en de weg in Frogger te creëren . [ 5 ] Een ander gedocumenteerd voorbeeld van deze techniek is Atarisoft 's conversie van Jungle Hunt naar de IBM PC.
- Extra kleuren kunnen worden benaderd door dithering . Als het beeld werd weergegeven op een conventionele televisie (die toen een lage resolutie had), zou je 16 effen kleuren kunnen zien bij het werken met de standaard 320×200 resolutie, maar als het beeld werd bekeken op een kleurenmonitor ( resolutie) verschijnen niet alle 16 kleuren, maar dithering was merkbaar.
Sommige van deze technieken kunnen worden gecombineerd. Enkele voorbeelden zijn te vinden in games. [ 6 ] De meeste titels maakten geen gebruik van deze mogelijkheden, maar er zijn enkele verrassende uitzonderingen.
160×100 modus met 16 kleuren
Technisch gezien was dit geen grafische modus, maar een truc die werd uitgevoerd met de 80x25-tekstmodus. Het bestond uit het wijzigen van het register dat de hoogte van de karaktercellen aangaf, zodat het slechts 2 regels per cel zou tonen in plaats van de normale 8. Dit verviervoudigde het aantal zichtbare regels tekst, van 25 naar 100. Deze "gecomprimeerde" tekens werden niet in hun geheel weergegeven, maar alleen de bovenste twee regels, elk 8 pixels.
| |
Karakter 221. |
| |
221 met blauwe tekst en rode achtergrond. |
| |
221 met rode tekst en blauwe achtergrond. |
| |
Karakter 222. |
Teken 221 van de uitgebreide ASCII -tekenset is een rechthoek die de linkerhelft van de cel inneemt, terwijl teken 222 de rechterhelft in beslag neemt.
Elk teken kan een andere kleur hebben voor de tekst en achtergrond, dus het kan bijvoorbeeld blauw worden gekleurd aan de linkerkant (tekst) en rood aan de rechterkant (achtergrond), met de mogelijkheid om het om te keren door de tekstkleuren om te wisselen en achtergrond.
Met teken 221 of 222 kan elke helft van elk teken als een afzonderlijke pixel worden gebruikt, wat een totaal van 160 pixels per horizontale lijn oplevert. Zo was het mogelijk om 160×100 pixels weer te geven met 16 gelijktijdige kleuren en een beeldverhouding van 1:1,2.
|
Hoewel het een behoorlijke omweg was om het uiteindelijke doel van het weergeven van 16 gelijktijdige kleuren te bereiken, werkte het vrij goed [ 7 ] en deze modus werd genoemd (hoewel niet in detail uitgelegd) in de officiële IBM-hardwaredocumentatie.
Door andere karakters te gebruiken om ASCII-kunst te combineren met deze techniek, was het mogelijk om een hoger detailniveau te bereiken.
Dezelfde techniek voor het verkleinen van tekstcellen zou kunnen worden gebruikt met de 40x25-modus, maar het was alleen zinvol in combinatie met ASCII-kunst, anders zou de resulterende resolutie slechts 80x100 zijn. [ 8 ] [ 9 ] [ 10 ]
Fouten en typefouten
De meest opvallende CGA-hardwarebug was de "sneeuw" die verscheen in de 80x25-tekstmodus. De VRAM op de originele IBM CGA-kaart was niet dual-ported, dus lees- of schrijftoegang was niet gelijktijdig mogelijk tussen de Motorola 6845 -videocontroller en de CPU. Dit is de reden waarom je willekeurige rechthoekige blokken zou zien in- en uitschakelen wanneer het geheugen gelijktijdig werd gebruikt door de CPU en de videocontroller. Deze bug is in de meeste klonen opgelost, maar bestaat nog steeds in sommige iteraties (zoals de AT&T PC 6300 ).
CGA-geheugen in grafische modi was interlaced, wat een gedoe was voor programmeurs. Normaal gesproken is videogeheugen strikt lineair: de volgende rij beeldgegevens komt overeen met de volgende rij pixels. Maar met CGA kwam de volgende rij beeldgegevens overeen met de rij pixels twee rijen eronder. Dit gaat door tot het einde van het scherm en pas dan beginnen de lege rijen te worden gevuld. dus de eerste helft van het schermgeheugen is voor rijen 0, 2, 4, enz., tot het einde van het scherm en de tweede helft van het CGA VRAM is voor rijen 1, 3, 5, enz. . Dit voegt rekenstappen toe voor veel grafische bewerkingen in de CGA als de programmeur 'visuele artefacten' wilde hebben bij het bijwerken van het scherm.
| Donker geel |
| #AAA00 |
IBM ontwierp de IBM 5153 CGA-monitor [ 11 ] om geïndexeerde kleur # 6 opzettelijk donkerder te maken van donkergeel naar bruin; sommige kloonmonitors hadden echter niet zo'n circuit. Op die monitoren en op 5153 monitoren met de defecte schakeling bleef de kleurindex #6 donkergeel (zie afbeelding).
Het volledige VRAM van een CGA-kaart (16.384 bytes) wordt niet volledig gebruikt door alle videomodi die door het BIOS zijn geïnitialiseerd (40x25 en 80x25 tekst, 320x200 en 640x200 grafische afbeeldingen). Alleen door de videomodi handmatig in te stellen door de Motorola 6845 van de CGA te programmeren, kunnen alle 16384 bytes tegelijkertijd als afzonderlijke pixels worden weergegeven.
Rivaliserende
CGA heeft twee belangrijke concurrenten gehad:
- Voor zaken en tekstverwerking brengt IBM zijn Monochrome Display Adapter (MDA) tegelijk met de CGA uit. De MDA produceert tekst in 80×25, waarbij elk teken wordt getekend in een vak van 9×14 pixels, waarvan 7×11 het teken zelf is, wat ons een resolutie zou geven van 720 x 350 pixels, wat duidelijk superieur was aan de 8 ×8 van de CGA-tekstmodi. Vanwege de hoge prijs van CGA in die tijd, had MDA de voorkeur voor bedrijven.
- In 1982 verschijnt de Hercules Graphics Card (HGC), die niet door IBM wordt geproduceerd. Het biedt een MDA-compatibele tekstmodus met hoge resolutie en een monochrome grafische modus van 720 × 348 pixels, veel beter dan de maximale resolutie die CGA kan bieden. Dus zelfs zonder kleurmogelijkheden biedt de Hercules-adapter betere zwart-witafbeeldingen en de mogelijkheid om met veel goedkopere monitoren te werken, waardoor het voor velen de voorkeurskeuze is. Vanaf 1985 lieten geheugen-residente emulatorprogramma 's zoals SIMCGA het toe om CGA grafische modi weer te geven in de Hercules grafische modus (het resultaat zag er geruwd , ruw uit. De Hercules is waarschijnlijk de meest gebruikte kaart voor het aansluiten van monochrome monitoren in het IBM PC-tijdperk.
Een minder gebruikte concurrent was de Plantronics Colorplus , een CGA-compatibele kaart die het VRAM verdubbelt tot 32 KB, waardoor je nieuwe grafische modi van 16 kleuren bij 320×200 en 4 kleuren bij 640×200 kunt gebruiken. De uitgebreide CGA-modi die aanwezig zijn in de IBM PCjr en Tandy 1000 zijn vergelijkbaar met deze modi.
De CGA werd aan de kant van de consument vervangen door de IBM Enhanced Graphics Adapter (EGA)-kaart, die de meeste modi van de CGA ondersteunde, en voegde een extra resolutie van 640x350 toe, evenals een 16-kleurenpalet van 64. software selecteerbaar in beide tekst en grafische modi.
Referenties
- ^ [1] Gearchiveerd op 4 maart 2016, bij de Wayback Machine .; zien sectie 1-133, "Kleur/grafische adapter", pagina 143 van ibm_techref_v202_1.pdf
- ↑ Rood, Groen, Blauw, Intensiteit
- ^ Kumar, A. (2002). Anmol-publicaties, uitg. Encyclopedie van het beheer van computerhardware . p. 1050. ISBN 9788126110308 .
- mobygames.com _
- mobygames.com _
- mobygames.com _
- mobygames.com _
- oldskool.org _
- oldskool.org _
- oldskool.org _
- ↑ International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pagina's D-42 tot D-43.
- ZiffDavis-Net website met informatie over oude grafische adapters, waaronder de CGA (let op: beweert ten onrechte dat de Hercules 4 kleuren heeft.)
- Uitgebreide FAQ over oude grafische adapters ( Usenet archiveert enkele speculatieve of foutieve details)
- IBM PC-compatibele CGA-videoreferentie — inclusief technische details
- kalibratie van een CGA-monitor — Technische informatie over het IBM 5153-monitorkalibratie- en decoderingssysteem.
- IBM Color Graphics Adapter (CGA) (Thor Kildsen)
- Het Engelse WP-artikel waarvan dit artikel is afgeleid, is oorspronkelijk gebaseerd op materiaal uit de Free On-line Dictionary of Computing .
Zie ook
Andere grafische kaarten:
- MDA zwart- wit beeldschermadapter
- HGC Hercules Grafische Kaart
- EGA verbeterde grafische adapter
- MCGA veelkleurige grafische adapter
- VGA -videografische array
- SVGA Super Video Graphics Array
- XGA uitgebreide grafische array
Externe links
