Nekaj na to temo sem povedal že leta 1984, Jožetu Vilfanu, uredniku revije BIT, za članek z naslovom Kaj dela Primož Jakopin. Objavljen je bil v drugi številki, na straneh 26 in 27. To razširitev je vzpodbudilo zanimanje Sergeja Hvale, ko se je lotil pisanja knjige o zgodnjem obdobju videoiger po svetu in pri nas.
O računalniku Sinclair ZX Spectrum in podobnih hišnih računalnikih
Računalniki so bili, do mikroračunalniške revolucije v začetku osemdesetih let,
dostopni le maloštevilnim strokovnjakom, ki so se ukvarjali z njimi. Jaz sem se prvič srečal
s to problematiko (stroja samega še nisem videl) pri predmetu, točnega imena se ne spominjam,
verjetno je bilo Programiranje, v tretjem letniku študija tehnične matematike. Takrat sta bili
na matematiki (Fakulteta za naravoslovje in tehnologijo) le dve smeri, pedagoška (za učitelje
matematike v srednjih šolah, kaki štirje študentje v letniku) in tehnična (kakih sedem študentov).
Pouk je bil teoretičen, na koncu pa je bilo treba predložiti program na papirju v programskem jeziku
FORTRAN. Predmet večje teže ni imel,
program nam je napisal bolje podkovani kolega iz nižjega letnika, Izidor Hafner, in smo ga
(uspešno) predložili kot svojega. V četrtem letniku je šlo bolj zares, morali smo program,
ki smo ga napisali, tudi preizkusiti na računalniku
IBM 1130 v Računskem centru Inštituta za
matematiko, fiziko in mehaniko (IMFM). Najprej je bilo treba program napisati na posebne formularje
z zeleno potiskanimi črtami za vrstice po 80 znakov z označenimi mesti (grabljice). Vsaka vrstica
je pomenila
80-kolonsko kartico iz trdega papirja,
ki jo je bilo treba zluknjati na posebnem stroju,
luknjaču kartic, za vnos
v računalnik prek čitalca kartic.
Program naj bi potem dve "luknjačici", delavki v Računskem centru s formularja pretipkali na papirne
kartice, od tam pa naj bi šel tak, kak centimeter ali dva debel paketek kartic v obdelavo na računalnik.
Računalnik je bil v posebnem (tudi klimatiziranem) prostoru, za stekleno steno, s katero je bila
predeljena velika soba, in v ta prostor so smeli le
operaterji in zaposleni v Računskem centru.
Študentske obdelave so čakale v škatli na pultu pred stekleno steno. Operater jih je, ko se jih je nabralo
dovolj (nekajkrat dnevno) odnesel do čitalca kartic, prek katerega jih je vnesel v računalnik, ta jih je
obdelal in rezultate, če jih je bilo kaj, natisnil z
vrstičnim tiskalnikom (naenkrat je natisnil
celo vrstico) na neskončen papirni trak
z luknjicami ob straneh, lahko bel, ali pa tak, da je bila ena vrstica (pol centimetra v višino) bela,
ena pa zelena. Ko sem bil v četrtem letniku so postopek znatno demokratizirali, kartice smo smeli v
popoldanskem času zluknjati kar študentje sami in to je postopek za velikostni razred pospešilo.
Ker pa noben program ni bil takoj dober, vsaj nekajkrat ga je bilo treba popravljati, kakšno vrstico
v njem, se pravi papirno kartico, zamenjati ali dodati, je bil postopek še vseeno zelo dolgotrajen.
Da si spravil v red preprost program, recimo tak, ki je seštel prvih sto celih števil, si zlahka
porabil nekaj dni. Kaj bolj zapletenega pa seveda cel teden ali še več.
Sam sem se začel zanimati
za računalniško grafiko, če smemo temu tako reči, idrijskim čipkam podobne vzorce sem sestavljal iz
ciklometričnih funkcij,
ki sem jih potem z zvezdicami, pikami in drugimi znaki natisnil na neskončen tiskalniški papir. Ker
z običajnim postopkom za študentske obdelave ne bi prišel nikamor, sem v predprostoru računalniške
sobe čakal zvečer, po osmi uri, ko so lahko nekateri raziskovalci in doktorandi, npr. z Inštituta
Jožef Stefan, lahko, vsak za nekaj ur, do sedmih zjutraj, rezervirali računalnik in na njem samostojno
delali. Raziskovalka z IJS je imela navadno računalnik rezerviran od osmih zvečer do desetih ali
enajstih in ko se ji je kaj zataknilo, potrebovala je 10-15 minut za premislek, kako naprej, je
pomignila študentu, ki je čakal pred šipo (meni) in za nekaj dragocenih minut sem imel stroj samo
zase. In sem v tistih nekaj večernih uricah naredil toliko, kot bi sicer v nekaj tednih. Za nameček
sem pa še, ko nisem več vedel, kje je v programu kaj narobe, težil profesorju programiranja,
Egonu Zakrajšku, sicer tudi direktorju Računskega centra. Ko sta se dva izmed zaposlenih v
Računskem centru spomladi leta 1971, malo nepričakovano odločila za odhod na služenje vojaškega
roka, je bil objavljen razpis za dve delovni mesti s štirisedminskim delovnim časom, mesto
"programer asistent", začetna plača 70.000, kasneje 100.000 dinarjev. V predavalnici se nas
je zbralo 20 kandidatov in prof. Zakrajšek je izbral dva, najboljšo študentko v letniku (imela
je povprečno oceno 4.8 - od 5) in mene, zaradi tistih funkcij. Ob nastopu službe mi je sicer
položil na srce, naj pazim, kaj bom delal. Če me bo slučajno kdaj zalotil s tistimi čipkami,
bom nemudoma letel.
Kasneje, s pojavom superračunalnika
CDC 6600 podjetja
Control Data
(kasneje CDC Cyber 72) v Republiškem
Računskem Centru (RRC) na Jadranski cesti v Ljubljani (v sosednji stavbi) so se stvari močno
premaknile na bolje. RRC je sestavljalo kakih deset partnerjev, od Univerze v Ljubljani,
Inštituta Jožef Stefan, Zavoda za statistiko, do Kliničnega centra in Ljubljanskih mlekarn.
Do njega je bilo mogoče dostopati posredno, prek sprejemnice v stavbi, kjer si lahko oddal
kartice za paketno obdelavo in tja prišel iskat tudi natisnjene rezultate. Imeli so zelo
hiter tiskalnik, ki se ni ustrašil tudi tisoč in več strani izpisa. Te obdelave ali posli
(jobs) so prek čitalca kartic potovale v tako imenovano vhodno čakalno vrsto na disku
računalnika (input queue), v njej je bilo nekaj sto poslov. Imele so različno prioriteto,
tudi v odvisnosti od tega, kolikšen delež superračunalnikovega procesnega časa je partner,
recimo Klinični center, ki je imel nekaj več kot 3% delež, ta dan že porabil. Če je bil
že čez kvoto, so njegovi posli ležali v čakalni vrsti do naslednjega dne. Ko je bil nek
posel obdelan, so se njegovi rezultati znašli v izhodni čakalni vrsti (output queue) na
disku, kjer so ostali, dokler niso bili natisnjeni. Poleg sprejemnice v RRC so lahko posli
prišli v čakalno vrsto tudi s terminalov, bilo jih je najprej kakih 15, kasneje več, ki so
bili sestavljeni iz tipkovnice z zaslonom, čitalca kartic in vrstičnega tiskalnika. Imeli so
tudi diskovno enoto, ki pa je bila le za zagon terminala. Na zaslonu je operater lahko opazoval
obe čakalni vrsti na superračunalniku, poslal posel s čitalnika kartic v vhodno čakalno vrsto
ali izpisal rezultate iz izhodne čakalne vrste na tiskalnik. Do teh terminalov je lahko prišlo
precej več ljudi kot prej do enega samega računalnika. Računalnik v RRC je stal nekaj milijonov
tedanjih dolarjev, terminali pa okoli 35.000. V letu 1972 so Računski center IMFM ukinili, da
ne bi imel RRC konkurence takoj čez cesto, zaposlenim so ponudili delo v RRC, a ni nihče sprejel.
Nekaj časa po ustanovitvi sta delovala hkrati oba računska centra, pa ko smo na dveh klopcah
pred stavbo Oddelkov za matematiko in fiziko (4 nadstropja) malicali sendviče, so prišli mimo,
čez parkirišče med obema stavbama (v sosednji, malo nižji, dvonadstropni, je bil na novo zgrajeni RRC)
zaposleni iz RRC. šli so v "malcalnico" na Inštitutu Jožef Stefan, na drugi, zahodni strani
Jadranske ceste, in vsi so imeli bele halje, najbrž da bi bili videti bolj "znanstveno".
Mi smo bili "v civilu", belih halj nismo imeli. Ko jih je zagledal naš direktor, Egon Zakrajšek,
je zaklical: "Pazite, fantje, mesarji grejo" in smo se smejali, mimoidoči pa seveda ne.
Delo v RRC je bilo komercialno, poslovne obdelave, v jeziku
COBOL, kjer je bil vsak program
ena sama velikanska klobasa, mi smo delali pa za znanost in industrijo, v FORTRANU
(kasneje STRUCTRANU), kjer je bil glavni program kratek, vsa teža je bila pa v podprogramih
in funkcijah, s katerimi si lahko nalogo razbil na pregledne, veliko bolj obvladljive manjše
dele.
Vsi iz RC IMFM smo se razbežali v glavnem po fakultetah in drugih partnerjih RRC.
Egon Zakrajšek, najbistrejši od programerjev, kar sem jih do sedaj srečal, je bil poleg
dela na fakulteti (bil je tudi mentor pri moji diplomski nalogi) dopolnilno zaposlen še
v RRC, zadolžen je bil za operacijski sistem superračunalnika. Jaz sem se zaposlil v RC
Kliničnega centra kot vodja programerjev - da se je lepše slišalo, bil sem bolj vodja
sam sebi. Terminala KC ni imel, hoditi smo morali na Jadransko cesto. Nekaj let kasneje,
ko sem se zaposlil v Inštitutu za biomedicinsko informatiko na Medicinski fakulteti, smo
dobili tudi terminal in sem imel dostop do njega seveda kolikor sem hotel in kadar sem hotel.
A neposrednega dostopa do računalnika še vedno ni bilo. Uvedli so sicer še manjše terminale,
ki so imeli le zaslon in tipkovnico, in s katerih je bilo mogoče tudi tkim. interaktivno
delo, ko si dostopal do računalnika lahko tudi neposredno, brez čakalnih vrst - seveda v
načinu deljenega časa (time sharing) a vendar si program lahko izpopolnil za velikostni
razred hitreje, takoj si videl, kaj si naredil, kartic ni bilo več treba. Je bilo pa
interaktivno delo na računalniku v RRC mogoče le ob torkih popoldne, ob sobotah in nedeljah.
Da računalnika z njim ne bi preobremenjevali.
Lahko si mislite, kako smo si vsi, ki smo takrat delali na računalnikih, želeli,
da bi imeli računalnik samo zase. To so bile sanje nas vseh, daydream. Prvi mikroračunalnik,
ki sem ga videl, je bil Commodore PET,
ki ga je Jure Špiler pripeljal iz Londona poleti leta 1978 - tipkovnica z vgrajenim zaslonom.
Zavil ga je v šotor in prešvercal v prtljažniku avtomobila. Takrat sva bila oba asistenta na
Medicinski fakulteti v Ljubljani, jaz za Računalništvo, on za Biofiziko. Prvi mikroračunalnik,
ki mi je prišel v roke, je bil pa Sinclair ZX 81, z 1 KB pomnilnika, spomladi leta 1982.
Tipkovnica je bila zelo uboga, zunanji pomnilnik je bil kasetofon, posodil mi ga je kolega iz
Narodne in univerzitetne knjižnice, Sašo Albert, da bi ga preizkusil in mu povedal, ali se
s tem računalnikom, namenjenih predvsem igricam, da početi še kaj bolj resnega. Za primer
sem vzel program za računanje koordinat točk poligona pri merjenju jame, iz podatkov o
vizurah z ene točke na drugo. Vsaka vizura je imela tri vrednosti - razdaljo, naklon in azimut.
Programa, na papirju, je bilo malo več kot eno stran, kakih 30 vrstic. Stroj je imel
interpreterski BASIC. šlo je do 25. vrstice, potem pa je zmanjkalo pomnilnika. Stroj sem
Sašotu vrnil in mu povedal, da je stroj sicer obetaven, a da bi rabil 2 KB pomnilnika za
kaj bolj uporabnega. Me je pa izkušnja z njim precej navdušila. Poleti leta 1982 je postal
dobavljiv naslednik ZX 81, Sinclair ZX Spectrum,
v dveh izvedbah, s 16 KB in z 48 KB pomnilnika. Naval nanj je bil tako velik, da je bila domača
cena za 48 KB model 175 angleških funtov, izvozna pa 228 funtov (če se prav spominjam) in nanj
je bilo treba čakati več mesecev. V Jugoslaviji ga seveda ni bilo dobiti, tudi uvoziti se ga ni
dalo, visoka tehnologija za ljudske množice ni bila. Da ne bi kdo delal konkurence državnemu
sektorju, ali pa, kdo bi vedel, kar tako. Kolega Franci Ambrožič z Visoke šole za telesno
kulturo je imel zveze v Angliji, oče je delal v diplomaciji, in decembra je 48 KB našel pot
do njega. Najprej ga je nekaj časa spoznaval in se igral z njim, potem pa mi ga je, podobno
kot že prej Sašo, posodil čez Novo leto, da bi videl, če se da z njim narediti kaj bolj
resnega. Seveda se je dalo, v kratkem času sem na njem, kar v BASICu, napisal svoj prvi
urejevalnik besedil, BESS (Basic Editor for the Sinclair Spectrum), ker ga stroj pač ni imel.
Led je bil prebit, imel sem svoj stroj, poti nazaj na velike računalnike ni bilo več.
O uporabnosti jezika BASIC na Spectrumu
Kar se mene tiče, je bil zelo dober, da ne rečem odličen. Imel je namreč ukaz, ki ga drugi mikroračunalniki, predvsem najbližja konkurenca, Commodore 64, niso mogli imeti, ker so imeli pač za velikostni razred slabše srce, mikroprocesor. Imel je linearen pomnilnik. Napisali ste CLEAR 32000 (na 48 KB stroju) in stroj se je pospravil, z vsem kar je rabil, na naslove v pomnilniku od 0 do 31999. Vsi bajti od 32000 do 65535 pa so bili za vas, v enem kosu, delali ste z njimi kar ste hoteli. Na Commodorju je bilo pa tu 2Kb, tam 4Kb, pa še kje drugje spet nekaj, kot bi hotel prenašati vedro vode sem in tja s steklenimi kozarčki raznih velikosti. Bolje da sploh nisi začel.
O programiranju Spectruma
Na začetku sem seveda programiral v BASIC-u. Ta je sicer zelo počasen,
ker je interpreterski, vsaka
vrstica programa se pred izvršitvijo prevede v strojni kod, izvrši in tako naprej.
BESS je imel prostega prostora v pomnilniku nekaj več kot 20 KB, se pravi za
dobrih deset tipkanih strani. Na zaslonu je bilo 24 vrstic po 32
znakov, kar je na tem računalniku standardno, če delaš v tekstovnem
načinu (grafika je imela sicer 256 x 192 pikslov), BESS je imel vse
običajne urejevalniške funkcije - pisanje besedila, vrivanje in
brisanje črk in ločil, seveda tudi vrstic in njihovih blokov. Imel je
tudi funkcijo iskanja po besedilu, kjer pa se je pokazala vsa
revščina interpreterskega načina delovanja. Po eni strani besedila (2000 znakov)
je BESS iskal dobro minuto.
Po desetih straneh pa deset minut. Peš bi skoraj našel hitreje. Takoj
mi je bilo jasno, da bo treba stvar zastaviti drugače. Zbirnika (angleško se imenuje assembler), to je
pretvornika iz s simboli zapisanega programa v strojni jezik,
programsko kodo mikroprocesorja Zilog Z80, še ni bilo in je bilo treba
ta strojni kod napisati na roke. To se sicer da, a ni priporočljivo.
V članku, iz katere sem se učil strojnega jezika, je pisalo, dobesedno:
If you value your sanity, do not program in machine code, use an
assembler (Če cenite svoje duševno zdravje, ne programirajte v
strojnem jeziku, uporabljajte zbirnik). V dveh dneh sem napisal in izpopolnil do pravilnega delovanja
podprogram za iskanje po besedilu v strojnem kodu.
Dolg je bil 50 bajtov, našel je pa nekaj na koncu
20 KB dolgega besedila v približno petih stotinkah sekunde. Namesto deset minut v
BASICu. Naslednik urejevalnika BESS, TESS (Text Editor for the
Sinclair Spectrum, 24 vrstic po 64 znakov) iz leta 1984 je imel že približno četrtino kode v strojnem
jeziku, pretvorjene z zbirnikom, ki je bil medtem že
dostopen, INES (INformation Editing System, 1985) pa je imel v BASIC-u le še
vhodne in izhodne ukaze ter osnovni krmilnik, kar je bilo kak odstotek programa.
Vse to je omogočila arhitektura računalnikovega
mikroprocesorja, Zilogovega Z80. V nasprotju z mikroprocesorji
družine MOS 6500,
ki so poganjali konkurenco, stroje znamke Commodore, s hudo skromnim
naborom registrov,
imeli so le en osembitni glavni register (akumulator), dva osembitna indeksna
registra, šestnajstbitna skladovni kazalec in programski števec ter
osembitni statusni register, je bil
Z80 pravo razkošje.
Bili so štirje šestnajstbitni glavni registri, ki jih je bilo mogoče uporabljati
tudi kot 8 osembitnih, dva šestnajstbitna indeksna registra,
šestnajstbitna skladovni kazalec in programski števec, osembitni
statusni register ter še dva osembitna registra: prekinitveni vektor
in osveževalni števec.
Da Z80 ni bil samo malo tako za šalo, ampak je pomenil
prelomnico pri mikroprocesorjih, pove že naslovnica najpomembnejšega
priročnika o programiranju strojev s tem mikroprocesorjem - Rodnay Zacks:
Programming the Z80.
Kot bi strela udarila v zemljo in jo razklala.
O nastanku urejevalnika INES in odmevih nanj
Pot do nastanka INES sem opisal že v odgovoru na prejšnje
vprašanje, z izidom na tujih trgih pa žal ni šlo ravno najbolje.
Precejšen odziv je bil v drugih republikah naše nekdanje skupne
domovine, predvsem na Hrvaškem in v Srbiji. Naslov zelo naklonjenega članka v reviji
Svet kompjutera (Beograd) je bil pomenljivo enak kot naslov pesmi
Radeta Šerbedžije: Ne daj se, Ines.
Na zahodnem trgu so bile stvari drugačne. Sam sem napisal
približno 40 strani dolg priročnik v angleščini, ki sva ga z mamo
Gitico
prevedla še v nemščino. Brat Jernej,
ki je takrat delal v Nemčiji, v projektivnem biroju kot arhitekt, je
našel zastopnika v Düsseldorfu, podjetje UltraSoft. Bila sta dva
fanta, ki sta naredila nekaj reklame, izšlo je več člankov v
časopisih, tudi angleških. Ocene so bile ugodne, iz Anglije se
spomnim stavka, da je priročnik kar dober, če upoštevamo, da sta ga
napisala dva Nemca (najbrž midva z Jernejem). Dobro so ga ocenili
pri nekem nemškem časopisu, kjer so napisali, da je bilo prav
ganljivo videti sicer dober in popoln računalniški priročnik, napisan v Altdeutsch (stari
nemščini). Mama je namreč obiskovala gimnazijo v Bregenzu ob Bodenskem jezeru
med vojno (bili so izseljeni) in je bila njena nemščina pač iz
tistega časa. Ko so začela na UltraSoft prihajati naročila, sta fanta čakala na ponudbo
kakšne veletrgovskih verig, pisma posameznikov pa sta metala v koš.
In pri tem je ostalo.
Bolje se je godilo INESovemu nasledniku, programu STEVE.
Stran je napisal in postavil Primož Jakopin.
Za vprašanja in komentarje pišite na
primoz jakopin guest arnes si (vstavite pike in afno na ustrezna mesta).
Prispevek je nastajal od sredine do konca januarja 2022; datum zadnje spremembe: 14. junij 2022.
Spletni naslov: https://www.jakopin.net/papers/Spomini/On_microcomputers_and_INES_si.php
166