<< Zpět

 

 Česky: , English:

Rozhovor pro FREEPORT MAGAZINE #14, vyšlo 30.4.2026

PDF verze rozhovoru

V rubrice Rozhovor jsme si povídali s programátorem Mirkem Němečkem nejen o kultovním Vlaku a PicoPadu, ale třeba také o tom, jaké je bare-metal programování na Rasperry Pi. Marcel Mojžíš, šéfredaktor

Na rozhovor do čtrnáctého vydání Freeport magazínu přišel veterán českého programování, jehož výtvory nemohly uniknout nikomu, kdo v devadesátých letech přičichl k počítači. DOS Manažer, Vlak, Mravenci nebo Petr je jen malá výseč produktů autora Miroslava Němečka, kterého můžete také znát pod pseudonymem Panda38.

Ahoj, moc děkuju za tvůj čas na rozhovor pro Freeport. V perexu tě představuji jako programátora. Jak bys se čtenářům představil ty?

Programátor, nebo možná spíš hračička. Rád si hraji s tvorbou hezkých věcí (smích).

Jak ses dostal k prvnímu počítači a kdy sis uvědomil, že nechceš být jen uživatel?

První počítač? Tak to bude Sinclair ZX81, se kterým jsem se setkal na střední škole na branném dni Svazarmu. Do té doby jsem neslyšel nic o nějakých počítačích. Byla tam ukázka hry Dělo, kostičková grafika na televizoru Merkur. Vypadalo to úžasně a zábavně. Ale i dnes mě počítače Sinclair uchvacují. Matematika tam byla řešena geniálně, až mě to v pozdějších letech přivedlo k vytvoření klonu ZX81 s vlastním firmwarem. Matematiku jsem později využíval i ve svých kalkulačkách.

Co tě přivedlo k postavení svého prvního počítače?

S počítači jsem se dále setkával v časopise Amatérské Rádio. Líbil se mi popis procesoru Intel 8008. Pročítal jsem popisy instrukcí a snil o tom si s takovou technikou pohrát. Později vycházely v Amatérském Rádiu popisy na stavbu vlastního počítače na bázi procesoru U880D, což je obdoba Z80. Byl jsem na vysoké, když jsem začal vymýšlet vlastní konstrukci - sběrnice, řadič displeje, paměti MHB4116. Nejdříve se musel na přepínačích Isostat přes DMA namačkat základní firmware, pak na membránové klávesnici napsat loader pro nahrávání z kazety. Později mi spolužák vypálil firmware do PROM 1KB, to už byl luxus.

Jak ses stal programátorem?

Původně jsem elektrotechnik slaboproudař. K elektrotechnice mě přivedla knížka "Šolim, já a tranzistory", kterou jsem objevil v otcově knihovně. Ještě na střední jsem se účastnil soutěže Integra 1978 v Rožnově pod Radhoštěm, kde jsme si letovali zesilovač s MDA2010. A dostali pytlík se součástkami. A to bylo úžasné, ty nádherné integrované obvody a tranzistory. Díky tomu jsem si Teslu Rožnov zamiloval a způsobilo to, že po vysoké jsem tam šel pracovat jako technik počítačů Robotron.

Na škole jsme měli jen výuku Fortranu. Po skončení vysoké jsem se na vojně setkal s počítačem Sharp MZ-821. Ty hry mě uchvátily. Proto jsem si po vojně tento počítač také pořídil a začal na něm i něco tvořit. Samozřejmě hlavně v assembleru Z80. Ale nakonec mě ještě více přitáhl počítač Robotron K5120, který jsme měli v práci. Byly tam 8" diskety, operační systémy SCPX (varianta CP/M 2.2) a SIOS (bankovní systém). Disassembloval jsem programy a systém, tisknul si listingy a rozpitvával je do detailů. Podobně jsem rozpitvával i firmware tiskáren a terminálů. Myslím, že tato doba mi dala nejvíce zkušeností a informací.

Později nám do Tesly přibyly i počítače Robotron XT a PC-AT. Přešel jsem tak od CP/M a Z80 k počítačům PC a procesorům x86. Samozřejmě opět pokračovalo rozpitvávání programů, systému DOS a BIOS. Vlastní programy jsem psal v assembleru. Důvodem bylo především to, že jsem viděl, jak jsou cizí programy ve vyšších jazycích pomalé, rozměrné a těžkopádné. Vždy jsem si říkal - raději do toho vložím více své práce, aby to pak u uživatelů bylo malé a rychlé. To se vyplatí.

Bylo složité dostat se na přelomu 80. a 90. let ke znalostem a nástrojům umožňujícím vývoj software?

V době socialismu sice u nás existoval autorský zákon, ale nepamatoval na software, protože to byla příliš nová oblast. Považovalo se za běžné, že se software získával nelegálně. Zpočátku nebylo moc zdrojů, jak a kde software získat. Byli jsme proto rádi, když se podařilo od někoho něco zkopírovat. S informacemi to bylo ještě horší. Pro mne bylo velkým zdrojem informací analyzování cizích programů. K tomu různé utržkovité informace, kde se co našlo. Jako nejlepší zdroj informací se později stal "Ralf Brown's Interrupt List".

Jedním z tvých prvních hojně užívaných programů byl DOS Manažer z počátku 90. let. Jaký problém řešil a proč se stal tak populárním?

Při používání PC byly potřeba souborové operace. Zpočátku jsem používal programy PC-Shell a Ergo. Pak přišel Norton Commander - konečně opravdu příjemný a pohodlný souborový manažer. Po Revoluci ovšem nastal problém - začalo se strašit s legalizací software a kontrolou legálnosti. To mě přivedlo k myšlence vytvořit vlastní souborový manažer, který by nahradil nelegální Norton Commander. DOS Manažer jsem začal vytvářet ještě když jsem byl v Tesle. Začal se tam používat jako legální souborový manažer.

DOS Manažer způsobil, že jsem později Teslu opustil a vydal se na podnikatelskou cestu. Stalo se to tak, že Josef Kaňovský z firmy Golem se obrátil na mého šéfa, zda neví o někom, kdo by otestoval jejich ochranný systém Hradba, zda lze cracknout. A on mu doporučil mne. Tak jsme se seznámili. Ovšem trochu jsem je zklamal - v Golemu chtěli slyšet, že Hradba je neprůrazná. Vzal jsem program DEBUG, krokoval slupky ochranného systému a připisoval patche, které ty slupky postupně odstraňovaly. Ano, byla to dobrá ochrana, spousta protiladicích chytáků, ale přece jen... A tak jsem odešel z Tesly a spolu s Golemem jsme začali DOS Manažer nabízet komerčně.

DOS Manažer se stal naším nosným produktem. Jeho hlavní předností bylo, že byl malý a rychlý. Protože byl psaný v assembleru. Vznikla i minimalistická verze Mikroman, jen s nejzákladnějšími funkcemi. Ta měla původně sloužit jako demo DOS Manažeru, ale našla si své místo, a dokonce ji údajně používají lidé na svých retro strojích ještě i dnes.

Později vznikla zcela nová verze DOS Manažeru, v2.0, která byla mnohem bohatší na funkce jako např. kalendář, kalkulačka, databáze. V té době se objevily Windows 95. DOS Manažer 2 podporoval pod Windows 95 dlouhá jména jako jediný ze souborových manažerů té doby. Bohužel díky Windows přestávaly být souborové manažery pro lidi zajímavé a postupně upadaly.

První videohrou, se kterou jsem se od tebe setkal, byl kultovní Vlak. Byla to tvá první naprogramovaná videohra?

Hru Vlak předcházelo mnoho utilit a hříček, na kterých jsem se učil pracovat s PC grafikou. Spíše menší pokusy jako např. hra Privatizace, kterou jsem tvořil ve vlastním programovacím nástroji Animátor. Vlak byla zpočátku jen malá hříčka - varianta hry Had. Ale jaksi se to postupně rozvinulo na 50 scén. A z nějakého důvodu se to lidem zalíbilo, dodnes netuším proč.

Jaký je tvůj vztah k videohrám? Hraješ hry, nebo jsi je v minulosti hrál?

Hry jsem hrával, občas stále hraji. Mým největším celoživotním "nej" je hra Might and Magic 6. Ta mě před 30 lety přivedla k myšlence vytvořit v Petrovi 3D engine, který se stal jednou z nejvýznamnějších vlastností Petra a stále se k ní vracím.

Teď jsi zmínil tvůj programovací nástroj Petr. V čem byl Petr ve své době zajímavý?

Petra jsem zpočátku vytvořil pro svého syna, protože chtěl také v něčem programovat. Začátečnické programovací nástroje té doby, které jsme zkoušeli, byly nepoužitelné. A tak jsem vytvořil grafický programovací nástroj vhodný i pro nejmenší. I dcera v Petrovi programovala. Proti jiným podobným nástrojům měl Petr přednost především v tom, že byl snadno použitelný, měl silné vybavení a byl velmi rychlý. Vnitřně to je interpreter, přesto ale se kód provádí velmi rychle.

V minulosti ses pustil i do vlastního operačního systému. Co tě k tomu přimělo?

Mám takovou nemilou vlastnost, že když se mi něco nelíbí, mám nutkání vytvořit vlastní verzi podle svých představ. Nelíbila se mi koncepce Windows. Ale Linux mě zklamal ještě víc. Chtěl jsem vytvořit něco, co bude propracované, rychlé a celkově dokonalé. Ale až časem mi došlo, že na něco takového bych potřeboval desítky let - a to už bude zastaralé. Tak vzniklo první torzo systému Litos v assembleru, které sice "něco" dělalo, ale k použitelnému stavu by to mělo ještě daleko. Ale některé myšlenky z Litosu používám dodnes - systém měření času, kalendáře s rozsahem 60 tisíc let a rychlý dlaždicový alokátor paměti.

V nedávné době jsem objevil mini herní konzolku PicoPad. Je to víc o programování, nebo o bastlení HW?

PicoPad vznikl tak, že mě zaujal modul Raspberry Pico. Jevil se být velmi výkonný a snadný na používání, a přitom pro něj tehdy neexistoval skoro žádný software. Hlavní na projektu bylo napsání SDK knihovny pro Pico, na jejímž základě pak vznikaly ukázkové programy pro PicoPad včetně portů mých starších her jako např. Vlak nebo Mravenci. Na SDK jsem se hodně "vyřádil". Dá se říct, že obsahuje shrnutí mé tvorby z minulých let. Zajímavé jsou např. double a float knihovny pro RP2350, ve kterých jsem vycházel ze zkušeností ze ZX81 - používání Čebyševových polynomů k výpočtům funkcí.

Pro koho je PicoPad vhodný?

PicoPad se stal oblíbený zřejmě hlavně kvůli hardwarové koncepci - malá kapesní konzole s malým displejem a baterkou s možností snadného programování. PicoPad je možné programovat buď v C pod mou SDK knihovnou, nebo v Pythonu. Programátor má plný přístup k hardwaru konzole, dobrou dokumentaci a mnoho příkladů. Lidé ho používají k psaní vlastních her i k obsluze periferií.

Změnil se nějak tvůj přístup k programování v průběhu let? Co říkáš na umělou inteligenci a trend "vibe codingu"?

Vše se vyvíjí. Na začátku jsem programoval jenom v assembleru. Časem jsem přešel na C a C++. Dnes jsou C překladače už tak efektivní, že se jim assemblerem špatně konkuruje. A především - takový program lze přenášet do jiného prostředí. Tedy dnes už tvořím 90 % v C/C++ a jen některé kritické části v assembleru (teď hlavně ARM a RISC-V). V poslední době jsem si velmi oblíbil používání AI. Je to velký přínos k práci. Nejraději mám Copilota. Diskutujeme o problémech, radí mi postupy, kontroluje mé kódy. Je to úžasné zefektivnění práce.

Jaké nástroje a zdroje informací bys doporučil někomu, kdo se chce v dnešní době pustit do programování?

Je těžké něco doporučovat, když celý svět dnes programuje v Pythonu nebo rozsáhlých IDE prostředích. Dřív jsem používal různá prostředí, ale časem jsem přešel jen na nejzákladnější GCC překladač překládaný příkazovým řádkem. Programy edituji FAR Managerem. A musím říct, že se mi velmi ulevilo od doby, co jsem se zbavil všech těch balastů kolem, které mě jedině zatěžovaly. Takhle je to nejjednodušší - napíšete program v textovém tvaru, přeložíte, nahrajete do mikročipu a jede to. Žádné zápasení s nefunkčními cizími prostředími nebo operačními systémy - co napíšete, to program dělá.

Na jaký svůj výtvor, ať už SW či HW, jsi nejvíce pyšný?

Co se týká her, tak nejvíc jsem si vždy cenil své hry Třináct duchů. Tu jsem tvořil v Petrovi pro soutěž Becherovky. Byla to hra, na které jsem si dal nejvíce záležet. Ladil jsem textury a scény, aby byly opravdu perfektní a aby program byl malý a úsporný. Proto jsem byl trochu zklamaný malým zájmem o hru. Ale tak to bývá vždy se vším - popularita obvykle nesouhlasí s představami autora, viz např. hru Vlak. Ale jinak je to tak, že nejvíce se těším na věci, které teprve vzniknou a "budou úžasné". Zatímco věci, které už jsou za mnou, mi přijdou málo zajímavé.

V čem pro tebe spočívá kouzlo hry Třináct duchů?

Na té hře se mi líbí především grafika. Jistě existují hry s kvalitní grafikou, ale tady se podařilo textury redukovat na skutečné minimum, aby byl program malý, ale přesto dobře koukatelný, k čemuž přispěly např. multitextury. Je to 13 hlavolamů každý z úplně jiné oblasti. Některé skutečně těžké. Je tam i jedna scéna s emulátorem vláčku - její zadání jsem vymýšlel 2 dny a je to jediná scéna, kde jsem přidal i nápovědu, protože jsem předpokládal, že bude pro hráče těžko řešitelná. Zatím jsem neslyšel o nikom, kdo by tuto scénu vyřešil bez nápovědy.

Užíváš si důchodu, nebo pracuješ na nějakém dalším zajímavém projektu?

Z práce jsem odešel 5 let před důchodem a žiji teď z vlastních úspor, a to z jediného důvodu – abych konečně mohl tvořit věci podle svých představ. Proto vznikl PicoPad a jeho SDK knihovna. Po PicoPadu to byly super levné procesory CH32V, knihovna CH32LibSDK a malé levné herní konzole s těmito procesory. A teď mám zas dalšího nového koníčka - moduly Raspberry Pi, na které píši bare-metal SDK knihovnu. Především modul Zero 2W. Tento modul je sice velmi výkonný, ale bylo ho možné používat pouze se systémem Linux, což programátora velmi omezuje. V bare-metal prostředí na něm lze tvořit úžasné věci. Tato oblast mě teď velmi uchvátila a věnuji jí veškerý čas. Ale samozřejmě jinak je v pořadníku ještě mnoho projektů, které bych rád ještě někdy stihnul, pokud mi to roky života ještě umožní - jako např. výkonná grafická kalkulačka s extrémní přesností.

Jaké máš plány s modulem Zero 2W?

Tak především malý stolní počítač na hry i kutilství. Což by nebylo tak neobvyklé, k dispozici je např. Raspbian. Pointa spočívá v bare-metal. To znamená, že počítač lze provozovat bez operačního systému podobně jako jiné mikročipy. Po zapnutí se během 2 sekund zobrazí okno pro výběr programů z SD karty, které lze spustit. Programy jedou velmi rychle, protože procesor není zatížen multitaskem systému - má veškerý hardware plně k dispozici. Z pomalého loudy se tak stává výkonný počítač. Programování je zde skutečně příjemné, protože Zero 2 poskytuje dostatek paměti i výkonu. Pro kutily a hračičky ideální zařízení. Trochu se tím vracíme do dob DOSu, kdy jsme na PC spouštěli také jen jeden program a stačilo nám to. A tady máme k dispozici mnohonásobně větší výkon i paměť, než jsme měli tehdy.

Kladeš důraz na optimalizaci a efektivitu. To mi přijde, že se dnes tolik nenosí.

Je to tak, dnes optimalizace už nikdo neřeší a používají často jenom pomalé skriptovací jazyky, protože spoléhají na výkon hardware, takže výkonný PC dnes zvládne to samé jako dříve slabý PC.

Není pro programátora složitější vše obstarávat z aplikace bez OS?

Pro programátora je k dispozici SDK, která řeší problematiku hardware. Když je SDK dobře napsaná, tak je programování pro programátora stejně obtížné jako psaní pod systémem. Přesněji - je to jednodušší. Mám SDK pro Pi připravenou tak, že API je většinou kompatibilní s API pro SDK na PicoPadu, takže převod programů z PicoPadu na Zero 2 je poměrně snadný. Rozdíl je hlavně v tom, že na Pi je více paměti, rychlejší procesor, větší rozlišení obrazu (např. i FullHD). Programy tu jedou dost rychle. Pi má k dispozici i hardware akcelerátor a OpenGL - tyto oblasti jsem zatím nerealizoval, protože budou složitější. Pak pojedou hry opravdu rychle. Teď všechno realizuji jen 2D softwarovou grafikou, ale i tak je to velký přínos proti PicoPadu.

3D hry, až se tady zprovozní OpenGL, by tu asi mohly jet zhruba stejně jako pod systémem, protože hardware řeší akceleraci. Zrychlení je spíše u ostatních programů, které musí jet softwarově - jako např. emulátory, ty by tu měly jet dost rychle. Tak jsem zvědavý, až sem převedu emulátory NES a GameBoy, které jsem měl na PicoPadu, jak pojedou rychle. Konečně zde pojedou i GBC programy větší než 2MB, které na PicoPadu nemohly jet kvůli malé Flash paměti.

Plánuješ vydat kit podobně jako u PicoPadu?

Já bohužel nemám nějaké možnosti produkovat hardware - jen vyvíjím software a jen si bastlím prototypy, abych na nich mohl vyvíjet software. Zda se objeví nějaký hardware např. jako stavebnice, to je bohužel už v rukou jiných.

Zmínil jsi taky další malé levné herní konzole. Kde se dají sehnat a jak se liší od PicoPadu?

Tyto konzole využívají čínské procesory CH32V. Jsou zajímavé tím, že jsou extrémně levné. Nejlevnější typy jsou k dispozici za 3 Kč. Jsou podobné procesorům STM32, ale na rozdíl od nich používají instrukční sadu RISC-V. Jsou méně výkonné než procesor v PicoPadu, proto jsou vzhledem k ceně vhodnější spíše na velmi malá zařízení a hračky, kde mohou nahradit dražší integrované obvody. Vytvořil jsem s nimi pár jednoduchých malých herních konzolí a kalkulaček. Jde spíše o mini-hračky, než o plnohodnotné herní konzole. Nevýhodou procesorů CH32V ovšem je, že jsou k dostání jen na čínském AliExpressu. Bylo by lepší, kdyby je u nás někdo nabízel formou stavebnic. To je bohužel zatím v jednání. Existují teď jen prototypy zařízení a podrobné podklady k nim. Hardware si musí zájemce obstarat sám.

Kde si můžou zájemci stáhnout tvé freeware výtvory?

Mám svou osobní stránku https://www.breatharian.eu/Panda38, kde publikuji vše, co vytvářím. Kromě toho jsem aktivní především na síti X (Twitter) jako NemecekPanda38.

Občas se mě lidi ptají, proč je na mých stránkách uvedeno ukončení provozu. Lidé si totiž neuvědomují, že informace na internetu mají omezenou životnost, a to samé i lidé. Je mi teď 63 let, to už může být konec života v dohledu. Až tu nebudu, mé www stránky zmizí. Tedy upozorňuji na tuto skutečnost varováním, že provoz stránek může být ukončen - aby si zájemci včas postahovali informace, o které mají zájem.

Moc děkuju za tvůj čas a přeju hodně dalších úspěšných projektů!

Pro více informací klikni sem:

 

<< Zpět