Rejestry Sophia

Z Atariki mirror
Przejdź do nawigacjiPrzejdź do wyszukiwania

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:
  • bit 7 - niewykorzystany
  • bit 6 - niewykorzystany
  • bit 5 - w układzie Sophia1: redukcja szerokości ekranu do 336 pikseli hires (1 - włączony)
  • bit 4 - w układzie Sophia1: aktywacja dodatkowego koloru w trybach wysokiej rozdzielczości (1 - włączony)
  • bit 3 - w układzie Sophia1: aktywacja najmłodszego bitu luminancji (1 - włączony)
  • bit 2 - odczyt przycisków joysticków (1 - zatrzask)
  • bit 1 - DMA graczy (1 - włączone)
  • bit 0 - DMA pocisków (1 - włączone)

Lista rejestrów Sophia2

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:
  • bit 7 - w układzie Sophia2: włączenie rejestrów rozszerzenia (1 - włączone)
  • bit 6 - niewykorzystany
  • bit 5 - niewykorzystany
  • bit 4 - niewykorzystany
  • bit 3 - niewykorzystany
  • bit 2 - odczyt przycisków joysticków (1 - zatrzask)
  • bit 1 - DMA graczy (1 - włączone)
  • bit 0 - DMA pocisków (1 - włączone)

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.

  • bit 0: COLPF0
  • bit 1: COLPF1
  • bit 2: COLPF2
  • bit 3: COLPF3
  • bity 4-7: zawsze 0
$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.

  • bit 0: COLPF0
  • bit 1: COLPF1
  • bit 2: COLPF2
  • bit 3: COLPF3
  • bity 4-7: zawsze 0
$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.

  • bit 0: COLPM0
  • bit 1: COLPM1
  • bit 2: COLPM2
  • bit 3: COLPM3
  • bity 4-7: zawsze 0
$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.

  • bit 0: COLPM0
  • bit 1: COLPM1
  • bit 2: COLPM2
  • bit 3: COLPM3
  • bity 4-7: zawsze 0
$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:

  • bit 7: VGA - ustawia wyjście analogowe RGB jako VGA (H:31kHz; V:60/50Hz); dostępny jest tylko tryb graficzny 480p/576p
  • bity 6-4: RESolution - wybór rozdzielczości ekranu
wartość rozdzielczość aspect-ratio
%000 480p
576p
3:2
5:4
%001 1280x960 4:3
%010 1280x1024 5:4
%011 1344x960 14:10
%100 1440x900 16:10
%101 1536x960 16:10
%110 1600x900 16:9
%111 1704x960 16:9
  • bity 3-0: PALEtte - wybór aktywnej palety; po resecie urządzenia ustawiana jest wbudowana paleta 0 (PAL lub NTSC zależnie od systemu TV); palety 1-15 są programowane przez użytkownika (patrz rejestr PALDATA); nie jest zapisywany do pamięci nieulotnej
$D01C (R) FIELD Znacznik parzystości ramki w trybie z przeplotem.

Funkcje bitów:

  • bit 7 - 1: ramka nieparzysta
  • bit 6-0 - niewykorzystane
$D01D (R/W) GRACTL Rejestr konfiguracji.

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 6: SYNC conTroL - ustawia wyjścia analogowych sygnałów synchronizacji
tryb wartość H V
RGB 0 CSYNC 0.3Vpp@75Ω RGB Blanking
RGB 1 HSYNC TTL VSYNC TTL
VGA x HSYNC TTL VSYNC TTL
  • bit 5: Visible playfield GATE - 1: ogranicza wyświetlany obraz do 336 pikseli na ekranie
  • bit 4: HIRES Bi-Color - 1: powoduje że w trybach wysokiej rozdzielczości kolor punktu zgaszonego brany jest z COLPF2 a punktu zapalonego z COLPF1
  • bit 3: LUM0 bit ENable - 1: uaktywnia najmłodszy bit luminancji w rejestrze koloru
  • bit 2: INTERLACE - 1: włącza tryb z przeplotem
  • bit 1: YUVRGB - 1: kontroluje przestrzeń kolorów wyjścia analogowego 0: YPbPr, 1: RGB
  • bit 0: NonVolatile ENable: - 1: aktywuje zapis ustawień do pamięci nieulotnej; następujący w ciągu 4 cykli zapis wartości do rejestru GRACTL lub PRIOR Sophii zostanie utrwalony
$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).

Zobacz też