Rejestry GTIA
From Atariki
Wersja z dnia 14:11, 24 cze 2006 KMK (Dyskusja | wkład) (→Lista rejestrów) ← Previous diff |
Wersja z dnia 08:57, 27 cze 2006 KMK (Dyskusja | wkład) (→Lista rejestrów) Next diff → |
||
Linia 120: | Linia 120: | ||
<tr><td id="GTIACTL">$D01B (W)</td><td>GTIACTL (GPRIOR)</td><td> </td></tr> | <tr><td id="GTIACTL">$D01B (W)</td><td>GTIACTL (GPRIOR)</td><td> </td></tr> | ||
- | <tr><td id="VDELAY">$D01C (W)</td><td>VDELAY</td><td> </td></tr> | + | <tr><td id="VDELAY">$D01C (W)</td><td>VDELAY</td><td> |
+ | <p>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 [[Rejestry_ANTIC-a#DMACTL|DMACTL]]. | ||
+ | </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> </td></tr> |
Wersja z dnia 08:57, 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. </td></tr> |
$D01D (W) | PMCNTL (GRACTL) | |
$D01E (W) | HITCLR |
<p>Zapis dowolnej wartości pod ten adres kasuje stany rejestrów kolizji.</p> |
$D01F (R/W) | CONSOL |
<p>Bity 0-3 tego rejestru reprezentują stan nóżek S0-S3 układu GTIA, a pozostałe bity sa niewykorzystane. Znaczenie:</p>
<p>"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.</p> <p>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.</p> |