3, 2, 1 ... Calm Commander
Jelikož jsem poslední týdny trávil volný čas tím, že jsem pracoval na hudebním přehrávači NextPlayer pro ZX Spectrum Next, chtěl jsem se trošku odreagovat a odpočinout. A jak odpočívat nejlépe, než novým "projektem", který se dá realizovat v assembleru. V NextPlayeru jsem si vyzkoušel práci s adresáři, načítání souborů, práci s LFN... a tak mne napadlo zkusit vytvořit pro ZX Spectrum Next souborový manažer.
Kdysi dávno, předávno, před mojí velkou pauzou od ZX Spectra, kterou někteří oslavovali, možná se ale některým i zastesklo, jsem pracoval celkem intenzivně na souborovém manažeru pro diskový řadič MB-02+. Takže teoreticky vím, co se od takového programu očekává a co by měl umět. Začal jsem si s touto myšlenkou pohrávat čím dál víc, až to došlo do stádia, že jsem si řekl, za pokus nic nedám.
Jelikož se jedná o program určený přímo pro ZX Spectrum Next, chtěl jsem aby využíval co nejvíce možností tohoto počítače. A jak se v poslední době u mě stalo zvykem (ve spojitosti s Nextem) napsal jsem ped7govi, kterého jsem požádal, zda by mi nevysvětlil textový mód u ZX Spectra Next (tilemap). Ped7g mi půl hodiny vypisoval co to je, jak se to nastavuje, jak se definují fonty/grafika, palety a atributy. Po půl hodině jsem měl sto chutí rozmlátit hlavou zeď, protože jsem rozuměl cca 10 procentům toho co mi ped7g napsal. Začal jsem tedy studiem zdrojových kódu co mi ped7g poslal (utilitka displayedge) s tím, že je to jednoduché a určitě to pochopím. Druhý den jsem se ozval znova, protože jsem se nikam nepohnul, nic jsem nepochopil a připadal jsem si jak totální idiot.
Ped7g mi tedy udělal druhé školení (čti školení pro blbce), kde mi vysvětlil dopodrobna co a jak a popsal kus kódu, který inicializuje tilemap (rozlišení 80x32) na Nextu. Po cca 10 minutách mi na obrazovce v levém horním rohu svítilo velké tiskací písmeno A. Menší zádrhel byl ještě u atributů a palet (nečekejte od člověka odkojeného ZX Spectrem, že mu tyto pojmy budou známé), ale za cca 2,5 hodiny jsem měl základní obrazovku vznikajícího souborového manažeru (levý a pravý panel, horní a dolní menu).
Pak začala práce již velmi rychle: výpis souborů do oken, přepínání oken, pohyb kurzoru v okně, listování souborů v okně, rozbalení horního menu a pohyb v něm. Za 2 dny mám program, který umí toto vše a už jen chybí dodělat ty diskové operace: kopírování, mazání, přejmenovávání atd... je toho spoustu. Ale je sranda vytvářet něco, co jsem už dělal a tak se mohu vyvarovat chyb, které jsem dělal a použít to co fungovalo. Ze zdrojáku MB Commanderu veskrze nemůžu použít nic (práce s diskem je jiná, zobrazování také), ale know how (nebo jak to napsat, použít jde a je vidět, že jde práce od ruky.
A proč píši tento článek? Je další týden a nová verze NextPlayeru nikde, tak abych uklidnil Vaše vystrašené duše, chtěl jsem aby jste věděli, že jsem se na ZX Spectrum nevykašlal a dále programuji v assembleru Z80 - i když tentokrát je to trošku jiný assembler než jsem zvyklý. Jetě jsem chtěl vysvětlit název programu: On se nabízel název Next Commander, ale ten nechám někomu, kdo bude trpět výpadkem fantasie při vymýšlení názvu svého programu. Na ZX Evolution existuje souborový manažer jménem Wild Commander. Co jsem viděl, jedná se o velmi zdařilý kousek softwaru, takže když rusové vytvořili divokého kormidelníka, my budeme mít klidného. ;)
Na obrázku vpravo můžete vidět aktuální stav Calm Commanderu.