PowerGraphics 1.0 - instrukcja obs ugi››Nie wiem, czy pisanie tego tekstu ma›jakikolwiek sens, bo na wstpie musz›ostrzec, e programik jest troch trudny›w obs udze. Jeli dla kogo jest zbyt›skomplikowany, to niech go nie uywa›albo si ze mn skontaktuje.›No a do czego s uy takie cudo?›Oglnie rzecz biorc, do tworzenia›grafiki. A tak naprawd to program›ochrzci em jako asembler graficzny.›Graficzny - wiadomo, ale dlaczego›asembler? Ano dlatego, e w asemblerze›mona najwicej osign. Tym programem›da si zrobi prawie wszystko, na co›pozwala atarowska grafika.››Jak to dzia a?›Po uruchomieniu ekran nie wyglda zbyt›zachcajco, no ale c...›Na dole ekranu jest troch tekstu,›szczeglnie naley zwrci uwag na›napis 'LOAD'. Nie to, eby by taki›pikny, ale poniewa oznacza, e aby›cokolwiek zrobi, trzeba co wczyta.›Tym programem nie mona nic narysowa!›Naley mie wczeniej przygotowany›rysunek w jednym z nastpujcych›formatw:›*.CPR - "Trzmiel" skompresowany›*.GR8 - "Trzmiel" nieskompresowany›*.PIC - "Koala"/"XL-Art"›*.MIC - "Microillustrator"/"Kleks"›*.PGR - "PowerGraphics"›Format jest utosamiany z odpowiadajcym›mu rozszerzeniem nazwy. Jeeli tak nie›jest, to zostanie wywietlony odpowiedni›komunikat. Tak wic pakujemy dyskietk›do stacji 1, wpisujemy nazw i spacj›wybieramy format.›Jeeli odczyt przebieg bezb dnie,›to znowu zobaczymy czarny ekran.›W rogu powinien znajdowa si napis›'LINK' oznaczajcy, e moemy do ju›wczytanego rysunku do czy drugi.›Po co to wszystko? Ano dlatego, e›niemal wszystkie programy graficzne›maj rozdzielczo pionow 192 linie.›Jest to pewne marnotrawstwo, poniewa›atarka bez problemu wywietla 239 linii.›Aby je wykorzysta, naley narysowa›dwa rysunki: jeden przedstawiajcy›grn cz obrazka, drugi doln.›Najwygodniej, aby obrazki czciowo›pokrywa y si. Nie stanowi to problemu,›poniewa PowerGFX automatycznie wykrywa,›w ktrym miejscu obrazki nachodz na›siebie i prawid owo je skleja. Naley›tylko pamita, aby obrazki by y›w tym samym formacie oraz aby›na pierwszym obrazku wykorzystana by a›ostatnia linia, a na drugim pierwsza.›Nie wykorzystane fragmenty rysunku›powinny pozosta puste (w kolorze t a!).›Jeeli obrazki nie zachodz na siebie,›to zostan umieszczone jeden pod drugim.›Oczywicie nie ma przymusu, aby›do cza drugi rysunek, wyboru›dokonujemy spacj. 'None'-'aden'›oznacza, e wystarczy nam ju wczytany›rysunek. W drugim przypadku naley›wpisa nazw pliku (uwaga! w celu›wymazania starej uywamy BackSpace).›Jeeli po z czeniu oba obrazki bda›zajmowa wicej ni 239 linii, to›pokae si komunikat 'Picture too high'.›A i jeszcze jedno! Jeeli wybralimy›format PGR, to nie bdzie 'LINK'a, lecz›od razu przejdziemy do edycji.››Jeli szczliwie przebrnlimy przez›proces wczytywania, to naszym oczom›powinien ukaza si nasz obrazek›na ekranie edycyjnym ('EDIT').›Niby nic si nie sta o, a jednak›po wczytaniu program wykona par›czynnoci nad obrazkiem. Jak ju›wczeniej wspomnia em, o ile wczytalimy›dwa obrazki, to zosta y sklejone.›Nastpne zosta y obcite puste linii,›to znaczy te, ktre nie zawieraj›adnej grafiki. Ponadto jeli to by o›moliwe, to zosta zwony ekran›(32 zamiast 40 bajtw w linii).›Obrazek zosta automatycznie›wyporodkowany w pionie.››Majc wczytany rysunek moemy przystpi›do jego obrbki. Zasadniczo pracujemy›w jednym z dwch trybw: EDIT oraz INIT,›midzy ktrymi przechodzimy przy pomocy›klawisza RETURN. Wciskajc spacj›moemy obejrze ostateczny efekt naszej›pracy. CTRL-L umoliwia wczytanie›innego rysunku. CTRL-S powoduje›przejcie do opcji SAVE, w ktrej›wystarczy wpisa nazw, aby ca y rysunek›zosta zapisany w formacie PGR.›ESC umoliwia rezygnacj z LOAD/SAVE,›w pozosta ych sytuacjach powoduje›powrt do DOSa.››Najpierw omwimy opcj INIT, do ktrej,›jak ju napisa em, wchodzimy RETURNem.›Jest to edycja tabeli inicjacji.›Co to jest, spytasz pewnie? Aby ci to›wyt umaczy, musz ci wyjani, jak›w ogle dzia a ten program. Jeli›jeste koderem, to nie powinno by to›dla ciebie zbyt skomplikowane.››Gdyby kto nie wiedzia , to obraz›na ekranie nie jest wywietlany ca y›w jednej chwili, lecz jest tworzony›linijka po linijce, a kada linia›od prawej do lewej. Obraz jest tworzony›przez uk ady ANTIC i GTIA na podstawie›zawartoci pamici oraz rejestrw›sprztowych. W pamici s dane o›kszta cie rysunku, duszkw itp.,›a w rejestrach kody kolorw, pozycji›duszkw i takie tam. Wystarczy wic›wpisa co trzeba tam gdzie trzeba i›obraz zostanie wywietlony. Zgoda, ale›tym sposobem atarowska grafika by aby›zwykle czterokolorowa w rozdzielczoci›160*192. A jak to wyglda, to chyba nie›musz kademu przypomina (chocia›czasami trafi si ciekawy rysunek...).›Co robi? Aby uzyska wicej kolorw i›duszkw naley zatrudni procesor.›Wystarczy zmienia zawarto›odpowiednich rejestrw w czasie,›gdy jest wywietlany obraz.››Po tym nieco d ugim i moe niepotrzebnym›wstpie czas na konkrety: jak ju›wspomnia em obraz tworz ANTIC i GTIA.›Ten pierwszy pobiera dane z pamici›i przesy a je do GTIA. Jego prac›steruje g wnie program zapisany w›pamici, znany jako DL. Jest take kilka›mniej lub bardziej wanych rejestrw.›Dla nas istotny jest tylko jeden:›DMACTL. Aby nieco uproci prac,›skrci em jego nazw do 'DC', podobne›skrty maj pozosta e rejestry, nalece›do uk adu GTIA. Trzeba tylko wpisa do›nich odpowiednie wartoci. A jakie?›Takie, jakie umiecimy w tabeli 'INIT'.›Teraz wyjani, co oznaczaj dziwne›znaczki w tabeli. Jest tam zapisane,›jaka warto ma si znale  w kadym›z rejestrw. Np. zapis 32DC oznacza,›e do rejestru DC zostanie zapisana›liczba $32 szesnastkowo. Jedna z liczb›jest wyrniona kursorem, ktry›przesuwamy strza kami, ale tylko na›boki! Przejcie do innego wiersza osiga›si przez wyjechanie za koniec wiersza,›w ktrym jestemy. Troch to niewygodne,›ale mona si przyzwyczai. Strza ki›"gry" i "d " s u do zmniejszania›lub zwikszania o jeden. Mona te›zwyczajnie wpisa liczb (dwie cyfry›hex.). Tutaj pewna uwaga odnonie›rejestru DC. Jego starsza (lewa) cyfra›jest na sta e rwna 3. Po prostu nie ma›potrzeby jej zmieniania. Drugiej cyfry›te nie moemy ustawi dowolnie. Rwna›zero oznacza wy czenie obrazu.›Warto 1 oznacza obraz wski,›2 - szeroki. Szeroko jest automatycz-›nie ustawiana przez program po wczytaniu›rysunku. Jeli do tej liczby dodamy 4,›to oznacza to w czenie przepisywania›pociskw z pamici, 8 odnosi si do›graczy. Mam nadziej, e wszyscy wiedz,›co to gracze i pociski, bo to nie jest›temat na ten artyku . Dla przyk adu:›3EDC oznacza w czony szeroki obraz,›przepisywanie graczy i pociskw›($E=2+4+8). Pozostaje omwi pozosta e›rejestry:›P0 - pozycja pozioma gracza 0.›Uwaga! Mona j ustawi w ten sposb, e›duszek bdzie widoczny na ekranie tylko›czciowo, albo w ogle!›P1,P2,P3 - jw. dla pozosta ych graczy›M0,M1,M2,M3 - jw. dla pociskw›S0,S1,S2,S3 - szeroko/rozmiar graczy:›00 - normalna (tak jak GR.15)›01 - podwjna (jak GR.9)›03 - poczwrna›SM - szeroko pociskw. Za kady pocisk›odpowiedzialne s dwa bity. Koderzy›wiedz, o co chodzi, pozosta ym›proponuj ponisz metod:›SM = szeroko pocisku 0 + 4*sz.p.1› + $10*sz.p.2 + $40*sz.p.3›gdzie kada szeroko jest ustalana tak,›jak dla graczy (czyli 0, 1 lub 3)›G0,G1,G2,G3 - rejestry grafiki graczy›Jeli w czy e przepisywanie duszkw›w DC, to zawarto Gx nie jest wana,›w przeciwnym wypadku okrelaj kszta t›duszka. Duszek ma szeroko 8 pixli,›kademu pixlowi odpowiada 1 bit.›Znowu nie bd si wdawa w szczeg owe›wyjanianie, jeli dla kogo jest to›trudne, to niech si poradzi osoby›znajcej si na tym.›GM - rejestr grafiki pociskw.›Pociski maj szeroko 2 pixle,›bity 0 i 1 odpowiadaj pociskowi 0,›2 i 3 - 1 itd.›R0,R1,R2,R3 - kolory duszkw.›GC - rejestr kontroli uk adu GTIA.›Lewa cyfra okrela w czenie dodatkowych›trybw graficznych: 4-"GR.9" 8-"GR.10"›C-"GR.11". Dodanie do niej 2 powoduje,›e w miejscu, gdzie pokrywaj si›duszki 0 i 1 oraz 2 i 3 kolor czci›wsplnej bdzie rwny wartoci OR ich›kolorw. Moemy doda te 1, co spowodu-›je, e pociski bd mia y wsplny kolor›okrelony w K3 (normalnie pocisk 0 ma›kolor taki, jak gracz 0 itd.).›Prawa cyfra okrela priorytet duszkw,›czyli to, czy duszki maj przykrywa›grafik, czy na odwrt. Mona j dobra›dowiadczalnie albo zerkn do odpowied-›niej literatury.›K0,K1,K2 - kolory grafiki.›W rozdzielczoci "semce" K2 oznacza›kolor t a, a K1 jasno atramentu,›K0 jest nieuywany. W "pitnastce"›wszystkie trzy s odpowiedzialne za›odpowiednie fragmenty rysunku.›K3 - jego rola zosta a omwiona przy GC›K4 - kolor ramki/t a›To wszystko, co moemy zmieni w 'INIT'.›Efekty mona od razu zaobserwowa na›ekranie.››Teraz 'EDIT'. Tutaj wpisujemy, jakie›rejestry zmieni w poszczeglnych›liniach. Odpowiedni lini wybieramy›naciskajc SHIFT oraz strza ki "gra"›"d ". Po wciniciu SHIFT zostanie›"ucita" cz rysunku poniej linii,›w ktrej jestemy. Tak wic moemy›zobaczy, jak wyglda linia, nad ktr›pracujemy. CTRL  lub  pozwala na›przeniesienie do pierwszej/ostatniej›linii (jest ich 240, ostatnia ma numer›239=$EF). Pewna niedogodno - przy›skrolowaniu rysunku obraz troch›"mruga". Numer linii jest widoczny po›'L='. Obok tego widnieje napis 'D=',›ktry oznacza, jaki rozkaz DL dotyczy›tej linii. Dalej mamy 'B=', po ktrym›jest dwjkowy zapis liczby, na ktrej›stoi kursor. Poniej widnieje napis›w stylu '00A0 00A1 ... 00AM'.›Oznacza on, jakie wartoci dotyczce›duszkw w tej linii znajduj si w›pamici. Pamitaj, e jeli nie›w czy e przepisywania duszkw, to te›liczby nie bd mia y adnego znaczenia.›Jeli jednak je w czy e, to wtedy rola›Ax jest taka, jak Gx z tym, e odnosi›si tylko do jednej linii. Kursorem›poruszamy w sposb identyczny, jak w›'INIT', rwnie tak samo wpisujemy›liczby. Jeeli zejdziemy do wiersza›tekstu poniej, ktry na razie jest›pusty, to okae si, e tam te moemy›wpisywa liczby (i nie tylko). Jest to›obszar, w ktrym wklepujemy PROGRAM w›do specyficznym jzyku, ktry jest›bardzo podobny do asemblera. Wana jest›wic znajomo podstaw asemblera.›Koderzy mog pomin nastpny akapit.››W procesorze jest kilka rejestrw,›w ktrych mona umieszcza liczby.›Nas bdzie interesowa tylko›najwaniejszy, czyli tzw. akumulator.›Aby wpisa liczb do jakiego rejestru,›to naley j najpierw "za adowa" do›akumulatora i dopiero std zapisa j›do rejestru, przy czym raz za adowan›liczb mona wpisa po kolei do kilku›rejestrw. Instrukcja odpowiedzialna›za za adowanie liczby do akumulatora›wyglda tak: LDA #liczba, np. LDA #$3E›Instrukcja powodujca zapisanie akumula-›tora brzmi tak: STA gdzie, np. STA $d400›Poznamy jeszcze jedn bardzo ciekaw›instrukcj: NOP›Ta instrukcja po prostu nic nie robi(!).›Wbrew pozorom nie jest to bezsensowne,›gdy "wykonanie" tej instrukcji zabiera›procesorowi troch czasu. Ot›nalea oby powiedzie, e wykonanie›innych instrukcji te zajmuje troch›czasu. Czas jest mierzony w cyklach.›LDA # trwa 2 cykle, STA - 4 cykle,›NOP - 2 cykle. To by by o na tyle›wyk adu o asemblerze.››Jak wic napisa ten program?›Pos ugujemy si trzema typami›instrukcji, dla przyk adu:›00 : tak, tak, te dwa zera to jest›instrukcja. Powoduje ona wpisanie liczby›zero do akumulatora. Jest to po prostu›LDA #$00. Moemy poda dowoln,›jednobajtow liczb szesnastkow.›P0 : a ta instrukcja powoduje zapisanie›zawartoci akumulatora do rejestru P0.›Odpowiada to instrukcji STA. Nie ma›potrzeby wpisywania strza ki, naley›wpisa pierwsz liter, a potem drug›(ewentualnie cyfr).›-- : instrukcja NOP, uzyskujemy j›przez wcinicie CLEAR.››Oprcz wpisywania komend mamy pewne›(prymitywne) opcje edycyjne:›INSERT - dzia a jak CTRL-INSERT›w edytorze systemowym›DELETE - jak standardowy CTRL-DELETE›SHIFT-INSERT - skopiwanie zapisu w tej›linii do linii poniej z jednoczesnym›przejciem do tej linii›/ - zmiana LDA/STA, w aciwie to›nieprzydatna.›Poprawiania dokonujemy najedajc›w odpowiednie miejsce i wpisujc now›instrukcj. Warto zauway, e czas›trwania instrukcji jest proporcjonalny›do tego, ile znakw ona zajmuje›('xx' - 2 cykle, 'xx ' - 4, '--' - 2).›W kadej linii mamy pewn ilo czasu,›ktra ogranicza ilo instrukcji, jakie›moemy wpisa. Trzeba te pamita,›e jeli zmienimy kolor w po owie›wywietlania linii, to kolor zmieni si›w rodku linii. Ten sam kolor mona wic›zmienia kilkukrotnie uzyskujac wicej›ni 4 kolory w linii, nie mwic ju›o tym, e w kadej linii moemy ustawi›inne kolory. Moliwa jest take zmiana›rozdzielczoci w rodku linii,›dwukrotne wywietlenie tego samego›duszka itp. Efektw moliwych do›uzyskanie jest naprawd sporo, chocia›wymagaj one pewnego nak adu pracy.››To by by o na tyle o obs udze tego›skromnego programiku. Jeli masz›z nim jakie problemy, chcesz co wicej›wiedzie, to skontaktuj si ze mn.›Zrb to take, jeli uda o ci si›cokolwiek zmajstrowa przy pomocy PG.›Nie bd wicej pisa , bo ten tekst›i tak jest za d ugi.››Program powsta w styczniu 1996.››Program i instrukcj napisa › Fox›01/03/96 18:11››Adres:› Piotr Fusik / Fox› ul. Cicha 9› 05-300 Misk Mazowiecki››