Ricoh 2A03 y 2A07
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]- 2a03.org The NES music archive (en)
- Nerdtracker II (en)
- FamiTracker (en)
- 2A03 technical reference
- [1] NES Sound Hardware (en)