Rejestry Sophia
From Atariki
| Wersja z dnia 21:01, 26 sie 2023 KMK (Dyskusja | wkład) (ditto) ← Previous diff |
Aktualna wersja Mono (Dyskusja | wkład) (→Lista rejestrów Sophia2 i Sophia3 - red.) |
||
| Linia 1: | Linia 1: | ||
| [[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. | [[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. | + | Urządzenie istnieje w kilku wersjach różniących się nieco od siebie. |
| ===Lista rejestrów Sophia1=== | ===Lista rejestrów Sophia1=== | ||
| Linia 15: | Linia 15: | ||
| * bit 6 - niewykorzystany | * bit 6 - niewykorzystany | ||
| * bit 5 - w układzie [[Sophia|Sophia1]]: redukcja szerokości ekranu do 336 pikseli hires (1 - włączony) | * bit 5 - w układzie [[Sophia|Sophia1]]: redukcja szerokości ekranu do 336 pikseli hires (1 - włączony) | ||
| - | * bit 4 - w układzie [[Sophia|Sophia1]]: aktywacja dodatkowego koloru w [[Tryby_monochromatyczne_ANTIC-a|trybach monochromatycznych]] (1 - włączony) | + | * bit 4 - w układzie [[Sophia|Sophia1]]: aktywacja dodatkowego koloru w [[Tryby wysokiej rozdzielczości|trybach wysokiej rozdzielczości]] (1 - włączony) |
| * bit 3 - w układzie [[Sophia|Sophia1]]: aktywacja najmłodszego bitu luminancji (1 - włączony) | * bit 3 - w układzie [[Sophia|Sophia1]]: aktywacja najmłodszego bitu luminancji (1 - włączony) | ||
| * bit 2 - odczyt przycisków joysticków (1 - zatrzask) | * bit 2 - odczyt przycisków joysticków (1 - zatrzask) | ||
| Linia 22: | Linia 22: | ||
| |} | |} | ||
| - | ===Lista rejestrów Sophia2=== | + | ===Lista rejestrów Sophia2 i Sophia3=== |
| - | W rejestrze układu [[GTIA]] znajduje się tylko jeden bit przełączający bank rejestrów Sophii. | + | Tu wykorzystano tylko jeden nieużywany bit w rejestrze układu [[GTIA]] i przełącza on bank rejestrów [[Sophia|Sophii]]. |
| {| border="1" cellpadding="5" | {| border="1" cellpadding="5" | ||
| Linia 31: | Linia 31: | ||
| |id="PMCNTL"|$D01D (W)||PMCNTL, GRACTL|| | |id="PMCNTL"|$D01D (W)||PMCNTL, GRACTL|| | ||
| Funkcje bitów: | Funkcje bitów: | ||
| - | * bit 7 - w układzie [[Sophia|Sophia2]]: włączenie rejestrów rozszerzenia (1 - włączone) | + | * bit 7 - włączenie rejestrów rozszerzenia (1 - włączone) |
| * bit 6 - niewykorzystany | * bit 6 - niewykorzystany | ||
| * bit 5 - niewykorzystany | * bit 5 - niewykorzystany | ||
| Linia 41: | Linia 41: | ||
| |} | |} | ||
| - | Bank rejestrów Sophii2 znajduje się w podstawowym obszarze rejestrów GTIA czyli $D000-$D01F. | + | Bank rejestrów Sophii znajduje się w podstawowym obszarze rejestrów GTIA czyli $D000-$D01F. |
| {| border="1" cellpadding="5" | {| border="1" cellpadding="5" | ||
| Linia 81: | Linia 81: | ||
| * bit 3: COLPM3 | * bit 3: COLPM3 | ||
| * bity 4-7: zawsze 0 | * bity 4-7: zawsze 0 | ||
| + | W Sophia 3: | ||
| + | * 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 Sophia 3: | ||
| + | * bit 7: zawsze 1 | ||
| |- | |- | ||
| |id="COLPF0"|$D016||-|| | |id="COLPF0"|$D016||-|| | ||
| Linia 150: | Linia 155: | ||
| |- | |- | ||
| |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: | + | Znaczenie 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||Rejestr konfiguracji (tylko Sophia 3). | ||
| + | Znaczenie bitów: | ||
| + | * 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. | ||
| Znaczenie bitów: | Znaczenie bitów: | ||
| - | * bit 7: SPECial features ENable - 1: aktywuje rejestry układu Sophia2, 0: aktywuje rejestry układu GTIA i zeruje adres pamięci palety | + | * bit 7: SPECial features ENable - 1: aktywuje rejestry układu Sophia, 0: aktywuje rejestry układu GTIA i zeruje adres pamięci palety |
| * bit 6: SYNC conTroL - ustawia wyjścia analogowych sygnałów synchronizacji | * bit 6: SYNC conTroL - ustawia wyjścia analogowych sygnałów synchronizacji | ||
| {| border="1" | {| border="1" | ||
| Linia 186: | Linia 199: | ||
| Wewnętrzny adres wpisu palety resetowany jest w momencie wyzerowania bitu SPECEN rejestru GRACTL (czyli <b>wyłączenia</b> banku rejestrów Sophii). | Wewnętrzny adres wpisu palety resetowany jest w momencie wyzerowania bitu SPECEN rejestru GRACTL (czyli <b>wyłączenia</b> banku rejestrów Sophii). | ||
| + | |} | ||
| + | |||
| + | ===Lista rejestrów EEPROM=== | ||
| + | Sophia 2: | ||
| + | |||
| + | {| border="1" cellpadding="5" | ||
| + | ! Adres !! Opis | ||
| + | |- | ||
| + | |id="S200"|$00 (R/W)|| | ||
| + | * bit 7 - nVGA | ||
| + | * bit 6 - nRES2 | ||
| + | * bit 5 - nRES1 | ||
| + | * bit 4 - nRES0 | ||
| + | * bit 3 - nSYNCTL | ||
| + | * bit 2 - nVGATE | ||
| + | * bit 1 - nHIRESB | ||
| + | * bit 0 - nLUM0E | ||
| + | |- | ||
| + | |id="S201"|$01 (R/W)|| | ||
| + | * bit 7 - nINTERL | ||
| + | * bit 6 - nYUVRGB | ||
| + | * bit 3-0 - nieużywane | ||
| + | |} | ||
| + | |||
| + | Sophia 3: | ||
| + | |||
| + | {| border="1" cellpadding="5" | ||
| + | ! Adres !! Opis | ||
| + | |- | ||
| + | |id="S300"|$00 (R/W)|| | ||
| + | * bit 7-6 - nieużywane | ||
| + | * bit 5 - nAUDIO | ||
| + | * bit 4 - nTPI | ||
| + | * bit 3 - nGR10SH | ||
| + | * bit 2 - nCSYNCTL | ||
| + | * bit 1 - nVGA | ||
| + | * bit 0 - nRES2 | ||
| + | |- | ||
| + | |id="S301"|$01 (R/W)|| | ||
| + | * bit 7 - nRES1 | ||
| + | * bit 6 - nRES0 | ||
| + | * bit 5 - nSYNCTL | ||
| + | * bit 4 - nVGATE | ||
| + | * bit 3 - nHIRESB | ||
| + | * bit 2 - nLUM0E | ||
| + | * bit 1 - nINTERL | ||
| + | * bit 0 - nYUVRGB | ||
| |} | |} | ||
Aktualna wersja
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 kilku wersjach różniących się nieco od siebie.
Spis treści |
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 Sophii 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 Sophia 3:
| |||||||||||||||||||||||||||
| $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 Sophia 3:
| |||||||||||||||||||||||||||
| $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.
Znaczenie bitów:
| |||||||||||||||||||||||||||
| $D01C (R/W) | VDELAY | Rejestr konfiguracji (tylko Sophia 3).
Znaczenie 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). |
Lista rejestrów EEPROM
Sophia 2:
| Adres | Opis |
|---|---|
| $00 (R/W) |
|
| $01 (R/W) |
|
Sophia 3:
| Adres | Opis |
|---|---|
| $00 (R/W) |
|
| $01 (R/W) |
|
