Tamás Ferenc: CGA monitorok

Az IBM 1981-ben vezette be a CGA (Colour Graphics Adapter) videókártyát, ami egyben egy vadonatúj monitor neve is volt. Ez volt a cég legelső színes kártyája és monitora az IBM PC-hez. A szabványos IBM CGA kártya 16 KB memóriával rendelkezett, kimenetére rá lehetett kötni az akkori NTSC-szabványos monitorokat, illetve egy RCA kábel segítségével a kártya által kibocsájtott jelet ki lehetett vezetni egy sima televíziókészülékre; esetleg egy RGBI csatlakozóval egy akkori CRT monitorra, például az IBM 5153-as típusra is.

 

 

CGA videókártya

(Kép eredetije: http://www.recycledgoods.com/zoom.aspx?productID=34676 )

Az eredetileg Motorola MC6845-ös chipkészletre épített CGA kártyának számos grafikus és szöveges üzemmódja is volt, melyek közül a legmagasabb grafikus felbontás a 640*200 volt, míg az elérhető színmélység 4 bit, azaz 16 szín.

Teljes CGA színpaletta
0 fekete
#000000
8 szürke
#555555
1 kék
#0000AA
9 világoskék
#5555FF
2 zöld
#00AA00
10 világoszöld
#55FF55
3 cián
#00AAAA
11 világos cián
#55FFFF
4 vörös
#AA0000
12 világos vörös
#FF5555
5 magenta
#AA00AA
13 világos magenta
#FF55FF
6 barna
#AA5500
14 sárga
#FFFF55
7 világos szürke
#AAAAAA
15 fehér (erős intenzitás)
#FFFFFF

(Kép eredetije: http://hu.wikipedia.org/wiki/CGA )

A 4 bites színmélységet RGBI megjelenítéskor lehetett legjobban értelmezni, ugyanis ilyen esetben az első három bit a szabványos RGB-modellnek felelt meg, míg a negyedik bit az intenzitásért volt felelős.

RCA kábelTörténelmi érdekesség, hogy 1981-ben, amikor az első CGA-monitorokat piacra dobta az IBM, akkor még a cég nem rendelkezett saját gyártású RGBI-kijelzőkkel, hanem az ügyfelek egy szabványos RCA-kimenetet használtak, hogy a képet a saját televíziójukon meg tudják jeleníteni. (Kép eredetije: http://taiwanconnector.com/RCA_Cable.html ) Az első szabványos RGBI-monitort csak 1983-ban dobták piacra IBM 5153 személyi számítógép színes képernyő (Personal Computer Colour Display) néven. A hiány miatt 1981-ben és 1982-ben számos felhasználó egyszerűbb RGB-monitorokat használt (jellemzően „erősítőbit” nélkül), csökkentve ezzel a színek számát 8-ra és jócskán összezavarva az akkori megjelenítést.

Szabványos szöveges üzemmódok:

40x25-ös felbontású karakteres mód akár 16 színben: Minden egyes karakternek volt egy 8x8-as megjelenítési mintája, tehát a gyakorlati felbontás ebben az üzemmódban 320x200 képpont volt, habár az egyes képpontokat nem lehetett külön-külön megcímezni. Az egyes karaktereket az alapértelmezett kódlap 256 karakteréből lehetett kiválasztani, ám ezt a (437-es számú) kódlapot a ROM-ban tárolták, tehát nem lehetett változtatni. Az eredeti IBM CGA kártyák esetén lehetett normál és vékonyított megjelenítési módot választani egy beállítás megadásával, de ezt a többi gyártó klón-kártyájánál már nem lehetett megválasztani. Magán a CGA kártyán 8 különböző szöveges lap megjelenítésére volt elegendő RAM.

A 0-ás és 1-es BIOS módok a 40 oszlopos megjelenítést tettek lehetővé. A két mód közötti különbséget csak a kompozit monitorok teszik láthatóvá, ugyanis a 0-ás mód letiltja a színeket, azokat a szürke árnyalataivá konvertálja. Azonban az 1-es mód lehetővé teszi a színek helyes megjelenítését.

80x25 karakteres mód akár 16 színben: Itt is, az előzőhöz hasonlóan, minden egyes karakternek 8x8-as megjelenítési mintája van, tehát a gyakorlati képfelbontás 640x200 képpont. Mivel az előzőhöz képest kétszer annyi karakter van egyszerre a képernyőn, így a kártya RAM-jában már csak 4 oldalnyi szöveg fér el.

A 2-es és 3-as BIOS üzemmódok a 80 oszlopos megjelenítést teszik lehetővé. Az előzőhöz hasonlóan a 2-es mód csak a szürke változatait jeleníti meg, míg a 3-as BIOS mód már 16 szín megjelenítését teszi lehetővé.

Minden szöveges módban valamennyi karakternek van háttérszíne és előtérszíne, pl. piros háttér előtt sárga szöveg. Bár a színek ábrázolására ugyanazt a 4-bites színmintát használja a kártya minden egyes karakter megjelenítésére, de a gyakorlatban célszerűbb volt az egész lapra kiterjedő háttérszínt választani. A hardver lehetővé tette az egyes karakterek villogtatását, de egyes speciális kártyák esetén nem volt sikeres. A villogó attribútum alapértelmezetten engedélyezve van, így a második nyolc szín csak úgy választható ki, ha ez a bit letiltásra kerül. Érdeklődésre tarthat számot az a tény is, hogy a Microsoft GW-Basic programozási nyelvében (ami az MS-DOS-ba beágyazott QuickBasic elődjének tekinthető) mindkét szöveges módot támogatta (teljes színskálával!), de nem adott semmilyen beviteli eszközt a villogtatásra, habár a hardver támogatta az OUT (képernyőre) kiírási parancsot. A BASIC nyelv ezen variánsában a az előtér-színek száma: 16-31, amik a 0-15 közötti színek villogó verziói, de a a 8-15 háttérszínek megegyeznek a 0-7 közöttiekkel.

Szabványos grafikus üzemmódok:

A CGA két általánosan használt BIOS-támogatású grafikus üzemmódot tett lehetővé (egyes elnevezések szerint „IBM-féle minden pont címezhető” megoldással).

320x200-as grafikus mód: Ez a 40x25-ös karakteres mód grafikus verziójának tekinthető, azonban minden egyes képpontot külön lehetett címezni! Annyi kompromisszum azért volt, hogy mindössze négy színt lehetett egyidejűleg használni! Valamint a négy színből csak egyet lehetett szabadon választani a CGA 16-os színpalettájáról. Mindössze két paletta volt választható ezen módban:

  • Bíbor, cián, fehér és háttérszín (bármelyik a 16 színből, alapértelmezetten: fekete).

  • szám 1.paletta 1. paletta
    magas intenzitással
    0 alapértelmezett alapértelmezett
    1 3 — cián 11 — világos cián
    2 5 — magenta 13 — világos magenta
    3 7 — fehér 15 — fehér (magas intenzitású)
  • Vörös, zöld, barna/sárga és háttérszín (bármelyik a 16 színből, alapértelmezetten: fekete).

  • szám 0. paletta 0. paletta
    magas intenzitással
    0 alapértelmezett alapértelmezett
    1 2 — zöld 10 — világoszöld
    2 4 — piros 12 — világospiros
    3 6 — barna 14 — sárga

Azonban a CGA-szabvány szerinti magas intenzitású bitek csak ezzel voltak megcímezhetőek és így elérhetőek. Továbbá a programozásnál figyelembe kellett venni, hogy a pixelek képernyős méretarány: 1:1,2 volt. A 4-es és az 5-ös BIOS üzemmód állította be a grafikus képet. A szöveges üzemmódhoz hasonlóan a 4-es mód állította be a kompozit színes módot, míg az 5-ös mód tiltja azt.

A kor egyik, talán a legelső játéka volt az „Alley Cat”. Itt egy macskával kellett a kerítések tetején ugrálni. A képet csak azért hoztam, hogy innen indult a fejlődés a mai hipermodern játékokhoz...

CGA game: Alley cat

(Kép eredetije: http://www.dosgamesarchive.com/download/alley-cat/ )

Találtam egy videót is: https://www.youtube.com/watch?v=FTFpuUJhP2Q

640x200-as grafikus üzemmódban: Ez a 80x25-ös szöveges mód grafikus verziójának volt tekinthető. Az előzőhöz hasonlóan itt is minden egyes képpont egyenként volt címezhető. Itt a monokróm képarány: 1:2,4 volt. Alapértelmezetten a színek csak a fekete és a fehér voltak, de a háttérszínt a CGA palettáról lehetett választani – ráadásul a háttérszíncserét a kép törlése nélkül is meg lehetett valósítani! A 6-os BIOS mód állította be a 640x200-as grafikát. Ez a mód viszont alapértelmezésben letiltja a kompozit videó bitet.

Szöveges üzemmódban a betűminták közvetlenül a BIOS-ból jöttek, amit csak maga a kártya érhetett el. Grafikus üzemmódban ellenben a BIOS két külön táblát használt: az első felét (az alapvető 128 karaktert) közvetlenül a BIOS ROM chipből vette, míg a további karaktereket egy memóriahelyről vette ki egy megszakítás-rutin. Ennek az volt a következménye, hogy a második fél rendszeresen hiányzott (üres volt) vagy csak ilyen-olyan szemeteket rakott bele a gép. Éppen ezért a karakterek adatait közvetlenül a felhasználó vihette be, például a GRAFTABL nevű speciális alkalmazással.

Kevésbé szabványos üzemmódok:

Számos további üzemeltetési lehetőség létezik (bár itt csak pár példa szerepel), amit ezzel a sokoldalú monitorral el lehetett érni a minél jobb megjelenítési hatás végett – némi trükközéssel:

320x200-as grafikus módban az alapértelmezetten fekete háttér színét a CGA paletta 15 színéből ki lehetett választani, de ez nagyban befolyásolta a keret színét. Ez néhány újabb variációt tett lehetővé, beleértve például a keret villogtatását is – mindezt úgy, hogy a képen lévő grafikát nem kellett újrarajzolni.

640x200-as grafikus módban az előtér (alapértelmezetten fehér) színét meg lehetett változtatni a paletta további 15 színére. Azonban a háttér és a keret továbbra is csak fekete maradhatott.

Szöveges üzemmódban a keret színét a szokásos feketéről fel lehetett cserélni a többi 15-re.

 


Az akkori (elég kezdetleges) grafikus játékok már a technológia határait feszegették. Ezekre jó példák voltak az Epyx: California Games, illetve az Atarisoft: Jungle Hunt c. kiadványai. Így nyilvánvaló lett, hogy ezen a grafikus felbontáson és a színek számán fejleszteni kell! De ez mellett feltétlenül kellett az újabb, nagyobb teljesítményt elbíró CPU-k, illetve gyorsabb vasak is. (memória, alaplap, HDD, stb.)

 

Felhasznált irodalom: