Obsah
1. Trh s herními konzolemi v roce 1982
2. Herní konzole Atari 5200 aneb pokus o navázání na úspěch legendy Atari 2600
3. Projekty „Candy“ a „Colleen“
4. Čipy CTIA a GTIA – pokračování tradice zahájené čipem TIA
5. Práce se sprity podporovaná čipy CTIA a GTIA
6. Čip ANTIC (Alpha-Numeric Television Interface Circuit)
7. Display-listy a další vlastnosti čipu ANTIC
1. Trh s herními konzolemi v roce 1982
V seriálu o historii vývoje výpočetní techniky jsme se při popisu první a druhé generace herních konzolí pomalu přesunuli z druhé poloviny sedmdesátých let minulého století až do začátku let osmdesátých. Zatímco v předchozím období dominovala trhu s domácími herními konzolemi především konzole Atari 2600, které více či méně úspěšně sekundovaly výrobky Fairchild Channel F a Magnavox Odyssey2, začala se situace poměrně zásadním způsobem měnit v roce 1982 (tedy zhruba rok před částečným krachem trhu s herními konzolemi, o němž se ještě v tomto seriálu zmíníme). V roce 1982 totiž začaly být nabízeny další typy herních konzolí, které byly vybaveny osmibitovými mikroprocesory a většinou taktéž i specializovanými čipy určenými pro generování grafiky a zvuků. Mezi tyto nové typy konzolí patří především Atari 5200, Vectrex, ColecoVision a částečně taktéž Emerson Arcadia, která se však svými vlastnosti a relativně nízkým výkonem řadí spíše k Magnavox Odyssey2 nebo Atari 2600.

Obrázek 1: Hra Preliminary Monty ve variantě pro herní konzoli Atari 5200.
V následující tabulce jsou vypsány základní údaje o všech čtyřech herních konzolích, které se na trhu objevily v průběhu roku 1982 (ve skutečnosti se přesná doba uvedení na trh lišila podle oblasti, nejdříve bývali osloveni zákazníci v USA a teprve poté v západní Evropě a v Japonsku, což se později změnilo):
Konzole | Procesor | Frekvence | RAM | Grafika | Zvuky |
---|---|---|---|---|---|
Atari 5200 | MOS 6502 | 1,79 MHz | 16 kB | až 320×192, 8 spritů | 4 kanály mono |
Vectrex | Motorola 6809 | 1,50 MHz | 1 kB | vektorová monochromatická | 1 kanál mono |
ColecoVision | Zilog Z80 | 3,58 MHz | 8 kB | 256×192, 32 spritů | 3 tónové generátory + 1 generátor šumu |
Emerson Arcadia | Signetics 2650 | 3,58 MHz | 512 B | 128×208, 128×104 | 1 kanák + 1 generátor šumu |

Obrázek 2: Hra Moon Patrol ve variantě pro herní konzoli Atari 5200.
Možná ani nemusí být na škodu si připomenout, že rozdíly mezi osmibitovými mikroprocesory MOS 6502, Motorola 6809 a Zilog Z80 byly značné, a to jak po stránce počtu registrů a instrukční sady (což zajímalo především programátory používající assembler), tak i z hlediska technologického. Zatímco mikroprocesor MOS 6502 patřil mezi první generaci osmibitových čipů, byly další dva mikroprocesory Motorola 6809 a Zilog Z80 již v několika ohledech vylepšeny. Jednalo se vlastně o druhou (Motorola 6800 → Motorola 6809) resp. o třetí generaci zpětně kompatibilních čipů (Intel 8008 → Intel 8080 → Zilog Z80). Ve druhé tabulce jsou vypsány základní údaje o všech třech zmíněných mikroprocesorech:
Mikroprocesor | Výroba | Tranzistorů |
---|---|---|
MOS 6502 | 1975 | 3500 |
Zilog Z80 | 1976 | 8500 |
Motorola 6809 | 1978 | 9000 |

Obrázek 3: Pomocí změny barvové palety v přesně načasovaných okamžicích je možné s využitím čipů ANTIC a GTIA simulovat grafický efekt známý pod jménem „plasma“ bez nutnosti přesunů dat ve framebufferu.
2. Herní konzole Atari 5200 aneb pokus o navázání na úspěch legendy Atari 2600
První herní konzolí z roku 1982, s níž se v tomto seriálu seznámíme, je herní konzole nesoucí název Atari 5200. Již číselné označení této konzole napovídá, že se jedná o pokračovatele legendární konzole Atari 2600, ovšem vybavené plnohodnotným mikroprocesorem MOS 6502 schopným adresovat celých 64 kB paměti (RAM+ROM+hardwarové registry). Navíc byl tento mikroprocesor taktován hodinovou frekvencí 1,79 MHz, což je více, než u Atari 2600 a jejího mikroprocesoru MOS 6507 se zmenšenou šířkou adresové sběrnice. Ovšem zatímco se Atari 2600 stala zdaleka nejúspěšnější herní konzolí druhé generace s počtem prodaných kusů překračujících podle některých odhadů až 50 milionů, nelze totéž říci o Atari 5200, i když se z technologického hlediska jednalo o velmi zajímavé zařízení založené na vzájemně kooperujících čipech používaných jak v některých herních automatech, tak i (a to především) v sérii osmibitových domácích mikropočítačů Atari.

Obrázek 4: Jednou z úspěšných her určených pro herní konzoli Atari 5200 je i hra The Last Starfighter.
Jedním důvodem relativního komerčního neúspěchu herní konzole Atari 5200 byla nekompatibilita s původním zařízením Atari 2600, která se navíc nešťastně spojila s nevalnou kvalitou prvních her, které na Atari 5200 vznikly; většinou se totiž jednalo o pouhé upravené verze starších her, které ale nedokázaly potenciálním zákazníkům ukázat všechny možnosti nové herní konzole (popravdě řečeno se na některé triky přišlo až relativně nedávno). Navíc na trhu vznikla poněkud kuriózní situace, kdy firma Atari konkurovala sama sobě, protože současně prodávala tři typy zařízení určených především pro hraní – původní herní konzoli Atari 2600, novou herní konzoli Atari 5200 a taktéž ještě osmibitový domácí počítač Atari 400 („Candy“), který byl v reklamách prezentován jako zařízení vhodné především pro hry, na rozdíl od ve stejné době nabízeného počítače Atari 800 („Colleen“), jenž byl i přes prakticky stejnou konfiguraci prezentován jako plnohodnotný počítač (největším rozdílem mezi Atari 400 a Atari 800 byla jiná klávesnice a různě vyřešené možnosti připojování paměťových modulů).

Obrázek 5: Snímek ze hry The Last Starfighter.
K tomuto problému se navíc přidaly i problémy s vysokou cenou a navíc i se špatně vyřešenými joysticky, které sice byly ve své době převratnou novinkou (byly totiž analogové, navíc s vlastní klávesnicí a dvojicí nezávislých střílecích tlačítek), ale s jejich konstrukčním řešením to už bylo mnohem horší (špatné, resp. žádné centrování atd.). Po grafické a zvukové stránce se jednalo o jednu z nejlépe vybavených herních konzolí druhé generace, protože se o tvorbu grafiky starala dvojice čipů GTIA společně s ANTIC a o generování zvuků pak čip POKEY. Ani na operační paměti se tentokrát nešetřilo, protože RAM měla kapacitu celých šestnácti kilobajtů a kapacita paměťových modulů s hrami mohla dosahovat třiceti dvou kilobajtů, a to bez nutnosti používání přepínání paměťových banků. Ve zbylých šestnácti kilobajtech volného paměťového prostoru byl umístěn firmware o velikosti dvou kilobajtů, z nichž celý jeden kilobajt zabrala znaková sada, a byly zde taktéž mapovány hardwarové registry (mikroprocesor MOS 6502 měl jediný paměťový prostor, takže nepotřeboval těžkopádné instrukce typu IN/OUT, jako tomu bylo/je u mikroprocesorů firmy Intel).

Obrázek 6: Další snímek ze hry The Last Starfighter.
3. Projekty „Candy“ a „Colleen“
„Make the hardware a flexible platform for clever developers.“
Již v předchozí kapitole jsme se zmínili o osmibitových domácích počítačích Atari 400 a Atari 800. Tyto počítače vznikly jako reakce na to, že se na světě objevil nový důležitý fenomén – osmibitové domácí počítače – původně charakterizované stroji Commodore PET a především Apple II. Ovšem historie domácích počítačů Atari začala vlastně již v roce 1977, tj. v době vydání herní konzole Atari 2600, protože právě v tomto roce společnost Atari začala plánovat, že zhruba za tři roky (~1980) bude nutné tuto herní konzoli nahradit konzolí nové generace. Z tohoto důvodu začala práce na vylepšeném grafickém čipu CTIA (Color Television Interface Adaptor), jenž měl nahradit původní a v mnohých ohledech již nevyhovující čip TIA. Z čipu CTIA se později relativně malou úpravou vyvinul čip GTIA, o němž se zmíníme v dalších kapitolách. Čipy CTIA/GTIA jsou specializovány na práci se sprity, tj. s pohyblivými objekty o relativně malé velikost, které nachází své uplatnění především ve hrách.

Obrázek 7: Základní technické parametry první generace osmibitových mikroprocesorů firem Intel, Motorola a Zilog. V tomto grafu není uveden poslední „velký hráč“ na poli osmibitových CPU – MOS 6502, jehož parametry se podobají právě čipu MC6800.
Ovšem nároky kladené na grafické schopnosti domácích počítačů jsou odlišné (resp. větší), než je tomu u herních konzolí, a to především kvůli požadavku na zobrazení textů. Tento požadavek nemohly sprity zajistit (muselo by jich být použito několik desítek, což tehdejší HW neumožňoval), proto museli inženýři z firmy Atari navrhnout nový čip určený v první řadě pro práci v textovém režimu a v řadě druhé pak podporující bitmapové grafické režimy. Tento čip dostal název ANTIC a byl – což je velmi zajímavé – navržen tak, aby spolupracoval s čipem CTIA/GTIA, tj. osmibitové počítače Atari měly ve skutečnosti dva specializované čipy určené pro práci s grafikou. Právě na těchto čipech byly postaveny oba zmíněné počítače Atari 400 a Atari 800, z nichž se relativně malou úpravou hardware a velkou úpravou firmware stala herní konzole Atari 5200, která však nebyla kvůli některým (pravděpodobně úmyslným) změnám v mapě paměti zcela kompatibilní s oběma zmíněnými počítači – lze najít i názory, že tomu tak bylo z toho důvodu, aby nebylo snadné převádět hry z konzole na domácí počítače, čímž si (alespoň teoreticky) měla herní konzole Atari 5200 zachovat určitou exkluzivitu.

Obrázek 8: Další známá hra pro Atari 5200: Miner 2049er.
V následující tabulce je vypsána mapa paměti herní konzole Atari 5200. Oproti „plnohodnotným“ domácím osmibitovým počítačům Atari je tato mapa v mnoha ohledech odlišná – paměť ROM v OS má rozsah jen dva kilobajty namísto deseti kilobajtů, zcela chybí BASIC ROM, framebuffer byl přesunut do první čtvrtiny adresového rozsahu atd. Všechny adresy jsou vypsány v hexadecimální soustavě a používají proto prefix $ (jak je tomu zvykem v assemblerech pro MOS 6502) namísto dnes možná obvyklejšího „céčkového“ prefixu 0×:
Od (hex) | Do (hex) | Význam | Poznámka |
---|---|---|---|
$0000 | $3FFF | RAM 16kB | Stejné, jako na 16kB verzích osmibitových Atari |
$4000 | $BFFF | ROM paměťového modulu | |
$C000 | $C0ff | Registry čipu GTIA | Na počítačích Atari se jedná o stránku $D0, ne $CO |
$D400 | $D5FF | Registry čipu ANTIC | Stejná stránka $D4, jako na osmibitových Atari |
$E800 | $E8FF | Registry čipu POKEY | Na počítačích Atari se jedná o stránku $D2 |
$F800 | $FBFF | Znaková sada (ROM) | Stejná sada, jako na osmibitových Atari |
$FC00 | $FFFF | OS (ROM) | velké odlišnosti od 10kB OS |

Obrázek 9: První úroveň hry Miner 2049er.
Úkolem operačního systému byla inicializace všech čipů, zobrazení známého loga společnosti Atari a následně inicializace paměťového modulu. Navíc se v OS ROM nacházely rutiny určené pro obsluhu přerušení a taktéž pro zajištění kopií hodnot hardwarových registrů čipů GTIA, ANTIC a POKEY do stínové RAM (podobná činnost probíhala i na domácích osmibitových počítačích Atari).
Užitečné odkazy:
- TRANSPORTING ATARI COMPUTER PROGRAMS TO THE ATARI 5200
http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html - Atari A8 Games vs 5200 Games
http://www.atariage.com/forums/topic/169528-atari-a8-games-vs-5200-games/ - ATARI 5200 SUPERSYSTEM FREQUENTLY ASKED QUESTIONS
http://www.atarimuseum.com/faqs/5200faq.html

Obrázek 10: Další hra pro Atari 5200: Gyrrus (kopie automatové hry).
4. Čipy CTIA a GTIA – pokračování tradice zahájené čipem TIA
Prvním čipem typickým pro mnoho elektronických zařízení firmy Atari byl čip nazvaný GTIA, neboli Graphics Television Interface Adaptor, popř. též George's Television Interface Adaptor podle jména svého tvůrce George McLeoda. Tento čip, jenž vznikl rozšířením možností původního čipu TIA z Atari 2600, zajišťoval několik funkcí: generování signálů nesoucích informaci o barvách a světlosti (luminanci) pixelů, řízení a zobrazování spritů, řízení priority spritů a pozadí a taktéž detekce kolizí mezi sprity navzájem, popř. kolizí mezi sprity a pozadím. Navíc tento čip dokázal na pozadí zobrazovat bitmapu generovanou spolupracujícím čipem ANTIC, popř. tuto bitmapu mohl reinterpretovat takovým způsobem, že vznikly tři nové grafické režimy s horizontálním rozlišením sníženým na 80 pixelů, protože každý pixel byl představován čtveřicí bitů (jeden řádek má při použití standardních režimů ve framebufferu velikost 20 nebo 40 bajtů, v rozšířeném hracím poli pak maximálně 48 bajtů), ovšem s možností zobrazení až šestnácti barev či šestnácti úrovní jedné barvy.
„Good hardware-software tradeoffs make the product economically viable.“
Ve skutečnosti byly všechny tři nové grafické režimy podporované čipem GTIA založené na monochromatickém režimu čipu ANTIC číslo 8, který umožňoval na jednom řádku standardně zobrazit 320 pixelů (teoreticky bylo sice možné tyto tři režimy založit například i na textovém režimu, ovšem v praxi se tento způsob práce s grafikou příliš často nepoužíval). Čip GTIA vždy čtveřici sousedních pixelů sloučil a výsledné čtyři bity mu sloužily buď pro výběr barvy z barvové palety (k dispozici bylo devět barev z možných šestnácti – jedná se o celkem zbytečné omezení dané počtem barvových registrů), určení odstínu barvy (úroveň, tj. světlost byla v tomto případě konstantní), popř. k určení úrovně barvy, zatímco odstín byl konstantní (tímto způsobem bylo možné například pracovat s černobílými fotografiemi). Čip GTIA tedy ponechával značnou část práce, především časování, provádění takzvaného display-listu atd., přístup do paměti, na obvodu ANTIC, což se vlastně ani příliš neliší od principu práce čipu TIA.

Obrázek 11: Další snímek ze hry Gyrrus.
Čip GTIA byl řízen pomocí 32 registrů, z nichž všechny byly určeny pro zápis a některé taktéž pro čtení, tj. například pro zjišťování kolizí atd. Některé z těchto registrů jsou vypsány v následující tabulce:
Registr | Režim | Význam |
---|---|---|
COLPM0 | W | barva hráče číslo 0 a střely číslo 0 |
COLPM1 | W | barva hráče číslo 1 a střely číslo 1 |
COLPM2 | W | barva hráče číslo 2 a střely číslo 2 |
COLPM3 | W | barva hráče číslo 3 a střely číslo 3 |
COLPF0 | W | barva pro herní pole číslo 0 |
COLPF1 | W | barva pro herní pole číslo 1 |
COLPF2 | W | barva pro herní pole číslo 2 |
COLPF3 | W | barva pro herní pole číslo 3 |
COLBK | W | barva pozadí |
PRIOR | W | řízení priority objektů a taktéž výběr grafického režimu |
HPOSP0 | W | horizontální pozice hráče číslo 0 |
HPOSP1 | W | horizontální pozice hráče číslo 1 |
HPOSP2 | W | horizontální pozice hráče číslo 2 |
HPOSP3 | W | horizontální pozice hráče číslo 3 |
HPOSM0 | W | horizontální pozice střely číslo 0 |
HPOSM1 | W | horizontální pozice střely číslo 1 |
HPOSM2 | W | horizontální pozice střely číslo 2 |
HPOSM3 | W | horizontální pozice střely číslo 3 |
SIZEP0 | W | horizontální zvětšení hráče číslo 0 (1×, 2×, 4×) |
SIZEP1 | W | horizontální zvětšení hráče číslo 1 (1×, 2×, 4×) |
SIZEP2 | W | horizontální zvětšení hráče číslo 2 (1×, 2×, 4×) |
SIZEP3 | W | horizontální zvětšení hráče číslo 3 (1×, 2×, 4×) |
SIZEM | W | horizontální zvětšení všech střel (1×, 2×, 4×) |
GRAFP0 | W | bitová data pro hráče číslo 0 |
GRAFP1 | W | bitová data pro hráče číslo 1 |
GRAFP2 | W | bitová data pro hráče číslo 2 |
GRAFP3 | W | bitová data pro hráče číslo 3 |
GRAFM | W | bitová data pro všechny střely |
M0PF | R | kolizní registr mezi střelou číslo 0 a herním polem |
M1PF | R | kolizní registr mezi střelou číslo 1 a herním polem |
M2PF | R | kolizní registr mezi střelou číslo 2 a herním polem |
M3PF | R | kolizní registr mezi střelou číslo 3 a herním polem |
P0PF | R | kolizní registr mezi hráčem číslo 0 a herním polem |
P1PF | R | kolizní registr mezi hráčem číslo 1 a herním polem |
P2PF | R | kolizní registr mezi hráčem číslo 2 a herním polem |
P3PF | R | kolizní registr mezi hráčem číslo 3 a herním polem |
M0PL | R | kolizní registr mezi střelou číslo 0 a hráčem |
M1PL | R | kolizní registr mezi střelou číslo 1 a hráčem |
M2PL | R | kolizní registr mezi střelou číslo 2 a hráčem |
M3PL | R | kolizní registr mezi střelou číslo 3 a hráčem |
P0PL | R | kolizní registr mezi hráčem číslo 0 a dalším hráčem |
P1PL | R | kolizní registr mezi hráčem číslo 1 a dalším hráčem |
P2PL | R | kolizní registr mezi hráčem číslo 2 a dalším hráčem |
P3PL | R | kolizní registr mezi hráčem číslo 3 a dalším hráčem |

Obrázek 12: Další snímek ze hry Gyrrus.
Užitečné odkazy:
- Atari TIA
http://www.atarihq.com/danb/tia.shtml - TIA Playfield
http://www.atarihq.com/danb/TIA/Playfield.shtml - Atari Inc.:
ANTIC C012296 (NTSC) Revision D
Atari Incorporated, Sunnyvale CA, 1982 - Atari Inc.:
GTIA C014805 (NTSC) Revision A
Atari Incorporated, Sunnyvale CA, 1982

Obrázek 13: Tok dat mezi operační pamětí, mikroprocesorem a čipy ANTIC i GTIA při generování video signálu.
5. Práce se sprity podporovaná čipy CTIA a GTIA
Čip GTIA kromě zavedení tří nových grafických režimů umožňoval vykreslit čtyři sprity s rozlišením maximálně 8×256 pixelů (popř. 8×128 pixelů) a další čtyři sprity s rozlišením 2×256 pixelů, které bylo možno spojit do jednoho (pátého) většího spritu s rozlišením 8×256 pixelů. Sprity široké 8 pixelů se v literatuře nazývají hráči (players), úzké dvoupixelové sprity střely (missiles). Sprity byly jednobarevné, více barev bylo možno dosáhnout logickými operacemi nad překrývajícími se sprity (počítače Commodore C64 naproti tomu nabízely i sprity v režimu multicolor). Každý sprite mohl pomocí jedné instrukce měnit svoji horizontální velikost i horizontální pozici, přičemž polohy spritů byly navzájem nezávislé (horizontální pozice se interně zjišťovala pomocí čítače a komparátoru, což bylo řešení odlišné od technologie použité v čipu TIA, kde byl namísto čítače využíván linear feedback shift register). Vertikální pozice spritů se měnila blokovým přesunem bitmapy spritu v operační paměti. Bylo také možné definovat priority vykreslování spritů vůči sobě navzájem i vůči pozadí, tj. zda se má sprite vykreslovat nad herním polem (popř. jiným spritem) či se naopak pod některými barvami skrývat.

Obrázek 14: Hra Adventure 2 pro počítače Atari 5200. Jedná se o hry z 21. století vytvořenou v domácích podmínkách, která se snaží zachovat prvky z původní hry Adventure pro Atari 2600 (viz tvar hráče – čtverečku).
Kromě toho, že se dala měnit priorita jednotlivých spritů, bylo také možné detekovat kolizi spritu s jiným spritem popř. s nějakou barvou hracího pole. To stejné samozřejmě platí i pro střely, u nichž byla možná detekce kolize s hráčem či kolize s hracím polem. Při kolizi (do úvahy se samozřejmě braly pouze viditelné pixely spritu, tj. pixely nastavené na logickou jedničku) se nastavil příslušný bit ve stavových registrech, odkud bylo možné kdykoli poté zjistit, zda ke kolizi došlo či nikoli. Díky této funkcionalitě bylo možné velmi snadno otestovat například náraz hráče do stěny, zásah hráče střelou atd. Vzhledem k tomu, že sprity byly pouze jednobarevné, museli se vícebarevní hráči sestavovat z několika spritů. Omezení počtu spritů naproti tomu nebylo kritické, neboť jeden sprite mohl být ve skutečnosti použitý pro zobrazení většího množství objektů ve scéně – jediným omezením bylo to, že tyto objekty nesměly ležet na stejném obrazovém řádku.

Obrázek 15: Screenshot ze hry Adventure 2.
Pro porovnání shodných vlastností a rozdílů mezi čipy TIA a GTIA se podívejme na následující dvojici tabulek. V první tabulce jsou vypsány grafické objekty, s nimiž dokázal pracovat čip TIA použitý v herní konzoli Atari 2600:
# | Typ objektu | Orig.název | Objem paměti | Šířka reprezentovaná jedním bitem |
---|---|---|---|---|
1 | Pozadí | Background | 0 bitů | × |
2 | Hrací plocha | Playground | 20 bitů | 4× základní šířka pixelu |
3 | Míč | Ball | 1 bit | 1×, 2×, 4×, 8× šířka pixelu |
4 | Hráč 0 | Player 0 | 8 bitů | 1×, 2×, 4× šířka pixelu |
5 | Střela 0 | Missile 0 | 1 bit | 1×, 2×, 4×, 8× šířka pixelu |
6 | Hráč 1 | Player 1 | 8 bitů | 1×, 2×, 4× šířka pixelu |
7 | Střela 1 | Missile 1 | 1 bit | 1×, 2×, 4×, 8× šířka pixelu |

Obrázek 16: Další screenshot ze hry Adventure 2.
Ve druhé tabulce jsou vypsány grafické objekty, s nimiž dokázal pracovat čip GTIA použitý v herní konzoli Atari 5200 i v prakticky všech osmibitových domácích počítačích Atari (pokud tedy nepočítáme prvních zhruba 100 000 počítačů Atari 400 a Atari 800 s čipy CTIA:
# | Typ objektu | Orig.název | Objem paměti | Šířka reprezentovaná jedním bitem |
---|---|---|---|---|
1 | Pozadí | Background | 0 bitů | barva v COLBK, přes celou šířku řádku |
2 | Hrací plocha | Playground | x bitů | generováno v ANTIC |
3 | Hráč 0 | Player 0 | 8 bitů×128/256 | 1×, 2×, 4× šířka pixelu |
4 | Střela 0 | Missile 0 | 2 bity×128/256 | 1×, 2×, 4×, 8× šířka pixelu |
5 | Hráč 1 | Player 1 | 8 bitů×128/256 | 1×, 2×, 4× šířka pixelu |
6 | Střela 1 | Missile 1 | 2 bity×128/256 | 1×, 2×, 4×, 8× šířka pixelu |
7 | Hráč 2 | Player 2 | 8 bitů×128/256 | 1×, 2×, 4× šířka pixelu |
8 | Střela 2 | Missile 2 | 2 bity×128/256 | 1×, 2×, 4×, 8× šířka pixelu |
9 | Hráč 3 | Player 3 | 8 bitů×128/256 | 1×, 2×, 4× šířka pixelu |
10 | Střela 3 | Missile 3 | 2 bity×128/256 | 1×, 2×, 4×, 8× šířka pixelu |

Obrázek 17: Kombinace grafických režimů ve hře International Karate.
6. Čip ANTIC (Alpha-Numeric Television Interface Circuit)
Pravděpodobně nejzajímavějším integrovaným obvodem použitým jak v herní konzoli Atari 5200, tak i ve všech osmibitových domácích počítačích Atari, je čip ANTIC (Alpha-Numeric Television Interface Circuit). Tento obvod byl totiž ve skutečnosti relativně samostatně pracujícím grafickým procesorem (GPU – i když dnes dostalo toto označení poněkud odlišný význam), jelikož ho bylo možné řídit vlastní sadou instrukcí a taktéž dokázal obsluhovat přístup do operační paměti bez zásahu mikroprocesoru (ten byl mezitím zastaven externím signálem). Instrukce pro čip ANTIC byly uložené v operační paměti, stejně jako vlastní obrazová paměť (framebuffer). Umístění obou datových bloků se mohlo měnit, což znamená, že se každý programátor mohl sám rozhodnout, jak má vypadat organizace paměti počítače či herní konzole (na mnoha jiných osmibitových i šestnáctibitových počítačích byl paměťový rozsah obrazové paměti neměnný, což v některých případech znamenalo určité omezení, například při vertikálním posunu obrazu).

Obrázek 18: Standardní textový režim osmibitových počítačů Atari, ve kterém se na jednom textovém řádku zobrazovalo 40 znaků a počet textových řádků dosahoval hodnoty 24. Technicky se jednalo o monochromatický režim, protože barva pozadí a popředí měla vždy stejný odstín (standardně bleděmodrý), lišila se pouze úroveň (intenzita) barev. Každý znak byl zobrazen v rastru 8×8 pixelů, znaky byly programově měnitelné (jejich bitové mapy mohly být umístěny do paměti RAM). Pro textový kurzor, zde zobrazený pod slovem READY, existovala přímá podpora v čipu ANTIC.
Na herní konzoli Atari 5200 a taktéž na všech osmibitových počítačích Atari se výsledný obraz posílaný na televizor či monitor skládal ze dvou částí. První část obrazu (kterou dnes známe pod pojmem framebuffer) se nazývala pozadí (background), na němž bylo umístěno hrací pole (playfield). Druhá část obrazu byla složena ze čtyř spritů o šířce osm pixelů doplněných čtyřmi střelami (ve skutečnosti šlo taktéž o sprity, ale s šířkou dvou pixelů). Hlavní úloha čipu ANTIC spočívala ve vytváření pozadí na základě „programu“ nazývaného display-list, pomocí něhož bylo možné pro každý vykreslovaný obrazový řádek (scanline) nastavit jeden ze čtrnácti textových či grafických režimů, které se navzájem lišily svým rozlišením (velikostí pixelů v horizontálním i vertikálním směru), počtem současně zobrazitelných barev (2, 4 nebo 5) a samozřejmě též velikostí alokované obrazové paměti pro celý framebuffer.

Obrázek 19: Poměrně jednoduchým způsobem je možné standardní textový režim upravit tak, aby byl každý řádek zobrazený odlišnou barvou – postačilo na začátku každého řádku (při návratu elektronového paprsku, kdy není prováděno vykreslování) změnit hodnotu jednoho barvového registru. Tento trik se na osmibitových počítačích Atari používal v mnoha podobách, asi nejznámější je logo firmy Atari vyvedené ve všech 128 dostupných barvových odstínech.
Samozřejmě platí, že čím menší byly rozměry pixelů na obrazovém řádku a čím větší počet barev bylo možné na jednom řádku zobrazit, tím větší část operační paměti bylo nutné pro každý obrazový řádek naalokovat. Ve standardních grafických režimech se počet bajtů na jeden obrazový řádek pohyboval v rozmezí 10 až 40, v textových režimech pak v rozmezí 20 až 40 bajtů. Některé podporované režimy byly znakové (na řádku byly umístěny znaky různé velikosti, v některých případech bylo možné pracovat i s větším množstvím barev), další režimy byly čistě bitmapové, přičemž struktura grafické paměti byla v bitmapových režimech velmi jednoduchá: pro každý pixel byl alokován jeden nebo dva bity a jednotlivé obrazové řádky byly uloženy za sebou bez použití prokládání (tuto zdánlivou samozřejmost zdůrazňuji především proto, že ještě na „moderním“ IBM PC s grafickou kartou CGA se museli programátoři potýkat s prokládáním obrazových řádků).

Obrázek 20: Logo firmy Atari a základní menu herní konzole Atari 5200 (součást firmware).
7. Display-listy a další vlastnosti čipu ANTIC
V instrukčním souboru čipu ANTIC se nacházely také příznakové bity, pomocí kterých bylo pro každý řádek možné povolit přerušení DLI (Display-List Interrupt), které bylo automaticky vyvoláváno při horizontálním zpětném běhu elektronového paprsku na televizní obrazovce. Taktéž bylo možné pro každý obrazový řádek povolit jemný posuv o maximálně osm pixelů doleva či doprava, čímž bylo umožněno pouze s využitím několika instrukcí mikroprocesoru realizovat jednoduchý posun obrazovky (scrolling) nebo pouze posun její části. Typickým příkladem hry, která jemný scrolling ve velké míře používala, je Boulder Dash. Tato hra je zajímavá také tím, že se pro zobrazování herní scény používal speciální textový režim s polovičním horizontálním rozlišením a možností v jednom znaku rozlišit pět barev (tento textový režim byl mezi tvůrci her poměrně oblíbený, další hrou, která ho používala, je například Blue Max). Přednost použití textového režimu oproti režimu bitmapovému spočívá ve snadném a rychlém vykreslení celé scény – posun hráče, kamenu nebo drahokamu je proveden změnou jednoho či dvou bajtů namísto nutnosti vykreslení celé bitmapy.

Obrázek 21: Hra Boulder Dash ve své verzi pro osmibitové počítače Atari do značné míry využívala možností poskytovaných čipem ANTIC i jeho display-listu.
8. Grafické režimy čipu ANTIC
V následující tabulce jsou pro ilustraci některých možností čipu ANTIC uvedeny vybrané základní režimy, které je možné nastavit pro každý obrazový řádek zvlášť. V prvním sloupci je číslo (kód) instrukce pro čip ANTIC, ve sloupci druhém pak číslo, které se předává příkazu GRAPHICS v Basicu při nastavování textového či grafického režimu (Basic ovšem nebyl standardní součástí konzole Atari 5200). Povšimněte si, že textový režim číslo 3 není přímo z Basicu přístupný. Jedná se o režim s vyššími znaky, který lze s výhodou využít například v textových editorech používajících font s „nabodeníčky“. Pokud je tedy požadováno, aby se zobrazil textový režim s 40 znaky na řádek a 24 textovými řádky, musí display-list řídicí čip ANTIC obsahovat mj. i 24 instrukcí s kódem 2. Ve skutečnosti je však display-list poněkud složitější, protože obsahuje i instrukci pro vykreslení horního jednobarevného okraje, instrukci pro nastavení začátku obrazové paměti (adresu prvního znaku na obrazovce) a na samotném konci display-listu taktéž instrukci pro skok na jeho začátek.
Instrukce ANTIC | GRAPHICS x | Režim | Rozlišení | Počet barev | Poznámka |
---|---|---|---|---|---|
2 | 0 | textový | 40 znaků na řádek | 2 | standardní textový režim |
3 | × | textový | 40 znaků na řádek | 2 | textový režim s vyššími znaky |
4 | 12 | textový | 40 znaků na řádek | 5 | výška znaku 8 pixelů, 4 barvy/znak |
5 | 13 | textový | 40 znaků na řádek | 5 | výška znaku 16 pixelů, 4 barvy/znak |
6 | 1 | textový | 20 znaků na řádek | 5 | výška znaku 8 pixelů |
7 | 2 | textový | 20 znaků na řádek | 5 | výška znaku 16 pixelů |
8 | 3 | grafický | 40 pixelů na řádek | 4 | neznám žádnou aplikaci, která by tento režim používala |
9 | 4 | grafický | 80 pixelů na řádek | 2 | |
A | 5 | grafický | 80 pixelů na řádek | 4 | |
B | 6 | grafický | 160 pixelů na řádek | 2 | výška pixelu dva obrazové řádky, vertikální rozlišení cca 96 pixelů |
C | 14 | grafický | 160 pixelů na řádek | 2 | výška pixelu jeden obrazový řádek, vertikální rozlišení cca 192 pixelů |
D | 7 | grafický | 160 pixelů na řádek | 4 | výška pixelu dva obrazové řádky, vertikální rozlišení cca 96 pixelů |
E | 15 | grafický | 160 pixelů na řádek | 4 | výška pixelu jeden obrazový řádek, vertikální rozlišení cca 192 pixelů |
F | 8 | grafický | 320 pixelů na řádek | 2 | nejvyšší možné standardní rozlišení |

Obrázek 22: Hra Amaroute běžící v monochromatickém režimu s nejvyšším rozlišením 320×192 pixelů. Povšimněte si korektního skrývání vzdálených objektů; pravděpodobně se používá optimalizovaná podoba malířova algoritmu.
9. Odkazy na Internetu
- 3 Generations of Game Machine Architecture
http://www.atariarchives.org/dev/CGEXPO99.html - Atari 5200
http://www.atariage.com/software_search.html?SystemID=5200 - Atari 5200 Hardware and Accessories
http://www.atariage.com/5200/archives/hardware.html - Atari 5200 Screenshots
http://www.atariage.com/system_items.html?SystemID=5200&ItemTypeID=SCREENSHOT - History of video game consoles (second generation): Wikipedia
http://en.wikipedia.org/wiki/History_of_video_game_consoles_(second_generation) - Atari 5200: Wikipedia
http://en.wikipedia.org/wiki/Atari_5200 - 6502 – the first RISC µP
http://ericclever.com/6500/ - The Video Game Console Library: Fairchild Channel F
http://www.videogameconsolelibrary.com/pg70-fairchild.htm - Jerry Lawson
http://www.vintage.org/2006/main/bio.php?id=1586 - Fairchild Semiconductor F8
http://www.nyx.net/~lturner/public_html/F8_ins.html - Fairchild Channel F 101: A Beginner's Guide
http://www.racketboy.com/retro/fairchild-channel-f-101-a-beginners-guide - Lowell O. Turner: This old microprocessor
http://www.nyx.net/~lturner/public_html/OldCPU.html - VC&G Interview: Jerry Lawson, Black Video Game Pioneer
http://www.vintagecomputing.com/index.php/archives/545 - Fairchild Channel F
http://en.wikipedia.org/wiki/Fairchild_Channel_F - The Great CPU List Part II: Fairchild F8, Register windows
http://jbayko.sasktelwebsite.net/cpu2.html#Sec2Part2 - Fairchild F8
http://en.wikipedia.org/wiki/Fairchild_F8 - 6+ Nostalgic Emulators For Vintage Video Gaming Enthusiasts (1972–1980)
http://www.makeuseof.com/tag/6-nostalgic-emulators-vintage-video-gaming-enthusiasts-19721980/ - Channel F
http://www.giantbomb.com/channel-f/60–66/ - MESS Wiki
http://www.mess.org/ - O2 Homepage
http://www.the-nextlevel.com/odyssey2/ - Magnavox Odyssey2 (1978), Philips Videopac G7000 / C52 (1979)
http://www.mess.org/sysinfo:odyssey2 - The Video Game Critic's Odyssey 2 Reviews
http://videogamecritic.net/odd.htm - Computer Closet Collection: Magnavox Odyssey2
http://www.computercloset.org/MagnavoxOdyssey2.htm - PHILIPS Videopac C52
http://old-computers.com/museum/computer.asp?c=1060 - O2 Tech. Manual V.1.1 (PDF dokument)
http://www.atarihq.com/danb/files/o2doc.pdf - Magnavox Odyssey2
http://www.game-machines.com/consoles/odyssey2.php - Magnavox Odyssey2 (Wikipedia EN)
http://en.wikipedia.org/wiki/Odyssey2 - Magnavox Odyssey2 Games (Wikipedia EN)
http://en.wikipedia.org/wiki/List_of_Videopac_games - The FPGA Videopac Project
http://www.fpgaarcade.com/videopac.htm - Last minute addition: Odyssey 2 (P824×) VDC chip!
http://ploguechipsounds.blogspot.com/2009/10/last-minute-addition-odyssey-2-p824×.html - Space Invaders (Killer List of Video Games)
http://www.arcade-museum.com/game_detail.php?game_id=9662 - Spy Hunter (Killer List of Video Games)
http://www.arcade-museum.com/game_detail.php?game_id=9742 - Spy Hunter (Wikipedia)
http://en.wikipedia.org/wiki/Spy_Hunter - DP Interviews … Bob Whitehead
http://www.digitpress.com/library/interviews/interview_bob_whitehead.html - Atari Age: Video Chess
http://www.atariage.com/software_page.html?SoftwareID=1429 - Moby Games: Video Chess
http://www.mobygames.com/game/video-chess - Wikipedia: Video Chess
http://en.wikipedia.org/wiki/Video_Chess - The Video Game Critic's Atari 2600 Reviews A
http://videogamecritic.net/2600aa.htm - Classic gaming: Atari 2600 – Bezerk
http://classicgaming.gamespy.com/View.php?view=GameMuseum.Detail&id=13 - Classic gaming: Atari 2600 – E.T. the Extra-Terrestrial
http://classicgaming.gamespy.com/View.php?view=GameMuseum.Detail&id=290 - The Video Game Critic's Reviews With „ET“ Icon
http://videogamecritic.net/icon_ET.htm - Atari 2600 ROMs
http://www.atariage.com/system_items.html?SystemID=2600&ItemTypeID=ROM - Atari 2600 ROMs – #, A through E (582K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_A-E.zip - Atari 2600 ROMs – F through J (298K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_F-J.zip - Atari 2600 ROMs – K through P (432K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_K-P.zip - Atari 2600 ROMs – Q through S (539K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_Q-S.zip - Atari 2600 ROMs – T through Z (260K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_T-Z.zip - Top 10 Best-Selling Atari 2600 Games
http://retro.ign.com/articles/903/903024p1.html - Top 100 Games Hits (past week) Atari 2600 VCS
http://www.atarimania.com/top-atari-atari-2600-vcs-_G2_7.html - Visitor Top 25 Total Downloads
http://www.atarimania.com/pgemainsoft.awp?type=G&system=2 - Atari 2600 FAQ
http://www.atariage.com/2600/faq/index.html - Atari 2600 Consoles and Clones
http://www.atariage.com/2600/archives/consoles.html - Atari 2600 Programming (odkazy)
http://www.atariage.com/2600/programming/index.html - Design case history: the Atari Video Computer System
http://www.atariage.com/2600/archives/design_case.html?SystemID=2600 - Atari 2600 (Wikipedia)
http://en.wikipedia.org/wiki/Atari_2600 - Schémata zapojení Atari 2600 (překresleno)
http://www.atariage.com/2600/archives/schematics_pal/index.html - Schémata zapojení Atari 2600 (skeny původních schémat)
http://www.vintagegamingandmore.com/atari-2600-schematics - Adventure for the Atari 2600 Video Game Console by Warren Robinett
http://www.warrenrobinett.com/adventure/index.html - Mapa hry Adventure
http://www.warrenrobinett.com/adventure/adv-map1.gif - Jay Glenn Miner Interview Pasadena, September 1992
http://www.rabayjr.com/jay_miner.htm - Magnavox and the Odyssey systems
http://www.pong-story.com/odyssey_other.htm - Magnavox Odyssey First home video game console
http://www.pong-story.com/odyssey.htm - The Odyssey in France
http://www.pong-story.com/odypubfr.htm - Magnavox Odyssey at old-computers.org
http://www.old-computers.com/museum/photos.asp?t=1&c=883&st=2 - Magnavox Odyssey Series (Wikipedia)
http://en.wikipedia.org/wiki/Magnavox_Odyssey_Series - MAGNAVOX ODYSSEY (1971)
http://balduin.wordpress.com/2007/10/15/magnavox-odyssey-1971/ - Magnavox Odyssey FAQ
http://www.pong-story.com/o1faq.txt - Richard Hewison – Level 9: Past masters of the adventure game
http://www.sinclairlair.co.uk/level9.htm - Level 9 Computing
http://en.wikipedia.org/wiki/Level9 - Worm in Paradise – Level 9 (CZ recenze)
http://sinclairzxspectrum.cz/software/recenze/worm_in_paradise.php - World of Spectrum: Jewels of Darkness
http://www.worldofspectrum.org/infoseekid.cgi?id=0011293 - World of Spectrum: Hry společnosti Level 9
http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^Level+9+Computing+Ltd$&loadpics=1 - Adventure International
http://en.wikipedia.org/wiki/Adventure_International - Stránky o firmě Infocom a jejích hrách
http://www.csd.uwo.ca/Infocom/ - atari.fandal.cz
http://atari.fandal.cz/games.php - Zork I: The Great Underground Empire (Moby games)
http://www.mobygames.com/game/dos/zork-the-great-underground-empire/reviews/reviewerId,4465/ - Zork I (Wikipedia)
http://en.wikipedia.org/wiki/Zork_I - Zork I Walkthrough
http://www.gamefaqs.com/pc/564446-zork-i/faqs - Zork I: The Great Underground Empire
http://www.csd.uwo.ca/Infocom/zork1.html - Zork II: The Wizard of Frobozz (Moby games)
http://www.mobygames.com/game/dos/zork-ii-the-wizard-of-frobozz - Zork II (Wikipedia)
http://en.wikipedia.org/wiki/Zork_II - Zork II: The Wizard of Frobozz
http://www.csd.uwo.ca/Infocom/zork2.html - Zork III: The Dungeon Master (Moby games)
http://www.mobygames.com/game/zork-iii-the-dungeon-master - Zork III (Wikipedia)
http://en.wikipedia.org/wiki/Zork_III - SAGA – Scott Adams Grand Adventure
http://www.msadams.com/index.htm - Player 4 Stage 1: The Productivity Eaters
http://www.thedoteaters.com/p4_stage1.php - Textovky.cz – Textovkářův ráj
http://www.textovky.cz/ - Scott Adams (game designer, Wikipedia)
http://en.wikipedia.org/wiki/Scott_Adams_(game_designer) - Interview with Scott Adams (Adventure Classic Gaming)
http://www.adventureclassicgaming.com/index.php/site/interviews/129/ - Scott Adams game interpreter
http://www.ifarchive.org/indexes/if-archiveXscott-adamsXinterpreters.html - Ohlédnutí za herní historií: Textovky
http://www.slunecnice.cz/tipy/ohlednuti-za-herni-historii-textovky/ - BASIC Computer Games (published 1978) – Hammurabi
http://atariarchives.org/basicgames/showpage.php?page=78 - Hamurabi – zdrojový kód v BASICu
http://www.dunnington.u-net.com/public/basicgames/HMRABI - Hamurabi (Wikipedia)
http://en.wikipedia.org/wiki/Hamurabi - Hammurabi naprogramovaný v JavaScriptu
http://www.hammurabigame.com/hammurabi-game.php - Empire – hratelné demo (připojení přes telnet)
http://198.212.189.111/ - Empire Classic (video game)
http://en.wikipedia.org/wiki/Empire_Classic_(computer_game) - Wolfpack empire (moderní verze hry Empire)
http://www.wolfpackempire.com/default.htm - FOCAL (programming language, Wikipedia)
http://en.wikipedia.org/wiki/FOCAL_(programming_language) - Forty Years of Lunar Lander
http://technologizer.com/2009/07/19/lunar-lander/ - Category: Timelines of video games (Wikipedia)
http://en.wikipedia.org/wiki/Category:Timelines_of_video_games - Dennis M. Ritchie – home page
http://cm.bell-labs.com/who/dmr/index.html - Space Travel: Exploring the solar system and the PDP-7
http://cm.bell-labs.com/who/dmr/spacetravel.html - Yes, A video game contributed to Unix Development
http://people.fas.harvard.edu/~lib215/reference/history/spacetravel.html - Space Travel (video game)
http://en.wikipedia.org/wiki/Space_Travel_(video_game) - Computer and Video Game History
http://inventors.about.com/library/inventors/blcomputer_videogames.htm - OXO (Wikipedia)
http://en.wikipedia.org/wiki/OXO - Tennis for Two (Wikipedia)
http://en.wikipedia.org/wiki/Tennis_for_Two - Who really invented the video game?
http://www.atarimagazines.com/cva/v1n1/inventedgames.php - The Video Game Revolution
http://www.pbs.org/kcts/videogamerevolution/history/timeline.html - The First Video Game?
http://www.bnl.gov/bnlweb/history/higinbotham.asp - První část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic1.jpg - Druhá část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic2.jpg - MUD (stránka jednoho z tvůrců hry)
http://www.mud.co.uk/richard/mud.htm - MUD1 (Wikipedia)
http://en.wikipedia.org/wiki/MUD1 - Text-based game (Wikipedia)
http://en.wikipedia.org/wiki/Text-based_game - Text mode games
http://www.textmodegames.com/ - Why Text-Mode Games are Cool
http://www.textmodegames.com/articles/why-text-mode-games-are-cool.html - The Dragon Ate My Homework
http://www.wired.com/wired/archive/1.03/muds.ht