GOLEM – prečo tak a nie inak  Zpäť na hlavnú stránku

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. Pre pamätníkov pohľad na vnútro technologicky zastaralého disku.

GOLEM a jeho disk ako ho videli technici

Disk ako ho videli technici

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 jazyk.

Keď sa 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 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.

Takto to vyzeralo :

         TST R2            ; if count zero, skip loop
         BZ L2
L1:      MOVB R1,(R0)+     ; copy R1 (byte) into (R0)
         SOB R2,L1         ; use .MCALL SOB if processor has no SOB

L2:      POP R2
         POP R1
         POP R0

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 .

Čítať ďalej  Predošlá stránka