Po drátě 3: Řešení úlohy č. 11
Většina asi na první pohled poznala ve své době oblíbený a prakticky všudypřítomný 8bitový počítač Sinclair ZX Spectrum.
Pokud ne, pak googlení první věci, co se ve videu objevila ((c) 1982 Sinclair Research Ltd), vedlo k tomuto počítači prakticky okamžitě. Nyní si stačilo jen počíst něco málo o tom, jak ZXko fungovalo. Nejzajímavější je údaj, že se programy nahrávaly z kazet pomocí kazetového magnetofonu. Ve videu zcela evidentně dochází právě k tomu - k nahrávání programu z kazety, přičemž audiostopa obsahuje právě onu nahrávku z kazety.
Největším úkolem bylo najít vhodný software, který bude umět tuto audiostopu natáhnout. Možností je mezi emulátory ZX Spectra několik; nejjednodušší asi bylo použít FUSE (neplést s kernelovým projektem stejného jména pro filesystémy v uživatelském prostoru!):
wget http://www.podrate.cz/podrate3/video/video.ogm mplayer -ao pcm:fast -vo null video.ogm fuse --autoload audiodump.wavPak již stačilo jen zmáčknout klávesu R (pro příkaz "run") a stisknout Enter. Na obrazovce emulátoru se objevil velký nápis GUMAK, což bylo i heslo.
Komentář
Nápad na úlohu vznikl krátce po Po drátě 2. Chtěli jsme streamovat nějaký zvuk, který budou muset účastníci nějakým způsobem rozkódovat. Od tohoto nápadu byl již jen krůček k oné šílené myšlence, která se nakonec dočkala realizace: streamovat ZXový program. Jen místo streamování jsme zvolili download a přidali k tomu i video, aby měli šanci i ti, jejichž první počítač už bylo PC a ZX v životě neviděli.
Největším problémem pro většinu těch, co se dostali až sem, bylo sehnat vhodný emulátor. Někdy i najití správného nástroje na řešení daného úkolu může pěkně potrápit... Pokud tedy nejste Xof a nemáte doma skříň plnou obskurního hardware. Co jsme se doslechli, tak výherce Po drátě 3 po obdržení zadání úlohy vstal, vytáhl ze skříně televizi a ZX Spectrum, zapojil do něj výstup z PC a program prostě nahrál a spustil.
Během tvorby úlohy jsme museli opravit jeden bug ve fuse-utils. Kupodivu jako překvapivě snadné se ukázalo oprášení polozapomenutých znalostí Basicu.
Autora původního nápadu na úlohu si už nikdo nepamatuje (pravděpodobně vznikl kolektivně), samotnou úlohu implementoval (a FUSE fixoval) Jirka Benc.
ogmdemux video.ogm
ogginfo -v video.ogm-a1.ogg
To vypisalo:
Negative granulepos on vorbis stream outside of headers. This file was created by a buggy encoder
A potom som programoval ogg parser a hladal heslo v segmentoch s zapornou granulepos.
Pustit to na emulatore mi nenapadlo :(
oggdec -o audio.wav video.ogm
Oproti řešení navrhovanému orgy jsem se vydal cestou vedoucí přes audio2tape, tedy součást balíku fuse. Parametr "-s" hezky oživil mé poznámky k úloze :). Drobným úskalím pro mne bylo zjištění správného formátu souboru (RZX).
Musím připustit, že jsem byl zdrcen po vylistování programu v BASICu: neobsahoval heslo k vedlejší úloze, jak jsem tajně doufal.
> Musím připustit, že jsem byl zdrcen po vylistování programu v BASICu:
> neobsahoval heslo k vedlejší úloze, jak jsem tajně doufal.
Taky jsem se tam po něm díval, ale pak mi došlo, že ve chvíli, kdy má
člověk hotovou jedenáctku, by už vzhledem k jednoduchosti dvanáctky
další bonusová úloha byla trochu samoúčelná.
sem valil pres "spectemu". takze sem si vytahl zvuk , musel sem ho zesilit (hodne)
a pak sem ho pustil do "spload" , zkovertoval stp2tap a spustil.
Navic sem jeste musel hrabnout do zdrojaku spload aby to vubec dekodoval cele.
Skoda ze sem si nevsiml toho druheho emulatoru.
Naviac sa asi po hodine obsadilo piate miesto, co moj uz vtedy frustrovany entuziazmus dorazilo uplne, rezignoval som, zahral dve gamesy pre zx spectrum a s hrou sa rozlucil.
mplayer - vytiahnutie wav
wav2voc - prekodovanie do voc formatu
taper v dosboxe - voc --> tap program
spectemu - spustenie tap
i tak se da :)
Takze na konverzi jsem nakonec zkousel vselijaky programy na netu, ale ani jeden nefungoval. Nejbliz byl jakysi prastary windowsi program, ktery sice vyrobil .tap, ale hlasil asi 19 paritnich chyb (nejspis nebyl tak dobry jako fuse a summ z oggencu mu asi nesedl...) ... pokus signal upravit/vylepsit pomoci audacity (signal zesilit a orezat, nebo zkouset filtr co oreze vysi frekvence) bohuzel k vysledku taky nevedl.
Tusil jsem ze jsem blizko, ale nakonec jsem to vyresil zolikem ...
1. v priloze "mikroelektronika" Amaterskeho radia, venovane tradicne temer vylucne pocitacum, vysla mj. anketa, ktera se ptala, pro ktery pocitac by mela vyjit sbirka programu (v CSSR muselo ZX vyhrat naprosto zakonite, 6502kari prominou), a zda by mel zajemce o kazetu (30Kcs), nebo radeji gramodesku (15Kcs). Naaarez! A navic ta uzasna cenova umernost, opacna, nez by clovek vzhledem k jakosti media cekal.
2. (ale tohle vetsina spectristu zna) televizni vysilani, kde byli divaci/posluchaci vyzvani k pripojeni magnetaku a nasledne odpiskani soutezni hry pro ZX (Mesto robotu a ona znama "konvalinka"). Soutez byla pak quli hackerum zrusena a mozna se jednalo o prvni v CST zverejneny pocitacovy crack hesla.
Dik za pobaveni.
> Naaarez! A navic ta uzasna cenova umernost, opacna, nez by clovek
> vzhledem k jakosti media cekal.
Přestože, spousta věcí byla za socialismu postavená na hlavu, tohle
zrovna logiku má. Zatímco kazeta se musí nahrát, což trvá dlouho,
gramodeska se (po počáteční investici) lisuje, a to je rychlé a
technologicky relativně nenáročné.