<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Rejestry_PIA</id>
	<title>Rejestry PIA - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Rejestry_PIA"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Rejestry_PIA&amp;action=history"/>
	<updated>2026-10-02T09:25:07Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Rejestry_PIA&amp;diff=3435&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Rejestry_PIA&amp;diff=3435&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Układ [[PIA]], sześć rejestrów.&lt;br /&gt;
&lt;br /&gt;
== Lista rejestrów ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Adres&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Etykieta&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Opis&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | $D300&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | PORTA&lt;br /&gt;
| 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.&lt;br /&gt;
|-&lt;br /&gt;
| 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.&lt;br /&gt;
&lt;br /&gt;
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)):&lt;br /&gt;
&lt;br /&gt;
* bit 7: joystick 1 w prawo (0 = tak, 1 = nie)&lt;br /&gt;
* bit 6: joystick 1 w lewo (0 = tak, 1 = nie)&lt;br /&gt;
* bit 5: joystick 1 w dół (0 = tak, 1 = nie)&lt;br /&gt;
* bit 4: joystick 1 w górę (0 = tak, 1 = nie)&lt;br /&gt;
* bit 3: joystick 0 w prawo (0 = tak, 1 = nie)&lt;br /&gt;
* bit 2: joystick 0 w lewo (0 = tak, 1 = nie)&lt;br /&gt;
* bit 1: joystick 0 w dół (0 = tak, 1 = nie)&lt;br /&gt;
* bit 0: joystick 0 w górę (0 = tak, 1 = nie)&lt;br /&gt;
&lt;br /&gt;
Znaczenie bitów kiedy do gniazd podłączone są paddles (cienie dla odpowiednich przycisków znajdują się od PTRIG0 ($027C) do PTRIG3 ($027F)):&lt;br /&gt;
&lt;br /&gt;
* bit 7: przycisk potencjometru 3 (0 = wciśnięty, 1 = zwolniony)&lt;br /&gt;
* bit 6: przycisk potencjometru 2 (0 = wciśnięty, 1 = zwolniony)&lt;br /&gt;
* bit 5: nieużywany (1)&lt;br /&gt;
* bit 4: nieużywany (1)&lt;br /&gt;
* bit 3: przycisk potencjometru 1 (0 = wciśnięty, 1 = zwolniony)&lt;br /&gt;
* bit 2: przycisk potencjometru 0 (0 = wciśnięty, 1 = zwolniony)&lt;br /&gt;
* bit 1: nieużywany (1)&lt;br /&gt;
* bit 0: nieużywany (1)&lt;br /&gt;
&lt;br /&gt;
Znaczenie bitów kiedy do gniazd podłączone jest [[Pióro świetlne|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 [[XG-1|pistolet świetlny]]:&lt;br /&gt;
&lt;br /&gt;
* bit 7: nieużywany (1)&lt;br /&gt;
* bit 6: nieużywany (1)&lt;br /&gt;
* bit 5: nieużywany (1)&lt;br /&gt;
* bit 4: przycisk pióra 1 (0 = wciśnięty, 1 = zwolniony)/przycisk pistoletu 1 (0 = zwolniony, 1 = wciśnięty)&lt;br /&gt;
* bit 3: nieużywany (1)&lt;br /&gt;
* bit 2: nieużywany (1)&lt;br /&gt;
* bit 1: nieużywany (1)&lt;br /&gt;
* bit 0: przycisk pióra 0 (0 = wciśnięty, 1 = zwolniony)/przycisk pistoletu 0 (0 = zwolniony, 1 = wciśnięty)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | $D301&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | PORTB&lt;br /&gt;
| 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.&lt;br /&gt;
|-&lt;br /&gt;
| 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.&lt;br /&gt;
&lt;br /&gt;
W serii [[XL]] rejestr ten steruje układem zarządzania pamięcią oraz (istniejącymi w niektórych modelach) diodami konsoli. Przypisanie bitów:&lt;br /&gt;
&lt;br /&gt;
* bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0)&lt;br /&gt;
* bit 6: nieużywany&lt;br /&gt;
* bit 5: nieużywany&lt;br /&gt;
* bit 4: nieużywany&lt;br /&gt;
* bit 3: LED 2 (0 - świeci się)&lt;br /&gt;
* bit 2: LED 1 (0 - świeci się)&lt;br /&gt;
* bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0)&lt;br /&gt;
* bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0)&lt;br /&gt;
&lt;br /&gt;
Wartością domyślną jest $FF.&lt;br /&gt;
&lt;br /&gt;
W serii [[XE]] rejestr ten steruje układem zarządzania pamięcią. Przypisanie bitów:&lt;br /&gt;
&lt;br /&gt;
* bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0)&lt;br /&gt;
* bit 6: w [[XEGS]] gdy BASIC jest wyłączony (bit 1=1), ustawienie tutaj 0 włącza ROM wbudowanej gry [[Missile Command]]. W pozostałych modelach nieużywany.&lt;br /&gt;
* bit 5: w obszarze $4000-$7FFF [[ANTIC (układ)|ANTIC]] widzi pamięć główną (1) lub dodatkową (0)&lt;br /&gt;
* bit 4: w obszarze $4000-$7FFF CPU widzi pamięć główną (1) lub dodatkową (0)&lt;br /&gt;
* bit 3: wybór banku pamięci dodatkowej 16k w obszarze $4000-$7FFF&lt;br /&gt;
* bit 2: wybór banku pamięci dodatkowej 16k w obszarze $4000-$7FFF&lt;br /&gt;
* bit 1: RAM w obszarze $A000-$BFFF (1) lub [[Atari BASIC]] tamże (0)&lt;br /&gt;
* bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0)&lt;br /&gt;
&lt;br /&gt;
Wartością domyślną jest $FF.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Działanie tego rejestru modyfikują [[Obsługa standardowego rozszerzenia pamięci RAM|standardowe rozszerzenia pamięci]] oraz [[MapRAM]].&lt;br /&gt;
&lt;br /&gt;
Skonfigurowanie linii PORTB (w rejestrze kierunku przepływu danych) jako wejściowych powoduje, że takie linie PIA pozostają w stanie logicznej &amp;quot;1&amp;quot; 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).&lt;br /&gt;
|-&lt;br /&gt;
| $D302&lt;br /&gt;
| PACTL&lt;br /&gt;
| Rejestr kontroli portu A. Znaczenie bitów:&lt;br /&gt;
&lt;br /&gt;
* bit 7: status przerwania IRQ portu A (1 - wystąpiło)&lt;br /&gt;
* bit 6: nieużywany (zawsze 0)&lt;br /&gt;
* bit 5: nieużywany (zawsze 1)&lt;br /&gt;
* bit 4: nieużywany (zawsze 1)&lt;br /&gt;
* bit 3: sterowanie silnikiem magnetofonu (0 - włączony, 1 - wyłączony)&lt;br /&gt;
* bit 2: bit wyboru funkcji rejestru PORTA: 0 - rejestr kierunku przepływu danych, 1 - rejestr przesyłania danych&lt;br /&gt;
* bit 1: nieużywany (zawsze 0)&lt;br /&gt;
* bit 0: zezwolenie na przerwanie IRQ portu A (1 - dozwolone)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|-&lt;br /&gt;
| $D303&lt;br /&gt;
| PBCTL&lt;br /&gt;
| Rejestr kontroli portu B. Znaczenie bitów:&lt;br /&gt;
&lt;br /&gt;
* bit 7: status przerwania IRQ portu B (1 - wystąpiło)&lt;br /&gt;
* bit 6: nieużywany (zawsze 0)&lt;br /&gt;
* bit 5: nieużywany (zawsze 1)&lt;br /&gt;
* bit 4: nieużywany (zawsze 1)&lt;br /&gt;
* bit 3: sterowanie linią COMMAND [[Gniazdo SIO|gniazda SIO]] (0 - aktywna)&lt;br /&gt;
* bit 2: bit wyboru funkcji rejestru PORTB: 0 - rejestr kierunku przepływu danych, 1 - rejestr przesyłania danych.&lt;br /&gt;
* bit 1: nieużywany (zawsze 0)&lt;br /&gt;
* bit 0: zezwolenie na przerwanie IRQ portu B (1 - dozwolone)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>