do ÂściÂągnięcia - pobieranie - ebook - pdf - download
Podstrony
- Strona Główna
- Irving, Jan [Lightning Strikes 01] The Viking in My Bed
- 0603. Hudson Jan W poszukiwaniu utraconych chwil
- 0901. Colley Jan Romantyczna kryjĂłwka
- Goldstein Jan Wszystko co waĹźne
- Megan Derr Regency
- Anderson, L. S. Entbehrlich
- Czubaj Mariusz & Krajewski Marek Aleja samobojców
- McNish_Cliff_ _Tajemnica_zaklć™cia_01_ _Tajemnica_zaklć™cia
- Bunsch Karol PowieśÂ›ci piastowskie 09. PRZEKLśÂƒSTWO
- McMahon_Barbara_ _Georgia_sćąĂ˘Â€Âšodka_Georgia
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- lady.opx.pl
[ Pobierz całość w formacie PDF ]
Zapewnia to swobodÄ™ wyboru miejsca na listÄ™ obrazu, jak i na
dane. Adres początku tych ostatnich można odczytać w komór-
kach 58-59 (88-89 dec). Tak więc sekwencja (liczby hex):
LDA #21
LDY #0
CYKL STA (58),Y
INY
BNE CYKL
spowoduje, że 256 jednakowych znaków umieszczonych zostanie w
górnych wierszach ekranu. Jakie to będą znaki? Otóż wyjaśnie-
nia wymaga, że ANTIC w wyprowadzaniu znaków posługuje się ko-
dem wewnętrznym, a nie kodem ATASCII. Poznajemy zatem już
trzeci kod znaków w Atari. Kod ten dla poszczególnych odcinków
wartości jest przesunięty w stosunku do kodu ATASCII przez do-
danie lub odjęcie stałej wielkości. Część kodów jest taka sa-
ma. Oto tablica konwersji kodu ATASCII na wewnętrzny:
--- 170 ---
Kod ATASCII Modyfikacja Kod wewnętrzny
00-1F +40 40-5F
20-5F -20 00-3F
60-7F 00 60-7F
80-9F +40 C0-DF
A0-DF -20 80-BF
E0-FF 00 E0-FF
Z tablicy wynika, że kody wewnętrzne znaków specjalnych,
cyfr i dużych liter są o 20 hex niższe od kodów ASCII i
ATASCII.
Lista rozkazów, którą posługuje się ANTIC w swym progra-
mie, jest bardzo zwięzła. W jednym bajcie mieści się niejed-
nokrotnie więcej niż jeden rozkaz, bowiem kody wielu z nich
powstają przez ustawienie pojedyńczego bitu.
Duże znaczenie ma rozkaz tworzenia pustych linii ekrano-
wych. W celu zapobieżenia ucieczce najwyższych linii poza ek-
ran programy ANTIC-u zaczynają się z reguły od wpisania u gó-
ry 24 pustych linii ekranowych, czyli np. w podstawowym try-
bie tekstowym trzech pustych wierszy tekstu. Rozkazy te, za-
leżnie od liczby tworzonych linii mają następujące wartości:
Kod 00 10 20 30 40 50 60 70
Liczba pustych linii 1 2 3 4 5 6 7 8
Dwa dalsze rozkazy określa się skrótami LMS (load memory
scan - załaduj linię z pamięci) i JMP (rozkaz skoku).
LMS wskazuje adres w pamięci ekranu, jest zatem rozkazem
trzybajtowym. Jego kod operacji powstaje przez ustawienie bi-
tu b6 czyli ma wartość 40 hex. W tym samym bajcie umieszcza
się również rozkaz określający tryb graficzny linii.
JMP ANTIC-u jest również rozkazem 3-bajtowym. Powoduje
skok w obrębie listy obrazu. Ma kod operacji 1 lub w połącze-
niu z rozkazem "skocz i czekaj na puste przerwanie pionowe"
41.
Rozkazy dotyczÄ…ce opcji specjalnych powstajÄ… przez usta-
wienie wskazanych poniżej bitów w bajtach innych rozkazów.
Cztery najniższe bity przeznaczone są na rozkaz określający
tryb grafiki. Oto znaczenia bitów:
--- 171 ---
Bity Wartość hex Czynność
7 80 Przerwanie programu ANTIC-u
6 40 Omówiony już LMS
5 20 Wykonuj płynny przesuw pionowy obrazu
4 10 Wykonuj płynny przesuw poziomy obrazu
3-0 F-2 Tryby:
0010-0111 bin - tryby tekstowe
1000-1111 bin - tryby graficzne.
Wyjaśnimy pokrótce zasady budowy trybów tekstowych i
graficznych określanych w Atari przez ANTIC. Każdy taki tryb
określa sposób interpretowania i wykorzystywania danych zawa-
rtych w pamięci ekranu, a mianowicie: wielkość piksela, licz-
bę możliwych do zastosowania kolorów oraz rozłożenie tych in-
formacji w kolejnych bajtach.
Mechanizm ten jest szczególnie prosty w trybach teksto-
wych. Informacja zapisywana jest w pamięci obrazu w wewnętrz-
nych kodach znaków. Każdy znak ma szerokość i wysokość ośmiu
punktów, toteż do jego przedstawienia potrzebne są 64 bity
czyli 8 bajtów. Jednakże tych 8 bajtów nie umieszcza się w
pamięci ekranu. Znajdują się one w zbiorze znaków w ROM i
stamtÄ…d sÄ… pobierane, tworzÄ…c razem jeden piksel czyli jeden
podstawowy element trybu tekstowego. W trybie 0 Basicu standa-
rdowo są 24 linie po 40 pikseli w każdej. W trybie 2 Basicu
obie wielkości są mniejsze o połowę.
Bardziej zawiła jest organizacja trybów graficznych. Tu
obok informacji o wielkości piksela trzeba często w bajtach
danych przewidzieć również bity na informację o kolorze. ANTIC
nie tworzy koloru, lecz dostarcza GTIA informacjÄ™ o nim.
Wszystko to decyduje o dość skomplikowanej budowie bajtów da-
nych i o różnych wymaganiach, jeżeli chodzi o wielkość pamię-
ci ekranu. Dane na ten temat zawiera instrukcja.
Numery trybów stosowane w rozkazach ANTIC-u są inne niż
te, które w Basicu określamy instrukcją GRAPHICS. Odpowied-
niość trybów charakteryzuje poniższe zestawienie. Tryb 3
ANTIC-u (litery z przedłużonymi ogonkami w polu 8x10) nie ma
odpowiednika w Basicu.
--- 172 ---
ANTIC hex 2 3 4 5 6 7 8 9 A B C D E F
BASIC dec 0 - 12 13 1 2 3 4 5 6 14 7 15 8
Z kolei tryby 9-11 Basicu oparte są na tej samej liście
obrazu trybu F.
Po dotychczasowych informacjach zrozumiała będzie budowa
programu ANTIC-u zwanego listÄ… obrazu . Przedstawimy jÄ… dla
trybów ANTIC-u 2 i 7 czyli Basicu 0 i 2 z oknem. Rozkazy pow-
tarzające się wydrukowano dla oszczędności miejsca w ciągu.
Tryb 2
70 70 70 24 puste linie ekranowe u góry
42 LMS i w tym samym bajcie tryb pierwszej linii 2
20
7C Dwubajtowy adres początku pamięci obrazu.
Teraz następują rozkazy druku pozostałych 23 li-
nii w trybie graficznym 0 (2 ANTIC-u):
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02
41 Skocz i czekaj na puste przerwanie pionowe
E0
7B Adres skoku do poczÄ…tku listy obrazu 7BE0
Tryb 7
70 70 70 24 puste linie ekranowe
47 LMS i tryb 7 ANTIC-u
70
9E Adres początku pamięci obrazu 9E70
Teraz 9 pozostałych linii trybu 7:
07 07 07 07 07 07 07 07 07
42 Nowy rozkaz LMS dla okna w trybie 2
60
9F Nowy początek pamięci obrazu dla okna tekstowego
02
02
02 Trzy pozostałe linie okna tekstowego w trybie 2
41 Skocz i czekaj na puste przerwanie
--- 173 ---
58
9E Adres skoku do poczÄ…tku listy obrazu 9E58.
Pierwsza lista obrazu liczy 32 bajty, druga jeszcze
mniej.
Wielorakie są możliwości korzystania w programach na
6502 z faktu, że równolegle z nim działa drugi mikroprocesor.
[ Pobierz całość w formacie PDF ]