Rejestry VBXE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 08:19, 18 lip 2024
KMK (Dyskusja | wkład)
(Rdzeń FX - red.)
← Previous diff
Wersja z dnia 08:24, 18 lip 2024
KMK (Dyskusja | wkład)
(Rdzeń FX)
Next diff →
Linia 145: Linia 145:
<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>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 jeden - zezwolenie na przerwanie. Dodatkowo zapis dowolnej wartości powoduje skasowanie żądania przerwania, które już wystąpiło.</p>+<p>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.</p>
</td></tr> </td></tr>

Wersja z dnia 08:24, 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

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

$Dx4A (R)COLDETECT

$Dx4A (W)COLCLR

Wpisanie dowolnej wartości powoduje wyzerowanie rejestru COLDETECT.

$Dx50 (R)BLT_COLLISION_CODE

$Dx50 (W)BL_ADDR0

$Dx51 (W)BL_ADDR1

$Dx52 (W)BL_ADDR2

$Dx53 (R)BLITTER_BUSY

$Dx53 (W)BLITTER_START

$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