Galaksija 140, decembar 1983.

Najbolji YU programeri

Prve nagrade dodeljene Mladenu Sarajčiću i Zoranu Zivotiću

Dejan Ristanović

"Galaksija" je 1. maja 1983. godine raspisala Konkurs za najbolji kućni računar amaterske gradnje i najbolji domaći program za kućni računar. lako se radilo o prvom konkursu te vrste u Jugoslaviji, očekivali smo toliki odzlv da smo za smeštanje priloga pripremili čitav orman. Kako se 15. septembra, dan zaključivanja konkursa, bližio, ambicije su se smanjivale, pa je orman "prerastao" u policu, da bi se na kraju pokazalo da je bila neophodna samo osrednja fioka. Na konkurs je, sve u svemu, stiglo 24 programa i tri samogradnje, što može da se oceni kao prilično mršav učinak. Na svu sreću, kvalitet priloga je bio dovoljan da nadoknadi kvantitet, pa je komisija imala dosta problema da izabere najbolje među njima. Skroman po odzivu, konkurs je otkrio nekoliko veoma darovitih programera i doneo nekoliko veoma kvalitetnih programa, posebno za računar ZX Spectrum.

Da bi se pregled radova obavio na najbolji mogući način, razmotrena je najpre njihova struktura. Programi su bili namenjeni praktično isključivo Sinklerovim računarima (12 za ZX Spectrum i 9 za ZX81). Stoga je bilo neophodno da se među članovima komisije nađu dobri poznavaoci pre svega ovih kompjutera. Zato je oformljena komisija u sastavu (abecednim redom):

bulletVoja Antonić, konstruktor računara "Galaksija"
 
bulletBogdan Kosanović, specijalista za računar Spectrum
 
bulletDragan Maksimović, specijalista za računar ZX 81
 
bulletJovan Regasek, urednik u časopisu "Galaksija" i
 
bulletDejan Ristanović, stručni saradnik časopisa "Galaksija"

Komisija je, pre svega, iskoristila svoje pravo da prema kvalitetu radova, izvrši izvesnu preraspodelu nagrada. Pre svega računar ZX81 i Memopak 16K su spojeni u jednu (drugu) nagradu. Pošto je "mašinski" deo konkursa potpuno podbacio, oslobodilo se mnoštvo nagrada predviđenih za samogradnje. Čim je žiri počeo da radi, postalo je jasno da se ni po svom programerskom kvalitetu ni po korisnosti ne mogu jednostavno poroditi programi pisani za različite računare, pa su ustanovljene dve ravnopravne kategorije: ZX 81 i ZX Spectrum. Naravno, žiri nije mogao da se razmeće nagradama, pa druga nagrada u kategoriji programa za ZX 81 nije dodeljena. Tako jedan računar ZX 81 i Memopak 16K ostaju u Redakciji do prve sledeće prilike.

Premda su sve odluke, kao što se i moglo očekivati, donesene jednoglasno, njima su prethodile dugotrajne diskusije koja je ponekad prelazila u raspravu o koncepciji konkursa i radu "Galaksijinog" kluba programera. No, počećemo od onoga što nije izazvalo nikakve diskusije - od samogradnji.

Samogradnje

Na konkurs su pristigle samo tri samogradnje: "Digitalni semplerski osciloskop" Maria Lučina iz Novog Beograda, "Računar u samogradnji" (naslov smo mi dali s obzirom da autor nije predložio ni jedan) Marka Kočila iz Žirovnice i "Energetska stanica za ZX računare" Milana Vujasića iz Petrinje. Komisija je stekla utisak (koji se slaže sa poštenom izjavom jednog od učesnika) da ni jedan od ovih uređaja nije izrađen u prototipu, ali je ipak odlučila da razmotri svaki prilog. Došlo se do sledećih zaključaka:

"Digitalni semplerski osciloskop" je, bez sumnje, interesantna i korisna samogradnja. Njen autor je izložio dosta relevantnih parametara i priložio prilično kompletnu dokumentaciju sa potrebnim shemama. Na žalost, uređaj realizovan prema predlogu ne bi mogao da radi: Pre svega, program koji ga kontroliše je pogrešan ne samo usled greški u prevođenju mnemoničkih kodova u instrukcije nego i zbog autorovog nepoznavanja delovanja nekih naredbi na sistemske registre. Ovo nije naročito ozbiljna zamerka (program bi se ispravio kada bi uređaj bio napravljen), ali je komisija izrazila ozbiljnu sumnju da bi uređaj ispravno prikazivao ulazne signale frekvencije 4 MHz kao što je autor naveo (bilo je govora o daleko manjim ciframa koje se mere kilohercima ili čak hercima). Ceneći originalnost ideje i autorov trud, komisija je odlučila da nagradi Maria Lučina 6. nagradom: procesorom Z80A i Z80 PIO. Nadamo se da će ova nagrada podstaći g. Lučina (inače studenta ETF u Beogradu) da se i dalje bavi samogradnjama i da će, u bliskoj budućnosti, njegov osciloskop ipak ugledati svetlost dana.

Prilog Marka Kočila je ocenjen kao interesantan ali nekompletan. U okviru njega je izložena konstrukcija jednog kompjuterskog sistema koji bi se sastojao od procesora 6809, minitastature i displeja i koji bi mogao da bude opremljen programatorom EPROM-a, kasetnim interfejsom, konektorima za ekspanziju itd. lako su neki delovi ovog kompjutera detaljno iscrtani (naročito kada se radilo o standardnim sklopovima), mnoge pojedinosti su ostale u mraku, što se posebno odnosi na nedostatak sistemskog softera. Stoga je komisija odlučila da Marka Kočila nagradi utešnom nagradom - časopisom "Using the Spectrum".

"Energetska stanica za ZX računare" je svakako potrebna, pogotovu u danima kada nam preti nestašica električne energije. Ako bi računar bio povezan sa njom, nestanak struje ne bi izazvao veće probleme - programer bi imao vremena da završi posao i snimi program na traku. Na žalost, rešenje Milana Vujasića ne može da ostvari ono što se od njega traži: pakovanje baterija bi svakako napajalo računar ali bi u trenutku nestanka struje, za vreme dok upotrebljeni releji prekopčaju napajanje, program bio nepovratno izgubljen. Čini nam se da je trebalo ići na elektronsko rešenje, ali u svakom slučaju pohvaljujemo Milana Vujasića: njegovo znanje, uloženi trud i mladost (učenik II razreda OVO "Briza Handžek") zaslužili su još jednu utešnu nagradu.

Programi za ZX Spectrum

Na konkurs je stiglo 12 programa za ZX Spectrum koji su delo 9 autora. Bilo je tu svega po malo: igara, sistemskih programa, programa za sređivanje grupa podataka, obrazovnih rutina... Kvalitet većine priloga ocenjujemo kao vrlo solidan, ali su se neki od njih u samom početku izdvojili kao izraziti konkurenti za nagrade. Cenivši interesantnost tematike, zanatski kvalitet programa i dokumentacije i sve parametre navedene u propozicijama konkursa, komisija je odlučila da u kategoriji programa za Spectrum prvu nagradu dodeli programu "Mato" Mladena Sarajčica, diplomiranog inženjera iz Zagreba.

Reč je o obrazovnom programu za uvežbavanje matematike od prvog do četvrtog razreda osnovne škole. Osnovna karakteristika prvonagrađenog priloga je efektnost. On može da zainteresuje decu za računare i posluži kao izvanredna demonstracija njihove mogućnosti čak i za one koji su "osvedočeni neprijatelji" ove oblasti nauke. Po startovanju programa računar počinje komunikaciju sa detetom pitajući ga za ime (docnije se računar uvek obraća detetu po imenu što je, kako se pokazalo, neobično atraktivno za najmlađe), a zatim i za uzrast. U zavisnosti od toga u koji razred dete ide, računar generiše probleme različitih težina. Na detetu je da pokuša da da što više tačnih odgovora, a na računaru da ga za to nagradi. Svaka petica donosi igru "leptir", svaka četvorka igru "rakete", a trojka, naravno, igru "čuvaj se trojki". Izgledi ekrana su efektni u svim fazama rada, tonovi odražavaju "raspoloženje računara" koje je izazvano dečjim (ne)znanjem i, što je najvažnije, program se neobično dopao deci koja su ga testirala (to su bili neformalni članovi komisije). Program efikasno zamenjuje roditelje u jednoj mukotrpnoj roditeljskoj obavezi, razvija kod dece (čak i kod najokorelijih "antimatematičara") ljubav prema matematici i, ništa manje važno, efektno ilustruje korisnost računara u svakodnevnom životu. Više nego dovoljno za prvu nagradu (turističko putovanje sa Montenegroturistom vredno 32000 dinara) i počasni broj, ZXSP92K5001, u našem Katalogu.

Drugu nagradu (računar ZX81 sa modulom Memopak 16K) dobili su Ivan Gerančlr i Milan Pavićević (obojica iz Beograda) za program "Turbo 1". Radi se o sistemu za smeštanje i obradu podataka na računaru Spectrum 48 K. Ovaj potpuno mašinski program omogućava brz pristup podacima, ispis u formatu 51 karakter po liniji na ekranu ili printeru, upotrebu latiničnih slova, sortiranje po abecedi i čuvanje podataka na traci uz razne mogućnosti snimanja i učitavanja. Podaci koji se smeštaju u memoriju su organizovani po setovima i poljima čiji je broj ograničen isključivo slobodnom memorijom (obzirom da program ima oko šest kilobajta, preostala memorija iznosi tačno 35595 bajta). Posebno impozantna odlika ovog programa je dokumentacija koja se prostire na 94 kucano/listane strane i može da se oceni kao veoma kompletna.

Moramo da kažemo da su se oko programa "Turbo 1" najviše lomila koplja na sastanku komisije. Korisnost programa koji polazi od osnovne namene računara (obrada podataka) niko nije dovodio u pitanje, ali se ona u svakodnevnoj primeni, barem za sada, ipak ne može meriti sa korisnošću programa za uvežbavanje matematike. Ogroman rad uložen u pripremu programa i dokumentacije nije bio sporan, ali se čulo mišljenje da su autori slobodnije nego što bi trebalo koristili editor ugrađen u komercijalni program za paskal. Program je, bez obzira na izvesne kompilacije, zanatski izvanredno urađen, (u njemu nema bagova iako je pisan na mašinskom jeziku i za relativno kratko vreme) ali ne sortira dovoljno brzo, a dužine naziva polja su ograničene na samo šest slova. Nakon dvočasovnog odmeravanja "za" i "protiv", koje je program Turbo 1 bacalo između prve i treće nagrade, odlučno je da se ovom programu dodeli druga nagrada i broj ZXSP90K5003 u Katalogu bejzik programa.

Treća nagrada (komplet biblioteka "August Cesarec" i komercijalni program za Spectrum) jednoglasno je i bez veće diskusije dodeljena Jovanu Puzoiću iz Obrenovca za program Super verifikacija. Program je mašinski i relativno kratak ali obavlja neobično zanimljivu funkciju: omogućava vizualnu kontrolu kvaliteta snimka na kaseti (sličnu indikaciji nivoa signala pomoću svetlećih dioda kod hi-fi uređaja). Kada se program unese u računar i startuje kasetofon, na ekranu biva iscrtana skala na kojoj računar prikazuje nivo onoga što prima sa kasetofona. Sve dok je "kazaljka" u žutoj zoni, nivo snimka je dobar. Ali, prelazak u crvenu zonu označava da je jačina zvuka ispod dozvoljene i da je treba povećati. Sve u svemu, program predstavlja izvanredan način da se eliminišu problemi koji su vlasnicima Spectruma veoma poznati: da bi se učitao program sniman na nekom drugom kasetofonu, ponekad je potrebno dosta eksperimentisati sa jačinom zvuka. Ta vremena su prošla - dovoljno je da naručite program ZXSP90K5004.

Posle ovoliko dobrih reci, postaje neobično zašto ovaj program nije dobio neku od prve dve nagrade. Komisija je uočila i neke nedostatke ovog programa: prva i osnovna se sastoji u tome što se mašinski program nalazi u prvoj REM naredbi bejzika, pa uz pomoć njega ne može da se verifikuje program koji se upravo snima. Komisiji se učinilo da bi bilo daleko celishodnije smestiti program na sam kraj memorije i uraditi u mašinskom jeziku ono što sada radi jednostavna bejzik komponenta ovog programa (postavljanje boje instrumenta i slično). Uz ovakvu modifikaciju značajno bi se povećala primenjivost programa i, samim tim, njegove mogućnosti. Dokumentacija je ocenjena kao dobra, ali u izvesnom smislu nedovoljna, a njen tehnički nivo nije zaslužio mnogo poena.

Od istog autora dobili smo i program "Save Controler" koji je namenjen presnimavanju svih vrsta programa. Ova rutina nije nagrađena, iako je ocenjena kao neobično korisna a u praksi pouzdana. Ipak, neka programerska rešenja su bila loša, postojala je greška u delu gde se program zaustavlja radi analize, a dokumentacija je izgledala nedovoljna. Jedan, po našoj oceni bolji, program koji obavlja ovu funkciju će biti objavljen u specijalnom izdanju o računarima.

Četvrtu nagradu (atraktivni komercijalni program za ZX Spectrum) je dobio Dane Rebolj iz Maribora za program Gauss. Kao što mu ime govori, program vrši Gausovu redukciju matrice i tako omogućava rešavanje sistema jednačina, nalaženja inverzne matrice i druge manipulacije poznate onima koji su se bavili linearnom algebrom. Program je urađen u skladu sa najmodernijim programerskim standardima: kao što je rekao Bogdan Kosanović, "strukturiran je tako da se iz aviona vidi šta radi". To znači da se program sastoji od niza potprograma, od kojih svaki obavlja neku specijalnu funkciju, koji su povezani u jedan maksimalno racionalno rešen glavni program. Ovakva koncepcija programa je omogućila da se rese mnogi problemi koji slične rutine "zavijaju u crno": nule na dijagonali se, na primer, eliminišu tako što se zameni redosled vrsta ili kolona, pri čemu računar ne zaboravlja da sve vrati u prvobitno stanje, tako da korisnik ne primeti da je bilo ikakvih promena. Osnovna mana programa je što nije omogućeno rešavanje sistema u kojima je dato manje jednačina nego što ima nepoznatih (u tom se slučaju, jasno, ne dobijaju konkretna rešenja već se jedne nepoznate izražavaju preko drugih). Sve u svemu, čini nam se da ovaj program zaslužuje nagradu koju je dobio i da će ga, kada objavimo njegov kataloški broj, obradovati čitaoce koji se bave raznim oblastima matematika i tehnike.

Kada već govorimo o matricama i rešavanjima sistema jednačina, na konkurs su stigla još dva priloga koja se njima bave. Jedan od njih je delo Tlbora Petriča i Oto Bodrostana iz Subotice. lako se program odlikuje odličnom dokumentacijom i radi ono što mu je namena, komisija je ocenlla da je program kome je posvećen poslednji paragraf bolji. Ceneći vrednost programa "Matrice", komisija je predložila da i on bude uvršćen u Katalog programa i odlučila da mu dodeli utešnu nagradu.

Peta nagrada (atraktivan komercijalni program za ZX Spectrum) je dodeljena Petru Antunoviću i Igoru Čuriču iz Ljubljane za program "Furijeva analiza". Komisija je ocenila da će program biti veoma koristan za one koji se bave elektronikom i matematikom, da je njegova dokumentacija veoma dobra i da je programerski deo posla korektno obavljen. Programu je zamereno što koristi sporu Simpsonovu metodu numeričke integracije, što nepotrebno produžava rad. Osim toga, komisiji se učinilo da tematika programa neće biti interesantna za najširi krug korisnika računara ZX Spectrum.

Komisija je, takođe odlučila da utešnu nagradu dodeli Slobodanu Aleksiću iz Beograda za program "Nautilus". Radi se o igri za ZX Spectrum koja je podnesena na konkurs u obliku koji savršeno zadovoljava njegove propozicije: odlična i atraktivno tehnički uređena dokumentacija, listing sa komentarima urađen na štampaču, kaseta... Ipak, program nije mogao da bude nagrađen jer igra nije dovoljno zanimljiva: na polju 20-20 biva skriven određeni broj podmornica koje igrač treba da potopi. Računar mu u svakom trenutku saopštava da li je pogodio neku podmornicu ili nije; nedostatak bilo kakvih drugih indicija čini igru teškom i, pomalo, dosadnom.

U Katalog bejzik programa će biti uvršćen i program "Luna" Daneta Rebolja iz Maribora (on je već dobio četvrtu nagradu za program "Gauss"). Postoje dva razloga zbog kojih ovaj program nije nagrađen: nije bila priložena kaseta i radi se o prilično eksploatisanoj temi spuštanja na Mesec.

Programi za ZX81

Prva nagrada u ovoj kategoriji (putovanje sa "Montenegroturistom" vredno 32000 dinara) dodeljena je Zoranu ŽIvotiću koji se trenutno nalazi na odsluženju vojnog roka u Karlovcu. Program "ZX QSAVE" u Katalogu nosi broj ZX8190L5O02 i svakako će postati bestseler: uz njegovu primenu snimanje i učitavanje programa sa kasete se, bez ikakvih hardverskih modifikacija, ubrzava osam (!) puta. Osim standardnih funkcija, obezbeđena je naredba VERIFY koja toliko nedostaje vlasnicima ZX81.

Kako je Zoran Životić postigao ono što nije uspelo firmi Sinclair Research u toku razvianja ZX81? Tajna je u tome što se binarne jedinice i nule kodiraju na znatno drukčiji način, što nije samo povećalo brzinu već i smanjilo verovatnoću greški. Naredba VERIFY ispituje da li je program ispravno prenesen na traku; kombinovana sa "prirodnom" pouzdanošću metode, praktično eliminiše greške pri snimanju. Jedina mana ovog programa je dokumentacija koja je, doduše, kompletna, ali unekoliko nepregledna i "ukrašena" sa nekoliko grešaka u kucanju. Ipak, pošto se radi o čitaocu koji je u vojsci, prilog je dobar čak i sa tehničke strane.

Treća nagrada (biblioteka "August Cesarec") dodeljena je i za program "Kapsula". Ovaj mašinski program predstavlja verziju spuštanja na planetu, ali je neobično dinamičan.

Četvrta nagrada (program MCoder za ZX81) dodeljena je Zdenku Testanu i Adnanu Filipoviću iz Sarajeva za program "Mreže". Reč je o programu za analizu električnih mreža koji će obradovati sve članove Kluba programera koji se bave elektrotehnikom. Na žalost, program omogućava samo analizu pasivnih mreža, što ga čini nešto manje interesantnim.

Peta nagrada (program MCoder za ZX 81) dodeljena je Antonu Orzasu iz Kotor Varoši za igru "Podvodni diverzant" koja je do poslednjeg momenta bila u konkurenciji za nagrade i koja će biti uvršćena u Katalog programa.

Komisija je odlučila da utešnu nagradu dodeli čitaocima "Galaksije" koji su učestvovali na konkursu sa više od jednog priloga. Tako će časopis "Using The Spectrum" dobiti Juraj Ećimović iz Zagreba i Robert Brežnik iz Celja.

Ostali računari

Utešna nagrada je dodeljena i Dragoljubu Saviću iz Beograda koji je poslao programe "SuperTest" i "Žiro-račun", oba pisana za Sharp MZ. Program Tekući račun nam se učinio posebno interesantnim, ali računar za koji je pisan nije mnogo popularan. To ne bi bila prepreka da nagradimo program, ali je komisija stekla utisak da je problem mogao da se reši i u mnogo manje programskih linija, uz manji utrošak memorije i strpljenja pri kucanju. Dragoljubu Saviću upućujemo čestitke na odličnoj dokumentaciji i tome što očigledno koristi računar za rešavanje svakodnevnih životnih problema.

U sledećem broju "Galaksije" sumiraćemo rezultate konkursa.

Pobednici

ZX Spectrum

1. Mladen Sarajčić, Zagreb, za program "MATO"

2. Ivan Gerenčir i Milan Pavićević, Beograd, za program "Turbo 1"

3. Jovan Puzović, Obrenovac, za program "Superverifikacija"

4. Dane Rebolj, Maribor, za program "Gauss"

5. Petar Antunović i Igor Čurič, Ljubljana, za program "Furijeova analiza"

ZX 81

1. Zoran Životić, Beograd, za program "QSAVE"

2. nije dodeljena

3. za program "Kapsula"

4. Zdenko Testan i Adnan Filipović, Sarajevo, za program "Mreže"

5. Anton Orzes, Kotor-Varoš, za program "Podvodni diverzant"

Utešne nagrade

bulletMario Lučin, Beograd
 
bulletMarko Kočilo, Žirovnica
 
bulletMilan Vujosić, Petrinja
 
bulletSlobodan Aleksić, Beograd
 
bulletJuraj Ećimović, Zagreb
 
bulletRobert Brežnik, Celje
 
bulletDragoljub Savić, Beograd

Sponzori

Nagrade za pobednike "Galaksijinog" konkursa - dva atrktivna turistička putovanja - obezbeđuju "Montenegroturist" i Agencija "Duga". Sve ostale nagrade na konkursu - računare ZX 81, memorije Memopak 16 K, programe M CODER za ZX 81 mikroprocesor z80A+z80 PIO obezbeđuju firme "The English Computer Snop" iz Belgije i "Microtechnica" iz Austrije.

Uoči dodele nagrada sponzorima konkursa se priključila i kompanije Intra Software (16 Garway Road, London W2 4NH) iz Engleske sa nekoliko izvanrednih utešnih nagrada: deset primeraka časopisa "Using The Spectrum" i tri najnovija komercijalna programa za ZX Spectrum.

 
Napomena: Ovaj tekst je unesen sa štampanog teksta iz "Galaksije 140" uz korišćenje OCR programa. Molim Vas da mi ukažete na greške koje primetite.