Rejestry Sophia
From Atariki
| Wersja z dnia 14:28, 25 kwi 2024 Mono (Dyskusja | wkład) (link do "tryby wysokiej rozdzielczości") ← Previous diff |
Wersja z dnia 15:01, 22 cze 2026 Mono (Dyskusja | wkład) (→Lista rejestrów Sophia2 - dodatki dla sophia 3) Next diff → |
||
| Linia 22: | Linia 22: | ||
| |} | |} | ||
| - | ===Lista rejestrów Sophia2=== | + | ===Lista rejestrów Sophia2 i Sophia3=== |
| Tu wykorzystano tylko jeden nieużywany bit w rejestrze układu [[GTIA]] i przełącza on bank rejestrów Sophii. | Tu wykorzystano tylko jeden nieużywany bit w rejestrze układu [[GTIA]] i przełącza on bank rejestrów Sophii. | ||
| Linia 81: | Linia 81: | ||
| * bit 3: COLPM3 | * bit 3: COLPM3 | ||
| * bity 4-7: zawsze 0 | * bity 4-7: zawsze 0 | ||
| + | W Sophia3: | ||
| + | * bit 6: SCL (W) - linia SCL interfejsu TPI I<sup>2</sup>C | ||
| + | * bit 7: SDA (R/W) - linia SDA interfejsu TPI I<sup>2</sup>C | ||
| |- | |- | ||
| |id="DISM1P"|$D009 (R/W)||DISM1P||Blokuje testowanie kolizji pocisku 1 z graczem. Patrz [[#DISM0P|DISM0P]]. | |id="DISM1P"|$D009 (R/W)||DISM1P||Blokuje testowanie kolizji pocisku 1 z graczem. Patrz [[#DISM0P|DISM0P]]. | ||
| Linia 113: | Linia 116: | ||
| |- | |- | ||
| |id="REV"|$D015 (R)||REV||Rewizja rdzenia. | |id="REV"|$D015 (R)||REV||Rewizja rdzenia. | ||
| + | W Sophia3: | ||
| + | * bit 7: zawsze 1 | ||
| |- | |- | ||
| |id="COLPF0"|$D016||-|| | |id="COLPF0"|$D016||-|| | ||
| Linia 151: | Linia 156: | ||
| |id="FIELD"|$D01C (R)||FIELD||Znacznik parzystości ramki w trybie z przeplotem. | |id="FIELD"|$D01C (R)||FIELD||Znacznik parzystości ramki w trybie z przeplotem. | ||
| Funkcje bitów: | Funkcje bitów: | ||
| - | * bit 7 - 1: ramka nieparzysta | + | * bit 7: EVEN - 0: ramka parzysta, 1: ramka nieparzysta, w trybie bez przeplotu zawsze 0 |
| * bit 6-0 - niewykorzystane | * bit 6-0 - niewykorzystane | ||
| + | |- | ||
| + | |id="VDELAY"|$D01C (R/W)||VDELAY||Tylko Sophia3. | ||
| + | Funkcje bitów kiedy SPECEN=1: | ||
| + | * bit 7: AUDIO - 0: pure_DVI mode, 1: DVI_with_AUDIO mode | ||
| + | * bit 6: TPI - 0: TPI I<sup>2</sup>C disabled, 1: TPI I<sup>2</sup>C enabled | ||
| + | * bit 5: GR10SHiftDisable - 0: pixel shift enabled, 1: pixel shift enabled | ||
| + | * bit 4: CSYNCTL - 0: 0.3 Vpp @ 75 Ohm, 1: TTL level | ||
| + | * bit 3-0: niewykorzystane | ||
| |- | |- | ||
| |id="GRACTL"|$D01D (R/W)||GRACTL||Rejestr konfiguracji. | |id="GRACTL"|$D01D (R/W)||GRACTL||Rejestr konfiguracji. | ||
Wersja z dnia 15:01, 22 cze 2026
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 i Sophia3
Tu wykorzystano tylko jeden nieużywany bit w rejestrze układu GTIA i przełącza on 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.
W Sophia3:
| |||||||||||||||||||||||||||
| $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.
W Sophia3:
| |||||||||||||||||||||||||||
| $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:
| |||||||||||||||||||||||||||
| $D01C (R/W) | VDELAY | Tylko Sophia3.
Funkcje bitów kiedy SPECEN=1:
| |||||||||||||||||||||||||||
| $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). |
