Capacidades de la Commodore 64

Lo que los tres chips personalizados del C64 podían hacer, y lo que los programadores lograron con ellos

Capacidades del Commodore 64: hardware adelantado a su tiempo

Tres chips especializados. Un precio al que no tenían ningún derecho a existir. Y lo que los programadores hicieron con ellos.

En 1982, la mayoría de los ordenadores domésticos se construían en torno a un único chip de propósito general y los circuitos más básicos que el fabricante podía permitirse. La Commodore 64, con un precio de lanzamiento de 595 dólares que pronto cayó por debajo de los 200, adoptó un enfoque distinto. Tres chips especializados formaban el núcleo de la máquina: el procesador MOS 6510, el chip gráfico VIC-II y el chip de sonido SID. Juntos dotaron al C64 de unas capacidades que la competencia tardó años en igualar.

El 6510 funcionaba a poco menos de 1 MHz, una cifra que hoy parece modesta pero que era competitiva en 1982. Más importante que la velocidad de reloj era lo que lo acompañaba. El VIC-II gestionaba los gráficos con total independencia de la CPU, liberando al procesador para ejecutar la lógica del juego mientras los sprites se movían por la pantalla sin ninguna intervención del procesador. El chip SID producía simultáneamente tres voces sintetizadas independientes. Ningún ordenador doméstico a un precio comparable se acercaba siquiera a esta combinación.

The Commodore 64 breadbin model from 1982, the machine whose three custom chips defined home computing for a decade

Comprar en Amazon

Encuentra hardware, juegos, libros y accesorios para Commodore. Toda la gama disponible en Amazon.

Ver en Amazon

Interactive Memory Map

Los 64 KB completos del espacio de direcciones del C64, de $0000 a $FFFF. Haz clic en una región para explorarla.

MODO
$0000$4000$8000$C000$FFFF
Commodore 64 PAL motherboard showing the MOS 6569 VIC-II graphics chip alongside the SID and CPU

El chip VIC-II del C64: 8 sprites y un raster que podías controlar

El Video Interface Chip II (MOS 6569 en PAL, 6567 en NTSC) dotó al C64 de unas capacidades gráficas que requerían una habilidad genuina para aprovecharlas por completo. Su salida básica era una pantalla de 320x200 píxeles en modo de alta resolución, o 160x200 en modo multicolor, donde cada píxel podía ser uno de cuatro colores en lugar de dos. Una paleta fija de 16 colores estaba disponible en todo momento. Lo que diferenciaba al C64 de sus contemporáneos no era la resolución ni el número de colores, sino lo que el chip podía hacer con esos recursos.

Los ocho sprites por hardware eran la característica más relevante del VIC-II para los desarrolladores de juegos. Cada sprite era un objeto de 24x21 píxeles que podía posicionarse de forma independiente en cualquier punto de la pantalla, asignársele su propio color, escalarse al doble de tamaño y comprobar colisiones por hardware con otros sprites o el fondo. La CPU movía los sprites escribiendo en un puñado de registros mapeados en memoria. Al ser objetos de hardware, animar y posicionar los ocho simultáneamente no consumía ningún ciclo de CPU para el dibujo.

Lo que realmente distinguía a los programadores expertos del C64 del resto era el dominio del sistema de interrupciones de raster. El VIC-II podía lanzar una interrupción de CPU en cualquier línea de raster horizontal especificada, lo que permitía ejecutar código en un momento preciso del fotograma. Los registros de color podían cambiarse a mitad de pantalla, produciendo efectos de degradado y divisiones de color imposibles en un único fotograma estático. Los programadores empleaban esta técnica para mostrar más colores de los que el hardware admitía oficialmente y para crear las características barras de color que se convirtieron en la firma de la cultura demo del C64.

Capacidades del Commodore 64: especificaciones técnicas

CPUMOS 6510 @ 0,985 MHz (PAL) / 1,023 MHz (NTSC)
RAM64 KB (conmutación de bancos con ROM)
ROM20 KB (BASIC v2, KERNAL, juego de caracteres)
Chip gráficoMOS 6569 VIC-II (PAL) / 6567 (NTSC)
Modos de visualización320x200 alta resolución / 160x200 multicolor
Colores16 colores fijos; más mediante trucos de raster
Sprites de hardware8 (24x21 px, posicionables de forma independiente)
Chip de sonidoMOS 6581 / 8580 SID
Voces SID3 osciladores independientes
Formas de onda SIDTriángulo, Diente de sierra, Pulso, Ruido
Filtro SIDPaso bajo, Paso alto, Paso banda con resonancia
Extras SIDModulación en anillo, sincronización de osciladores, ADSR por voz

Capacidades de audio del Commodore 64: el chip SID

El chip MOS 6581 SID (Sound Interface Device) no era un generador de efectos de sonido ni un simple pitido. Era un sintetizador completo de tres voces con circuitería analógica, filtros programables y el rango expresivo de un instrumento real. Cada una de las tres voces podía producir cuatro formas de onda de forma independiente: triángulo (suave y cálido), diente de sierra (brillante y zumbante), pulso (cuyo timbre variaba con el ancho de pulso) y ruido (para percusión y efectos ambientales). Cada voz tenía su propia envolvente ADSR (Ataque, Decaimiento, Sustain, Release), lo que daba a los compositores un control preciso sobre cómo crecía, alcanzaba su punto máximo y se desvanecía cada nota.

El filtro era la característica más distintiva del SID. Un único filtro resonante, aplicable a cualquier combinación de voces, podía configurarse como paso bajo (recorte cálido de frecuencias altas), paso alto (recorte de graves para presencia) o paso banda (paso de una banda estrecha para efectos de teléfono o nasales). La frecuencia de corte y la resonancia eran totalmente programables, lo que permitía a los compositores barrer el filtro en tiempo real para efectos wah, elevar la resonancia para sonidos de lead agresivos o dar forma a la percusión hasta hacerla sentir física.

Dos características adicionales empujaban al SID aún más lejos. La modulación en anillo entre osciladores producía tonos metálicos y de campana que ningún oscilador individual podía generar por sí solo. La sincronización de osciladores unía dos voces, creando formas de onda complejas para leads agresivos y sonidos de bajo. Al ser un diseño analógico, los chips 6581 y 8580 sonaban sutilmente distintos: el 6581 tenía una ligera distorsión en el filtro que muchos compositores incorporaban a sus arreglos. Esa imprecisión analógica se convirtió en una parte definitoria de la voz del C64.

MOS 6581 and MOS 8580 SID chips side by side: the two versions of the Commodore 64 sound synthesiser

BASIC del C64, PEEK y POKE: lo que los programadores descubrieron

La Commodore 64 venía con BASIC v2 en ROM, y escribir RUN era suficiente para empezar. Para un principiante en 1982, el prompt de BASIC era una invitación. Dos comandos se volvieron esenciales enseguida: PEEK y POKE. PEEK leía un valor de cualquier dirección de memoria. POKE escribía uno. Como los registros de hardware del C64 para el VIC-II, el SID y los chips CIA aparecían todos como direcciones de memoria ordinarias, PEEK y POKE daban a los programadores de BASIC control directo sobre el chip gráfico, el chip de sonido y todo lo demás. POKE 53280,0 ponía el borde de la pantalla en negro. El hardware que en otras máquinas requería ensamblador era accesible desde BASIC en el C64.

El lenguaje ensamblador abría la máquina por completo. Un programador 6510 experto podía escribir código que se ejecutaba aproximadamente cien veces más rápido que el BASIC equivalente. La conmutación de bancos de memoria permitía superponer diferentes combinaciones de RAM y ROM sobre el espacio de direcciones de 64 KB, dando acceso a más memoria de la que el chip podía direccionar nominalmente. La página cero (los primeros 256 bytes de RAM) podía accederse con instrucciones más cortas y rápidas que el resto de la memoria, y los programadores experimentados guardaban allí las variables de uso frecuente como práctica habitual.

La demoscene documentó de lo que el C64 era realmente capaz. Los programadores descubrieron que una sincronización precisa de las interrupciones de raster podía extender el área de visualización más allá de sus límites diseñados. Las rutinas de multiplexado de sprites reposicionaban los ocho sprites de hardware varias veces por fotograma, mostrando docenas de objetos en movimiento simultáneo muy por encima del límite oficial. Se descubrieron y refinaron técnicas para reproducir muestras de audio digitalizadas a través del SID. Cada límite que imponía el hardware fue finalmente sorteado. El C64 recompensaba a los programadores que lo comprendían en profundidad.

Commodore 64 at a desk: the machine that programmers pushed far beyond its designed limits through assembly, PEEK, POKE and demoscene techniques

**** FREQUENTLY ASKED QUESTIONS ****

READY.

Explora la Commodore 64

Descubre todos los modelos del C64, su historia y el legendario chip SID.