Ricoh 2A03

Микросхема RP2A03E

Ricoh 2A03 или RP2A03 — микросхема 8-разрядного микропроцессора, производившаяся компанией Ricoh для применения в качестве основного процессора игровой консоли Nintendo Family Computer и Nintendo Entertainment System. Она содержит собственно ядро процессора, частично совместимое с 6502, а также 22 отображаемых на память порта ввода-вывода, управляющих присутствующими в составе микросхемы программируемым генератором звука, простейшим контроллером прямого доступа к памяти (ПДП), таймером с возможностью генерации прерываний, и портом джойстиков.

Устройство

[править | править код]

Процессорное ядро микросхемы представляет собой практически полный аналог NMOS-версии процессора 6502. Главным и единственным отличием является отсутствие поддержки десятичного режима. Схема двоично-десятичной коррекции присутствует, но не функционирует благодаря отключению нескольких транзисторов в схеме, в результате чего все арифметические операции проводятся в обычном режиме, даже при установленном флаге D.

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

  • Пять независимых каналов, среди которых:
    • Два равноценных канала, генерирующие прямоугольные импульсы. Имеют возможность изменения частоты, громкости и скважности импульсов
    • Один канал, генерирующий треугольные импульсы (обычно используется в музыке NES как басовый инструмент). Не имеет регулировки громкости
    • Один канал, генерирующий белый шум
    • 7-разрядный ЦАП, данные для которого кодируются методом ДИКМ и могут передаваться контроллером ПДП. За один отсчёт читается один бит данных, увеличивающий или уменьшающий значение 6-разрядного счётчика, выходы которого подключены к старшим разрядам ЦАП (младший разряд не изменяется)

[1]

Возможности синтеза звука микросхемы 2A03 стали популярны благодаря большому количеству хорошей музыки в популярных играх для NES. С развитием возможностей бытовых компьютеров, позволяющих реализовать программную эмуляцию 2A03, энтузиастами был создан ряд средств, позволяющих создавать любительскую музыку для 2A03. Среди этих средств драйвер для системы программирования звука MCK/MML (Music Meta Language), а также редакторы-трекеры Nerdtracker II (MS-DOS) и Famitracker (Windows).

Микросхема RP2A07

Европейские и Австралийские версии NES использовали микросхемы Ricoh 2A07 или RP2A07, которые полностью аналогичны 2A03, за исключением делителя тактовой частоты (это связано с различными телевизионными стандартами в разных странах).