Level ZX
Internet má mnoho úrovní. Je až překvapivé, že jedna z jeho úrovní je stále 8mi bitová. Protože mám do dnes funkční Didaktik M a disketovou mechaniku D40 (přesněji Didaktik M upravený na 128kB v Kompaktservisu, Melodik a mechaniku Didaktik 40) se stovkou disket, mnohdy koupeného software, nebo programů které jsem sám napsal, občas mně při oprašování prachu napadne ho i zapnout. A posledně mi přišlo líto, že bych ty své skvosty měl nechat na disketách "zreznout" a tak jsem se pustil do zkoumání co nového ve světě PC vs. ZX.
Množství software, který ještě stále vzniká v souvisloti se ZX je překvapivě dost. Jednou z nejzajímavější oblasti jsou dnes emulátory. Hledal jsem totiž software, který bych mohl zazálohovat diskety z D40. Při té přiležitosti jsem objevil spoustu věcí, které tu sepíšu, ne jen pro ty kteří by byli postiženi stejným záchvatem, ale především proto abych svou vlastní paměť zazálohoval.
Na doporučení ze stránek http://zxm.speccy.cz jsem objevil emulátor RealSpectrum, jehož osud je od roku 2007 poněkud nejasný, je však označován aspoň v českých luzích za jeden z nejlepších emulátorů - zřejmě i proto, že by měl podporovat emulaci D80, resp. D40. Píšu by měl, protože D80 potvrzují jiní (sám nemám tak nevím), můj výsledek s D40 však popíši níže.
Poslední verze RealSpectrum emulátoru je bohužel nejasná. Podle web.archive.org byly stránky ramsoftu naposledy dostupné v únoru 2008 a poslední verze RealSpectra, který se na nich dá stáhnout je 0.97.26 pro MSDOS alias R14B pro Windows, pocházející z konce roku 2004. Po Čechách ovšem kolují i verze s vyšším číslem, ovšem bez aktualizované dokumentace, takže je otázka co je v nich "nové". Pro windows 2K/XP/Vista je potřeba ještě utilitka pro nízkoúrovňovou komunikaci s floppy mechanikou, jinak na emulaci D80 můžete zapomenout. DOSová verze to pod W98 nebo MSDOSem to zvládá naštěstí bez doplňků. Problém je jen v tom, že musíte mít MSDOS nebo W98, což může být první závažný zádrhel.
RealSpectrum se dodává předkompilované pro několik architektur, nevhodnějši je asi i686, pokud byste náhodou chtěli zkoušet takovou šílenost jako já provozovat jej pod Linuxem v DOSboxu, tak věřte, že to jde, musíte tedy stáhnout verzi pro nestarší Pentium, RS si i tak bude stěžovat, že na i486 nejspíš nepoběží. I na top procesorech dnešních dnů má emulace ZX v emulátoru DOSu k potřebné rychlosti daleko. Nicméně funguje.
Samotný emulátor se zdá být poměrně dobrý, podpora čtení a zápisu D80 disket na PC mechanice z něj dělá zázrak pro uživatele Didaktiků, stejně jako ukládání obrazů disket na HDD PC.
ROM pro emulaci didaktiku, resp. D80 jistě také najdete. Jejich přikopírovánim do adresáře realspectra a následnou volbou Didaktik Kompakt v menu emulovaného HW máte v podstatě vyhráno. Pokud máte jen chvilku, určitě si projděte html manuál, který je v balíku s emulátorem, ušetříte si tím spoustu času později.
Nemalý problém bude jistě i HW na straně PC. 5.25" mechaniky jsou dnes již opravdu raritní a to, že jsem jednu měl je dáno tím, že jsem si ji před lety prozíravě právě pro takovéto potřeby pečlivě uschoval. Méně pečlivě sem si ale schoval kabel od řadiče k mechanice, který je také jiný, než co běžně naleznete v PC. Naštěstí pomohl jeden z kamenných obchodů s dlouhou historií (rozuměj v servisu takového obchodu už se najde ledacos..:).
S D40 je ale kříž, který zatím bohužel nemá řešení. V D40 se totiž dodával MDOS 1.0, který měl chybu ve formátování disket, která způsobuje, že diskety jsou v podstatě nečitelné pro řadiče 5.25" mechanik PC. Opravené to je až v MDOSu 2.0, což ale není můj připad. Co s tím to je otázka. Při pokusu o přístup na takovouto disketu z emulátoru RS se buď emulátor zacyklí na adrese 2932 nebo vyhodí X Bad device type. Teoretickým řešením přeformátovat disketu v RS nebo D40 jiným programem, který formátuje lépe. Samozřejmě první problém je, že nechcete přeformátovat data, které na disketě máte. Takže to chce najít aspoň jednu volnou disketu DS/DD tu naformátovat například v eiformátu, nebo MFC a pak začít famózní diskotéku při kopírování původní diskety na jinak naformátovanou disketu, kterou D40 bez problémů přečte. Kopírování 360kB v ZX se 48kB RAM je ovšem noční můra, takže doufejte, že máte aspon 128kB verzi Didaktiku a software jako SingleCopy od Proximy.
Pokud tako zpracovanou disketu předložíte emulátoru, už vám vesele vypíše obsah diskety a netváří se jako kyselé zelý, dokonce vám s klidem udělá image diskety, ovšem pokus nahrát cokoli z diskety končí načtením nesmyslů. Stejně tak připojení image diskety. Pokus nahrát image zpět na D40 disketu pomocí RS i s jeho formátováním sice skončí úspěšně (nikoli tak bez formátování), ovšem teď již ne jen, že na disketě jsou nesmyslná data, navíc je ještě sformátována tak, že při pokusu číst některý "vzdálenější" sektor přímo v D40 skončíte se Seek error. To jen abyste se vyvarovali eurórie, které jsem podhlehl já, když se mi podařilo disketu dostat do stavu, že ji přijímala jak D40 tak RS.
Množství stupňů nastavení v RS je mnoho, započítáme-li do toho nutnost po některých změnách restartovat emulovaný stroj, vzniká množství variant jak disketu zpřístupnit, netvrdím, že jsem zkusil všechny, ale zkoušel jsem ledacos. Bohužel neúspěšně.
Jako další možnost jsem viděl použít pro formátování, protože v něm bude zakopaný pes, MFC (MDOS File Commander). Žádným způsobem se mi ho nepovedlo funkční přenést na D40 disketu z D80 image. Kombinace D80 image a D40 diskety je pro RS prostě nepřekousnutelná.
Takže mi zatím nezbylo než si zkompilovat v Linuxu aylet a z webu postahovat AY skladby, nebo pokud kompilace ayletu je moc naročná zabruste na http://www.ayland.x.pl/ a pusťte si stream skladeb ze ZX.
Update 14.3.2010
Dnes jsem za urputného vzpomínání prodělal další, nutno říci zbytečnou, anabázi s převodem. Co jsem podnikl? Rozhodl jsem se vyzkoušet cestu D40 diskety z Didaktiku, do realspectra přes MFC. Problém číslo 1 byl jak dostat MFC do Didaktika. Jak jsem již naznačil minule vytvořit v RS disketu čitelnou v D40 se mi nepodařilo, takže nebylo jak vytvořit obraz s MFC. Rozhodl jsem se jít cestou TAPu. TAP jsem musel zkonvertovat na WAV a poslat přes kazeťákový vstup do Didaktiku. K mému překvapení existuje spousta tap2wav a tap2voc konvertorů. Ovšem evidentně existuje více verzí TAP soborů pro různé 8bitové veterány, takže najít ten správný chvíli trvalo. tap2voc vytvářel nefunkční voce, a mnohé tap2wav wavy, na které Didaktik vůbec nereagoval. Jediný funkční se tak pro mne stal ten ze stránky http://zxspectrum48.i-demo.pl/ay48k_demos.html - tape2wav zabalený jako tap2wav.zip. Má sice trochu zvláštní ovládání, ale ve wine funguje i Drag&Drop. Na Didaktiku zaváděcí zvuk není úplně čístý, ale načítá se vše a správně. Bohužel v tapu MFC je tento i se syntaxí D40, takže po nahrání prvního BASICu se dál v nahrávání z wavu nepokračuje. Naštěstí stačí upravit LOAD * na LOAD, RUN a znovu pustit wav. Tím jsem dosáhl prvního úspěchu. V MFC jsem pak naformátoval disketu v D40 s MDOS1.0 (nemá opravenou ani chybu v MOVE), nakopíroval data. Nastartoval jsem RS v MSDOSu a dal číst disk. Opět CAT bez problémů, ale obsahy souborů jsou vadné. Zůstávám tedy nadále tam kde jsem byl...
PS: Další funkční řešení k přehrávání tapů na linuxu utilita tapeconv z baliku fuse emulatoru, playtzx (nutno zkompilovat pustit prostrednictvim padsp protoze uz neexistuje /dev/dsp).
tapeconv neco.tap neco.tzx padsp ./playtzx neco.tzx
Odkazy: