G8C¢Radek t❎rba, Raster/C.P.U., 2003¢¢G8C je pomocn⑨ Turbobasicov⑨ n⇧stroj na vytv⇧②en obr⇧zk
v rozli③en 320x160 p②i aə 128 barv⇧ch.¢¢Jak je V⇧m jist❎ zn⇧mo, nejjemn❎j③ grafick⑨ md na 8bitov⑦m Atari je grafika 8, kter⇧ p②i rozli③en 320x192 nab z pouze 2 odst ny jedn⑦ barvy. Pouəit m klasick⑨ch technik (DLI) lze tuto barvu shora dol
m❎nit, p②i⇨emə v jednom grafick⑦m ②⇧dku budou op❎t vədy jen 2 odst ny t⑦to barvy.¢¢Program G8C roz③i②uje v⑨③e popsanou techniku o podkl⇧d⇧n grafiky PMG objekty, ⇨ mə lze dos⇧hnout zna⇨n❎ vy③③ barevnosti - samoz②ejm❎ s omezen m dan⑨m po⇨tem a velikost Atari PMG objekt
.¢¢Hned na za⇨⇧tku mus m upozornit, əe G320C pouze pom⇧h⇧ zjednodu③it prov⇧d❎n zm❎n v jednotliv⑨ch ②⇧dc ch a nic s⇧m nepropo⇨ t⇧v⇧ - ve③ker⇧ pl⇧nov⇧n kde a jak barvy m❎nit a jak rozm stit PMG objekty je tedy ponech⇧no zcela na uəivateli. Vytv⇧②et pomoc G8C multibarevn⑦ obr⇧zky je t m p⇧dem velmi n⇧ro⇨n⇧ a zdlouhav⇧ pr⇧ce, ale pokud se zada② , v⑨sledky jsou p②ekvapiv⑦.¢¢--------------------------------¢¢Zp
sob ovl⇧d⇧n :¢¢Po prvn m spu③t❎n programu, p② padn❎ p②i volb❎ "Reset all parameters", se program zept⇧, zda m⇧ prov⑦st promaz⇧n pam❎ti:¢¢DLI source memory - to je pam❎④ obsahuj c zdrojov⑨ text, na jehoə z⇧klad❎ se generuje DLI strojov⇧ rutina.¢¢PMG memory - to je pam❎④ pro PMG objekty.¢¢DLI lines - po⇨et obrazov⑨ch ②⇧dk
. Standardn❎ ponechejte rovno 160.¢¢--------------------------------¢¢Nyn se zobrazil grafick⑨ md 8 (PICTURE) s blikaj c m kurzorem (te⇨ka) a vy m⇧te tyto moənosti:¢¢ESC - p②echod do lev⑦ho horn ho rohu.¢¢JOYSTICK nebo kurzorov⑦ kl⇧vesy - pohyb kurzoru p② slu③n⑨m sm❎rem.¢Pozn⇧mka: B❎hem pohybu kurzoru se v doln ⇨⇧sti textov⑦ho ②⇧dku vypisuje aktu⇧ln obsah p② slu③n⑦ho ②⇧dku s DLI zdrojov⑨m kdem (pokud jiə n❎jak⑨ obsahuje). Toto slouə k p②ehledu zm❎n, kter⑦ se v tomto ②⇧dku prov⇧d❎j .¢¢FIRE tla⇨ tko nebo Return - zaps⇧n bodu p②edvolenou barvou.¢¢Backspace - smaz⇧n bodu na pozici kurzoru.¢¢0 - p②edvolena barva 0 (pozad ).¢¢1 - p②edvolena barva 1 (pln⇧ barva).¢¢J - rychlost posuvu joysticku.¢¢Mezera - smaz⇧n doln ho textov⑦ho ②⇧dku.¢¢Control+F - vybarven uzav②en⑦ oblasti.¢¢R - restart programu s op❎tovn⑨m nastaven m v③ech parametr
.¢¢Shift+Clear - smaz⇧n grafick⑦ obrazovky.¢¢Control+S - ukl⇧d⇧n dat.¢Volba P: ukl⇧d⇧n grafick⑨ch dat obrazu i v③ech PMG objekt
spolu se zdrojov⑨m textem pro DLI. ¢Volba D: export DLI strojov⑦ rutiny.¢¢Control+L - na⇨ten grafick⑨ch dat obrazu i v③ech PMG objekt
a zdrojov⑦ho textu pro DLI.¢¢I - vyp ③e aktu⇧ln sou②adnice kurzoru.¢¢B - p②esun kurzoru na hranici videopam❎④ov⑦ho byte.¢¢M - zobrazen pln⑨ch PMG objekt
/ norm⇧ln PMG zobrazen .¢¢P - p②ep n⇧n mdu PICTURE / PMG.¢¢Shift+kurzorov⑦ kl⇧vesy - vykreslen ⇨⇧ry z pozice kurzoru p② slu③n⑨m sm❎rem aə po prvn pln⑨ grafick⑨ bod.¢¢U - editace zdrojov⑦ho DLI kdu pro aktu⇧ln ②⇧dek. Syntaxe je pops⇧na d⇧le v samostatn⑦m odd le. Ukon⇨en editace se prov⇧d kl⇧vesou Return, ⇨ mə se vədy sou⇨asn❎ provede p②eklad zdrojov⑦ho DLI kdu na skute⇨nou DLI strojovou rutinu a jej aktivace.¢Zru③en ⇨i zm❎na ⑤daj
v p② slu③n⑦m ②⇧dku se prov⇧d jejich odmaz⇧n m ⇨i p②eps⇧n m na zdrojov⑦m ②⇧dku a n⇧sledn⑨m Returnem. (Pozn⇧mka: Return je moəno odklepnout kdekoliv a platn⑨ je obsah cel⑦ho ②⇧dku -nen nutn⑦ p②ej əd❎t na konec ②⇧dku. Pro p②eklad a aktivaci DLI rutiny tedy sta⇨ vədy jen na libovoln⑦m ②⇧dku stla⇨it "U" a Return.)¢¢X - vypnut DLI rutiny a odklizen PMG objekt
mimo obraz. (Nezasahuje v③ak nijak do zdrojov⑦ho DLI kdu. Pozn⇧mka: "U" a "Return" provede op❎tovnou aktivaci.)¢¢E - ukon⇨en programu.¢¢--------------------------------¢¢V mdu PMG (p②ep n⇧n md
PICTURE/PMG se prov⇧d kl⇧vesou P) m⇧te tyto moənosti:¢¢JOYSTICK - pohyb kurzoru dan⑨m sm❎rem v r⇧mci aktivn❎ zvolen⑦ho PMG objektu.¢¢FIRE tla⇨ tko - zaps⇧n bodu p②edvolenou barvou.¢¢1,2,3,4,5 - volba PMG objektu. (Objekt 1 aə 4 jsou PMG hr⇧⇨i, objekt 5 jsou v③echny PMG st②ely.)¢¢9 - p②edvolba barvy 1 (pln⇧ barva).¢¢0 - p②edvolba barvy 0 (pr⇧zdn⇧ barva).¢¢Backspace - smaz⇧n bodu na pozici kurzoru.¢¢I - informace o aktu⇧ln pozici kurzoru.¢¢P - p②ep n⇧n mdu PMG/PICTURE.¢¢X - p②epnut do zobrazen pouze PMG objekt
(bez grafick⑨ch dat obrazu) / n⇧vrat do norm⇧ln ho zobrazen PMG i grafick⑨ch dat.¢¢--------------------------------¢¢Syntaxe zdrojov⑦ho DLI kdu:¢¢Po stisku kl⇧vesy U se dostanete do mdu pro zad⇧v⇧n zdrojov⑦ho DLI kdu. Vlevo na za⇨⇧tku ②⇧dku se vyp ③e pomocn⑨ ⑤daj ve tvaru¢$XX#YYY?¢kde¢$XX - x-ov⇧ sou②adnice aktu⇧ln pozice kurzoru v HEXa soustav❎, p②epo⇨ten⇧ pro PMG objekty (tj. nejlev❎j③ sloupec m⇧ hodnotu $30 a za kaəd⑦ 2 grafick⑦ obrazov⑦ body se zvy③uje o 1).¢#YYY - ⇨ slo ②⇧dku (decim⇧ln❎)¢¢Na ②⇧dek m
əeme p②ipisovat ⇨i upravovat jiə d② ve zapsan⑦ povely v t⑦to syntaxi:¢¢$NN¢⑥ slo v HEXa soustav❎. Nutno ps⇧t vədy 3 znaky (tj. nap② klad nulu jako $00). Pozn⇧mka: ⑥ slo se ud⇧v⇧ jako prvn a bude pouəito pro v③echny n⇧sleduj c povely.¢¢PX1 .. PX4¢(Player X-pos)¢Nastaven x-ov⑦ pozice PMG hr⇧⇨e 1 aə 4.¢¢MX1 .. MX4¢(Missile X-pos)¢Nastaven x-ov⑦ pozice PMG st②ely 1 aə 4.¢¢PS1 .. PS4¢(Player Size)¢Nastaven ③ ②ky PMG hr⇧⇨e 1 aə 4. ($00 norm⇧ln ③ ②ka, $01 dvojn⇧sobn⇧, $03 ⇨ty②n⇧sobn⇧) ¢¢PS5¢(Player Size)¢V③echny ⇨ty②i st②ely maj jeden spole⇨n⑨ registr pro nastavov⇧n ③ ②ky (jakoby hr⇧⇨ 5). PS5 tedy nastavuje ③ ②ku v③ech PMG st②el, kde kaəd⑦ 2 bity definuj ③ ②ku pro PMG st②elu 1 aə 4.¢¢PC1 .. PC4¢(Player Color)¢Nastaven barvy PMG hr⇧⇨e 1 aə 4. Standardn❎ maj jednotliv⑦ PMG st②ely stejn⑦ barvy jako jim p② slu③ej c PMG hr⇧⇨i.¢¢CL0 .. CL4¢(Color)¢Nastaven barvov⑦ho registru COLPF0 aə COLPF4. Pro grafick⑨ md 8 maj v⑨znam tyto registry:¢CL1 - jas pln⑨ch bod
(v barv❎ pozad )¢CL2 - barva/jas pozad ¢CL4 - barva/jas okol (r⇧me⇨ek)¢¢PRI¢(Priority)¢Nastaven prioritn ho registru PRIOR. Stanovuje, kter⑦ grafick⑦ prvky budou p②i p②ekryt v pop②ed (doln 4 bity, tj. $00 aə $0F). D⇧le t⑦ə umoəuje p②epnout 4 st②ely do reəimu, kdy nemaj barvy dle jim odpov daj c ch PMG hr⇧⇨
, ale maj v③echny spole⇨n❎ jednu barvu, definovanou registrem CL3 (COLPF3) - toto se provede nastaven m bitu $10. Dal③ moənost je bit $20, kter⑨ zp
sob zobrazen dal③ barvy v m st❎, kde se p②ekr⑨vaj hr⇧⇨i 1 a 2 nebo 3 a 4 (tato barva vznikne logickou funkc OR mezi obsahy barvov⑨ch registr
p② slu③n⑨ch hr⇧⇨
).¢¢--------------------------------¢¢P② klad 1:¢Chceme-li na ②⇧dku nastavit x-pozici PMG hr⇧⇨e 2 na hodnotu $80 a jeho barvu na $6A, zap ③eme do ②⇧dku toto:¢$80 PX2 $6A PC2¢¢P② klad 2:¢Chceme-li nastavit barvu v③ech PMG hr⇧⇨
na hodnotu $74, zap ③eme toto:¢$74 PC1 PC2 PC3 PC4¢¢P② klad 3:¢Chceme-li zm❎nit barvu pozad na $08, zap ③eme toto:¢$08 CL2¢¢Pozn⇧mka: Jednotliv⑦ 3-znakov⑦ povely m
əeme pro p②ehlednost odd❎lovat mezerou, ale nen to povinn⑦. ¢¢--------------------------------¢¢Technick⑦ ⑤daje:¢¢V⑨sledkem p②ekladu zdrojov⑦ho DLI kdu je strojov⇧ DLI rutina obsahuj c kombinace instrukc LDA#hodnota, STA registr a STA WSYNC, kter⇧ se vyvol⇧ DLI p②eru③en m naho②e na prvn m ②⇧dku grafiky (respektive je③t❎ o ②⇧dek nad n m, aby se zm❎ny projevily jiə v nejhorn❎j③ m ②⇧dku). Cel⇧ rutina pak prob h⇧ najednou s vyuəit m synchroniza⇨n ch z⇧pis
do WSYNC a ukon⇨uje se teprve na posledn m spodn m ②⇧dku. To m⇧ za n⇧sledek, əe procesor je po celou dobu vykreslov⇧n obrazu blokov⇧n a nem
əe zpracov⇧vat ə⇧dn⑦ jin⑦ ⑤lohy. Z tohoto d
vodu je v⑨sledn⇧ DLI rutina pouəiteln⇧ sp ③e jen pro statick⑦ multibarevn⑦ obr⇧zky bez dal③ ch efekt
.¢¢Uloəen⇧ data obsahuj obrazov⇧ videodata grafiky (40*160=6400byt
), za nimi jsou PMG data (data v③ech PMG st②el a data jednotliv⑨ch PMG hr⇧⇨
, tj. 256+4*256=1280byt
) a nakonec zdrojov⑨ DLI kd (160 textov⑨ch ②⇧dk
po 32 znac ch, tj. 160*32=5120byt
). Celkov❎ tedy vədy v③ech 6400+1280+5120=12800byt
.¢¢D⑦lka exportovan⑦ DLI rutiny je z⇧visl⇧ na po⇨tu poəadovan⑨ch zm❎n, ale krom❎ nich obsahuje pro synchronizaci vədy 160x instrukci STA WSYNC.¢¢Pozn⇧mka: Pokud nem⇧ b⑨t pouə v⇧na cel⇧ obrazovka, je moən⑦ zadat v ⑤vodu jin⑨ ⑤daj pro "DLI lines". Pak se odpov daj c m zp
sobem sn ə i celkov⇧ d⑦lka vytv⇧②en⑦ a exportovan⑦ DLI rutiny.¢¢--------------------------------¢¢Pozn⇧mka na z⇧v❎r:¢¢Ch⇧pu, pokud se V⇧m zd⇧ pr⇧ce s t mto programem pom❎rn❎ obt ən⇧ a nepohodln⇧. Ov③em v❎zte, əe ə⇧dn⑨ jin⑨ zp
sob jak snadn❎ji vytv⇧②et multibarevn⑦ obr⇧zky v nejjemn❎j③ m At⇧rkov⑦m grafick⑦m mdu, jsem nena③el. A oproti mnou d② ve pouə van⑦mu zp
sobu s odd❎len⑨m kreslen m obrazov⑨ch dat a PMG dat, a psan m DLI rutiny samostatn❎ p② mo v Assembleru, je to p②eci jen zna⇨n⑨ pokrok. :-)¢