RSM F-16 a naše mladícke nadšenie

(Ing. Viliam Mlích, Ing. Štefan Kohút)

Tento príspevok vznikol ako spomienka na nášho kolegu Ing. Viliama Mlícha, ktorý tragicky zahynul pri paraglajdingu na vrchu Straník pri Žiline  dňa 31. 3. 2017.   Príspevok je zostavený z Vilovho mailu zo dňa 19. 3. 2016, ktorým odpovedá na otázky Ing. Milana Gábika. V úvode mailu Vilo napísal:

_______________________________________________________________

Od: Viliam Mlich <mlich@rar.cz>
Komu: tepy <tepy@orangemail.sk>
Kópia: Stefan Kohut <Stefan.Kohut@savba.sk>
Odoslané: Sat, 19 Mar 2016 00:26:31 +0100 (CET)
Predmet: RSM-F16

(dal som do Kópie aj Kohúta, keď už píšem toľko textu, možno sa mu hodí, a
týmto dávam aj súhlas k jeho ľubovoľnému použitiu)
__________________________________________________________

S Vilovým dovolením teda môžete čítať nasledovné riadky. Príspevok sa venuje tvorbe a vlastnostiam systému RSM-F16, čo bol preprogramovaný systém PIP, EDIT a File system operačného systému RSX-11M skupinou Fabini – Frnka – Mlich pre počítač RPP-16. Bolo to v roku 1980. Neskôr ho Vilo doplnil svojim vlastným jadrom operačného systému, čím sa RSM-F16 skompletoval na samostatný operačný systém a počítač RPP-16 sa spolu so sériovo pripojenými terminálmi CM 7202 javili pre používateľa ako počítač SMEP. Názov nového operačného systému vznikol z názvu RSX-11M, jeho  File Systemu a skratky RPP-16. Teda RSM-F16.

Otázky Ing. Gábika, na ktoré Vilo Mlích odpovedá som preformuloval tak aby čitateľ rozumel odpovediam. Vyjadrenia Vila Mlícha sme ponechali v pôvodnej forme, pretože sa okrem znalostí, ktoré boli úžasné (text písal rovno do tela mailu), prejavuje aj jeho priamy a úprimný štýl komunikácie. Tí, ktorí ste ho osobne poznali možno pocítite akoby to hovoril priamo Vám.

Mnohých spolupracovníkov Vilo v texte menuje, mnohí sa uvidia implicitne v texte. Bolo by vhodné aby ste svoje spomienky, skúsenosti a odborné vedomosti z tejto témy napísali do našej rubriky „Pohľady do histórie“ http://www.vystava.sav.sk/category/pohlady-do-historie/ nech sa potvrdia a rozšíria konštatovania nášho kolegu Ing. Viliama Mlícha.

Obr.1: Vilo Mlích (vpravo) so Števom Belešom vo VS JZD Slušovice v roku 1980

…a teraz už čítajte Vilove riadky:
Než sa dostanem ku odpovediam na otázky, najprv stručnú históriu.

Keďže sme s VVL mali nejaké skúsenosti s RPP-16, ponúkli sme sa ako študenti EF SVŠT na ÚTK za pomocné vedecké sily. Namiesto RPP nás ale posadili k PDP, aby sme im pomohli urobiť spätný prekladač. No nie z binárky, ale z .OBJ, kde okrem binárneho kódu bola aj informácia o menách, čo je závislé od fyzickej adresy (relocation info) atď. Tak sme ako opak TKB (taskbuilder) urobili SPB (source pg builder), ktorý dostal meno OBJ a vyrobil MAC. Celkom čitateľný, po preložení fungujúci, t.j. dal identický OBJ.

Tá partia (Lamačka, Vass) potom s Kostolanským založila UIRK a chvíľu sme tam s nimi robili na projekte BOMAS (BOhovský MAkroaSembler, oficiálne better than macro and SAM 🙂 ale to nejako zakapalo, za seba priznávam, že na taký stupeň abstrakcie som vtedy nemal. Medzitým nám končila škola a keďže RPP bola naša srdcová záležitosť, volili sme diplomovky tam.

Obr.2: Zľava Milan Frnka, Števo Beleš, Vilo Mlich, Peter Fabini, Ing. Kubík pri preberaní systému F16 vo VS JZD Slušovice v dňoch 22. – 23. 5.1980

Kubík nám ukazoval svoju úpravu RTOS-KNM a ten jeho diskový „systém“ bol hádam ešte trápnejší než čo sme ako prváci urobili pre zavádzanie testov. Tak jedna diplomovka bola taká, že pre tento RTOS sme urobili súborový driver, ktorý vedel funkcie, čo sme si ošahali na PDP: Vytvor súbor, nájdi súbor, čítaj, píš, zmaž. A na jeho ladenie program PIP. Ďalší spolužiak (Vlado Mešár) urobil editor EDO, tiež diplomovka. Pochopiteľne ako prvá bola urobená súborová verzia SAMu, čo bol koniec diernej pásky.

Niekedy v tom čase pripojili na PDP disky DP4, lebo tie 2.5 megové kazety boli pre celú akadémiu málo, aj keď na jednej bol systém a v druhej sa menili tri disky, podľa toho, ktorý odbor mal strojový čas. Bolo jedno, či sa disk vložil do stojana pri PDP alebo pri RPP, len si človek musel sadnúť k správnemu terminálu a mohol editovať.

Obr.3: Pripojenie diskových pamätí DP4 zo systému RPP-16 na počítač PDP-11/40 v Počítačovom laboratóriu ÚTK SAV – z Kroniky PL ÚTK.


Potom Vlado Václavek doniesol portovateľnú verziu makroprocesora ML1. Najprv sme ho portovali na RPP aj PDP a ako ukážku použiteľnosti som vyrobil sadu makier IBAS (Integer Basic) ktoré zo zdrojového textu v BASICu vyrobil text v SAMe. Zrazu to bola úplne iná úroveň programovania!

Ale zásadný port bol Tiny C – to tiež doniesol Vlado Václavek a na RPP ho preniesli Peter Fabini s Milanom Frnkom. Peter totiž po škole nastúpil na ÚTK a Milan študoval dlhšie, mal jeden rok prerušené štúdium. Ja som bol vtedy na vojne. Popri ďalšom vývoji to zavádzali do praxe a v C jazyku bola produktivita mnohonásobná. Užívatelia na nich tlačili, že by chceli COBOL, tak sme podľa vzoru IBAS urobili makrá aj na COBOL, ale neviem o žiadnom reálnom použití, lebo to k dokonalosti malo ďaleko.

Ale ešte cez prázdniny pred vojnou som sa naštval a úplne z čistej vody som prepísal jadro RTOSu. Lebo to Kubíkovo zaberalo 2/3 RAM a na aplikácie nebolo miesto. Implementoval som len funkcie, ktoré sme používali pre file-systém. Nároky na pamäť klesli pod 15% a odozva sa očividne zlepšila, aj keď sme to exaktne nemerali. Ale vedel som, ktoré sekvencie sú kľúčové, a tam sa počítalo na takty. Ďalšie zásadné zrýchlenie urobil Peter Fabini, keď do diskového driveru doplnil cache – pri požiadavke jedného bloku načítal dopredu celú stopu, zápis oneskoril. Neuveriteľný efekt!

Kubíkova verzia RTOSu bola rozšírená o tzv. NRPOD (nerezidentné reentrantné podprogramy), čomu by sa dnes hovorilo segmentácia, alebo v terminólogii Microsoftu DLL. To RSM-F16 pochopiteľne využil na maximum, v JZD Slušovice na 5 termináloch bežal ten istý reentrantný kód pre zber dát. Aj editor EDO bol z veľkej časti reentrantný.

Obr.4: Predvádzanie systému RSM-F16 v Počítačovom laboratóriu ÚTK SAV 30. 4. 1980. Za terminálmi RPP-16 zľava: Mlích, Frnka, Fabini. Nad nimi sa skláňa Vlado Václavek.  Vpravo pri termináli PDP-11/40 Mária Novosadová a nad ňou Eva Kohútová – z Kroniky PL ÚTK.

  1. otázka: Bolo možné použiť RSM-F16 aj na počítači RPP-16M, ktorý nemal disky? Pretože RSX-11M mal aj verziu S, ktorá bola celá v RAM-ke počítača.

Taká potreba sa nevyskytla. Jadro systému bol jeden súvislý kus kódu, ktorý by sa dal stiahnuť aj z romky, ale ostatné časti sa ťahali podľa potreby zo súborov, bez disku by taký systém nebežal, jedine, že by ROMka bola vypálená v štruktúre disku. Tá časť RTOSu, ktorá riešila väzbu na prostredie, bola v RSM vynechaná. Riešil sa len problém naťukať z terminálu, uložiť na disk, editovať, preložiť, vytlačiť, skopírovať. Systém ochrany pamäti bohužiaľ nebolo možné použiť (pre dynamické prideľovanie pamäti), takže ktorýkoľvek program si mohol robiť IOT kam chcel, aj ošetriť prerušenie. Ale ID4 mali bežné úlohy zhodený, aby nemohli dať DIR.

  1. otázka: Mal RSM-F16 aj drajver na JSP (Jednotka styku s prostredím), na displej EC7063 a CM7202?

Možno tam niekto drivery pre JSP dorobil, ale o tom neviem. No bez displejov by ten systém bol nepoužiteľný. Práca s EC 7063 bol zážitok na samostatný článok. SM7202 postavilo RPP16 na úroveň PDP11, aspoň zvonku.

  1. otázka: Bolo možné vložiť do RSM-F16  nejaké ďalšie moduly z RSX-11M?  Napríklad prekladač MACRO a pod.

Na tom file systéme bol prevzatý len formát uloženia dát na médiu. Celý kód bol od začiatku do konca napísaný v SAMe (než bol prekladač C), ani sme sa neinšpirovali kódom. Len sme prevzali nejaké názvy ako FDB – file decsriptor block, a niektorých jeho položiek (NRBD – next record buffer descriptor), funkcií (GCML – get command line) jednoducho preto, že sme na to označenie boli zvyknutí z programovania súborových operácií v programe SPB). Nejaký automatický prevod kódu z MACRO11 do SAMu bol vylúčený. Až keby sa podarilo získať zdrojové kódy v C-jazyku, dalo by sa o tom uvažovať.

Inak strojový kód PDP bol navrhnutý pekne, ale aj inštrukčná sada RPP mala svoje čaro. Ľudia, čo skúšali nejaké projekty v IBASe čumeli, že v SAMe by to tak efektívne a ešte k  tomu čitateľne nenapísali.

Obr.5: Vilo Mlích vysvetľuje činnosť RSM-F16 účastníkom preberania programov zo Slušovíc v PL ÚTK dňa 29. 4. 1980. Nad ním Milan Frnka a vpravo Peter Fabini – z Kroniky PL ÚTK.

 

  1. otázka: Mal RSM-F16 konverzný program na načítanie údajov z magnetickej pásky nahraných  napríklad  pod operačným systémom  RTOS?

Ja som nerobil žiaden konverzný program, ale na pásky bol macher Milan Frnka, ten ich robil niekoľko. Myslím, že sme mali páskový driver so základnými funkciami. Neviem, či nie aj z Cobolu. Ale sa mi to už pletie, lebo pásky sme neskôr sťahovali aj na prvé 20M winchestre na slušovických TNS na báze Z80.

  1. Otázka: Bolo možné prevziať programy na písané v jazyku SAM RPP a použiť ich pod RSM-F16?

Všetky staré RPP programy fungovali. Len sa páska stiahla do súboru. Kód nesmel počítať s umiestnením na pevnú adresu, čo na RPP nebol žiaden problém. Jediná vec, čo sa musela doplniť, bolo ukončenie programu. Ale na to stačilo skočiť na adresu 113, kde obvykle býval JLP, no v RSM-F16 tam bolo JTM,7,777 teda TEXIT (total exit), ktorý odobral úlohu zo zoznamu a uvoľnil všetku pamäť, čo zažiadala.

Úlohu založil terminálový driver po príkaze na spustenie, keď stiahol binárku z disku do pamäti a alokoval priestor podľa veľkosti súboru. Z toho vlastne vyplýva ďalšia požiadavka, že miesto na dáta musela mať „binárka“ v sebe, na konci „k=k+1000“ a nesmela písať mimo. Aj keď robili „smrtiacu“ kombináciu „IOT, JMPr-1“ tak systém neodstavili, len spomalili, lebo kernel po pár milisekundách dal riadenie ďalšej úlohe stratégiou round robin.

  1. otázka: Bolo možné použiť programy bežiace pod RSX-11M a spustiť ich pod RSM-F16?

Programy z PDP boli v inom strojovom kóde, o tom už bola reč vyššie, že to nebolo možné preniesť. Jedine znovu napísať v SAMe alebo v C.

  1. Otázka: Kto financoval a zabezpečoval vývoj, realizáciu a distribúciu systému RSM-F16? Kto udržiaval tento operačný systém inštalovaný u zákazníkov?

Tak tieto veci išli úplne mimo mňa, ja som robil, čo ma baví, a bolo mi úplne jedno, že to niekto musí platiť a podobne. O tom (asi) vie hodne Števo Kohút.

  1. Otázka: Nemalo byť zadanie na dosiahnutie kompatibility so SMEP-om formulované už v projekte programového vybavenia počítača RPP-16 od začiatku?

Dnes už vieme, čo sme mali formulovať. Ale vtedy to bolo hľadanie, omyly, neúspechy… A niekedy sa aj zadarilo.

V. Mlich

Obr.6: Po 33 rokoch opäť spolu pri počítači RPP-16. Zľava: Mlích, Plander, Fabini, Frnka počas návštevy delegácie z JZD Slušovice na Stálej výsteve dejín výpočtovej techniky na Slovensku dňa 6. 12. 2013.


Ďakujeme Ti Vilo za Tvoju usilovnosť a priateľstvo.

Štefan Kohút

stefan.kohut@savba.sk

Komentáre sú uzavreté.