Rejestry PIA: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
| Linia 7: | Linia 7: | ||
<tr><td id="PORTA" rowspan = 2>$D300</td><td rowspan = 2>PORTA</td><td> | <tr><td id="PORTA" rowspan = 2>$D300</td><td rowspan = 2>PORTA</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 programuje wszystkie linie portu jako wejście.</td></tr> | |||
<tr><td> | <tr><td> | ||
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. Cienie znajdują się odpowiednio pod JSTICK0 ($0278) i JSTICK1 ($0279). | |||
</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> | |||
<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. | |||
W serii [[XL]] rejestr ten steruje układem zarządzania pamięcią oraz (istniejącymi w niektórych modelach) diodami konsoli. Przypisanie bitów: | |||
* bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0) | * bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0) | ||
* bit 6: nieużywany | * bit 6: nieużywany | ||
| Linia 24: | Linia 25: | ||
* bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0) | * bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0) | ||
* bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0) | * bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0) | ||
Wartością domyślną jest $FF. | |||
W serii [[XE]] rejestr ten steruje układem zarządzania pamięcią. Przypisanie bitów: | |||
* bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0) | * bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0) | ||
* bit 6: nieużywany | * bit 6: nieużywany | ||
| Linia 34: | Linia 36: | ||
* bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0) | * bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0) | ||
* bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0) | * bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0) | ||
Wartością domyślną jest $FF. | |||
</td></tr> | </td></tr> | ||
<tr><td id="PACTL">$D302</td><td>PACTL</td><td> | <tr><td id="PACTL">$D302</td><td>PACTL</td><td> | ||
Rejestr kontroli portu A. Znaczenie bitów: | |||
* bit 7: status przerwania IRQ portu A (1 - wystąpiło) | * bit 7: status przerwania IRQ portu A (1 - wystąpiło) | ||
* bit 6: nieużywany (zawsze 0) | * bit 6: nieużywany (zawsze 0) | ||
| Linia 46: | Linia 48: | ||
* bit 1: nieużywany (zawsze 0) | * bit 1: nieużywany (zawsze 0) | ||
* bit 0: zezwolenie na przerwanie IRQ portu A (1 - dozwolone) | * bit 0: zezwolenie na przerwanie IRQ portu A (1 - dozwolone) | ||
Przerwanie IRQ portu A podłączone jest do linii PROCEED [[gniazdo SIO|gniazda SIO]]. System programuje tu domyślnie brak zezwolenia na jego wystąpienie. Status IRQ kasowany jest automatycznie po odczycie PORTA. | |||
</td></tr> | </td></tr> | ||
<tr><td id="PBCTL">$D303</td><td>PBCTL</td><td> | <tr><td id="PBCTL">$D303</td><td>PBCTL</td><td> | ||
Rejestr kontroli portu B. Znaczenie bitów: | |||
* bit 7: status przerwania IRQ portu B (1 - wystąpiło) | * bit 7: status przerwania IRQ portu B (1 - wystąpiło) | ||
* bit 6: nieużywany (zawsze 0) | * bit 6: nieużywany (zawsze 0) | ||
| Linia 58: | Linia 60: | ||
* bit 1: nieużywany (zawsze 0) | * bit 1: nieużywany (zawsze 0) | ||
* bit 0: zezwolenie na przerwanie IRQ portu B (1 - dozwolone) | * bit 0: zezwolenie na przerwanie IRQ portu B (1 - dozwolone) | ||
Przerwanie IRQ portu B podłączone jest do linii INTERRUPT [[gniazdo SIO|gniazda SIO]]. System programuje tu domyślnie brak zezwolenia na jego wystąpienie. Status IRQ kasowany jest automatycznie po odczycie PORTB. | |||
</td></tr> | </td></tr> | ||
</table> | </table> | ||
[[Kategoria:Programowanie Atari 8-bit]] | [[Kategoria:Programowanie Atari 8-bit]] | ||
Wersja z 20 lut 2006, 16:14
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. Cienie znajdują się odpowiednio pod JSTICK0 ($0278) i JSTICK1 ($0279). | ||
| $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, za wyjątkiem 1450XLD, gdzie bity 4 i 5 są programowane jako wejściowe (aczkolwiek nie wiadomo, po co). |
|
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. | ||
| $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. |