Már írtam a grafikus megjelenítésről és a TV-n megjelenített kompozit video jelről is. Most arról az evolúcióról szeretnék írni ami az IBM kompatibilis gépeknél elvezetett a VGA szabványig. A téma azért érdekes, mert a monokróm megjelenítés és a VGA jel alapjai közösek, de a kettő között volt néhány vargabetű. Persze az IBM PC-k mellett más gépekről is szót ejtek, mert csak a konkurenciához képest értékelhető egy-egy kártya tudása. Ezek közül némelyik megelőzte korát, amíg a PC inkább csak követte a trendeket. Érdekes módon mégis az utóbbi maradt meg és ennek részben a megjelenítésnek is az oka volt.
A személyi számítógépek története a 70-es évek elején indult. Hogy ne keveredjen a kettő, ezért a nem IBM kompatibilis gépekre (Atari, Commodore…) a home computer kifejezést fogom használni. Az otthon készült gépek tervezői megjelenítésre, meg úgy általában a gép felépítésére az használták amihez hozzáfértek, illetve meg tudtak fizetni. Az Altair 8800 esetében például csak LED-ek jelenítették meg az információt. Más gépeknél már többszegmenses kijelzőt használtak, például a KIM1-nél. Nagyjából a három nagy számban gyártott (TRS-80, Apple II, Commodore PET) gép idejére a televízió és az általa használt kompozit jel vált be, így mint megjelenítő viszonylag olcsón, bárki által elérhető megjelenítőt használhattak. Ha most valaki azt mondaná, hogy a PET beépített kijelzővel rendelkezett, akkor ajánlom figyelmébe Brian Bagnal könyvét arról, hogy hogyan hasznosítottak újra egy kis TV-t a PET tervezői. A TV használata megmaradt egészen sokáig, a két leggyakoribb home computer (Amiga, Atari) mellé is túlnyomóan ezt használták. Ezeknél a gépeknél már volt RGB kimenet, amit megfelelő megjelenítőre kötve sokkal élesebb képet kaphattunk. Amigánál kiegészítő kártyával, vagy Atari esetén mono módban nagyobb frekvenciájú és felbontású kép megjelenítésére is volt lehetőség.
Az IBM PC tervezői teljesen logikusan a konkurenciát és a házon belül létező terminálokból kiindulva láttak munkához. A 80-as évek kezdetén a home computerek már színes megjelenítést használtak, de a RAM mérete a felbontást és az egyszerre megjelenített színek számát erősen behatárolta. Az Apple II hi-res módja 280×192 pixelt tudott megjeleníteni, de egy adott pontban látható szín függött a pixel pozíciótól köszönhetően annak, hogy az NTSC tulajdonságait egyszerre furcsán és zseniálisan használta ki Wozniak. A többi konkurens gép is hasonlóan paraméterekkel rendelkezett, például az Atari 800 320×192, a Ti 99/4 256×192 maximális felbontással rendelkezett, de az Apple II-vel ellentétben mind a kettő kezelt spriteokat. A szín attribútumot használó megjelenítésről már írtam. Ezeknél a gépeknél a képernyőt blokkokra osztották és akár 16 szín is megjelenhetett a teljes képernyőn, de egy blokkon belül ezek száma jóval alacsonyabb (legnagyobb felbontás esetén tipikusan 2 szín/blokk) volt.
1981-ben, az IBM Personal Computer bejelentését követően a vásárlók két vezérlő közül választhattak. A grafikus megjelenítésre alkalmas Color Graphics Adapter (CGA) felbontása az NTSC szabványhoz igazodott. 4 színű paletta mellett 320×200-as, míg 2 szín használata esetén 640×200-as felbontást tudott megjeleníteni televízión, vagy a TTL csatolós CGA monitoron. A választható színpaletta fix volt és finoman fogalmazva sem a legszebb összeállítást választották ki a tervezők. Az igazság az, hogy a CGA nem lett jobb a konkurenciánál, pedig a lehetőség megvolt. Sajnos a tervezők döntésének köszönhetően a paletta nem volt szabadon variálható, illetve a 16 szín csak 160×200-as felbontás mellett volt elérhető. Az utóbbiról a RAM mérete (16kB) tehetett ami még elfogadható a korabeli memória árak ismeretében, de az előbbire nincs mentség. Ezekkel a kompromisszumokkal sikerült elérni, hogy a CGA ne legyen jobb a konkurenciánál. Pedig az alap nem volt rossz, a 16 színt a 3 alapszín és a szín intenzitás adta ki, ezek szabad variálhatósággal hozták volna a kor színvonalát. A felbontást limitálta az NTSC kompatibilitás, de így egy otthoni felhasználónak akár egy televízió is megfelelt monitorként. Ez a korlát viszont azzal a mellékhatással járt, hogy a 80×25-ös karakteres felbontás már viszonylag nehezen olvashatónak bizonyult. Az IBM szakemberei látták ezt a hiányosságot, ezért terveztek egy kimondottan karakteres üzemmódra optimalizált kártyát és monitort. Az MDA (monochrom Display adapter) felbontása 720×350 képpont volt, de csak az előre ROM-ban definiált karaktereket tudta megjeleníteni, grafikus módot egyáltalán nem támogatott. Üzleti alkalmazásoknál a színek hiányát kompenzálta a hosszú távon is olvasható képernyő ami a CGA-hoz viszonyított kb. négyszer több képpontnak volt köszönhető. Az 50 Hz-es frissítési frekvencia látszólag ellent mond annak, hogy az MDA szemkímélőbb, de a képernyő villogását hosszabb utánvilágítású kijelzőkkel eliminálták. A grafika hiányát enyhítették az inverz, a villogó karakterek és az ASCII karakterkészlet ügyes felhasználása. Erre nagyon jó példa a DOS korszakban szinte mindenki által használt Norton Commander.
Az eredeti PC hiányosságai hamar kiderültek, ahogy az erősségei is. Ez utóbbiak listája elég hosszú: nyitott architektúra, szabadon variálható alkatrészek, jó billentyűzet és jól olvasható MDA megjelenítő. A variálhatóság és a jól dokumentált, bárki által bővíthető hardver segített a hiányosságok kijavításában. Már 1982-ben megjelent a Hercules grafikus kártya (HGC) ami az MDA monitorát használta kicsit módosított, 720×348-as felbontással. Ezt a CRT technika könnyedén le tudta követni. A jó karakteres megjelenítést monokróm grafikus üzemmóddal és 64 kB RAM-mal fejelték meg. A több memóriának köszönhetően a karakterkészletet újra lehetett definiálni, illetve több lap használata is lehetséges volt. Ugyan színeket nem ismert, de a megjelenített kép részletessége túlszárnyalta a később megjelent Macintosh (512×342), illetve az Atari ST nagy felbontású módját (640×400). Sajnos, vagy a konkurencia számára szerencsére, a PC-nél hiányzott a megfelelő grafikus operációs rendszer. Érdemes megemlíteni, hogy a CGA 4 színű módjához képest több, mint dupla vízszintes felbontás és a nagyobb RAM méret lehetővé tette annak emulációját. Igaz színek nem voltak és a RAM másolgatás is CPU időt igényelt, de elég sok programot lehetett használni Hercules kártyával. Hogy mennyire sikeres kvázi szabvány született, azt jól mutatja, hogy a belépő szintű gépekben még a 90-es évek elején is általában egy Hercules kompatibilis kártya gondoskodott a monitor meghajtásáról.
A CGA-ra alapuló Plantronics is megjelent ugyanebben az évben, míg az IBM egészen a PCjr ’83 novemberi bejelentéséig várt a feljavított verzióval. Ez utóbbit Tandy graphics adapterként is ismerhetitek, mert a PCjr bukása után a Tandy másolta le, majd amit a PCjr nem tudott sikerre vinni azt a jobb árnak köszönhetően a Tandy érte el. Mind a két megoldás az eredeti CGA monitorokat használta, így a megjelenített színek és felbontások is megegyeztek. Amit kijavítottak az a felbontásokhoz tartozó maximális színek száma volt. A videó RAM-ot duplázták, így az egyszerre megjeleníthető színekhez tartozó bitek száma duplázódott. 320×200-as felbontás mellett már képes volt egyszerre mind a 16 színt (2->4 bit) megjeleníteni a PCjr. Ezen felül végre lehetőség volt az eredeti CGA üzemmódokban a kötött paletták szabadon variálására. A home computerek világában ez a felbontás és színmélység már jónak számított. Idővel egész sok játék kezdte el támogatni a CGA-hoz képest sokkal szebb grafikát. Azt azonban jó tudni, hogy ez nem oldotta meg az alacsony vertikális felbontás problémáját. A kép részletessége már megfelelt a konkurenciának, de hiányzott a dedikált hardver a sprite-ok megjelenítéséhez, azok animációjához. A grafika mozgatását teljes mértékben a 8088-as CPU-nak kellett megoldani, de az 4.77MHz-en nem volt gyorsabb a korabeli a 8 bites gépeknél. Az animáció sebességét tovább rontotta a lassú PC busz és a duplázott RAM mennyiség is, szóval bár alakult a rendszer, még messze nem volt tökéletes.
Az IBM következő nagy dobása a marginális PGC-t elhanyagolva az EGA volt. 1984 őszén került a piacra, nem sokkal az AT után. Gyakorlatilag az új, gyorsabb géphez párosítottak egy jobb megjelenítőt. Őszintén szólva én sokáig másodhegedűsként kezeltem az EGA-t, de jobban belegondolva csak szerencsétlen volt az időzítése. Paramétereit tekintve a többi, már piacon megvásárolható géphez képest nem volt rossz, a januárban bejelentett Macintoshoz képest (512×342, monokróm megjelenítő) meg egyszerűen fantasztikus volt a tudása. Egyszerre maximum 16 színt tudott megjeleníteni a 64 színű palettából 640×350-es felbontás mellett a hozzá tartozó EGA multisync monitoron. A tervezők lehetővé tették a CGA monitor használatát, de akkor csak az eredeti RGBI színpalettával és maximum 640×200-as felbontással tudott működni. Az új EGA monitor a CGA-nál nagyobb eltérítési frekvenciát (ez kellett a 350 sorhoz) és alapszínenként 2 bites, tehát összesen 6 bites színmélységet tudott. Az érdekessége a csatolónak, hogy a CGA egyszerű tovább bővítéseként ugyanúgy TTL jelszintekkel, digitálisan vitte át a kártya és a monitor között. Ennek a hátránya az volt, hogy a monitor megint csak egy fix színpalettát tudott megjeleníteni, ezért egy hasonló módon továbbfejlesztett, nagyobb színmélységet ismerő kártyához nem felelt volna meg. Ráadásul ezen az úton tovább haladva a csatoló “szélessége” és a pinek száma folyamatosan emelkedett volna tovább. Az EGA abban is újított a CGA-hoz képest, hogy bitplaneket használt ami lehetővé tette különböző programozási trükkök bevetésével a folyamatosabb animációk megjelenítését.
Sajnos az EGA rossz időzítéssel érkezett, ugyanis ekkor már bemutatták az Amiga prototípusát. 1985 nagyon sűrűre sikerült a 16 bites számítógépek piacán. Az év tavaszán erőltetett fejlesztéssel elkészült az Atari ST és nyáron piacra került az első Amiga is. Az Atari volt a kevésbé fejlett, színes megjelenítésnél maradt a jól bevált 320×200-as felbontás mellett és az egyszerre megjelenített 16 szín (640×200 felbontásnál 4 szín) is ismerős lehet. Gyakorlatilag az allokált memória mérete és a TV-hez, mint megjelenítőhöz ragaszkodás adta ki ezeket a jól ismert számokat. A nagy előrelépés az volt, hogy 9 bites, tehát 512 színből álló palettából lehetett szabadon összeválogatni a megjelenített 16 színt. Ügyes programozással a palettát a kép adott pontján átdefiniálva a képernyőn akár több színt is meg lehetett jeleníteni. Ez az EGA-hoz képest jelentős eltérés volt. Az Amiga még nagyobbat lépett előre, már 12 bites azaz 4096 színű palettát használt. Képes volt 640×256 (PAL, nem váltottsoros) üzemmódban 16 színt használni és a beépített co-processzoroknak hála folyamatos animációt megjeleníteni. Interlaced üzemmódban a függőleges felbontás már 512 sor volt, cserébe ez hosszú távon jobban fárasztotta a szemet. Ha a felhasználónak statikusabb kép is megfelelt, akkor HAM üzemmódban használhatta a teljes 4096 színű palettát. Az animáció folyamatossága és a HAM módban megjelenített kép minősége is egyedülállónak számított. A jól induló EGA tudása a két új géppel rögtön a középmezőnybe csúszott vissza. Ettől függetlenül elég sok cég állt neki EGA kompatibilis kártyát tervezni és gyártani. Több ma is ismert cég tervezett olyan grafikus chipet ami RAM-tól, monitortól, jumpereléstől függően képes volt CGA, Tandy, EGA sőt Hercules megjelenítésre.
1987-ig kellett várni az újabb IBM grafikus adapterre, de az élet addig sem állt meg. Az EGA-t több gyártó is kiterjesztette, de ezek nem terjedtek el. Steve Jobs, aki ellenezte a bővíthető, színes Macintosh-t, távozott az Apple-től. Az Atari és a Commodore 16 bites gépei stabil felhasználói bázist építettek ki, ráadásul 87-ben megjelent az olcsó, A500-as Amiga. Az IBM klónok fejlődése is töretlen volt, egyre gyorsabb 286-os processzorokat használtak és már megjelent a 386-os is. Márciusban jelent meg a színes Macintosh II, 640×480-as felbontás mellett maximum 256 színt tudott megjeleníteni a 16.7 milliós (24 bites) palettából. Áprilisban érkezett a PS/2-vel a nagyon hasonló tudású Video Graphics Array. A VGA felülről kompatibilis volt az elődeivel, de már teljesen analóg módon vitte át a színjelet a vezérlőkártya és a monitor között. Ez nagyon hasonlított egy televíziónál meglévő RGB jelre, természetesen a felbontás miatt a sorok száma, az eltérítési frekvenciák eltértek. Maximális felbontása 640×480 volt 16 színnel, amíg a jól megszokott 320×200-as felbontáson 256 színt tudott megjeleníteni a 18 bites (262144 szín) palettából. A nagyobb felbontás az irodai alkalmazásoknál volt hasznos, amíg a kisebbiket leginkább játékok használták. A gyorsabb processzorok és a 320×200-hoz tartozó 1 bájt/képpont felépítés egyszerűsítette a programozók dolgát. Lehet, hogy néhányan szentségtörésnek fogják venni, de ezzel végre sikerült az Amigákkal felérő grafikát alkotni a PC-hez. Innen már három pontban össze lehet foglalni, hogy milyen módon győzött a PC:
- Az IBM kompatibilis gépek rohamosan fejlődtek. Már nem az IBM diktálta a tempót, hanem az Intel CPU fejlesztési sebessége: 386, 486, Pentium. Ezzel a Motorola alapú gépek nem tudták tartani a lépést
- A gyors fejlődés mellé járult a klónok terjedése és így az árak esése. Nem csak a komplett gépek piacára kell itt gondolni, hanem az egyes alkatrészek vonalán is rohamos fejlődés és áresés történt: CPU-nál olcsó, de jó megoldás volt az AMD 386DX40, majd az AMD/Cyrix 486-ok. VGA kártyáknál is egyre jobb megoldások születtek, nagyobb felbontás, színmélység is társult a sebesség mellé.
- A Commodore és Atari lemaradt a fejlesztéssel. Egyszerűen elfogyott a technikai előnyük, hiába voltak olcsóbbak a klónok támadását nem tudták túlélni. Az Amiga ECS nem volt igazi előrelépés az OCS-hez képest. Az AGA ’92-es megjelenése pedig már túl későn történt ahogy az Atari Falcon is csak elnyújtani tudta a végjátékot.
A PC-k fejlődése sokáig tartott. Főként az elején érthetetlen módon limitáltak voltak. A végén a nyitott architektúrának és a töménytelen klónnak köszönhetően a sok jól felhízlalt lúd disznót győzött.
Views: 1270
Nagyon jó cikk ! Érthetően vezet végig a korai fejlődésen.
Élvezetes volt olvasni.
Egy apró kiegészítés: Az MDA és a Hercules aláhúzott szöveget is meg tudott jeleníteni, ezt valami miatt a színes vezérlők egyike sem tudta karakteres üzemmódban.
Köszönöm. A kiegészítés helyes. Az attributum bitek a színes vezérlőknél színeket állítottak be és ha jól emlékszem villogást. Az MDA-nál ami rémlik, hogy volt aláhúzás, inverz, villogás.
“A tervezők lehetővé tették a CGA monitor használatát, de akkor csak az eredeti RGBI színpalettával és maximum 320×200-as felbontással tudott működni.”
Ez így nem teljesen igaz, a 640x200x16-os felbontás is működött (az eredeti RGBI 16-színnel).
Igaz, köszönöm a kiigazítást.