Ir al contenido

Ricoh 2A03 y 2A07

De Wikipedia, la enciclopedia libre
(Redirigido desde �RP2A03�)
Ricoh 2A03 y 2A07
Informaci�n
Tipo modelo de circuito integrado
Desarrollador MOS Technology
Fabricante Ricoh
Datos t�cnicos
Frecuencia de reloj de CPU 1,79 MHz (NTSC)
1,66 MHz (PAL)
Conjunto de instrucciones MOS 6502

El Ricoh 2A03 o RP2A03 es una CPU de 8 bits fabricada por Ricoh, famosa por ser la escogida para equipar la videoconsola Nintendo Family Computer / Nintendo Entertainment System. Contiene un clon del MOS Technology 6502, con el modo decimal deshabilitado para eludir las patentes relativas a dicho modo[1]​. Se diferencia de 6502 est�ndar en que s�lo puede operar con enteros, se le a�aden 22 registros mapeados en memoria que controlan generadores de sonido programables, una rudimentaria DMA y le�an los mandos de juegos. Los equipos vendidos en zonas PAL (Europa y Australia, principalmente) usan las CPU Ricoh 2A07 o RP2A07, id�nticos al 2A03, excepto porque usan un divisor diferente del reloj y una tabla de frecuencias de la CPU diferentes. En todos los casos vienen en un encapsulado DIP de 40 pines.

La CPU en NTSC funciona a una frecuencia de reloj de 1,79 MHz, mientras que su variante PAL funciona m�s lento, a una frecuencia de 1,66 MHz, con unos "ajustes" en el sonido para que no suene a una velocidad inferior que la versi�n americana y japonesa.

Historia

[editar]

Cuando el ingeniero Masayuki Uemura estaba dise�ando la videoconsola Famicom (como se llamaba a la NES en Jap�n) para Nintendo a principios de los a�os 80, acab� por decidirse por una CPU 6502 como procesador para este nuevo soporte.

Contactaron con muchos fabricantes de semiconductores, pero la mayor�a rechazaron sus ofertas, ya que buscaban que alguien se fabricase realmente muy barato. Nintendo buscaba precios por los suelos, aunque a cambio promet�a compras enormes. Finalmente, la empresa Ricoh, sin mucho trabajo en su divisi�n de semiconductores, acept� la propuesta ofrecida por Nintendo, que no iba a pagar m�s de 2.000 yens por chip (lo que a Ricoh le pareci� absurdamente bajo), pero promet�a comprar tres millones de CPUs en dos a�os. Adem�s, para que a Ricoh le fuese m�s rentable, hicieron ciertas restricciones al 6502 y a�adieron otras cosas necesarias para el dise�o final de la consola.

Aunque en Nintendo se preguntaron qu� iban a hacer con tanto chip si la Famicom no ten�a �xito, acab� siendo la videoconsola m�s vendida a lo largo de los a�os 80 y hasta mediados de los a�os 90.

La m�quina arcade Unisystem VS (que puso en los salones de recreativas a Super Mario Bros y otras joyas de Nintendo), utiliza tambi�n la Ricoh 2A03 como CPU.

Generador de sonido del 2A03 (PSG)

[editar]

El 2A03 posee un generador de sonido integrado que tiene 5 voces. Éstas son:

  • 2 canales de pulsos ajustables de onda cuadrada
  • 1 canal de onda triangular (usado generalmente para las notas graves y tambores)
  • 1 generador de ruido blanco (también se puede configurar para obtener ruido periódico, es decir, ruido tonal o en bucle)
  • 1 canal de reproducción de muestras de sonido basada en Modulación Delta (DMC) de 1 bit (también puede reproducir PCM de 7 bits sin comprimir activando la reproducción con el registro DMC_RAW)

El ciclo de las ondas de pulso se puede ajustar a valores de 12,5%, 25%, 50% y 75%.

Registros de memoria del 2A03

[editar]

Al núcleo MOS 6502 se le agregan 22 registros de memoria o "mapeadores" adicionales que se usan para el generador de sonido, las muestras de sonido DMC, la lectura de los controles y la rudimentaria DMA on-die.

$4000 SQ1_VOL Ajuste de ciclo y volumen para el canal de pulso 1
$4001 SQ1_SWEEP Registro del control de barrido para el canal de pulso 1
$4002 SQ1_LO Contador de byte bajo para el periodo del canal de pulso 1
$4003 SQ1_HI Contador de byte alto para el periodo y longitud para el canal de pulso 1
$4004 SQ2_VOL Ajuste de ciclo y volumen para el canal de pulso 2
$4005 SQ2_SWEEP Registro del control de barrido para el canal de pulso 2
$4006 SQ2_LO Contador de byte bajo para el periodo del canal de pulso 2
$4007 SQ2_HI Contador de byte alto para el periodo y longitud para el canal de pulso 2
$4008 TRI_LINEAR Contador lineal para el canal de onda triangular
$4009 N/U Sin usar, pero se puede acceder a él en bucles de limpieza de memoria
$400A TRI_LO Contador de byte bajo para el canal de onda triangular
$400B TRI_HI Contador de byte alto para el periodo y longitud del canal de onda triangular
$400C NOISE_VOL Control de volumen para el generador de ruido blanco
$400D N/U Sin usar, pero se puede acceder a él en bucles de limpieza de memoria
$400E NOISE_LO Forma del periodo y longitud para el generador de ruido blanco
$400F NOISE_HI Contador de longitud para el generador de ruido blanco
$4010 DMC_FREQ Modo para la reproducción y frecuencia de las muestras de sonido DMC
$4011 DMC_RAW Reproducción de PCM de 7 bits sin comprimir
$4012 DMC_START Inicio de la forma de onda de las muestras de sonido DMC, es la dirección: $C000 + $40*$xx
$4013 DMC_LEN Longitud de la forma de onda de las muestras de sonido es de $10 * $ xx + 1 bytes (128 * $ xx + 8 muestras)
$4014 OAM_DMA Escritura de copias en $xx de 256 bytes de lectura desde $xx00-$xxFF y escribir a OAM_DATA ($2004)
$4015 SND_CHN Usado para habilitar los canales de sonido y para el estado de los mismos
$4016 JOY1 Datos del mando 1
$4017 JOY2 Datos del mando 2 y controlador del contador de cuadros
$4018-$401F Funcionalidad de la APU y I/O están normalmente desactivadas

(N/U= No usado)

Fuente

[editar]

Referencias

[editar]

Enlaces externos

[editar]