V retronáladě vstupuju do zbrusu nového roku.

Loňský rok byl pro mne osobně, když na to tak koukám zpátky a když se přes drobné peripetie přenesu konstatováním, že není důležité, co se dělo, ale kam to směřovalo, úspěšný. Sesednul jsem z mrtvého koně a nasednul na slušně rozběhnutého (že pak zakopnul a teď kulhá je jiná věc). Prodal jsem pár projektů a posunul jsem se zase o kus dál.

Možná je to těma kecama, co mají o patnáct, dvacet let mladší kolegové, takové to „dědečku, vypravuj…“, možná to má příčinu jinou, každopádně jsem se teď dostal do retro období: věnuju se starým osmibitovým počítačům a křížím je s moderní webovou technologií. Oprašuju svoje znalosti starých procesorů, píšu javascriptový assembler pro osmibitové procesory, píšu k němu emulátory starých počítačů (zatím PMI-80 a PMD-85) a při té příležitosti jsem se pustil i do odvážného projektu „online kurzu assembleru osmibitových procesorů„. Ocituju ze svého motivačního článku:

Totiž, když jsem se já učil assembler (někdy v roce 1984… vidíte, napřesrok budu mít výročí!), měl jsem k tomu k dispozici tři, slovy tři materiály. Jednak instrukční sadu procesoru 8085, pak výpis monitoru počítače BOB-85 a pak výpis obsluhy klávesnice a displeje počítače JPR-1. O spoustě věcí (třeba fungování přerušení) se člověk nedozvěděl. O nějakou dobu později, už s reálným počítačem, jsem zkoušel, co se stane když… Na spoustu věcí jsem si musel přijít sám (víte třeba jak na procesoru, co umí akorát sčítat a odčítat, udělat násobení? Znáte aspoň tři způsoby?), ale většinu věcí jsem odhalil při nekonečném disassemblování cizích programů a zkoumání toho, jak to funguje. Když se mi dostal do ruky Machine Code Tutor, už mě nic nového nenaučil.

Tehdy mi chyběly hlavně dvě věci: Možnost si naučené ihned vyzkoušet, a zjistit i něco víc než jen seznam instrukcí a jejich chování. Třeba právě to násobení. Nebo jak převést číslo na jeho desítkové vyjádření v ASCII kódech, a naopak.

A právě tohle bych chtěl ve svém kurzu napravit. Zatím tedy probírám instrukce jednu po druhé, ale v každé lekci máte embedovaný editor + assembler + debugger, kde si můžete kód přeložit a otestovat jeho chování, popřípadě si ho poupravit, podívat se, jak se chová upravený, … No a v samotném textu dělám odbočky k různým algoritmům.

Proč to vlastně všechno dělám? Zaprvé mě to baví. Je to „stará programátořina“, co voněla člověči… kruci! Páchlo to křemíkem, tak! Hodně mě udivuje, že si takovou spoustu věcí pamatuju (až na detaily píšu většinu Strojáku z hlavy). Asi mě taky trošku vyprovokoval ten člověk, co se ptal, jestli mají osmibitové triky ještě dneska uplatnění. A tak „vyprazdňuju buffer“ a dávám ven znalosti, co jsem za ty roky načerpal.

Takhle jsme si zdobili kazety... Někteří teda... :) Tohle byla kazeta s programama pro PMD-85

Takhle jsme si zdobili kazety… Někteří teda… 🙂 Tohle byla kazeta s programama pro PMD-85

Ovšem retro je správné retro až když máte doma počítač, na kterém jste začínali. Takže mně se sešlo doma PMI-80 a ZXS 128+2A.

Komerční vsuvka: Lidi, jestli máte doma nějaké takovéhle osmibitové legendy, chcete se toho zbavit a je vám líto to vyhodit, dejte mi vědět. Já se toho rád ujmu. Ostatně, bude to pro dobrou věc (záchrana počítačového genofondu nebo tak něco).

WP_001293

Vzal jsem svoje staré kazety, nejstarší z roku 1986, a zkusil z nich něco na to Spectrum nahrát. Použil jsem kazetu, kam mi předčasně zesnulý Lukáš Ladra zkopíroval základní sadu her: Chip Factory, Dynamite Dan, Saboteur, Kokotoni Wilf, Knight Lore, Alien 8, Manic Miner, Starquake, Jet Set Willy II, Sabre Wulf a Atic Atac. A k tomu New Poke Magazín. Zapnul jsem nahrávání, napsal LOAD „“ a – začala se nahrávat Chip Factory. Za chvíli po obrazovce chodily figurky (upřímně řečeno, pro mne má Chip Factory dodneška nepřekonaný loader). Bomba. Pak jsem zkusil jinou kazetu – Heartland, na první pokus nahráno. Pak jsem zkoušel další a další kazety, nakonec jsem objevil i to, že jsem v roce 1989 udělal nějaký TURBO systém pro zrychlené nahrávání, který používal sekaný piloťák, což, pokud nejste spectrista, nevíte, co je, a v něm byla uložena informace o rychlosti nahrávání. A k tomu i spoustu nějakých utilit! Nahrál jsem bez problémů svoje staré textovky… Žasnul jsem! Úplně upřímně: Ty kazety z let 1986-1991 dodneška fungují, což se o záložních DVD vypálených v roce 2007 rozhodně nedá říct.

WP_001294

Takže plán do nového roku je jasný: Ještě více osmibitů! To, co na těch kazetách mám, postupně zazálohuju, uložím někam do cloudů a kazety pietně zakopu pod bez. K tomu mám nějaké plány s emulátorama a JavaScriptem, chtěl bych se rozkročit ještě směrem k AVR a ARMům (ale kdo by psal programy pro ARM v assembleru?!) a v šuplíku čekají oprášená Arduina. Mimochodem, už jste viděli emulátor Arduina v JavaScriptu? 😉

Na Vánoce 1986 jsem dostal svůj první počítač. Byl to gumák ZX Spectrum. Víte, ono – mít vlastní počítač, nebo chodit jednou týdně do kroužku zkoušet něco na erárním, to je sakra rozdíl. A tak jsem na přelomu let 1986-1987 začal opravdu dělat s počítačem. Je docela symbolické, že jsem po osmadvaceti letech vytáhl tu samou kazetu a zkusil ty samé programy…

WP_001296

Tak jedem! Já se těším, a vám přeju, ať se taky máte v novém roce na co těšit!