256 barev na obrazovce ATARI¢¢ Zd* se, (e zobrazit na obrazovce XL/XE 256 barev tak, aby libovoln` bod m%l libovolnou barvu je v%c nemo(n*. Domn)v*te se to i vy ? Tento 'l*nek v*s m* p@esv%d'it o opaku.¢ Ka(d` z v*s jist% zn* efekt zobrazen) v)ce barev na obrazovce pomoc) p@eru&en) display-list. Toto zobrazen) m* jednu z*sadn) nev`hodu - dovoluje zobrazit na jednom televizn)m @*dku maxim*ln% 16 barev libovoln[ho jasu ╱pozor! v&echny barvy na tomto @*dku maj) stejn` jas$ nebo 1 barvu ve v&ech jej)ch odst)nech. Tohle ')slo ╱16$ je skute'n% maxim*ln) ╱pomineme-li mo(nost v%t&it po'et barev na obrazovce pou(it)m Player-Missile-Graphics$, na jednom @*dku v (*dn[m p@)pad% v)ce barev nezobraz)te ╱te⇦ by m%lo p@ij)t pop@en) tohoto faktu.... ...ale ono nep@ijde$. Ale pozor, p@esto zde na zobrazen) v)ce barev na jednom @*dku vysv%tl)m hned 3 zp+soby.¢¢ Prvn) zp+sob je velice jednoduch` a je k vid%n) nap@)klad v programu Technicolor Dream. Funguje tak, (e zobrazuje na obrazovce st@)dav% @*dky, kter[ obsahuj) barvu bod+ s @*dky, kter[ ud*vaj) jas bod+. Vysv%tl)m to n*zorn%ji: Ka(d` z v*s jist% zn* grafiky 9 ╱16 jas+ jedn[ barvy na obrazovce$ a grafiku 11 ╱16 barev jednoho jasu na obrazovce$. Finta zpo')v* v tom, (e se nejprve zobraz) @*dek grafiky 11 ╱barvy$ a pod n)m se zobraz) @*dek grafiky 9 ╱jasy$. Ka(d` bod v nov[ grafice, kterou jsme tak vlastn% vytvo@ili, je slo(en z barevn[ho bodu a bodu s jasem, kter[ le() na obrazovce pod sebou. Tyto dva body pak pro lidsk[ oko splynou v jeden, kter[mu n*le() barva barevn[ho bodu a jas bodu s jasem. V`hoda tohoto zp+sobu oproti dal&)m dv%ma je, (e se nov* grafika d* velice jednodu&e vytvo@it nap@)klad z grafiky 9. Barevn` @*dek s @*dkem jasov`m se st@)daj) velice snadno pomoc) Display-list-interruptu. Jak? To si uk*(eme te⇦. Program v assembleru bude vypadat p@ibli(n% takto:¢¢ PHA ;ulo() hodnotu A do stacku¢ LDA adr ;na t[to adrese je ulo(eno, zda se m*¢ ;zobrazit @*dek s jasem nebo barvou¢ STA 54282 ;'ek* na konec @*dku¢ STA 54272 ;nastavuje, zda se m*¢ ;zobrazit barva 'i jas¢ EOR #128 ;te⇦ se vym%n) barva za jas nebo naopak¢ STA adr ;z)skan* hodnota se ulo()¢ PLA ;obnov) registr A¢ RTI ;a vrac) se z p@eru&en)¢¢D*le by m%lo b`t nastaveno p@eru&en) VBI, kter[ bude nastavovat hodnotu v adr tak, aby se zobrazoval prvn) @*dek jako barevn`. To je velice d+le(it[, proto(e jestli(e by byl prvn) @*dek pro jas, horn) @*dek by ztr*cel mo(nost zobrazit jinou barvu. Je to zp+sobeno t)m, (e prvn) barevn` @*dek je z obou stran obklopen @*dky jasov`mi, a je kv]li tomu zcela potla'en. Pokud je po'et @*dk+ sud` ╱a to by m%l b`t$, nemuselo by se VBI teoreticky nastavovat. Pokud je v&ak pot@ebn[, m%lo by vypadat takto:¢¢ LDA 623 ;st)nov` registr k 54272 ╱DMACTL$¢ ORA #128⇩64¢ STA adr¢¢Samoz@ejmn%, (e se p@eru&en) mus) vhodn% ukon'it. Pokud je po'et @*dk+ sud`, mus) b`t tyto instrukce vykon*ny jen jednou a to d@)ve, n%( se povol) DLI.¢Zna'nou nev`hodou tohoto syst[mu je, (e se sn)() grafick[ rozli&en) na polovinu. Dost*v*me tak grafiku o rozli&en) 80x96 bod+ x 256 barev.¢¢Druh` zp+sob jsem poprv[ vid%l ╱mimo na&ich vlastn)ch pokus+$ v souboru program+ na jedn[ z disket americk[ho disketov[ho PD magaz)nu "Atari computer enthusiast of columbus". Tato metoda byla autorem t%chto program+ nazv*na PRYZM, budeme j) tak tedy @)kat i my. Technika PRYZM je tak[ velice jednoduch*. Spo')v* v tom, (e se po 1/50 sekundy p@ep)n*j) dv% obrazovky. Jedna z obrazovek nese barevnou informaci, druh* informaci o jase. Je to vlastn% obdobn` syst[m jako Technicolor, ale neskl*daj) se v(dy dva body pod sebou, n`br( tyto body se vlastn% kresl) na sebe. P@itom rozli&en) z+st*v* stejn[, jako v grafice 9, tedy 80x192 bod+. Pam%④, kterou zaberou grafick[ informace v&ak vzroste dvojn*sobn% - tedy 2x7680 byt+. Tato technika pot@ebuje dokonce jen p@eru&en) VBI. To by mohlo vypadat nap@)klad takto:¢¢ LDA adr ;rozhodov*n), kter*¢ BNE LOOP ;obrazovka se m* zobrazit¢ LDA #1 ;nastav opa'n` obraz¢ STA adr ;ulo( po'*tek Display¢ LDA #>DL1ADR ;Listu prvn)ho z obraz+¢ STA 561 ;na adresu 560¢ LDA #<DL1ADR¢ STA 560¢ JMP EXITVBL¢LOOP LDA #0 ;obdobn% te⇦ pro druh`¢ STA adr ;Display List¢ LDA #>DL2ADR¢ STA 561¢ LDA #<DL2ADR¢ STA 560¢ JMP EXITVBL¢¢Toto je jenom ilustra'n) uk*zka. Tento podprogram by &el samoz@ejmn% napsat l[pe, ale byl by h+@e pochopiteln`. Podprogram p@edpokl*d*, (e jsou vytvo@eny dva display-list programy pro koprocesor ANTIC. Jejich adresy jsou ulo(eny v n*v%&t)ch DL1ADR A DL2ADR.¢ Obrovskou nev`hodou tohoto zp+sobu je, (e obrazovka blik* tak siln%, (e jsem z toho m*lem dostal epiteptick` z*chvat. Toto blik*n) je zp+sobeno t)m, (e nyn) se u( vlastn% zobrazuje jen 25 kompletn)ch obrazovek za sekundu. To u( bohu(el nesta') k tomu, aby to lidsk[ oko vn)malo, jako statick` obraz.¢¢ T@et), neslo(it%j&) a zrejmn% tak[ nejlep&) zp+sob je vlastn% kombinac) p@edchoz)ch dvou metod. V pam%ti m*me dv% obrazovky, jedna obsahuje informaci o barv*ch, druh* o jasech. Na prvn)m @*dku obrazovky zobraz)me nejprve barvovou informaci prvn)ho @*dku. Na druh[m @*dku zobraz)me jasovou informaci druh[ho @*dku. Takto se to postupn% st@)d* a( do konce obrazovky. Je to podobn[ jako u syst[mu Technicolor. Po vykreslen) obrazovky ale dojde k VBI, ve kter[m p@epneme zobrazov*n) tak, (e obrazovka bude zobrazovat na prvn)m @*dku jasovou informaci prvn)ho @*dku, na druh[m @*dku barvovou informaci o druh[m @*dky atd. Rozd)l je tedy v tom, (e ty @*dky, kter[ poprve zobrazovaly svou barvovou informaci, budou nyn) zobrazovat svou jasovou informaci a naopak. P@itom se st@)d*, zda se zobrazuje barvov* nebo jasov* informace. T)m doc)l)me velice podstatn[ zm%ny: obrazovka v podstat% neblik*. Zat)mco jeden @*dek blik*, @*dek pod n)m blik* p@esn% naopak. Toto pak nevn)m*me jako blik*n), ale jako by se @*dky n%jak pohybovaly, i kdy( tento pohyb se ned* nijak definovat. Snad jako kdyby se pohybovaly o bod nahoru a dol+, ale to tak[ nen) p@esn% ono. Prost% ka(d[mu doporu'uji, aby se pod)val na program DIGI PAINT, ve kter[m je tento syst[m pou(it` a ze kter[ho jsem si zp+sob jeho zobrazen) odvodil i j*.¢Tato metoda nem* nev`hody p@ede&l`ch dvou metod. Rozli&en) z+st*v* st*le stejn[ ╱80x192$ a obrazovka ji( tak siln% neblik*.¢¢Rudolf Kudla¢United Electronic Crazies¢