Rejestry PIA
From Atariki
Wersja z dnia 20:23, 1 maj 2017 Mono (Dyskusja | wkład) (styl) ← Previous diff |
Aktualna wersja Krótki (Dyskusja | wkład) (Nieprawda, PORTB jest inicjowany jako "all output" we wszystkich modelach XL.) |
||
Linia 43: | Linia 43: | ||
</td></tr> | </td></tr> | ||
<tr><td id="PORTB" rowspan = 2>$D301</td><td rowspan = 2>PORTB</td><td> | <tr><td id="PORTB" rowspan = 2>$D301</td><td rowspan = 2>PORTB</td><td> | ||
- | Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia, w przeciwnym wypadku - jako bit wyjścia danych. System w [[400/800]] programuje wszystkie linie portu jako wejście, w [[XL]]/[[XE]] - wszystkie jako wyjście, za wyjątkiem [[1450XLD]], gdzie bity 4 i 5 są programowane jako wejściowe (aczkolwiek nie wiadomo, po co).</td></tr> | + | Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia, w przeciwnym wypadku - jako bit wyjścia danych. System w [[400/800]] programuje wszystkie linie portu jako wejście, w [[XL]]/[[XE]] - wszystkie jako wyjście.</td></tr> |
<tr><td> | <tr><td> | ||
Jako rejestr przesyłania danych: w serii 400/800 przypisany jest do drugiej (nieistniejącej w [[XL]]/[[XE]]) pary gniazd joysticka, młodsze 4 bity przekazują stany joysticka nr 3, starsze - joysticka nr 4. Cienie znajdują się odpowiednio pod JSTICK2 ($027A) i JSTICK3 ($027B). W serii [[XL]]/[[XE]] są to duplikaty cieni portu A. | Jako rejestr przesyłania danych: w serii 400/800 przypisany jest do drugiej (nieistniejącej w [[XL]]/[[XE]]) pary gniazd joysticka, młodsze 4 bity przekazują stany joysticka nr 3, starsze - joysticka nr 4. Cienie znajdują się odpowiednio pod JSTICK2 ($027A) i JSTICK3 ($027B). W serii [[XL]]/[[XE]] są to duplikaty cieni portu A. |
Aktualna wersja
Układ PIA, sześć rejestrów.
Lista rejestrów
Adres | Etykieta | Opis |
$D300 | PORTA | Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia, w przeciwnym wypadku - jako bit wyjścia danych. System programuje wszystkie linie portu jako wejście. |
Jako rejestr przesyłania danych: przypisany jest do dwóch pierwszych (w XL i XE: dwóch jedynych) gniazd joysticka, młodsze 4 bity przekazują stany joysticka nr 1, starsze - joysticka nr 2. Znaczenie bitów kiedy do gniazd podłączone są joysticki (cień dla dolnego nibble znajduje się odpowiednio pod JSTICK0 ($0278), a dla górnego pod JSTICK1 ($0279)):
Znaczenie bitów kiedy do gniazd podłączone są paddles (cienie dla odpowiednich przycisków znajdują się od PTRIG0 ($027C) do PTRIG3 ($027F)):
Znaczenie bitów kiedy do gniazd podłączone jest pióro świetlne (dedykowanych rejestrów cieni dla przycisków pióra nie ma, lecz z powodzeniem można posłużyć się rejestrami położenia joysticków JSTICK0, oraz JSTICK1) lub pistolet świetlny:
| ||
$D301 | PORTB | Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia, w przeciwnym wypadku - jako bit wyjścia danych. System w 400/800 programuje wszystkie linie portu jako wejście, w XL/XE - wszystkie jako wyjście. |
Jako rejestr przesyłania danych: w serii 400/800 przypisany jest do drugiej (nieistniejącej w XL/XE) pary gniazd joysticka, młodsze 4 bity przekazują stany joysticka nr 3, starsze - joysticka nr 4. Cienie znajdują się odpowiednio pod JSTICK2 ($027A) i JSTICK3 ($027B). W serii XL/XE są to duplikaty cieni portu A. W serii XL rejestr ten steruje układem zarządzania pamięcią oraz (istniejącymi w niektórych modelach) diodami konsoli. Przypisanie bitów:
Wartością domyślną jest $FF. W serii XE rejestr ten steruje układem zarządzania pamięcią. Przypisanie bitów:
Wartością domyślną jest $FF. Działanie bitu 7 jest uzależnione od stanu bitu 0: bit 7 włącza i wyłącza SELF TEST tylko wtedy, kiedy bit 0 jest ustawiony na 1. W przeciwnym razie zmiany stanu bitu 7 są ignorowane. Działanie tego rejestru modyfikują standardowe rozszerzenia pamięci oraz MapRAM. Skonfigurowanie linii PORTB (w rejestrze kierunku przepływu danych) jako wejściowych powoduje, że takie linie PIA pozostają w stanie logicznej "1" niezależnie od tego jaka wartość została zapisana do rejestru przesyłania danych PORTB (co może powodować problemy z konfiguracją pamięci w XL/XE). | ||
$D302 | PACTL |
Rejestr kontroli portu A. Znaczenie bitów:
Przerwanie IRQ portu A podłączone jest do linii PROCEED gniazda SIO. System programuje tu domyślnie brak zezwolenia na jego wystąpienie. Status IRQ kasowany jest automatycznie po odczycie PORTA. |
$D303 | PBCTL |
Rejestr kontroli portu B. Znaczenie bitów:
Przerwanie IRQ portu B podłączone jest do linii INTERRUPT gniazda SIO. System programuje tu domyślnie brak zezwolenia na jego wystąpienie. Status IRQ kasowany jest automatycznie po odczycie PORTB. |