Rejestry PIA
From Atariki
| Wersja z dnia 01:26, 9 sty 2006 KMK (Dyskusja | wkład) (taka łopatologia jest niepotrzebna) ← Previous diff | Wersja z dnia 01:29, 9 sty 2006 KMK (Dyskusja | wkład) (→Lista rejestrów) Next diff → | ||
| 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> | ||
| - | <p>W trybie kontroli kierunku przepływu danych: Ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia danych, w przeciwnym wypadku - jako bit wyjścia danych. System programuje wszystkie linie portu jako wejście.</p></td></tr> | + | <p>Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia danych, w przeciwnym wypadku - jako bit wyjścia danych. System programuje wszystkie linie portu jako wejście.</p></td></tr> | 
| <tr><td> | <tr><td> | ||
| - | <p>W trybie przesyłu danych: Przypisany jest do dwóch pierwszych (w [[XL]]/[[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).</p> | + | <p>Jako rejestr przesyłania danych: przypisany jest do dwóch pierwszych (w [[XL]]/[[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).</p> | 
| </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> | ||
| - | <p>W trybie kontroli kierunku przepływu danych: Ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia danych, 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).</p></td></tr> | + | <p>Jako rejestr kierunku przepływu danych: ustawienie bitu na 0 programuje odpowiedni bit w rejestrze przesyłania danych jako bit wejścia danych, 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).</p></td></tr> | 
| <tr><td> | <tr><td> | ||
| - | <p>W trybie przesyłu 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.</p> | + | <p>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.</p> | 
| <p>W serii [[XL]] rejestr ten steruje układem zarządzania pamięcią oraz (istniejącymi w niektórych modelach) diodami konsoli. Przypisanie bitów:</p> | <p>W serii [[XL]] rejestr ten steruje układem zarządzania pamięcią oraz (istniejącymi w niektórych modelach) diodami konsoli. Przypisanie bitów:</p> | ||
| * 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) | ||
| Linia 43: | Linia 43: | ||
| * bit 4: nieużywany (zawsze 1) | * bit 4: nieużywany (zawsze 1) | ||
| * bit 3: sterowanie silnikiem magnetofonu (0 - włączony, 1 - wyłączony) | * bit 3: sterowanie silnikiem magnetofonu (0 - włączony, 1 - wyłączony) | ||
| - | * bit 2: bit wyboru funkcji rejestru PORTA: 0 - kontrola kierunku przepływu danych, 1 - rejestr przesyłania danych | + | * bit 2: bit wyboru funkcji rejestru PORTA: 0 - rejestr kierunku przepływu danych, 1 - rejestr przesyłania danych | 
| * 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) | ||
| Linia 56: | Linia 56: | ||
| * bit 4: nieużywany (zawsze 1) | * bit 4: nieużywany (zawsze 1) | ||
| * bit 3: sterowanie linią COMMAND [[gniazdo SIO|gniazda SIO]] (0 - aktywna) | * bit 3: sterowanie linią COMMAND [[gniazdo SIO|gniazda SIO]] (0 - aktywna) | ||
| - | * bit 2: bit wyboru funkcji rejestru PORTB: 0 - kontrola kierunku przepływu danych, 1 - rejestr przesyłania danych. | + | * bit 2: bit wyboru funkcji rejestru PORTB: 0 - rejestr kierunku przepływu danych, 1 - rejestr przesyłania danych. | 
| * 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) | ||
Wersja z dnia 01:29, 9 sty 2006
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 danych, 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/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 danych, 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. Bit 7 - status IRQ - ustawiany jest automatycznie na zero 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. Bit 7 - status IRQ - ustawiany jest automatycznie na zero po odczycie PORTB. | 
