Računari 2 - leto 1984

BBC B

U specijalnom izdanju "Računati u vašoj kući" BBC mikrokompjuter je ocenjen kao najkompletniji stoni računar koji se može naći na tržištu. Ta konstatacija je izrečena posle opsežne konsultacije literature, ali se autor ovoga teksta u nju do kraja uverio tek kada je dobio priliku da intenzivno radi sa BBC-jem i upozna njegove tajne. Šta je, dakle, to što BBC B (model A se praktično više i ne proizvodi) čini najboljim?

Dejan Ristanović

Prvi utisak o BBC-ju mora da bude povoljan: na (za jedan stoni kompjuter) velikoj ali veoma lepo oblikovanoj kutiji dominira visoko profesionalna tastatura, na kojoj su, osim standardnih alfanumerika, zastupljeni mnogi specijalni znaci (računajući čak i velike i srednje zagrade, ali, začudo, ne i znak copyright koji ostaje privilegija vlasnika Spectrum-a). Utisak o kompletnosti tastature dopunjava deset narandžastih tastera kojima možemo da dodeljujemo proizvoljne literate. Imamo utisak da jedino tastature Hewlett-Packard-ovih kompjutera mogu da se mere i (verovatno) nadmaše BBC-jevu.

Ekranski editor

Po uključenju računara nalazimo se u takozvanom modu 7. Još smo u "Računarima 1", naime, rekli da je kod BBC kompjutera napravljen kompromis između potrebe za visokom rezolucijom i velikim slobodnim RAM-om tako što su uvedeni razni grafički modovi - ukoliko želimo visoku rezoluciju, moramo da se pomirimo sa time da ćemo imati malo RAM-a i obratno. Mod 7 na ekran troši samo 1 kilobajt, pa je zato i izabran za početak rada. To je dobro, ali se pojavljuje drugi, za početnike vrlo ozbiljan problem: mod 7 je kompatibilan sa teletekstom, dok ostali sadrže karaktere oblikovane po ASCII standardima. To znači da, na primer, taster na kome je ispisana srednja zagrada u modu 7 daje strelicu ulevo što može itekako da zbuni. Zato bismo početniku svakako savetovali da, pre nego što započne "razgovor" sa računarom, izabere MODE 6.

Čim počnu da se pišu prvi bejzik programi, ukazuje se potreba za upoznavanjem editora koji omogućava ispravljanje grešaka. BBC može da se podiči neobičnim, ali moćnim i fleksibilnim ekranskim editorom. Pre nego što ga opišemo, neće smetati da pomenemo razlike između ekranskih i linijskih (linijski editori se koriste kod velikog broja računara iz ekonomske i srednje klase) editora: da bismo ispravili neku naredbu treba da otkucamo EDIT (ili neku odgovarajuću naredbu) i broj linije. Zatim pomoću leve i desne strelice pomeramo kursor i, odgovarajućim komandama, unosimo ispravke, posle kojih pritiskamo ENTER. Kod ekranskih editora su u upotrebi i druge dve strelice: pomoću njih pozicioniramo kursor na neku poziciju ekrana i vršimo ispravke "na licu mesta". Samo se po sebi razume da su ekranski editori fleksibilniji i moćniji, ali i oni imaju veliku manu: ako smo kucali neku dužu komandu (naredbu bez linijskog broja) i pri tom pogrešili, ostaje nam jedino da je ponovo kucamo, osim ako želimo da se pomirimo sa neredom i konfuzijom na ekranu.

BBC-jev editor je u osnovi ekranski, ali otklanja ovaj nedostatak: čim pritisnemo neki od četiri tastera na kojima se nalaze strelice, standardni kursor se pretvara u beli kvadrat i pojavljujete se drugi kursor koji se, daljim pritiscima na strelice, pozicionira na proizvoljnu poziciju ekrana. Pritiskom na COPY sa te pozicije kopiramo tekst na poziciju kursora-kvadrata (taster COPY, kao i svi drugi tasteri, ima funkciju autorepeat ako ga duže pritiskamo). Na taj način se može kopirati proizvoljna grupa slova - nijedan tekst sa ekrana nije "mrtav": ako je kompjuter, na primer, negde ispisao Mistake, možemo slobodno da tu reč uklopimo u neku našu naredbu ili komentar. Samo se po sebi razume da je moguće kopirati i proizvoljne komande, što postaje posebno korisno kada poželimo da snimimo isti program nekoliko puta.

Strukturirano programiranje

Po upoznavanju editora možemo da počnemo sa pisanjem prvih bejzik programa. Ubrzo uviđamo koliko je BBC BASIC kompleksniji i moćniji od ostalih verzija ovog programskog jezika. BBC bejzik je, naime, sakupio mnoga dobra svojstva drugih programskih jezika, ponajviše paskala. Tu, pre svega, mislimo na velike potencijale za pisanje strukturiranih programa. Strukturirano programiranje omogućava ne samo jednostavnije pisanje softvera sa manje grešaka, nego i jednostavne docnije modifikacije programa i njegovo prilagođavanje drugim kompjuterima.

Strukturirani program se piše po stepenima složenosti: početni problem se deli na nekoliko etapa, a zatim se svaka ta etapa posebno programira daljim raščlanjivanjem na jednostavnije probleme. Postupak se nastavlja sve dok se ne dođe do jednostavnih problema koji se rešavaju u nekoliko programskih linija. Svaka etapa rešavanja problema se izdvaja u poseban potprogram koji je u principu nezavisan od ostalih i ima svoje ulazne i izlazne veličine. Pošto je taj program (nazivamo ga i "modul") razvijen i potpuno testiran, snimamo ga na traku i prelazimo na sledeći. Na kraju posla jednostavno učitavamo module i povezujemo ih u celinu. Kada je docnije potrebno da prilagodimo već postojeći program drugom računam, biće dovoljno da, bez ikakvih intervencija u glavnom programu, preradimo module koji operišu sa tastaturom i ekranom.

Da bi se na racionalan način pisali strukturirani programi, treba imati mogućnost pozivanja potprograma sa prenošenjem argumenata i definisanjem lokalnih promenljivih. Ovakva mogućnost je BBC-ju data preko naredbi PROC, FN i LOCAL. U glavnom programu se, na primer, može naći PROCsuma (A, B, C). Kada računar naiđe na nju, potražiće naredbu DEFPROCsuma (X, Y, Z) (umesto X, Y, Z mogu, jasno, da se koriste i bilo koja druga slova ili reči) i promenljivoj X dodeliti vrednost promenljive A, a promenljivama Y i Z, respektivno, vrednosti promenljivih B i C. Zatim se izvršavaju naredbe iza DEFPROCsuma. Ukoliko je prva od njih naredba LOCAL A, promenljiva A u potprogramu će biti nezavisna od promenljive A u glavnom programu, što znači da će potprogram biti sasvim autonoman. Umesto procedure, može da se koristi i funkcijski potprogram koji počinje sa DEFFNsuma (A, B) a poziva se, na primer, sa: X=2+FNsuma (total, sabirak)+32.

Ništa nije savršeno

lako su konstruktori BBC-jevog bejzika očigledno uložili veliki napor da omoguće pisanje savremenih, struktuiranih programa, očigledno su propustili da posao dovedu do kraja. Pre svega, prenošenje matrica i nizova kao argumenata nije jednostavno i, što je još gore, nije dokumentovano. Tek se uvidom u stručne časopise ulazi u ovu tajnu i tako pisanje potprograma za rad sa matricama i sistemima jednačina (školski primer korisnosti strukturiranog programiranja) postaje moguće. No, izgleda da nikakvim trikovima nije moguće sintetisati lokalnu ON ERROR naredbu: naredbu pomoću koje bismo bili u stanju da kontrolišemo eventualne greške u proceduri a da ne remetimo tretiranje grešaka u drugim procedurama i glavnom programu.

Nedostaje, osim toga, lokalna RESTORE naredba, kao i mogućnost da se jednostavno "sačuva" status računara (sadržaji svih sistemskih promenljivih koje su, inače, prilično rasute po memoriji), koji bi se "povratio" po nailasku na standardnu naredbu ENDPROC. Ove nedostatke 90% korisnika neće ni zapaziti, ali nikome, sigurno, neće biti pravo što, u obilju naredbi, MERGE nije našlo mesto. Ova naredba se može sintetisati ali to nije isto kao da je u ROM-u. Pri povezivanju modula neobično je korisno što računar ima vrlo fleksibilnu i izuzetno brzu naredbu RENUMBER.

Ultra rezolucija

Rezolucija 640*256 pokazuje da su Acorn-ovi inženjeri želeli da BBC ima moćnu grafiku, pa su se potrudili da obezbede kompletan set komandi za kontrolu displeja. Lepa je pogodnost što je mapa ekrana ista u svim modovima: u modu 1 ima duplo manje tačaka koje mogu da se kontrolišu nego u modu 0, ali je tačka sa koordinatama 1279, 1024 uvek u levom gornjem uglu pa će program planiran za mod 0 raditi i u modu 1 iako će slika biti grublja.

Za crtanje se koriste naredbe MOVE i DRAW, čija funkcija postaje jasna kada pročitamo njihove nazive. No, mnogo je korisnija naredba PLOT koja ima tri argumenta - prva dva govore o funkciji koju treba izvršiti (PLOT 4 je, na primer, isto što i MOVE), a preostala dva daju koordinate tačke. Naredba PLOT obavlja neke poslove koji bi inače mučili programera: crtanje isprekidane linije, bojenje kvadrata, trouglova, mnogouglova i slično. Autoru ovoga teksta se posebno dopala paralelna mogućnost apsolutnog i relativnog (prema adresi zadnje crtane tačke) adresiranja grafičkih jedinica: svaki od ovih metoda ima svoje prednosti, pa je lepo ako su oba prisutna.

U prospektima se obično navodi da BBC poznaje 16 boja, što je samo delimično tačno: različitih boja ima, u stvari, 8, do preostalih osam dobija kombinacijom osnovnih. Osim toga, nema mnogo smisla raditi u modu 2 (preveliko zauzeće RAM-a) - bolje se opredeliti za mod 4 ili mod 5 i imati na raspolaganju 4 boje, lepu rezoluciju i dosta slobodnog memorijskog prostora. Nismo ograničeni na boje koje je Acorn izabrao, što jedna od najlepših finesa na BBC kompjuteru: primenom naredbe VDU može se bilo koja od četiri standardne boje predefinisati u neku drugu. U modu 0, na primer, raspolažemo samo crnom i belom bojom, ali posle VDU 19, 1, 4, 0, bela boja postaje zelena.

Naredba VDU je neobično moćna, pa se oni koji saznaju da je VDU X isto što i PRINT CHR$(X) obično nemalo iznenade. Zaista, VDU je uvedeno jedino zbog jednostavnijeg i bržeg pisanja i uvek može da zameni sa PRINT CHR$. Kodovi 0-31 rezervisani su za specijalne namene od kojih je jedna (promena početnih boja) već pomenuta. Pomoću VDU se, da pomenemo samo neke primene, definišu prozori za tekst i grafiku (na taj način korisnik može da radi na jednom delu ekrana i time ne kvari izgled ostatka na kome je, recimo, neka slika), menja grafički koordinatni početak, uključuje i isključuje kursor, menja njegov oblik, aktivira i isključuje štampač... Najzad, VDU 25 potpuno imitira već dovoljno moćnu naredbu PLOT C, X, Y.

Set naredbi za crtanje dopunjavaju GCOL i COLOUR za biranje boja. Naredba GCOL, osim standardne funkcije, omogućava da se crtež logički sabira (funkcije AND, OR i XOR) sa onima što već postoji na ekranu i tako formiraju složene slike. Za igre i obradu teksta je korisno i definisanje karaktera koje se jednostavno postiže jednom od opcija naredbe VDU. Što je najlepše, predefinisani karakteri mogu da budu i na tastaturi pa se, na primer, srednja zagrada može zameniti našim slovom č.

Sintesajzer bez tastature

Generalisanje tonova je jedna od najjačih karakteristika BBC-ja. Četiri kanala (jedan samo za generisanje šuma) omogućavaju kako sintezu komplikovane muzike tako i proizvođenje glasa (mada se u BBC ugrađuje posebna opcija u vidu sintetizatora glasa, koja uglavnom dodaje potreban softver). Jednostavne note se dobijaju naredbom SOUND koja ima četiri parametra, broj kanala, visinu note, trajanje i jačinu zvuka: SOUND 1, 10, 101, 10 daje, na primer, četvrtinu note C u Moderato ritmu. Pravi efekti se dobijaju primenom naredbe ENVELOPE, pomoću koje definišemo ovojnicu tona koji najpre može da se pojačava (modulacija može da bude i po frekvenciji, a ne po amplitudi), smanjuje, opet pojačava i tako ponavlja dok se ne sinhronizuje sa tonom na nekom drugom kanalu ili dok korisnik ne pritisne taster Escape.

Dok se naredbama za generisanje slike ne mogu uputiti nikakve zamerke, naredbe za generisanje tona su moćne, ali i neprijatno složene, pa najveći deo korisnika (računajući i autora ovog teksta) nikada neće uspeti da iskoristi sve njihove potencijale. Trebalo je da budu formirane naredbe koje će biti prilagođene potrebama korisnika, a ne čipu 76489.

Operativni sistem

Konstruktori računara BBC su težili i uspeli da on bude neobično brz i efikasan. BBC B, premda ima star osmobitni procesor 6502, radi daleko brže čak i od većine 16-bitnih kompjutera, što samo potvrđuje tezu o ravnopravnosti hardvera i softvera pri konstrukciji računara. Jasno je da su morali da budu učinjeni neki kompromisi (ne mnogo njih!) da bi se dobilo u efikasnosti. Jedan od tih kompromisa je rad sa stringovima: ukoliko na početku rada programa definišemo maksimalnu dužinu alfanumerika, utrošak memorije će biti minimalni. Računar neće imati ništa protiv produžavanja tih alfanumerika u toku rada, ali će tada utrošak memorije biti katastrofalan.

Iskusniji korisnici će, svakako, poželeti da rade sa mašinskim jezikom i da iskoriste ugrađeni asembler, a firma se potrudila da taj posao što više olakša dobrom dokumentacijom. Ugrađeni asembler je podržan bejzikovim editorom, što znači da se asemblerske rutine pišu poput bejzik programa: čim računar naiđe na otvorenu srednju zagradu, počinje sa asembliranjem i smešta dobijeni sadržaj u memoriju počevši od lokacije na koju ukazuju promenljiva P%. U sors programu se, jasno, koriste labele, komentari i slične asemblerske naredbe, pa je rad sasvim komforan. Pozivanje mašinskog programa se postiže naredbama USR i CALL koje imaju mnogobrojne opcije za prenošenje parametara u potprogram.

U okviru uputstva za upotrebu date su početne adrese svih važnijih rutina operativnog sistema. Tako je onaj ko piše mašinske programe pošteđen brige o crtanju i pisanju po ekranu, radu sa kasetofonom, generisanju tonova... Namerno smo rekli "adresa rutina operativnog sistema" a ne "adresa rutina bejzik interpretatora" - ova dva programa su, naime, sasvim odvojena!

Operativni sistem zauzima 16 KB i obuhvata sve rutine neophodne za kontrolu računara. Bilo je mnogo verzija operativnog sistema, što stvara probleme sa kompatibilnošću. Ako kupujete BBC B, obavezno proverite da li je u njega ugrađena verzija operativnog sistema 1.20! Ukoliko računar, kada otkucate *HELP, odgovori nekim drugim brojem, slobodno potražite drugog prodavca.

BBC-jev bejzik takođe zauzima 16 KB i smešten je u jedan EPROM 27128 (sada se u računare stavljaju i ROM-ovi, što verovatno znači da je razvoj operativnog sistema okončan). Neposredno pored ovoga EPROM-a se nalaze još tri podnožja - u njih korisnik može da smesti druge EPROM ili ROM čipove. Programe u njima možemo i sami da razvijamo, ali će se većina korisnika opredeliti za gotove. Ukoliko, na primer, kupimo ROM sa paskal kompajlerom, otkucaćemo *PASCAL po uključivanju računara i bejzik će biti isključen, ne zauzimajući nikakav adresni prostor. U podnožju ne moraju da se stavljaju samo interpretatori novih programskih jezika - mnogi koriste procesor teksta ili neki drugi uslužni program kao alternativu bejziku. Ovi programi, pogotovu ako imate BASIC II (proverite to tako što ćete pritisnuti BREAK i otkucati REPORT - ako računar ispiše (C) Acorn 1983, imate drugu verziju bejzika i vaš računar poznaje mnoge naredbe koje nisu spomenute čak ni u vašem uputstvu za upotrebu), mogu da pozivaju programe iz bejzik interpretatora, premda proizvođač nije ponudio potrebnu dokumentaciju.

Drugi procesor

BBC B ima ogromne mogućnosti ekspanzije. Na njegovoj zadnjoj strani su, pored standardnih priključaka za televizor, RGB i crno-beli monitor te kasetofon ugrađeni 12-bitni AD konverter, RS-423 interfejs (verzija čuvenog RS-232 serijskog interfejsa) i priključak opcionog Econet interfejsa (dokupljuje se kao posebni dodatak i služi za povezivanje više BBC računara u mrežu). Sa donje strane kutije su portovi za printer, disk-jedinice (disk interfejs se posebno dokupljuje ali nije mnogo skup), "tube" interfejs (za brzu komunikaciju 6502 sa drugim procesorom), 1 MHz bus za povezivanje sa laboratorijskom i drugom specijalnom opremom i "korisnički port" univerzalne namene.

Posebno je interesantno dodati drugi procesor, čime se rešava najveći problem BBC-ja - nedostatak RAM-a. Za sada može da se kupi još jedan 6502 sa 64 KB RAM-a (njegovim dodavanjem se bitno ubrzava izvršavanje bejzik i mašinskih programa jer softver podržava multiprocesorski rad) i Z80 procesor sa istim RAM-om koji donosi CP/M kompatibilnost. U ovom momentu je teško opravdati investiciju od 200 funti za drugi procesor procesora - bolje je čekati do leta u nadi da će se, prema najavama, pojaviti National Semiconductors 16032 mikroprocesor sa 16-bitnim magistralama i 32-bitnom arhitekturom, koji će moći da opslužuje 16 megabajta RAM-a. Opremljen njime, BBC B će postati toliko moćan kompjuter da će teško biti prevaziđen bilo čime osim cenom u sledećih nekoliko godina i, stoga, dovoljan za sve programe koje poželite.

Mogućnost dodavanja drugog procesora ima i negativnih posledica - da bi programi bili kompatibilni sa proširenim kompjuterima, ne treba nikako upisivati podatke direktno u video memoriju, već se opredeliti za stalno pozivanje potprograma iz ROM-a. To ne bi bilo ništa strašno da firma Acorn nije zaključila da će najlakše sprečiti korisnike da to rade ako uskrati potrebne informacije. Tako u uputstvu za upotrebu nalazimo adrese sistemskih programa ali ne i objašnjenje "poukova" po video memoriji, tačnu mapu RAM-a sistemskih promenljivih, podršku direktnom pristupu portovima... Korisnicima ostaje jedino da sami pribave potrebne informacije što se, naravno, obavlja preko klubova programera.

Klubovi programera

Pominjanjem klubova programera dolazimo do poslednjeg (nikako ne najmanje važnog) poglavlja ove priče o BBC B - programska podrška. Za BBC je napisano mnogo izvanrednih uslužnih, sistemskih i zabavnih programa. Igre su neobično efektne i teško da se izgled ekrana igara za druge računare može meriti sa BBC-jevim. Za ovaj računar se najviše pišu akcione igre (brz je, ima odličnu grafiku i ton), dok je avantura znatno manje, najviše zbog nedostataka RAM-a. Logičkih igara takođe ima, i to izvanrednih - šahovski program White Knight (Beli konj) je jedan od najboljih programa za stone računare uopšte! Od akcionih igara posebno vredi nabaviti Snapper-a (virtuozno urađena verzija Pakmena), a od avantura Snowball i Hobbit.

Možemo da vam preporučimo dva komercijalna časopisa: A&B Computing (izlazi šest puta godišnje) i Acorn User, a naročito ovaj drugi. Ipak, prava stvar je tek učlanjenje u kompjuterski klub Beebug. Ovaj klub može da se podiči sa preko 30,000 članova i predstavlja najveću sličnu organizaciju u Evropi. Izdaje časopis koji, u poređenju komercijalnim, izgleda sasvim neugledno ali u njemu nema reklama a tekst iz koga se ne može naučiti ništa novo treba tražiti svećom. Što je najlepše, časopis objavljuje programe koji se skoro mogu oceniti kao odlični i ravni komercijalnima. Sa drugim sličnim klubom koji se zove Laserbug do sada nismo imali kontakt ali može da se pretpostavi da on deluje na sličnim osnovama.

Sve u svemu, BBC B predstavlja izvanredan izbor za onoga ko za računar može da potroši 400 funti. Treba zaista biti kritizerski raspoložen da mu se nadu mane. I pored toga, preporučujemo vlasnicima BBC B da ulože još 100 funti i nabave proširenje od 20 KB, koje oslobađa čitavih 32 KB RAM-a, bez obzira na grafički mod u kome se radi. Ovo proširenje, pogotovu ako bude više programa koji bi koristili njegove "usluge", može da bude dobra zamena drugom procesoru.