Rejestry POKEY-a
From Atariki
Wersja z dnia 23:51, 26 paź 2005 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 23:53, 26 paź 2005 KMK (Dyskusja | wkład) Next diff → |
||
Linia 121: | Linia 121: | ||
* bity 6-4 - źrodło sygnału zegarowego dla transmisji szeregowej (bit 6 od lewej): | * bity 6-4 - źrodło sygnału zegarowego dla transmisji szeregowej (bit 6 od lewej): | ||
** 000 - zewnętrzne, wg linii CLOCK IN [[gniazdo SIO|gniazda SIO]] | ** 000 - zewnętrzne, wg linii CLOCK IN [[gniazdo SIO|gniazda SIO]] | ||
- | ** 001 - odczyt wg AUDF4, zapis wg CLOCK IN (default przy odczycie) | + | ** 001 - odczyt wg [[Rejestry POKEY-a#AUDF4|AUDF4 $D206]], zapis wg CLOCK IN (default przy odczycie) |
** 010 - odczyt i zapis wg AUDF4 (default przy zapisie) | ** 010 - odczyt i zapis wg AUDF4 (default przy zapisie) | ||
** 011 - kombinacja zabroniona | ** 011 - kombinacja zabroniona | ||
** 100 - odczyt wg CLOCK IN, zapis wg AUDF4 | ** 100 - odczyt wg CLOCK IN, zapis wg AUDF4 | ||
** 101 - kombinacja zabroniona | ** 101 - kombinacja zabroniona | ||
- | ** 110 - odczyt wg AUDF4, zapis wg AUDF2 | + | ** 110 - odczyt wg AUDF4, zapis wg [[Rejestry POKEY-a#AUDF2|AUDF2 $D202]] |
** 111 - jak wyżej, CLOCK IN i CLOCK OUT nieaktywne | ** 111 - jak wyżej, CLOCK IN i CLOCK OUT nieaktywne | ||
* bit 3 - transmisja dwutonowa (1 = włączona) | * bit 3 - transmisja dwutonowa (1 = włączona) | ||
Linia 132: | Linia 132: | ||
* bit 1 - tryb pracy klawiatury (1 - standard, 0 - skanowanie matrycy) | * bit 1 - tryb pracy klawiatury (1 - standard, 0 - skanowanie matrycy) | ||
* bit 0 - ustawienie wartości 1 tu i w bicie 1 (czyli wpisanie $03 do SKCTL) resetuje POKEY | * bit 0 - ustawienie wartości 1 tu i w bicie 1 (czyli wpisanie $03 do SKCTL) resetuje POKEY | ||
- | <p>W trybie dwutonowym częstotliwość ustawiona w AUDF1 pełni funkcję logicznej jedynki, natomiast ta z AUDF2 - logicznego zera. AUDF2 musi być ustawiony na niższy ton niż AUDF1. Transmisja dwutonowa jest normalnie wyłączona, a dane transmitowane są jako poziomy logiczne (+4 V = prawda, 0 V = fałsz). Natomiast któraś ze starszych wersji systemu operacyjnego Atari używała trybu dwutonowego do komunikacji z magnetofonem.</p> | + | <p>W trybie dwutonowym częstotliwość ustawiona w [[Rejestry POKEY-a#AUDF1|AUDF1 $D200]] pełni funkcję logicznej jedynki, natomiast ta z AUDF2 - logicznego zera. AUDF2 musi być ustawiony na niższy ton niż AUDF1. Transmisja dwutonowa jest normalnie wyłączona, a dane transmitowane są jako poziomy logiczne (+4 V = prawda, 0 V = fałsz). Natomiast któraś ze starszych wersji systemu operacyjnego Atari używała trybu dwutonowego do komunikacji z magnetofonem.</p> |
</td></tr> | </td></tr> | ||
Wersja z dnia 23:53, 26 paź 2005
Układ POKEY, 29 rejestrów. Wiele informacji można przepisywać stąd: [1]
Główny zegar POKEY-a ma częstotliwość 1773446,25 Hz w systemie PAL oraz 1789772,5 Hz w systemie NTSC.
Lista rejestrów
- Rejestry dźwięku: AUDF1-4, AUDC1-4, AUDCTL, SKCTL.
- Rejestry klawiatury: KBCODE, SKCTL, SKSTAT.
- Rejestry wiosełek: POT0-7, POTST, POTGO.
- Rejestry transmisji szeregowej: AUDF3-4, AUDC4, AUDCTL, SKSTRES, SKCTL, SKSTAT, SERIN, SEROUT.
- Rejestry IRQ: IRQEN, IRQST, AUDF1, AUDF2, AUDF4, STIMER.
- Inne rejestry: RANDOM.
Adres | Etykieta | Opis |
$D200 (W) | AUDF1 | |
$D200 (R) | POT0 | |
$D201 (W) | AUDC1 | |
$D201 (R) | POT1 | |
$D202 (W) | AUDF2 | |
$D202 (R) | POT2 | |
$D203 (W) | AUDC2 | |
$D203 (R) | POT3 | |
$D204 (W) | AUDF3 | |
$D204 (R) | POT4 | |
$D205 (W) | AUDC3 | |
$D205 (R) | POT5 | |
$D206 (W) | AUDF4 | |
$D206 (R) | POT6 | |
$D207 (W) | AUDC4 | |
$D207 (R) | POT7 | |
$D208 (W) | AUDCTL | |
$D208 (R) | POTST | Rejestr stanu konwersji analogowo-cyfrowej dla ośmiu wiosełek (czyli rejestrów POT0-7). Znaczenie bitów:
Jeśli bit jest skasowany, to znaczy, że odpowiedni rejestr POT zawiera właściwy wynik pomiaru. |
$D209 (W) | STIMER |
Zapis tego rejestru powoduje umieszczenie wartości rejestrów AUDF1, AUDF2 i AUDF4 w odpowiednich licznikach oraz zapoczątkowanie zliczania. |
$D209 (R) | KBCODE | Sześć młodszych bitów tego rejestru to kod klawiaturowy ostatnio wciśniętego klawisza. Znaczenie dwóch pozostałych bitów jest następujące:
Zawartości tego rejestru nie zmienia naciśnięcie następujących klawiszy: START, SELECT, OPTION, RESET oraz BREAK. Klawisze konsoli patrz CONSOL ($D01F). Klawisze BREAK i RESET wywołują przerwania. Klawisz SHIFT patrz SKSTAT ($D20F). Wciśnięcie klawisza CONTROL daje się wykryć tylko wtedy, kiedy jest wciśnięty razem z jakimś innym klawiszem, którego kod klawiaturowy da się odczytać w tym rejestrze. |
$D20A (W) | SKSTRES | Zapis tego rejestru powoduje zresetowanie bitów 5-7 rejestru SKSTAT ($D20F). |
$D20A (R) | RANDOM | Liczba pseudolosowa z zakresu od 0 do 255. |
$D20B (W) | POTGO | Zapis tego rejestru powoduje wyzerowanie rejestrów położenia potencjometrów (POT0-3) i rozpoczęcie pomiaru oporności od nowa. |
$D20C | - | Rejestr nieużywany. |
$D20D (W) | SEROUT | Rejestr wyjściowy dla transmisji szeregowej. |
$D20D (R) | SERIN | Rejestr wejściowy dla transmisji szeregowej. |
$D20E (W) | IRQEN | Rejestr zezwoleń na wygenerowanie przerwań IRQ. Ma cień IRQENS pod adresem $0010. Przypisanie bitów jest w obydwu identyczne (0 - przerwanie zabronione):
Przy blokowaniu przerwań IRQ należy raczej korzystać z cienia. Np. zablokowanie klawisza BREAK uzyskuje się przez: lda irqens and #$7f sta irqens |
$D20E (R) | IRQST | Rejest statusu przerwań IRQ. Cień IRQSTAT pod adresem $0011. Przypisanie bitów (0 - przerwanie wystąpiło):
|
$D20F (W) | SKCTL |
Rejestr kontroli transmisji szeregowej i klawiatury (Serial and Keyboard Control register). Znaczenie bitów:
W trybie dwutonowym częstotliwość ustawiona w AUDF1 $D200 pełni funkcję logicznej jedynki, natomiast ta z AUDF2 - logicznego zera. AUDF2 musi być ustawiony na niższy ton niż AUDF1. Transmisja dwutonowa jest normalnie wyłączona, a dane transmitowane są jako poziomy logiczne (+4 V = prawda, 0 V = fałsz). Natomiast któraś ze starszych wersji systemu operacyjnego Atari używała trybu dwutonowego do komunikacji z magnetofonem. |
$D20F (R) | SKSTAT | Rejestr statusu transmisji szeregowej i klawiatury (Serial and Keyboard Status register). Znaczenie bitów:
Wymieniony powyżej "bufor wejściowy klawiatury" to rejestr KBCODE $D209. Bit 5 SKSTAT ustawiany jest, kiedy w KBCODE pojawi się nowa wartość zanim poprzednia została odczytana przez procesor. |
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.