home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 11 / Flop_Magazin_11_1991_United_Electronic_Crazies_cs_Side_B.atr / bar256.cap next >
Text File  |  2023-02-26  |  6KB  |  1 lines

  1. 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¢