Rejestry GTIA

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 08:44, 9 kwi 2006
Miker (Dyskusja | wkład)

← Previous diff
Wersja z dnia 14:00, 24 cze 2006
KMK (Dyskusja | wkład)
(Lista rejestrów)
Next diff →
Linia 8: Linia 8:
<tr><td id="KOLM0PF">$D000 (R)</td><td>KOLM0PF</td><td> </td></tr> <tr><td id="KOLM0PF">$D000 (R)</td><td>KOLM0PF</td><td> </td></tr>
-<tr><td id="HPOSP0">$D000 (W)</td><td>HPOSP0</td><td> </td></tr>+<tr><td id="HPOSP0">$D000 (W)</td><td>HPOSP0</td><td>
 +<p>Pozycja pozioma gracza nr 0, mierzona w [[cykl koloru|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.</p>
 +</td></tr>
<tr><td id="KOLM1PF">$D001 (R)</td><td>KOLM1PF</td><td> </td></tr> <tr><td id="KOLM1PF">$D001 (R)</td><td>KOLM1PF</td><td> </td></tr>
-<tr><td id="HPOSP1">$D001 (W)</td><td>HPOSP1</td><td> </td></tr>+<tr><td id="HPOSP1">$D001 (W)</td><td>HPOSP1</td><td>Pozycja pozioma gracza nr 1, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLM2PF">$D002 (R)</td><td>KOLM2PF</td><td> </td></tr> <tr><td id="KOLM2PF">$D002 (R)</td><td>KOLM2PF</td><td> </td></tr>
-<tr><td id="HPOSP2">$D002 (W)</td><td>HPOSP2</td><td> </td></tr>+<tr><td id="HPOSP2">$D002 (W)</td><td>HPOSP2</td><td>Pozycja pozioma gracza nr 2, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLM3PF">$D003 (R)</td><td>KOLM3PF</td><td> </td></tr> <tr><td id="KOLM3PF">$D003 (R)</td><td>KOLM3PF</td><td> </td></tr>
-<tr><td id="HPOSP3">$D003 (W)</td><td>HPOSP3</td><td> </td></tr>+<tr><td id="HPOSP3">$D003 (W)</td><td>HPOSP3</td><td>Pozycja pozioma gracza nr 3, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLP0PF">$D004 (R)</td><td>KOLP0PF</td><td> </td></tr> <tr><td id="KOLP0PF">$D004 (R)</td><td>KOLP0PF</td><td> </td></tr>
-<tr><td id="HPOSM0">$D004 (W)</td><td>HPOSM0</td><td> </td></tr>+<tr><td id="HPOSM0">$D004 (W)</td><td>HPOSM0</td><td>Pozycja pozioma pocisku nr 0, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLP1PF">$D005 (R)</td><td>KOLP1PF</td><td> </td></tr> <tr><td id="KOLP1PF">$D005 (R)</td><td>KOLP1PF</td><td> </td></tr>
-<tr><td id="HPOSM1">$D005 (W)</td><td>HPOSM1</td><td> </td></tr>+<tr><td id="HPOSM1">$D005 (W)</td><td>HPOSM1</td><td>Pozycja pozioma pocisku nr 1, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLP2PF">$D006 (R)</td><td>KOLP2PF</td><td> </td></tr> <tr><td id="KOLP2PF">$D006 (R)</td><td>KOLP2PF</td><td> </td></tr>
-<tr><td id="HPOSM2">$D006 (W)</td><td>HPOSM2</td><td> </td></tr>+<tr><td id="HPOSM2">$D006 (W)</td><td>HPOSM2</td><td>Pozycja pozioma pocisku nr 2, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLP3PF">$D007 (R)</td><td>KOLP3PF</td><td> </td></tr> <tr><td id="KOLP3PF">$D007 (R)</td><td>KOLP3PF</td><td> </td></tr>
-<tr><td id="HPOSM3">$D007 (W)</td><td>HPOSM3</td><td> </td></tr>+<tr><td id="HPOSM3">$D007 (W)</td><td>HPOSM3</td><td>Pozycja pozioma pocisku nr 3, mierzona w [[cykl koloru|cyklach koloru]].</td></tr>
<tr><td id="KOLM0P">$D008 (R)</td><td>KOLM0P</td><td> </td></tr> <tr><td id="KOLM0P">$D008 (R)</td><td>KOLM0P</td><td> </td></tr>

Wersja z dnia 14:00, 24 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

AdresEtykietaOpis
$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)HPOSP1Pozycja pozioma gracza nr 1, mierzona w cyklach koloru.
$D002 (R)KOLM2PF
$D002 (W)HPOSP2Pozycja pozioma gracza nr 2, mierzona w cyklach koloru.
$D003 (R)KOLM3PF
$D003 (W)HPOSP3Pozycja pozioma gracza nr 3, mierzona w cyklach koloru.
$D004 (R)KOLP0PF
$D004 (W)HPOSM0Pozycja pozioma pocisku nr 0, mierzona w cyklach koloru.
$D005 (R)KOLP1PF
$D005 (W)HPOSM1Pozycja pozioma pocisku nr 1, mierzona w cyklach koloru.
$D006 (R)KOLP2PF
$D006 (W)HPOSM2Pozycja pozioma pocisku nr 2, mierzona w cyklach koloru.
$D007 (R)KOLP3PF
$D007 (W)HPOSM3Pozycja pozioma pocisku nr 3, mierzona w cyklach koloru.
$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:

  • bity 7-4: nieużywane, zawsze 0
  • bity 3-1: wartość 000 dla systemu PAL/SECAM oraz 111 dla NTSC
  • bit 0: nieużywany, zawsze 1

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
$D01D (W)PMCNTL (GRACTL)
$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:

  • bit 3 - jednobitowe wyjście dźwiękowe
  • bit 2 - stan klawisza OPTION (0 - naciśnięty)
  • bit 1 - stan klawisza SELECT (0 - naciśnięty)
  • bit 0 - stan klawisza START (0 - naciśnięty)

"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.

Personal tools