Ačkoliv je někdejší celoplanetární sláva osmibitových počítačů dávnou minulostí, komunita skalních fanoušků a pamětníků je kupodivu i v 21. století poměrně živá a internet je plný nejrůznějších emulátorů, které dnes díky jejich jednoduchosti spustíte opravdu na čemkoliv.
Ve čtvrtek nás v 81 letech opustil Clive Sinclair, tvůrce dnes už legendární řady britských osmibitových počítačů ZX Spectrum, které se v osmdesátých letech minulého století dostaly všemožnými cestičkami i do leckteré československé domácnosti. Později pak i jeho československé klony Didaktik. Jeden z nich se krátce ohřál i u nás doma.
Komunita se shlukuje třeba na portálu worldofspectrum.org a v případě Česka stojí za zmínku stránky zx-spectrum.cz s odkazy na hry, emulátory a k dispozici je tu i diskusní fórum.
Emulátor v prohlížeči
Jelikož je počítač ZX Spectrum opravdu jednoduchý, můžete si jej vyzkoušet v některém z javascriptových emulátorů přímo ve webovém prohlížeči. Funguje třeba JSSpeccy 3 nebo Qaop.


ZX Spectrum ve webovém emulátoru JSSpeccy 3
Když v menu spustíte nahrávání programu do RAM z virtuálního kazetového přehrávače (Tape Loader) a v zápatí webového emulátoru vyberete z vlastního počítače soubor s virtuální kazetou ve formátu TAP, která obsahuje hru, bude to teprve zábava.

A ještě jednou, tentokrát ve webovém emulátoru Qoap
Kde ty soubory TAP a další obsah najít? Třeba právě na obou zmiňovaných webech, anebo kdekoliv na širém internetu. Stačí použít Google.
Fuse pro desktop i mobil
Pro desktopy je tu zástup mnohem pokročilejších emulátorů, které nabízejí i hromadu expertních funkcí pro vývojáře – třeba pohled na to, co se právě teď děje v RAM a jaké instrukce procesoru se zpracovávají.



Nahrání virtuální kazety s hrou ve formátu TAP v emulátoru Fuse
Jedním z nejznámějších je Fuse, který je k dispozici prakticky pro libovolnou platformu od Androidu po Windows a některé herní konzole.
Můžete do něj nahrát hru ze stažené virtuální kazety, anebo třeba spustit jeho jednoduchý interpret jazyka Basic a vytvářet v něm programy, které budou kreslit po monitoru kružnice a provádět další lumpárny.
Pokud se budete přes víkend nudit, manuál se všemi příkazy a jednoduchou dokumentací pro starší 48 BASIC najdete zde. Pro novější a lépe ovladatelný 128 BASIC pak hledejte vše potřebné rovnou v dokumentaci počítače Spectrum 128K.
Náš vlastní program v Basicu
A teď se už pojďme podívat na primitivní program v Basicu pro Spectrum 128K. Nejprve v emulátoru Fuse nastartujeme z nabídky vhodný virtuální počítač, který má k dispozici veškerou potřebnou softwarovou výbavu

Spustíme Fuse a z výchozího počítače Spectrum 48K se přepneme do Spectrum 128K
Po naběhnutí se ukáže obrazovka s možností nahrání programu na kazetě, spuštění kalkulačky a dvou verzí Basicu. My zvolíme ten pokročilejší 128 BASIC.

Vybereme 128 BASIC s jednodušším uživatelským rozhraním
Kreslíme kružnici
Klepnutím na klávesnici se rozbliká kurzor interpretu. Můžeme rovnou napsat nějaký příkaz, který se okamžitě zpracuje po stisknutí ENTER. Třeba:
CIRCLE 50,100,25
Na souřadnicích 50,100 (počítá se od levého spodního okraje) se poté vykreslí kružnice s průměrem 25 bodů, přičemž souřadnice odpovídají středu této kružnice.

Naše první instrukce! To byla jedna z těch mála, kterou jsem jako osmiletý špunt ovládal na našem rodinném Didaktiku M (československá kopie ZX Spectrum)
Více řádků
No dobrá, ale co když se náš program skládá z více řádků? Je to jednoduché, stačí příkaz uvést číslem řádku. Po klepnutí na ENTER se pak instrukce jen uloží do paměti, vypíše v horní části a interpret bude čekat, dokud celou sekvenci ručně nespustíme.
Tímto způsobem můžeme napsat třeba:
10 PRINT "AHOJ, TADY ZIVE.CZ"
20 FOR I=1 TO 5
30 PRINT "KRUH=";I
50 CIRCLE 100,100,I*10
60 NEXT I
Co se stane? Nejprve na prvním řádku vypíšeme zdravici „AHOJ, TADY ZIVE.CZ.“ Dále spustíme smyčku FOR od 1 do 5. Vypíšeme v ní text „KRUH=“ doplněný aktuální hodnotou proměnné I, no a poté nakreslíme samotný kruh, jehož průměr se bude postupně navyšovat, protože bude odpovídat násobku I * 10. K hodnotě proměnné I se po každém průběhu smyčky připočítá 1.
Na závěr smyčku uzavřeme příkazem NEXT I, kterým dáváme interpretu najevo, že má zpracovat další průběh.

Píšeme program ve 128 BASIC. S rozložením odlišné klávesnice nám pomůže nápověda
Příkaz RUN
Program je hotový a nyní řádky jeden po druhém konečně zpracujeme příkazem RUN a už bez úvodního určení čísla/adresy řádku:
RUN
Takto by měl vypadat výsledek:
Mimochodem, okno emulátoru se spustí v původním malém rozlišení, ale můžete jej libovolně roztáhnout, aby na něj bylo vůbec vidět.

Náš první program v Basicu na ZX Spectrum 128K
Jak napsat speciální znaky jako + nebo třeba "
Pozor, současná klávesnice není kompatibilní s tou prehistorickou na ZX Spectrum, proto pomůže nápověda s maličkým náhledem rozložení dostupná v menu emulátoru Fuse Help→Keyboard.
Červené znaky vyvoláte s pomocnou klávesou CTRL, takže třeba znak anglických uvozovek " napíšeme stisknutím CTRL+P, znak + stisknutím CTRL+K a tak dále.

Rozložení kláves na Spectru (červené znaky jsou dostupné s CTRL)
Mezi řádky programu můžete šipkami nakonec procházet a dodatečně je upravovat.
Jak to uložit a zase otevřít?
Kód bychom měli, ale jak ten náš slavný program uložit a znovu vyvolat někdy později a klidně i na jiném počítači? Jelikož pracujeme jen s virtuální mašinou ZX Spectrum, v praxi bude zdaleka nejjednodušší vytvořit paměťový snapshot – prostě uložíme stav maličké RAM do souboru ve formátech SZX, Z80 a dalších dle podpory v emulátoru pomocí nabídky File→Save Snapshot...


Uložení obrazu RAM a jeho opětovné načtení v formátu SZX
Ve Windows se pak poklepáním na soubor rovnou otevře Fuse s virtuálním Spectrem a naší RAM ve stavu, kdy jsme ji uložili. Druhou možností je soubor se záznamem operační paměti načíst v menu File→Open.
Takto vytvořený obraz je zpravidla možné načíst i v mnoha dalších emulátorech včetně těch webových, který jsme si ukázali v úvodu. Qaop si bude rozumět s formátem Z80.


Nahráli jsme obraz RAM ve formátu Z80 s naším programem do webového emulátoru Qoap
Zvládnete v Basicu ukuchtit něco lepšího? Pochlubte se nám i ostatním čtenářům třeba odkazem na váš vlastní paměťový snapshot.