Rejestry GTIA
From Atariki
Wersja z dnia 08:59, 27 cze 2006 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 09:15, 27 cze 2006 KMK (Dyskusja | wkład) (→Lista rejestrów) Next diff → |
||
Linia 124: | Linia 124: | ||
</td></tr> | </td></tr> | ||
- | <tr><td id="PMCTNL">$D01D (W)</td><td>PMCNTL (GRACTL)</td><td> </td></tr> | + | <tr><td id="PMCTNL">$D01D (W)</td><td>PMCNTL (GRACTL)</td><td> |
+ | <p>Ustawienie bitu 0 powoduje włączenie wyświetlania pocisków, bitu 1 - włączenie wyświetlania graczy.</p> | ||
+ | |||
+ | <p>Bit 2 odpowiada za działanie rejestrów TRIG0-3: jego ustawienie powoduje, że po wciśnięciu spustu joysticka rejestr "zatrzaskuje się" i pokazuje cały czas, że spust jest wciśnięty, nawet jeśli już nie jest. Zwolnienie następuje dopiero po skasowaniu bitu 2 omawianego tu rejestru. Mechanizm ten służy do łapania stanów spustów joysticka bez konieczności ich nieustannego monitorowania.</p> | ||
+ | </td></tr> | ||
<tr><td id="HITCLR">$D01E (W)</td><td>HITCLR</td><td> | <tr><td id="HITCLR">$D01E (W)</td><td>HITCLR</td><td> |
Wersja z dnia 09:15, 27 cze 2006
GTIA został wykorzystany w małych Atari oraz w konsolach Atari 5200. W obu systemach rejestry GTIA zostały zmapowane na różnych stronach pamięci - w komputerach na stronie $D0, w konsoli na stronie $C0. W tabeli podane są adresy właściwe dla komputerów 400/800/XL/XE.
Lista rejestrów
Adres | Etykieta | Opis |
$D000 (R) | KOLM0PF | |
$D000 (W) | HPOSP0 |
Pozycja pozioma gracza nr 0, mierzona w cyklach koloru. Można wpisywac wartości od 0 (skrajna lewa) do 255 (skrajna prawa) pamiętając jednak o tym, że skrajne pozycje znajdują się poza obszarem wyświetlanym na ekranie przeciętnego monitora. W praktyce zakres pozycji, w jakich duszek jest widoczny, rozciąga się od wartości 32 do 216. Standardowe pole gry zajmuje pozycje 41 do 207, zwężone odpowiednio mniej, a rozszerzone odpowiednio więcej. |
$D001 (R) | KOLM1PF | |
$D001 (W) | HPOSP1 | Pozycja pozioma gracza nr 1, mierzona w cyklach koloru. Patrz HPOSP0. |
$D002 (R) | KOLM2PF | |
$D002 (W) | HPOSP2 | Pozycja pozioma gracza nr 2, mierzona w cyklach koloru. Patrz HPOSP0. |
$D003 (R) | KOLM3PF | |
$D003 (W) | HPOSP3 | Pozycja pozioma gracza nr 3, mierzona w cyklach koloru. Patrz HPOSP0. |
$D004 (R) | KOLP0PF | |
$D004 (W) | HPOSM0 | Pozycja pozioma pocisku nr 0, mierzona w cyklach koloru. Patrz HPOSP0. |
$D005 (R) | KOLP1PF | |
$D005 (W) | HPOSM1 | Pozycja pozioma pocisku nr 1, mierzona w cyklach koloru. Patrz HPOSP0. |
$D006 (R) | KOLP2PF | |
$D006 (W) | HPOSM2 | Pozycja pozioma pocisku nr 2, mierzona w cyklach koloru. Patrz HPOSP0. |
$D007 (R) | KOLP3PF | |
$D007 (W) | HPOSM3 | Pozycja pozioma pocisku nr 3, mierzona w cyklach koloru. Patrz HPOSP0. |
$D008 (R) | KOLM0P | |
$D008 (W) | SIZEP0 | |
$D009 (R) | KOLM1P | |
$D009 (W) | SIZEP1 | |
$D00A (R) | KOLM2P | |
$D00A (W) | SIZEP2 | |
$D00B (R) | KOLM3P | |
$D00B (W) | SIZEP3 | |
$D00C (R) | KOLP0P | |
$D00C (W) | SIZEM | |
$D00D (R) | KOLP1P | |
$D00D (W) | GRAFP0 | |
$D00E (R) | KOLP2P | |
$D00E (W) | GRAFP1 | |
$D00F (R) | KOLP3P | |
$D00F (W) | GRAFP2 | |
$D010 (R) | TRIG0 |
Stan spustu joysticka nr 0 (0 - wciśnięty). |
$D010 (W) | GRAFP3 | |
$D011 (R) | TRIG1 |
Stan spustu joysticka nr 1 (0 - wciśnięty). |
$D011 (W) | GRAFM | |
$D012 (R) | TRIG2 |
W 400/800 stan spustu joysticka nr 2 (0 - wciśnięty). W XL i XE rejestr nieużywany. |
$D012 (W) | COLPM0 | |
$D013 (R) | TRIG3 |
W 400/800 stan spustu joysticka nr 3 (0 - wciśnięty). W XL i XE sygnalizuje stan zewnętrznego cartridge'a (1 - włożony do gniazda). |
$D013 (W) | COLPM1 | |
$D014 (R) | PAL |
Znacznik systemu TV. Znaczenie bitów:
Wynika z tego, że w systemie PAL i SECAM wartość rejestru to $01, a w NTSC $0F. |
$D014 (W) | COLPM2 | |
$D015 (W) | COLPM3 | |
$D016 (W) | COLPF0 | |
$D017 (W) | COLPF1 | |
$D018 (W) | COLPF2 | |
$D019 (W) | COLPF3 | |
$D01A (W) | COLBAK | |
$D01B (W) | GTIACTL (GPRIOR) | |
$D01C (W) | VDELAY |
Bity 0-3 oznaczają pociski o numerach 0-3, bity 4-7 graczy o numerach 0-3. Ustawienie bitu powoduje, ze pozycja pionowa odpowiedniego obiektu zwiększa się o jedną linię skaningową obrazu (czyli obiekt na ekranie obniża się o jedną linię). Służy to do zwiększenia płynności ruchu pionowego obiektów w rozdzielczości dwuliniowej, patrz DMACTL. |
$D01D (W) | PMCNTL (GRACTL) |
Ustawienie bitu 0 powoduje włączenie wyświetlania pocisków, bitu 1 - włączenie wyświetlania graczy. Bit 2 odpowiada za działanie rejestrów TRIG0-3: jego ustawienie powoduje, że po wciśnięciu spustu joysticka rejestr "zatrzaskuje się" i pokazuje cały czas, że spust jest wciśnięty, nawet jeśli już nie jest. Zwolnienie następuje dopiero po skasowaniu bitu 2 omawianego tu rejestru. Mechanizm ten służy do łapania stanów spustów joysticka bez konieczności ich nieustannego monitorowania. |
$D01E (W) | HITCLR |
Zapis dowolnej wartości pod ten adres kasuje stany rejestrów kolizji. |
$D01F (R/W) | CONSOL |
Bity 0-3 tego rejestru reprezentują stan nóżek S0-S3 układu GTIA, a pozostałe bity sa niewykorzystane. Znaczenie:
"Jednobitowe wyjście dźwiękowe" wykorzystywane jest do generowania kliku klawiatury oraz dźwięku brzęczyka systemowego urządzenia "E:" (zob. CIO). W serii 400/800 służy do tego osobny głośniczek, w XL i XE natomiast jest to podłączone do ogólnego wyjścia audio. Przed odczytaniem stanu linii wejściowych (czyli stanu klawiszy START, SELECT, OPTION) odpowiednie bity rejestru CONSOL trzeba ustawić na zero. Normalnie jednak nie ma potrzeby tego czynić w programie, gdyż robi to systemowa procedura SYSVBL. |
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.