Rejestry Sophia

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
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:

  • 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 monochromatycznych (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

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:

  • 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)DISM0PFBlokuje 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)DISM1PFBlokuje testowanie kolizji pocisku 1 z polem gry. Patrz DISM0PF.
$D002 (R/W)DISM2PFBlokuje testowanie kolizji pocisku 2 z polem gry. Patrz DISM0PF.
$D003 (R/W)DISM3PFBlokuje testowanie kolizji pocisku 3 z polem gry. Patrz DISM0PF.
$D004 (R/W)DISP0PFBlokuje 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)DISP1PFBlokuje testowanie kolizji gracza 1 z polem gry. Patrz DISP0PF.
$D006 (R/W)DISP2PFBlokuje testowanie kolizji gracza 2 z polem gry. Patrz DISP0PF.
$D007 (R/W)DISP3PFBlokuje testowanie kolizji gracza 3 z polem gry. Patrz DISP0PF.
$D008 (R/W)DISM0PBlokuje 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)DISM1PBlokuje testowanie kolizji pocisku 1 z graczem. Patrz DISM0P.
$D00A (R/W)DISM2PBlokuje testowanie kolizji pocisku 2 z graczem. Patrz DISM0P.
$D00B (R/W)DISM3PBlokuje testowanie kolizji pocisku 3 z graczem. Patrz DISM0P.
$D00C (R/W)DISP0PBlokuje 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)DISP1PBlokuje testowanie kolizji gracza 1 z graczem. Patrz DISP0P.
$D00E (R/W)DISP2PBlokuje testowanie kolizji gracza 2 z graczem. Patrz DISP0P.
$D00F (R/W)DISP3PBlokuje testowanie kolizji gracza 3 z graczem. Patrz DISP0P.
$D010-
$D011-
$D012-
$D013-
$D014-
$D015 (R)REVRewizja rdzenia.
$D016-
$D017-
$D018-
$D019-
$D01A-
$D01B (R/W)PRIORRejestr 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
%000480p
576p
3:2
5:4
%0011280x9604:3
%0101280x10245:4
%0111344x96014:10
%1001440x90016:10
%1011536x96016:10
%1101600x90016:9
%1111704x96016: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)FIELDZnacznik parzystości ramki w trybie z przeplotem.

Funkcje bitów:

  • bit 7 - 1: ramka nieparzysta
  • bit 6-0 - niewykorzystane
$D01D (R/W)GRACTLRejestr 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
trybwartośćHV
RGB0CSYNC 0.3Vpp@75ΩRGB Blanking
RGB1HSYNC TTLVSYNC TTL
VGAxHSYNC TTLVSYNC 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)SOPHIAIdentyfikator 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)PALDATAKolejne 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ż

Personal tools