GOLEM bol balík modulov umožňujúci zápis dát zo šiestich terminálov na disk počítača SMEP a následný prenos na magnetickej páske na počítač JSEP.
Ako to všetko začalo
V časoch keď sa objavili prvé minipočítače SMEP boli veľké počítače JSEP napr. EC1030 kŕmené dátami z diernych štítkov. Zmena začala este predtým udalosťou v Prahe. V podniku pre zahraničný obchod (PZO), kade išiel import zo Západu, vyhorela dierovňa diernych štítkov. PZO mal kontakty na zastupiteľstvo firmy Robinco A.G. v Zürichu, ktoré dodávalo do Československa kancelársku techniku. A tak sa stalo, že dierovňu nahradil minipočítač americkej firmy PERTEC typu PCC 2100 . Pozri tu vo Wikipedii
Pracoval som vtedy v Slovenskej televízii a pražské a slovenské TV štúdio bolo ďalšie na rade v získaní tejto modernej techniky. Neskôr som prešiel do firmy Datasystém , kde som pracoval na softwarovej podpore už modernejších minipočítačov PERTEC XL 40 . Keď som v Datasystéme pracoval na štátnej úlohe, ktorej cieľom bolo vytvoriť programové vybavenie pre zber dát na báze minipočítačov SMEP , bol som obviňovaný, že som jednoducho prekopíroval čosi z PERTEC-u. Lenže PERTEC XL 40 mal iný procesor a programovať sa tam dalo elegantne v jazyku COBOL.
Môj šéf Ing. Karol Láger CSc. v podniku Datasytém kde som pracoval prišiel za mnou s úlohou aby som vypracoval návrh na štátnu úlohu Systém pre zber dát na báze minipočítačov SMEP. On vedel, že mám skúsenosti s PERTEC-om ktoré môžem využiť. Ovládal som programovací jazyk PL/I , COBOL , BASIC a Assembler. Lenže technické podmienky boli zúfalé. Slovenská SM 3-20 bola v tom momente len prísľubom.
Mal som k dispozícii ruský minipočítač SM 3-10, mozaikovú tlačiareň a jednoduchý terminál. Dnes už len obdivujem moju odvahu, či drzosť. Vyhradil som si čas na SM 3-10, lebo vtedy to nebol osobný počítač a prideloval sa tam programátorom čas, akýsi rozvrh hodín. Chcel som najprv vyskúšať čo sa dá urobiť a až potom definovať štátnu úlohu. Trochu netradičné riešenie. Asi za 4 dni som postavil koncept materiálu a teda ideológiu GOLEM-a.
Pri názve produktu som uvažoval aj o problémoch s presadením sa na federálnom trhu. Preto som zvolil názov blízky histórii Prahy tj. GOLEM . Ale oficiálne to malo názov
General On Line Entry and Modify
čo aj vystihovalo podstatu veci tj. zápis dát na disk z viacerých terminálov a ich zmeny. O možnosti exportu dát z disku na magnetickú pásku sa tam veľa nehovorilo. V tom čase moja SM 3-10 tuším ani nemala jednotku na magnetickú pásku.
Pre mladšiu generáciu ešte musím uviesť, že keď som pracoval v Datasytéme ako externý programátor pre zákazníkov, musel som robiť výkaz práce a moje odpracované hodiny sa fakturovali zákazníkovi. U štátnej úlohy som mal voľnú ruku a mohol som sa plne venovať tomu čo ma bavilo a učtovať na štátnu úlohu. Vedel som, že užívateľská sféra čosi také ako GOLEM potrebuje. Nejednalo sa teda o výskum pre výskum alebo do šuplíka.
Vstup dát do počítačov trochu ináč
Idea bola umožniť užívateľom definovať si svoju štruktúru vety (record). Na diernom štítku nebola žiadna štruktúra. Bolo tam možné zapísať 80 znakov. Obsluha, obvykle šikovné ženy nevideli čo píšu, teda dierujú. Ukážme si jeden primitívny príklad , odmena je v Kčs nie v Euro a malé písmená ešte počítače nevedeli :
Osobné číslo : 1250 Meno : Mrkvička Jan Odmena : 900
Na diernych štítkoch bolo potrebne dodržať pozíciu odmeny a vyzeralo to tam takto :
1250MRKVICKA JAN 900 1700ACS ARPAD 500
Akékoľvek chyby vždy kontroloval veľký počítač a dobré štítky niekam uložil a o zlých vypísal protokol o chybe. Chybné štítky bolo treba nadierovať znova a kolotoč sa opakoval. GOLEM umožňoval vstup dát na obrazovke a vyzeralo to tam takto :
OSOBNECI = 1250 MENO = MRKVICKA JAN ODMENA = 900
Operátorka zapisovala dáta za znakom = a vždy vedela kde je. Naviac predpis pre zápis tu nazývaný FORMAT blokoval možné chyby. Napríklad nebolo možne vložiť do položky (poľa) ODMENA nenumerické znaky AX12 ako na diernom štítku.
Celé kúzlo GOLEM-a zabezpečovala funkcia napísaná v assembleri ktorá riadila vkladanie dát. Paráda bola aj v tom, že aj iné služobné moduly systému používali túto funkciu. Bol to klasický problem, či bolo prvé vajce alebo sliepka. Stále sa vylepšujúce funkcie programovacieho jazyka GUBAS umožňovali rýchly postup vpred.
Mal som k dispozícii minipočítač SM 3-10 a až neskôr SM 3-20 . Najslabším článkom boli disky bulharskej výroby. Kedže som bol vyškolený technik na PERTEC kde bol podobný disk, pohľad na túto vzhľadom na PERTEC o generáciu oneskorenú techniku bol pre mňa zdrcujúci. Ale musel som pracovať s tým čo bolo k dispozícii.
Výber prostriedkov k dosiahnutiu úspechu
Na SM 3-20 bol k dispozícii operačný systém FOBOS , čo bola priama kópia sytému RT-11 od americkej firmy Digital. Mali sme výhodu v tom, že sme od Výskumného ústavu výpočtovej techniky v Žiline dostali zdrojové texty tohto operačného systému. Napriek tomu som sa do zmien FOBOS-u nehrnul, mali sme iné problémy. Ale zdrojové texty boli výborná učebnica toho ako programovať v Assembleri.
Bol k dispozícii programovací jazyk FORTRAN. Ten však bežal len na jednom termináli. V tých časoch bolo nereálne aby minipočítač bežal pre zber dát len pre jednu osobu. Naviac som mal kolegov ktorí mi trvdili, že FORTRAN sa nehodí pre dáta a ekonomické výpočty, ale len pre vedecko-technické výpočty. Až neskôr keď som pracoval u firmy kde všetko bežalo vo FORTRAN-e som pochopil, že to bolo zavádzajúce.
Ak odhliadnem od Asembleru bola posledná možnosť použiť Viac-uživateľský BASIC , skrátene VUBAS. Už vtedy bol programovací jazyk BASIC zatracovaný kvôli príkazu GOTO. Lenže zlý program v jazyku BASIC robí zlý programátor a nie zlý jazyk.
Keď sa neskôr na strednú školu dostal minipočítač SM 3-20 , profesori jasali. Mohli študentov učiť BASIC na viacerých termínáloch súčasne. Jeden môj známy profesor Ondrej Demáček používal na výuku program ODREM.BAS . Kedže sa volal Ondrej, myslel som, že to má niečo spoločné. Ale nie, študenti písali v prostredí jazyka VUBAS programy pre FORTRAN tak, že každy riadok začínal číslom ako v jazyku BASIC, potom tam písali rezervovane slovo REM aby to bolo syntakticky správne a ďalej už príkazy FORTRAN-u. Po vyučovacej hodine profesor spustil program ODREM ktorý vynechal čísla riadkov a REM a tak vznikol čistý zdroják vo FORTRAN-e . Ten sa skompiloval s výpisom , ktorý dostal študent nasledujúci deň do ruky. Týmto som len chcel zdôrazniť, že tu nechýbali schopní ľudia ktorí dokázali využiť to čo mali možno aj lepšie ako za veľkou mlákou.
Prvý krok bol dostať do jazyka VUBAS niektoré funkcie ktoré sme potrebovali pre GOLEM. Mali sme k dispozícii objektové moduly VUBAS, teda nie zdrojové texty. Bol aj nejaký návod ako pridať svoju funkciu v Assembleri. Bola to veľká sláva, keď sa to Ing. Melicharovi podarilo. Je prvá vložená funkcia vypísala na displej : Heureka, povedal Archimedes
A tak som začal chodiť za ním a kolegyňou Furkovou aby mi pridali dalšie možnosti. Samozrejme vzhľadom na málo pamäti bola snaha odbúrať napríklad goniometrické funkcie sinus a cosinus, ktoré sme nepotrebovali. Tak som sa stal odborníkom na reverzné inžiniertsvo. Z modulov v tvare .obj sa dal vyčítať pôvodný zdrojový kód v Assembleri. Samozrejme tam neboli komentáre a bolo treba pochopiť ako to niekto v Kalifornii u firmy Digital myslel. Začal som pochopiteľne u malých modulov. Keď som si myslel, že už to mám, kompiloval som môj .asm modul do .obj formátu a programom vo VUBAS som to porovnal s originálom. Keď som dosiahol zhodu, mal som vyhraté, ale len čiastočne. Potom bolo treba kód pochopiť a napísať si tam komentáre. Tak ako v Amerike, jeden riadok, jeden komentár.
Kompletný spätný preklad som ukončil až za pár rokov. V čase, keď už hviezda SM 3-20 pohasla a GOLEM bežal na minipočítačoch SM 4-20 a neskôr SM 52-11 .
Kurzorová adresácia bola nevyhnutná
V papierovej forme sa zachovali kópie displeja urobené na mozaikovej tlačiarni. Dnes to vyzerá smiešne, ale vtedy to bol úspech. Aby to tak fungovalo, bolo potrebné aby mal displej kurzorovú adresáciu. Teda každý text a tým aj vstup dát bolo možné umiestniť na pevnom mieste. Obraz na displeji CM7202 potom neroloval ako na klasickom starom displeji u SM 3-10 . Obrázky sú tu v fotogalérii nižšie.
Možno by som ja sám nemal takú odvahu, ale môj šéf Ing. Láger bol dobrý manažer. Vedel prezentovať výsledky svoho kolektívu, aj keď niekedy aj dopredu ! Kolektív sme tam mali dobrý a vlastne šéfa podporoval, aj keď to bol niekedy adrenalín.
Moja riešiteľská skupina pre GOLEM mala len troch členov, uvádzam podľa abecedy a kolegyňu podľa dievčenského mena :
- Ing. Maja Furková (Dubová)
- Ing. Jozef Melichar
- Ing. Branislav Štofko – vedúci a autor týchto textov
GUBAS je skratka z názvu Golemov Užívateľský BASIC . Celý GOLEM pre SM 3-20 bol napísaný ako množstvo samostatných modulov v upravenom jazyku VUBAS . Modulová štruktúra bol základ úspechu. Užívatelia nemali normálne prístup k týmto zdrojovým textom, ktoré zabezpečovali všetky príkazy GOLEM-a.
Celé to bolo postavené v ideológii PERTEC-u ako menu pre operátora, ktorý zapisoval dáta a supervízora (vedúceho operátora) ktorý to všetko organizoval, definoval štruktúru užívateľských dát a nahrával dáta na magnetickú pásku.
Už hneď na začiatku sme zistili, že veľkost programového modulu na disku ovplyvňoval počet použitých riadkov zdrojového textu. Keď som sa spätnými prekladmi dopracoval k tabuľke príkazov jazyka, došlo k rozhodnutiu. Interpretor jazyka pracoval s čislom, napríklad 215 bol príkaz PRINT . Potom nebol problém skrátiť všetky príkazy na dva znaky a v tabulke bolo 215 PR . Neskôr mi to vyčítali, že som skazil programovací jazyk BASIC, ale dosiahli sme skrátenie modulov, veď pamäti nebolo toľko ako dnes na PC .
Prvá reálna úloha bola realizovať modul Tlač formátu. Lebo keď bol v GOLEM-e definovaný formát vety pre tú ktorú agendu, musel to schváliť programátor, ktorý neskôr dáta spracoval. Zatiaľ čo pri definícii formátu príslušný modul konvertoval čitateľné požiadavky do binárnej formy tu to bolo naopak. Samozrejme aj my vývojári sme taký protokol využívali.
Iný modul GOLEM-a umožňoval Tlač dávky, teda dátového súboru vytvoreného v štruktúre podľa formátu. Realizovať toto bolo v jazyku GUBAS hračka. V skutočnosti sa ale tlač dávky až tak nevyžadovala. Ovela viac sa čakalo na zápis dát na magnetickú pásku.
Výstupom bola magnetická páska
Treba povedať, že zo začiatku sme usilovne skrývali fakt, že prvé verzie GOLEM-a nevedeli pracovať s magnetickou páskou. Zatiaľ čo náš výstup z jazyka GUBAS išiel na tlačiareň cez operačný systém a teda patričný drajver, u mg. pásky to bolo inak. Operačný systém FOBOS sa choval k magnetickej páske ako k záložnému médiu. Mohol som tam nakopírovať napríklad všetky súbory s príponou .txt a preniesť ich na inú SM 3-20 . Formát zápisu na magnetickú pásku bol ale iný ako zvykli akceptovať sálové počítače JSEP.
SM 3-20 tak ako aj jej vzor PDP-11 mali takú peknú vlastnosť, že radič magnetickej pásky mal takú adresu ako reálne pamäťové bunky. Samozrejme tých adries bolo viac. Potom stačilo na príslušné adresy radiča nastaviť odkial sa majú dáta prenášať, ich dĺžku a nakoniec ešte povel ZAPISUJ. Joj bolo že to slávy, keď sa to podarilo.
Sálové počítače JSEP vyžadovali na magnetickej páske na začiatku a na konci aj služobné informácie tzv. label . Pretože som mal s týmto skúsenosti z PERTEC-u , realizácii labelov nestálo nič v ceste. Prvú skúšobnú magnetickú pásku som doniesol k môjmu zákazníkovi na PERTEC XL-40 a tento ju čítal ako svoj produkt.
Nuž riešenie to bolo divoké, ale spoľahlivé. Pamatám si ako som s kolegom Ing.Melicharom toto predvádzal raz v Ostrave na pôde sesterskej firmy Kancelářske stroje. Kolegovia z Prahy žasli keď videli ako na SM 3-20 točíme pásku zápisom do registrov. Treba aj povedať, že mechaniky pre magnetickú pásku boli spolahlivejšie ako disky a neboli s nimi vážne problémy.
Zápisom na magnetickú pásku sa ukončilo obdobie neistoty. Neboli sme len vývojári-teoretici. Ja aj moji spolupracovníci sme chodili inštalovať GOLEM-a k zákazníkom. Občas sme doniesli aj nejaké požiadavky, samozrejme na SM 3-20 nešlo všetko splniť. Dôležité bolo aj to že sme videli, že sa náš produkt používa, čo nás povzbudzovalo pri ďalšom vývoji.
Istý čas používala GOLEM aj vtedy jediná banka v Bratislave. Keď si niekto prišiel vybrať do banky z vkladnej knižky peniaze, toto referentka zapisovala do formulára. Z formulára sa to zapisovalo cez GOLEM na disk a na konci pracovnej doby na magnetickú pásku, ktorá išla do sálového počítača banky. Teda žiadne fazulky ale vážne veci.
Minipočítač SM 4-20 mal väčšiu pamäť a pracoval v inom operačnom systému DOS RV (RSX 11M). Tam bolo možné, aby každý terminál robil niečo iné. Vstupné dáta sa dali spracovávať popri tom ako sa iné práve zapisujú. GOLEM vo verzii 3.x vedel pracovať aj na tom minipočítači, ale to by mi nikto nedovolil.
Všetci očakávali, že tak rýchlo ako sme postavili GOLEM-a na nohy na SM 3-20 to zvládneme aj na SM 4-20 . Lenže zase sme nemohli všetko jednoducho preniesť do vyššieho systému. Kolega Ing. Melichar sa stal medzičasom zručným programátorom v assembleri a rozhodol sa, že GOLEM V.4.x bude sólový program. Bolo to odvážne rozhodnutie a vlastne ani nebolo kam ustúpiť. Noví užívatelia SM 4-20 volali “kedy nám dodáte nového GOLEM-a”.
Ako to všetko skončilo
Zmena spoločenského systému v roku 1989 a rozvoj personálnych počítačov zmenili situáciu. Keď mal niekto na stole PC cítil sa ako kráľ, už nepotreboval žiadne výpočtové stredisko. Ženy ktoré zapisovali dáta cez GOLEM išli do dôchodku alebo si museli nájsť inú prácu.
Na PC bola jednoduchá databáza DB3 a neskôr DB4. Tam si mohol užívateľ PC zapisovať svoje dáta a aj ich vyhodnocovať. Kedysi boli terminály PERTEC-u prepojené koaxiálnym káblom a obmedzenou dĺžkou, neskôr na minipočítačoch SMEP sa dala na prúdovej sľučke dosiahnuť väčšia vzdialenosť. Lenže teraz vznikali osamotené riešenia jednotlivcov. Svoje dáta si užívatelia vymieňali na disketách, čistý individualizmus.
Na nových Windows bežal aj tabuľkový kalkulátor a videl som u zákazníka ako v Exceli robia odbyt výrobkov malej firmy. No fungovalo to dovtedy pokiaľ súbor vyrobený Excelom “nekýchol”. Vyznal sa v tom len autor a nemal žiadne zálohovanie dát.
Čoskoro sa to celé vrátilo späť. Jednotlivé PC sa spájali do siete, najskôr znova koaxiálným káblom na malé vzdialenosti a potom krúteným káblom. Dnes sú PC spojené cez firemnú sieť navzájom a cez Internet s celým svetom.
Raz sa ma jeden priateľ pýtal prečo som znova nezdvihol spadnutú zástavu GOLEM-a a neurobil GOLEM-a vo Windows či MS DOS. Nuž nebol som už zamestnanec Datasytému a naviac Datasystém sa rozpadol. To hlavné ale bolo, že nebola spoločenská objednávka. Už to že po oficiálnom ukončení produkcie minipočítača SM-3-20 som pracoval s GOLEM-om na SM-5050 bolo dosť čudácke. Možno som mal vyjsť s iniciatívou v čase keď ešte nebol Internet.
Ing. Branislav Štofko
b.stofko@zoho.com
GOLEM jeho obrazovky a formulár
Článok o SM-5050 v časopise Mechanizace a automatizace administratívy z roku 1985