Dentro de esta consola encontramos el HuC6280, un chip fabricado por Hudson Soft que alberga dos componentes. Uno de ellos es la CPU, que puede operar a dos velocidades: ~1.79 MHz y ~7.16 MHz.

El chip HuC6280 en la placa base del PC Engine.
El HuC6280 no es un componente de catálogo, como el Z80, sino una CPU propia diseñada por NEC. Su especificación parece replicar en gran medida el comportamiento de los famosos MOS 6502 y WDC 65C02. Dicho esto, ¿qué significa todo esto para el programador?
Antes de empezar, ya he cubierto el procesador MOS 6502 en el artículo de la NES y también he descrito una variante de 16 bits realizada por WDC y Ricoh en la SNES, en caso de que quieras echarles un vistazo primero.
El 65C02 es otra versión modificada del MOS 6502 realizada por Western Design Center, mucho más eficiente gracias a su enfoque de fabricación CMOS. Desde el lado del software, el 65C02 añade un par de nuevas instrucciones y modifica el comportamiento de algunas existentes .
Podríamos hablar mucho más sobre el 65C02, pero creo que es mejor centrarse en las características añadidas por Hudson (que complementan al 65C02), porque son críticas para operar eficientemente esta consola. En comparación con el 65C02, el HuC6280 incorpora :
- Más opcodes, algunos dirigidos a los componentes que envuelven la CPU.
- Un puerto de E/S de 8 bits utilizado para interconectar componentes externos.
- Un controlador de interrupciones para recibir interrupciones de otros dispositivos.
- Un temporizador. Funciona mediante una cuenta atrás a partir de un valor especificado y, cuando termina, envía una interrupción a la CPU.
Finalmente, hay 8 KB de RAM disponibles para fines generales.
Acceso a memoria
Un aspecto que no he mencionado todavía es que NEC también añadió una Unidad de Gestión de Memoria (MMU) junto a la CPU, permitiéndole manejar direcciones de 21 bits (recuerda que el 6502 original sólo tiene direcciones de 16 bits) . Por lo tanto, la cantidad de memoria a la que se puede acceder pasa de 64 KB a 2 MB.
Esta MMU es muy diferente de cualquier MMU actual; yo diría que está más cerca de un mapeador. Dicho esto, la MMU del PC Engine se compone de ocho registros de 8 bits (denominados Mapping Register o 'MPR') que se combinan con las 16 líneas de dirección de la CPU para formar un bus de direcciones de 21 bits.

Enfoque de direccionamiento de la MMU.
Esto funciona de la siguiente manera:
- La CPU puede leer y/o escribir en cualquier MPR utilizando las instrucciones especiales
TAMyTMA, respectivamente. - Cuando se accede a la memoria física, la MMU reserva las líneas de dirección A13-A15 de la CPU para seleccionar uno de los ocho MPR.
- La dirección final se obtiene combinando las líneas de la CPU (situadas en A0-A12) con las líneas de la MMU (situadas en A13-A20, donde la salida es el valor de 8 bits del MPR seleccionado), dando como resultado una dirección de 21 bits.
Por ello, esta MMU agrupa la memoria física en páginas de 8 KB (13 líneas de CPU = páginas de 8 KB), que es la cantidad de memoria a la que puede acceder la CPU sin intercambiar el MPR o alterar su valor.
De todos modos, no te agobies si te parece demasiado complejo (es sólo un modus operandi poco convencional que puede resultarle interesante a más de uno).