Loading AI tools
Z Wikipedii, wolnej encyklopedii
POKEY – stworzony w latach 70. przez firmę Atari Inc. układ wejścia-wyjścia, stosowany w całej rodzinie 8-bitowych Atari, różnych konsolach oraz automatach do gier. Układowi POKEY nadano oznaczenie CO12294. Posiada 40 pinów i odpowiada za generowanie dźwięku, obsługę klawiatury, portu szeregowego i potencjometrów jak również generowanie liczb pseudolosowych. Nazwa pochodzi od słów potentiometer and keyboard chip – potencjometr (Paddle) i klawiatura.
POKEY dysponuje czterema kanałami audio, z których każdy ma możliwość indywidualnej regulacji częstotliwości, poziomu szumu i natężenia dźwięku.
Każdy kanał ma 8-bitowy dzielnik częstotliwości i 8-bitowy rejestr do wyboru szumu i głośności:
AUDIOF1 do AUDIOF4 – rejestry częstotliwości (ang. audio frequency),
AUDC1 do AUDC4 – rejestr głośności i szumów (ang. audio control),
AUDCTL – wspólny rejestr do sterowania generatorami.
Generacja losowych szumów odbywa się poprzez odczyt górnych 8 bitów 17-bitowego rejestru przesuwającego. Rejestry te taktowane są częstotliwością 1,79 MHz w systemie NTSC, zaś PAL wykorzystuje 1,77 MHz, jednak ich wyjścia mogą być próbkowane niezależnie przez cztery kanały audio, w tempie dzielnika częstotliwości danego kanału.
"1" oznacza włączony, chyba że napisane jest inaczej:
Wszystkie cztery dzielniki częstotliwości (AUDIOF) mogą być równocześnie taktowane 64 KHz lub 15 KHz. Dzielniki częstotliwości 1 i 4 mogą być taktowane na przemian zegarem CPU (1,79 MHz jeżeli jest to NTSC, a gdy jest to PAL - 1,77 MHz). Dzielniki częstotliwości 2 i 4 mogą być taktowane na przemian wyjściem dzielników 1 i 3. Dzięki temu, układ Pokey umożliwia łączenie ze sobą kanałów 8-bitowych, tak by uzyskany dźwięk miał dokładność 16-bitową. Kanały można skonfigurować na poniższe sposoby:
Każda operacja wejścia-wyjścia powoduje zmianę wartości rejestrów sterujących generatorami, dlatego podczas korzystania z układu Pokey do generowania dźwięku, po każdej takiej operacji powinno się go od nowa inicjować. Należy wprowadzić wartość 3 do rejestru $D20F oraz 0 do rejestru $D208.
Składają się na niego:
Przerwania mogą zostać włączone lub wyłączone programowo za pomocą rejestru IRQEN. Rejestr IRQSTAT zawiera status przerwań.
Sześcioklawiszowy rejestr aktualnie wciśniętych klawiszy (K0 K5), który przechowuje wartości od 00 do 3F. Znajdują się tutaj dwie wartości sterujące. Jedna z nich pełni rolę deszyfratora wszystkich 6 wartości. Druga wartość sterująca jest przeznaczona do dekodowania znaków specjalnych CTRL, SHIFT i BREAK.
Osiem portów do mierzenia czasu narastania wejścia. Każde wejście ma 8-bitowy licznik, odmierzający czas przy wyświetlaniu każdej kolejnej linii telewizyjnej. Każde wejście ma także tranzystor zrzutu, który można włączyć lub wyłączyć programowo.
POKEY oferuje trzy timery używające kanałów audio (resetujące się po ich każdym użyciu) oraz generator liczb losowych.
Rejestr | Zapis | Odczyt | ||
---|---|---|---|---|
Nazwa | Opis | Nazwa | Opis | |
$D200 | AUDF1 | częstotliwość kanału 1 | POT0 | potencjometr nr 0 |
$D201 | AUDC1 | generator kanału 1 | POT1 | potencjometr nr 1 |
$D202 | AUDF2 | częstotliwość kanału 2 | POT2 | potencjometr nr 2 |
$D203 | AUDC2 | generator kanału 2 | POT3 | potencjometr nr 3 |
$D204 | AUDF3 | częstotliwość kanału 3 | POT4 | potencjometr nr 4 |
$D205 | AUDC3 | generator kanału 3 | POT5 | potencjometr nr 5 |
$D206 | AUDF4 | częstotliwość kanału 4 | POT6 | potencjometr nr 6 |
$D207 | AUDC4 | generator kanału 4 | POT7 | potencjometr nr 7 |
$D208 | AUDCTL | kontrola nad kanałami audio | POTSTAT | odczyt wszystkich 8 linii portu potencjometrów |
$D209 | STIMER | uruchomienie timera | KBCODE | kod ostatnio wciśniętego klawisza |
$D20A | SKRES | reset statusu portu szeregowego | RANDOM | wartość generatora liczb losowych |
$D20B | POTGO | rozpocznij sekwencje skanowania portu | ||
$D20C | ||||
$D20D | SEROUT | rejestr wyjściowy portu szeregowego | SERIN | rejestr wejściowy portu szeregowego |
$D20E | IRQEN | aktywacja przerwań IRQ | IRQSTAT | status przerwań IRQ |
$D20F | SKCTL | kontrola nad portem szeregowym | SKSTAT | status portu szeregowego |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.