Miroslav Němeček – historie, část I.
Každý z nás, kdo začínal s PC na začátku 90 let, prožil dobu, kdy DOS byl nekorunovaným králem všech dostupných počítačů. Každý z nás měl své oblíbené hry a programy, na které jistě rád zavzpomíná. Mojí nejoblíbenější hrou byl VLAK a nejoblíbenější aplikací DOS MANAŽER. Oba dva tyto programy mají společného autora, Ing. Miroslava Němečka. A protože mi skoro každý týden zasíláte prográmky a utilitky od tohoto autora, požádal jsem ho, zda by zavzpomínal a poskytnul pro náš WEB rozhovor o době, která tvořila budoucnost.
Začněme tedy od začátku. Kdy jste se poprvé setkal s počítačem?
S prvním počítačem jsem se setkal na střední škole na branném dni Svazarmu. Byl jím Sinclair ZX81. Obdivovali jsme tento technický zázrak a především předváděnou hru "Dělo" spočívající ve střelbě na cíl pod zadaným úhlem a se zadanou rychlostí. Dělo bylo znázorněno černobílou "kostičkovou grafikou" s výstupem na přenosný televizor Merkur.
Předpokládám, že nezůstalo jen u něho?
Později jsem se setkal v Amatérském rádiu s popisem 8-bitového procesoru Intel 8008 se 14-bitovou sběrnicí. Hltal jsem popisy instrukcí a uchvacovaly mě možnosti, co takový jeden integrovaný obvod vše dokáže. A přál jsem si se s ním setkat.
Technice mikropočítačů jsem propadl natolik, že jsem si začal na vysoké škole stavět svůj vlastní mikropočítač na bázi 8-bitového procesoru U880D (východoněmecká obdoba Z80) za vydatné pomoci stavebnice zveřejňované tehdy v Amatérském rádiu. Většinu částí jsem si navrhl vlastní. Především zobrazovací kartu. Pracovala sice v černobílém znakovém režimu (statické paměti MHB2114, ROM generátor znaků), ale umožňovala i čtverečkovou pseudografiku. Paměťový modul byl sestaven z dynamických pamětí MHB4116. Transformátor mi nechal navinout spolužák v nějakém závodě. Bohužel největším zádrhelem byla sběrnice z plošného spoje, která se mi mírně podleptala a tak byly trochu problémy se spolehlivostí. A také proto, že namísto těžko dostupných FRB konektorů jsem použil objímky pro integrované obvody. Klávesnici jsem si vyrobil membránovou, ze staniolu a fotopapíru nalepeného na plošném spoji.
Vaše začátky s počítači byly přes hardware, a jak jste se dostal na programování?
Když se mi počítač podařilo rozchodit, byl to jen „kus holého železa“. Ze začátku ovšem neměl žádný firmware, takže první hraní si s ním znamenalo připojit k němu řadu přepínačů Izostat a při každém zapnutí nejdříve namačkat krátký zaváděcí program pomocí DMA přenosu. To znamenalo: přepínačem zamknout DMA, resetovat CPU, nastavit na přepínačích binární kód bajtu programu, zmáčknout zápis do paměti a pokračovat takto pro všechny ostatní bajty programu. Nakonec odemknout DMA a nechat CPU rozběhnout zas od nuly. Tento úvodní program obsahoval základní monitorový program s obsluhou klávesnice a displeje. S jeho pomocí jsem v HEX kódu naťukal zaváděcí program, který sloužil k natažení programu z magnetofonu. Datový formát vycházel z formátu tehdy nejúspěšnějšího herního počítače ZX Spectrum. Psaní programu představovalo naťukání programu v HEX kódu (ten jsem měl již ručně zkompilovaný na papíře - jistě si umíte představit ruční „realokaci“ při vložení instrukce do středu programu), napsání kódu pro uložení na magnetofon a poté jeho uložení na magnetofon.
Takže Váš první program byl firmware (BIOS)?
Vlastně ano. Po prvních seznamovacích pokusech jsem si již troufnul k napsání firmware do svého "PC". Měl jsem pro něj připravenu paměť PROM 1 KB. Tehdy ještě nemazatelnou, těžko sehnatelnou a také drahou. Proto jsem měl jen jediný pokus, který musel vyjít. Stále dokola jsem procházel program firmware a hledal možné chyby. Vyzkoušení předem nebylo možné. Když jsem vývoj uzavřel, předal jsem zdrojový kód spolužákovi, který mi jej vypálil na svém ZX Spectru. Vložil jsem PROM do počítače, zapnul - a ono to skutečně fungovalo a dokonce bez chyby. Bylo možné psát programy v HEX kódu, ukládat je na magnetofon a načítat zpět.
A po skočení vysoké školy, předpokládám, rovnou do náruče programování ……… ?
Kdepak, po skončení vysoké školy (1986) rovnou do náruče vojny :-). Ale měl jsem štěstí. Byl tam zakoupen počítač Sharp MZ-821, se kterým jsem si mohl ve volných chvílích hrát a jehož grafické schopnosti i hardwarové a softwarové vybavení mě uchvátily. Zpočátku jsme na něm hráli hry, které kolegové bůhví odkud sháněli. Poté jsem začal psát vlastní programy v Basicu a začal tento počítač znát skutečně důkladně. No a nakonec jsem začal luštit jeho vnitřní kód. Postupně jsem si vypisoval obsah jeho monitorového programu a poté i Basic interpreteru a některých dalších programů a luštil je. Nebylo možné použít disassembler, takže vše jsem dělal z HEX výpisu pomocí tabulek instrukcí, které se brzy staly zbytečné, když jsem si kódy již pamatoval. Popsal jsem takto mnoho sešitů instrukcemi procesoru, jejichž význam jsem pak luštil, až mi bylo jasné, co která část programu dělá. Myslím, že luštění cizích hotových programů mi dalo nejvíce programátorských znalostí.
Po návratu z vojny jsem byl zaměstnán v Tesle Rožnov jako technik počítačů Robotron. Nepřitahovaly mě ale velké sálové počítače, specializoval jsem se na periferní zařízení založená na 8-bitových procesorech U880D. Opět zvítězila touha po poznání a tak jsem znal mnoho zařízení nejen po hardwarové stránce, ale i po stránce vnitřního software. Jednalo se např. o tiskárny K6314, o terminály UBT a BDT. Mezi nimi i mikropočítače K5120 s operačními systémy SIOS (interpreter vnitřního binárního kódu) a SCPX (varianta systému CP/M).
A další sešity byly popsány ……… :-)
Ano, mnoho nových sešitů se plnilo výpisem disassemblovaných programů. Nejzajímavější pro mě byl právě systém SCPX. Vytvořil jsem si na pomoc i program pro zpětný překlad kódu. Nebyl však jen prostým disassemblerem. Bylo možné určovat, která část kódu jsou data a která program a jak se má která část překládat. K tomu sloužila i funkce automatického trasování, kdy program projel překládaný kód a snažil se uhádnout, kterými všemi místy program může procházet. Navíc vytvořil návěští skoků a datových míst. Poté následovala ruční analýza kódu s podporou programu, kdy bylo možné ještě upřesňovat způsob překladu. Při vepsání komentáře program zobrazoval komentář i u všech referencí na dané místo.
Naše čtenáře by také zajímalo, kdy jste se poprvé setkal s počítačem v dnešním slova smyslu, tj. IBM-PC?
Poprvé jsem spatřil počítač řady IBM PC v roce 1988, kdy si mě šéf zavolal, abych mu poradil, jak se takový počítač používá. Byl to zbrusu nový Robotron XT 5 MHz s 20 MB harddiskem a černozeleným monitorem. Předvedl jsem mu pár příkazů z prostředí CP/M (jako DIR, TYPE a Ctrl+P), které kupodivu fungovaly i v systému DOS. Počítač se začal používat pro databázové systémy, ale mimoto načerno i na hry. Časem jsem do něj začal také zabrousívat a seznamovat se s PC programy.
Po nějaké době bylo zakoupeno ze Slušovic několik nových počítačů PC-AT 12 MHz s harddiskem 40 MB (každý údajně za 470 tisíc) a k nim mnoho disket se software. Jednalo se většinou o anglické programy, které byly v binárním kódu počeštěny a vepsán copyright Slušovic. Začal jsem PC také bohatě využívat, kromě vlastní softwarové tvorby i jako CAD stanici (OrCAD a Redboard).
A tam asi začalo i programování pro PCéčka ……… ?
Ano. Při práci s PC se objevila potřeba usnadnění manipulace se soubory, k čemuž sloužily souborové manažery. K mým nejoblíbenějším prostředkům patřil souborový manažer Ergo a textový editor Context. K editoru Context jsem napsal ovladače pro podporu češtiny a práci v grafickém i textovém módu a po další roky jsem ho používal jako hlavní programátorský editor. Souborový manažer Ergo byl časem vytlačen programem PCTools (PCShell) a ten poté nahrazen geniálním programem Norton Commander.
Brzy se začal objevovat strašák softwarové policie a potřeba software legalizovat. Ceny software byly tehdy ještě nepřijatelné i pro podnik a tak se objevil návrh, abych zkusil vytvořit náhradu za nejpoužívanější z programů - Norton Commander. Zkusil jsem to - a tak v roce 1990 vznikl program MNShell, později přejmenovaný na DOS Manažer. Jeho obliba v podniku rychle rostla, až se objevila myšlenka opustit zaměstnání a pustit se do podnikání. Toho se chytla firma Golem, zabývající se tehdy ochranným systémem Hradba (sloužícím k ochraně před ilegálním kopírováním programů) a nabídli mi spolupráci a své bohaté podnikatelské zkušenosti. A tak jsem opustil zaměstnání a vrhl se do podnikatelské sféry.
Takže od této chvíle jste se začal živit jako programátor na plný úvazek ?
Vlastně ano. Spolu s DOS Manažerem vznikala i hromada jednoúčelových utilit (která časem dosáhla počtu 250, vše v assembleru), která byla spolu s ním dodávána. Mezi nejzajímavější a nejpopulárnější patřil např. ovladač české klávesnice, který v miniverzi zabíral na disku přesně 1 sektor (512 bajtů) a v paměti 256 bajtů. Bohatší verze (CSKEY) zahrnovala několik variant rozložení a znakových sad (včetně speciálností jako generátor rámečků) a šířila se mezi lidmi jako shareware. Od spokojených uživatelů CSKEY jsem obdržel nejednu poštovní poukázku. Zajímavý byl též ovladač češtiny pro displeje. Miniverze zabírala na disku 422 bajtů, v paměti 336 bajtů a pracovala přímým přístupem na hardware syntetickým doplněním diakritických znamének do existujících znaků. V současnosti jsou všechny zdrojové texty programů volně k dispozici - buď už přímo ke stažení (http://sweb.cz/Panda38 nebo jiná část na http://mnsoft.wz.cz) nebo na vyžádání (není čas je všechny připravit, takže spíše po dohodě).
Pracoval jsem dále na rozpracovaném programu DOS Manažer (v assembleru) a spolu s ostatními členy firmy Golem jsme jej začali uvádět na trh. Program byl nadmíru úspěšný. Bylo na něj v mnoha časopisech vydáno mnoho kladných recenzí. Vzpomínám na výstavu Invex 1991, na kterou jsme přivezli 10 počítačů XT z Nového Boru s barevnými monitory. 8 z nich jsme zavěsili na stropní konzolu (ne konzoli :-) ) stánku, 2 zůstaly jako záložní. Na všech monitorech běžely barevné poutače, především na program DOS Manažer. V této době grafika na počítačích teprve vznikala a tak tyto 16-barevné poutače velmi přitahovaly pozornost všech kolemjdoucích.
Poutače byly vytvořeny v programu Animator, který jsem pro tento účel tehdy vyvinul. Byl to programovací nástroj s vlastním jazykem zaměřený především na tvorbu animací. Umožňoval práci v grafickém i textovém režimu, měl vlastní formát obrázků (včetně obrázků v textovém režimu), které se daly získávat snímáním obrazovky programů. Kromě poutačů jsem v tomto nástroji vytvořil například hru Privatizace. Každým rokem v něm vznikala PF novoroční animovaná přání, která se stala dost populární.
Pokračování příště………………………… :-)