Razvojni alati za 8-bitne platforme |
Ljubav na 8-bita Mnogima od nas to zvuči neverovatno, ali kroz nekoliko meseci „Svet kompjutera” puni 30 godina! Vreme kada je SK počeo da izlazi, bilo je zasigurno i najromantičnije vreme u svekolikoj kompjuterskoj istoriji. Početkom sada već davnih osamdesetih, kompjuterska euforija zahvatila je najpre SAD i Japan, da bi se onda proširila na Evropu. U zemlji socijalističkog samoupravljanja na brdovitom Balkanu, radni ljudi i građani su, zahvaljujući brojnim gastarbajterima na Zapadu, brzo došli u dodir s tim čarobnim i neodoljivim uređajima koji su maštu pretvarali u stvarnost. Mnogi pripadnici „stare garde” čitalaca SK-a u to vreme bili su deca koja su se na prvi pogled zaljubila u naprave koje su im nudile neiscrpnu zabavu i mogućnost učenja programiranja. Svi oni sigurno pamte osećaj uzbuđenja kada su na svom televizoru prvi put videli poruku koju je ispisao njihov ljubimac. A šta tek reći o zadovoljstvu kada se ukuca prvi Basic program koji obično ispisuje naše ime? Neponovljivo!Prva ljubav zaborava nema Za sumu od oko 500-700 nemačkih maraka, mogli su da se kupe neki od najpopularnijih kućnih računara tog vremena, a prva velika ljubav domaćih hakera bio je legendarni Sinclair ZX Spectrum. Zbog svojih malih dimenzija, bio je pogodan za švercovanje preko granice (to je tada mnogo značilo zbog visokih poreza i raznih zabrana na uvoz kompjuterske tehnike). Posedovao je solidni procesor Z80 i Basic s podrškom za grafiku. Ubrzo se pojavila još jedna velika zvezda, Commodore 64. Grafika, zvuk, sprajtovi i za to vreme veliki obim memorije učinili su ga stanarom mnogobrojnih domova. Postojali su još neki računari koji su imali svoje pristalice (Atari, BBC B, ZX 81, Oric, Galaksija...), ali je njihov ukupni broj bio mnogo manji od međusobno zavađenih spektrumovaca i komodoreovaca. Tu „idilu” kasnije je, donekle, uspeo da pokvari još samo Amstrad CPC 464/6128, koji je za prilično malo novca nudio komplet računara, ugrađenog memorijskog medija (kaseta/disketa) i monitora. Ko se boji programiranja još?  | Programiranje je tada imalo posebnu draž. Malobrojni srećnici imali su zadovoljstvo da koriste skupe disketne jedinice, dok je ostali „proletarijat” za zapis podataka mahom koristio kasete. Samo onaj ko je tako nešto isprobao može da zna koliko je bilo neudobno pisati iole duži program. Posebna priča za sebe je bio nedostatak stručne literature i knjiga na domaćem jeziku. Maltene jedini izvori znanja bili su malobrojni kompjuterski časopisi koji su se čitali i po nekoliko puta. Negde krajem 1985. godine na tržištu se pojavljuju 16/32-bitne „zverke” u obliku Atarija ST i Amige, što je ujedno označilo kraj zlatne ere 8-bitnih kompjutera.Ako ste pomislili da se nakon 30 godina niko više ne bavi programiranjem 8-bitnih sistema, grdno ste se prevarili! I dan danas izlazi sasvim pristojan broj naslova (čak i komercijalnih) koje pišu programeri iz svih delova sveta. Jedan od razloga zašto ljudi pišu ove programe leži svakako i u udobnosti koju pružaju savremeni PC računari sa svojim instrumentima za razvoj krosplatformskih aplikacija. Izraz „krosplatformsko programiranje” se odnosi na razvoj softvera na jednoj platformi, a koji se kompajlira za potrebe druge platforme. Posledica je da programer može generisati kod za stare računare koristeći pri tome blagodeti velike memorije, ogromnih hard diskova i produktivnosti rada u IDE okruženjima. Da ne govorimo o desetinama dodatnih alata koji maksimalno uprošćavaju ono što je nekada bilo teško izvodljivo. Ovaj tekst ima nameru da se osvrne na neke od najboljih instrumenata koji vam pružaju mogućnost da osetite draž vremena kada je svaki bajt i svaki procesorski takt bio zlata vredan. Razvojna okruženja Naš pregled alata počinjemo od programa TommyGun (goo.gl/jVllXi, 17,1 MB) koji je u početku bio zamišljen kao univerzalno razvojno okruženje za sve najpopularnije 8-bitne platforme. Mnogo toga je autor počeo, da bi na kraju balade jedina mašina koja je gotovo u celosti podržana bila ZX Spectrum. Još samo da „gumičar” dobije modul za komponovanje zvuka i TommyGun će se pretvoriti u zaokruženo razvojno okruženje za ovaj legendarni kompjuter. Osim Spektruma, podržani su VIC20, C64, Amstrad CPC i MSX sistemi, sa nešto manje mogućnosti (ali ipak dovoljno za ozbiljan rad). Program u sebi sadrži ne samo module programiranja, već su tu prisutni i editori za sve i svašta. Na primer, u meniju Images se nalazi pravi editor grafike koji se automatski prilagođava svakom posebnom sistemu i njegovim grafičkim mogućnostima. Osim crtanja crteža koje posle možete primeniti kao naslovne ekrane, na istom mestu nalaze se i brojni alati za sve što ima vezu s grafikom. Ovde možete definisati sprajtove svih dozvoljenih veličina i posle toga videti kako izgleda animacija istih, zatim praviti izmene na postojećim fontovima (ili kreirati neke sasvim nove), stvarati korisnički definisane karaktere ili praviti sličice od kojih se kasnije prave ekrani na kojima se odvija igra. Ovo poslednje jedan je od najzahtevnijih zadataka prilikom kreiranja klasičnih igara. Na sreću, meni Maps sadrži instrumente koji ovaj posao drastično pojednostavljuju. Tu su još i moduli za kreiranje zvuka (još nedovršen), zatim modul za upravljanje s resursima stringova (znatno olakšava modifikaciju i prevođenje igara na razne jezike) i modul za organizovanje i podelu memorije.Na kraju je tu sjajni programski editor sa sintaksnim bojenjem teksta. Poseban gratis za sve one koji žele da vide kako se pravi jedna video-igra sastoji se u programskom kodu koji dolazi s programom. Naime, tu se nalaze tri igre za ZX Spectrum. Prva je poznata logička igra iks-oks, druga je legendarni Space Invaders, dok je treća čuveni Spektrumov hit Sabre Wulf. Ono što je najvažnije, kod je gotovo u celosti komentarisan i ukoliko imate barem nekakvo znanje iz asemblerskog programiranja, neće vam biti teško da se snađete. Možda i najlepša stvar koju nudi ovaj program jeste mogućnost da u okviru svojih projekata integrišete kod u programskom jeziku C. Naime, program podržava integraciju C kompajlera Z88DK (o njemu nešto kasnije), što opet omogućava moćnu smešu koju čine C i asembler. Najnovija verzija ovog programa naziva se TommyGun ATG i namenjena je isključivo za razvoj spektrumovih igara. Nastavak ATG se odnosi na integrisani modul Advanced Game Designer, što je zapravo program za pravljenje igara direktno na Spektrumu (ali i na Amstradu). Ukoliko niste vičan programer, ovo je najlakši način da napravite svoju sopstvenu video-igru. Detaljan video-tutorijal o AGD-u nalazi se na adresi goo.gl/jT3mkd.Ljubiteljima Amstrad CPC računara na raspolaganju je specijalizovano razvojno okruženje pod nazivom Phactory. Po dizajnu interfejsa vidi se da je uzor programu bio Visual Studio 2012, ali je Phactory mnogo jednostavniji i sa dosta manje ponuđenih opcija. Reč je, zapravo, o editoru za asembler i C. Za kreiranje koda moguće je upotrebiti ili gorepomenuti Z88DK ili SDCC kompajler. Koji od njih koristiti više je stvar ličnog ukusa, ali mora da se kaže da je SDCC bolji izbor po veličini kompajliranog koda, njegovoj brzini, kao i brzini same kompilacije. S druge strane, Z88DK ima bolje optimizovane osnovne C biblioteke, kao i veliki broj dodatnih specijalizovanih biblioteka. Pošto integrisanje svih elemenata u jedno razvojno okruženje zna da bude mučan posao, za svaku je pohvalu da su autori programa sve unapred podesili i postavili na adresu goo.gl/8Mp5OM (12,5 MB). Osim samog editora u paketu se nalazi SDCC kompajler zajedno sa asemblerom, kao i emulator WinApe. Tu je još i dodatak u vidu demo-projekta napisanog od strane istih autora. Lepo je i to što Phactory ima mogućnost proširenja uz pomoć dodatnih modula. Za razliku od TommyGuna, ovde nemamo tako moćne module za obradu grafike, tako da ćete se morati poslužiti nekim drugim Windows programima.Ljubiteljima dobrog starog „debeljka” na raspolaganju je razvojno okruženje pod nazivom CBM prg Studio (goo.gl/Cg0kPD, 3,12 MB), nastalo spajanjem starijih programa C64PrgGen i VIC20PrgGen u jednu celinu. Zapravo, ovo razvojno okruženje namenjeno je i ostalim 8-bitnim mašinama koje je pravila firma Commodore (C16/116, C+/4, C128, VIC20). Za razliku od prethodnog slučaja, ovde nema podrške za jezik C, već se radi isključivo sa asemblerom i originalnim Basicom. Ideja je da se ceo program piše u okviru Basic interpretera, dok se kod vezan za sprajtove, zvuk, grafičke ekrane, i mašinske rutine smešta unutar naredbe Data. U zlatno doba 8-bitnih mašina, u kompjuterskim časopisima i knjigama su se često mogli videti listinzi u ovakvom formatu koji su zauzimali dosta manje mesta od koda pisanog asemblerskim mnemonicima. Istina, takav način pisanja programa u svoje vreme nije bio karakterističan za komercijalne programe, ali sa današnje tačke gledišta to ne igra veliku ulogu. Samo okruženje je sasvim dobro urađeno i prijatno za rad. U mogućnosti ste da istovremeno kombinujete više fajlova sa Basic i asemblerskim kodom. Osim solidnog editora s mogućnošću automatske kompletacije kako Basica, tako i asemblera, tu su još i moduli za kreiranje sprajtova i karaktera (fontova). Kao i u slučaju TommyGuna, i ovde imamo dizajner ekrana za igre. Kako i dolikuje jednom dobrom radnom okruženju, program ima disasembler i debager mašinskog koda. Sve u svemu, više nego dovoljno da se napravi dobra igra u retro stilu.Postoji još jedan naslov sličnog imena i koncepcije. To je C64 Studio (goo.gl/ywxLQK, 2,4 MB) i za njega važi dosta toga što smo govorili za CBM prg Studio. Reč je o sasvim upotrebljivom programu koji je ipak nešto nedorađeniji u odnosu na konkurenta. Nije nikakva novost ako kažemo da je Basic bio lingua franca ere kućnih računara. Gotovo svi kompjuteri iz tog vremena su u ROM-u imali ugrađene interpretere ovog programskog jezika koji su često obavljali ulogu primitivnih operativnih sistema. Basic je bio i jedna vrsta ulazne karte u svet programiranja i obavezni izbor svih početnika. Kao rezultat toga, napisani su milioni linija programskog koda na Basicu. Često se taj kod uz manje ili veće popravke može upotrebiti i danas, recimo, u okviru programskog jezika VB.net.Svi oni kojima je mala crna kutija s duginim bojama prirasla srcu svakako će znati da cene sjajni program pod nazivom BasinC (goo.gl/6rrSTE, 3,6 MB). U pitanju je razvojno okruženje za Sinclair Basic kakvo se samo poželeti može. Program poseduje linijski editor koda (za razliku od Spectrumovih tokena) s mogućnošću sintaksnog bojenja i celom paletom instrumenata za editovanje, kao i ugrađeni emulator za prikazivanje rezultata rada programa. Tu je i sjajni debager s opcijama koje po kvantitetu i kvalitetu ne zaostaju za onima koje imaju razvojna okruženja za PC. Sve je tu, od praćenja vrednosti pojedinačnih promenljivih pa sve do nadgledanja stanja sistemskih promenljivih u realnom vremenu. Ukoliko vam zatreba da saznate kod nekog od tokena, tu je interaktivni modul koji će vas lišiti potrebe za prebiranjem literature. Tu su još i alati za crtanje sprajtova, UDG grafike i fontova, kao integrisani program za crtanje koji dosta podseća na Windowsov Paint. Ni to nije sve jer BasinC poseduje i ugrađeni asembler, kao i kompajler koji Basic kod prebacuje u mnogo brži mašinski jezik. Pri svemu tome, fantastična je mogućnost da odmah vidite kako izgleda prevedeni kod pošto su sve linije asemblerskog koda komentarisane sa prevedenim elementima Basica! I da stvar bude još lepša, u okviru helpa nalazi se kompletan priručnik koji je dolazio uz Spectrum. Ukratko, must have za sve nekadašnje „gumičare”.  | Ljuti konkurenti spektrumovaca u liku i delu obožavalaca C64 imaju na raspolaganju sličan program koji se zove BasEdit.Net. Istini za volju, po kvalitetu i mogućnostima ovaj program debelo zaostaje za prethodno opisanim. Ispravnije je reći da ovo nije program samo za C64, već on istovremeno podržava još neke dijalekte ovog programskog jezika za računare marke Commodore. Možete ga naći na goo.gl/FwE6L2 (113 KB).Kompajleri Što se programiranja tiče, dalekih osamdesetih godina prošlog veka glavnu reč vodio je Basic, ali ukoliko ste hteli da iskoristite sve resurse sistema, nije bilo druge nego da se uči mnogo složeniji asembler (tada poznat kao „mašinac”). Danas postoji mnoštvo krosplatformskih kompajlera mašinskog koda za bukvalno sve 8-bitne mikroprocesore. Za sisteme s mikroprocesorom Z80 među najpopularnijim su Sjasm (goo.gl/dj7aMx, 552 KB) i Pasmo (goo.gl/QrZNfO, 356 KB). Za prvi je karakteristično da radi u četiri prolaza, dok drugi može da generiše kod kompatibilan s procesorom 8086. Od ostalih su tu i Z80 ASM (goo.gl/8b0pBx, 1,8 MB) i praktični Z80 PC Assembler (goo.gl/Nhf7aF, 336 KB). Što se tiče sistema zasnovanih na procesorima iz porodice 6502, situacija po broju naslova je još i bolja. Ophis (goo.gl/g7UPVX, 3,6 MB), dasm (goo.gl/70N1QW, 118 KB), ACME (goo.gl/YDRw2D, 93 KB), A6 Assembler (goo.gl/pKBN3g, 135 KB), cbA65 (goo.gl/dejWSY, 502 KB), Win2C64 (goo.gl/CjwqcY, 100 KB).Programski jezik C postojao je i u vreme kada su 8-bitni računari bili na vrhuncu slave, ali je njegova dominacija nastupila tek s pojavom 16-bitnih mikroprocesora. Što se tiče mikroprocesora iz familije 65xx, stvar je potpuno jednostavna. Ubedljivo najbolji C kompajler nosi naziv cc65 (goo.gl/R7dyGn, 1,3 MB) i pokriva mnoštvo sistema, počevši od Commodorea (VIC20, C16/C116/+4, 510, 600/700, C64/128), preko Orica i Atari 8-bitnika, pa do legendarnog Applea II. Kompajler podržava statičke i dinamičke API funkcije za većinu uređaja. cc65 proistekao je iz dijalekta Small C, ali je vremenom dogurao do visokog stepena kompatibilnosti sa ANSI C standardom. Dakle, većinu postojećeg C koda moguće je upotrebiti i na ovim nekada popularnim platformama. Ljubiteljima Z80 na raspolaganju su dva C kompajlera: SDCC (goo.gl/pVgFpc, 3,2 MB) i Z88DK (goo.gl/HvYuUM, 3,7 MB). Prvi podržava veći broj mikroprocesorskih arhitektura u koje spada nekoliko mikrokontrolera, dok je drugi više orijentisan prema podršci za različite platforme zasnovane na Z80. Naziv Z88DK potiče od Sinklerovog računara Z88 (Cambridge Computers Z88) za koji je ovaj kompajler prvenstveno i nastao. Danas, Z88DK podržava razvoj za skoro 30 vrsta računara s procesorom Z80. Već smo govorili da je Z88DK bolji po pitanju podrške pojedinačnim platformama, dok SDCC proizvodi optimizovaniji kod. Koji od njih ćete koristiti, zavisi od namene programa koji pišete. Još da kažemo da pisci softvera za Amstrad CPC imaju na raspolaganju i kompajler PhrozenC (goo.gl/FEXCgb, 293 KB), koji je namenjen upravo toj platformi.Pomoćni alati Na adresi zxmodules.de nalazi se preko 10 sjajnih alata namenjenih za ZX Spectrum, a čiji je autor Nemac Klaus Jahn. Ima tu svačega, od baze podataka sa gotovo svim programima za Spectrum, preko programa za manipulaciju nad fajlovima i promenom njihovog formata, pa sve do instrumenata za programiranje. Međutim, najfascinantnija stvar se nalazi pod nazivom ZX Paintbrush (14,6 MB) i predstavlja pravi mali Photoshop za Spectrum. Ako ste nekada radili sa Spectrumom, neke vam stvari zaista izgledaju nerealno. Na ilustraciji koja ide uz tekst možete videti fotografiju Klajva sinklera s njegovom (37 godina mlađom) izabranicom Endži Bounes za čiju izradu je trebalo tek nekih 30 sekundi. Da bi pokazali kakvi se sve fascinantni rezultati mogu dobiti uz primenu savremenih alata za crtanje, skrećemo primer dva crteža za koje mnogi neće poverovati da su urađeni na Spectrumu (Primer 1. i Primer 2.). Lepo je videti šta majstori mogu da urade od računara koji ima samo osam boja sa dva nivoa osvetljenja i pri tome ograničenje na dve boje u polju 8 x 8 piksela!  | Iako je u svoje vreme generalno imao bolju grafiku od Spectruma, C64 nema tako kvalitetan program koji bi bio specijalizovan za njegove mogućnosti. Verovatno najbolji iz trenutno postojećih je Project One (p1.untergrund.net, 2,5 MB), čija je glavna namena da konvertuje već postojeći grafički fajl u format pogodan za C64. Iako svoj primarni posao radi vrlo dobro, ostaje nejasno zašto su programeri podržali jednu jedinu opciju za crtanje (olovka) kada je dodavanje ostalih opcija gotovo trivijalno. Doduše, postoje dodaci za popularne paint programe (GIMP, Photoshop) koji mogu mnogo toga, ali bi ipak bilo lepše videti nešto što liči na ZX Paintbrush.Veoma važan deo klasičnih video-igara čine sprajtovi. To su u stvari sličice koje se pomeraju po ekranu. Ukoliko ste usmereni na C64, na raspolaganju vam stoji jednostavan za upotrebu Sprite Painter (goo.gl/uMelsp, 325 KB) ili dosta napredniji 7up Sprite Editor (goo.gl/xXU42O, 186 KB). Možete da se koristite i dosta univerzalnijim editorom sprajtova koji podržava C64, Amstrad CPC i ZX Spectrum i koji se zove RGAS (Retro Game Asset Studio), a nalazi se na lokaciji goo.gl/icKF1n (825 KB). Najveći broj novih aplikacija za 8-bitne računare spada ili u igre ili u demo programe. Za to je pored grafike potreban i dobar zvuk. Za C64 i njegov zvučni čip SID postoji mnoštvo trekera od kojih su poznatiji GoatTracker (goo.gl/xk9dNr, 774 KB) i Music Studio (goo.gl/qrTPlf, 2,8 MB). S druge strane, kada se radi o Spectrumu 128 i Amstradu, njihov zvučni procesor AY-3-8910 je bio mnogo zastupljeniji (MSX, Atari ST, Oric...), pa se za njih muzika može komponovati na trekerima koji podržavaju ovaj čip. Na primer, to su: Arkos Tracker (goo.gl/K3dK2r, 649 KB) Vortex Tracker II (goo.gl/MhHqF5, 500 KB). Tu je i univerzalni DefleMask (goo.gl/z6aNXH, 5,6 MB) treker koji podržava mnoštvo zvučnih procesora. Za „obični” Spectrum 48K i njegov skromni biper postoje dva sjajna programa za pisanje polifonijske muzike: 1Tracker (goo.gl/7GRYzT, 706 KB) i Beepola (goo.gl/nECYGS, 1,7 MB). Stvarno da čovek ne poveruje šta može da se izvuče iz jedne piezo zujalice.• • • Nekako se stiče utisak da su poklonici Spectruma bili najaktivniji i da su uglavnom napravili bolje krosplatformske alate. To je donekle i logično pošto su se spektrumovci i pre 30 godina generalno više bavili programiranjem od komodoreovaca, dok su ovi drugi više voleli da se igraju. Oni koji su gledali kako izgledaju noviji demo programi za 8-bitne računare, znaju da oni obiluju efektima koji bi u prošlosti izgledali nadrealno. A to je upravo omogućeno postojanjem moćnih krosplatformskih razvojnih okruženja. Igor S. RUŽIĆ | | |