Jump to content

ПОКИ

ПОКИ в Atari 130XE

POKEY , аббревиатура от Pot Keyboard Integrated Circuit . [1] — это цифровой ввода-вывода, чип разработанный Дугом Нойбауэром из Atari, Inc. [2] для 8-битных компьютеров Atari . Впервые он был выпущен для Atari 400 и Atari 800 в 1979 году и включен во все более поздние модели и консоль Atari 5200 . POKEY сочетает в себе функции для чтения лепестковых контроллеров ( потенциометров ) и компьютерных клавиатур, а также генерации звука и источника псевдослучайных чисел . Он воспроизводит четыре голоса характерного прямоугольного звука, либо в виде чистых тонов, либо в виде измененных настроек искажения. [3] Atari Нойбауэр также разработал 8-битное приложение-убийцу Star Raiders , в котором используются функции POKEY.

Чипы POKEY использовались для аудио во многих аркадных видеоиграх 1980-х годов, включая Centipede , Missile Command , Asteroids Deluxe и Gauntlet . Некоторые аркадные системы Atari используют многоядерные версии с 2 или 4 POKEY в одном корпусе для большего количества аудиоканалов. Консоль Atari 7800 позволяет содержать игровой картридж с POKEY, обеспечивая лучший звук, чем звуковой чип системы. Это используют только две лицензионные игры: порты Ballblazer и Commando .

Чип LSI имеет 40 контактов и имеет обозначение C012294. [4] 2 февраля 1982 года USPTO выдало Atari патент США № 4 314 236 на «Устройство для создания множества звуковых звуковых эффектов». [5] В списке изобретателей указаны Стивен Т. Майер и Рональд Э. Милнер.

По номеру детали:

  • C012294 — используется на всех 8-битных компьютерах Atari , включая Atari XEGS и консоль Atari 5200 . Суффикс на чипе относится к производителю:
    • C012294B-01 — АМИ
    • C012294-03 — Сигнетика
    • C012294-19 — Национальный полупроводник
    • C012294-22 — ОТРЕЗКА
    • C012294-31 — ИМП
  • 137430-001 — номер детали, который иногда используется в игровых автоматах Atari для POKEY.
  • 137324-1221 — Четырехъядерный процессор POKEY, используемый в игровых автоматах Atari Major Havoc , I, Robot , Firefox и Return of the Jedi . [6]

Atari использовала для изготовления чипа несколько разных производителей, однако AMI производила большинство из них начиная с 1983 года. Ранние чипы производились по технологии 5 микрометров, позже она была уменьшена до 3 микрометров. Сообщается, что POKEY производства AMI имеют более высокую частоту отказов по сравнению с чипами других марок; Причины этого неясны, но предполагается, что это неисправность корпуса чипа или соединительных проводов. Сообщалось об ограниченном успехе в восстановлении нефункциональных POKEY путем нагревания их в духовке. Также существуют современные замены FPGA, такие как POKEYOne. [7]

Распиновка

[ редактировать ]
Распиновка Atari POKEY (C012294)
Имя контакта Номер(а) контакта Описание
А0 - А3 36, 35, 34, 33 Ввод адреса памяти
АКЛК 27 Последовательный тактовый выход
австралийский доллар 37 Аудиовыход
БКЛК 26 Двунаправленный тактовый ввод/вывод
CS0 30 Выбор чипа
CS1 31 Выбор чипа
D0 - D7 38, 39, 40, 2, 3, 4, 5, 6 Шина данных ввода-вывода
прерывание 29 Вывод запроса прерывания
К0 - К5 23, 22, 21, 20, 19, 18 Выход сканирования клавиатуры
КР1 - КР2 25, 16 Стробоскопический ввод строк клавиатуры
П0-П7 14, 15, 12, 13, 10, 11, 8, 9 Сканирование потенциометра (лопасть)
Ч/З 32 Чтение/запись управления вводом/выводом
SID 24 Последовательные входные данные
ДЕРН 28 Последовательные выходные данные
В куб.см. 17 Питание +5 Вольт
В сс 1 Земля
Ø2 7 Тактовый вход фазы 2

Регистры

[ редактировать ]

8-битные компьютеры Atari сопоставляют POKEY с шестнадцатеричной страницей $D2xx, а консоль Atari 5200 сопоставляет его с шестнадцатеричной страницей $E8xx.

POKEY предоставляет 29 регистров чтения/записи, управляющих звуком, вводом манипулятора, вводом с клавиатуры, последовательным вводом/выводом и прерываниями. Многие адреса регистров POKEY имеют двойное назначение, выполняя разные функции: регистр чтения и записи. Следовательно, ни один код не должен читать аппаратные регистры, ожидая получить ранее записанное значение.

Для некоторых регистров эта проблема решается с помощью «теневых» регистров операционной системы, реализованных в обычной оперативной памяти, которые отражают значения аппаратных регистров. Во время вертикального пробела операционная система копирует теневые регистры в ОЗУ для регистров записи в соответствующий аппаратный регистр и соответствующим образом обновляет теневые значения для регистров чтения с аппаратного обеспечения. Таким образом, записи в аппаратные регистры, имеющие соответствующие теневые регистры, будут перезаписаны значениями теневых регистров во время следующего вертикального пробела.

Считывание значений непосредственно с оборудования на неизвестном этапе цикла отображения может привести к противоречивым результатам (пример: считывание потенциометров). Теневые регистры операционной системы для регистров чтения обычно являются предпочтительным источником информации.

Некоторые аппаратные регистры записи не имеют соответствующих теневых регистров. Они могут быть безопасно записаны приложением без перезаписи значения во время вертикального пробела. Если приложению необходимо знать последнее значение, записанное в регистр, то приложение несет ответственность за реализацию собственного теневого значения, чтобы запомнить то, что оно записало.

Имя Описание Чтение/запись Шестнадцатеричный адрес Декабрьский адрес Теневое имя Теневой шестнадцатеричный адрес Тень Dec Адрес
АУДФ1 Частота аудиоканала 1 Писать 200 динаров 53760
ПОТ0 Потенциометр (лопасть) 0 Читать 200 динаров 53760 ПАДДЛ0 $0270 624
АУДК1 Управление аудиоканалом 1 Писать 201 динара 53761
ПОТ1 Потенциометр (лопасть) 1 Читать 201 динара 53761 ВЕСЛО1 $0271 625
АУДФ2 Частота аудиоканала 2 Писать $202 динара 53762
ПОТ2 Потенциометр (лопасть) 2 Читать $202 динара 53762 ПАДДЛ2 $0272 626
АУДК2 Управление аудиоканалом 2 Писать $203 динара 53763
ПОТ3 Потенциометр (лопасть) 3 Читать $203 динара 53763 ПАДДЛ3 $0273 627
АУДФ3 Частота аудиоканала 3 Писать $204 динара 53764
ПОТ4 Потенциометр (лопасть) 4 Читать $204 динара 53764 ПАДДЛ4 $0274 628
АУДК3 Управление аудиоканалом 3 Писать 205 динаров 53765
ПОТ5 Потенциометр (лопасть) 5 Читать 205 динаров 53765 ПАДДЛ5 $0275 629
АУДФ4 Частота аудиоканала 4 Писать 206 динаров 53766
ПОТ6 Потенциометр (лопасть) 6 Читать 206 динаров 53766 ПАДДЛ6 $0276 630
АУДК4 Управление аудиоканалом 4 Писать 207 долларов США 53767
ПОТ7 Потенциометр (лопасть) 7 Читать 207 долларов США 53767 ПАДДЛ7 $0277 631
АУДКТЛ Управление звуком Писать 208 динаров 53768
АЛЛПОТ Чтение состояния порта 8-строчного POT Читать 208 динаров 53768
ПОМЕШИВАТЬ Запустить таймеры Писать 209 динаров 53769
КБКОД Код клавиатуры Читать 209 динаров 53769 СН $02FC 764
SKREST Сброс серийного статуса (SKSTAT) Писать $D20A 53770
СЛУЧАЙНЫЙ Генератор случайных чисел Читать $D20A 53770
ПОТГО Начать последовательность сканирования POT Писать 20 миллиардов динаров 53771
СЕРУТ Вывод данных последовательного порта Писать 20 динаров 53773
ПРОХЛАДНЫЙ Ввод данных последовательного порта Читать 20 динаров 53773
РАСА Разрешение запроса на прерывание Писать 20 динаров 53774 ПОКМСК $10 16
ВПРОСТ Статус прерывания Читать 20 динаров 53774
СККТЛ Управление последовательным портом Писать 20 франков динаров 53775 ССККТЛ $0232 562
SKSTAT Статус последовательного порта Читать 20 франков динаров 53775

В приведенных ниже списках отдельных реестров применяются следующие условные обозначения:

Битовое значение Описание
0 Бит должен быть 0
1 Бит должен быть 1
? Бит может быть равен 0 или 1 и используется для определенной цели.
- Бит не используется или не следует ожидать, что он будет иметь определенное значение.
этикетка Обратитесь к более позднему объяснению назначения бита.

Pokey содержит программируемый генератор звука ; четыре аудиоканала с отдельными регуляторами частоты, шума и голоса.

Каждый канал имеет 8-битный делитель частоты и 8-битный регистр для выбора шума и громкости.

  • От AUDF1 до AUDF4 – регистр частоты (AUDio Frequency)
  • От AUDC1 до AUDC4 – регистр громкости и шума (AUDio Control)
  • AUDCTL – общий регистр, управляющий генераторами (AUDio ConTroL)

Звук POKEY своеобразен: при независимом использовании четырех каналов наблюдается заметная расстройка частей 12-тоновой равнотемперированной шкалы из-за недостаточной точности высоты тона. Каналы могут быть объединены в пары для более высокой точности; кроме того, различные формы искажений доступны , позволяющие добиться более плотного звука. Искажение в основном используется в музыке для басовых партий.

Один из звуковых движков, разработанных для семейства 8-битных систем Atari, назывался AMP (Advanced Music Processor). Этим воспользовался музыкант Гэри Гилбертсон .

Частота аудиоканала

[ редактировать ]

Регистры AUDF* управляют частотой или высотой соответствующих звуковых каналов. Значения AUDF* также управляют аппаратными таймерами POKEY, полезными для кода, который должен выполняться через точные интервалы чаще, чем вертикальный пробел.

Каждый регистр AUDF* представляет собой 8-битное значение, обеспечивающее таймер обратного отсчета или делитель импульсов тактового генератора POKEY. Таким образом, меньшие значения позволяют более часто выдавать импульсы из POKEY, а большие значения - менее часто. Значения от $0 hex /0 dec до $FF hex /255 dec увеличиваются с помощью POKEY в диапазоне от $1 hex /1 dec до $100 hex /256 dec . Фактическая высота звука зависит от выбранной тактовой частоты POKEY и значений искажений. См. «Управление аудиоканалом» и «Управление звуком» .

AUDF1 $D200 Запись

[ редактировать ]

Частота аудиоканала 1

AUDF2 $D202 Запись

[ редактировать ]

Частота аудиоканала 2

AUDF3 $D204 Запись

[ редактировать ]

Частота аудиоканала 3

AUDF4 $D206 Запись

[ редактировать ]

Частота аудиоканала 4

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
? ? ? ? ? ? ? ?

Управление аудиоканалом

[ редактировать ]

Регистры управления аудиоканалами обеспечивают управление громкостью и искажениями отдельных звуковых каналов. Звук также может генерироваться независимо от тактового сигнала POKEY путем прямого управления громкостью звукового канала, что полезно для воспроизведения цифровых сэмплов.

AUDC1 $D201 Запись

[ редактировать ]

Управление аудиоканалом 1

AUDC2 $D203 Запись

[ редактировать ]

Управление аудиоканалом 2

AUDC3 $D205 Запись

[ редактировать ]

Управление аудиоканалом 3

AUDC4 $D207 Запись

[ редактировать ]

Управление аудиоканалом 4

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Шум 2 Шум 1 Шум 0 Сила громкости Том 3 Том 2 Том 1 Том 0

Биты 0-3: Контроль уровня громкости от 0 до F.

Бит 4: Принудительный вывод только громкости. Когда этот бит установлен, канал игнорирует таймер AUDF, элементы управления шумом/искажением и фильтр верхних частот. Звук воспроизводится только при установке битов громкости 0:3. Эта функция использовалась для создания цифрового звука посредством импульсно-кодовой модуляции .

Биты 5-7: настройки сдвигового регистра для шумов/искажений. Значения битов описаны ниже:

Уровень шума Биты Значение Описание
0 0 0 $00 5-битные, затем 17-битные полиномы
0 0 1 $20 только 5-битное поли
0 1 0 $40 5-битные, затем 4-битные полисы
0 1 1 $60 только 5-битное поли
1 0 0 $80 только 17-битное поли
1 0 1 $А0 нет поли (чистый тон)
1 1 0 $C0 только 4-битное поли
1 1 1 $E0 нет поли (чистый тон)

Генерация случайных шумов осуществляется путем чтения 8 бит сверху 17-битного сдвигового регистра. Эти регистры управляются частотой 1,79 МГц для NTSC или 1,77 МГц для PAL. Его выходы могут использоваться независимо по скорости делителя каждого аудиоканала.

AUDCTL $D208 Запись

[ редактировать ]

Управление звуком позволяет выбирать вход тактового сигнала, используемый для аудиоканалов, управлять функцией фильтра верхних частот, объединять два канала вместе, обеспечивая точность частоты 16 бит, выбирать высокочастотный тактовый сигнал для определенных каналов и контролировать «случайность». полиномиального входа.

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
17 против 9 Поли CH1 1,79 СН3 1,79 СН2 + 1 СН4 + 3 ФИ1+3 ФИ2+4 64 против 15 кГц

«1» означает «включено», если не указано иное:

Бит 0
$01: (15 кГц), выбор скорости делителя частоты «0» — 64 кГц, «1» — 15 кГц.
Бит 1
$02: (FI2 + 4), фильтр верхних частот для канала 2, рассчитанный по частоте канала 4.
Бит 2
$04: (FI1 + 3), фильтр верхних частот для канала 1, рассчитанный по частоте канала 3.
Бит 3
$08: (CH4+3), подключение делителей 4+3 для получения точности 16 бит.
Бит 4
$10: (CH2+1), подключение делителей 2+1 для получения точности 16 бит.
Бит 5
$20: (CH3 1,79), установите частоту канала 3 «0» — 64 кГц. «1» — это 1,79 МГц NTSC или 1,77 МГц PAL.
Бит 6
$40: (CH1 1,79), установите частоту канала 1 «0» — 64 кГц. «1» — это 1,79 МГц NTSC или 1,77 МГц PAL.
Бит 7
$80: (POLY 9), переключатель сдвига регистра «0» — 17 бит, «1» — 9 бит.

Все делители частоты (AUDF) могут управляться одновременно с частотой 64 кГц или 15 кГц.

Делители частоты 1 и 3 могут поочередно управляться тактовой частотой процессора (1,79 МГц NTSC, 1,77 МГц PAL). Делители частоты 2 и 4 могут поочередно управляться выходами делителей 1 и 3. Таким образом, POKEY позволяет подключать 8-битные каналы для создания звука с 16-битной точностью.

Возможные конфигурации каналов:

  • четыре 8-битных канала
  • два 8-битных канала и один 16-битный канал
  • два 16-битных канала

Потенциометры

[ редактировать ]

POKEY имеет восемь портов аналого-цифрового преобразователя, которые чаще всего используются для потенциометров, также известных как лопастные контроллеры. Аналоговые входы также используются для контроллера Touch Tablet и 12-кнопочных контроллеров клавиатуры для видеоигр. Каждый вход имеет транзистор, который можно включать и выключать с помощью программного обеспечения. Таймеры также можно использовать для поддержки светового пера , подключив фотодиод к капельному транзистору, который фиксирует таймер, когда электронный луч в телевизоре проходит мимо пера. Вертикальное положение пера нужно было читать отдельно.

POT0 $D200 Чтение

[ редактировать ]

ТЕНЬ: PADDL0 $0270

Лопастной контроллер 0, вход

POT1 $D201 Чтение

[ редактировать ]

ТЕНЬ: PADDL1 $0271

Лопастной контроллер 1 вход

POT2 $D202 Чтение

[ редактировать ]

ТЕНЬ: PADDL2 $0272

Лопастной контроллер 2 входа

POT3 $D203 Чтение

[ редактировать ]

ТЕНЬ: PADDL3 $0273

Контроллер весла, 3 входа

POT4 $D204 Чтение

[ редактировать ]

ТЕНЬ: PADDL4 $02704

Контроллер весла, 4 входа

POT5 $D205 Чтение

[ редактировать ]

ТЕНЬ: PADDL5 $0275

Контроллер весла, 5 входов

POT6 $D206 Чтение

[ редактировать ]

ТЕНЬ: PADDL6 $0276

Контроллер весла, 6 входов

POT7 $D207 Чтение

[ редактировать ]

ТЕНЬ: PADDL7 $0277

Контроллер весла, 7 входов

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
? ? ? ? ? ? ? ?

Каждый вход имеет 8-битный таймер, отсчитывающий время отображения каждой ТВ-линии. Это имело дополнительное преимущество, заключающееся в том, что считываемое значение можно было вводить непосредственно в экранные координаты объектов, приводимых в движение лопастями. Значения Atari Paddle варьируются от 0 до 228, хотя максимально возможное значение составляет 244. Контроллер Paddle считывает 0 при повороте в максимальное положение по часовой стрелке и возвращает возрастающие значения при повороте против часовой стрелки, заканчивая максимальным значением.

Процесс чтения Paddle начинается с записи в POTGO, которая сбрасывает значения POT* в 0, значение ALLPOT в $FF и разряжает конденсаторы чтения потенциометра. Значения POT* увеличиваются по мере их сканирования, пока не достигнут значения сопротивления потенциометра. Когда чтение Paddle завершено, соответствующий бит в ALLPOT сбрасывается в 0.

Процесс сканирования Paddle может занять большую часть видеокадра. Операционная система Atari автоматически обеспечивает чтение Paddle. На этапе 2 вертикального бланка считываются электроды и начинается сканирование электродов. Значения Paddle копируются в теневые регистры. (Обратите внимание, что триггеры Paddle на самом деле представляют собой входные данные направления джойстика, считываемые из PIA.)

Более быстрый режим сканирования Paddles возможен путем установки бита в SKCTL . Последовательность считывания занимает всего пару строк сканирования, но значение менее точное.

ALLPOT $D208 Чтение

[ редактировать ]

Статус сканирования потенциометра

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Весло 7 Весло 6 Весло 5 Весло 4 Весло 3 Весло 2 Весло 1 Весло 0

Каждый бит соответствует одному входу потенциометра (регистры POT*). Когда сканирование ракетки начинается путем записи в POTGO, каждый бит ракетки в ALLPOT устанавливается в 1. Когда сканирование ракетки завершается, соответствующий бит в ALLPOT сбрасывается в 0, указывая, что значение в соответствующем регистре POT* теперь доступно для чтения.

POTGO $D20B Запись

[ редактировать ]

Запустить сканирование потенциометра

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
- - - - - - - -

Запись в POTGO инициирует процесс сканирования потенциометра (лопатки). Это сбрасывает значения POT* на 0, значение ALLPOT на $FF и разряжает конденсаторы считывания потенциометра. По завершении каждого сканирования потенциометра бит, соответствующий потенциометру в ALLPOT, очищается, указывая, что значение соответствующего регистра POT* доступно для чтения.

Последовательный порт ввода-вывода

[ редактировать ]

Содержит:

  • последовательная входная линия
  • линия последовательного вывода
  • выходная линия последовательного тактового сигнала
  • двусторонняя последовательная линия передачи данных тактового сигнала
  • registers SKREST, SEROUT, SERIN, SKCTL, SKSTAT

POKEY — это разновидность UART . Обычно один из дублированных аудиоканалов используется в качестве генератора скорости передачи данных. Стандартная скорость передачи данных составляет 19,2 кбит/с, максимально возможная скорость передачи данных — 127 кбит/с. Байт, помещенный в регистр SEROUT, автоматически отправляется по последовательной шине. Кадр данных содержит 10 бит: 1 стартовый бит, 8 бит данных, 1 стоповый бит. Уровни напряжения составляют 0 В (логический 0) и +4 В (логическая 1). Последовательный порт Atari можно соединить с портом RS-232 с помощью простого преобразователя напряжения.

Каждая операция ввода/вывода приводит к изменению значения внутренних регистров сдвига POKEY, поэтому при программировании для POKEY необходимо повторно инициализировать некоторые значения после выполнения каждой операции.

SKREST $D20A Write

[ редактировать ]

Сброс состояния последовательного порта (SKSTAT).

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
- - - - - - - -

Запись в этот регистр сбрасывает биты с 5 по 7 SKSTAT , которые фиксируются в 1. Защелки отмечают переполнение клавиатуры, переполнение ввода последовательных данных и ошибку кадра ввода последовательных данных.

SEROUT $D20D Запись

[ редактировать ]

Байт вывода данных последовательного порта.

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
- - - - - - - -

Это параллельный регистр хранения восьмибитного (одного байта) значения, которое будет передаваться в последовательный сдвиговый регистр для вывода по одному биту за раз. Когда порт готов принимать данные для вывода, прерывание последовательного вывода данных сообщает операционной системе, что она может записать байт в этот выходной регистр.

СЕРИН $D20D Читать

[ редактировать ]

Входной байт данных последовательного порта.

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
- - - - - - - -

Как и SEROUT, также параллельный регистр временного хранения. Он содержит восьмибитное (один байт) значение, собранное последовательным сдвиговым регистром, считывающим входные данные по одному биту за раз. Когда считывается полный байт, происходит прерывание ввода последовательных данных, информирующее операционную систему о том, что она может прочитать байт из этого регистра.

SKCTL $D20F Запись

[ редактировать ]

Управление последовательным портом

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Серийный перерыв Последовательный режим2 Последовательный режим1 Последовательный режим0 Серийный двухцветный Быстрое сканирование банка Включить сканирование базы знаний Отказ от КБ

Бит 0: включить сканирование с устранением дребезга, которое предназначено для устранения шума или джиттера от механических переключателей. Значение 1 позволяет POKEY использовать внутренний регистр сравнения при сканировании ключей. Клавиша должна быть обнаружена в двух одновременных сканированиях, прежде чем она будет идентифицирована как нажатая, и она должна быть видна отпущенной, чтобы два последовательных сканирования считались отпущенными. Это должно быть включено, чтобы обеспечить нормальную работу с клавиатурой в операционной системе.

Бит 1: установите в 1, чтобы включить сканирование клавиатуры. Это должно быть включено, чтобы обеспечить нормальную работу с клавиатурой в операционной системе.

Бит 2: установите в 1, чтобы включить быстрое, но менее точное сканирование потенциометра. Быстрое сканирование потенциометра увеличивает счетчик в каждом цикле и возвращает полезный результат в течение двух строк сканирования. Операционная система использует медленное сканирование горшков, которое увеличивает счетчик каждые 114 циклов (строка сканирования), занимая кадр (1/60 секунды) для получения результата. ОС считывает значения потенциометра во время вертикального пустого прерывания (VBI) и копирует результат в теневые регистры потенциометра в ОЗУ. Затем он сбрасывает POTGO для следующего чтения во время следующего VBI.

Бит 3: включить двухтональный режим последовательного порта. Когда эта функция включена, биты 1 и 0, выводимые на шину SIO, заменяются тонами, установленными таймерами 1 и 2. Обычно это используется для записи аналоговых тонов, представляющих цифровые данные, на кассету.

Биты 4–6: Управление синхронизацией для работы последовательного порта. Значения битов описаны ниже:

Управление портом [6:4] Биты Значение Входные часы Выходная тактовая частота Двунаправленные часы
0 0 0 $00 Внешний Внешний Вход
0 0 1 $10 Каналы 3+4 (асинхронные) Внешний Вход
0 1 0 $20 Канал 4 Канал 4 Выходной канал 4
0 1 1 $30 Канал 3+4 (асинхронный) Канал 4 (асинхронный) Вход
1 0 0 $40 Внешний Канал 4 Вход
1 0 1 $50 Канал 3+4 (асинхронный) Канал 4 (асинхронный) Вход
1 1 0 $60 Канал 4 Канал 2 Выходной канал 4
1 1 1 $70 Канал 3+4 (асинхронный) Канал 2 Вход

Бит 7: принудительно выдает на выходе известный 0, чтобы таймер 2 мог сбросить таймер 1 в режиме двухтонального последовательного вывода.

SKSTAT $D20F Чтение

[ редактировать ]

Статус последовательного порта

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Серийный номер в ошибке кадра Сериал в застое переполнение КБ Чтение данных готово Клавиша Shift Последняя клавиша все еще нажата Последовательный вход занят -

KBCODE $D209 Чтение

[ редактировать ]

ТЕНЬ: CH $02FC

Код клавиатуры

Восемь прерываний IRQ

[ редактировать ]
ПЕРЕРЫВ
Break (прерывание клавишей BREAK)
К
Клавиатура (прерывание клавиатуры)
СЭР
если последовательный вход готов (чтение прерывания с последовательного канала)
ОДН
если необходимы выходные данные (прерывание записи по последовательному каналу)
XD
if eXmitend Data (прерывание окончания последовательной передачи)
Т1
Таймер 1, прерывание таймера 1
Т2
Таймер 2, прерывание таймера 2
Т4
Таймер 4, прерывание таймера 4

Прерывания можно включать и выключать программно с помощью регистра IRQEN. Регистр IRQSTAT содержит статус прерываний.

Клавиатура

[ редактировать ]

Шесть ключевых регистров фактически нажатых клавиш (K0 K5), которые содержат значения от 00 до 3F. Содержит 2 контрольных значения. Один из них действует как декодер всех 6 значений. Второе управляющее значение используется для декодирования значений специальных клавиш — CTRL, SHIFT и BREAK.

  1. ^ «I. Теория действия». Руководство по выездному обслуживанию домашнего компьютера Atari — 400/800 . Atari, Inc., стр. 1–11.
  2. ^ Хейг, Джеймс (1 июня 2002 г.). «Интервью с Дугом Нойбауэром» . Безмятежные дни . Проверено 14 января 2008 г.
  3. ^ «Глава 7: Звук». Де Ре Атари . Атари, Инк., 1982 г.
  4. ^ Майкл Каррент, «Что такое чипы SALLY, ANTIC, CTIA/GTIA, POKEY и FREDDIE?» , 8-битные компьютеры Atari: часто задаваемые вопросы
  5. ^ Atari, Inc. (24 января 1979 г.). «Устройство для создания множества аудиозвуковых эффектов» . Патент США . Проверено 14 января 2008 г.
  6. ^ «Различия Atari Pokey» . 16 ноября 2016 г.
  7. ^ https://forums.arcade-museum.com/threads/atari-pokey-chip-replacements-and-possible-fix.464086/page-4
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 750342f870829de25f6f414694483732__1722199080
URL1:https://arc.ask3.ru/arc/aa/75/32/750342f870829de25f6f414694483732.html
Заголовок, (Title) документа по адресу, URL1:
POKEY - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)