Projekti

Uradi sam 8-bitno računalo iz 1970-ih godina, iz radionice zagrebačkog inženjera

Sandro Vrbanus nedjelja, 26. ožujka 2023. u 10:08

Vidjeli smo da vam se svidjela priča o izradi retro igre Pong, koju nam je ispričao zagrebački inženjer Daniel Bele. U nastavku stoga donosimo priču o još jednom njegovom projektu, sličnog karaktera

Ranije ovoga mjeseca mogli ste na našim stranicama pročitati intervju s nadasve zanimljivim sugovornikom, inženjerom i prije svega entuzijastom za elektroniku, koji je izradio retro igru Pong, kao nekada, samo koristeći hardver. Iako za sebe kaže da je i dalje "lajbek" za elektroniku, Daniel Bele iza sebe ima više sličnih projekata. Budući da je prvi intervju bio vrlo dobro prihvaćen, dogovorili smo se s njime i priredili još jednu zanimljivu priču o "uradi sam" računalu – temeljenog na Zilogu Z80. Bilo je potrebno samo "podbosti" Daniela s kojim pitanjem, anegdote su krenule same od sebe…

Vidjeli smo genijalni hardverski Pong. Što Vas je fasciniralo u vezi ovog drugog projekta?

Z80 je fascinantan projekt iz više razloga, pa i emotivnih. Uvjerljivo me vratio u plitke 80e, kada smo danima čekali poštara da od pirata donese igrice na kazetama, od kojih smo rijetke uspjeli pokrenuti iz prve. Ali ubadali smo i dalje uporno – eh, da mi je povratiti to povjerenje u život (smijeh). Također, naši prvi susreti sa računalima bili su usko vezani uz pokret "Nauka mladima", tzv. centar u kojem smo prvi puta vidjeli pokojnog Kekića kako programira na CPC 464 i tripali na 8-bitne kompove. Sve sam to proživio ponovno, gledajući u djetinjstvo poput slika kaleidoskopa, pun zahvalnosti prema toj generaciji koja je u nama raspirivala žar. I sada me prolaze žmarci kada snatrim o tom vremenu. Napokon, naučio sam dosta o arhitekturi računala što mi je pomoglo biti boljim nastavnikom, ali i programerom.

Što Vas je potaknulo da se okušate u samostalnoj izradi tog retro računala?

Ležao sam s jednim Sarajlijom u traumi u Draškovićevoj, čekajući operaciju podlaktice koju sam fino podrobio na skejtanju. Malo smo spikali o poslu, on je spomenuo bauštelu, a ja programiranje. Oči su mu začuđeno zakolutale, pa je izustio urnebesnu rečenicu:

"On' kao, ti kuckaš, a slova id' gore po ekranu!?! Neb'ti ja to radio, glava bim' popucala!"

Daniel Bele je softverski inženjer, predavač na Visokom učilištu Algebra, rntuzijast u elektronici, književnosti i skateboardingu te autor romana "Ponedjeljak" i zbirke priča "Praznina"
Daniel Bele je softverski inženjer, predavač na Visokom učilištu Algebra, rntuzijast u elektronici, književnosti i skateboardingu te autor romana "Ponedjeljak" i zbirke priča "Praznina"

Izranjavao sam se od smijeha, naravno u sebi, pa i nakon što ga je murija pokupila iz bolnice radi neke sitne krađe. Međutim, možda i radi lijekova nakon operacije, počeo sam mantrati tu rečenicu unedogled (smijeh).  Odjednom sam shvatio razlog radi kojeg sam tako često u high-level perspektivi programerskog posla potpuno izgubljen. U suštini, ja uopće ne znam kako računalo radi! Tu se licemjerno cerekam sa visine, a takav sam 'Lacković Croata' da uopće ne kužim što se događa 'pod haubom' kada tipkam na tipkovnici, a kamoli kako se slova prikazuju na ekranu. Posramio me dobro taj cerek, pa sam odlučio izgraditi kompjuter oko Z80 procesora  koji radi upravo to - "ti kuckaš, a slova id' gore po ekranu". (smijeh) A onda kada sam se već zalaufao, ubacio sam još i zvučni modul i kazetofon.

Koliko ste vremena utrošili za realizaciju?

Realizacija je trajala vrlo kratko, oko 2 mjeseca. Cijeli ovaj proces je detaljno opisan i implementiran na mojoj stranici, zajedno sa shemama i assembler kôdom.

Doduše, prije nego što sam izgradio Z80 kompjuter, pola godine sam proveo gradeći vlastiti 4-bitni procesor ne bih li shvatio kako procesor šljaka i time potvrdio paradigmu prema kojoj ne koristim niti jednu komponentu koju u potpunosti ne razumijem. Tutorial za izgradnju 4-bitnog procesora je također dostupan na mojem webu.

Što je predstavljalo najveći izazov? Sigurno ih je bilo…

Najveći izazov bio je implementirati kazetofon. S kazetofonom 'pričam' preko SIO modula za dvosmjernu serijsku komunikaciju (čitanje i pisanje). Zamisli, nađem SIO modul u Zagrebu kod igrača koji se pojavi s hrđavom Golf dvojkom, gepeka punog nekih istočnonjemačkih klonova Z80 i perifernih čipova koje je naslijedio od pokojnog punca, i kune se u sve živo i mrtvo da šljakaju i da su kompatibilni sa standardnim čipovima. Potom kupujem kazetofon od komodorca preko oglasa iz Đakova kojem otpadaju vratašca i jedino kaj mogu pomisliti: "ovo dela – ne! spalio me!". I sad, nisam ziherica niti za SIO čip, niti za kazetofon da šljakaju, a pokušavam ih povezati.

Z80 sa clockom i bufferima za periferiju na početku projekta
Z80 sa clockom i bufferima za periferiju na početku projekta

Teško je opisati osjećaj oduševljenja kada pročitaš bilo kakav signal s kazete, kojeg si prethodna dva tjedna očajnički pokušavao zapisati. Život odjednom oplemeni smisao (smijeh). Uglavnom, kada sam napokon natjerao kazetofon da čita i piše, nikako nisam uspio postići točnost na više od 5, 6 slova. I onda mi sine – svaki ću bit zapisati kao byte, odnosno 8 bitova. Kod čitanja, assembler kôd provjerava bit po bit bytea i ako ustanovi da je stiglo više od 4 jedinice u byteu, proglašava signal jedinicom. Dakle, isfurao sam paritet koji tolerira do 3 bita pogreške. I opet nije šljakalo, svega do 20 znakova! Potom sam poduplao paritet tako da jedan bit zapisujem kao 2 bytea i toleriram 7 bitova greške. Malo se poboljšalo, ali i dalje je bila greška kod 30 slova. I ništa, pomirim se sa svojim neznanjem i završim projekt. I pazi ovo, nakon što sam isprintao PCB i zalemio čipove, stvar je odjednom proradila savršeno! Dakle, bio je problem u eksperimentalnim pločicama i gotovo da je nemoguće to natjerati da radi zbog gubitaka u naponu. Drugim riječima, imao sam više sreće nego pameti da sam dobio bilo kaj van.

Kako ste došli do komponenata za ovaj projekt?

U Zagrebu postoje odlični dućani sa elektroničkom opremom tako da nisam imao nekih većih problema oko standardnih čipova. Z80 procesor i njegove periferne PIO i SIO čipove sam lako našao preko oglasnika i, istini za volju, malo preplatio, ali se isplatilo jer su svi besprijekorno radili. Možda je frajer i pokrpao Golfa (smijeh). Memorijske sam čipove našao u Kini, ali vrijedilo je čekati. Naime, uspio sam nabaviti dual-ported RAM koji omogućuje istovremeno čitanje i pisanje. To je bio prijeloman trenutak jer sam napokon mogao realizirati video RAM kojeg podatke kontinuirano šaljem na monitor kako bi generirao sliku, a ta je slika odjednom postala dinamičnom jer sam istovremeno mogao pisati u taj RAM pomoću procesora. Time je zatvoren cijeli ciklus – od hvatanja signala s PS/2 tipkovnice, njihova pretvaranja u glyphove slova, do konačnog slanja u video RAM da bi se slova napokon prikazala na ekranu. Zapravo, time se ostvarilo i proročanstvo legendarnog Sarajlije, kojeg sam, uzgred rečeno, kasnije sreo u centru i prepričao mu cijelu epizodu. Onda se on počeo drapati od smijeha:

"Nis' ti burazeru normalan! Neb'ti ja to radio, nema tih para!"

Fascinantno je kako se mi, mali ljudi u gomili sudbina oko nas, ipak nekako pronalazimo i pozitivno utječemo jedni na druge.

Koji je uistinu smisao ovakvih projekata i samogradnje?

Kao što sam već spomenuo, izgradnja je pomogla  prvenstveno meni, da napokon shvatim kako računalo radi. Nemam dojam da današnja generacija pati od kompleksa te prirode u toj mjeri, ali ja se nisam osjećao sigurno dok to nisam savladao. Također, čovjeka u životu prate dvije velike tragedije – jedna je da ne možeš dobiti ono što želiš, a druga je, kakve li ironije, da to dobiješ. Potom nastaje praznina koju moraš ispuniti nekim novim projektom, idejom, stvaranjem. A koliko ispunjenja donosi taj proces stvaranja, pokušat ću dočarati s par anegdota.

Odem do Mihaela (stariji brat kojem mogu zahvaliti za većinu stvari koje razumijem), pješice 2.5 km, po neku staru tipkovnicu i trčim doma, da bih napokon shvatio da je ne mogu natjerati da radi sa Z80 procesorom. Zovem ga opet, veli on da je našao još jednu u podrumu i da slobodno i tu pokupim.

Finalna realizacija projekta Z80
Finalna realizacija projekta Z80

Sada već 10 km pješice imam u nogama, ali ovu krivo spojim i skurim. Onda mi brat napomene da jedan mrak frend Vanja sigurno ima i, kakva je legenda, dat će mi bez problema. Odem do Vanje, naravno pješice, pokupim tipkovnicu i ona čudom proradi! Nakon, dakle, 15 km hoda i nešto manje sati kasnije. Ali, umor ti ne osjetiš, jer te pere taj čin stvaranja, nevjerojatan zaborav sveg ostalog. I još jedna anegdota za kraj. Tražim na Hreliću televizor sa kompozitnim ulazom i nađem kod nekog lika za '2 glave'. Velim ja, daj mi za '5 banki' i nosim ga takvog blatnjavog. I tako, krenem ja s tim televizorom, već i ja sav blatan, popikavam se i pitam ga da li šljaka, reda radi. A frajer mi odbrusi:

"Daj ne njajke za 5 banki, tak bum ti zašarafil šamar da buju te zakopali s tom telkom! Otkud ja znam da li šljaka!?!" A fakat je šljakala. Iskoristio sam ju za Pong. (smijeh)

U nastavku donosimo i kratki demo video uradi sam računala Z80: