Mikropočítač ZX Spectrum patří k nejrozšířenějším mikropočítačům ve své
cenové kategorii. K jeho rozšíření přispěla především nízká cena a rozsáhlé
programové vybavení. Základem počítače je mikroprocesor Z80A a uživatelský
obvod ULA. Je dodáván ve dvojím provedení z hlediska paměťové kapacity: se 16
kB nebo se 48 kB RAM. Obě verze obsahují 16 kB ROM, která však ve skutečnosti
využívá necelých 15 kB. Všechna vnitřní I/O zařízení jsou vybírána jedinou
adresovou linkou AO. Vnější l/O zařízení jsou pak vybírána jednotlivými linkami
A2 až A4 (lineární výběr). Mikropočítač je vybaven klávesnicí velikosti 4x10
pryžových tlačítek se zdvihem asi 3 mm, jejímž základem je membránová
klávesnice. Stisk klávesy je navíc indikován signálem z akustického měniče.
Funkce tohoto měniče je zajištěna programově. Jako zobrazovací jednotku lze
použít běžný TV přijímač. V roli barevné zobrazovací jednotky může být použit
pouze BTV schopný příjmu signálu kódovaného v soustavě PAL. Mikropočítač
zobrazuje 256 x 192 bodů uspořádaných do 32 x 24 polí velikosti 8x8 bodu. Každý
bod z tohoto pole je hardwarově zařazen do jedné ze dvou skupin tzv.
Klávesnice je tvořena soustavou 8x5 kontaktů zapojených do matice tak, že vstupem této matice je horní část adresové sběrnice. Výstup je připojen přes třístavové oddělovače (zahrnuje ULA) k datové sběrnici. Všechny vstupy třístavového oddělovače jsou udržovány skupinou odporů na úrovni H. Funkce je následující: stiskem klávesy se přenese logická úroveň z adresového vodiče na datový vodič. Z toho plyne, že je indikovatelný stisk pouze na adresové lince s logickou úrovní L. Proti kolizi úrovní na adresové sběrnici vlivem současného stisku více kláves na jedné datové lince je vstup ošetřen diodami. Čte se instrukcí IN A, (C) (schopné číst z 64 I/O zařízení), která je obsažena v obslužném programu přerušení, volaném vždy s doběhem snímku. Postupně se přivádí úroveň L na každou z osmi adresových linek A8 až A15 a přečtou se odpovídající data. Klávesnice je vybírána adresovou linkou AO a čtena na bitech DO až D4. Akustický měnič generuje signál v době, kdy je na vstup EAR přiveden signál z vnějšku, popřípadě sleduje úroveň na bitu D4 I/O zařízení adresovaného linkou AO. Klidovou úrovní je úroveň H. čtení z magnetofonu se realizuje čtením bitu D6. Ukládá se na magnetofon zápisem odpovídající úrovně na bit D3, obojí při výběru l/O zařízení adresovaného bitem AO.
Jak již bylo zmíněno: v poli 8x8 bodů lze rozeznávat dvě skupiny bodů s barevným odstínem. Informace o tomto poli jsou uloženy v devíti bajtech ve VIDEORAM. Osm z devíti zmíněných bajtů nesou informaci o tom, co které ze dvou zmíněných skupin ten který bod patří. Informace
0 jednom řádku tohoto pole ve smyslu výše uvedené věty je uložena právě v jednom bajtu. Jednotlivé bity devátého bajtu (tzv. atributu) nesou následující informaci:
Celý tento soubor je uložen ve specifickém sledu, o jehož smyslu bude v dalším ještě zmínka, od adresy 4000h; tzn. od prvé adresy bloku VIDEORAM. Délka souboru je (256 * 192) /8 + 24 * 32 bajtu, kde první sčítanec odpovídá počtu bajtú, jejichž bity určují do které skupiny patří odpovídající bod na obrazovce, druhý sčítanec odpovídá počtu polí jedná se o skupinu atributů. Těchto 6144 + 768 bajtů je uloženo od začátku bloku VIDEORAM v těsném sledu. Logika zobrazování je z největší části obsazena v obvodu ULA. K tomu aby mohl zobrazovat toto poměrně velké množství informace, musí periodicky v přesně daných časech číst obsah paměti (VIDEORAM), ve které je soubor (display file) uložen. K tomu účelu je ZX SPECTRUM řešeno jako dvousběrnicový systém. Toto řešení do jisté míry umožňuje paralelní chod zobrazování a procesoru. Paměťová oblast je k tomuto účelu rozdělena na tři části:
Zobrazování se pak provádí čtením VIDEORAM, jejichž funkci zastává blok 16 kB RAM. V případě, že procesor pracuje s oblastí ROM nebo blokem 32 kB RAM, není jeho činnost ničím zpomalována. Procesor i ULA pracují každý na jiné sběrnici. Při adresování bloku VIDEORAM jde prakticky o žádost o druhou sběrnici, nastává časové sdílení sběrnice s obvodem ULA, v roli logiky zobrazování, a procesoru. Protože přerušování zobrazování by působilo rušivě, má ULA větší prioritu v přístupu do bloku VIDEORAM, a tudíž se ULA za všech okolností chová jako MASTER a uvolňuje sběrnici procesoru prostřednictvím správy hodinového taktu. Hodinový kmitočet pro logiku video a procesor se odvozuje z jediného generátoru pracujícího na kmitočtu 14MHz. Obvod video využívá kmitočtu 7 MHz, procesor 3,5 MHz. ULA blokuje hodiny následujícím způsobem: v případě, že se na adresové sběrnici objeví A15 = L, A14 = H, ULA zablokuje hodinový takt. Protože v čase zjištění této kombinace se nachází hodinový signál v úrovni H, nastává pouhé prodloužení tohoto času. Opětné uvolnění se provádí tak, že doba, kdy je hodinový signál v úrovni L, není zkrácena.
K zobrazování jedné osmice bodu řádku pole 8x8 je nutno načíst
zmíněné 2 bajty. Proto, aby tato doba byla co možná nejkratší a stihlo se
zobrazovaní i chod procesoru, je VIDEORAM vybírána obvodem ULA v tzv.
stránkovém modu. Charakteristickým znakem tohoto výběru dynamických pamětí je
pouze jediné adresování řádku a změna (pouze) ve sloupcové adrese na výběr až
128 paměťových míst (v případě RAM 4116). Z toho je vidět, že běžné adresování
je pouze zvláštním případem stránkového módu. Obvod ULA tudíž vybírá oba bajty
(grafiku i pozadí) ve stránkovém módu, z čehož vyplývá, že všech 9 bajtů má
stejnou spodní polovinu adresy, což určuje specifický sled výběru display file.
Sekvence výběru je pak následující: Načtou se stránkovým módem 2x2 bajty tzn.
kompletní informace o dvou osmicích bodů, které se zobrazují 2,286 ns. Toto
načtení se provede poněkud dříve, než je zapotřebí načítání další informace.
Vzniklá časová prodleva je dostatečná k provedení případného paměťového cyklu
procesoru. V případě, že procesor adresoval oblast VIDEORAM a následuje
dostatečná doba na provedení paměťového cyklu, není jeho činnost nijak
blokována. V opačném případě ULA zablokuje hodinový takt a uvolní ho až po té,
co načetl informaci o tom, co bude zobrazovat v době, kdy bude načítat
následující čtveřici bajtů. Toto uvolnění přichází v dostatečně dlouhé době k
tomu, aby se nezkrátil
V oblasti VIDEORAM jsou použity DRAM 4116 s trojím napájením, což zpravidla u prvních sérií způsobilo majitelům časté nesnáze způsobené nespolehlivým generátorem záporného napětí. V oblasti rozšiřitelných 32 kB jsou použity paměti 4532, což jsou nepodařené paměti 4164. Z toho důvodu jsou také zcela shodně zapojené a to včetně bitu A15! K tomu účelu byl plošný spoj navržen s tím, že bude při oživování upraven podle toho, která polovina původní paměti 4164 je funkční.
Marek Vysocký