LOGOUT / OK1ZXS

Prehistorické emulátory ZX Spectra

V polovině 90. let 20. století jsem neměl nic jiného než Didaktik Gama, slovy klasika nejlepší emulátor ZX Spectra, okolní svět byl tou dobou už ale někde úplně jinde. Stolním počítačům vládla písíčka, doma leckomu sídlila Amiga či Atari ST (TT, Falcon), na poli pracovních stanic dominoval Unix. Chuť vracet se ke Spectru se však projevovala u uživatelů všech platforem, a proto začaly vznikat softwarové emulátory, na nichž bylo možné spouštět starý software, zejména pak hry. Některé z prvních emulátorů na různých vícebitových platformách jsem vyzkoušel - příznačně většinou v emulaci těch vícebitových platforem, protože dnes nejsou o nic méně historické než samotné ZX Spectrum.


MS-DOS

První emulátor, který jsem kdy používal, bylo v roce 1997 na jednom z mých prvních písíček Warajevo 1.5, u nějž byla hlavní přesvědčující vlastností možnost běhu na grafické kartě Hercules. Bylo na procesoru i80286 docela pomalé, ale šlo už o moderní emulátor v dnešním slova smyslu, podporovalo dnes běžné formáty souborů (TAP, SNA, Z80) a mělo podobné ovládání, jaké mají emulátory dnes.

Bylo tedy nutné vydat se proti proudu času ještě dále a vyzkoušet emulaci z doby jejích počátků. Na World Of Spectrum jsem našel The Spectrum Emulator (SPECEM, neplést se SPECEMU). Ten, ač je u něj na webu uveden letopočet 1997, pochází z ledna 1992 a je to na něm znát.

SPECEM - úvodní screen

Už od první obrazovky je jasné, že to je software z doby, kdy se programy napříč vícebitovými platformami snažily vypadat vizuálně co nejlépe. Dnes pustíte emulátor, systém mu nakreslí okno a menu a uvnitř máte už jen to slibované Spectrum. Tady je pěkný úvodní obrázek, za běhu stále přítomné grafické logo a celkově bych na první pohled program řadil spíš třeba na Atari ST než na PC.

SPECEM - load error

Z dokumentace je patrné, že emulátor vznikal už od začátku roku 1990, nejdříve však jako Z80 disassembler a na kompletní emulátor byl pouze posléze předělán. Umí jen holé 48k Spectrum, navíc je pro jeho používání potřeba autorem upravená ROM, která má patchované kazetové operace. Caps/symbol shift je namapován na levý/pravý PC shift, což je pro nás zvyklé mačkat to jednou rukou tak trochu noční můra.

SPECEM - hrajeme

Emulátor neumí žádný z dnešních formátů, páska se emuluje-neemuluje nad diskem, deset znaků názvu + jeden znak určující typ záznamu jsou nacpány do MSDOS 8+3 konvence s tím, že všechny nepovolené znaky jsou nahrazeny podtržítkem. Tedy například basicový program POOL je uložen jako POOL____.__B a stroják k němu jako POOLCODE.__C. Nelze tak nahrávat pomocí LOAD "", vždy je zapotřebí uvést jméno. Výhodou je, že uvnitř těchto souborů je už pouze holý kazetový záznam, takže prostým spojením dohromady vznikne ekvivalent dnešního TAP formátu. Druhý (a poslední) formát, se kterým si emulátor poradí jsou překonvertované snapshoty z diskového systému Plus-D s DOSovou příponou PRG. Na jejich konverzi je přiložena utilita PDEX, která si je umí najít na vložené Plus-D disketě.

Ovládání je velmi jednoduché – je to stejné jako na Spectru, plus jsou dispozici čtyři funkční klávesy:

  • F1 – zastavuje refresh obrazu (refresh pak probíhá jen při volání PAUSE z BASICu, HALT ze strojáku nebo čtení portu 255)
  • F2 – refresh obrazu 1x za deset přerušení
  • F3 – zapíná / vypíná pohled dovnitř registrů procesoru v pravém sloupci
  • F4 – zapíná / vypíná zvuk

Kromě těchto kláves už toho autor – Kevin J. Phair z irského Dublinu – mnoho navíc nepřichystal, snad jen hranaté závorky k ovládání rychlosti emulace a kombinaci Alt-Esc, kterou by měl emulátor jít ukončit. Když se nedaří, radí manuál Ctrl-Alt-Delete.


Macintosh

Poloviná devadesátých let byla sice ještě barevná doba plná různých soupeřících platforem, pro již dominantní PC-kompatibilní však existoval jediný významnější konkurent: Macintosh. Jak to tam tenkrát vypadalo s emulací ZX Spectra?

ZX Spectrum 1.0.0 beta

V této době kvetl u Apple naprostý okénkový purismus. Aplikace v drtivé většině případů celoobrazovkový režim vůbec neznaly a nikomu to ani nechybělo. Jeden z úplně prvních emulátorů, vydaný v roce 1993 a nazvaný prostě ZX Spectrum 1.0.0 beta, není v tomto ohledu výjimkou. Emuluje holé 48k Spectrum a umí otevírat snapy ve formátech SNA (přežil dodnes) a SP (kde je mu konec?) a to je asi tak vše, co se dá k jeho schopnostem říct. Španělský autor Lorenzo José Ayuda Serrano za něj sice při registraci požadoval dvacet dolarů (respektive 2000 peset), ale víc funkcionality se dodat neobtěžoval.

Jelikož se emulátor drží i dalších prvků filosofie operačních systémů Apple, lze v něm najednou otevřít tolik snapů, kolik jich pobere paměť vašeho Macintoshe. Emulace pak běží pouze v aktivním okně, ostatní virtuální Spectra jsou zastavena. Dokážu si představit užitečnost takové funkcionality, nicméně ani jedna z těch představ se neobejde bez možnosti něco někam ukládat a ta chybí. V čem se program od jablečného standardu odchyluje, je způsob ukončení, kdy je zapotřebí zmáčknout Command-Q v každém okně a ne pouze jednou nad celou aplikací.

Pro nostalgické hraní osmibitových her během pauzy při sázení nějakého časopisu byl tento emulátor plně postačující, ale spectristi na PC na tom už byli o poznání lépe.


Atari ST

Zatímco emulátory ZX Spectra ze samého počátku devadesátých let pro PC a Mac byly ještě tak trochu přibržděné, jsou platformy, kde tou dobou už existoval software s poměrně širokými možnostmi. Řeč je samozřejmě o domácích vícebitech, v tomto případě konkrétně o Atari ST.

Je to veskrze logické: kde by bývalý spectrista, který se jednoho dne rozhodl vytvořit emulátor, vzal peníze na něco tak drahého jako je klon IBM PC či snad dokonce Macintosh? Ne, ti obvykle své Spectrum vyměnili v polovině osmdesátých let za Amigu či Atari ST a právě na nich tak vznikly první a dosti propracované emulátory.

Sinclair ZX Spectrum EmulatorSinclair ZX Spectrum Emulator - Manic Miner

Emulátor, nazvaný opět velmi prostě Sinclair ZX Spectrum Emulator (první verze 1990, verze 2.0 z let 1992-1993; spouští se pomocí specci.prg, škoda že emulátor autor nenazval takto, alespoň by se odlišil), emuluje ZX Spectrum 48k, Interface 1 a Microdrive. Ze snapů si poradí s univerzálním SNA a vlastním SNX, kazetu emuluje stejně jako SPECEM, tj. nad aktuálním adresářem. Na rozdíl od SPECEM ale pokrývá i nahrávání bez zadání názvu, tj. LOAD "" – pokud zadáte tento příkaz, budete vyzváni k výběru souboru. Kazetové soubory opět obsahují pouze kazetový záznam bez dalších dat navíc, jejich prostým spojením do jednoho tak vznikne moderní TAP.

Sinclair ZX Spectrum Emulator - nastavení

Kromě takového toho standardního osmačtyřicítkového blbnutí, jako je hraní her či programování v BASICu se s tímto programem dá už dělat i něco víc. V propracované nastavovací obrazovce lze například nastavit, že se sériový výstup z IF1 má směřovat na sériová či paralelní port Atari ST, takže je možná interakce virtuálního Spectra s reálným světem.

Sinclair ZX Spectrum Emulator - monitor

Další vlastností, kterou v roce 1993 nebylo u emulátorů na některých jiných platforách až tak běžné potkat, je monitor. Zobrazuje stavy registrů, umožňuje procházet paměť a její hodnoty zobrazuje nejen jako čísla ale i jako odpovídající instrukce Z80.


Amiga

Řekne-li se A, musí se říct i B. Zmíní-li se Atari ST, musí se nevyhnutelně dodat i Amiga. Najít funkční emulátor ZX Spectra z první poloviny 90. let, který by běžel a důsledkem jeho běhu nebyla nějaká meditace, nebylo ale zrovna jednoduché. Nakonec se podařilo a vyzkoušel jsem ZXAM Spectrum Emulator 2.0, který spatřil světlo světa 6. února 1995.

ZXAM - GUI

Emuluje ZX Spectrum 48k, nicméně i se zvukovým obvodem AY-3-8912, takže je to, jako byste u svého Spectra měli například interface Melodik (pravděpodobně to bude mnohem lepší než Melodik). Připojenou veselou hůl umí využít jako Kempston, Sinclair či Cursor (AGF/Protek) joystick. V distribučním archivu (shareware, cena $15) jsou čtyři binárky: non-AGA/AGA a od každé verze ještě standard/slow. Všechny verze vyžadují procesor 68020 či lepší, pochopitelně ty s AGA v názvu lze spustit pouze na strojích s AGA čipsetem.

Ne-AGA verze umožňuje běh v okně, na celé obrazovce nebo v PAL/NTSC režimech bez použití systému. AGA verze tuto možnost nenabízí, je vždy fullscreen, zato ale umí například atribut FLASH, který ne-AGA neemuluje. Rychlejší verze emuluje trochu méně kompatibilně, zato zabírá o dost méně procesorového času, přičemž i ta standardní není žádný velký otesánek – podle manuálu dvě současně běžící emulace zatěžují 68030 taktovaný 28 MHz na zhruba devadesát procent, tedy pokud máte dostatek FAST paměti, bez ní je emulátor o poznání pomalejší.

ZXAM - běh

Emulátor je španělský, snad proto podporuje snapshoty ve formátu SP, které jsem viděl poprvé a naposledy při testování emulátoru pro Mac. Dle manuálu umí i formát Z80, KGB (formát předchozích amigáckých emulátorů) a Mirage (dle doprovodného textu snad jedna z prvních verzí SNA). Vyzkoušel jsem pouze jeden ze SP snapů, které jsem našel v archivu ke zmiňovanému macovskému emulátoru a fungoval.

Kazetová emulace probíhá buď nad diskem, z nějž se načítají jednotlivé kazetové bloky uložené jako samostatné soubory, nebo lze použít i formát TAP, který ale emulátor neumí nativně, je zapotřebí jej pomocí skriptu v jazyce ARexx rozdělit do jednotlivých souborů.

ARexxové skripty jsou největším plusem celého emulátoru a povyšují emulátor o třídu nad ostatní výše uvedené. Skripty umožňují dělat si s emulovaným počítačem, co se vám jen zachce. Lze pomocí nich programově načítat či měnit registry virtuálního procesoru Z80, sahat do paměti (číst, psát – texty, čísla, cokoliv), nahrávat či ukládat soubory, části paměti, obrazovku, atd. Takovéhle automatizované ovlivňování Spectra by se občas hodilo i v dnešních emulátorech.


Unix

Unixové pracovní stanice se mezi prostý lid dostávaly ještě hůř než Mac či PC. Linux, který dnes lze nainstalovat na cokoliv, co má procesor, byl tenkrát ještě v plenkách, takže se není co divit, že se emulování rozeběhlo až o něco později.

Asi první unixový emulátor ZX Spectra byl XZX, který se někdy na přelomu let 1994 a 1995 se změnou vývojáře přetransformoval na XZX-Pro. Z toho se během následujících let stal jeden z nejschopnějších emulátorů mimo mainstreamové duo DOS/Windows. Byl ovšem komerční (shareware, cena $25) a rané verze se dneska prakticky nedají sehnat, takže chceme-li vidět, jak vypadal takový emulátor pro Unix v počátečním stádiu vývoje, je zapotřebí sáhnout jinam.

xz80 / Slackware 4 + KDE

Emulátor xz80 má sice dost nízké označení verze – 0.1d – ale je i tak použitelný. Vyšel v srpnu 1995 a umí emulovat klasické ZX Spectrum 48k. Pracuje se snapy ve formátu SNA a umí číst i psát obrazy pásek ve formátu TAP. Jediná zajímavost která stojí za zmínku, je emulace ZX Printeru, která probíhá jako tisk do souboru ve formátu MBM.

Zdrojové kódy se mi podařilo přeložit pod osmnáct let starým Slackware 4.0, běžícím v Microsoft Virtual PC na PowerMacu G5. Stačilo mírně upravit Makefile a ve zdrojáku zlikvidovat některé části kódu, které sahají na zvukové zařízení. Emulátor funguje úplně bezproblémově, před použitím doporučuji přečíst obsáhlou manuálovou stránku.


Risc OS

Dosud uvedené platformy bylo možné vcelku běžně potkat v 90. letech i u nás, počítačů Acorn Archimedes a navazujících RiscPC u tu však bylo řádově méně. Jsou počítače britské, byla jich plná Británie a používali je zejména Britové, to by v tom byl čert, aby tam nebyl nějaký pěkný emulátor už hodně brzy.

MZX pod RISCOS 3.7

Naštěstí v tom čert není. Existuje emulátor MZX, datovaný do let 1993-1994, který v té době už vycházel ve třetí přepracované verzi s označením 1.10 (první 1.00, druhá 1.02). Vyžaduje pro svůj běh alespoň 1MB RAM a RISC OS 3, pokud ho chcete provozovat v multitáskovém režimu, pak musíte mít RISC OS 3.5.

Emuluje jen holé ZX Spectrum 48+ a na numerických klávesách 1,2,3,4 a Enter se nachází Kempston joystick, ovšem máte-li k hostovskému Archimedu připojen joystick skutečný, použije se ten. Ze souborů zvládá se snapy ve formátu SNA a Z80, oba je schopen číst, druhý jmenovaný pak i ukládá.

Je to vlastně velmi jednoduchý emulátor, nicméně díky dospělému a dobře vypadajícímu prostředí mateřského operačního systému jsou tu běžné takové vymoženosti jako drag/drop souboru do okna emulátoru, nastavování pomocí menu atd. Neměli to tenkrát v té Británii vůbec špatné.


Sinclair QL

Ještě jeden počítač je velmi britský a je přímo od strýčka Cliva Sinclaira. Nechal jsem si ho záměrně až úplně nakonec, protože mezi testováním prvního emulátoru v tomto článku a úspěšným spuštěním emulátoru posledního uplynuly tři roky, během nichž jsem se alespoň trochu v platformě QL zorientoval. Ta dlouhá doba stála za to.

ZMX - úvodní obrazovka
ZM/128 - úvodní obrazovka

ZMX je balík obsahující emulátor počítačů ZX Spectrum 48 a ZX Spectrum 128 nazvaný ZM/128 a vývojové prostředí umožňující psát a ladit software pro Spectum na ql pojmenované ZM/hT. První verzi uvedl Ergon Development Italy v roce 1992, verze na obrázcích má číslo 3.72 a je z roku 1995.

ZM/128 - supervisor menu
ZM/128 - shortcut menu

Možnosti tohoto prostředí jsou opravdu velké, stejně jako byla jeho cena. Dle přiložené dokumentace stála registrace 40 GBP / 60 USD / 110 DEM / 2200 FRF, pevně věřím, že tou dobou se dalo ZX Spectrum v britském bazaru sehnat za menší peníz i se slušnou výbavou her, software a periferií.

ZM/128 - ZX Spectrum 128
ZM/128 - debugger

Nicméně emulaci modelu 128 včetně AY-3-8912, integrovaný debugger s trasováním, vyhledávání v paměti a editaci jejího obsahu, práci s Microdrive (emulovaným i reálným), sériové propojení s Interface 1 na skutečném Spectru, načítání a ukládání snapů ve formátu Z80 a ještě k tomu vývojové prostředí s cross-assemblerem žádný jiný zkoušený emulátor nenabízel. Dokumentace navíc uvádí, že při použití Minerva ROM na QL podporuje druhou obrazovku.

V roce 2016 byl uvolněn jako freeware.


Závěrem

Emulace ZX Spectra na novějších počítačích je obor, který se během 90. let hezky rozjel. Když si vyhledáte nějaký seznam existujících emulátorů a porovnáte to s počty emulátorů konkurenčních platforem, rozdíl jasně uvidíte. Relativně jednoduchá koncepce ZX Spectra proti zákaznickými obvody nacpaným počítačům od Atari či Commodore, nelpění Amstradu na autorských právech k obsahu ROM, velké množství software, kvůli němuž mělo počítač smysl emulovat a stále živá nová produkce – to vše k tomu přispělo.

Dnes už počítačových platforem není tolik, kolik jich bylo dříve. Nové emulátory vznikají rovnou jako multiplatformní, takže tentýž obvykle najdete na Macu, Linuxu i ve Windows a všude vypadá a používá se víceméně stejně. Emuluje se ale stále a do emulátorů se přidává podpora i nových a nových klonů ZX Spectra, které průběžně vznikají. Příkladem budiž třeba výtečný ZEsarUX, který uměl ZX Spectrum Next možná dříve, než dorazilo uživatelům domů na stůl. Pohled do historie, kdy to takhle pohodlně a bezproblémově zdaleka nefungovalo, byl o to zajímavější.

Komentáře: 2

[1] faraon (14.03.2020, 10:40)
Mám SPEC32 od Paula Robsona z roku 1997. Udělal i emulátor ZX81, a oba dnes hezky multiplatformně běhají pod DOSBoxem.
[2] Tomáš M. (14.03.2020, 21:53)
Na jednom ze soustředění Sinclair klubu pouštěli emulátory Spectra už někdy v roce 1991-2. Tuším na 286. Vůbec nevím co to bylo, a vlastně jsem tomu tehdy nevěnoval pozornost, neb jsem PC považoval za škodnou, ale už v té době to fungovalo... Ještě si vybavuji "emulátor" Sinclair BASICu na Commodore 64, ale to je trochu z jiného soudku - používal jsem to na típání spektráckých obrazovek do loadingu C-64 her...

Přidat komentář

Prosím dávejte vložené odkazy do hranatých závorek, např. [http://i-logout.cz]. Děkuji.

Jméno
E-mail
Váš komentář
Opište číslice z řetězce napravo *8*6*4*6*2*