Rejestry Sophia
From Atariki
Wersja z dnia 15:52, 24 sie 2023 Mono (Dyskusja | wkład) (wydzielenie sekcji z rejestrow gtia) ← Previous diff |
Wersja z dnia 21:01, 26 sie 2023 KMK (Dyskusja | wkład) (ditto) Next diff → |
||
Linia 188: | Linia 188: | ||
|} | |} | ||
- | {{stub}} | + | == Zobacz też == |
+ | * [[Rejestry GTIA]] | ||
+ | |||
[[Kategoria:Programowanie Atari 8-bit]] | [[Kategoria:Programowanie Atari 8-bit]] |
Wersja z dnia 21:01, 26 sie 2023
Sophia to rozszerzenie Atari XL/XE emulujące układ GTIA i umożliwiające wyświetlanie obrazu przez złącza RGB, YPbPr, VGA, DVI-D.
Urządzenie istnieje w dwóch wersjach różniących się nieco od siebie.
Lista rejestrów Sophia1
W pierwszej wersji Sophii nieużywane bity rejestru układu GTIA wykorzystano do konfiguracji funkcji rozszerzenia.
Adres | Etykieta | Opis |
---|---|---|
$D01D (W) | PMCNTL, GRACTL |
Funkcje bitów:
|
Lista rejestrów Sophia2
W rejestrze układu GTIA znajduje się tylko jeden bit przełączający bank rejestrów Sophii.
Adres | Etykieta | Opis |
---|---|---|
$D01D (W) | PMCNTL, GRACTL |
Funkcje bitów:
|
Bank rejestrów Sophii2 znajduje się w podstawowym obszarze rejestrów GTIA czyli $D000-$D01F.
Adres | Etykieta | Opis | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$D000 (R/W) | DISM0PF | Blokuje testowanie kolizji pocisku 0 z polem gry.
Bity 0-3 oznaczają kolizje z polem gry 0-3 (COLPF0-COLPF3). Blokada jest aktywna kiedy bit jest ustawiony.
| |||||||||||||||||||||||||||
$D001 (R/W) | DISM1PF | Blokuje testowanie kolizji pocisku 1 z polem gry. Patrz DISM0PF. | |||||||||||||||||||||||||||
$D002 (R/W) | DISM2PF | Blokuje testowanie kolizji pocisku 2 z polem gry. Patrz DISM0PF. | |||||||||||||||||||||||||||
$D003 (R/W) | DISM3PF | Blokuje testowanie kolizji pocisku 3 z polem gry. Patrz DISM0PF. | |||||||||||||||||||||||||||
$D004 (R/W) | DISP0PF | Blokuje testowanie kolizji gracza 0 z polem gry.
Bity 0-3 oznaczają kolizje z polem gry 0-3 (COLPF0-COLPF3). Blokada jest aktywna kiedy bit jest ustawiony.
| |||||||||||||||||||||||||||
$D005 (R/W) | DISP1PF | Blokuje testowanie kolizji gracza 1 z polem gry. Patrz DISP0PF. | |||||||||||||||||||||||||||
$D006 (R/W) | DISP2PF | Blokuje testowanie kolizji gracza 2 z polem gry. Patrz DISP0PF. | |||||||||||||||||||||||||||
$D007 (R/W) | DISP3PF | Blokuje testowanie kolizji gracza 3 z polem gry. Patrz DISP0PF. | |||||||||||||||||||||||||||
$D008 (R/W) | DISM0P | Blokuje testowanie kolizji pocisku 0 z graczem.
Bity 0-3 oznaczają kolizje z graczem 0-3 (COLPM0-COLPM3). Blokada jest aktywna kiedy bit jest ustawiony.
| |||||||||||||||||||||||||||
$D009 (R/W) | DISM1P | Blokuje testowanie kolizji pocisku 1 z graczem. Patrz DISM0P. | |||||||||||||||||||||||||||
$D00A (R/W) | DISM2P | Blokuje testowanie kolizji pocisku 2 z graczem. Patrz DISM0P. | |||||||||||||||||||||||||||
$D00B (R/W) | DISM3P | Blokuje testowanie kolizji pocisku 3 z graczem. Patrz DISM0P. | |||||||||||||||||||||||||||
$D00C (R/W) | DISP0P | Blokuje testowanie kolizji gracza 0 z graczem.
Bity 0-3 oznaczają kolizje z graczem 0-3 (COLPM0-COLPM3). Blokada jest aktywna kiedy bit jest ustawiony.
| |||||||||||||||||||||||||||
$D00D (R/W) | DISP1P | Blokuje testowanie kolizji gracza 1 z graczem. Patrz DISP0P. | |||||||||||||||||||||||||||
$D00E (R/W) | DISP2P | Blokuje testowanie kolizji gracza 2 z graczem. Patrz DISP0P. | |||||||||||||||||||||||||||
$D00F (R/W) | DISP3P | Blokuje testowanie kolizji gracza 3 z graczem. Patrz DISP0P. | |||||||||||||||||||||||||||
$D010 | - | ||||||||||||||||||||||||||||
$D011 | - | ||||||||||||||||||||||||||||
$D012 | - | ||||||||||||||||||||||||||||
$D013 | - | ||||||||||||||||||||||||||||
$D014 | - | ||||||||||||||||||||||||||||
$D015 (R) | REV | Rewizja rdzenia. | |||||||||||||||||||||||||||
$D016 | - | ||||||||||||||||||||||||||||
$D017 | - | ||||||||||||||||||||||||||||
$D018 | - | ||||||||||||||||||||||||||||
$D019 | - | ||||||||||||||||||||||||||||
$D01A | - | ||||||||||||||||||||||||||||
$D01B (R/W) | PRIOR | Rejestr konfiguracji rozdzielczości i palety.
Znaczenie bitów:
| |||||||||||||||||||||||||||
$D01C (R) | FIELD | Znacznik parzystości ramki w trybie z przeplotem.
Funkcje bitów:
| |||||||||||||||||||||||||||
$D01D (R/W) | GRACTL | Rejestr konfiguracji.
Znaczenie bitów:
| |||||||||||||||||||||||||||
$D01E (R) | SOPHIA | Identyfikator urządzenia - zawiera wartość $53 czyli 'S' | |||||||||||||||||||||||||||
$D01E (W) | HITCLR |
Zapis dowolnej wartości pod ten adres zeruje ustawienia wszystkich rejestrów DISM0PF-DISM3PD, DISM0P-DISM3P, DISP0PF-DISP3PF oraz DISP0P-DISP3P. | |||||||||||||||||||||||||||
$D01F (W) | PALDATA | Kolejne wpisy do tego rejestru zapisują odpowiednio składowe R, G i B koloru palety.
Dostępnych jest 16 palet, z czego ostatnia jest nieużywana. Na początku pamięci znajduje się paleta nr 1, potem 2, itd. Nie ma dostępu do wbudowanej palety nr 0. Każda paleta zawiera 256 kolorów definiowanych za pomocą 6-bitowych składowych (najstarsze bity w bajcie). Wewnętrzny adres wpisu palety resetowany jest w momencie wyzerowania bitu SPECEN rejestru GRACTL (czyli wyłączenia banku rejestrów Sophii). |