Zašto graditi računar kada se na tržištu nalaze modeli velikih mogućnost i prihvatljivih cena? Razlog nije teško pogoditi: jednom nerazumljivom zabludom nadležnih organa uvoz računara u Jugoslaviju je, osim kada se radi o povratnicima iz inostranstva, zabranjen. To znači da ljubitelj računara nema legalne mogućnosti da dođe čak i do najjednostavnije mašine i dalje usavršava svoje sposobnosti čak i ako je spreman da plati visoke carine. Kod nas, doduše, postoji nekoliko firmi koje se bave sklapanjem stranih kompjutera i, u poslednje vreme, započinju proizvodnju originalnih modela, ali se cene tih računara, na žalost, kreću između 100 i 900 hiljada dinara (govorimo, razume se, o stonim računarima), pa su teško prihvatljive za džepove pojedinaca. Zato je računar "galaksija", kome su posvećene sledeće stranice, prvi originalni domaći lični računar pristupačan svakome ko želi da uloži trud u njegovo sklapanje!
Kada kupujete komercijalni model kompjutera, nalazite se u prilično prijatnoj poziciji: dobijate računar koji se jednostavno povezuje sa televizorom, uključujete ga u mrežu i počinjete sa radom. Kada sami pravite računar, stvari su mnogo složenije: počinjete od neugledne gomile čipova, kondenzatora, otpornika i tastera i pokušavate da ih povežete u celinu koja će raditi. Ako budete pažljivo sledili uputstva koja ćemo dati, to ne bi trebalo da bude previše teško: nikakvo posebno predznanje, osim određenog iskustva sa lemljenjem, nije potrebno da bi se, posle određenog broja časova rada, na ekranu vašeg televizora pojavilo ohrabrujuće READY.
Samogradnja, ipak, sa sobom nosi i određene rizike. Iako je računar "galaksija" izrađen već u osam primeraka koji besprekorno funkcionišu, pa nema dilema o ispravnosti samog projekta, postoji mogućnost da naiđete na neki neispravan čip, pa nešto pogrešno postavite, napravite "mikronski" kratak spoj na štampanom kolu ili stradate na nekoj drugoj "krivini". Tada će biti neophodno nešto više znanja ili (u ekstremnom slučaju) stručna pomoć da bi se neispravnost pronašla i otklonila. Ipak, stara poslovica kaže da bez rizika nema ni uspeha. Računar koji ste napravili sopstvenim rukama i koji je proradio pružiće vam više zadovoljstva od nekog komercijalnog modela, ne računajući činjenicu da ćete u toku gradnje videti iz čega se kompjuter sastoji i pronići bar u neke tajne njegovog funkcionisanja.
Pre nego što donesete odluku o samogradnji računara, treba da razumete njegovu osnovnu koncepciju. Računar "galaksija" je konstruisan tako da bude pogodan za samogradnju, da je jednostavan i zgodan za rukovanje a ipak dovoljno moćan da može da se upotrebi i u korisnim poslovima i, razume se, za zabavu. U tom smislu, "galaksija", doduše, ne može da konkuriše moćnijim komercijalnim modelima stonih računara, kao što su Apple II, Commodore 64 ili čak ZX Spectrum, ali ne treba zaboraviti da je jeftinija od svakog od njih i da se, što je još važnije, sastoji od delova koji mogu da se nabave kod nas ili legalno uvezu. Čini nam se da je "galaksija" po vrednosti iznad poznatog ZX81, koji je prodat u ogromnom broju primeraka, pokazavši, tako, da je za početak najpodesniji skroman i jeftin računar. Ne treba zaboraviti da, prema rezultatima preliminarnog ispitivanja koje smo izvršili, računar "galaksija" namerava da napravi preko hiljadu naših čitalaca što znači da će uslediti razmena programa, informacija, kao i eventualno osnivanje klubova. Iz iskustva znamo da saradnja vlasnika različitih kompjutera (pa ma koliko ti kompjuteri bili moćni) ne može da bude naročito interesantna i plodna, pa će računar "galaksija" možda poslužiti kao most između ljubitelja računara širom Jugoslavije.
Računar "galaksija" se sastoji od štampanog kola, devetnaest ili dvadeset integrisanih kola (zavisno da li se odlučite da stavite treći čip 6116 i tako proširite RAM memoriju "galaksije" na 6 kilobajta), određenog broja tranzistora, dioda, otpornika i kondenzatora (precizni popis opreme dajemo nešto kasnije), tastature, kutije i ispravljača. Štampano kolo je jednoslojno, što znači da je njegova izrada pojednostavljena, da ima manje mogućnosti za greške i da je, na kraju, smeštanje lemenata povezano sa manjim rizikom. Jedna od posledica je da smo morali da upotrebimo priličan broj kratkospojnika ("džampera"), što ne bi trebalo da izazove nikakve probleme osim izvesnog produženja posla.
Jednoslojna štampa onemogućava postavljanje previše integrisanih kola (čipova). Želeli smo, uz to, da računar "galaksija" bude što jeftiniji, pa smo morali da težimo da se što više stvari reši programski (softverski), a da broj čipova bude minimalan. Najveće pojednostavljenje hardvera je postignuto time što je video podržan softverski: mikroprocesor, naime, posle svake dve stotinke sekunde prekida redovan posao i pomaže video-stepenu da ispiše sliku na ekranu.
Da bi se shema računara maksimalno pojednostavila, upotrebljene su statičke umesto danas prilično popularnih dinamičkih memorija (dinamičke memorije se, okvirno govoreći, sastoje od kondenzatora koje računar mora da "dopunjava" u kratkim vremenskim intervalima). Osim toga, za korišćenje statičkih memorija nije potrebno dovoditi tri stabilisana napona napajanja, što u mnogome pojednostavljuje štampano kolo i, što je još važnije, značajno smanjuje verovatnoću da pogrešite pri izradi (vrlo je verovatno da računar sa dinamičkim memorijama ne bi proradio čak ni kod umereno iskusnog konstruktora). Statičke memorije su, uz to, skoro kompatibilne sa EPROM-om 2716, što znači da se deo RAM-a lako može zameniti ROM-om. Statičke memorije, na žalost, imaju i neke loše strane: skuplje su i kapacitet im je manji, ali nam se čini da je njihovom upotrebom dobijeno daleko više nego što je izgubljeno. S obzirom na to da RAM memorija računara "galaksija" može da se povećava do 54 kilobajta, iskusnijim konstruktorima je ostavljena mogućnost da upotrebe dinamiške memorije za to proširenje i tako uštede novac.
Jedan od važnih koncepcijskih zahteva bio je i da se koriste standardni čipovi koji se lako nabavljaju. Razlog nije teško pogoditi: zavisni smo od uvoza integrisanih kola, pa svi nestandardni čipovi predstavljaju priličan problem pri narudžbi (službenici naših banaka vas neće oduševljeno dočekati ako poželite da na dest adresa pošaljete po dve tri funte!). Zato nije mogao da bude upotrebljen neki od standardnih generatora karaktera ni keyboard-encoder, pa smo pripremili jedan EPROM od dva kilobajta kome mikroprocesor može da se obrati da bi saznao kako koje slovo izgleda. Osim toga, u ovaj EPROM su mogla da budu upisana i naša latinična slova Č, Ć, Ž i Š, koja omogućavaju da domaći računar bude zaista domaći.
Relativno mala rezolucija (32 slova ili 64 grafičke tačke u svakom redu) posledica je toga što mikroprocesor jednostavno nema vremena da ispiše više znakova. Većini čitalaca koji su nam poslali preliminarnu narudžbenicu ova karakteristika je jedino i zasmetala (uz malu memoriju ali je taj problem otklonjen). Moramo da kažemo da se rezolucija računara "galaksija" ne može poboljšati nikakvim hardverskim ni softverskim dodacima koji ne bi promenili strukturu čitavog računara (voleli bismo, naravno, da neki elektroničar ili programer u praksi demantuje ovu izjavu) i da se sa njom svi oni koji odluče da naprave računar moraju pomiriti. Ipak, ne čini nam se da ovo predstavlja preveliko ograničenje: računar "galaksija", to stalno treba imati u vidu, nije namenjen krupnim komercijalnim primenama, koje bi zahtevale obradu teksta, a što se igara tiče, vlasnici ZX81, koji imaju istu rezoluciju, uverili su nas da je za dobrog programera i ona dovoljna da napravi prilično efektne slike.
Želeli smo da računar "galaksija" bude opremljen profesionalnom tastaturom. Iako je njegova cena na ovaj način nešto povećana (mada stoji i pitanje gde kod nas mogu da se nabave ikakve tastature - bolje ili gore od one koju predlažemo) čini nam se da se ova investicija višestruko isplati: u toku kucanja programa, pa čak i u toku najjednostavnijih igara, loša tastatura može da priredi vlasniku računara toliko problema da poželi da digne ruke od svog kompjutera zanemarujući sve njegove dobre karakteristike. Dobra tastatura, dakle, predstavlja neku vrstu stimulansa za kreativan rad.
Mogućnosti povezivanja sa dodacima su značajne. Pre svega, računar "galaksija" postaje sasvim beskoristan ako nije povezan sa televizorom. Umesto televizora, može da se upotrebi i monitor (prema propisima koji važe već nekoliko godina svaki televizor nekog od naših proizvođača bi trebalo da ima i monitorski ulaz, ali se toga niko ne drži) koji unekoliko poboljšava kvalitet slike, mada je ona uvek dovoljno stabilna.
"Galaksija" se povezuje sa kasetofonom uz ostvarivanje brzine prenosa od 280 bauda (u svakoj sekundi se na traku upiše 280 bita). Ova brzina garantuje pouzdanost samim tim što je manja od one koju nude neki komercijalni modeli. Kao ilustraija problema poouzdanost/brzina neka posluži citat iz uputstva za upotrebu BBC računara koji se reklamira kao jedan od najkompletnijih i najjačih stonih računara na tržištu: "brzina snimanja je 1300 bauda, ali vam predlažemo da, kada snimate neki važan program, unesete sledeću naredbu i tako smanjite brzinu na 300 bauda...". Bazična memorija računara "galaksija" nije velika, pa snimanje na kasetu ne traje predugo, a verifikacija snimka otklanja sve ostale potencijalne probleme.
Na računaru se, najzad, nalazi i standardni port za ekspanziju. Na njega bi mogle da budu priključene "velike" periferijske jedinice, kao što su štampači, ploteri i disk-jedinice, ali ovo verovatno neće biti čest slučaj. Na, port, međutim, mogu da se priključe i generatori tona, palice za igru, AD konvertori, kontroleri i druge "sitnice" kojima ćemo u našem časopisu posvetiti posebnu pažnju u toku sledeće godine. Računar "galaksija" će, dakle, biti opremljen periferijskom opremom, koja će biti u skladu sa mogućnostima i željama njegovih. Što više čitalaca ovih redova napravi računar, posvetićemo mu više pažnje i objaviti više šema.
Na razvoj softvera računara "galaksija" je utrošeno zaista nebrojeno časova rada. Počeli smo od Microsoftovog Level I bejzika, koji je zauzimao četiri kilobajta i pružao mizerne mogućnosti: rada sa alfanumericima nije bilo, programi su mogli da se ispravljaju samo prekucavanjem čitavih linija, nije se moglo programirati na mašinskom jeziku, časovnik nije postojao... Kroz bezbroj izmena, od Microsoftovog bejzika su ostali samo potprogrami za sabiranje, oduzimanje, množenje i deljenje brojeva i za realizaciju ciklusa - sve ostalo je promenjeno. Iako ROM i dalje zauzima samo četiri kilobajta, čini nam se da su mogućnosti toliko povećane da je računar "galaksija" postao po mogućnostima uporediv sa nekim računarima koji imaju dva puta veći ROM. Izabrali smo, osim toga, naredbe koje otvaraju veštom programeru mogućnost da na najjednostavniji mogući način dogradi opcije bez kojih smo ga ostavili; jedan od najboljih primera je naredba PTR koju ćete upoznati čitajući uputstvo za upotrebu.
Maksimalno smo podržali rad na mašinskom jeziku i obezbedili dva linka (link je bajt u RAM-u na kome se nalazi instrukcija RTN (vrati se) koju računar s vremena na vreme izvršava, ali koju korisnik može da promeni i tako natera kompjuter da "izađe iz ROM-a"): jedan od njih omogućava jednostavno dodavanje novih naredbi, a drugi daje podršku ventualnom štampaču i omogućava neke druge "specijalne efekte" kojima će se časopis "Galaksija" baviti sledećih meseci.
Na štampanom kolu se, kao što vidimo iz montažne sheme, nalazi još jedan EPROM od 4 kilobajta, kojim u ovom trenutku ne raspolažemo - umesto njega ostavićete jedno prazno mesto. To mesto je namenjeno proširenjima: možda ćemo u budućnosti pripremiti još jedan EPROM u kome će se nalaziti program za rad sa mašinskim jezikom, proširenje postojećeg bejzika ili nešto treće. No, o tome ćemo govoriti kada budemo sigurni da je računar "galaksija" stekao popularnost koju mu mi predviđamo.
Čini nam se da je sadašnja verzija bejzika dobra, iako unekoliko nestandardna. Izbacili smo sve nepotrebne naredbe (čak i tradicionalno LET), dodali neke nove, a neke postojeće preimenovali. Zašto smo uradili ovo poslednje? Jedna od mogućnosti računara je skraćivanje naredbi na jedno slovo i tačku, čime se ne štedi samo RAM nego i vreme izvršavanja programa. Nismo želeli da se pojavljuju naredbe koje počinju istim slovom, pa smo promenili imena nekih od njih. Ipak, strogo smo pazili da se ne pojavi neka nardba koja u bejziku bilo kog računara (koliko samo ima verzija bejzika?) ima neko drukčije dejstvo - ako je bilo potrebno, izmislili smo poneku reč (npr. TAKE).
Pre nego što pređemo na tehnička pitanja izrade računara, jedna izjava zahvalnosti: konstruktor računara "galaksija" se zahvaljuje Dejanu Ristanoviću, čiji su stručnost i iskustvo svakako bili presudni u nalaženju zrele koncepcije softvera, kao i Bori Trboviću i Zoranu Vasiljeviću, na drugarskoj pomoći pri realizaciji "hardverskog" dela projekta.
MIKROPROCESOR - Z80A ROM - 4-8 KB RAM - STATIČKI, 2-6 KB Max. RAM - 54 KB JEZIK - bejzik EKRAN - 16 redova po 32 znaka GRAFIKA - 48 * 64 tačke ARITMETIKA - Pokretni zarez, 32-bitna tačnost SNIMANJE - 280 bauda POTROŠNJA - 5 W PRIKLJUČCI - Monitor, TV, Magnetofon PROŠIRENJA - Preko 44-polnog konektora
Kao u svakom dobro organizovanom sistemu, i u računaru "galaksija" se zna ko izdaje naređenja, ko je za šta odgovoran i ko čeka da bi "priskočio u pomoć" kad za to dobije zahtev. Varate se ako mislite da je "glavni gazda" mikroprocesor. Iako je on najveći, najkomplikovaniji i troši najviše struje na celoj ploči računara, on ništa ne radi proizvoljno, već samo izvršava naređenja koja mu izdaje ROM (EPROM 2732), tačnije program koji je upisan u njega. Čak ni ROM, međutim, ne izdaje naređenja kad mu se to prohte, već tek kad ga mikroprocesor za to upita. Šta se, zapravo, dešava u računaru "galaksija" od trenutka kad ga uključite u struju?
Recimo da ste tek uključili računar. Sklop tranzistora T1 sa otpornicima R4 i R5, elektrolitskim kondenzatorom C6 i diodom D1 drži nožicu "RESET" mikroprocesora na logički niskom nivou (između 0 i 0,8V) oko pola sekunde, dok se C6 napuni, a zatim naglo tranzistor prestane da provodi i "pull-up" otpornik RP podigne napon iste nožice na logički visok nivo (iznad 2,4V) i tako ostaje sve dok računar radi. To je takozvani postupak inicijalizacije, u kome mikroprocesor dobija naređenje da izbriše sve što se slučajno zateklo u njemu u trenutku uključenja i započne posao ispočetka.
Prva stvar koju će uraditi biće da upita ROM koja je njegova prva naredba. On to praktično čini ovako:
Svaku od 16 adresnih linija (A0 do A15) postavi na nizak logički nivo (dakle, binarno stanje je 0000 0000 0000 0000, to je adresa 0), nožicu MREQ (Memory Request = zahtev memoriji) spusti na nizak logički nivo (kod mikroprocesora Z80A je zastupljena takozvana negativna logika, znači da je visok logički nivo, koji se predstavlja brojem 1, "pasivno stanje" a nizak, predstavljen nulom, "aktivno stanje"), čime je prozvao memorijsku adresu 0. Iz memorijske mape vidimo da ta adresa pripada ROM-u. Ostaje samo još da saopšti da li to prozivanje predstavlja upis u memoriju ili čitanje iz memorije? Naravno, pošto se ovde traži naredba, radi se o čitanju, dakle nožica RD (read = čitati) će biti aktivna (logički niska). Uostalom, jedna od osnovnih osobina ROM-a je da mikroprocesor može iz njega samo da čita, a ne može da upisuje. | |
Dekoder 74LS156, koji ima uvid u "visoke adresne linije" (A11 do A15), a samim tim grubo zna koji je deo iz memorijske mape prozvan, čini aktivnim izlaz 0, koji aktivira nožicu OE (Output Enable = dozvola izlaza) ROM-a. Sad ROM zna da je prozvan i uzima preciznu informaciju sa adresnih linija A0 do A11 koji od ukupno 4096 bajta se traži. Nalazi adresu 0 i na osmobitnu magistralu podataka (data bus) stavlja podatak 1111 0011 (heksadekadno F3). | |
Mikroprocesor sa magistrale podataka čita podatak &F3, prosleđuje ga do svog internog dekodera instrukcija i tu doznaje da je dobio naređenje koje se zove DI (disable interrupt = onemogući prekid), što znači: neću dozvoliti da me bilo ko prekine u radu - čak se neću obazirati ni na zahtev da generišem sliku na ekranu. Bar dok ne dobijem suprotno naređenje: EI (enable interrupt = dozvoli prekid). | |
Ubrzo će stići i takav zahtev. Ali, pošto mora sve da se radi po redu (osim ako stigne naredba da se nešto uradi i preko reda - to bi bio mašinski ekvivalent bejzik naredbi GOTO) mikroprocesor uvećava svoj programski brojač i čita naredbu sa adrese 1: tu nalazi podatak 1001 0111 ili &97, što znači SUB A, ili: oduzmi stanje registra A od stanja registra A i rezultat smesti u registar A. Dođavola, kakav je smisao ove sulude operacije? Da vidimo: bilo kakvo da je stanje registra A, posle ove operacije stanje će biti 0. Pa, da li je to onda brisanje sadržaja registra A? Upravo to! |
I tako dalje, pedantno i precizno, mikroprocesor će izvršavati svaki zahtev koji dobije od ROM-a (ili čak i od RAM-a, ako koristite naredbu USR), skakaće po memoriji, upisivaće u RAM i čitaće iz njega. Često će tok programa zavisiti i od toga koji ste taster pritisnuli, kakav ste program upisali ili kakav je impuls stigao sa kasete, što na kraju govori da čak ni ROM nije "gazda", već da ste to vi, jer su sve snage računara uperene na to da se što bolje izvrši svaka naredba koja stiže od vas.
Naravno, nije dovoljno da računar radi - potrebno je i da se to vidi na ekranu. Da bi nam bilo jasno kako računar generiše tekst ili grafički oblik na ekranu, potrebno je najpreda razumemo kako uopšte televizor "crta" sliku.
Elektronski top katodne cevi (ekrana) crno-belog televizora stalno emituje tanak mlaz elektrona ka vidljivoj površini ekrana. Ovaj mlaz bi stalno pogađao centar slike i, osim vrlo svetle tačke na sredini, na ekranu se ništa drugo ne bi videlo kad ne bi postojao takozvani otklonski sistem, koji specijalno prilagođenim promenljivim magnetnim poljem skreće mlaz elektrona da pogađa površinu ekrana sleva nadesno, red po red odozgo nadole, dok ne iscrta celu sliku, a onda sve ispočetka - tako 50 puta u svakoj sekundi.
Naravno, pošto na ovako ravnomerno osvetljenom ekranu nema nikakvih informacija, u katodnu cev je postavljena i jedna prepreka, od koje zavisi koliko će elektrona stići do površine ekrana, samim tim i koliko će jak biti svetlosni odziv. Na ovu prepreku se dovodi signal slike (video-signal). Viši pozitivan napon video-signala odgovara svetlijoj površini na ekranu, a niži tamnijoj. Posle svake ispisane linije (što se na računaru "galaksija" događa 16000 puta u sekundi, mada bi po standardu trebalo da bude 15625 puta - ova razlika je zanemarljiva), računar pošalje kratak "horizontalni sink" - signal koji je "crnji od crnog", dakle još niži napon video-signala. Kad se završi ispisivanje poslednje linije na ekranu - računar pošalje znatno duži "vertikalni sink", na isti način. Ove negativne impulse televizor (ili monitor) koristi da sinhronizuje signal otklonskog sistema sa signalom slike. Da bi ispisao ceo red teksta na ekranu, elektronski mlaz mora da povuče 13 horizontalnih linija. Često se za slova koristi samo 9, a preostale 4 linije čine međuprostor između redova.
Širina impulsa horizontalnog i vertikalnog sinka je određena R-C članovima monostabilnih multivibratora koji se nalaze u čipu 74LS123 (za horizontalni impuls "nadležni" su R12 i C3, a za vertikalni R13 i C4). Ovi impulsi su nešto duži nego što propisuje standard, jer je praksa pokazala da se tako dobija stabilnija slika. Ova dva monostabilna multivibratora se pobuđuju iz lanca video-delitelja. To su brojači 74LS93 (učestanost oscilatora deli sa 15), CD4040 (izlaz iz prvog brojača deli sa 1024) i CD 4017 (tako dobijenu učestanost podeli sa 10). Izlazna učestanost će biti: 6144000 Hz : 15 : 1024 : 10 = 50 Hz. To je tačno učestanost kojom se svaki put iznova generiše slika na ekranu.
Jedan od izlaza poslednjeg čipa u lancu video-delitelja (CD4017) se, preko invertora (1/6 čipa 74LS94), dovodi do nožice INT (interrupt = prekid) mikroprocesora Z80A. To znači da će svaki put kad je ovaj izlaz aktivan (to se događa uvek kad je elektronski mlaz koji ispisuje sliku negde iznad prvog reda, ako prekid nije internom programskom zabranom DI onemogućen) mikroprocesor izvršiti sledeći postupak:
Registrovaće da je zahtev za prekid posla stigao, ali neće prekinuti dok ne završi tekuću instrukciju. | |
Kad potpuno završi instrukciju u toku koje je prekinut (to može da traje i do 23 "takta" oscilatora), aktiviraće izlaze M1 i IORQ, čime će "upaliti" flip-flop (1/2 čipa 74LS74) i aktivirati sopstveni ulaz WAIT ("čekaj"). | |
Dok je WAIT aktivan, mikroprocesor ne radi ništa; jednostavno, miruje i čeka da ponovo postane pasivan (logički visok). To će se dogoditi kod prvog sledećeg horizontalnog sinka: izlaz 1/2 čipa 74LS123 obeležen Q (nadvučeno, što znači inverzni, dakle negativni) izlaz će "ugasiti" preko nožice R flip-flop 74LS74. Ovo je učinjeno da bi dalji rad mikroprocesora, koji će uskoro početi da generiše sliku, bio potpuno sinhronizovan sa sinkom. | |
Mikroprocesor mora da zapamti dokle je stao sa poslom. Na posebno mesto u memoriji smešta adresu sa koje je, da nije bio prekinut, trebalo da očita sledeću instrukciju, kao i stanja svih svojih registara. | |
Počinje da izvršava program koji postoji u ROM-u počev od adrese &0038 (ne pitajte nas zašto baš od te adrese; to znaju samo konstruktori mikroprocesora). | |
Upisuje u prva četiri flip-flopa čipa 74LS174 stanje 0001. Ovako memorisano stanje se prosleđuje do karakter-generatora (2716) gde određuje koja linija (od ukupno 13) prvog reda teksta se trenutno ispisuje. | |
Počinje da poziva stanja memorijskih lokacija &2800 do &281F RAM-a, što odgovara prvom redu teksta u video-memoriji. | |
Sadržaj svake ćelije video-memorije se vodi do karakter-generatora, gde određuje koji će oblik slova biti prozvan. Recimo da je to, kao na našem primeru, slovo "Š" (stanje memorijske ćelije je 0101 1110 ili &5E). Već smo rekli da je sada adresirana prva, gornja linija na slovima. Kod ovog slova, upaljeni su bit 4 i bit 6. Pošto je i ovde zastupljena negativna logika, izlaz iz karakter-generatora biće 1010 1111, dakle &AF. Ovaj izlaz je "uhvaćen" u pomerački registar 74LS166. Kao na pokretnoj traci, svih 8 bita "upadnu" paralelno a ispadaju jedan po jedan, jer ih iz pomeračkog registra isteruje oscilator brzinom od 6144000 bita u sekundi (dakle, crtanje jedne tačke traje 0,00000016 sekundi!) | |
Kad se ispiše prva linija, u 74LS174 se upiše binarno stanje 0010 ili &2 (druga linija), što će iz karakter-generatora prozivati drugu liniju svih slova. Kad naše slovo Š stigne na red, izlaz iz karakter-generatora će biti 1101 1111 ili &DF. | |
Tačku po tačku, liniju po liniju, red po red - iscrtava se slika na ekranu. Naše oko je presporo da bi videlo ovu postupnost i sve se zato sliva u jednu stabilnu sliku. | |
Kad se završi ispisivanje poslednjeg reda na ekranu, mikroprocesor iz memorije vraća svojim registrima prethodna stanja, i na kraju potprograma za generisanje slike nalazi instrukciju RETN - poslednji znak kojim daje na znanje da programskom brojaču dodeljuje adresu na kojoj je bio u trenutku kad je prekinut u redovnom poslu, i sve nastavlja kao da se ništa nije dogodilo. Taj njegov "mir" će potrajati samo dok elektronski mlaz ispisuje donji, a zatim i gornji prazan deo ekrana, kad se opet, preko nožice INT, stići novi zahtev da se prekine posao i da se počne sa ispisivanjem nove slike. |
Sledeći važan podsklop računara je tastatura. Matrični spoj (povezivanje u vrste i kolone) je vrlo ekonomičan, jer zahteva minimum čipova za sprezanje sa mikroprocesorom. Dekoder 74LS156 (pazite, u računaru "galaksija" postoje dva takva čipa) proziva vrste, a ako pritisnemo neki od tastera, nizak logički nivo (negativna logika!) prozvane vrste se prenosi na određenu kolonu, gde promenu očita selektor 74LS251 i prosledi je do linije DO mikroprocesora. Ako u toku skaniranja tastature, mikroprocesor naiđe na ovakav slučaj (neki od ulaza selektora je postao nizak), on će tu informaciju proveriti još 256 puta, da bi bio potpuno siguran da se ne radi o lažnom impulsu, a onda će iz izraza VRSTA X 8 + KOLONA sračunati koji je taster pritisnut.
Interesantno je da, dok vi upisujete neki program, mikroprocesor bar 99% ukupnog vremena provodi skanirajući tastaturu (ne računajući, naravno, vreme generisanja video-signala), jer kad vi pritisnete neki taster, on ga samo upiše u video-memoriju i u bafer i odmah se vraća na dalje skaniranje tastature, ne razmišljajući o tome šta ste napisali.
Izuzetak je jedino ako ste pritisnuli neki od specijalnih tastera - BRK, (shift) DEL ili LIST, jer onda ignoriše sve što je do tada upisano u bafer i izvršava naredbu odmah. Ali, evo kakvu ste lavinu pokrenuli kad pritisnete taster ENTER:
Računar se vraća na početak bafera i, ignorišući blankove (prazna mesta), testira da li je prvi upisani znak cifra ili slovo. | |
Ako je cifra - tu onda mora biti broj programske linije; dakle, konvertovaće decimalni broj u binarni oblik i pretražiće u memoriji da vidi da li već ima programsku liniju pod istim brojem. Ako ima, izbrisaće je (pomeriće sav program iz te linije unazad, za onoliko mesta koliko iznosi dužina te linije). Nakon toga će sračunati dužinu teksta u baferu, napraviti toliko mesta u memorisanom programu (pomeriće sve linije sa većim brojem nagore u memoriji) i premestiti, bajt po bajt, upisanu liniju iz bafera na oslobođeno mesto. Još uvek ga ne zanima šta ste upisali - zasad samo memoriše. | |
Ako je slovo - shvatiće da je u komandnom načinu rada i da od njega očekujete da odmah izvrši instrukciju (ili grupu instrukcija). Ta instrukcija može biti, recimo PRINT 5+5, ali i RUN - u tom slučaju ste inicirali izvršenje celog memorisanog programa. Reč po reč, trudiće se da prepozna vaše naredbe, a onda će odlaziti na potprograme u ROM-u koji mu objašnjavaju kako da izvrši svaku od njih. |
Činjenica da ste bili dovoljno mitivisani da pročitate ovaj tekst, koji se bavi ne baš jednostavnim pitanjima, govori o tome da spadate u grupu ljudi koji su u stanju da se uhvate ukoštac sa logičkim problemima. Potrudite se da dođete do literature koja obrađuje ovu problematiku - u poslednje vreme ima i kod nas odličnih knjiga na tu temu. I časopis "Galaksija" će vam stalnom rubrikom pomoći u tome.