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.wav
Pak 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.

Re: Po drátě 3: Řešení úlohy č. 11 Tomas Dzetkulic (3. 12. 2008 - 20:15) Sbalit(4)
Moj postup:
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 :(
Re: Po drátě 3: Řešení úlohy č. 11 shichman (3. 12. 2008 - 21:46) Sbalit(3)
Také jsem se pokoušel vydělit audio z dodaného OGM (tuším, že přes oggSplit), ale byl to slepý boulevard, jak se ukázalo opětovným přehráním. Nevím v čem byla chyba, nakonec totiž stačilo prosté:
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.
Re: Po drátě 3: Řešení úlohy č. 11 Michal Kubeček (3. 12. 2008 - 21:51) Sbalit(2)
On Wed, Dec 03, 2008 at 09:46:38PM +0100, shichman wrote:
> 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á.

Re: Po drátě 3: Řešení úlohy č. 11 Jirka Benc (org) (3. 12. 2008 - 22:10) Sbalit(1)
Tak tak. Nutkání schovat ho tam bylo sice hodně silné, ale v jedenácté úloze to už fakt nedávalo smysl.
Re: Po drátě 3: Řešení úlohy č. 11 s (3. 12. 2008 - 20:34) Sbalit(1)
tak tohle sem resil bohuzel pres jiny emulator :(( coz me dost zdrzelo.
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.
Re: Po drátě 3: Řešení úlohy č. 11 xmoris (3. 12. 2008 - 20:57) Sbalit(1)
Nj ... postup som mal spravny (vytiahnut zvuk tlacit ho do zx emulatoru), ale tiez som zvolil spectemu a k nicomu to neviedlo, tak som ten postup zavrhol. Zaujimave je, ze prvy emulator, ktory som sa snazil zohnat bol prave FUSE, ale yast2 mi ho v tych standartnych repozitaroch nenasiel, naopak spectemu ano, tak som bral ten :-/.

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.
Re: Po drátě 3: Řešení úlohy č. 11 Kozzi (4. 12. 2008 - 8:17) Sbalit(1)
To si delate koyyi :-), po tom co me nekteri na abclinuxu nakoply ze jsem na to asi moc mladej me napadlo ze je to spectrum, a okonce me napadlo ze pujde o neco se zvukem, tak jsem si ho vytahl. Ale pouzil jsme spatnz emulator a ten to stale nechtel jako kazetu nahrat, nakonec jsem zkusil i fuse, ale opet to neslo, asi sem to nejak spatne zadal ci co. O to vic to anstve, no aspon vim ze jsem to v podstate vzresil :D
Re: Po drátě 3: Řešení úlohy č. 11 balique (4. 12. 2008 - 10:53) Sbalit(2)
Ja som to riesil cez :
mplayer - vytiahnutie wav
wav2voc - prekodovanie do voc formatu
taper v dosboxe - voc --> tap program
spectemu - spustenie tap

i tak se da :)
Re: Po drátě 3: Řešení úlohy č. 11 Bilbo (4. 12. 2008 - 20:00) Sbalit(1)
To ze bude v tom zvuku program mi bylo jasny hned, natolik jsem jeste spectrum znal, byt jsem ho osobne nikdy nevlastnil. Vydobat z toho wav bylo trivialni, prevyst wav do .tap nebo .tzx (ktere bral spectemu) uz bohuzel nikoliv. To ze fuse umi nahravat primo z wav jsem netusil, nekde na netu jsem pri hledani konvertoru wav/voc -> tap/tzx narazil na manpage k fuse ze ktereho to vypadalo ze tohle neumi, tak jsem (bohuzel) usoudil, ze fuse nema smysl zkouset.

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 ...
Re: Po drátě 3: Řešení úlohy č. 11 Vladimir Navrat (4. 12. 2008 - 17:48) Sbalit(1)
Nejprve oggdec. Pak jsem zkoušel emulátor Glukalka (glukalka.sourceforge.net) ale ten nešel na 64bit systému zkompilovat (myslel jsem, že fuse neumí wavy). Takže potom zkouška fuse (a umí).
Re: Po drátě 3: Řešení úlohy č. 11 tm (4. 12. 2008 - 19:30) Sbalit(1)
Chjo, tak to ma nenapadlo že ten zvuk fakt bude spectrovský program ... myslel som že to je nejaký obrázok čo sa tvári ako zvuk, tak som to konvertoval ImageMagick-om ako rôzne RAW formáty :(
Re: Po drátě 3: Řešení úlohy č. 11 ernie (4. 12. 2008 - 21:48) Sbalit(1)
Sem se dostat, tak jsem to píchnul rovnou do ZX :( Ještě bych ho tu někde vyhrabal
Re: Po drátě 3: Řešení úlohy č. 11 robotron (16. 12. 2008 - 0:14) Sbalit(3)
Tato uloha mi pripomnela dve nadherne udalosti z sireni softwaru v onech nadhernych casech:

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.
Re: Po drátě 3: Řešení úlohy č. 11 Michal Kubeček (16. 12. 2008 - 1:46) Sbalit(2)
> 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.

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é.

Re: Po drátě 3: Řešení úlohy č. 11 robotron (16. 12. 2008 - 11:05) Sbalit(1)
Technologicky to chapu, ale zakladem meho udivu bylo, ze by se fixni naklady byly schopne rozpustit v te hrstce blaznu od elektra, kteri by navic museli byt ochotni pripojovat gramic. Ale ta nadherna sirka pasma a pomerne znacna trvanlivost media je moc peknou predstavou. (Praskani by mozna mohl vylecit "deglitcher", ktery tou dobou vychazel rovnez na strankach Mikroelektroniky :-))).