
POKEY stereo
Krótko:
bez schematu i płytki drukowanej
elementy są nalutowywane na istniejące oraz łączone
przewodami
Przeróbka umożliwia uzyskanie dźwięku stereofonicznego na Atari XL/XE.
Opis:
Autorem przeróbki jest Chuck Steinman.
Opisana tu przeróbka została
własnoręcznie wykonana przez autora tego opracowania. Działa
prawidłowo (w wersji bez potencjometrów).
Przeróbka zwiększa możliwości 8-bitowego Atari dodając drugi kanał dźwiękowy (za sprawą drugiego układu POKEY), co w rezultacie pozwala na wydawanie dźwięku stereofonicznego. Do tego jednak wymagane jest specjalne oprogramowanie (jest obecnie trochę programów grających w stereo - głównie dem i odtwarzaczy muzyki). Dotychczasowe (monoficzne) programy będą generowały dźwięk tylko na lewym kanale. Na wyjściu stereo nie będzie także słychać kliku klawiatury, ponieważ nie pochodzi on z POKEYa. Jednak w dalszym ciągu będzie można korzystać ze starego wyjścia monofonicznego.
Potrzebne elementy:
Czynności:
Zrobione! Aby sprawdzić jak to brzmi, można uruchomić np. OUTRO z dema NUMEN lub samo demo (jeśli mamy 320KB RAM). Jeśli tego nie mamy, można zaopatrzyć się w program MegaPlayer i trochę plików muzycznych do niego (ale uwaga - nie wszystkie kompozycje są stereofoniczne).

Fot. Drugi układ POKEY nalutowany na pierwotny w
urządzeniu XEbox.
Nie widać tego wyraźnie, ale część nóżek jest przylutowana
do dolnych,
natomiast pozostałe są odgięte na zewnątrz.
Rejestry układu POKEY:
To krótka notka dla programistów, aby wiedzieli jak wygenerować dźwięk stereo na drugim układzie POKEY. Wszystkie rejestry z oryginalnego POKEYa są w nowym POKEYu pod adresem o 16 bajtów wyższym. Dodatkowe możliwości drugiego układu POKEY takie jak skanowanie klawiatury, UART czy przetworniki A/C mogą być użyte do innych zadań, gdyż nie są wykorzystane.
| adres | nazwa | R/W | funkcja |
| $D200 | AUDF1 | W | częstotliwość kanału #1 (podział F/n) |
| $D201 | AUDC1 | W | sterowanie kanałem #1 (siła/zniekształcenia) |
| $D202 | AUDF2 | W | częstotliwość kanału #2 (podział F/n) |
| $D203 | AUDC2 | W | sterowanie kanałem #2 (siła/zniekształcenia) |
| $D204 | AUDF3 | W | częstotliwość kanału #3 (podział F/n) |
| $D205 | AUDC3 | W | sterowanie kanałem #3 (siła/zniekształcenia) |
| $D206 | AUDF4 | W | częstotliwość kanału #4 (podział F/n) |
| $D207 | AUDC4 | W | sterowanie kanałem #4 (siła/zniekształcenia) |
| $D208 | AUDCT1 | W | sterowanie dźwiękiem kanałów 1-4 |
| $D20F | SKCTL1 | W | sterowanie łączem szeregowym |
| $D210 | AUDF5 | W | częstotliwość kanału #5 (podział F/n) |
| $D211 | AUDC5 | W | sterowanie kanałem #5 (siła/zniekształcenia) |
| $D212 | AUDF6 | W | częstotliwość kanału #6 (podział F/n) |
| $D213 | AUDC6 | W | sterowanie kanałem #6 (siła/zniekształcenia) |
| $D214 | AUDF7 | W | częstotliwość kanału #7 (podział F/n) |
| $D215 | AUDC7 | W | sterowanie kanałem #7 (siła/zniekształcenia) |
| $D216 | AUDF8 | W | częstotliwość kanału #8 (podział F/n) |
| $D217 | AUDC8 | W | sterowanie kanałem #8 (siła/zniekształcenia) |
| $D218 | AUDCT2 | W | sterowanie dźwiękiem kanałów 5-8 |
| $D21F | SKCTL2 | W | sterowanie łączem szeregowym |
Rejestr częstotliwości dla każdego kanału audio jest wartością 8-bitową, która jest podzielnikiem częstotliwości pierwotnej.
Rejestr sterujący każdego kanału audio steruje siłą głosu i zniekształceniami dźwięku każdego kanału. Oto jego bity:
76543210
----vvvv Bity sterowania wzmocnieniem.Przedział wartości: 0000 (cisza) do 1111 (najgłośniej)
---s---- Bit wyciszenia. Bezpośrednio steruje wyjściem:
0 - wyjście dźwięku wyłączone (cisza)
1 - wyjście dźwięku włączone
ddd----- Kod zniekształcenia:
000 - pseudoszum 5-bit/17-bit
001 - pseudoszum 5-bit
010 - pseudoszum 5-bit/4-bit
011 - pseudoszum 5-bit
100 - pseudoszum 17-bit
101 - czysty ton
110 - pseudoszum 4-bit
111 - czysty ton
Rejestr AUDCTn steruje wszystkimi kanałami. Ma wiele funkcji:
bit-7 Przetwarza sygnał 17-bit w licznik 9-bit
bit-6 Ustawia zegar kanału 1 na 1.79 MHz (taktowanie CPU)
bit-5 Ustawia zegar kanału 3 na 1.79 MHz (taktowanie CPU)
Bit-4 Łączy kanał 1 i 2 w rozdzielczość 16 bitów
Bit-3 Łączy kanał 3 i 4 w rozdzielczość 16 bitów
Bit-2 Włącza filtr w kanał 1, taktowany kanałem 2
Bit-1 Włącza filtr w kanał 2, taktowany kanałem 4
Bit-0 Przełącza zegar podstawowy z 64kHz na 15kHz
Rejestr SKCTLn steruje różnymi funkcjami układu POKEY i musi być jedynie zainicjowany wartością 3 aby wszystkie 4 kanału POKEYa były aktywne.
Wykrywanie modyfikacji stereo:
Aby wykryć, czy przeróbka jest zainstalowana, należy sprawdzić 8 dodatkowych rejestrów potencjometrów, które będą miały wartość 0 (zero). Dodatkowo, rejestr kodu klawisza także powinien wskazywać zero. Jeżeli porównamy kod klawisza z adresu $D209 i z $D219, i okaże się, że ten z $D219 jest zerowy, znaczy to, że przeróbka jest zainstalowana. Dla bezpieczeństwa można zamaskować przerwania (IRQ) podczas testu.
x e b o x . a t a r i . o r g