Hledal jsem drobnost o elektronice a našel jsem sám sebe…
Jak p.t. čtenářstvo asi ví (možná ne), mým koníčkem je kromě programování a dráždění blbů i mikroelektronika. Mám o ní dokonce jeden takový bložík, s bohatým archivem, ale dnes skomírající a živený jen „curated news“ Twitterem, který používám jako odkladiště na nápady, co jednou realizuju…
Ono to totiž souvisí se starým snem. Stále mě nepustil, i když pájka dočasně zahálí a já se musím věnovat jiným věcem. Jednoho dne ale opráším fotocuprextit a vrhnu se zas na stavbu nějakého gadgetu. Do té doby si musím vybít svoje nutkání jinak.
Tak například takovým osmibitovým webovým IDE, tedy editorem / assemblerem / emulátorem. IDEa mě napadla už před lety, a tehdy jsem si zbastlil první prototyp pro procesor Z-80. Na webu je velký editor (JS) a emulátor (Flash), assembler funguje na serveru (Pasmo), no a ultimátní test byl překlad Manic Minera ze zdrojáku. Nojo, ale elektrošotouši jsou, čest výjimkám, spolek ještě konzervativnější než programátoři. „Cože? Na co, používám DOSový assembler a bohatě mi stačí!“ (Extrémní varianta: „Používám Prometheus!“) Příliš velké novoty! Dodnes si živě pamatuju svůj odchod z mailové konference o ZX Spectru poté, co jsem se odvážil odpovědět na otázku „Má někdo v grafickém rozhraní paměti, které se dají najednou číst i zapisovat“ ve smyslu, že některé grafické karty pro PC to používají. Byl jsem vyhozen za „řeči o PeCi“ – předpokládám, že ostatní do té konference přispívali z gumáků. (Jo, tuším že v té konferenci byl i Zil0gator, který si na mně chladil žáhu na Zdrojáku a jehož verbální agresivita vůči „bloatware“ a „prznění programátorstva“ mě bavila tak, že jsem si z něj udělal etalon…)
Takže jsem to IDE přebudoval tak, aby se co nejvíc tvářilo jako aplikace. Tedy AppCache, ukládání souborů do localStorage atakdál. Šlo to, jen ten assembler byl stále na serveru.
Pak jsem se věnoval jiným věcem, nebyl na to čas, až teď, s pravidelnou pracovní dobou, jsem ho zase nalezl. Takže jsem jednak vylepšil svoje souborové úložiště v prohlížeči, vytvořil jsem si k tomu serverový backend, kam si můžu lokální soubory „přesypat“, když chci, no a přepsal jsem hlavně celý assembler do JavaScriptu. Díky oddělení na tři části můžu použít společný základ pro libovolný procesor (parser, dvouprůchodový generátor, preprocesor), a k němu dopsat specifické části pro ten který procesor. Začal jsem s 8080/8085, pak jsem přidal 6502 – sám jsem byl překvapený, že vytvoření téhle mutace zabralo jen asi čtyři hodiny, z nichž jsem se většinu času snažil sepsat pravidla pro vyhodnocování adresních módů. Ještě mě čeká Z-80, a s tím bude trošku problém, vzhledem k tomu, že některé instrukce, když na to přijde, zaberou až pět bajtů…
Emulátor 6502 v JS mám, jen co najdu zdrojáky, tak ho budu moci nasadit. Přemýšlel jsem, co s 8080 – napsat emulační engine v JavaScriptu není problém, to za jedno odpoledne sfouknu, ale napadlo mě, že by se rovnou dalo připsat i něco víc. Co třeba emulátor BOB-85? Anebo – co takhle rovnou emulátor PMD-85 v JavaScriptu? Das ist výzva!
No a tak jsem chvilku bloumal po osmibitových webech, pročítal jsem si nostalgicky Nostalcomp, četl si Martinův osmibitový blog, a tam jsem objevil svůj starý komentář, a u něho odpověď, která mě tehdy minula.
Á propos Martine, právě vaše deset let staré zápisky na blogu o touze postavit si po letech jednodeskáč mě přiměly, abych se svou úchylkou vylezl na světlo a založil Nostalcomp
Ale to ješně nebyl Martin Malý, ale Arthur Dent
Kruh se uzavřel. Udělalo mi to velkou radost. Tak velkou, že jsem si dodal odvahy a o svém assembleru jsem tweetnul. No a na ten tweet se ozval mborik128 – ano, (spolu)autor těch stránek o emulátoru PMD-85! To nemůže být náhoda, teď už to tedy musím dodělat… Právě jsem se pustil do webového rozhraní s editorem, a pokud bude situace příznivá, tak příští víkend můžu pustit neveřejnou alfaverzi. Chcete někdo ochutnat?