La creación del Commodore 64: la historia de los ingenieros
El atrevimiento y el diseño que entró en la computadora más vendida de todos los tiempos
En enero de 1981, un puñado de ingenieros de semiconductores en MOS Technology en West Chester, Pensilvania, una subsidiaria de Commodore International Ltd., comenzó a diseñar un chip gráfico y un chip de sonido para vender a quien quisiera hacer "el mejor videojuego del mundo". En enero de 1982, se presentó una computadora doméstica que incorporaba esos chips en el Winter Consumer Electronics Show en Las Vegas, Nev. Mediante el uso de instalaciones internas de fabricación de circuitos integrados para la creación de prototipos, los ingenieros redujeron el tiempo de diseño de cada chip a menos de nueve meses, y habían diseñado y construido cinco prototipos de computadoras para la feria en menos de cinco semanas. Sin embargo, lo que más sorprendió al resto de la industria de las computadoras personales fue el precio de lanzamiento del Commodore 64: $595 por una unidad que incorpora un teclado, un procesador central, los chips de gráficos y sonido, y 64 kilobytes de memoria en lugar de los 16. o 32 que entonces se consideraban la norma.
Cuando comenzó el proyecto de desarrollo de chips, el Commodore 64 no era en absoluto lo que los diseñadores tenían en mente. MOS Technology era una casa comercial de semiconductores. Su Grupo LSI, encabezado en ese momento por Albert Charpentier, había sido responsable de algunos de los chips que se instalaron en la computadora doméstica VIC-20 de Commodore, pero ese proyecto ya estaba en producción. "Estábamos sin ideas para cualquier chip que el resto del mundo quisiera que hiciéramos", dijo Charpentier, "así que decidimos producir chips de video y sonido de última generación para el próximo gran videojuego del mundo. "
Este artículo se publicó por primera vez como "Caso histórico de diseño: el Commodore 64". Apareció en la edición de marzo de 1985 de IEEE Spectrum. Una versión en PDF está disponible en IEEE Xplore. Los diagramas y fotografías de chips, tableros de circuitos y pantallas aparecieron en la versión impresa original.
Charles Winterble, entonces director de ingeniería mundial de Commodore, dio el visto bueno para el esfuerzo del chip, y el grupo de Charpentier trabajó de manera bastante independiente hasta que ambos chips estuvieron terminados a mediados de noviembre de 1981.
En una reunión con Charpentier y Winterble a fines de ese mes, Jack Tramiel, entonces presidente de Commodore, decidió no continuar con el videojuego. En su lugar, decidió que los chips irían a una computadora doméstica de 64 kilobytes que se presentaría en el Consumer Electronics Show en Las Vegas la segunda semana de enero de 1982. La computadora aún no se había diseñado, pero eso se solucionó fácilmente.
En dos días, los ingenieros establecieron en papel la arquitectura básica de la máquina. Justo antes del año nuevo, completaron cinco prototipos funcionales. Mientras tanto, se copió y reescribió suficiente software del sistema operativo del VIC-20 para dar demostraciones aceptables de lo que podía hacer la nueva máquina. Luego de su entusiasta recepción en el Consumer Electronics Show, el Commodore 64 se apresuró a entrar en producción; los envíos de volumen comenzaron en agosto de 1982 y han continuado sin cesar.
A pesar de las quejas sobre el control de calidad y la unidad de disco más lenta de la industria, el Commodore 64 ha sido un éxito sin igual, expulsando del mercado a varios de sus competidores. Parte de la razón de su éxito es el precio, que sigue cayendo: de $595 en su lanzamiento a $149 en la actualidad, por lo que el consumidor obtiene gráficos y sonido iguales o mejores que los proporcionados por máquinas que cuestan cinco veces más.
A fines de la década de 1970, MOS Technology era una exitosa empresa de semiconductores; sus ingenieros habían diseñado el popular microprocesador 6502 y fabricaba varios otros productos que se vendían sólidamente. Commodore, una compañía de la costa oeste en ese momento, se hizo cargo de MOS en 1976, lo que provocó que muchos de los ingenieros de MOS renunciaran cuando sus acciones se compraron a 10 centavos por dólar, pero a MOS se le permitió operar de manera bastante autónoma.
En 1979 y 1980, recuerda Charpentier, MOS Technology desarrolló el microprocesador 6510, una revisión menor del 6502 con un puerto de entrada y salida adicional, el controlador periférico 6526, muchos chips de memoria de solo lectura (ROM) y un procesador de 4- chip de memoria de acceso aleatorio (RAM) de kilobits. En ese momento, MOS suministraba equipos a Atari Inc., General Electric Co., Hewlett-Packard Co. y otros clientes, así como a Commodore.
mapa de bits
Un sistema de visualización en el que cada punto en la pantalla está controlado por el valor de un bit particular en la memoria de la computadora. Múltiples bits por punto permiten múltiples colores y sombreados.
Mapa de caracteres
Un sistema de visualización en el que un grupo de puntos en la pantalla se define mediante una sola palabra en la memoria de la computadora que apunta a un mapa de bits en miniatura que contiene los valores de cada punto. Debido a que muchos patrones se reutilizan en una pantalla típica, los mapas de caracteres usan menos memoria que los mapas de bits.
reloj de colores
La frecuencia de la señal portadora utilizada para transmitir información de color en el estándar del Comité Nacional de Sistemas de Televisión (NTSC); 3,58 megahercios.
DEL
Sistema operativo de disco; el conjunto de funciones, como abrir, cerrar, renombrar y eliminar archivos, que se requieren para que una computadora haga un uso eficiente de una unidad de disco.
Campo
En el estándar NTSC, un conjunto de 262,5 líneas de exploración de televisión, transmitidas a una velocidad de 60 por segundo. Dos campos entrelazados forman un único cuadro de 525 líneas.
Interrumpir
Una señal que hace que una computadora detenga lo que esté haciendo y llame a una rutina especial. Las interrupciones permiten que una computadora procese datos mientras responde a entradas impredecibles de dispositivos periféricos.
Duende
Un objeto gráfico móvil que se utiliza en computadoras domésticas y máquinas de videojuegos para animación. Un sprite se puede mover simplemente cambiando los registros que controlan su posición, mientras que un objeto dibujado en la memoria de mapa de bits solo se puede mover copiándolo en un nuevo conjunto de ubicaciones de memoria.
Cuando se tomó la decisión de diseñar lo último en gráficos superiores y chips de sonido, el primer paso fue obvio: encontrar lo que podían hacer los chips actuales de alta calidad. Al reunir a su equipo de diseño, Charpentier reclutó a Robert Yannes, un joven ingeniero que se había unido a MOS en 1979 y había diseñado el VIC-20 en casa, a partir de una placa prototipo de repuesto. El equipo pasó cerca de dos semanas investigando chips comparables en toda la industria.
"Examinamos mucho el Mattel Intellivision", recuerda Winterble. "También examinamos Texas Instruments 99/4A y Atari 800. Tratamos de tener una idea de lo que estas empresas podrían hacer en el futuro mediante la extrapolación de su tecnología actual. Eso dejó en claro cuáles eran las capacidades gráficas de nuestra máquina. ser."
Los diseñadores de MOS tomaron prestadas libremente las ideas que les gustaban: sprites de la máquina TI, técnicas de detección de colisiones y gráficos de mapas de caracteres de Intellivision, y un mapa de bits de su propio VIC-20. Luego empaquetaron tantas de esas ideas como pudieron en un área predefinida de silicio.
"Al [Charpentier] se le dio la libertad, dentro de un cierto tamaño de dado, para poner todo lo que pudiera, trabajando hacia atrás dentro del tamaño que planeamos. Cuando se quedó sin registros, se detuvo", dijo Winterble. "Definimos de antemano el tamaño de silicio que daría un rendimiento con el que estábamos dispuestos a vivir; en ese momento, un tamaño de troquel que era razonable en la tecnología de 5 micrómetros era inferior a 200 mils. Luego priorizamos la lista de deseos de lo que debe estar allí para lo que debería estar allí para lo que nos gustaría tener, por lo que las decisiones que se necesitaban en varios puntos se volvieron bastante automáticas".
Durante nueve meses, Charpentier trabajó con dos dibujantes y un operador de diseño asistido por computadora en el chip de gráficos, mientras que Yannes trabajó con otros dos dibujantes y un operador de CAD en el chip de sonido. Carecían por completo de las sofisticadas herramientas de diseño de las estaciones de trabajo de ingeniería actuales, pero tenían una herramienta de diseño fácilmente disponible que casi no se encuentra en ningún otro lugar en la industria de las computadoras domésticas: una línea de fabricación de chips en las instalaciones. Con esto, explicó Winterble, un circuito enterrado profundamente dentro de los chips podría sacarse y ejecutarse como un chip de prueba, lo que permitiría una depuración completa sin preocuparse por otras partes del circuito. David A. Ziembicki, entonces ingeniero de producción en Commodore, recuerda que los tiempos de fabricación típicos eran de unas pocas semanas y que, en caso de emergencia, la instalación de fabricación cautiva podía cambiar los diseños en tan solo cuatro días.
El costo de desarrollar el Commodore 64: nadie lo sabe.
El costo de desarrollar el Commodore 64: nadie lo sabe. "No tenía responsabilidad presupuestaria formal", dijo Winterble, "aparte de que Jack [Tramiel] me observaba. Jack dijo que los presupuestos eran una licencia para robar". Debido a que las instalaciones de fabricación de MOS Technology no funcionaban a plena capacidad, el equipo utilizado para los chips de prueba C-64 y las múltiples pasadas de silicio habrían estado inactivos. "Estábamos usando personas que estaban allí de todos modos", dijo Ziembicki. "Desperdicias un poco de silicio, pero el silicio es bastante barato. Es solo arena".
Aunque los chips personalizados generalmente se consideran caros, los chips C-64 no lo eran. No sólo se absorbieron los costos de desarrollo en los gastos generales de la empresa, sino que no hubo que pagar ningún recargo, como habría ocurrido si los chips hubieran sido construidos por otra empresa. Y los rendimientos fueron altos porque los chips fueron diseñados para un proceso maduro de fabricación de semiconductores.
El chip de sonido fue diseñado con tecnología de 7 micrómetros, reduciéndose a 6 en algunos lugares. (Por el contrario, el chip personalizado para el Video Computer System de Atari, fabricado cuatro años antes, se construyó con tecnología de 6 micrómetros). El chip de video de Commodore se diseñó con características de 5 micrómetros.
Debido a que el tiempo de diseño era más importante que el silicio, los chips se diseñaron de manera simple en lugar de compacta. "Lo hicimos de una manera muy modular", dijo Yannes. Por ejemplo, señaló, "la forma estándar de construir osciladores es construir uno y luego multiplexarlo hasta que tenga tantos como necesite. Simplemente construimos un módulo de oscilador y lo repetimos, porque eso era mucho más rápido que resolver todos los tiempo para el multiplexor".
(A)Almacenamiento de puntero de carácter(B)Contadores de direcciones de sprites(C)Contadores de direcciones de caracteres(D)Generador de reloj(MI)Comparador vertical de sprites(F)Control de tiempo vertical(GRAMO)Comparador horizontal de sprites(H)Control de tiempo horizontal(I)Registros de desplazamiento de sprites y personajes(J)Codificador de prioridad de visualización(K)registro de color(L)Detección de colisión de Sprite-personaje(METRO)Salidas de vídeo
La mayor parte del área del chip de video Commodore 64, el VIC II, está dedicada a los ocho sprites (B, EH, L). El circuito de generación de reloj (D) sirve a todo el sistema. El único circuito dedicado por completo a generar caracteres es la matriz de almacenamiento que contiene cada línea de caracteres que se mostrarán (A) y el contador de direcciones que obtiene los datos ROM apropiados para cada línea de trama de la pantalla de caracteres. Tres módulos (I, J, L) son responsables de enviar los datos de los sprites y los personajes a la pantalla en el orden correcto y de informar cualquier colisión entre los datos de los sprites y los personajes. La porción central del chip consta de los circuitos para mostrar los sprites en sus posiciones horizontales y verticales correctas, y para obtener sus datos de la memoria. La temporización de las diversas funciones del chip, como la obtención de datos para los sprites, se realiza mediante la combinación de un contador y una ROM. El contador recorre las direcciones de la ROM y el contenido de cada dirección de la ROM impulsa las líneas de control apropiadas. El logotipo de MOS Technology y las iniciales de los diseñadores y dibujantes se pueden ver cerca del margen izquierdo del chip.
"Lo que fue notable", agregó Winterble, "fue que nueve meses después, cuando lanzamos el primer pase, funcionó excepto por un sprite defectuoso".
En noviembre de 1981, los chips estaban completos. La intención original había sido una máquina de juegos, pero en este punto el mercado de las computadoras personales empezaba a parecer prometedor. En una reunión de Charpentier, Winterble y Tramiel, se tomó la decisión de optar por una computadora personal. La siguiente elección que se hizo, según Charpentier, fue entre una máquina de 16 kilobytes y una de 64 kilobytes, ya que los chips personalizados estaban diseñados para manejar cualquiera de las dos opciones.
"Jack [Tramiel] hizo la apuesta de que para cuando estuviéramos listos para producir un producto, las 64K Ram serían lo suficientemente baratas para que las usáramos", dijo Charpentier.
Cuando comenzó el diseño del Commodore 64, los objetivos primordiales eran la simplicidad y el bajo costo. El costo de producción inicial del Commodore 64 se fijó en $ 130; resultó ser $135. La computadora usaría la misma carcasa que la VIC-20 y la placa de circuito del mismo tamaño para acelerar el desarrollo. "Eso ni siquiera fue una decisión", dijo Charpentier. "Era solo sentido común. Si tienes un producto que es un ganador, ¿por qué cambiarlo?" Para cambiar del VIC-20 al Commodore 64, el grupo de producción solo tuvo que hacer la ranura del cartucho más pequeña, cambiar el color de la caja y diseñar una nueva etiqueta.
Además, en lugar de diseñar primero teniendo en cuenta el rendimiento y luego el precio, como suelen hacer muchos ingenieros, el pequeño equipo de diseño de Commodore tuvo en mente el costo desde el principio. Yannes, por ejemplo, había hecho de la economía su credo cuando era un estudiante de secundaria sin recursos que buscaba piezas para construir un sintetizador de sonido. "Cada vez que diseño algo, quiero usar la menor cantidad posible de componentes. Es un desafío personal. Si hay una puerta [lógica] de repuesto en un paquete de puertas, trabajaré para deshacerme de todo el paquete, porque al trabajar con una cierta cantidad de chips, debería poder usar todo lo que hay en ellos. El Commodore 64 fue mi intento de construir el sistema mínimo absoluto que podría construirse a partir de los chips de video y sonido juntos".
En la industria de la electrónica de consumo, los nuevos productos se presentan tradicionalmente a los distribuidores, comerciantes, la prensa y la competencia dos veces al año, durante el primer fin de semana de enero y el primer fin de semana de junio, en las ferias de electrónica de consumo de invierno y verano (CES). ).
"Cuando trabajabas para Commodore", dijo Yannes, "siempre tenías que tener algo para el CES de invierno". El C-64 no tuvo mucha competencia en la feria de invierno de 1982. Atari todavía estaba sembrando su computadora 400/800. Mattel presentó la computadora Aquarius y Spectravideo presentó su computadora/máquina de juegos, ambas con memoria y capacidades limitadas.
Ziembicki recordó: "Todo lo que vimos en nuestro stand fue gente de Atari con la boca abierta, diciendo: '¿Cómo puedes hacer eso por $595?'".
"Fuimos un éxito", agregó Winterble.
Después del espectáculo, Commodore, que tenía la reputación de mostrar a veces productos que nunca volvían a aparecer, tuvo que poner en producción el 64 rápidamente. Solo se realizaron algunos cambios de diseño para preparar la máquina para la producción. "Lo que hay en el 64 funcionalmente es lo que yo quería", dijo Yannes. "Lo que hay en el chip de sonido es lo que yo quería, y lo que hay en el chip de video es lo que Al [Charpentier] quería".
De hecho, dijo Ziembicki, "después de que finalmente entró en producción, miramos hacia atrás y preguntamos, ¿por qué nos molestamos en cambiarlo después de enero? No se habría vendido una unidad menos y nos habríamos ahorrado mucho dinero en desarrollo". costos".
Algunos de los cambios fueron bastante significativos, pero pueden haber creado tantos problemas como los que resolvieron. La mayor mejora fue remediar "un contratiempo" en el chip de video, dijo Winterble.
Cuando Charpentier diseñó por primera vez el chip de video, explicó, su objetivo era un rendimiento óptimo tanto en blanco y negro como en color. Los chips de video anteriores, como los que se usaban en Atari y Apple, tenían una frecuencia en blanco y negro de 7,16 MHz, el doble de la frecuencia del reloj de color de televisión de 3,58 MHz, pero esto no podía exprimir suficientes caracteres en una línea, y también indujo una conversación cruzada entre las dos señales, lo que provocó que un objeto se desplazara ligeramente hacia la izquierda o hacia la derecha en la pantalla según su color. Después del CES de enero de 1982, cuando vio que 40 caracteres no cabían en la pantalla de un televisor, Charpentier aceleró la velocidad del reloj en blanco y negro e hizo que los dos relojes fueran completamente asincrónicos. Pero dado que los conjuntos de información en color y en blanco y negro cambiaban constantemente de fase entre sí, "las transiciones de color fueron fantásticas, pero hubo un efecto de natación general", recordó. La solución fue poner un bucle de bloqueo de fase en el sistema para que el color y la información en blanco y negro tuvieran una relación constante. Esto, reconoció Charpentier, fue "una solución curita".
Y eso es lo que parece, según Craig Nelson, director de desarrollo de productos de Epyx Computer Software de Sunnyvale, California. "Es un circuito realmente elegante", dijo, "excepto por el bucle de bloqueo de fase, que simplemente está atascado en medio de ella". (Commodore ahora dice que ha rediseñado el chip para eliminar el problema).
Para obtener más información sobre las alegrías y frustraciones de los desarrolladores de software que trabajan con Commodore 64, consulte:
Como resultado de la "curita", la información de color y la información en blanco y negro cambian de fase 180 grados entre sí en campos de video sucesivos en lugar de cambiar de fase de manera impredecible. Esto se ajusta más al estándar del Comité Nacional de Sistemas de Televisión (NTSC), que requiere que la información en blanco y negro tenga una frecuencia de reloj que sea un armónico impar de la frecuencia del reloj de color, de modo que los dos inviertan automáticamente su relación cada dos. campo: un campo en fase, el siguiente campo fuera de fase. (En el estándar NTSC, los colores están determinados por la diferencia de fase entre la señal de color y una señal de referencia de color transmitida al comienzo de cada línea).
En el momento en que se desarrolló el estándar, los circuitos comúnmente disponibles no podían separar completamente la información en blanco y negro del color: los cambios en el color provocarían cambios en el brillo y viceversa. Fue para promediar estos cambios a lo largo del tiempo que el NTSC especificó que la inversión de fase relativa de las dos señales podría ocurrir en campos sucesivos. El resultado son transiciones de color más agradables, pero el cambio de fase hace que las figuras estacionarias parezcan fluctuar. La fluctuación es particularmente evidente en las líneas verticales finas, como las de los caracteres alfanuméricos. Pero cuando se concibió el Commodore 64, iba a ser principalmente una máquina de juegos, no una computadora.
La ejecución de un chip con tecnología de 5 micrómetros a una velocidad de reloj de 8 MHz hizo que se disipara una gran cantidad de energía, casi 1,5 vatios. El chip no solo funcionó rápido, sino que para evitar que los colores se desvanecieran, como sucedió en el VIC-20, "pasamos a 12 voltios para eliminar las señales de color", recordó Winterble. "Sabíamos que tendríamos un problema de calor".
En este punto, Winterble hizo otra solución de diseño: soldó una pequeña pestaña de metal en el interior de la tapa de la carcasa protectora alrededor del chip de video. Cuando se ensambló la computadora, la pestaña presionó contra la parte superior del paquete de chips, formando un camino conductor de calor y convirtiendo el blindaje en un disipador de calor.
Algunos cambios que podrían haber mejorado la máquina no se hicieron en el apuro de la producción. Por ejemplo, dijo Yannes, los cables para la salida de sonido en la placa de circuito impreso van junto a los cables para la señal de video. Como resultado, la salida de sonido capta un molesto zumbido de 15.750 Hz. Cambiar la ruta del circuito habría llevado tiempo, "y teníamos una placa que funcionaba", explicó. "En ese momento, si tenías algo que funcionaba, no lo cambiabas". Una revisión de la placa de circuito desde entonces ha desviado estas líneas, dijo Commodore.
Pero los diseñadores, de hecho, cambiaron algunas cosas que funcionaban, incluida una revisión que degradó el rendimiento de la máquina.
Pero, de hecho, los diseñadores cambiaron algunas cosas que funcionaban, incluida una revisión que degradó el rendimiento de la máquina. El diseño original especificaba un modulador de radiofrecuencia de alta calidad para transmitir la señal a un televisor, pero se sustituyó por un modulador más económico. "Fue de $6.25 a $6.50 por uno bueno, y terminamos gastando alrededor de $3", dijo Charpentier.
Winterble tiene una visión diferente del modulador de $ 3: "El modulador de 50 centavos que estábamos usando en el VIC-20 no era lo suficientemente bueno", dijo, "así que optamos por uno más caro".
El diseño electrónico no fue la única área difícil cuando el Commodore 64 pasó del desarrollo del prototipo a la producción: la logística planteó un problema complejo. El C-64 fue diseñado en Norristown, Pensilvania, en MOS. La línea de ensamblaje VIC-20, que iba a comenzar a fabricar C-64, estaba en Santa Clara, California. Cuando el C-64 entró en producción, Commodore también abrió una nueva línea de ensamblaje en West Chester, Pensilvania. Había VIC adicionales -20 instalaciones de montaje en Japón, donde se iba a fabricar la unidad de disco para el C-64. Y las placas de circuito C-64 se fabricaban en Hong Kong.
"Fue muy divertido", dijo Ziembicki. "La gente de diseño elegiría un tornillo inglés. El final de la producción elegiría el sistema métrico. Pero eligieron lo que tenían. La producción de Commodore fue muy buena para hacer que las cosas encajaran, ya sea que estuvieran destinadas o no. Su carta era 'Ship 'em' "
"Se necesita ser una persona muy dura", explicó Charpentier, "para decir 'No los enviaré porque no son tan buenos como podrían ser', especialmente cuando la gente clama por comprarlos".
El inicio de la producción del Commodore 64 en la primavera de 1982 no marcó el final de la controversia. "La clave es poder resolver tus problemas mientras corres", dijo Ziembicki.
Una de las primeras batallas, recordó Charpentier, fue sobre el diseño de la placa de circuito impreso. La planta de ensamblaje de Commodore en los Estados Unidos utilizó equipos de inserción de componentes automatizados, pero su instalación japonesa no lo hizo, y las dos técnicas de ensamblaje requerían un espaciado de componentes diferente. Al final, se diseñó la placa para el C-64 para la inserción automatizada y la producción se trasladó a una nueva planta en Hong Kong que tenía las herramientas automatizadas.
Los problemas también plagaron varios de los componentes, por ejemplo, los interruptores. "Usted elige un interruptor que aparece como un interruptor de consumo", dijo Ziembicki. "Lo diseñas. Llamas al fabricante y obtienes una estimación que suena razonable. Luego, California [la división de producción] quiere 50 000 a la semana, pero el fabricante dice: 'No podemos hacer eso. Es un cambio de consumidor, pero 'no están orientados a las cantidades de consumo.' En ese momento, estás colgado".
Dado que Commodore acababa de mudar su personal de ingeniería de California a Pensilvania, la comunicación entre los ingenieros de diseño y las instalaciones de producción no era muy buena, explicó Ziembicki. "Llegó al punto en que no podías dejar de trabajar incluso si no obtenías una respuesta; simplemente proseguías con los componentes que pensabas que podía obtener el final de la producción".
Y los proveedores externos no siempre eran confiables. "Uno proporcionó una fuente de alimentación para la aprobación de ingeniería", recordó Ziembicki. "Se aprobó, y luego el proveedor cambió el diseño y no se lo dijo a nadie".
Pequeños cambios en el diseño interno del Commodore 64 durante su ciclo de producción de más de 5 millones de unidades han reducido los costos de fabricación a aproximadamente un tercio de los $135 originales. El aumento de volumen es un ahorro de costes. (Haga clic en la flecha para ver la placa de circuito revisada).
Charpentier dijo que sus relaciones con el grupo de producción eran bastante agradables. El trato de Winterble con ellos no fue tan cordial, pero lo encontró aceptable. "Personalmente tuve que jugar duro en muchas cosas", dijo. "Entonces Al entraba y hacía algo bueno. Esa técnica alivió mucha tensión, era una forma de hacer las cosas".
El problema más notorio fue el "chispazo", un defecto que hacía que aparecieran pequeños puntos de luz en la pantalla. El problema se resolvió antes de que Charpentier dejara la empresa en septiembre de 1982, pero los informes sobre el defecto continuaron hasta bien entrada la temporada navideña, y los informes de prensa lo citaron como un ejemplo del control de calidad deficiente de Commodore. Los consumidores astutos lo usaron como una excusa para devolver los Commodore 64 en perfecto estado mientras tenían una garantía de 90 días. Dado que el precio de la máquina había bajado $ 200 en los dos meses posteriores a su presentación, esta artimaña permitió a los propietarios obtener un reembolso del precio de compra y comprar otro C-64 a un precio más bajo.
Sparkle se atribuyó ampliamente a errores en el chip de video que era el corazón del sistema, pero en realidad fue causado por un chip ROM de los cuales 3 millones estaban en servicio sin problemas en otros sistemas, incluido el exitoso videojuego de arcade Asteroids. Los propios ingenieros de Commodore primero buscaron el problema en el chip de video. Les tomó tres semanas detectar el chip ROM como la fuente del defecto, dijo Charpentier. "El problema fue un evento aleatorio, no sucedía todo el tiempo. Pensamos que el chip de video estaba viendo los datos incorrectos por alguna razón. Ni siquiera sospechamos que podría ser la ROM. Finalmente, pusimos el analizador lógico en y lo rastreó". La ROM, que Charpentier y su grupo habían diseñado años antes, tenía un circuito especial de precarga para que funcionara más rápido, pero el circuito la hacía sensible a las señales espurias. El circuito de video y el microprocesador 6510 se alternaban para controlar el bus del sistema, y cuando el control pasaba de uno a otro, a veces se generaban picos de voltaje.
"Simplemente sucedió que llegamos al momento exacto", dijo Charpentier. "Si el pico hubiera sido unos nanosegundos más corto o más largo, no habría sido un problema. El pico fue lo suficientemente ancho como para que la ROM lo viera como una dirección válida. Ignoraría la siguiente solicitud de dirección y le daría al chip de video información incorrecta." Dado que la ROM contenía el conjunto de caracteres C-64, la visualización de la pantalla estaría plagada de fragmentos de caracteres aleatorios.
Según Nelson de Epyx, "Este material que parece una interferencia de confeti en la pantalla, al que llamamos brillo, tiene una propiedad extremadamente desagradable: provoca colisiones de hardware: los sprites creen que realmente existe". Dado que el destello fue causado por datos inapropiados que se enviaron al chip de video, activó el circuito responsable de verificar si los objetos móviles de la pantalla (sprites) estaban superpuestos a los objetos de fondo en la pantalla. Entonces, el software que dependía de la detección de colisiones para controlar el movimiento de los objetos en la pantalla se volvería loco cuando se enfrentara a un destello.
Se corrigió el error en la ROM, aunque Commodore tuvo que depender de proveedores externos durante un tiempo a medida que aumentaba su nueva línea de producción. Solo los primeros cientos de miles de unidades enviadas tenían el defecto. Pero, observó Nelson, "a los programadores no les importa que se haya solucionado. Nuestro software tiene que funcionar en todas las máquinas". La mejor solución para los programadores, explicó, es copiar el contenido de la ROM en la RAM, que es confiable. Pero esto desperdicia 2 kilobytes de RAM.
Además de la dificultad con la ROM, "cometí un error de lógica", recordó Charpentier. El error, que se corrigió a veces después de que Charpentier dejó Commodore, provocó que los primeros C-64 generaran una cantidad incorrecta de ciclos de reloj en cada línea de video horizontal. "Se acabó a la una", dijo. "En lugar de 65 ciclos de reloj por línea, tenía 64".
Como resultado, no se produjo el cambio de fase de 180 grados entre la información en color y en blanco y negro, que habría eliminado los problemas de transición de color. Según su color y el color del fondo, los bordes de algunos objetos en la pantalla aparecerán ligeramente fuera de línea. Esto se corrigió aproximadamente cinco meses después de la producción.
Pero los bordes de ataque siguen siendo un problema con el C-64. El circuito que muestra la información del sprite o la información de fondo en cualquier punto de la pantalla a veces responde lentamente y superpone el sprite en la información de fondo solo después de que ha perdido algunos píxeles.
Los diseñadores del C-64 no fueron los únicos que revisaron su máquina; incluso algunos trabajadores de la cadena de montaje entraron en acción.
Los diseñadores del C-64 no fueron los únicos que revisaron su máquina; incluso algunos trabajadores de la cadena de montaje entraron en acción. Dado que probar la calidad del color automáticamente es prácticamente imposible, se instruyó a los trabajadores de la línea de montaje para que giraran un potenciómetro que controla las señales de color y blanco y negro hasta que vieran el color. Como recordó Charpentier, los trabajadores pronto descubrieron que si giraban el potenciómetro lo más posible, el color se saturaba, pero también borraba la señal en blanco y negro. Se habían enviado varios miles de computadoras antes de que se notara la "revisión" de los trabajadores de la línea de montaje; para entonces, algunos críticos criticaban al C-64 por sus colores "chillosos".
Aunque estas modificaciones se han realizado en el C-64 desde sus introducciones, a los diseñadores que escriben software comercial para la máquina les gustaría ver algunas más. Uno de esos cambios sería un control de calidad adecuado. "No prueban", dijo Nelson de Epyx. "Abrí Commodores nuevos y encontré rastros cortados. Obviamente usan un destornillador eléctrico para ensamblar el C-64, a veces pierden el tornillo y cortan los rastros. ¿Cómo, se preguntarán, pudo haber pasado la inspección final? Bueno, esos rastros están conectados a los conectores de la unidad de disco, que obviamente no prueban.
En retrospectiva, Charpentier calificó uno de los errores de Commodore como "no acercarse un poco más a la calidad".
Una queja expresada por los diseñadores de hardware adicional para el C-64 es que su diseño minimalista da como resultado interacciones no deseadas entre partes del hardware y el software. Por ejemplo, el circuito utilizado para controlar el joystick y el puerto de la paleta de juegos se toma prestado una vez cada 1/60 de segundo para buscar en el teclado las teclas que se han presionado. Si los interruptores del joystick están cerrados, el software de escaneo del teclado informará que se presionó una tecla. Los dispositivos que se conectan a los puertos del joystick pueden provocar respuestas impredecibles, un problema que no ocurriría si se hubiera utilizado hardware separado para las dos funciones.
Otro defecto es el crudo software interno de la computadora. El sistema aparece en Básico cuando se enciende. Esto es un vestigio de los días de la primera computadora Pet producida por Commodore, que no tenía un sistema operativo de disco, ya que no había unidades de disco disponibles en ese momento. "No se desarrolló un sistema operativo de disco decente hasta Pet Basic 4.0", dijo Charpentier. El C-64 no usa esta versión avanzada de Basic porque "habría requerido más ROM de la que podríamos instalar". En cambio, la máquina usa una versión mucho más primitiva de Basic, tomada del VIC-20.
"El software no era tangible, no podía sostenerlo, sentirlo o tocarlo, por lo que no valía la pena gastar dinero".
Las omisiones más evidentes del Commodore 64's Basic son los comandos para controlar los chips de sonido y gráficos. "Nunca hubo ninguna intención de que el sistema tuviera un software incorporado para controlar los gráficos o el sonido", dijo Yannes. "Esa era una parte obvia de la filosofía de Commodore; no desperdicias dinero en cosas que encarecen el producto y que la mayoría de los compradores no van a usar".
"Commodore siempre ha hablado de boquilla sobre el software", dijo Charpentier. "Hacen lo suficiente para sobrevivir y luego confían en fuentes externas para llenar el vacío. Commodore era una extensión de Jack Tramiel, y para él el software no era tangible, no podía sostenerlo, sentirlo o tocarlo, así que no valía la pena gastar dinero".
Los diseñadores del C-64 tenían sus propios planes para los cambios que aún no se han implementado. Usaron el estuche VIC-20 para acortar el desarrollo, pero tenían un nuevo estuche diseñado que tenían la intención de sustituir en ocho o diez meses. "Era más delgado en el frente y tenía más forma de cuña", dijo Charpentier. "Siempre pensé que el estuche VIC-20 se veía torpe". También se agregaron algunas características nuevas a la máquina.
El hecho de que estos cambios no se hayan realizado realmente no ha afectado el éxito del C-64, afirmó Brian Dougherty, presidente de Berkeley Softworks de Berkeley, California. "Esta máquina tiene la mejor capacidad de visualización de gráficos de todo lo que ha hecho para una pantalla de televisión", dijo. "Llegó a ser un sistema increíble".
El principal defecto del C-64 no es la máquina en sí, sino su unidad de disco. Con una unidad de disco razonablemente rápida y un sistema operativo de disco (DOS) adecuado, el C-64 podría competir en el mercado comercial con Apple y quizás con otras computadoras comerciales. Sin embargo, con la unidad de disco actual, es difícil perder su imagen de juguete.
"El software orientado a los negocios no se ve tan bien como debería en el C-64", dijo Dougherty, "no porque el sistema base no sea lo suficientemente bueno, sino porque el acceso a la unidad de disco es demasiado lento; cualquier aplicación comercial requiere un mucho acceso al disco". Y dado que el DOS es tan débil y carece de funciones como la creación y el mantenimiento automáticos de directorios y el seguimiento de archivos, "es mucho más difícil desarrollar software comercial" para el C-64, agregó. "Alguien como Lotus [Development Corp., fabricante de un popular paquete integrado de software de negocios] enfrenta muchas más dificultades que las que tuvieron al desarrollar software para la PC de IBM, porque la PC tiene una estructura de sistema operativo que simplemente no existe. para este producto
"El sistema básico de entrada y salida en la ROM se realiza de manera bastante limpia, de acuerdo con los principios del sistema operativo. Todas las rutinas que deben estar ahí están ahí, pero también debe haber una instalación para leer automáticamente la primera pista del disco y arrancar. un sistema operativo más sofisticado en la memoria".
De hecho, la unidad de disco tiene una función para leer automáticamente la primera pista de un disco, según Nelson de Epyx, pero debido a que no está documentada, no se usa mucho.
¿Cómo estropearon los ingenieros de Commodore la unidad de disco?
"¿La unidad de disco? ¡Qué historia más sangrienta!"
"¿La unidad de disco? ¡Qué historia más sangrienta!" dijo Charpentier. "Eso tuvo que ver con el aporte de marketing que aceptamos. Marketing dijo que el C-64 tenía que ser compatible con el VIC-20".
La unidad de disco en el VIC-20, explicó Charpentier, era un descendiente directo de la unidad en la computadora Commodore Pet. "Teníamos un bus IEEE-488 paralelo para la unidad de disco Pet; y al principio usábamos un formato extraño para empaquetar datos: en las pistas exteriores, el disco se mueve más rápido que en las pistas interiores, por lo que la tasa de datos cambios para empaquetar más datos. Fue una buena idea, pero fue torpe, ya que eres incompatible con todos los demás. Esa es la nuez con la que comenzó todo".
La unidad de disco VIC-20 se diseñó en Japón y el bus se cambió de paralelo a serie para economizar. La unidad es muy lenta porque la parte de la interfaz serial del controlador de interfaz (el 6522) que se usa en el VIC-20 no funciona. Como resultado, el procesador 6502 envía un bit a la vez bajo el control directo del software, en lugar de enviar un byte al controlador periférico y dejar que se encargue de los relojes, los datos y el temblor de la mano.
"Reparamos el registro de desplazamiento en serie para el 6526 [el controlador de interfaz usado en el C-64 para reemplazar al 6522] pero no pudimos usarlo porque la unidad de disco tenía que ser compatible", continuó Charpentier. "Y, debido a que el procesador en el C-64 se apaga durante 40 microsegundos cada 512 microsegundos, seguían faltando las señales de interrupción que controlan la interfaz del disco. La solución: ralentizar aún más la unidad".
La velocidad era el único factor que se podía haber cambiado sin incurrir en el costo de cambios radicales en la unidad de disco; si los diseñadores del C-64 hubieran podido renunciar a la compatibilidad con VIC-20, podrían haberlo hecho mucho mejor. Y al final, por supuesto, el C-64 no era compatible con la unidad de disco del IC-20 de todos modos.
"Todo se debió a que la interfaz serial 6522 no funcionaba", concluyó Charpentier.
Otros fabricantes están tratando de resolver el problema de la unidad de disco del C-64. Algunos están vendiendo sus propias unidades de disco para usar con el C-64, pero les ha resultado difícil entrar en un mercado controlado por Commodore. Otros están vendiendo programas que se pueden cargar en la RAM para acelerar las velocidades de transferencia del disco, pero esta opción se aplica solo al uso del C-64 para programar en Basic; El software preempaquetado cargado en el sistema elimina los programas de la RAM. Epyx ha lanzado un programa basado en ROM para acelerar cinco veces la transferencia de disco. Según Nelson, el programa funcionará con cualquier software basado en disco. "Eso es posible", dijo Charpentier. "La unidad de disco C-64 tiene su propio microprocesador y memoria, y puede enviarle información para cambiar el sistema operativo y acelerar el protocolo de bus serie".
El software estándar para la unidad de disco C-64 puede leer un sector de 256 bytes cada 2,5 revoluciones del disco, o 512 byes por segundo. Los trucos de programación utilizados por Epyx han producido velocidades de transferencia de hasta 2,5 kilobytes por segundo. (Entre otras unidades de disco lentas, la 810 de Atari transfiere 1000 bytes por segundo y la unidad de disco Apple II funciona a un máximo de 15 000 bytes por segundo).
El equipo de Commodore había trabajado duro para asegurar un bajo costo de producción inicial para el C-64. La integración vertical ayudó a mantener bajos los costos de las piezas y Winterble vetó las ideas para funciones adicionales. Los propios diseñadores creían en contar centavos; Charpentier dijo que había aprendido mucho" de Jack Tramiel, quien era "un verdadero fanático de los costos". Nos angustiamos por cada transistor".
Con un costo de producción de $ 135 y un precio minorista de $ 595 en su presentación, el Commodore 64 tendría un margen de beneficio minorista cómodamente superior al estándar de la industria de uno a tres (quizás uno a dos cuando aumentan los volúmenes). Pero Commodore ha seguido encontrando formas de reducir tanto el precio de venta al público, ahora $ 149, como el costo de producción, que se cree que está entre $ 35 y $ 50 en la actualidad.
Commodore no confirmó esta cifra de costos. Dougherty de Berkeley Softworks estimó los costos de las piezas del C-64, basándose en su experiencia en Mattel e Imagic.
En otros movimientos de reducción de costos, Commodore reemplazó el TTL con chips personalizados menos costosos y encontró formas de aumentar el rendimiento de los chips de sonido y gráficos.
No todos los pasos de reducción de costos tuvieron un efecto perjudicial en el sistema. El chip de video 6567 se empaquetó originalmente en cerámica, aunque el plástico es mucho más barato. "Probamos todo tipo de cosas", dijo Charpentier, "marcos de cobre y plomo, inserciones de metal en el paquete y una cantidad increíble de otras cosas para obtener un paquete de plástico, porque un paquete de cerámica es muy caro. Pero no pudimos encontrar un paquete que funcionara lo suficientemente bien. Antes de dejar Commodore, enumeré algunas ideas para reducir la potencia, pero la mitad del chip todavía funcionaba a un límite de 8 MHz. Sin un rediseño importante, no podía obtener la potencia".
El equipo de diseño era autónomo: hizo su propia investigación de mercado, desarrolló sus propias especificaciones y llevó a su bebé hasta la producción.
El chip ahora está encerrado en plástico. Los ingenieros de Commodore dijeron que además de rediseñar el chip, desarrollaron un paquete de plástico que puede disipar el calor tan bien como la cerámica.
Desde el cambio a los envases de plástico, se han informado varios problemas nuevos con el C-64, problemas que son específicos de la máquina o que dependen de la temperatura. Una falla que es ampliamente conocida en toda la industria del software es la tendencia del chip a bloquearse cuando un programa cambia de modo de gráficos, desde mostrar un mapa de bits hasta mostrar caracteres [consulte la barra lateral, "Una rica colección de modos de gráficos"]. "Un juego que estábamos produciendo comenzó a fallar en la línea de producción", dijo Nelson de Epyx. "Luego volvíamos a probar [los discos defectuosos] y funcionaban. Dependía de la máquina en la que los pusiéramos y cuál era la temperatura". Charpentier especuló que algunas líneas de circuito se habían dejado flotando en el diseño original; el procesamiento deficiente y las altas temperaturas de funcionamiento estresarían los chips hasta el punto de fallar.
Otro problema que ha comenzado a surgir en algunos C-64 es el desplazamiento horizontal defectuoso de las pantallas de mapas de bits. En una revisión reciente de los Juegos de verano, un juego de deportes Epyx para el C-64, San José, California, Mercury News criticó el "efecto de flash" que se nota durante el evento de natación. Eso, según Nelson, no es un "efecto": el C-64 utilizado por el crítico de Mercury News simplemente no realiza el desplazamiento horizontal correctamente.
Aunque la máquina tiene sus fallas, los diseñadores del Commodore 64 creen que lograron muchos avances significativos debido a la libertad que disfrutaron durante las primeras etapas del proyecto. El equipo de diseño era autónomo: hizo su propia investigación de mercado, desarrolló sus propias especificaciones y llevó a su bebé hasta la producción. Pero tan pronto como se resolvieron los errores de producción y Commodore supo que tenía un ganador, la burocracia corporativa, que hasta ese momento había estado en la costa oeste lidiando con el VIC-20 y la computadora Pet, intervino.
"En ese momento, muchos grupos de marketing venían a 'ayudarnos'", recordó Winterble. "La próxima definición de producto iba a ser ideada por un grupo, y otro grupo sería responsable de poner las cosas en producción, y el grupo de Al haría investigación y desarrollo solo en chips".
"Si permite que el marketing se involucre en la definición del producto, nunca lo logrará rápidamente", dijo Yannes. “Y desperdicias la capacidad de hacer algo único, porque el marketing siempre quiere un producto compatible con otra cosa”.
Charpentier resumió su frustración: "Cuando involucras a muchas personas en un proyecto, todo lo que terminas haciendo es justificarte a ti mismo. Sabía que el Commodore 64 era técnicamente tan bueno y de tan bajo costo como cualquier producto que pudiera fabricarse en ese momento. , pero ahora tenía que escuchar a la gente de marketing decir: 'No se venderá porque no tiene esto, no puede hacer aquello'.
"La libertad que nos permitió hacer el proyecto C-64 probablemente nunca vuelva a existir en ese entorno".
Del equipo de diseño original de Commodore 64, solo Robert Russell permanece en Commodore; actualmente es gerente de diseño. El resto del equipo, Albert Charpentier, Robert Yannes y Charles Winterble, junto con David Ziembicki y Bruce Crocket, quienes ayudaron a depurar el proyecto y ponerlo en producción, dejaron Commodore en la primavera de 1983 y formaron la empresa Peripheral Visions. Su plan era diseñar otra computadora. Para obtener capital de trabajo, aceptaron un contrato de Atari para diseñar un teclado para Video Computer System, que se presentó en versión preliminar pero luego, cuando el mercado de los videojuegos colapsó, nunca se lanzó. Peripheral Visions fue demandado por Commodore, que dijo que el teclado VCS era un proyecto que pertenecía a Commodore. Al momento de escribir esto, la demanda no había sido resuelta.
Peripheral Visions pasó a llamarse Ensoniq y pronto lanzará su primer producto, un sintetizador de música. Albert Charpentier es actualmente vicepresidente de ingeniería en Ensoniq, Bob Yannes es diseñador sénior y David Ziembicki es gerente de control de producción. Charles Winterble dejó Peripheral Visions y ahora es vicepresidente de grupo de electrónica en Coleco Industries Inc. de West Hartford, Conn. Y Jack Tramiel es actualmente director ejecutivo de Atari Corp., la compañía que fue el principal competidor de Commodore en el mercado de computadoras para el hogar. antes de perder casi mil millones de dólares compitiendo contra el C-64.
Las librerías de informática tienen una amplia selección de libros sobre el C-64. Entre los recomendados están What's really inside the Commodore 64, de Bilton Bathurst, publicado por DataCap de Feneur, Bélgica, y The Anatomy of the 1541 disk drive, de Lothar Englisch y Norbert Szczepanowski, publicado por Abacus Software de Grand Rapids, Michigan. revistas como Creative Computing y Compute! revisar software y publicar programas que se ejecutan en el C-64. El Commodore 64 se puede encontrar en la mayoría de los grandes minoristas.
"No teníamos la intención de hacer 128 colores", insistió Albert Charpentier, diseñador jefe del Commodore 64. "Era un área demasiado grande en el chip.
No obstante, el Commodore 64 puede mostrar mucho más que los 16 colores enumerados en su documentación, además de sus muchas otras características gráficas. Brian Dougherty, presidente de Berkeley Softworks de Berkley, California, explicó: "El ancho de cada píxel es casi la mitad del reloj de color NTSC, así que cuando alternas píxeles de dos colores diferentes, en lugar de obtener los dos colores que crees estás obteniendo, obtienes una interpretación de fase completamente nueva". [Vea la figura a continuación.] La interpretación de la nueva fase, por supuesto, produce un nuevo color. Debido a que los píxeles tienen 7/16 del ancho de un reloj de color, los colores producidos cambian cíclicamente en la pantalla, lo que dificulta su utilización.
Antes de diseñar el chip de video, recordó Charpentier, había pasado algunas semanas observando a la competencia. Además de los productos de Texas Instruments, Atari y Mattel, estudió su propio trabajo anterior. "Recuerdo haber pasado alrededor de una semana revisando los modos de gráficos que podíamos instalar".
El mapa de 64 bits de Commodore es diferente a los de la mayoría de las computadoras, ya que toma prestada la mayor parte de sus circuitos de los que se usan para mostrar gráficos de caracteres. Un mapa de bits estándar almacenaría los segmentos de ocho puntos anteriores en bytes de memoria sucesivos en el orden A,B,C,D…. El Commodore 64 los almacena en el orden A,E,I,M,Q,U,Y,CC,B,F…. Esto imita los patrones de ocho por ocho puntos de los caracteres.
"Ese fue un ejemplo de escalada de ingeniería", dijo Charles Winterble, director mundial de ingeniería de Commodore en el momento en que se diseñó el chip de video. "Encontramos modos de color extraños. La imaginación de Al se volvió loca; algunos de los modos de color resultaron no tener ningún propósito, algunos de ellos resultaron ser muy inteligentes".
Hay dos modos básicos en el Commodore 64: mapa de caracteres y mapa de bits. En el modo de asignación de caracteres, la pantalla se compone de 1000 punteros, cada uno de los cuales selecciona un carácter almacenado en ROM o RAM. Dado que cada puntero contiene 8 bits, se pueden seleccionar 256 caracteres de ocho por ocho píxeles. En el modo de mapa de bits, se utilizan 8000 ubicaciones de memoria para definir la pantalla, con un bit correspondiente a un solo píxel. El modo de mapa de bits proporciona la máxima flexibilidad pero consume memoria, especialmente si se define más de una pantalla. El modo de mapeo de caracteres no es tan limitante como podría parecer, porque la mayoría de las imágenes se componen de elementos repetidos.
Hay varias variaciones del modo de mapa de caracteres. En su forma estándar, contiene 256 celdas de ocho por ocho píxeles, con una resolución de 320 píxeles en horizontal y 20 líneas en vertical. Cada una de las 1000 posiciones en la pantalla puede contener un color frontal diferente, pero todas usan el mismo color de fondo. "Esta es una limitación cuando se trata de mezclar colores", dijo Dougherty. El texto normalmente se muestra usando el modo de mapa de caracteres estándar.
En el estándar del Comité Nacional de Sistemas de Televisión, el color está determinado por la fase de la portadora de color en relación con una ráfaga de color enviada al comienzo de cada línea. Las ondas sinusoidales de arriba están coloreadas según su fase bajo ese estándar. Un cambio de rojo a naranja es relativamente limpio porque solo hay una pequeña diferencia de fase entre las dos ondas sinusoidales. Sin embargo, un cambio de rojo a azul puede causar bordes manchados en la pantalla porque deja la fase indeterminada desde el punto en el que la onda sinusoidal roja comienza hacia arriba hasta el punto en el que la onda sinusoidal azul llega al fondo, un período de aproximadamente 300 nanosegundos. . Este problema es universal en los sistemas que se adhieren al estándar NTSC.
En el modo de caracteres multicolores, cada celda tiene un color de primer plano y una selección de tres colores de fondo. Solo ocho de los 16 colores están disponibles para el primer plano; los colores de fondo están definidos por tres registros en el chip de video. Se utilizan dos bits (en lugar de uno) para definir cada píxel de una celda, por lo que las celdas tienen una resolución de ocho líneas en vertical por cuatro píxeles en horizontal, en lugar de la resolución estándar de ocho por ocho. Cada píxel tiene el doble del ancho normal, por lo que la resolución de la pantalla se reduce a 160 por 200.
En el modo de color extendido, se puede elegir entre cuatro colores de fondo para cada posición en la pantalla, además de un color de primer plano. Los 16 colores están disponibles y la pantalla se muestra a máxima resolución. La única limitación es que el número de caracteres es 64 en lugar de 256, porque dos bits de cada puntero de carácter se dedican a la selección de color.
El modo de mapa de bits está adaptado del modo de mapa de caracteres, lo que hace que su uso sea menos sencillo de lo que podría ser. "La mayoría de los algoritmos de escaneo de trama esperan que la memoria se distribuya de forma lineal", dijo Dougherty, "por lo que es difícil usar una gran cantidad de software que ya se ha hecho para otros sistemas". Los mapas de bits típicos se organizan con píxeles sucesivos en una línea horizontal en ubicaciones de memoria sucesivas, pero el mapa de bits C-64 utiliza ocho ubicaciones de memoria sucesivas para almacenar ocho píxeles cada una de ocho líneas sucesivas. Las ocho ubicaciones siguientes almacenan ocho píxeles más de las mismas ocho líneas [ver figura]. Esto imita la forma en que los píxeles para el conjunto de caracteres se distribuyen en la ROM, lo que permite utilizar el mismo circuito para ambos modos.
En el modo de mapa de bits estándar, se muestra un bit "1" en el color de primer plano y un bit "0" en el color de fondo (con un color de primer plano diferente disponible para cada grupo de ocho por ocho píxeles). En el modo de mapa de bits multicolor, se utilizan dos bits para definir cada píxel, lo que permite elegir cuatro colores de los 16 posibles, aunque la resolución de pantalla vuelve a bajar a 160 por 200.
Las diversas características del hardware Commodore 64 se pueden usar solas o en conjunto para lograr efectos impresionantes. En las pantallas que se muestran aquí, la función de interrupción de trama del Commodore 64 se usa para cambiar los colores y la resolución, aumentar la cantidad de sprites disponibles y alternar entre los distintos modos de gráficos. En esta pantalla inicial del videojuego Summer Games de Epyx, se utilizan dos interrupciones de trama entre las filas de banderas para cambiar los registros de color, lo que aumenta la cantidad de colores disponibles en esta pantalla multicolor con mapa de caracteres. Los sprites también se utilizan para agregar colores y detalles complejos.
La inclusión de sprites, objetos móviles independientes que se superponen a la pantalla de fondo, recibió mucha atención durante los primeros días del proyecto Commodore 64. De hecho, los circuitos que se utilizan para manipular y mostrar los sprites ocupan dos tercios del chip de visualización de video de la máquina.
"En retrospectiva, hubiera sido mejor poner un poco más de capacidad de mapa de bits en la máquina, pero nos enfocamos en los sprites", dijo Albert Charpentier, diseñador jefe de la computadora Commodore 64. "La premisa en el momento en que se diseñó el chip era una máquina de juego".
Y un buen juego, por supuesto, utiliza muchos objetos que se mueven de forma independiente. Robert Yannes, también diseñador del proyecto C-64, recuerda haber estudiado los llamados sprites de misiles de jugador de Atari. "Son terribles", dijo. "No tienen suficiente color, no son lo suficientemente grandes y no hacen lo que quieres". Los sprites del Texas Instruments 99/4A, dijo, "eran geniales, pero eran de un solo color, y había que agruparlos para formar un objeto lo suficientemente grande".
El sprite C-64, decidió el grupo, sería un objeto multicolor que se movería independientemente tanto en el eje x como en el eje y, con una mínima sobrecarga de software.
Los sprites se pueden mostrar en cualquiera de los cuatro tamaños: normal, expandido verticalmente, expandido horizontalmente o expandido en ambas direcciones. También se pueden mostrar en el modo multicolor, en el que su resolución es más gruesa pero se mantienen las proporciones.
"Pasamos mucho tiempo discutiendo los sprites", dijo Charpentier, "preguntando, '¿Qué tan grandes deberían ser? ¿Deberían tener una expansión por un factor de 2 en x? ¿En y? ¿Deberíamos tener detección de colisión?'"
Una serie de cálculos matemáticos respondió a muchas de estas preguntas, explicó. "Moviéndose a través de la línea de video, tiene 63 microsegundos para jugar. Iba a usar una memoria funcionando a poco menos de 2 MHz, lo que significa que solo 114 recuperaciones de memoria por línea, punto. No más. Supuse que el procesador iba a necesita al menos 40 de esas recuperaciones; 40 fue un buen número arquitectónico porque también hay 40 piezas de información de fondo, por lo que la información de fondo y los segmentos del procesador podrían intercalarse fácilmente.
"Entonces, 114 menos 40 para el procesador y 40 para el fondo me dejó con 34 recuperaciones. Necesitaba ocho recuperaciones para captar los punteros de los sprites [que indican dónde se almacena la información de los sprites en la memoria]. Eso dejó 26 recuperaciones. Si tuviera ocho sprites, eso me dio tres búsquedas por cada sprite".
Charpentier explicó que no se necesitaban ciclos adicionales para actualizar la RAM dinámica durante la visualización en pantalla, ya que el chip de video ya estaba pasando por las direcciones de fila y columna adecuadas. Solo durante el período de borrado vertical se actualiza la memoria por separado.
"Cuando usé cada uno de esos ciclos que pude tener en mis manos, tenía 3 bytes por sprite", dijo. (Más tarde, un cambio en la velocidad del reloj aumentó el número de ciclos disponibles en una línea a 126, pero ya era demasiado tarde para cambiar el circuito de sprites).
Los 3 bytes por sprite determinaron el tamaño horizontal del sprite: 24 píxeles. Charpentier luego buscó el múltiplo de 3 (bytes) que se acercaría a una potencia de 2, para que los sprites pudieran almacenarse de manera eficiente. "Ocurrió que 24 por 21 bits dieron 63 bytes de información", dijo. Por lo tanto, cada sprite tiene 21 líneas de altura.
Los sprites no solo se pueden colocar en cualquier lugar dentro o fuera de la pantalla, sino que también se pueden estirar al doble de sus dimensiones normales en dirección horizontal o vertical, produciendo un sprite tan grande como 48 por 42 puntos (aunque la resolución no aumenta ). [Consulte la figura anterior.] Los sprites también se pueden definir en el modo multicolor, en cuyo caso la resolución horizontal se reduce a 12 píxeles, aunque su tamaño no cambia.
El circuito del Commodore 64 cronometra la búsqueda de datos en las líneas de exploración de un televisor CRT
"Había trabajado con sintetizadores y quería un chip que fuera un sintetizador de música", dijo Robert Yannes, diseñador de chips de sonido y arquitecto de sistemas del Commodore 64. Comenzó a trabajar en el chip en la primavera de 1981, con la ayuda de por dos dibujantes y un operador de CAD. "Nadie más tenía una buena idea de lo que estábamos haciendo", dijo. "Más allá de la investigación básica, que había estado haciendo desde la escuela secundaria, el diseño real tomó solo unos cuatro o cinco meses".
Las principales diferencias entre su chip y los chips de sonido típicos de los videojuegos, explicó Yannes, eran su control de frecuencia más preciso y su envolvente independiente para dar forma a la intensidad de un sonido. "Con la mayoría de los efectos de sonido en los juegos, hay volumen completo o ningún volumen. Eso realmente hace que la música sea imposible. No hay forma de simular el sonido de ningún instrumento, ni siquiera vagamente, con ese tipo de envolvente, excepto tal vez un órgano. "
Aunque teóricamente es posible usar los controles de volumen en otros chips de sonido para dar forma a la envolvente de un sonido, muy pocos programadores habían abordado una tarea tan compleja. Para facilitar la configuración del sonido, Yannes colocó los controles de la envolvente en el hardware: un registro para cada voz para determinar qué tan rápido se acumula un sonido; dos para determinar el nivel en el que se sostiene la nota y qué tan rápido alcanza ese nivel; y uno para determinar qué tan rápido muere la nota. "Tomó mucho tiempo para que la gente entendiera esto", concluyó.
Yannes también colocó una tabla de búsqueda en el hardware para convertir datos de notas musicales a las frecuencias equivalentes, pero eso requería demasiado silicio. "Eliminé eso", dijo Charles Winterble, quien fue director mundial de ingeniería en Commodore durante el diseño del C-64.
Las capacidades precisas del chip de sonido aún no están claras, en gran parte debido a que se escribieron especificaciones incorrectas cuando se diseñó el chip por primera vez. "La hoja de especificaciones fue distribuida, copiada y reescrita por varias personas hasta que prácticamente ya no tuvo sentido", dijo Yannes. Un ejemplo de la documentación defectuosa es la afirmación de que el chip puede lógicamente Y varias formas de onda. El chip puede producir una onda triangular, un diente de sierra o una onda cuadrada, según el bit que se establezca en uno de sus registros de control. "No hay interbloqueo para asegurarse de que si un bit está encendido, los demás están apagados", dijo Yannes. "Eso habría requerido demasiado silicio". Entonces, si se elige más de una forma de onda, las notas internas del multiplexor de salida se descargan y lo que emerge es el mínimo de amplitudes.
Otro error en la hoja de especificaciones se refiere a los filtros en chip. “El filtro fue lo último que se trabajó”, reconoció Yannes. "Me quedé sin tiempo. La simulación por computadora dijo: 'Esto no funcionará muy bien', y no funcionó". El filtro puede haber sido mediocre, pero las ecuaciones que describen cómo funcionaba eran simplemente incorrectas, recuerda Yannes. "No se juntaron. Nadie me dio la oportunidad de corregirlos".
Frente a estas ecuaciones incorrectas, la mayoría de los diseñadores de software utilizan únicamente el chip de sonido.
Algunos de los programadores japoneses que escribieron los primeros juegos de software para el C-64 adoptaron un enfoque diferente, señaló Yannes: "Lo escribieron de acuerdo con las especificaciones. No les importaba si algo funcionaba o no. Como resultado, los programas Hizo efectos de sonido que no podías escuchar".
En enero de 1981, Mapa de bits Mapa de caracteres Reloj de colores Interrupción de campo DOS Sprite (A) (B) (C) (D) (E) (F) (G) (H) (I) (J) (K) (L) (METRO)