Rejestry VBXE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 21:09, 15 lip 2024
KMK (Dyskusja | wkład)
(Rdzeń FX)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(Rdzeń FX - COLMASK/COLDETECT)
Linia 44: Linia 44:
<tr><td id="VIDEO_CONTROL">$Dx40 (W)</td><td>VIDEO_CONTROL</td><td> <tr><td id="VIDEO_CONTROL">$Dx40 (W)</td><td>VIDEO_CONTROL</td><td>
-<p></p>+<p>Używane są tylko bity 0-3, pozostałe powinny być wyzerowane. Funkcje bitów:</p>
 +<table border = 1 cellpadding = 5>
 +<tr><td><b>Bit</b></td><td><b>Nazwa</b></td><td><b>Opis</b></td></tr>
 +<tr><td>3</td><td>trans15</td><td><p>Ten bit ma znaczenie tylko wtedy, gdy bit ''no_trans''=0.</p>
 +<p>0 = jak opisano pod ''no_trans''</p>
 +<p>1 = dodatkowo każdy kolor o wartości $xF jest przezroczysty.</p>
 +</td></tr>
 +<tr><td>2</td><td>no_trans</td><td>
 +<p>0 = w trybach VBXE piksele o wartości 0 traktuj jako przezroczyste</p>
 +<p>1 = w trybach VBXE piksele o wartości 0 traktuj jako nieprzezroczyste.</p>
 +<p>Skasowanie tego bitu powoduje, że w miejscu pikseli o wartości 0 będzie wyświetlany obraz ANTIC-a, normalnie przykryty overlayem VBXE. W trybach tekstowych kolor tła znaku jest przezroczysty, gdy bit 7 atrybutu znaku ma wartość 0.</p>
 +</td></tr>
 +<tr><td>1</td><td>xcolor</td><td>
 +<p>0 = ignoruj bit 0 rejestrów kolorów GTIA (= standard)</p>
 +<p>1 = uwzględniaj bit 0 rejestrów kolorów GTIA.</p>
 +<p>Ustawienie tego bitu powoduje ponadto, że w [[Tryby_wysokiej_rozdzielczości|trybach wysokiej rozdzielczości ANTIC-a]] ([[Graphics 0]], [[Graphics 8]], [[ANTIC 3]]) kolor zapalonego piksela staje się zupełnie niezależny od koloru tła i jest w całości definiowany przez rejestr GTIA [[GTIA#COLPF1|COLPF1]].</p>
 +</td></tr>
 +<tr><td>0</td><td>xdl_enabled</td><td>
 +<p>0 = wyłącz przetwarzanie XDL</p>
 +<p>1 = włącz przetwarzanie XDL</p>
 +<p>Zmiana stanu bitu jest brana pod uwagę po najbliższym impulsie synchronizacji pionowej (VBL).</p></td></tr>
 +</table>
</td></tr> </td></tr>
Linia 52: Linia 73:
<tr><td id="XDL_ADR0">$Dx41 (W)</td><td>XDL_ADR0</td><td> <tr><td id="XDL_ADR0">$Dx41 (W)</td><td>XDL_ADR0</td><td>
-<p></p>+<p>Bity 0-7 adresu [[XDL]] w [[VRAM]].</p>
</td></tr> </td></tr>
-<tr><td id="XDL_ADR1">$Dx42 (W)</td><td>XDL_ADR0</td><td>+<tr><td id="XDL_ADR1">$Dx42 (W)</td><td>XDL_ADR1</td><td>
-<p></p>+<p>Bity 8-15 adresu [[XDL]] w [[VRAM]].</p>
</td></tr> </td></tr>
-<tr><td id="XDL_ADR2">$Dx43 (W)</td><td>XDL_ADR0</td><td>+<tr><td id="XDL_ADR2">$Dx43 (W)</td><td>XDL_ADR2</td><td>
-<p></p>+<p>Bity 16-23 adresu [[XDL]] w [[VRAM]]. Z tej wartości bity 19-23 są ignorowane (VBXE ma tylko 512k [[VRAM]]-u pokrywającego zakres adresowy od $000000 do $07FFFF), jednak powinno się je ustawiać na 0 dla zgodności w przód.</p>
</td></tr> </td></tr>
<tr><td id="CSEL">$Dx44 (W)</td><td>CSEL</td><td> <tr><td id="CSEL">$Dx44 (W)</td><td>CSEL</td><td>
-<p>Nr koloru (z palety 256 kolorów Atari), od którego zacznie się modyfikacja palety kolorów przy użyciu rejestrów CR, CG i CB.</p>+<p>Nr koloru (z palety 256 kolorów Atari), od którego zacznie się modyfikacja palety kolorów wybranej rejestrem PSEL przy użyciu rejestrów CR, CG i CB.</p>
</td></tr> </td></tr>
<tr><td id="PSEL">$Dx45 (W)</td><td>PSEL</td><td> <tr><td id="PSEL">$Dx45 (W)</td><td>PSEL</td><td>
-<p>Wybór palety z zakresu 0-3. Palety 0 nie należy przedefiniowywać, o ile nie zachodzi ku temu naprawdę uzasadniona konieczność, bo a) jest ona używana przez system, b) palet nie da się przywrócić bez wyłączenia zasilania komputera (rejestry palet są tylko do zapisu).</p>+<p>Wybór palety z zakresu 0-3. Palety 0 nie należy przedefiniowywać, o ile nie zachodzi ku temu naprawdę uzasadniona konieczność, bo a) jest ona używana przez system (toteż powinna pozostać zgodna z kolorami zdefiniowanymi przez Atari), b) palet nie da się przywrócić bez wyłączenia zasilania komputera (rejestry palet są tylko do zapisu).</p>
</td></tr> </td></tr>
<tr><td id="CR">$Dx46 (W)</td><td>CR</td><td> <tr><td id="CR">$Dx46 (W)</td><td>CR</td><td>
-<p>Składowa czerwona (R) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany.Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.</p>+<p>Składowa czerwona (R) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany.Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.</p>
</td></tr> </td></tr>
<tr><td id="CG">$Dx47 (W)</td><td>CG</td><td> <tr><td id="CG">$Dx47 (W)</td><td>CG</td><td>
-<p>Składowa zielona (G) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.</p>+<p>Składowa zielona (G) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.</p>
</td></tr> </td></tr>
<tr><td id="CB">$Dx48 (W)</td><td>CB</td><td> <tr><td id="CB">$Dx48 (W)</td><td>CB</td><td>
-<p>Składowa niebieska (B) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru. Ponadto po zapisie do tego rejestru następuje automatyczne zwiększenie wartości rejestru CSEL. Jeśli bieżącą wartością CSEL jest $FF, jego wartość zmieni się na $00.</p>+<p>Składowa niebieska (B) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru. Ponadto po zapisie do tego rejestru następuje automatyczne zwiększenie wartości rejestru CSEL. Jeśli bieżącą wartością CSEL jest $FF, jego wartość zmieni się na $00. Rejestr PSEL nie ulega zmianie.</p>
</td></tr> </td></tr>
<tr><td id="COLMASK">$Dx49 (W)</td><td>COLMASK</td><td> <tr><td id="COLMASK">$Dx49 (W)</td><td>COLMASK</td><td>
-<p></p>+<p>Rejestr służący do konfiguracji detekcji kolizji pomiędzy obiektami trybów VBXE (OVERLAY - tak graficznym, jak tekstowym) a dowolnym z kolorów [[GTIA]] (COLPM0/1/2/3, COLPF0/1/2/3) lub polem [[Mapa atrybutów VBXE|mapy atrybutów]] z ustawionym bitem CATT.</p>
 +<p>Jeśli bit COLMASK z kolumny lewej jest ustawiony na 1, VBXE będzie sygnalizować (w rejestrze COLDETECT) kolizje obiektów OVERLAY z obiektami GTIA, gdy '''nieprzezroczysty''' kolor obiektu OVERLAY zawiera się w przedziale wskazanym w kolumnie prawej (nr palety jest tu nieistotny):</p>
 +<table border = 1 cellpadding = 5>
 +<tr><td><b>Bit</b></td><td><b>Przedział</b></td></tr>
 +<tr><td>0</td><td>0-31</td></tr>
 +<tr><td>1</td><td>32-63</td></tr>
 +<tr><td>2</td><td>64-95</td></tr>
 +<tr><td>3</td><td>96-127</td></tr>
 +<tr><td>4</td><td>128-159</td></tr>
 +<tr><td>5</td><td>160-191</td></tr>
 +<tr><td>6</td><td>192-223</td></tr>
 +<tr><td>7</td><td>224-255</td></tr>
 +</table>
 +<p>Kolizje wykrywane są automatycznie podczas wyświetlania obrazu przez VBXE. Uwaga: tego mechanizmu nie należy mylić z wykrywaniem kolizji pomiędzy obiektami OVERLAY oferowanym przez [[Blitter VBXE]].</p>
</td></tr> </td></tr>
<tr><td id="COLDETECT">$Dx4A (R)</td><td>COLDETECT</td><td> <tr><td id="COLDETECT">$Dx4A (R)</td><td>COLDETECT</td><td>
-<p></p>+<p>Kod kolizji ustawionej w rejestrze COLMASK. Jeśli bit z kolumny lewej jest ustawiony na 1, wykryto kolizję obiektu OVERLAY z kolorem z kolumny prawej:</p>
 +<table border = 1 cellpadding = 5>
 +<tr><td><b>Bit</b></td><td><b>Kolizja OVERLAY z</b></td></tr>
 +<tr><td>0</td><td>PM0 (gracz-pocisk nr 0)</td></tr>
 +<tr><td>1</td><td>PM1 (gracz-pocisk nr 1)</td></tr>
 +<tr><td>2</td><td>PM2 (gracz-pocisk nr 2)</td></tr>
 +<tr><td>3</td><td>PM3 (gracz-pocisk nr 3)</td></tr>
 +<tr><td>4</td><td>PF0 (pole gry nr 0)</td></tr>
 +<tr><td>5</td><td>PF1 (pole gry nr 1)</td></tr>
 +<tr><td>6</td><td>PF2 lub PF3 (pole gry nr 2 lub 3)</td></tr>
 +<tr><td>7</td><td>pole [[Mapa atrybutów VBXE|mapy atrybutów]] z ustawionym bitem CATT</td></tr>
 +</table>
 + 
</td></tr> </td></tr>
<tr><td id="COLCLR">$Dx4A (W)</td><td>COLCLR</td><td> <tr><td id="COLCLR">$Dx4A (W)</td><td>COLCLR</td><td>
-<p></p>+<p>Wpisanie dowolnej wartości powoduje wyzerowanie rejestru COLDETECT.</p>
</td></tr> </td></tr>
<tr><td id="BLT_COLLISION_CODE">$Dx50 (R)</td><td>BLT_COLLISION_CODE</td><td> <tr><td id="BLT_COLLISION_CODE">$Dx50 (R)</td><td>BLT_COLLISION_CODE</td><td>
-<p></p>+<p>Kod kolizji pomiędzy obiektami trybu VBXE (OVERLAY) wykrytej podczas pracy [[Blitter VBXE|blittera]]. Wykrycie kolizji sygnalizuje wartość BLT_COLLISION_CODE różna od zera. Kod kolizji odpowiada niezerowej wartości koloru piksela nadpisanego przez blitter. BLT_COLLISION_CODE jest zerowany automatycznie w momencie uruchomienia blittera.</p>
</td></tr> </td></tr>
<tr><td id="BL_ADDR0">$Dx50 (W)</td><td>BL_ADDR0</td><td> <tr><td id="BL_ADDR0">$Dx50 (W)</td><td>BL_ADDR0</td><td>
-<p></p>+<p>Bity 0-7 adresu [[BlitterList]] w pamięci [[VRAM]].</p>
</td></tr> </td></tr>
<tr><td id="BL_ADDR1">$Dx51 (W)</td><td>BL_ADDR1</td><td> <tr><td id="BL_ADDR1">$Dx51 (W)</td><td>BL_ADDR1</td><td>
-<p></p>+<p>Bity 8-15 adresu [[BlitterList]] w pamięci [[VRAM]].</p>
</td></tr> </td></tr>
<tr><td id="BL_ADDR2">$Dx52 (W)</td><td>BL_ADDR2</td><td> <tr><td id="BL_ADDR2">$Dx52 (W)</td><td>BL_ADDR2</td><td>
-<p></p>+<p>Bity 16-23 adresu [[BlitterList]] w pamięci [[VRAM]]. Z tej wartości bity 19-23 są ignorowane (VBXE ma tylko 512k [[VRAM]]-u pokrywającego zakres adresowy od $000000 do $07FFFF), jednak powinno się je ustawiać na 0 dla zgodności w przód.</p>
</td></tr> </td></tr>
<tr><td id="BLITTER_BUSY">$Dx53 (R)</td><td>BLITTER_BUSY</td><td> <tr><td id="BLITTER_BUSY">$Dx53 (R)</td><td>BLITTER_BUSY</td><td>
-<p></p>+<p>Wartość tego rejestru wynosi $00, gdy [[Blitter VBXE|blitter]] nie pracuje (stan IDLE), lub różną od $00, gdy przetwarza [[BlitterList]] lub wykonuje zdefiniowaną tam operację (stan BUSY).</p>
</td></tr> </td></tr>
<tr><td id="BLITTER_START">$Dx53 (W)</td><td>BLITTER_START</td><td> <tr><td id="BLITTER_START">$Dx53 (W)</td><td>BLITTER_START</td><td>
-<p></p>+<p>Bit 0 = 0 - [[Blitter VBXE|blitter]] stop (stan domyślny)</p>
 +<p>Bit 0 = 1 - [[Blitter VBXE|blitter]] start</p>
 +<p>Pozostałe bity powinny być wyzerowane.</p>
</td></tr> </td></tr>
<tr><td id="IRQ_STATUS">$Dx54 (R)</td><td>IRQ_STATUS</td><td> <tr><td id="IRQ_STATUS">$Dx54 (R)</td><td>IRQ_STATUS</td><td>
-<p></p>+<p>Bit 0 = 1 - zostało zgłoszone przerwanie IRQ ustawione w IRQ_CONTROL.</p>
</td></tr> </td></tr>
<tr><td id="IRQ_CONTROL">$Dx54 (W)</td><td>IRQ_CONTROL</td><td> <tr><td id="IRQ_CONTROL">$Dx54 (W)</td><td>IRQ_CONTROL</td><td>
-<p></p>+<p>Rejestr kontroli przerwania IRQ, które może zostać zgłoszone w momencie zakończenia pracy przez [[Blitter VBXE|blitter]] (przy przejściu blittera ze stanu BUSY do stanu IDLE). Wykorzystany jest tylko bit 0: ustawienie na 0 powoduje zabronienie przerwania (jest to stan domyślny), a na 1 - zezwolenie na przerwanie. Dodatkowo zapis dowolnej wartości powoduje skasowanie żądania przerwania, które już wystąpiło.</p>
</td></tr> </td></tr>

Aktualna wersja

Rejestry sprzętowe VBXE znajdują się na stronie $D6 lub $D7 w zależności od konfiguracji karty. Sposób stwierdzenia ich lokalizacji w przestrzeni adresowej opisany jest w haśle Wykrycie VBXE.

Rejestry, które są tylko do zapisu (W), przy odczycie zwracają wartość $FF (255).

Rdzeń GTIA

AdresEtykietaOpis
$Dx40 (R)CORE_VERSION

Zawiera kod typu rdzenia. Dla rdzeni GTIA jest to $11.

$Dx41 (R)MINOR_REVISION

Zawiera nr wersji rdzenia. Najstarszy bit, jeśli jest ustawiony, sygnalizuje obecność emulacji rozszerzenia pamięci RAMBO 256k. Np. wartość $06 tutaj sygnalizuje rdzeń GTIA v.1.06a/g, a wartość $86 - rdzeń GTIA v.1.06r.

$Dx44 (W)CSEL

Nr koloru (z palety 256 kolorów Atari), od którego zacznie się modyfikacja palety kolorów przy użyciu rejestrów CR, CG i CB.

$Dx46 (W)CR

Składowa czerwona (R) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany.Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.

$Dx47 (W)CG

Składowa zielona (G) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.

$Dx48 (W)CB

Składowa niebieska (B) koloru wybranego w rejestrze CSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru. Ponadto po zapisie do tego rejestru następuje automatyczne zwiększenie wartości rejestru CSEL. Jeśli bieżącą wartością CSEL jest $FF, jego wartość zmieni się na $00.

Rdzeń FX

AdresEtykietaOpis
$Dx40 (R)CORE_VERSION

Zawiera kod typu rdzenia. Dla rdzeni FX jest to $10.

$Dx40 (W)VIDEO_CONTROL

Używane są tylko bity 0-3, pozostałe powinny być wyzerowane. Funkcje bitów:

BitNazwaOpis
3trans15

Ten bit ma znaczenie tylko wtedy, gdy bit no_trans=0.

0 = jak opisano pod no_trans

1 = dodatkowo każdy kolor o wartości $xF jest przezroczysty.

2no_trans

0 = w trybach VBXE piksele o wartości 0 traktuj jako przezroczyste

1 = w trybach VBXE piksele o wartości 0 traktuj jako nieprzezroczyste.

Skasowanie tego bitu powoduje, że w miejscu pikseli o wartości 0 będzie wyświetlany obraz ANTIC-a, normalnie przykryty overlayem VBXE. W trybach tekstowych kolor tła znaku jest przezroczysty, gdy bit 7 atrybutu znaku ma wartość 0.

1xcolor

0 = ignoruj bit 0 rejestrów kolorów GTIA (= standard)

1 = uwzględniaj bit 0 rejestrów kolorów GTIA.

Ustawienie tego bitu powoduje ponadto, że w trybach wysokiej rozdzielczości ANTIC-a (Graphics 0, Graphics 8, ANTIC 3) kolor zapalonego piksela staje się zupełnie niezależny od koloru tła i jest w całości definiowany przez rejestr GTIA COLPF1.

0xdl_enabled

0 = wyłącz przetwarzanie XDL

1 = włącz przetwarzanie XDL

Zmiana stanu bitu jest brana pod uwagę po najbliższym impulsie synchronizacji pionowej (VBL).

$Dx41 (R)MINOR_REVISION

Zawiera nr wersji rdzenia. Najstarszy bit, jeśli jest ustawiony, sygnalizuje obecność emulacji rozszerzenia pamięci RAMBO 256k. Np. wartość $26 tutaj sygnalizuje rdzeń FX v.1.26a/g, a wartość $A6 - rdzeń FX v.1.26r.

$Dx41 (W)XDL_ADR0

Bity 0-7 adresu XDL w VRAM.

$Dx42 (W)XDL_ADR1

Bity 8-15 adresu XDL w VRAM.

$Dx43 (W)XDL_ADR2

Bity 16-23 adresu XDL w VRAM. Z tej wartości bity 19-23 są ignorowane (VBXE ma tylko 512k VRAM-u pokrywającego zakres adresowy od $000000 do $07FFFF), jednak powinno się je ustawiać na 0 dla zgodności w przód.

$Dx44 (W)CSEL

Nr koloru (z palety 256 kolorów Atari), od którego zacznie się modyfikacja palety kolorów wybranej rejestrem PSEL przy użyciu rejestrów CR, CG i CB.

$Dx45 (W)PSEL

Wybór palety z zakresu 0-3. Palety 0 nie należy przedefiniowywać, o ile nie zachodzi ku temu naprawdę uzasadniona konieczność, bo a) jest ona używana przez system (toteż powinna pozostać zgodna z kolorami zdefiniowanymi przez Atari), b) palet nie da się przywrócić bez wyłączenia zasilania komputera (rejestry palet są tylko do zapisu).

$Dx46 (W)CR

Składowa czerwona (R) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany.Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.

$Dx47 (W)CG

Składowa zielona (G) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru.

$Dx48 (W)CB

Składowa niebieska (B) koloru wybranego w rejestrze CSEL w palecie wybranej rejestrem PSEL. Wartość składowej jest 7-bitowa, pod uwagę brane są tylko bity 7-1, a bit 0 jest ignorowany. Zmiana składowej następuje natychmiast po zapisie wartości do tego rejestru. Ponadto po zapisie do tego rejestru następuje automatyczne zwiększenie wartości rejestru CSEL. Jeśli bieżącą wartością CSEL jest $FF, jego wartość zmieni się na $00. Rejestr PSEL nie ulega zmianie.

$Dx49 (W)COLMASK

Rejestr służący do konfiguracji detekcji kolizji pomiędzy obiektami trybów VBXE (OVERLAY - tak graficznym, jak tekstowym) a dowolnym z kolorów GTIA (COLPM0/1/2/3, COLPF0/1/2/3) lub polem mapy atrybutów z ustawionym bitem CATT.

Jeśli bit COLMASK z kolumny lewej jest ustawiony na 1, VBXE będzie sygnalizować (w rejestrze COLDETECT) kolizje obiektów OVERLAY z obiektami GTIA, gdy nieprzezroczysty kolor obiektu OVERLAY zawiera się w przedziale wskazanym w kolumnie prawej (nr palety jest tu nieistotny):

BitPrzedział
00-31
132-63
264-95
396-127
4128-159
5160-191
6192-223
7224-255

Kolizje wykrywane są automatycznie podczas wyświetlania obrazu przez VBXE. Uwaga: tego mechanizmu nie należy mylić z wykrywaniem kolizji pomiędzy obiektami OVERLAY oferowanym przez Blitter VBXE.

$Dx4A (R)COLDETECT

Kod kolizji ustawionej w rejestrze COLMASK. Jeśli bit z kolumny lewej jest ustawiony na 1, wykryto kolizję obiektu OVERLAY z kolorem z kolumny prawej:

BitKolizja OVERLAY z
0PM0 (gracz-pocisk nr 0)
1PM1 (gracz-pocisk nr 1)
2PM2 (gracz-pocisk nr 2)
3PM3 (gracz-pocisk nr 3)
4PF0 (pole gry nr 0)
5PF1 (pole gry nr 1)
6PF2 lub PF3 (pole gry nr 2 lub 3)
7pole mapy atrybutów z ustawionym bitem CATT
$Dx4A (W)COLCLR

Wpisanie dowolnej wartości powoduje wyzerowanie rejestru COLDETECT.

$Dx50 (R)BLT_COLLISION_CODE

Kod kolizji pomiędzy obiektami trybu VBXE (OVERLAY) wykrytej podczas pracy blittera. Wykrycie kolizji sygnalizuje wartość BLT_COLLISION_CODE różna od zera. Kod kolizji odpowiada niezerowej wartości koloru piksela nadpisanego przez blitter. BLT_COLLISION_CODE jest zerowany automatycznie w momencie uruchomienia blittera.

$Dx50 (W)BL_ADDR0

Bity 0-7 adresu BlitterList w pamięci VRAM.

$Dx51 (W)BL_ADDR1

Bity 8-15 adresu BlitterList w pamięci VRAM.

$Dx52 (W)BL_ADDR2

Bity 16-23 adresu BlitterList w pamięci VRAM. Z tej wartości bity 19-23 są ignorowane (VBXE ma tylko 512k VRAM-u pokrywającego zakres adresowy od $000000 do $07FFFF), jednak powinno się je ustawiać na 0 dla zgodności w przód.

$Dx53 (R)BLITTER_BUSY

Wartość tego rejestru wynosi $00, gdy blitter nie pracuje (stan IDLE), lub różną od $00, gdy przetwarza BlitterList lub wykonuje zdefiniowaną tam operację (stan BUSY).

$Dx53 (W)BLITTER_START

Bit 0 = 0 - blitter stop (stan domyślny)

Bit 0 = 1 - blitter start

Pozostałe bity powinny być wyzerowane.

$Dx54 (R)IRQ_STATUS

Bit 0 = 1 - zostało zgłoszone przerwanie IRQ ustawione w IRQ_CONTROL.

$Dx54 (W)IRQ_CONTROL

Rejestr kontroli przerwania IRQ, które może zostać zgłoszone w momencie zakończenia pracy przez blitter (przy przejściu blittera ze stanu BUSY do stanu IDLE). Wykorzystany jest tylko bit 0: ustawienie na 0 powoduje zabronienie przerwania (jest to stan domyślny), a na 1 - zezwolenie na przerwanie. Dodatkowo zapis dowolnej wartości powoduje skasowanie żądania przerwania, które już wystąpiło.

$Dx55 (W)P0

$Dx56 (W)P1

$Dx57 (W)P2

$Dx58 (W)P3

$Dx5D (W)MEMAC_B_CONTROL

$Dx5E (RW)MEMAC_CONTROL

$Dx5F (RW)MEMAC_BANK_SEL


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools