Zobrazují se příspěvky se štítkemBonus. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemBonus. Zobrazit všechny příspěvky

sobota 22. listopadu 2025

Bonus 13: Obvody MAS601 vs AY-3-8500 pod detektivní lupou

Obvody MAS601 a AY-3-8500 (Foto: Sean Riddle)

V předchozích dvou článcích od J. Bernáška jsme si podrobně prohlédli unikátní herní konzoli XD-8001 z Piešťanské Tesly, z pohledu uživatele, vnitřku přístroje, i struktury samotných integrovaných obvodů, které celou hru řídí. Tento závěrečný článek uzavře naši dobrodružnou cestu historickou herní technologií několika ukázkami zajímavých nálezů ve struktuře čipů, a konečně i srovnáním kvalit MAS601-603 s podobně zaměřeným, celosvětově dominantním čipem AY-3-8500, jehož zdokumentování se výborně zhostil Cole Johnson. Nutno ale hned zkraje říci, že zde budeme nahlížet do detailů i drobných bolístek obou projektů, které sice přinášejí zajímavý pohled na způsob jejich vzniku a styl práce autorů, nelze je však chápat negativně. Každý projekt je totiž přirozeně různými obtížemi a chybičkami doprovázen, což se s příchodem stále komplikovanějších systémů rozhodně nezlepšuje, a průkopníkům, schopným již před půlstoletím s tehdejšími omezenými možnostmi navrhovat takovéto čipy, patří rozhodně moje poklona.

Srovnání her s MAS60x vs. AY-3-8500 z uživatelského hlediska jsme se již podrobně věnovali v prvním článku. Jak jsme zjistili, jsou víceméně srovnatelné, avšak existují mezi nimi i rozdíly, jako jsou odrazy míče od pálek a středové sítě, větší odlišení fotbalu od ostatních her, rozdíly v podání míče, zhasínání zobrazeného skóre a další detaily. Nemáme také hry se světelnou puškou.

Z historického hlediska je zajímavé, jak ani na západě to neměly první hry úplně snadné. Za slavnějším protějškem Piešťanských čipů totiž stojí až pozoruhodně stejný příběh, který se jen odehrál o nějaké 3 roky dříve, na opačné straně Evropy. Začátek projektu v neoficiální rovině a jeho poměrně dlouhé trvání, návaznost na dřívější čipy pro televizory, rozsah a vývoj detailů hry, nebo i velmi podobné technologie s přidanou nitridovou vrstvou, to vše je oběma projektům společné.

Mezi největší rozdíly obou her patří větší využití analogového principu v Piešťanské verzi, kde vlastně veškerý pohyb vzniká právě analogově. Vzhledem k nižšímu pixelovému rozlišení, danému dostupnou technologií, je to i za cenu více vnějších součástek pochopitelná volba. Obvod AY-3-8500 naproti tomu řeší pohyb míče digitálně, a tedy bez vnějších součástek, pomocí čítače s měnícím se fázovým posunem vůči synchronizaci obrazu. Rozlišení ve vodorovném směru ovšem ani zde není nijak oslnivé - s hodinovým kmitočtem 2MHz dosahuje asi 80 pixelů, což pro míč vyhovuje prakticky jen díky jeho rychlému pohybu. Poloha pálek je i zde analogová (při ovládání potenciometrem by se jiné řešení hledalo jen těžko), trpí stejnými neduhy v podobě skrývání pálek do mantinelů na koncích jejich dráhy, a za technické řešení bych zde přiznal pomyslný bod spíše Piešťanské verzi. Vstup MAS603 totiž z ovladače vzorkuje stabilní napěťovou úroveň (se kterou by se hypoteticky dalo i dále pracovat ve smyslu dalších variant hry), zatímco AY-3-8500 (i další systémy ve světě) nabíjí časovací kondenzátor přímo přes potenciometr v ovladači, čímž se nutně vliv kabeláže propisuje do stability pálek, prakticky bez možnosti nějaké filtrace.

Překvapí také srovnání počtu tranzistorů. AY-3-8500 má sice navíc dvě střelecké hry a digitální pohyb míče, přesto se počet jeho 3213 tranzistorů, ve srovnání s pouhými 1043 tranzistory v trojici MAS601-603, jeví jako nápadně vysoký. Při pohledu na strukturu čipů AY a MAS601 (v minulém článku) lze také vidět jeden nápadný rozdíl: Zatímco v případě MAS601 vidíme krásně vyladěnou strukturu, v níž sousedící části dobře spolupracují na krátké vzdálenosti, čip AY-3-8500 obětuje poměrně velké plochy na vedení četných signálů mezi vzájemně vzdálenými bloky. Struktura jeho logiky je celkově ve srovnání s MAS601 méně optimalizovaná, jak lze vidět například ve funkčně zcela totožném počítání a zobrazování skóre. AY dekóduje každé ze 16 čísel zvlášť, až následně je slučuje, převádí na jakési displejové segmenty, které posléze dekóduje do výsledného rastru, navíc zobrazeného s useknutým pravým okrajem (nejspíš vlivem časového zpoždění při celé té legraci). Potřebuje na to 614 tranzistorů, zatímco MAS601 totéž zvládá s pouhými 342 tranzistory, a ještě díky plnohodnotné bitmapě může jedničku umístit esteticky lépe, na střed políčka.

V podobném duchu se nesou i rozdíly v základu časování obou čipů. AY-3-8500 používá pouhé dva čítače (horizontální a vertikální), implementované v tehdy oblíbeném zjednodušení jako posuvné registry (LFSR). Takový obvod sice nepočítá v klasické binární posloupnosti, je však znatelně jednodušší - zdánlivě tedy AY-3-8500 boduje značným zjednodušením. Jenže ouvej! Zatímco výstupy kaskády různorodých čítačů v MAS601 mohou díky dobrému přizpůsobení celé struktury přímo řídit různé části herní logiky, v případě AY jsou ke zvládnutí výstupu čítačů nutné ještě dekodéry, takže výsledná bilance již tak růžová není. Výhodou AY-3-8500 nicméně zůstává možnost pružnější volby časování jen malými změnami v dekodéru, díky čemuž má výstupní signál AY skutečně správných 312 řádků, a mohly být snadno prováděny i změny v pozdějších revizích obvodu, např. verze s 262 řádky pro export do zemí s 60Hz televizním standardem (AY-3-8500-1).

Obr. 2 - Schéma herní logiky z minulého článku (původně ing. Vladimír Áč, výběr s doplněním)

Obr. 3 - Příklady pravděpodobných změn ve struktuře čipu (levé foto: Sean Riddle)

Nechtěl bych před sobě podobnými zvědavci zatajit ani okrajovější zajímavosti, proto se nyní zkusme chopit oné pomyslné lupy z titulu článku, a podívat se na stopy po různých změnách na čipu MAS601. Jde o červeně zakreslené rozdíly na obrázku 2, který opakuji z minulého článku. Když si zopakujeme v trochu jiné podobě i další obrázek (obr. 3), najde detektivní oko drobné stopy po změnách: Pravděpodobné původní trasy (podél přerušovaných čar) prozrazuje jednou cesta nezvykle přetažená za obrys tranzistoru, podruhé nadbytečné vybočení cesty směrem nahoru, navíc v místech, kde se i schéma zdá být pozměněno. V oválu úplně vpravo je pak nepochybně bývalý vstupní tranzistor (z pinu 10), který byl umrtven odstraněním "modré" vrstvy, a nahoře propojen paralelně k jinému tranzistoru vlevo.

Tuto změnu jsem na schématu naznačil variantou s oddělenými signály podání AS a AS*. V takovém zapojení by bylo možno vstupem přes pin 10 podání pouze zablokovat (pozastavit hru), nikoliv však urychlit - vždy by bylo třeba čekat na pokyn automatiky. Jak jsme však viděli, byl samostatný vstupní tranzistor částečně vymazán, a oba signály propojeny přes minule zmiňovaný odpor do signálu jediného, takže nakonec lze ruční podání tlačítkem provést i okamžitě po gólu. Zdá se však, že to mělo vliv i na další části hry.

V technické zprávě publikované Teslou v roce 1979, tedy při uvedení obvodů MAS60x, najdeme drobnou poznámku: "U her TENIS a FOTBAL není na závadu zvýšení skóre levé strany po ukončení hry o 1 bod (při Us=Uih)." Příčinou je patrně právě výše zmíněná úprava podání. Hra se totiž po dosažení 15 bodů zastaví tím, že signál KH již nedovolí návrat míče na hřiště - ovšem nově přidaná možnost okamžitého ručního podání (úrovní H na pinu 10) reaguje na vznik gólu tak rychle, že dokáže míč vrátit ještě před zastavením hry. Jak ukazuje schéma, levá strana hřiště tomu čelí vypnutím gólové čáry (těžko říci, zda i toto není změna), na straně pravé však stejná úprava chybí (naznačil jsem ve schématu přerušovaně), na čipu by si ostatně její provedení vyžádalo větší zásah. Není-li tedy pravá strana hřiště uzavřena mantinelem (při hrách pro jednoho), může zde teoreticky i po skončení hry ještě padnout poslední neviditelný gól.

V obvodech zvuku lze vidět stopy hned několika dodatečných změn. Zvukové efekty byly zřejmě v původní verzi kratší, odpojením signálu EC od výstupního hradla však byly později z původních 10ms prodlouženy na dvojnásobek. V pravé horní části schématu pak vidíme zcela vyřazenou část obvodu, která pravděpodobně měla po gólech vytvářet zvuk píšťalky rozhodčího. Schéma prozrazuje, že při zastavené hře (SKR) měl být posuvný registr při určitém stavu podání (AS) přes signál IV vždy po dokončení tónu opakovaně znovu naplněn. Tím by se kmitočet 500Hz ozýval přerušovaně v rytmu asi 16Hz (20ms zvuk a 40ms pauza), což mohla být docela zdařilá imitace píšťalky. Vliv signálu AS (podání míče) ovšem není zcela jasný. Dle původního schématu by píšťalka zněla při znovuzahájení hry (od vhození míče do průchodu sítí), stav na čipu však místo toho odpovídá píšťalce hned po gólu, v době čekání na automatické podání (nedořešený pull-down navíc budí dojem dodatečné změny). Po výše zmíněné úpravě vstupu podání by nicméně takto zapojená píšťalka zněla otravně po celou dobu pozastavené hry, což se zdá být důvodem jejího trvalého vypnutí.

V levé dolní části obrázku lze vidět další zvláštnost: Na původním schématu jsou tři vzájemně propojené vstupy logických hradel, které nejsou řízeny žádným obvodem. Vstupy měly být patrně ze schématu vymazány - na skutečném čipu je nenajdeme, zato tam můžeme vidět většinu zrušeného obvodu, který je měl řídit (zakresleno přerušovaně). Mělo se patrně jednat o klopný obvod R-S, aktivovaný signálem nulování (N) a vypínaný průchodem míče sítí (LS). V původně zamýšlené verzi tedy stačil jen krátký stisk tlačítka nulování (bez potřeby dodatečného kondenzátoru) a stav skóre 0:0 byl tímto klopným obvodem přidržen až do průchodu míče sítí - bylo tedy vyloučeno nechtěné připsání gólu navíc v začátku hry, ať už byla (analogová) pozice míče jakákoliv. Navíc bylo skóre 0:0 také zobrazeno na obrazovce. Klopný obvod musel ale zřejmě ustoupit opravě problému s nulováním vedle umístěných čítačů skóre, kde byl potřeba kousek místa navíc. Lze si snadno představit, jak neřešitelné muselo být vsunování nových prvků mezi existující struktury, když byl návrh tvořen na papíře. Začátek hry se tedy pak řešil už jen externími součástkami - přidržení resetu kondenzátorem a nastavení výchozí pozice míče diodami někam ke středu hřiště (kde nechtěný gól nehrozí a je to i uživatelsky hezčí).

Obr. 4 - Srovnání čítačů skóre

Abychom si mohli znázornit, v čem vlastně zmíněná oprava čítačů skóre spočívala, ukážeme si dílčí schéma na úrovni jednotlivých tranzistorů. Třebaže kompletní schéma celého čipu nejspíš nikdy nakresleno nebylo, jednotlivé funkční bloky pochopitelně v originální dokumentaci podrobná schémata mají. Používaly se jako více či méně unifikované stavební kameny - je to vlastně trochu podobné používání knihoven v moderním programování, a přináší to ovšem i podobná úskalí: Moduly mohou být například pro konkrétní účel zbytečně komplikované, nebo zas jejich vzájemné vazby mohou přinášet nečekaná překvapení. Na obrázku 4 vidíme srovnání pěti různých obvodů, které všechny vykonávají tutéž funkci - bistabilní klopný obvod, obvykle tvořící jeden bit binárního čítače.

Vlevo nahoře máme jednoduchou verzi bez nulování, použitou v čítači C obvodu MAS601. Klopný obvod ze dvou tranzistorů uprostřed obrázku lze překlápět spojením jedné či druhé strany do země přes postranní tranzistory. To je řízeno dvojicí navzájem invertovaných hodinových signálů T: Při aktivním signálu /T se stav obou výstupů přes ležaté tranzistory překopíruje na hradla spodních stojatých tranzistorů, které svým sepnutím vytvoří vlastně jejich inverzi. Po vystřídání hodinových signálů (aktivní signál T) pak tato inverze (tam kde jde o úroveň země) skrz tranzistory nad nimi překlopí vlastní klopný obvod. V době této akce jsou již sice hradla spodních tranzistorů odpojena, protože však fungují jako malé kondenzátory, předchozí stav si na okamžik podrží. Obvod je tedy sice statický, avšak v momentě překlápění využívá přechodně i princip dynamické paměti k přidržení předchozího stavu. Hradla tranzistorů se po překlopení sice časem vybijí (a tranzistory uzavřou), ale to ničemu nevadí - svou práci již vykonaly. Dvojice navzájem inverzních výstupů je zpravidla přímo připojena na hodinové vstupy dalšího stupně čítače, který tak počítá 2x pomaleji - vzniká obvyklá vzestupná sekvence binárních čísel.

Chceme-li takový čítač vnějším signálem nulovat (například skóre na začátku hry), můžeme prostě dalším paralelně připojeným tranzistorem klopný obvod překlopit na požadovanou stranu (na obrázcích červeně). Potíž by ovšem nastala v případě, že je během nulování aktivita na hodinových vstupech, případně nejsou ještě zcela vybitá hradla spodních tranzistorů - pak se může stát, že jsou do země propojeny oba výstupy současně, a po konci nulování není tedy výsledný stav jistý (může být i opačný, než si přejeme). Čítač skóre tomu čelí vybitím hradel přídržných tranzistorů v době nulování dalšími přidanými tranzistory do země (zvýrazněno zeleně; důsledně vzato je levý z nich vlastně zbytečný, když nulování beztak levý výstup Q uzemnilo). Takto obvod na čipu MAS601 skutečně vypadá, ale vyskytla se dodatečně ještě další potíž. Pokud jsou totiž v době nulování hodinové vstupy v opačném stavu (aktivní vstup /T, což se u skóre bohužel asi stávalo), pak zeleně zakreslený tranzistor na pravé straně nechtěně uzemní pravý výstup pro změnu skrz otevřený ležatý tranzistor, a máme znovu tentýž problém. Proto byl v prvním stupni čítačů (zřejmě dodatečně) přidán ještě modrý tranzistor, který tuto cestu v kritickém momentu přeruší (další stupně čítače uvedený problém nemají, protože jejich vstupy přicházejí z předchozích, již vynulovaných stupňů). Získání prostoru potřebného pro tuto úpravu zřejmě pohltilo vedle ležící klopný obvod nulování, což je možná trochu škoda, když právě tento obvod původně po dobu nulování držel vstupy čítače v jednoznačném stavu, při němž mohly být spodní (zelené) tranzistory krajního stupně jednoduše odstraněny. Skutečně realizované řešení je ovšem samozřejmě univerzálnější.

Jiným způsobem byl tentýž problém řešen v obvodu automatického servisu (obrázek více vpravo), kde na čipu místo pro přidávání dalších obvodů mimo již existující cesty prostě není. Tyto klopné obvody jsou proto přidaným (modrým) tranzistorem při nulování vlastně uvedeny do nestabilního stavu, kdy jsou oba výstupy bez napětí, na čemž ani aktivita hodinových vstupů nic nezmění. Použití tranzistoru s vyšším odporem (podobného pull-upům) však vlastně tvoří odporový dělič, takže na pravém výstupu /Q přece jen nějaké malé napětí zůstane (byť k otevření tranzistorů nestačí). Po konci nulování si klopný obvod hledá stabilní stav - jakmile jeden z tranzistorů sepne, zablokuje tím druhý. Napětí obou výstupů se vlivem pull-upů vydá směrem k zápornému napájení, jak rychle to dovolí kapacity hradel (naznačené přerušovaně), přičemž výstup /Q má díky zmíněnému předpětí jistý náskok, a nejspíš tedy vyhraje. Jde z pohledu číslicové techniky o trochu nečistý trik, ale je i při prostorovém omezení dostatečně funkční (a koneckonců správná prodleva servisu není, na rozdíl od údaje skóre, pro uživatele až tak zásadní). Vidíme zde zároveň i jedno z úskalí používání typizovaných modulů: Použití plnohodnotného klopného obvodu pro pouhé zaregistrování prvního odrazu míče je vlastně nadbytečné, obvod se dalšími odrazy při delším pozastavení hry totiž dokáže překlápět i zpět do výchozího stavu, což je zde nežádoucí. Méně tranzistorů by zde bylo vlastně zlepšením.

Jak ke stejné funkci přistoupil o několik let dříve na opačné straně Evropy autor čipu AY-3-8500 Duncan Harrower, vidíme pro srovnání v horní části obrázku. Obvod je to robustní, stačí mu jediný hodinový signál, je to nicméně z pohledu optimalizace jakýsi dinosaurus, který spotřeboval zhruba dvojnásobek tranzistorů. Jak tohle monstrum vlastně funguje? Vidíme tři klopné obvody, z nichž horní určuje stav výstupu, a podle něj vždy jeden ze spodních zůstává ve stavu (zleva doprava) L-H. Aktivací hodinového signálu (pravý okraj schématu) jsou pravé strany obou spodních obvodů uzemněny, takže zmíněný obvod se překlopí do stavu H-L, zatímco druhý zaujme přechodně nestabilní stav L-L (protože i jeho levá strana je uzemněna, vlivem obvodu o patro výše). Při skončení hodinového impulsu vyskočí pravá strana ze zmíněného nestabilního stavu na "H" a překlopí tím i horní (výstupní) klopný obvod. Podle předchozího stavu výstupu takto zapůsobí buď jeden, nebo druhý ze spodních obvodů, a výstup tak přejde do stavu opačného. Zajímavostí AY-3-8500 je, že každý stupeň dostává podmíněně hodinový vstup celého čítače - posloupnost binárních čísel tedy není dána zřetězením jednotlivých stupňů (jak bychom asi čekali), ale je explicitně řízena dodatečnými hradly. Druhý stupeň, který je naším příkladem, tedy dostane hodinový impuls, jen pokud již první stupeň dosáhl hodnoty "1" (o to se stará dvojice tranzistorů v pravém dolním rohu). Novější obvod AY-3-8605 (a následovníci), se ovšem již blíží verzi použité ve stejné době i v MAS601 (pravý obrázek): V podstatě celá spodní polovina zastává funkci zmíněných dvou ležatých tranzistorů, jinak je funkce totožná.

Obr. 5 - Srovnání tří verzí oscilátoru

Další detektivní příběh začíná na čipu MAS603, v oblasti generátoru hodinového kmitočtu, kde lze rozeznat poněkud neobvyklou strukturu - jsou zde základy několika nepřipojených tranzistorů a vodivých cest. Světlo do této záhady vnáší původní vývojová dokumentace, z níž čerpá i můj srovnávací obrázek č. 5 (tranzistory jsem pro názornost označil písmeny, jde totiž o tři téměř shodné obvody). Obvod MAS601 si měl původně hodinový kmitočet vytvářet sám, pomocí vlastního vestavěného oscilátoru (na obrázku část "1" vlevo dole), kterému stačil jediný kondenzátor připojený z pinu 16 do země. Měl to být klopný obvod s hysterezí, který zároveň přes tranzistory řídil nabíjení/vybíjení kondenzátoru. Tato koncepce silně připomíná podobný Teslácký obvod MAS1008, navržený pravděpodobně ve stejné době pro zobrazování čísla zvoleného programu na obrazovce televizoru.

V našem případě však tento oscilátor zřejmě nefungoval dobře. Pustím-li se na tenký led dohadů a spekulací, považoval bych za hlavní důvod ne zcela vydařenou optimalizaci ve struktuře čipu: Jeden tranzistor (na obrázku písmeno B) je připojen k zemi skrz další tranzistor (A).

Abych lépe objasnil, co se mi na tom nezdá, připravil jsem si náčrty "1a" (kresleno jen pro názornost, všechny prvky na čipu jsou ve skutečnosti tranzistory). Malý obrázek úplně vlevo ukazuje část číslicového obvodu - dva spínače, které uzemní dva výstupy. Protože spínají vždy společně, lze obvod pro zjednodušení struktury čipu nahradit i verzí znázorněnou více vpravo - druhý spínač je sice zapojen na výstup prvního, funkce se však nemění: Buď jsou oba výstupy uzemněny, nebo rozpojeny. Takovouto optimalizaci na několika místech čipu skutečně najdeme, a byla očividně použita také v zakroužkovaném místě oscilátoru (které se tím i liší od původního schématu). Zde ovšem číhá zrada, neboť tento obvod je vlastně analogový. Nákresy tedy musíme rozšířit o vnitřní odpory tranzistorů a další vazby (verze vpravo od původních malých obrázků). Vidíme tedy vnější časovací kondenzátor, střídavě nabíjený a vybíjený spínači A+D, které zároveň slouží jako odpory k omezení proudu. Celý proces je řízen vstupy E+F, jejichž napětí jsem znázornil dvojicí čar v grafu pod schématy: Při sepnutí kontaktů A+B směřuje napětí směrem k zemi (neboli nahoru), přičemž prvky B+C drží vstup F o něco výše než vstup E. Jakmile i E dosáhne přerušovaně vyznačené hranice, obvod se překlopí, sepne se kontakt D a napětí zamíří dolů k zápornému napájení. Kontakt B je vypnutý, avšak prvek C nadále stahuje vstup F dolů se zhruba stejným rozdílem od vstupu E. Když i F dosáhne k přerušované hranici, dojde opět k překlopení, a celý cyklus se opakuje. My ovšem na čipu MAS601 máme (po optimalizaci) obvod zapojený podle obrázku více vpravo, tedy spínač B je připojený až za spínačem A. Jak vidíme, vstup F je v tomto případě při zapnutých kontaktech A+B spojen se vstupem E, takže je na obou stejné napětí. Po překlopení obvodu a sepnutí kontaktu D jde napětí vstupu E dolů, zatímco vstup F je vlastně odpojený - vlivem kapacity hradel tranzistorů si drží víceméně stejné napětí (znázorněno zvlněnou čárou), dokud napětí vstupu E nepoklesne natolik, aby se otevřel prvek C, a snížením napětí na vstupu F celý obvod překlopil. Kde je problém? Napětí na vstupu F se polovinu cyklu drží prakticky přesně na rozhodující hranici, což je poněkud riskantní stav. Do funkce obvodu pak mohou zasáhnout i malé rozdíly mezi jednotlivými tranzistory, nedokonalá izolace hradel atd., takže bude značně nespolehlivý.

Popsaný původní oscilátor na čipu MAS601 najdeme i dnes, byť jen v roli invertoru externího hodinového signálu, protože k úpravě obvodu již nedošlo. Snad to souvisí s omezenou možností změn, spíše se však nabízí další otázka, a sice přesnost výstupního kmitočtu. Původně zamýšlený kapacitní trimr rozsahem ani přesností nastavení příliš nevyniká, a kmitočet navíc musel značně záviset i na nabíjecím proudu, řízeném jen (teplotně závislým) odporem sepnutých tranzistorů na čipu. Mohlo to takto stačit pro MAS1008, který přebírá synchronizaci z ostatních částí televizoru, a vlastním oscilátorem určuje jen šířku zobrazených číslic, avšak hodinový kmitočet MAS601 řídí tvorbu kompletního videosignálu s poměrně přísnými požadavky na časování. V archivu dochovaný zlepšovací návrh z Piešťanské Tesly napoví, že povolená odchylka kmitočtu 875kHz nebyla o mnoho větší než 1%. Vyzkoušet si to dnes sice nemůžeme, ale domnívám se, že by s tím původní oscilátor měl problémy.

Další verze obvodu byla tedy vytvořena od základu znovu, na čipu MAS603, který disponoval více volnými piny. Zapojení je téměř stejné (výše zmíněná chybička zde ovšem není), otevření budících tranzistorů A+D je však nastavitelné pomocným napětím z odporového trimru na pinu 15. Přibyl samozřejmě i solidní výstupní budič pro spolehlivý přenos signálu do MAS601 (navzdory působení tam zachovaného starého oscilátoru). Tato verze existuje v dochované dokumentaci, a její zbytky také tvoří zmíněná záhadná místa v základu čipů MAS602+603 (v horním rohu obrázku jsem se pokusil nakreslit, jak asi struktura původně mohla vypadat). Kupodivu také ubylo několik modifikovaných obvodů pull-down (ty do jisté míry simulují chování indukčnosti, a tedy zmenšují zatížení/ovlivnění vysokofrekvenčního signálu).

Ani takto zřejmě oscilátor z nějakého důvodu nevyhovoval. Spekuloval bych zde asi právě o nestabilním kmitočtu, protože nabíjecí/vybíjecí proudy byly stále regulované jen prostým tranzistorem, ale mohlo to klidně být i jinak. V každém případě přišla dodatečná změna vrchní propojovací vrstvy čipu (obrázek vpravo dole), která obvod mírně pozměnila do konečné podoby: Zmizely budící tranzistory A+D, které při nabíjení kondenzátoru zastoupil externí nastavitelný odpor, přivedený zpětnou vazbou z plného napětí výstupu. Aby to bylo možné, zmizela i jedna inverze signálu (tranzistory K2+L2), a opuštěný sledovač řídícího napětí se stal prakticky zbytečným "pomocným tranzistorem" (na který dokonce zbyly dva volné piny). Výrobce ovšem zřejmě ani pak stabilitě oscilátoru moc nedůvěřoval, když do boku skříňky XD-8001 udělal díru pro jeho seřizování šroubovákem.

A jak je pro srovnání oscilátor řešen v případě AY-3-8500? V podstatě nijak. Spoléhá se buď na podpůrný obvod AY-3-8515 s krystalem a barevným videovýstupem (pak už ale nejde o systém na jediném čipu), častěji se však stavěl externí oscilátor z diskrétních součástek, který tak trochu ruší výhodu čipu s minimem vnějších prvků. AY potřebuje ve srovnání s trojicí MAS přibližně polovinu vnějších součástek také.

Ani obvod AY-3-8500 zkrátka nebyl dokonalý. Jestliže v případě MAS60x byl korektní start hry dodatečně řešen několika vnějšími diodami, tak i AY má své dodatečné diody, jak pro nulování, tak i kvůli zasekávání zvukových efektů v nejstarší verzi čipu. Zvuky odrazů se dle dostupných nahrávek často také ozývají vícenásobně či přebývají při vhození míče, zprava useknuté zobrazení skóre jsme již zmínili. V pozdější revizi čipu se pak měnil i vzhled a šířka některých čar, výška číslic, nebo velikost hřiště (zatímco čipy MAS se podobných vylepšení nikdy nedočkaly).

Nic to však nemění na faktu, že AY-3-8500 byl prostě ve správný čas na správném místě, a díky tomu celosvětově téměř úplně ovládl svoji generaci televizních her. Tomu se asi žádný jiný čip (ani Piešťanský) již nevyrovnal.


Zdroje:
  • Ing. Vladimír Áč: Technická dokumentace MAS600/601-603 (nepublikovaná pracovní verze, asi 1977-1978)
  • Ing. Vladimír Áč: Rozhovor pro spolek Herní historie (2025)
  • Sean Riddle: Fotodokumentace čipů MAS601-603 (online na https://seanriddle.com/tesla/)
  • Sada integrovaných obvodů ke konstrukci televizních her MAS601, MAS602, MAS603 (Technické zprávy, Tesla Rožnov, 1979)
  • Katalogový list AY-3-8500 (General Instrument)
  • Nathaniel Lockhart: An Interview With Duncan Harrower (“Pong-In-A-Chip” Inventor) (https://www.gamingalexandria.com/wp/2022/01/gilbert-interview/)
  • Cole Johnson: Games and Field Generation in the AY-3-8500 (https://nerdstuffbycole.blogspot.com/2018/09/games-and-field-generation-in-ay-3-8500.html)
  • Cole Johnson: Control and Sync Generation in the AY-3-8500 (https://nerdstuffbycole.blogspot.com/2018/08/control-and-sync-generation-in-ay-3-8500.html)
  • Cole Johnson: Shifting bits: How a PONG chip generates on-screen scores (https://nerdstuffbycole.blogspot.com/2018/09/shifting-bits-how-pong-chip-generates.html)
  • Cole Johnson: Shooter game in silicon: inside the AY-3-8605 chip (https://nerdstuffbycole.blogspot.com/2019/10/shooter-game-in-silicon-inside-ay-3.html)
  • Kalna Stanislav, Dejczö Peter, Uličný Rudolf: Meranie frekvencie riadk. synchropulsov pomocou čítača a tel. prijímača (Přihláška zlepšovacího návrhu, 1979, archiv Trnava)
  • Televizní hry s AY-3-8500 "Pong" (https://www.nostalcomp.cz/ay8500.php)
  • Grant Searle: 70's TV game recreation using an Arduino (Atmel ATmega328/168) processor (http://searle.x10host.com/AVRPong/index.html)

neděle 12. října 2025

Bonus 12: Obvody MAS601-603 pro televizní hry pod mikroskopem

Čip MAS601 po vybalení z černého pouzdra (Foto: Sean Riddle)

V minulém článku od Jiřího Bernáška jsme si představili zvenku i zevnitř televizní hru XD-8001, kterou od roku 1979 vyráběla Piešťanská Tesla. Hra je založena na specializovaných čipech MAS601-603, navržených a vyráběných přímo v Piešťanech, což je v rámci tehdejšího východního bloku herní unikát, a i ve světovém měřítku vzácnost. Tento článek je určen pro obzvláště zvídavého a trpělivého čtenáře, neboť půjdeme ještě hlouběji: Nahlédneme přímo do vnitřní struktury zmíněných čipů a pokusíme se rozluštit jejich fungování. Zkusíme si také odpovědět na otázky ze závěru minulého článku: Proč rozdělení na 3 obvody? Proč napětí -18V? Proč je půlka hry analogová?

Jak se vlastně dá takový integrovaný obvod zkoumat? Ve světě existují machři, kteří umí na "brouka" zaútočit kyselinou, zvolna odkrývat jednotlivé jeho vrstvy a detailně je fotografovat přes mikroskop. A tak zatímco v minulosti se údajně na východě Evropy podobně zkoumaly čipy západního původu, nyní si z iniciativy spolku Herní historie udělaly výlet za oceán naopak čipy MAS60x. Procesu obvykle zvaného "decap" se ujal Sean Riddle a výsledkem jsou snímky všech tří čipů v doslova obrovském rozlišení.

Obr. 2. - Ukázka z fotky struktury čipu (Foto: Sean Riddle)

Abychom porozuměli jejich obsahu, potřebujeme něco málo vědět o struktuře integrovaných obvodů. Jde o komplikovanou technologii (a to ještě není nic proti dnešním čipům), nám ale naštěstí k pochopení funkce obvodu postačí jen několik základních věcí. Na obrázku výše jsou malé ukázky z fotek čipu MAS601, a vidíme, že se poměrně dost podobají struktuře oboustranných plošných spojů. Na pravých výřezech vyniká vrchní propojovací vrstva (kovová), vlevo máme stejná místa po jejím odstranění, takže můžeme lépe sledovat spodní vodivé cesty, vytvořené dopováním v křemíkovém základu čipu. Další vrstva mezi nimi (světlé obdélníčky na levých obrázcích) tvoří polem řízené tranzistory (MOS), které se stávají vodivými působením dostatečného napětí na příslušných hradlech - zde tedy na nich ležící kovové vrstvě. Nesmíme si je ovšem splést se vzájemným propojením jednotlivých vrstev (dnes obvykle zvaným "vias"), které rozeznáváme jako (různobarevně zkorodované) čtverečky uvnitř některých políček. Abych se v tom lépe vyznal, překreslil jsem si celou strukturu různými barvami do jediného obrázku (jen tři relevantní vrstvy, čísla na okraji motivu ovšem prozrazují technologii s nejméně pěti vrstvami).

Obr. 3 - Překreslená struktura MAS602+603 s popsanými prvky

Nyní již můžeme obvod začít převádět do podoby klasického schématu, je to však obvod poněkud nezvyklý - máme zde totiž jen samé tranzistory (plus ojediněle malý kondenzátor, tvořený obdélníčkem dvou vrstev na sobě). Jak bylo v 70. letech obvyklé, jsou všechny tranzistory stejného typu vodivosti, v tomto případě P (otvírají se při záporném napětí hradla, odtud tedy i záporné napájecí napětí celého systému). Zapojení pak odpovídá logice P-MOS, kde většinou různé kombinace tranzistorů (podle logické funkce) spínají výstup do země, a pokud sepnuty nejsou, objeví se na výstupu napětí přivedené přes odpor (pull-up, nebo zde vzhledem k zápornému napětí možná spíše pull-down). Vznikal tím sice jistý trvalý odběr proudu a možná ne úplně ideální rychlost spínání, bylo však jednodušší tuto verzi vyrobit. (Později přišla technologie CMOS, která kombinuje oba druhy tranzistorů P+N k aktivnímu spínání signálů v obou polaritách.)

Zbývá ještě vysvětlit, jak se mezi "samými tranzistory" najednou objevil odpor: Ten pojem jsem použil jen pro názornost, ve skutečnosti je to také tranzistor. Podstatná je zde totiž i velikost jednotlivých tranzistorů, které mají v sepnutém stavu jen omezenou vodivost, takže se vlastně chovají jako malé odpory. Čím menší, případně tenčí a delší, takový tranzistor je, tím větší má i odpor. Tranzistory tvořící zmíněný pull-down tedy mají podobu tenkých "nudlí" (levý dolní roh obr. 2). V překreslených schématech jsem si v tomto ohledu vypomohl různými variantami schématické značky (více velikostí, s kroužkem nebo bez), pro nejslabší variantu jsem přímo od autora čipů převzal velice názornou kombinaci značek odporu a tranzistoru, v případě MAS602+603 jsem si ještě pro lepší představu různé velikosti popsal písmeny A-E.

Podotýkám, že na čipech existují i struktury, které nemám zcela vysvětlené. Odhaduji, že zdánlivě neúplné tranzistory či malé kondenzátory poblíž vývodů budou nějakou variantou ochrany proti statické elektřině (v případě MAS602+603 jsem toto naznačil i ve schématu), proč se ale vyskytují i uvnitř struktury MAS601 (napočítal jsem takových 39) a naopak chybí u některých pinů (1, 2 a 16), zůstává tak trochu záhadou. Pro funkci obvodu však význam nemají (ani sám autor čipů je v dokumentaci neuvádí), takže je budu dále již ignorovat.

Obr. 4 - Podrobné vnitřní zapojení MAS602+3

Obr. 5 - Blokové schéma MAS602+3

Pojďme tedy nahlédnout do struktury a fungování jednotlivých obvodů. Začneme s MAS602+603, které pracují analogovým způsobem, jsou se svými 75 resp. 80 tranzistory z celé trojice těmi jednoduššími a prohlédneme si je oba společně. Obrázky ukazují pro oba čipy překreslenou strukturu (obr. 3, zde jsem si pro srovnání se schématem tranzistory nově očísloval), podrobné schéma zapojení (obr. 4) a zjednodušené blokové schéma (obr. 5), které nám poslouží k vysvětlení jejich funkce. Jak vidíme, jedná se o dva téměř shodné čipy, které mají dokonce tytéž podkladové struktury se základy tranzistorů, a jen v poslední propojovací vrstvě jsou drobné rozdíly. Odlišným propojením stejných tranzistorů na stejných čipech tak nakonec vznikají dva mírně odlišné obvody. Každý z nich má navíc dvě víceméně stejné poloviny, takže vlastně stojíme před čtveřicí shodných obvodů. Jejich výstupem jsou impulsy, které tvoří vertikální či horizontální složku videosignálu pohyblivých objektů ve hře.

Poloha objektu je řízena velikostí záporného napětí na pinu 3 nebo 13 (říkejme tomu třeba "3/13"), které řídí první monostabilní klopný obvod (MKO1). Příchod obrazového synchronizačního impulsu na pinu 5/11 pomocí tranzistoru T21/T56 aktivuje sledovač T20/T55, který pak vstupní analogovou úroveň z pinu 3/13 vlastně překopíruje (navzorkuje) na kondenzátor připojený k pinu 4/12. Tyto tranzistory jsou dosti robustní (největší na celém čipu), takže zvládnou nabití kondenzátoru na potřebné napětí i během poměrně krátkého synchronizačního pulsu (a bez problému překonají slabší proudy přitékající z dalších částí obvodu). Výstup klopného obvodu je tím na úrovni L a napětí na kondenzátoru postupně klesá, působením zdroje konstantního proudu T27/T62. Ten je poměrně kvalitní (pracuje při konstantním napětí, regulovaném dle referenčního zdroje T63+64), aby se rychlost pohybu objektů v různých částech obrazovky neměnila. Když (záporné) napětí na kondenzátoru dostatečně poklesne, objeví se na výstupu klopného obvodu úroveň H, která signalizuje oblast pro zobrazení objektu. Tranzistor T28/65 zároveň napětí kondenzátoru dorazí až k nule, aby se obvod až do příštího synchronizačního pulsu již nemohl znovu překlopit.

Druhý klopný obvod (MKO2) odměřuje pevně nastavenou velikost zobrazeného objektu. Úroveň L z předchozího obvodu MKO1 zpočátku přes tranzistor T34/T70 udržuje kondenzátor na pinu 6/10 ve vybitém stavu, a zároveň výstup obvodu MKO2 na úrovni H. V okamžiku, kdy má začít zobrazení objektu, přijde z MKO1 úroveň H, která kondenzátor i výstup obvodu odblokuje. Na výstupu se objeví úroveň L, daná zatím téměř nulovým napětím na kondenzátoru, který se však přes zvenku připojený odpor zvolna nabíjí. Po uplynutí doby, která je potřebná k zobrazení správné velikosti objektu, dosáhne (záporné) napětí na kondenzátoru logickou úroveň L, čímž výstup obvodu opět přejde na klidovou úroveň H. V tomto stavu již setrvá po celý zbytek obrazového snímku či řádku, další růst napětí na kondenzátoru se však časem zastaví vlivem omezovače T38+39/T74+75. Velikost odporů a kondenzátorů na pinech 6/10 tak určuje velikost zobrazovaných objektů (délku pálek a šířku/výšku míče - teoreticky by ji bylo možné vhodně zapojenými spínači i měnit, což ale XD-8001 zabudované nemá). Vytvořený signál je výstupním obvodem předán jako logická úroveň přes pin 7/9 do čipu MAS601.

V případě obvodu MAS603 vytvářejí popsané obvody vertikální složku zobrazovaných pálek obou hráčů. Jsou proto řízeny napětím přivedeným přímo z potenciometrů v ovladačích, spouštěny vertikální synchronizací obrazu, a jejich výstupy jsou navzájem nezávislé. Naproti tomu obvod MAS602 vytváří obě složky zobrazení míče, část na pinech 3-6 má tedy na starosti vertikální složku (a je spouštěna vertikální synchronizací), zatímco část na pinech 10-13 obsluhuje obdobně složku horizontální. Výstupy obou částí jsou zde rovnou i sloučeny, takže na pinu 9 máme hotový signál pro zobrazení míče (aktivní v úrovni L přesně v časech, kdy je na obrazovce vykreslována oblast míče). K horizontální složce je ovšem přidán navíc ještě signál horizontální synchronizace, takže se vlastně zobrazují míče dva - jeden na správném místě obrazovky, druhý skrytě při zpětném běhu paprsku (mezi obrazovými řádky). Druhý "míč" samozřejmě na obrazovce není vidět (při zpětném běhu je obraz zatemněný), jeho přítomnost však pomáhá správnému rozběhu hry po gólech. Pokud totiž některý z hráčů gól schytá a míč odletí mimo obrazovku, není až do nového podání vůbec zobrazován, přičemž by se mohl jako neviditelný duch dostat daleko za horní či spodní okraj hřiště, odkud by se již nevrátil. Obvod MAS601 ovšem vidí vždy alespoň ten druhý "míč", takže může správně řešit jeho odrazy od okrajů hřiště. Míč pak vlastně v autu skáče pořád nahoru a dolů, a při podání se na hřiště vrací v místě, kde se zrovna nacházel.

Řídící analogové napětí na pinu 3/13 vzniká v případě MAS602 pomocí integrátoru zapojeného na pinech 1-3/13-15. Směr pohybu míče je řízen logickými úrovněmi přivedenými z obvodu MAS601, protože je však napětí úrovně L (-18V) pro integrátor příliš velké (a potenciálně i nestabilní), je nejdřív zmenšeno v sérii zapojeným vnějším odporem a omezovačem na pinu 1/15 (tyto prvky sice pro názornost kreslím jako zenerovy diody, jde však opět jen o několik tranzistorů, kde hranici tvoří napětí potřebné k jejich otevření). Samotný integrátor řídí napětí na pinu 3/13 tak, aby na pinu 2/14 byla úroveň stále stejná. Díky tomu přes vnější odpory od pinu 1/15 přitéká na pin 2/14 vždy stejně velký proud (ovšem s různou polaritou podle směru pohybu), který lineárně nabíjí/vybíjí kondenzátor zapojený mezi piny 2-3/14-13. Právě ten je jakousi "analogovou pamětí", jejíž napětí určuje polohu míče na obrazovce. Velikost odporů a kondenzátoru na pinech 1-3/13-15 tedy řídí rychlost pohybu míče při hře.

Provedení integrátorů na čipu je velmi jednoduché, jde prakticky jen o jediný tranzistor. Ten dokáže napětí výstupu stahovat pouze směrem k nule, takže pro opačný směr (při zavřeném tranzistoru) je zvenku připojen dodatečný odpor. Na čipu sice existuje i jakýsi pull-down, pravděpodobně dodatečně přidaný, ten je ale nejspíš příliš slabý. Omezovací obvod T14+T17-19/T50-T53 pak tvoří doraz, který napětí (a tím i poloha míče) nemůže překročit - význam to má především v horizontálním směru, kde tento obvod určuje vzdálenost míče za okrajem obrazovky po gólu.

Druhý výstup (pin 7), který v případě MAS602 vlastně není potřeba, je využit ke sloučení horizontální a vertikální synchronizace pro televizor. Obvod MAS603 obsahuje dále generátor hodinového kmitočtu, ke kterému se vrátím až v příštím článku v souvislosti se změnami, kterými prošel, a také takzvaný "pomocný tranzistor", což je prostě jeden ze zbývajících tranzistorů společné základní struktury obou čipů, vyvedený na zbylé piny 14-15 (v přístroji není k ničemu použit). Zbylých tranzistorů je ovšem na čipech více, protože všechny tranzistory čipu MAS602 existují i na čipu MAS603 a naopak, jakožto vedlejší produkty zjednodušeného návrhu. Nadbytečné tranzistory většinou nejsou nikam připojeny, mnohé ani nemají hradlo, nebo jsou trvale zavřené a do funkce obvodu nijak nezasahují. Pro zajímavost jsem pár takových v překresleném schématu ponechal.

Obr. 6 - Překreslená struktura MAS601

Obr. 7 - Pro zvědavé: Překreslená struktura MAS601 s vyznačenými signály a změnami

Nyní se dostáváme teprve k té pravé výzvě: Pojďme se podívat na obvod MAS601, který je skutečným srdcem i mozkem celé hry. Je to na svou dobu poměrně dost komplexní logický obvod složený z 963 tranzistorů, takže se raději nebudeme topit v jakémsi nikdy asi nenakresleném obřím schématu celého čipu, ale soustředíme se na jednotlivé funkční celky, z nichž se skládá. I tento obvod jsem si podle fotografií překreslil (obr. 6) a postupně označil jednotlivé jeho části. (Pro hloubavější povahy jsou na druhé verzi - obr. 7 - vyznačeny i jednotlivé signály dle níže uvedených schémat.)

Další analýzu mi naštěstí velice ulehčil sám autor čipů ing. Vladimír Áč, když pro spolek Herní historie naskenoval původní vývojová schémata (ještě pod pracovním označením MAS600). Jedná se o původně neveřejnou pracovní verzi, od které tedy nemůžeme čekat stoprocentní přesnost, poskytuje však zajímavý obrázek o funkci i vývoji čipů. Pro názornost jsem do obrázků červeně doplnil drobné poznámky a upřesnění dle skutečného stavu, z nichž některé vysvětlím až v závěrečném článku této minisérie.

V dalším textu se tedy již přidržíme originální dokumentace, přičemž se pokusím být laskavému čtenáři průvodcem po uvedených schématech. Hned zkraje si ovšem musíme objasnit poměrně nezvyklou definici logických úrovní: Vzhledem k napájecímu napětí -18V je sice v katalogu logická úroveň "L" uváděna jako záporné napětí, zatímco "H" odpovídá potenciálu země, použitá logika ovšem chápe přítomnost napětí (byť záporného) jako jedničku, takže jde vlastně o jistý druh negativní logiky. Nechtěl jsem originální dokumentaci nějak přepisovat, takže si zapamatujme: -18V = úroveň "L" = logická "1"(!), Zem = úroveň "H" = logická "0". Také logické funkce byly ve schématech označeny jinak, než jsme dnes zvyklí - řeckými písmeny Σ (OR) a Π (AND). Protože značení některých signálů a jejich polarit není ani potom zcela zřejmé, připravil jsem navíc i malý rejstřík signálů a jejich významů (příloha).

Obr. 8 - Blokové schéma MAS601 (ing. Vladimír Áč, doplněno)

Obr. 9 - Nákresy her (ing. Vladimír Áč)

Takto připraveni se již můžeme bez obav vrhnout do hlubin MAS601. Dobrým začátkem bude původní blokové schéma celého obvodu (obr. 8), které dosti přesně odráží i skutečné uspořádání čipu. Základem celého systému je kaskáda čítačů označených A-E, které počítají periody hodinového signálu 875kHz, a tím vlastně i polohu právě zobrazovaného místa na televizní obrazovce (na vstupu je navíc ještě zakreslen původně plánovaný taktovací generátor). Použity jsou čítače různého typu. A a B jsou dynamické posuvné registry s 8 resp. 7 stupni, které počítají pixely ve vodorovném směru posouváním jediného aktivního bitu přes jednotlivé pozice, C je klasický tříbitový binární čítač, který počítá do 8 televizních řádků (což je výška jednoho pixelu v motivu hry) a prodloužením o další 2 bity poskytuje i kmitočty asi 1kHz a 500Hz pro zvuk. D je opět posuvný registr (tentokrát ovšem statický) s 5 stupni pro 5 pixelů nad sebou (což je šikovné zejména při zobrazení skóre), a nakonec E v podobě tříbitového binárního čítače pokrývá počtem 8 takových pixelových skupin celou výšku obrazovky. Na konci celé kaskády pak máme snímkový kmitočet přibližně 50Hz.

Podíváme-li se znovu na známé nákresy jednotlivých her (obr. 9), můžeme na okraji vidět měřítko přesně odpovídající této vnitřní struktuře: Čísla na vodorovné ose odpovídají výstupům čítače B, jemnější dělení jsou stupně čítače A, čísla ve svislém směru odpovídají čítači E, jemnější dílky pak D (a jejich velikost je určena čítačem C, který dává i půlpixelové otvory v síti). Na nákresech jsou také pojmenovány jednotlivé části zobrazeného motivu, včetně řádkových a snímkových synchronizačních impulsů.

Nabízí se otázka proč tolik čítačů, proč posuvné registry, proč tady dynamické a tam zas statické. Při bližším pohledu na celou strukturu jde ale z hlediska optimalizace o pochopitelnou volbu. Dosti úsporně a bez dodatečné logiky se zde dosahuje potřebných nekulatých dělících poměrů (56 hodinových cyklů na řádek a 320 řádků na snímek, což se mimochodem úplně nekryje s 312/313 řádky dle televizní normy, analogovým televizorům to ale nevadilo). Výstupy posuvných registrů přitom již prakticky nepotřebují další dekodéry - pro výběr horizontální pozice je třeba zkombinovat nejvýše dva signály z čítačů B+A (skupina a jemný dílek), vertikálně pak obdobně 4 signály z čítačů E+D. Binární čítače jsou použity jen v místech, kde to vede k úspoře místa na čipu. Statické verze čítačů jsou založeny na klopných obvodech s dvojicemi tranzistorů, což je nezbytné pro práci s nízkými kmitočty, naopak dynamická verze založená na chvilkovém podržení informace v podobě náboje kondenzátoru (tvořeného plochou hradla jediného tranzistoru) je výrazně jednodušší, a vlastně i rychlejší - to se hodí především u čítačů A a B, kde se pracuje s nejkratšími impulsy. Právě zde, a také na dalších místech, kudy nejkratší impulsy procházejí, najdeme i modifikované zapojení prvků pull-down pro lepší přenos vysokých kmitočtů - tyto úpravy prozrazují, jak byl vlastně kmitočet 875kHz na tehdejší technologii vysoký.

Tady se mimoděk dotýkáme otázek ze závěru minulého článku. Architektura celého systému dává mnohem větší smysl, jakmile si uvědomíme limity Tesly v sedmdesátých letech, kdy výroba unipolárních integrovaných obvodů teprve začínala. Zde použitá technologie MNOS stála někde u jejích začátků, byla původně zvolena především kvůli spolehlivosti při ne zcela ideální čistotě výroby, a v době vzniku MAS60x byla ještě prakticky jedinou volbou. Pro starší aplikace např. v ovládání televizorů (MAS560 atd.) se hodila dobře, ani poměrně velké záporné napájecí napětí nijak nevadilo, pro televizní hru však přece jen už byla určitým limitem rychlost (podle slov ing. Áče byl mezní kmitočet jen několik MHz). Hodinový kmitočet 875kHz použitý pro MAS601 poskytuje ve vodorovném směru rozlišení 39 pixelů, které by pro digitálně řešený pohyb míče zřejmě nebylo dostatečné. Uvážím-li navíc rozsah logiky potřebné pro takové řešení, a také velikost čipu, který jako by na úvodním obrázku již přetékal z podložky v pouzdře, nedivím se, že v části systému prozatím převážily výhody řešení typického pro starší analogové hry. S několika vnějšími součástkami a mnohem jednodušším obvodem se tak dosahuje skutečně plynulého, libovolně nastavitelného pohybu.

Podobné jsou i důvody k rozdělení systému na tři čipy. Tesla tehdy neuměla vyrobit pouzdra s více než 16 vývody, což by snad mohlo stačit pro plně digitální hru, zvolené kombinované řešení však muselo být právě kvůli obsazení pinů rozděleno. Má to pochopitelně i své nevýhody, zejména že obvod MAS601 nemá téměř vůbec pod kontrolou polohu míče, z čehož plynou některá netypická řešení při startu hry a návratu míče na hřiště po gólu.

Obr. 10 - Logika hry na schématech (původně ing. Vladimír Áč, výběr s doplněním)

Vraťme se však k vnitřní struktuře obvodu MAS601. Na obrázek 10 jsem z původní dokumentace vybral obvody, které tvoří jádro samotné hry. Na čipu tyto obvody najdeme vpravo od středu v dolní i horní části, a také částečně u pravého okraje. V levé horní části obrázku 10 tak můžeme vidět, jak v závislosti na zvolené hře (signály A+B, při fotbalu také C) a horizontální pozici, dané výstupy z čítačů A a B, vzniká obrazový signál jednotlivých prvků. Oba hráči (LHV/PHV) mají výšku omezenou signálem z MAS603 (LH/PH), při fotbalu se opakují na dvou místech, pravý hráč se objeví pouze při hrách pro dva. Postranní mantinely (LMV/PMV) jsou při fotbalu přerušené otvorem branek dle signálu K, při hrách pro jednoho se pravý zobrazuje vždy, zatímco středová síť (SCV) je zobrazena mimo Peloty vždy, přerušovaná signálem CO. Tyto signály jsou, spolu s horní/dolní krajovou čárou (HC/DC) a zobrazením míče (ZL) na levé straně schématu sloučeny do videosignálu hry (VH).

Více vpravo vznikají ještě další, neviditelné signály: Levá a pravá "gólová čára" (LC/PC) na hranici hřiště, informace o průchodu míče středovou sítí (LS), horizontální synchronizace pro televizor (SR) a zatemnění herního motivu v jejím okolí (MOH). Jednoduchým přidáním signálu konce hry (KH) je toto zatemnění použito i k vytvoření efektu ukončené hry, přičemž se zároveň vypíná alespoň levá gólová čára, aby míč nemohl skrytě střílet další góly (o tom ještě i příště). O něco níže jsou také připraveny pomocné signály pro detekci kolizí - souhrn levých a pravých překážek pro odraz míče (LMH/SS), aktivní síť mimo fotbalu (SV), a modifikace zvuku při odrazu od hráče (ZVO).

Obvody v levé dolní části obrázku řeší chování míče, jehož videosignál (L) je přiveden z obvodu MAS602. Trojice hradel nalevo detekuje souběh signálu (kolizi) míče s levými či pravými překážkami, a také vůči středové síti - tam ovšem jen s omezenou pravděpodobností, když síť (sama o sobě již děravá) je ještě znovu proděravěna přidáním signálu 1k. Signál CV při fotbalu potlačuje v začátku hry odrazy i zobrazení (ZL) míče, dokud je na obrazovce skóre (SKR) - tato podmínka má obecně význam pozastavené hry, a protože skóre zhasíná až při průchodu míče sítí, vzniká vlastně při fotbalu efekt výkopu ze středu hřiště.

Vlevo dole vidíme dvě hradla, která dávají pokyn ke změně vertikálního směru míče (SLS) při jeho kontaktu s překážkami (ODLL) nebo sítí, a klopný obvod s výstupem horizontálního směru míče (HPL), který se překlápí přímo odrazem od levých či pravých překážek (díky tomuto rozlišení nemůže dojít k odrazu míče od zadní strany pálky či vnějšku mantinelu, může však být ovlivněna jeho dráha). Více vpravo se detekují góly, neboli doteky míče (L) s neviditelnými gólovými čárami (LC/PC). Každá strana má svůj klopný obvod aktivovaný gólem, jehož výstupy (SL/SP) vedou do čítačů skóre (v navzájem inverzních dvojicích, kvůli vnitřnímu zapojení čítačů), a jsou vynulovány až při průchodu míče středovou sítí po znovuzahájení hry - díky tomuto přidržení se nemůže nikdy gól započítat opakovaně, i pokud se míč gólové čáry dotýká po dobu více televizních snímků, nebo při návratu na hřiště. Stav po gólu (na kterékoliv straně) také zapíná zobrazení skóre (SKR) a povoluje nové podání míče - tedy překlopení jeho směru zpět od příslušné strany hřiště vstupem AS, pokud tedy není hra ještě ukončena (KH). (Ke zrušené části obvodu se vrátím až příště.)

Pravá horní část obrázku ukazuje tvorbu vodorovných čar, resp. zpracování informace o vertikální pozici na obrazovce z čítačů D a E. Vzniká zde tedy vertikální synchronizace pro televizor (SO) a zatemnění obrazu (MOV) mezi spodní hranicí hřiště (HO) a horním mantinelem (HC) v novém snímku, při fotbalu (C) se tvoří otvory fotbalových branek (K) pomocí klopného obvodu překlápěného na horním a spodním (PO/LO) okraji branky, dále mantinely na horní a spodní straně hřiště (HC/DC), a řádek pro zobrazení skóre (SR).

Hradla uprostřed detekují kontakt míče (L) s horním či dolním mantinelem, aby po přidání již hotového signálu SLS vznikl při odrazu od hráče či čáry pokyn (OHC) ke zvukovému efektu. Vpravo pak máme klopný obvod typu D, který řídí vertikální směr míče (VPL). Ten je přímo nastavován či nulován odrazy míče (L) od horního či spodního mantinelu (HC/DC), v případě odrazů od svislých překážek (SLS) pak přijímá směr připravený hradly vpravo nahoře: Při fotbalu (C) závisí odraz na poloze míče v horní či spodní polovině hřiště (podle výstupu čítače řádků EC), v ostatních případech je řízen náhodou, kterou zastupuje signál asi 4kHz (C1).

Automatické podání míče řídí obvod v pravém dolním rohu obrázku. Klopné obvody KO5+KO6 jsou během hry (signál SKR ve stavu L) trvale nulovány, po gólu však registrují změny svislého směru míče (OH). Po zaznamenání obou hran (vzestupné i sestupné, tedy odraz míče na horní i spodní straně hřiště) přejde signál AS (přes "tranzistorový odpor") do stavu H a míč se vrací na hřiště. To ovšem platí jen při odpojeném pinu 10, přes který lze signál AS přímo ovládat i vnějším obvodem.

Pod polovinou pravé části obrázku najdeme obvod zvuku. Obvody KO1+KO2 tvoří posuvný registr se dvěma stupni, krokovaný v rytmu asi 20ms. Odraz míče (OHC) vloží do prvního stupně jedničkový bit, který až posunutím do druhého stupně zapne přes výstup /Q zvukový efekt - jeho délka je tak bez ohledu na herní situaci vždy stejná. Výšku tónu přepíná klopný obvod vlevo dole, který se při odrazu od pálky (signály ZVO+OHC) překlápí do varianty 1kHz (HR), po skončení zvuku se pak (výstupem z posuvného registru) nuluje vždy do výchozí varianty 500Hz (M).

U spodního okraje obrázku najdeme ještě výstupní obvod videosignálu (M). Jak vidíme, existují zde dvě samostatné cesty pro zobrazení skóre a obrazce hry, každá s vlastním výstupním tranzistorem (takže by za jistých okolností mohl být míč hypoteticky při přeletu přes číslice skóre odlišen jasnější bílou barvou, což mi však nepřipadá moc reálné). Vidíme také, jak je v úsporně navržené logice MAS601 řešeno odstranění nežádoucích částí obrazu centrálně na jediném místě: Videosignál hry (VH) je mimo hřiště zhasínán zatemňovacími signály MOH/MOV, zobrazení skóre (MC) je aktivní pouze v příslušných dvou místech (B3/B4) správného řádku (SR), a jen při zastavené hře (SKR).

Obr. 11 - Zobrazování skóre (původně ing. Vladimír Áč, výběr s doplněním)

Tím jsme již prošli prakticky celou hru, takže zbývá jen počítání a zobrazování skóre - to najdeme na obrázku 11. Vlevo nahoře vidíme dva čtyřbitové čítače pro skóre obou hráčů, nulované při startu hry (nulování skutečně jen maže skóre, žádná další část čipu nulovat nepotřebuje). Nenechme se zmást připojením levého signálu (SL) k pravému čítači a naopak, jde prostě jen o to, že gól na levé straně znamená bod pro pravého hráče a naopak. První řada tranzistorů pod čítači tvoří logické hradlo, které vyhodnocuje konec hry: Jakmile některý čítač dosáhne 15 bodů (binárně samé jedničky), nebude sepnutý žádný z příslušných čtyř tranzistorů, čímž se signál KH odpojí od země, a díky pull-downu ohlásí záporným napětím konec hry. Další dvě řady tranzistorů tvoří multiplexer, který v závislosti na právě vykreslovaném místě obrazovky (B4) pouští do další části střídavě oba údaje, aby se stejnými obvody zobrazilo levé i pravé skóre.

Zbytek levé části obrázku tvoří dekodér, který na základě binárního údaje skóre spouští zobrazení jednotlivých číslic. Do sloupců jsou všechny bity přivedeny přímo i v inverzi, přičemž v každém řádku jsou čtyři tranzistory uspořádané tak, aby zůstaly všechny zavřené jen v jediné správné kombinaci vstupních signálů - pak se na výstupu příslušného řádku objeví záporné napětí. V našem případě je ovšem dekodér chytře optimalizovaný tím, že jsou řádky reprezentující stejnou koncovou číslici (například 14 a 4) zřetězeny, takže reagují na dvě binární kombinace jediným výstupem. Dodatečná jednička reprezentující desítku se rozeznává zvlášť v posledních dvou řádcích (zapojených odlišně). Dekodér bohužel nebyl v této pracovní verzi nakreslen úplně přehledně, pro názornost jsem tedy zdánlivě stejná kolečka červeně odlišil a šipkami vlevo zdůraznil výstupy, které pokračují do druhé části obrázku.

Tam horní část tvoří paměť ROM s fontem, kde každý řádek odpovídá jedné číslici a obsahuje tři skupiny pixelů pro tři sloupce fontu, každý v pořadí zdola nahoru. Stav svislých vodičů (podle sepnutí tranzistorů v právě aktivním řádku) tedy odpovídá všem pixelům číslice, z nichž multiplexery v dolní části podle právě zobrazované pozice na obrazovce vybírají nejdřív příslušný řádek (podle stavu čítače D), a následně dole i sloupec (podle čítače A). Při signálu A3 se zobrazují desítky přímo z dekodéru (přidaná jednička nemá žádný font, jde jen o plný sloupec), signál A4 nezobrazuje nic - to je mezera mezi číslicemi. Výstupní signál MC takto vlastně pomyslně maluje stále se opakující čísla po celé ploše obrazovky, pouze dvě z nich jsou však výstupním obvodem modulace propuštěny do televizoru.

I v závěru tohoto až nepříjemně dlouhého článku zůstává několik otázek. Při své dobrodružné cestě po čipu MAS601 jsem našel stopy několika změn, které jsem sice na obrázcích červeně označil, ale prozatím blíže neobjasnil. Nabízí se také srovnání silných i slabších stránek Piešťanské hry s obdobným čipem západního původu, kterým je samozřejmě celosvětově dominantní typ AY-3-8500. Těmto otázkám se tedy bude věnovat můj příští, závěrečný článek.


Příloha: 
Seznam signálů na čipu MAS601 a na všech vývodech. Značení je dle původní dokumentace, proto jsou některé názvy ponechány i duplicitní, či vlivem překlepů nejednotné. Čísla stránek se vztahují k původní naskenované dokumentaci, která byla zdrojem.

Signál(y) Stránka Aktivní v Funkce
0-97, 6LČíslice při zobrazení skóre
/107, 6HDesítka při zobrazení skóre
10-156LLokálně pomocné řádky dekodéru pro číslice nad 10
1k8LSignál 976.6Hz pro zvuk
5008LSignál 488.3Hz pro zvuk
7V8LSignál zvuku do výstupního budiče
A, B1, 4LVolba hry HH=Pelota, HL=Trénink tenis, LH=Tenis, LL=Fotbal (piny 3+4)
/A,/B4H(negace: LL=Pelota, LH=Trénink tenis, HL=Tenis, HH=Fotbal)
A, B, C, D6L=1Právě zobrazované skóre (4 bity, střídavě levé a pravé)
A0-A72, 4, 7HVýstupy čítače (posuvného registru) A - pixelové sloupce (8 fází v cyklu 109.375kHz)
AF1, AF22H->L,L->HHodiny čítače (posuvného registru) A, v protifázi
AS (=S)1, 8H=servVstup/výstup automatického servisu (pin 10)
B0-B62,4,6,7HVýstupy čítače (posuvného registru) B - skupiny po 8 pixelových sloupcích (7 fází v cyklu 15.625kHz)
C4, 5LZvolen Fotbal (odvozeno z A+B pro zobrazení branek a jiné odrazy míče)
C13, 5HVýstup čítače C (3.906kHz) jako 1-bit generátor náhody
CG9, 11analogČasovací kondenzátor hodin (MAS603)
CH, CV, CL, CP9, 10, 11analogKondenzátory polohy zobrazení míče a hráčů (MAS602, MAS603)
CO1,3,4,5,8LVýstup čítače C (1.953kHz), 8 TV řádků na pixel (pro čítač D)
CV4LVypnutí zobrazení míče a jeho odrazů před prvním dosažením středu ve Fotbalu
D0 - D41, 3, 7LVýstupy čítače (posuvného registru) D - pixelové řádky (5 fází v cyklu 390.625Hz)
/D0-/D43, 5H(negace)
D, H5LLokálně vstup a hodiny klopného obvodu D
DC4, 5LVideosignál dolní čáry (mantinelu)
EA, EB, EC1,3,5,8LVýstupy čítače E (skupiny po 5 pixelových řádcích, celý cyklus = snímek 48.83Hz)
/EA,/EB,/EC3, 5, 8H(negace)
HC4, 5LVideosignál horní čáry (mantinelu)
HO5LZačátek zatemnění kolem snímkové synchronizace
HPL1, 4, 10L=vlevoSměr míče vodorovně, výstup pro MAS602 (pin 7)
HR8LZvuk odrazu od hráče
I, O2, 3, 8LLokálně vstupy/výstupy posuvných registrů
IIH, IIV9, 10analogVstupy integrátorů míče (MAS602)
IL, IP9, 11analogŘídící napětí polohy hráčů (MAS603)
IV8LVstup posuvného registru časování zvuku (vyřazený uzemněním)
K4, 5HModifikace bočních mantinelů pro Fotbal (brankové otvory)
KH4, 6LKonec hry (po dosažení skóre 15 bodů)
L1,4,9,10L"Lopta", signál míče z MAS602 (pin 11)
/L4, 5H(negace)
LL4LOdraz míče od levé strany
LC4LLevá gólová čára (neviditelná)
LH1,4,9,11LSignál levého hráče z MAS603 (pin 5)
LHV4LVideosignál levého hráče
LMH (=LHM)4HLevý mantinel či hráč (pro odrazy míče vpravo)
LMV4LVideosignál levého mantinelu
LO5LKonec brankového otvoru v bočním mantinelu
LS4LMíč prochází středovou čárou či sítí (i pokud není zobrazena)
M1, 7L=svítíVýstup videosignálu (bez synchronizace) (pin 14)
M8LZvuk odrazu od mantinelu (a zrušené píšťalky)
MC7HPředběžný signál (modulace) číslic skóre
MCC7L=svítíHotový příspěvek číslic do videosignálu (včetně zhasínání atd.)
MOH7L=svítíHotový příspěvek hry do videosignálu (včetně zatemnění)
MOH4, 7L=zhas.Zatemnění kolem řádkové synchronizace, nebo při konci hry
MOV5, 7L=zhas.Zatemnění kolem snímkové synchronizace
N1, 6H=nulovatVstup nulování (pin 2)
/N6L=nulovat(negace)
N8H/LLokálně nastavení/nulování klopných obvodů
OBH, OBV9, 10analogOmezení rychlosti míče (MAS602)
OH5, 8L=dolůAktuální směr míče vertikálně
OHC5, 8HOdraz míče (všechny druhy)
OIH, OIV9, 10analogVýstupy integrátorů míče (MAS602)
OD4LOdraz míče od pravé strany
ODLL4HOdraz míče od levé nebo pravé strany
PB2H->LVstup čítače (posuvného registru) B (= výstup A7)
PC4LPravá gólová čára (neviditelná)
PH1,4,9,11LSignál pravého hráče z MAS603 (pin 6)
PHV4LVideosignál pravého hráče
PMV4LVideosignál pravého mantinelu
PO5LZačátek brankového otvoru v bočním mantinelu
Q, /Q, V, /V2,3,5,8L/HLokálně výstupy klopných obvodů
Q3, Q48LLokálně výstupy registrující odrazy míče nahoře/dole
RLH,RLV,RHL,RHP9, 10, 11analogKondenzátory rozměru míče a hráčů (MAS602, MAS603)
SCV4LVideosignál sítě či středové čáry
SKR (=SKO)4, 7, 8HZapnout zobrazení skóre
SL, /SL4, 6L/HZvýšit skóre po gólu vlevo
SLS4, 5LZměna směru míče svisle
SO (=SO1, SO2)1,5,9,10,11HSnímkové synchr. pulsy - výstup (pin 13, propojení MAS602, MAS603)
SOV5LSnímkové synchronizační pulsy
SP, /SP4, 6L/HZvýšit skóre po gólu vpravo
SR5, 7H=správnýŘádek pro zobrazení skóre (předvýběr oblasti vertikálně)
SR1,4,9,10HŘádkové synchronizační pulsy - výstup (pin 1)
SRV4HŘádkové synchronizační pulsy
SS4HPravý mantinel či hráč (pro odrazy míče vpravo)
SV2, 3LLokálně zpětná vazba posuvného registru (restart kruhového čítače)
SV4HSíť (nikoliv fotbalová čára) pro ovlivnění dráhy míče
SYN (=STN)9, 10HSloučený výstup synchronizace (MAS602, "STN" je zkomolenina)
T,/T,F1,F2,Φ1,Φ22, 3, 8L/HLokálně hodinové vstupy klopných obvodů
T1,2,9,11H->LVstup hodinového kmitočtu 875kHz (pin 16, propojení z MAS603)
-UG9, 11analogZrušeno: Bývalé řídící napětí oscilátoru (MAS603)
V, /V(viz Q, /Q)
VH1, 4, 7H=svítíVideosignál hry (vše mimo skóre)
VPL1, 5, 10L=nahoruSměr míče svisle, výstup pro MAS602 (pin 12)
ZL4LVideosignál míče (včetně zhasínání při Fotbalu)
ZV (=ZVUK)1, 8HVýstup zvuku (pin 9)
ZVO4, 8HLevý či pravý hráč (jiný zvuk odrazu)

Zdroje:
  • Sean Riddle: Fotodokumentace čipů MAS601-603 (online na https://seanriddle.com/tesla/)
  • Ing. Vladimír Áč: Technická dokumentace MAS600/601-603 (nepublikovaná pracovní verze, asi 1977-1978)
  • Ing. Vladimír Áč: Rozhovor pro spolek Herní historie (2025)
  • Sada integrovaných obvodů ke konstrukci televizních her MAS601, MAS602, MAS603 (Technické zprávy, Tesla Rožnov, 1979)
  • Videozáznam hry (online na https://www.youtube.com/watch?v=80nm31Uwf0g)

sobota 27. září 2025

Bonus 11: Televizní hra Tesla XD-8001 pod drobnohledem

TV hra XD-8001 (Foto: Herní archiv)

Herní konzole ve stylu známého Pongu byly fenoménem 70. let nejen na západě, ale zhruba od přelomu 1976-1977 začaly různé jejich verze vznikat i v tehdejším Československu. Říkalo se jim tu zpravidla Televizní tenis, či prostě Televizní hra, a my se nyní v trojdílné minisérii článků od našeho nepravidelného přispěvatele Jiřího Bernáška (další najdete pod štítkem "bonus") zaměříme po technické stránce na jeden unikát mezi nimi.

Podobné herní přístroje se totiž v zásadě dělí na dvě skupiny: Starší verze z diskrétních součástek (nebo jen základní TTL logiky) mívaly jen úplně základní funkcionalitu (jedinou hru s dvěma pálkami a míčkem), přičemž ale byly značně komplikované a drahé. Pokročilejší modely mohly nabídnout řadu vylepšení (více variant hry, mantinely, počítání skóre, zvuk) díky použití specializovaných čipů, kterých ovšem celosvětově nevzniklo mnoho. Dominuje mezi nimi úspěšný AY-3-8500 (1976) britské firmy General Instrument, jehož konkurenty ovšem spočítáme na prstech jedné ruky. Vznikaly pak různé jeho klony či následovníci, byly zde proprietární čipy několika výrobců (např. Atari), pořád ale jde jen o několik málo systémů. V zemích východního bloku se pro tuto generaci televizních her používaly téměř výhradně importované čipy AY-3-8500, případně jejich sovětský klon К145ИК17. To však neplatí pro Teslu Piešťany, která zřejmě jako jediná ve východním bloku (a jedna z mála celosvětově) pro svoji hru XD-8001 vyvinula vlastní specializované čipy, označené MAS601603. Ty se v tuzemsku skutečně prodávaly, jak v hotovém přístroji tak i samostatně, informací o nich je však dodnes k dispozici poměrně málo.

Osobně patřím mezi zvědavce, v nichž strohé údaje z dobových katalogů Tesly budí po léta nezodpovězené otázky. V posledních letech lze ve světě pozorovat určitou vlnu zájmu o historii her v rovině obecné i technické (a dokonce i akademické), vznikají projekty ke zdokumentování či rovnou emulaci různých systémů a čipů, jako již zmíněný AY-3-8500 s následovníky, dobové mikroprocesory a čipy z herních konzolí či mikropočítačů, někde dokonce vznikají novodobé repliky historicky existujících nebo i jen plánovaných zařízení - ať už z důvodů nostalgických, historicky dokumentačních, nebo prostě k nahrazení postupně selhávající staré techniky. I já jsem se v tomto inspiroval, a rozhodl jsem se pro podobné zvědavce, a možná i jako ukázku tuzemské technologie 70. let, trochu poodhalit roušku tajemství kolem zmíněných televizních her z Piešťan.

Ještě zmíním, že tyto články mohly vzniknout jen díky aktivitě spolku Herní historie, fotografické dokumentaci čipů kterou pořídil Sean Riddle, a v neposlední řadě i archivním materiálům a dalším informacím, které zmíněnému spolku poskytl sám autor Piešťanských čipů, ing. Vladimír Áč.

Historie vzniku Piešťanských her se poněkud vymyká zaměření tohoto článku, a je zároveň i předmětem dalšího bádání, nicméně samotné čipy byly vytvořeny již v průběhu roku 1977. Původně neoficiální projekt nakonec vyústil ve výrobu čipů i finálního přístroje, který stejně jako dva předchozí typy navrhoval ing. Ján Hladík. Výroba se ovšem rozběhla až po dlouhých dvou letech, v roce 1979.

Čtyři hry konzole XD-8001 (katalog Tesla)

Přístroj XD-8001 nabízí čtyři navzájem podobné hry, jak ukazují obrázky známé z dobových katalogů Tesly: Je zde klasický televizní Tenis pro dva hráče, kteří své pálky ovládají pomocí potenciometrů, dále varianta Trénink tenis pro jednoho hráče, který hraje proti stěně. Třetí možností je Fotbal s částečnými mantinely, které na koncích hřiště vymezují branky, a s dvěma pálkami pro každého hráče (brankář a útočník na soupeřově polovině hřiště), tato hra ovšem připomíná spíše hokej, protože míč (či puk) se od mantinelů odráží zpět na hřiště. Poslední hrou je Pelota, která se podobá hře Trénink Tenis - jde opět o hru jednoho hráče proti stěně, tentokrát ovšem bez středové sítě. Hra také průběžně počítá a zobrazuje skóre obou hráčů až do 15 bodů. Tlačítky lze přepínat dvě rychlosti pohybu míče, a také ruční nebo automatické podání.

Srovnáme-li hru s nejrozšířenější zahraniční verzí, tedy zmíněným čipem AY-3-8500, může se na první pohled jevit velmi podobná. Při bližším pohledu však najdeme řadu rozdílů. Západní verze má namísto Peloty hru Squash, kde hrají oba hráči na stejné straně hřiště, umí při hře jednoho hráče skrýt druhé skóre, navíc jsou zde ještě dvě hry se světelnou puškou. Naproti tomu XD-8001 vytváří větší rozdíl mezi hrami Tenis a Fotbal. Odrazy míče od hráčů při fotbalu míří vždy ke středu hřiště (z horní poloviny dolů a naopak), při ostatních hrách jsou náhodné, což vytváří moment překvapení. Naproti tomu s AY závisí odraz míče na tom, jakou částí pálky byl odražen (což by při koncepci tuzemské verze nebylo možné realizovat). V obou verzích se může úhel letu míče změnit i pokud pálkou prochází ze zadní strany (kdy se ovšem neodráží). Další rozdíl nastává po gólu, kdy v Piešťanské verzi míč začíná při fotbalu výkopem zhruba ze středu hřiště, a jen v ostatních hrách se servíruje klasicky od základní čáry. Liší se i směr míče, který v případě AY letí znovu stejným směrem, jakým padl gól, zatímco XD-8001 míč posílá zpět od vstřelené branky - v případě fotbalu je to realističtější, zatímco relativně složitou logiku tenisových podání nerespektuje žádný z obou čipů. Automatické podání je vázané na dva odrazy míče od horního či spodního mantinelu, čímž vedle určité prodlevy vzniká i prakticky diagonální výkop z rohu resp. středu hřiště, zatímco u AY míč prostě jen proletí skrz okraje na opačnou stranu obrazovky. Dalším významným rozdílem je funkce středové sítě či čáry, která je v případě AY jen estetická, bez vlivu na pohyb míče, zatímco u nás se při obou variantách tenisu může s určitou pravděpodobností změnit směr míče při průchodu touto sítí. Naproti tomu při fotbalu se i zde jedná jen o středovou čáru, která míč neovlivňuje (Pelota nemá středovou čáru vůbec). Zatímco AY umí změnit rychlost a úhel odrazů míče, a také délku pálek obou hráčů, Piešťanská verze má osazený jen přepínač dvou rychlostí (nutno však podotknout, že i ostatní zmíněné parametry by bylo možno vhodnou úpravou zapojení plynule měnit, případně by bylo možné omezit i rychlost pohybu hráčů). V neposlední řadě v tuzemské verzi nastává skutečný konec hry, kdy se po dosažení 15 bodů zobrazí výsledné skóre na jinak prázdné obrazovce, zatímco u AY-3-8500 v podstatě jen přestanou fungovat pálky a počítání skóre, aniž by se jinak na hře cokoliv změnilo.

Další rozdíly jsou spíše estetické. Nejvíce viditelným je asi hra proti stěně směrem doprava (v případě AY je to naopak), a také zobrazení skóre, které se v Piešťanské verzi objevuje jen po vstřelení gólu, po znovuzahájení hry pak s jistým zpožděním zhasíná. V tomto (i v dalších bodech) se hra poněkud podobá verzi publikované dříve v Amatérském Radiu, souvisí to však především s logikou servírování a počítání skóre. Liší se i čáry po okrajích hřiště, které jsou na rozdíl od AY silné a nepřerušované, s typickými přesahy na levé a pravé straně (kde je totiž součástí motivu ještě neviditelná "gólová čára"), jiná je i středová síť (podle verze AY). Zvukové efekty jsou prakticky stejné, jen vstřelené góly AY indikuje pípnutím, zatímco v případě MAS601 se původně asi zamýšlená píšťalka do definitivní verze nedostala. Při čekání na restart hry po gólu je slyšet skákání míče mezi horním a spodním okrajem hřiště, přestože je míč mimo obrazovku.

Zkusme si nyní stručně připomenout princip této generace televizních her. Dnes jsme zvyklí na počítačové systémy, které sestaví prakticky libovolný obraz jako bitmapu v určité části paměti, kterou pak příslušným hardwarem promítnou na obrazovku. Herní konzole 70. let však vzhledem k omezeným technickým možnostem tuto abstrakci zpravidla nepoužívaly a propojovaly princip hry přímo s tvorbou analogového videosignálu. Tehdy běžný analogový televizor kreslil obraz po pixelových řádcích (jako se čte stránka textu), kde světlost jednotlivých míst byla určena v reálném čase napětím vstupního signálu. Přidané impulsy opačné polarity označují začátky jednotlivých řádků a snímků - a to už je vlastně všechno, co jednoduchá konzole potřebovala. Jde tedy jen o černobílý obraz bez prokládaných půlsnímků, zvuku či dalších doplňků. Jednotlivé herní elementy (pálky, míč, mantinely atd.) byly vytvářeny pevně propojenou logikou v podobě vhodně časovaných impulsů, synchronních s vykreslováním obrazu na televizoru. V nejjednodušší verzi k tomu stačilo několik monostabilních klopných obvodů: Jak televizor postupně kreslí obrázek shora dolů, nabíjí se kondenzátor, který podle natočení potenciometru v ovladači dříve nebo později dosáhne k rozhodující napěťové hranici. Tím vznikne impuls, který na obrazovku nakreslí světlý flíček - například pálku. Sloučením impulsů různých prvků hry vzniká přímo hotový videosignál pro televizor, zatímco porovnáním jejich souběhu v čase se zas detekují kolize: Má-li televizor kreslit současně obrázek míče i pálky, je jasné, že jsme se trefili a míč se má odrazit (překlopí se klopný obvod, který řídí směr míče). Takovýto pevně zadrátovaný princip je sice pro funkci hry značně omezující a nepružný, funguje však i s velmi skromnou technikou, bez jakýchkoliv pixelů či bajtů paměti.

Nejstarší konzole Magnavox Odyssey a její klony si díky tomu vystačily se skromným počtem diskrétních tranzistorů, i mnohé pozdější systémy však převzaly tentýž princip. Zásadní změnu u zahraničních výrobců dokonce nepřinesl ani příchod mikroprocesorů, které zpočátku jen nahradily řídící logiku hry, zatímco videosignál nadále vznikal v reálném čase kombinací dílčích signálů jednotlivých komponent hry, více či méně vylepšených. Dělá to tak mikrokontrolérem řízený herní čip MOS7600, a pěkným příkladem je i firma Atari, kde srovnatelný princip od prvního Pongu, přes mikroprocesorem řízenou konzoli Atari 2600, přetrval až do počítačů řady XL/XE v 80. letech (mají ještě i detekci kolizí či snímání polohy potenciometrů a světelné pušky, třebaže přijaly také řadu rysů z větších počítačů). V tuzemsku sice příklad podobného mezistupně mezi televizní hrou a počítačem patrně nemáme, Piešťanské televizní hry však uvedený princip pochopitelně používaly. Byla to v době jejich vzniku obvyklá, a vlastně i jediná použitelná možnost.

Deska v XD-8001 (Foto: Herní archiv)

Pojďme nyní nahlédnout do vnitřností konzole Tesla XD-8001. Po rozšroubování skříňky se kolegům ze spolku Herní historie ukázala deska osázená dobovými součástkami, s trojicí obvodů MAS601-603. Na dalších obrázcích jsem si desku překreslil a převedl na podrobné schéma, tak jak byla hra v Tesle skutečně vyráběna. Na rozdíl od poměrně známého katalogového zapojení obvodů MAS zde vidíme skutečně celý přístroj, najdeme však i další rozdíly (ty uvádím v závorkách a vrátím se k nim později). Na schématu vidíme stabilizovaný napájecí zdroj -18V, jednoduchý obvod zvuku s malým reproduktorem přímo v přístroji, v dolní části pak ovladače připojené tehdy běžnými konektory DIN a tlačítka pro nastavení hry. Překvapí velmi skromné blokování napájecího napětí jen jediným elektrolytickým kondenzátorem (pro vyšší kmitočty málo účinným a podle číslování možná dokonce přidaným až dodatečně).

Dále schéma odhaluje modulátor pro výstup do televizoru, reálně ukrytý v plechové krabičce. V jednom z dřívějších článků jsem komentoval, jak návody publikované v dobových časopisech tuto část obvodu málo vysvětlují, coby věc při tehdy ještě silné radioamatérské tradici víceméně zřejmou, pokusím se tedy neopakovat tutéž chybu a funkci obvodu trochu objasnit. Analogové televizní vysílání kóduje obrazový signál asi nejjednodušším způsobem, kterým je amplitudová modulace: Vysokofrekvenční signál (alias nosná vlna) mění v závislosti na přenášeném obsahu amplitudu (prakticky tedy napětí). Pravá část obvodu (s tranzistorem zapojeným se společnou bází) je tedy v podstatě oscilátor, který vyrábí onen vysokofrekvenční průběh. Modulaci zajišťuje dioda V16, která sinusovku přivádí do společného bodu s přenášeným videosignálem - zákonitě tam však protlačí jen tu část průběhu, která má nižší napětí než aktuální stav signálu, čímž právě dochází ke kýžené změně amplitudy podle přenášeného obsahu. Kondenzátor C19 pak na výstup propustí jen onu měnící se vysokofrekvenční část, která u takto jednoduchého obvodu nebude nijak zvlášť kvalitní (pěkná sinusovka odříznutím části průběhu nevzniká), ale televizor tomu rozumět bude a všechny případné hříchy zůstanou ukryty v oné plechové krabičce a stíněném kablíku. Velmi podobné obvody najdeme ostatně ve většině dobových návodů na televizní hry (v případě doporučeného zapojení západního AY-3-8500 ovšem s alibistickou poznámkou, že zapojení slouží pouze ke zkoušení v laboratoři).

Rozložení součástek na desce

Podrobné schéma XD-8001 napříč vývojovými verzemi

Výstupní kablík je osazen poměrně nezvykle provedenou sestavou dvou různých konektorů, protože v tehdejší době přicházely teprve na trh první televizory s koaxiálním konektorem 75Ω pro anténu, zatímco starší přístroje ještě používaly ploché symetrické konektory 300Ω. Redukce určená k připojení starších kabelů k novějším televizorům je zde použita vlastně naopak, jako koaxiální konektor a zároveň odbočka krátkým kablíkem do starší ploché verze.

Jádrem vlastní hry je obvod MAS601, řízený hodinovým kmitočtem 875kHz přivedeným z MAS603 na vstup T. MAS601 vytváří řádkové i snímkové synchronizační impulsy (výstupy SR a SO), a dává dohromady kompletní obraz a zvuk hry (výstupy M a ZV). Sám ovšem digitálně (pomocí různých čítačů) generuje pouze nepohyblivé obrazce, tedy mantinely, středovou síť a skóre. Na tvorbě pohyblivých částí hry spolupracují zbylé dva obvody, které na rozdíl od MAS601 používají analogový princip obvyklý u starších konzolí. MAS603 řeší obě pálky, jejichž poloha je řízena napětím z ovladačů na vstupech IL/IP. Podle jeho velikosti je v každém snímku pomocí kondenzátorů na pinech CL/CP a RHL/RHP vytvořen v potřebném odstupu od snímkového synchronizačního pulsu (vstupy SO1/SO2) impuls na výstupy LH/PH. Ten je pak přiveden do MAS601, kde omezuje zobrazenou pálku ve svislém směru.

Obvod MAS602 se stará o polohu i zobrazení míče. Směr pohybu je řízen výstupy HPL/VPL z MAS601, jejichž signál (po omezení velikosti vlivem pinů OBH/OBV a nastavitelnými odpory) zvolna nabíjí nebo vybíjí kondenzátor mezi piny IIH/OIH resp. IIV/OIV - jde v podstatě o analogové integrátory, jejichž výstupní napětí pak řídí polohu zobrazeného míče stejně, jako v případě MAS603. Obě složky (horizontální i vertikální) jsou v případě míče sloučeny do jediného výstupu L (označení vychází ze slovenského slova "lopta"), který je prakticky hotovým videosignálem míče. Přidán je však ještě druhý, neviditelný míč, v době zatemnění na začátku obrazového řádku, který slouží obvodu MAS601 k bezpečnému udržení míče na hřišti po gólu, kdy se viditelný míč nezobrazuje. Výstup SYN slučuje pro televizor oba synchronizační impulsy, které vzhledem k odlišné napěťové úrovni nemohou být do videosignálu přimíchány přímo v MAS601.

Průběh hry je dále řízen vstupy A/B/N (výběr hry a nulování skóre), podání po gólu pak poměrně netypickým vstupem S - ten při úrovni -18V drží hru zastavenou, zatímco při úrovni země vpustí míč do hry - to se provádí tlačítkem na ovladači, které je připojeno přes derivační článek, omezující i delší stisk na krátký impuls. Pokud je ovšem vstup S (nezvykle zapojeným spínačem) odpojen, převezme řízení automatika, připojená k tomuto vstupu z vnitřku MAS601 přes odpor, a míč je pak vpuštěn do hry po dvou odrazech od horního/spodního okraje hřiště.

Každý projekt pochopitelně při svém vzniku prochází řadou změn, jaké se nevyhnuly ani hře XD-8001. Různé verze tištěných materiálů ovšem nevznikaly v tomtéž okamžiku, takže se stalo, že zapojení uvedené dle dobové zvyklosti v uživatelském návodu se úplně neshoduje s verzí otištěnou v katalogu součástek, a místy ani s reálně vyráběnými přístroji. Poskytuje nám to zajímavý pohled na vznik celého zařízení a odhaluje, které jeho části se měnily. Drobnější odchylky jsem se snažil v překresleném schématu zachytit pomocí různých druhů závorek, jsou zde ovšem i větší změny, které si můžeme nejlépe ilustrovat na obvodu pro nulování hry do výchozího stavu.

Srovnání obvodů začátku hry

V levé horní části obrázku vidíme ještě poměrně jednoduchou verzi, jaká byla přiložena k vývojové dokumentaci samotných čipů MAS60x. Nulovací tlačítko zde jedním kontaktem maže skóre, druhým po dobu stisku jen posouvá míč směrem vpravo, nejspíš aby se při prvním zapnutí bezpečně dostal z okraje na hřiště. Konkrétnější výchozí poloha míče zde nebyla vůbec řešena, přičemž ale obvod MAS601 v rané verzi sám blokoval nežádoucí góly v začátku hry, až do prvního průchodu míče přes středovou čáru. Odlišné hodnoty dalších součástek naznačují o něco rychlejší pohyb míče a zvláštní je i zmenšené napětí na vstupech pro výběr hry. Tato verze také nepočítala s ručním podáním pomocí tlačítka v ovladači (mimo záběr obrázku).

Verze otištěná v katalogu součástek (vpravo nahoře) již nepočítá s počáteční necitlivostí hry vůči nežádoucím gólům, která byla zřejmě mezitím zrušena. Dostatečné trvání nulovacího signálu je zde zajištěno dodatečným kondenzátorem, zvolna nabíjeným přes pull-up vestavěný v MAS601. Signál rozvětvený přes diody také zavírá (tentokrát již oba) integrátory polohy míče, jejichž kondenzátory jsou navíc přes další diody nabíjeny na předem určené napětí z pomocného zdroje, takže pohyb míče vždy začne zhruba ze středu hřiště. To je uživatelsky hezčí, a také bezpečnější zahájení hry.

Nahlédneme-li do návodu k použití XD-8001 (vlevo dole), vidíme důraznější působení na integrátory, a také zřetelně větší opatrnost v zacházení se vstupy obvodu MAS601, kde přibyly sériové odpory (připomínající spíše styl zacházení s bipolárními obvody, u obvodů MOS diskutabilní), tuto opatrnost prozrazuje i použití tehdy relativně drahých soklů. Druhý kondenzátor také prodlužuje zadávání výchozí polohy míče, která se nyní nastavuje trimrem - to bylo sice vytištěno v návodu, vyrobené desky s plošnými spoji však ještě počítaly na místě trimru jen se sériovým odporem, a také přidaný kondenzátor odlišným typem a vysokým číslem vypadá, jako kdyby na desku původně nepatřil. Objevily se také spínače pro volbu rychlosti míče. I pak ještě došlo k dalším změnám, protože ve skutečném přístroji (vpravo dole) je trimr výchozí polohy míče montovaný mimo původně zamýšlený obrazec desky již tak, že vůbec nepoužívá pomocný zdroj -5V. Zmenšily se i poněkud přestřelené sériové odpory ve vstupech pro volbu hry, a rychlejší pohyb míče byl v průběhu výroby poněkud zpomalen zvětšením dvou odporů.

Další změny bychom našli v sortimentu seřizovacích trimrů a jiných drobnostech, nebo v napájecím zdroji, který byl v nejstarší verzi výrazně odlišný, a vzhledem k poněkud předimenzovanému výstupnímu napětí transformátoru patrně také zápasil s přehříváním - na desce najdeme dva omezovací sériové odpory, z nichž jeden byl montovaný dodatečně, mimo zamýšlený obrazec desky. Sehnat v tehdejší době vyhovující transformátor ovšem asi nebylo nic snadného. Stejně tak se pro přístroj nepodařilo zajistit ani vlastní skříňku, takže byl nakonec navržen do krabičky převzaté z výroby stolních kalkulaček v Tesle Bratislava, pouzdra ovladačů pocházejí z dálkového ovládání hraček, a například hotové cívky nebyly tehdy k dispozici vlastně vůbec, takže v dokumentaci najdeme namísto hodnot indukčnosti spíše návody na jejich ruční výrobu, což bylo tehdy obvyklé.

Tolik tedy krátký pohled na proměny přístroje, které zanechaly svůj otisk v dobové dokumentaci. Nebyl to ve své době vůbec přístroj špatný, je jen škoda, že podobně jako řada dalších československých výrobků přišel se zpožděním několika let za světovým trendem, a prodával se za tehdy nepříjemně vysokou cenu (1610 Kčs).

Závěrem článku přiznávám, že zbývá ještě řada dalších otázek: Proč to rozdělení na 3 obvody? Proč napětí -18V? Proč je půlka hry v podstatě analogová? Jak vlastně logika hry funguje? Tyto a další otázky si nechám na další dva články, v nichž se pokusím ponořit ještě hlouběji - přímo do vnitřní struktury integrovaných obvodů MAS601-603.

Zdroje:
  • Fotodokumentace XD-8001 (Herní archiv)
  • Sken plošného spoje (online na http://www.litildivil.cz/sbirka/ruzne/TV_hra_tesla.htm)
  • Sada integrovaných obvodů ke konstrukci televizních her MAS601, MAS602, MAS603 (Technické zprávy, Tesla Rožnov, 1979)
  • Televízna hra XD 8001 - návod na obsluhu (Tesla Rožnov, n.p., závod Piešťany, pravděpodobně 1979)
  • Ing. Vladimír Áč: Rozhovor pro spolek Herní historie (2025)
  • Ing. Vladimír Áč: Technická dokumentace MAS600/601-603 (nepublikovaná pracovní verze, asi 1977-1978)
  • Katalogový list AY-3-8500 (General Instrument)
  • Pong Story (https://www.pong-story.com/gi.htm)
  • Videozáznam hry (online na https://www.youtube.com/watch?v=80nm31Uwf0g)