Rejestry VBXE
From Atariki
Wersja z dnia 08:27, 18 lip 2024 KMK (Dyskusja | wkład) (→Rdzeń FX) ← Previous diff |
Wersja z dnia 10:15, 18 lip 2024 KMK (Dyskusja | wkład) (→Rdzeń FX - ++) Next diff → |
||
Linia 117: | Linia 117: | ||
<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 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.</p> |
</td></tr> | </td></tr> | ||
Linia 133: | Linia 133: | ||
<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 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 stop (stan domyślny)</p> |
+ | <p>Bit 0 = 1 - blitter start</p> | ||
+ | <p>Pozostałe bity powinny być wyzerowane.</p> | ||
</td></tr> | </td></tr> | ||
Wersja z dnia 10:15, 18 lip 2024
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
Adres | Etykieta | Opis |
$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
Adres | Etykieta | Opis | |||||||||||||||
$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:
| |||||||||||||||
$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 | ||||||||||||||||
$Dx42 (W) | XDL_ADR1 | ||||||||||||||||
$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 | ||||||||||||||||
$Dx4A (R) | COLDETECT | ||||||||||||||||
$Dx4A (W) | COLCLR |
Wpisanie dowolnej wartości powoduje wyzerowanie rejestru COLDETECT. | |||||||||||||||
$Dx50 (R) | BLT_COLLISION_CODE |
Kod kolizji 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.