
El VIC-II ( Video Interface Chip II ), conocido específicamente como MOS Technology 6567/6566/8562/8564 ( versiones NTSC ), 6569/8565/8566 ( PAL ), es el microchip encargado de generar señales de vídeo Y/C (combinadas para obtener vídeo compuesto en el modulador de RF ) y señales de actualización de DRAM en los ordenadores domésticos Commodore 64 y Commodore 128 .
El VIC-II, que sucedió al VIC original de MOS Technology utilizado en el VIC-20 , fue uno de los chips personalizados clave del Commodore 64 (el otro fue el chip de sonido MOS Technology 6581 ).
Historia del desarrollo
El chip VIC-II fue diseñado principalmente por Albert Charpentier y Charles Winterble [ 1 ] en MOS Technology, Inc. como sucesor del MOS Technology 6560 "VIC" . El equipo de MOS Technology había fracasado previamente en la producción de dos chips gráficos, el MOS Technology 6562 para la computadora Commodore TOI y el MOS Technology 6564 para la Color PET, debido a limitaciones en la velocidad de la memoria. [ 2 ]
Para construir el VIC-II, Charpentier y Winterble realizaron un estudio de mercado de las computadoras domésticas y los videojuegos existentes , enumerando las características actuales y las que querían tener en el VIC-II. La idea de agregar sprites provino de la computadora TI-99/4A y su coprocesador gráfico TMS9918 . La idea de admitir la detección de colisiones provino de la Mattel Intellivision . También se extrajeron características deseadas de la Atari 800 , en particular el modo de mapa de bits, que era un objetivo deseado por el equipo de MOS ya que todos los principales rivales de la Commodore en el mercado de computadoras domésticas tenían gráficos de mapa de bits, mientras que el VIC-20 solo tenía caracteres redefinibles. [ 3 ] [ 4 ] Aproximadamente 3/4 de la superficie del chip se utiliza para la funcionalidad de sprites. [ 5 ]
El chip se diseñó parcialmente utilizando herramientas de automatización de diseño electrónico de Applicon (ahora parte de UGS Corp. ) y parcialmente de forma manual sobre papel vitela . El diseño se depuró parcialmente fabricando chips que contenían pequeños subconjuntos del diseño, los cuales podían probarse por separado. Esto fue sencillo ya que MOS Technology tenía su laboratorio de investigación y desarrollo y su planta de semiconductores en la misma ubicación. El lote inicial de chips de prueba resultó casi completamente funcional, con solo un sprite defectuoso. [ 6 ] El chip se desarrolló con tecnología de 5 micrómetros. [ 3 ]
El trabajo en el VIC-II se completó en noviembre de 1981, mientras que Robert Yannes trabajaba simultáneamente en el chip SID . Ambos chips, al igual que el Commodore 64 , se terminaron a tiempo para la Feria de Electrónica de Consumo (CES) el primer fin de semana de enero de 1982. [ 7 ]
Características de VIC-II
Algunos de los modos gráficos de la 64 son realmente extraños y no tienen equivalente en Atari o Apple, como la posibilidad de cambiar el color de la base de los caracteres en toda la pantalla. Eso nos brindó una gran capacidad de color que no se había aprovechado.
— Craig Nelson de Epyx, 1986 [ 8 ]
- Espacio de direcciones de 16 KB para memoria de pantalla, caracteres y sprites.
- Resolución de vídeo de 320 × 200 píxeles (160 × 200 en modo multicolor)
- Resolución de texto de 40 × 25 caracteres
- Tres modos de visualización de caracteres y dos modos de mapa de bits.
- 16 colores
- Procesamiento simultáneo de 8 sprites por línea de exploración , cada uno de 24 × 21 píxeles (12 × 21 multicolor).
- Interrupción de trama (ver detalles a continuación)
- Desplazamiento suave
- Actualización dinámica independiente de la memoria RAM
- Control de bus para un sistema de bus tipo 6502 ; la CPU y el VIC-II acceden al bus durante ciclos de reloj alternos de medio ciclo (el VIC-II detendrá la CPU cuando necesite ciclos adicionales).
Detalles técnicos

Tenga en cuenta que las direcciones de registro que se muestran a continuación corresponden a las vistas por la CPU en un C64. Para obtener los números de registro tal como aparecen habitualmente en las hojas de datos (es decir , comenzando por 0), se debe omitir el prefijo "D0".
Programación

El VIC-II se programa manipulando sus 47 registros de control (frente a los 16 del VIC), cuya memoria se asigna al rango $D000 – $D02E en el espacio de direcciones del C64. De todos estos registros, 34 se dedican exclusivamente al control de sprites (los sprites se denominan MOBs, por "Movable Object Blocks", en la documentación del VIC-II). Al igual que su predecesor, el VIC-II admite la entrada mediante lápiz óptico y, con la ayuda de la ROM de caracteres estándar del C64, proporcionaba el conjunto de caracteres PETSCII original de 1977 en una pantalla de dimensiones similares a la de la serie PET de 40 columnas .
Al recargar los registros de control del VIC-II mediante código máquina conectado a la rutina de interrupción de trama (la interrupción de línea de exploración), se puede programar el chip para generar significativamente más de 8 sprites concurrentes (un proceso conocido como multiplexación de sprites ) y, en general, otorgar a cada segmento de la pantalla definido por el programa diferentes propiedades de desplazamiento, resolución y color. La limitación de hardware de 8 sprites por línea de exploración se puede aumentar aún más permitiendo que los sprites parpadeen rápidamente. Dominar la interrupción de trama es esencial para liberar las capacidades del VIC-II. Muchas demos y algunos juegos posteriores establecían una sincronización fija entre la CPU y el VIC-II para que los registros del VIC pudieran manipularse en el momento preciso, pero la dependencia de las interrupciones de trama para garantizar una sincronización adecuada podía reducirse y su sobrecarga minimizarse.
Gráficos de personajes
El C64 se comercializó con el conjunto de caracteres PETSCII en una ROM de 4k, pero, al igual que el VIC-20 anterior, los datos reales de los caracteres se leían de la memoria en una ubicación específica. Esta ubicación es uno de los registros del VIC-II, que permitía a los programadores construir sus propios conjuntos de caracteres colocando los datos apropiados en la memoria; cada carácter es una cuadrícula de 8x8, un byte representa 8 bits horizontalmente, por lo que se requieren 8 bytes para un solo carácter y, por lo tanto, el conjunto completo de 256 caracteres utiliza un total de 2048 bytes. Teóricamente, se pueden usar hasta ocho conjuntos de caracteres si se llenan los 16k de memoria de vídeo. [ 9 ] : 363
Además de los conjuntos de caracteres, el VIC-II también utiliza 1000 bytes para almacenar las 25 líneas de 40 caracteres por línea , un byte para cada carácter, que en la configuración predeterminada de encendido se encuentra en $400 - $7E8 . [ 9 ] : 117–119 Se accede a la RAM de color como bits 8 a 11 de la matriz de vídeo; [ 10 ] en el 64 y 128, se encuentra en el espacio de E/S en $D800 - $DBFF y no se puede mover de esa ubicación. Contiene los valores para el color 1 (color 3 en modo multicolor) de cada carácter.
La ROM de caracteres se asigna a dos de las cuatro "ventanas" del VIC-II, en $1000 - $1FFF y $9000 - $9FFF , aunque la CPU no puede verla allí (la ROM de caracteres puede cambiarse a $D000 - $DFFF donde es visible para la CPU, pero no para el VIC-II). Por lo tanto, los búferes de datos gráficos o de vídeo no pueden colocarse en $1000 - $1FFF o $9000 - $9FFF porque el VIC-II verá la ROM de caracteres allí en su lugar. Debido a que estas áreas de RAM no podían ser utilizadas por el chip gráfico del VIC-II, se usaban frecuentemente para música/efectos de sonido (el chip SID). El C64 tiene la capacidad de tener RAM y ROM en la misma dirección de memoria, pero la CPU "vería" una y el chip VIC-II "vería" la otra.
En el modo de caracteres de alta resolución predeterminado, el color de primer plano de cada carácter se puede configurar individualmente en la RAM de color. En el modo de caracteres multicolor, el color 3 se limita a los primeros ocho valores de color posibles; el cuarto bit se utiliza entonces como un indicador que señala si este carácter se mostrará en alta resolución o multicolor, lo que permite mezclar ambos tipos en una misma pantalla. [ 9 ] : 460–462 Los colores 1 y 2 se configuran mediante los registros en $D022 y $D023 y son globales para todos los caracteres. [ 9 ] : 373
Si se utiliza el modo de color de fondo extendido, los dos bits superiores del código de carácter se usan para seleccionar uno de los cuatro registros de color de fondo. Esto permite cuatro colores de fondo diferentes en la pantalla, pero a costa de limitar la visualización a solo 64 caracteres diferentes en lugar de 256. Debido a esta limitación, los juegos rara vez lo utilizaban.
Modo de mapa de bits
Uno de los objetivos principales del equipo de diseño de Commodore era añadir un modo de mapa de bits con direccionamiento de todos los puntos, ya que el VIC-I carecía de esta función. Sin embargo, para minimizar el uso de circuitos adicionales, lo organizaron de la misma manera que el modo de caracteres, es decir, con mosaicos de 8x8 y 4x8. Los gráficos de mapa de bits requieren una página de 8k para los datos de píxeles, y cada byte corresponde a una fila de ocho o cuatro píxeles. El siguiente byte corresponde a la fila inferior, y después de la octava fila, se vuelve al principio del siguiente mosaico.
En los mapas de bits de alta resolución, la RAM de pantalla se utiliza para almacenar los colores de primer plano y de fondo de cada mosaico (nibble alto y bajo de cada byte). Este es el único modo de VIC-II que no utiliza la RAM de color en $D800 ni el registro de color de fondo en $D021 .
El modo de mapa de bits multicolor permite tres colores por mosaico (el cuarto es el color de fondo, tal como se establece en $D021 ). Los colores 1 y 2 se seleccionan mediante los bits en la RAM de pantalla (igual que en los mapas de bits de alta resolución) y el tercero proviene de la RAM de color.
A pesar del alto nivel de detalle de color y la capacidad de direccionamiento de todos los puntos del modo de mapa de bits, generalmente no es práctico para los gráficos de los juegos debido a que requiere una gran cantidad de recursos del sistema (8k para los datos de píxeles más muchos más ciclos de CPU para modificar cada mosaico) y normalmente no permite el desplazamiento. Por lo tanto, se ve con mayor frecuencia en las pantallas de carga y, a veces, en las pantallas de título.
Sprites
Los sprites del VIC-II son monocromáticos de 24x21 o multicolor de 12x21. Al igual que los gráficos de caracteres, estos últimos tienen un color individual para cada sprite y dos globales. El VIC-II tiene ocho sprites, cada uno de los cuales usa 64 bytes de memoria para almacenarse, pero, con ciertas limitaciones, puede mostrar muchos más. La multiplexación de sprites es un método común para mostrar más de ocho en pantalla (aunque todavía hay un máximo de ocho por línea de exploración). El contador de líneas de exploración del VIC-II se puede consultar hasta que se alcance el punto deseado en la pantalla, o se puede programar una interrupción de raster para que se active en una línea de exploración determinada, después de lo cual el programa cambia rápidamente las coordenadas del sprite. Este método puede dar como resultado muchos sprites adicionales en pantalla a la vez, a menudo para un total de 16 a 24 o más. Sin embargo, para una demostración, el límite es considerablemente más flexible.
En teoría, el número máximo de sprites diferentes visibles al mismo tiempo es 256 (suponiendo que se llenara toda la página de 16k del VIC-II). Se accede a ellos mediante un número de bloque que hace referencia a cada patrón de sprite en la memoria, comenzando con 0 y llegando hasta 255 ($FF), dependiendo de su posición en la página de vídeo. (Si se utiliza el segundo banco de vídeo (numerado como 0, 1, 2 y 3), el bloque 0 se referiría al sprite almacenado en $4000 y el bloque 255 estaría en $7FC0 ).
Cada sprite puede duplicar su tamaño vertical u horizontalmente, o en ambas direcciones. Esto no aumenta la resolución del sprite (sigue teniendo 24 píxeles de ancho y 21 de alto), pero cada píxel será el doble de ancho y/o el doble de alto.
Debido a que el registro de posición horizontal para cada sprite es de un byte y está limitado a un valor máximo de 255, por sí solo no puede cubrir los 320 píxeles de la pantalla del VIC-II, por lo que un registro adicional llamado Indicador del Byte Más Significativo proporciona un noveno bit de posición para todos los sprites.
Los registros $D01E y $D01F contienen los registros de fondo y de colisión entre sprites. El primero se usa raramente porque no puede proporcionar información sobre el objeto de fondo específico con el que está tocando el sprite.
El bloque $D01B contiene el registro de prioridad Sprite To Background, que controla si un sprite se mueve detrás o delante de los gráficos de fondo. Cuando un sprite entra en el mismo espacio que otro, los de menor número siempre pasarán por encima de los de mayor número.
Desplazamiento
Para desplazar una pantalla de caracteres, el VIC-II se configura en modo de 38 columnas y/o 24 líneas mediante los registros $D011 y $D016 . Esto crea un búfer fuera de pantalla donde se coloca la fila de caracteres que se va a desplazar. Ajustando los bits de desplazamiento en los registros mencionados, se puede mover una fila a la pantalla, tras lo cual se repite el proceso a menos que se coloque una nueva fila en el búfer. La memoria RAM de color se desplaza simultáneamente con la memoria RAM de pantalla y funciona de la misma manera.
El desplazamiento en VIC-II es una tarea relativamente compleja que consume muchos recursos de la CPU, aunque no es raro que los programadores de juegos de C64 hagan trampa diseñando gráficos de forma que la RAM de color permanezca estática. Otro truco habitual es usar una sección de la pantalla (quizás las 4 o 5 filas de caracteres inferiores o superiores) como área de estado del juego para mostrar la puntuación, las vidas, etc., reduciendo así la cantidad de desplazamiento que hay que realizar. Por último, a menudo es necesario usar la técnica de "doble búfer" para evitar el desgarro de pantalla . Se reservan dos bloques de 1k de RAM de pantalla; uno se muestra mientras se escribe en el otro, y luego, durante el vblank, se intercambian rápidamente mediante la manipulación de los registros de VIC-II. Desafortunadamente, esto no se puede hacer con la RAM de color.
Hacia el final de la vida útil comercial del C64, se descubrió una vulnerabilidad conocida como VSP (Variable Screen Positioning) que consistía en manipular los bits de control en $D011 para producir un desplazamiento rápido con un coste de ciclos de CPU mucho menor que los registros de desplazamiento estándar. Sin embargo, requería una codificación precisa y no funcionaba de forma fiable en algunas revisiones del VIC-II; además, solo podía utilizarse para el desplazamiento horizontal. Se utiliza notablemente en Mayhem in Monsterland .
Interrupciones de trama
El uso de interrupciones de trama es una parte esencial de la programación de juegos para C64. En el estado predeterminado de encendido del ordenador, el primer chip CIA de MOS Technology genera una interrupción enmascarable (IRQ) 60 veces por segundo (ya sea NTSC o PAL, esto no está relacionado con la frecuencia de actualización de vídeo) que envía a la CPU al controlador IRQ del kernel en $EA31 . El controlador reconoce la IRQ del CIA, actualiza el reloj, escanea el teclado y hace parpadear el cursor en BASIC.
Los juegos normalmente desactivan la interrupción de la CIA y, en su lugar, configuran la VIC-II para generar interrupciones cuando se alcanza una línea de exploración específica, lo cual es necesario para el desplazamiento en pantalla dividida y la reproducción de música. El juego reasigna el vector IRQ en $0314 / $0315 a su controlador de trama, que realiza estas funciones y, opcionalmente, ejecuta una instrucción JMP $EA31 para devolver el control al núcleo.
Algunos juegos usan solo una IRQ; sin embargo, las IRQ encadenadas son más comunes y mejoran la estabilidad del programa. En esta configuración, la IRQ se reasigna a la segunda rutina y así sucesivamente para cada una hasta que la última la restaura a la dirección de la primera IRQ. Cuando se usan IRQ encadenadas, solo se necesita una instrucción JMP $EA31 en la cadena y las demás pueden terminar con JMP $EA81 , que simplemente va al final del manejador del kernel. Además, no es raro que los juegos cambien el kernel y usen su propio manejador de IRQ en su lugar. La NMI se puede usar para un hilo de interrupción adicional, aunque pueden resultar efectos secundarios indeseables al presionar accidentalmente la tecla Restaurar, ya que activa una NMI si se presiona.
El VIC-II también puede generar una interrupción de trama a partir de los registros de colisión, pero esta función rara vez se utiliza, ya que en la mayoría de los casos proporciona información insuficiente al programa.
Mapeo de memoria
El VIC-II tiene un bus de direcciones de 14 bits y puede usar cualquiera de los cuatro segmentos de 16k del espacio de memoria del C64 para datos de vídeo. Para gestionar esto, los bits de puerto de CIA aportan dos bits de dirección adicionales. $0000 - $3FFF es el valor predeterminado al encender. El segundo segmento ( $4000 – $7FFF ) suele ser la mejor opción para programar desde BASIC, ya que es el único segmento que es RAM completamente libre sin ROMs ni registros de E/S mapeados en él. El cuarto segmento ( $C000 – $FFFF ) también es una buena opción siempre que se utilice lenguaje máquina, ya que las ROMs del kernel deben estar deshabilitadas para que la CPU obtenga acceso de lectura, y evita tener código de programa y datos discontinuos que resultarían de usar $4000 - $7FFF . Tenga en cuenta que los datos gráficos se pueden almacenar libremente debajo de la ROM BASIC en $A000 - $BFFF , la ROM del kernel en $E000 - $FFFF o los registros de E/S y la RAM de color en $D000 – $DFFF , ya que el VIC-II solo ve la RAM, independientemente de cómo se ajuste el mapeo de memoria de la CPU; la ROM de caracteres es visible solo en el primer y tercer segmento, por lo que si se usa el segmento dos o cuatro, el programador debe proporcionar sus propios datos de caracteres. La RAM de pantalla, la página de mapa de bits, los sprites y los conjuntos de caracteres deben ocupar la misma ventana de segmento (siempre que los bits CIA no se cambien a través de la interrupción de la línea de exploración). Los últimos seis bytes de la memoria del sistema ( $FFFA - $FFFF ) contienen los vectores IRQ, NMI y de reinicio, por lo que si la parte superior de la memoria se usa para almacenar un conjunto de caracteres o datos de sprite, y la ROM KERNAL se cambia revelando la RAM subyacente a la CPU, será necesario sacrificar un carácter o sprite para evitar sobrescribir los vectores.
Registros
El VIC-II tiene 47 registros de lectura/escritura que se enumeran a continuación:
Bandera

En el modo de caracteres multicolor (160×200 píxeles, que es el que usan la mayoría de los juegos), los caracteres tienen 4×8 píxeles (los caracteres siguen siendo aproximadamente cuadrados ya que los píxeles tienen el doble de ancho) y 4 colores de 16. Tres de los colores son iguales para toda la pantalla (el color de fondo, multicolor 1 y multicolor 2), mientras que el color restante se puede configurar individualmente para cada área de 4×8 píxeles según se define en la RAM de color. Los sprites en modo multicolor (12×21 píxeles) tienen tres colores más transparencia: dos colores compartidos entre todos los sprites y uno individual. Los artistas eligen los colores compartidos de manera que la combinación con los colores individuales dé como resultado una impresión colorida. Algunos juegos recargan los colores compartidos durante la interrupción de raster; por ejemplo, el área submarina del juego Turrican II (que era verticalmente distinta) tiene diferentes colores. Otros, como Summer Games de Epyx y Basketball Sam & Ed de Gazette de COMPUTE!, superponen dos sprites de alta resolución para permitir el uso de dos colores de primer plano sin sacrificar la resolución horizontal.Por supuesto, esta técnica reduce a la mitad el número de sprites disponibles.
En las C64 PAL , la línea de retardo PAL del monitor o televisor, que promedia el tono de color (pero no el brillo) de las líneas de pantalla consecutivas, puede utilizarse para crear siete colores no estándar alternando líneas de pantalla que muestran dos colores de brillo idéntico. Existen siete pares de colores de este tipo en el chip VIC. [ 11 ]
El equipo del C64 no dedicó mucho tiempo al cálculo matemático de la paleta de 16 colores. Robert Yannes, quien participó en el desarrollo del VIC-II, dijo:
Me temo que no se dedicó tanto esfuerzo a la selección de colores como usted cree. Dado que teníamos control total sobre el tono, la saturación y la luminancia, elegimos los colores que nos gustaban. Sin embargo, para ahorrar espacio en el chip, muchos de los colores eran simplemente el lado opuesto del círculo cromático a los que habíamos seleccionado. Esto nos permitió reutilizar los valores de resistencia existentes, en lugar de tener un conjunto completamente único para cada color. [ 12 ]
Las primeras versiones del VIC-II utilizadas en los C64 PAL tienen una paleta de colores diferente a la de las revisiones posteriores. [ 13 ]
La paleta completa de dieciséis colores se genera a partir de variaciones de las señales YPbPr , como se muestra a continuación:
El VIC-IIe

El VIC-IIe 8564/8566 del Commodore 128 utiliza 48 pines en lugar de 40, ya que genera más señales, entre ellas la del reloj para la CPU Zilog Z80 adicional de ese ordenador. También dispone de dos registros adicionales. Uno de ellos permite acceder al teclado numérico y otras teclas adicionales del ordenador; esta función se añadió al VIC simplemente porque resultó ser el lugar más sencillo del ordenador para añadir los tres pines de salida adicionales necesarios. El otro registro adicional permite alternar entre un reloj del sistema de 1 MHz y uno de 2 MHz; a la velocidad más alta, la salida de vídeo del VIC-II muestra cada segundo byte del código como un patrón de bits en negro de alta resolución en la pantalla, lo que sugiere el uso del modo de 80 columnas del C128 a esa velocidad (a través del chip RGB 8563 VDC ). De manera bastante no oficial, los dos registros adicionales también están disponibles en el modo C64 del C128, lo que permite cierto uso de las teclas adicionales, así como la ejecución a doble velocidad sin vídeo de código limitado por la CPU (como cálculos numéricos intensivos) en programas C64 de creación propia. [ 14 ] Los registros adicionales también son una fuente de incompatibilidad menor entre el modo C64 del C128 y un C64 real: algunos programas C64 antiguos escribieron inadvertidamente en elBit de conmutación de 2 MHz , que no haría absolutamente nada en un C64 real, pero que daría como resultado una visualización distorsionada en un C128 en modo C64.
El VIC-IIe posee la capacidad, poco conocida, de crear un conjunto adicional de colores manipulando los registros de una manera específica que desfasa la señal de color con respecto a la que otras partes del chip consideran que está. Esta capacidad se demostró en la demo "Risen from Oblivion". [ 15 ] Desafortunadamente, no funciona en todos los monitores; se confirma que los colores son correctos en los monitores CRT de Commodore y sus equivalentes.
Utilizando el comportamiento específico del bit de prueba del VIC-IIe, es capaz además de producir una imagen entrelazada real con una resolución de 320×400 (modo de alta resolución) y 160×400 (modo multicolor). [ 16 ]
Lista de versiones de VIC-II
Commodore realizó muchas modificaciones al VIC-II durante su vida útil. El primer número de Compute!'s Gazette , en julio de 1983, informó que ya se habían realizado ocho desde el lanzamiento del Commodore 64 a mediados de 1982. [ 17 ]
- NTSC
- Tecnología MOS 6566 : diseñada para SRAM / líneas de dirección no multiplexadas (utilizada en la máquina MAX ).
- Tecnología MOS 6567 – Versión NMOS original
- Tecnología MOS 8562 – Versión HMOS-II
- MOS Technology 8564 – Versión VIC-II E C128
- CAMARADA
- MOS Technology 6569 – ( PAL-B , utilizado en la mayoría de los países PAL)
- MOS Technology 6572 – ( PAL-N , utilizado únicamente en el sur de Sudamérica)
- Tecnología MOS 6573 – ( PAL-M , utilizado solo en Brasil)
- Tecnología MOS 8565 – Versión HMOS-II para placas base "C64E"
- MOS Technology 8566 – VIC-II E (PAL-B) Versión C128
- MOS Technology 8569 – Versión VIC-II E (PAL-N) C128
La primera revisión del VIC-II se utilizó en máquinas fabricadas entre 1982 y principios de 1983; tenía una carcasa de cerámica por razones térmicas y generaba 64 relojes de color NTSC por línea. Estos chips tampoco emitían señales de croma y luminancia separadas. Las revisiones posteriores tenían una carcasa de plástico más económica y 65 relojes de color por línea (para NTSC, 63 para PAL), así como croma y luminancia separadas, lo que permitía una forma temprana de S-video. Se realizaron varias revisiones principalmente con el fin de mejorar la calidad de la salida de vídeo, que era deficiente en las primeras unidades, y eliminar un error que provocaba la aparición de píxeles aleatorios en la pantalla (algunos juegos iniciales explotaban intencionadamente esto para efectos gráficos que, por consiguiente, no funcionaban en los C64 posteriores). Los 64 relojes de color del VIC-II inicial se implementaron con la intención de permitir el color de artefacto NTSC en modo de mapa de bits de alta resolución, como lo hacían los ordenadores Atari de 8 bits, pero esa idea se descartó rápidamente.
Debido a que, por motivos de coste, fue necesario cambiar a una carcasa de plástico, el sobrecalentamiento solía ser un problema con el VIC-II. Esto se debía a varios factores, entre ellos la alta densidad del chip en relación con el proceso utilizado y su alta velocidad interna (8 MHz). Commodore intentó una solución improvisada utilizando el blindaje de RF de aluminio como disipador de calor (en las máquinas NTSC; las máquinas PAL se vendían en países con normas de interferencia de RF menos restrictivas que Estados Unidos, por lo que solo utilizaban cartón aluminizado); sin embargo, no fue del todo eficaz para evitar el sobrecalentamiento y el fallo del chip.
El VIC-II 85xx utilizado en las C64C se fabricó con el proceso HMOS de 3,5 μm, más moderno , y requiere una única línea de alimentación de 5 V en lugar de las dos líneas de 12 V y 5 V del VIC-II 65xx. Estos chips funcionan a temperaturas significativamente más bajas y no sufren los problemas de sobrecalentamiento que afectan al VIC-II 65xx.
Existen varias revisiones del 6569: 6569R1 (generalmente chapada en oro), 6569R3, 6569R4 y 6569R5. La versión más común del 8565 es la 8565R2.
Véase también
Referencias
- ↑ Pierceall, Kimberly (30 de octubre de 2016). "Resulta que el líder del equipo de ingeniería del Commodore 64 se retiró a Yorktown" . pilotonline.com . Consultado el 12 de octubre de 2021 .
- ↑ Bagnall, Brian (2005). «El proyecto secreto de 1981». Al límite: El espectacular ascenso y caída del comodoro (1.ª ed.). Winnipeg, Manitoba: Variant Press. págs. 224–225 . ISBN 0-9738649-0-7.
- 1 2 Perry, Tekla S.; Wallich, Paul (marzo de 1985). "Historia de caso de diseño: el Commodore 64" (PDF) . IEEE Spectrum . 22 (3). Nueva York, Nueva York: Instituto de Ingenieros Eléctricos y Electrónicos : 48–58 . Bibcode : 1985IEEES..22c..48P . doi : 10.1109/MSPEC.1985.6370590 . ISSN 0018-9235 . S2CID 11900865. Archivado del original (PDF) el 13 de mayo de 2012. Recuperado el 12 de noviembre de 2011 .
- ↑ Bagnall, Brian (2005). «El proyecto secreto de 1981». Al límite: El espectacular ascenso y caída del comodoro (1.ª ed.). Winnipeg, Manitoba: Variant Press. pág. 227. ISBN 0-9738649-0-7.
- ↑ Bagnall, Brian (2005). «El proyecto secreto de 1981». Al límite: El espectacular ascenso y caída del comodoro (1.ª ed.). Winnipeg, Manitoba: Variant Press. pág. 229. ISBN 0-9738649-0-7.
- ↑ Bagnall, Brian (2005). «El proyecto secreto de 1981». Al límite: El espectacular ascenso y caída del comodoro (1.ª ed.). Winnipeg, Manitoba: Variant Press. pág. 230. ISBN 0-9738649-0-7.
- ↑ Bagnall, Brian (2005). «El proyecto secreto de 1981». Al límite: El espectacular ascenso y caída del comodoro (1.ª ed.). Winnipeg, Manitoba: Variant Press. pág. 242. ISBN 0-9738649-0-7.
- ↑ Yakal, Kathy (junio de 1986). "La evolución de los gráficos Commodore" . Compute!'s Gazette . págs. 34–42 . Recuperado el 18 de junio de 2019 .
- 1 2 3 4 Cowper, Ottis R. (1986). Mapping the Commodore 128. Greensboro, Carolina del Norte: COMPUTE! Books. ISBN 0-87455-060-2.
- ↑ "Chip de interfaz de vídeo 6567: Hoja de especificaciones" (PDF) . Commodore Semiconductor Group. Hojas 2 y 5.
- ↑ "Gráficos controlados por luminancia en el C64" .
- ↑ Timmermann, Philip. "Análisis de color del Commodore VIC-II (Vista previa)" . Consultado el 11 de febrero de 2018 .
- ↑ Sjöstedt, Ilkka (30 de marzo de 2016). "Colores antiguos de VIC-II y mezcla de colores" . Blog de ilesj . Consultado el 11 de febrero de 2018 .
- ↑ Cowper, Ottis R.; Florance, David; Heimarck, Todd D.; Krause, John; Miller, George W.; Mykytyn, Kevin; Nelson, Philip I.; Victor, Tim (octubre de 1985). «Capítulo 7. Arquitectura del sistema». Guía del programador de COMPUTE! 128. Greensboro, Carolina del Norte: Publicaciones de COMPUTE!. págs. 348–349 . ISBN 0-87455-031-9.
- ↑ "Resucitado del olvido - curiosidades" .
- ↑ "VIC-IIe Entrelazado" .
- ↑ Halfhill, Tom R. (julio de 1983). "Actualización de vídeo de Commodore 64" . Compute!'s Gazette . pág. 40. Consultado el 6 de febrero de 2016 .
- Apéndice N: Especificaciones del chip 6566/6567 (VIC-II). Guía de referencia del programador de Commodore 64 (PDF) (1.ª ed.). Commodore Business Machines . 1982. págs. 436–456 . ISBN 0-672-22056-3.
Enlaces externos
- El controlador de vídeo MOS 6567/6569 (VIC-II) y su aplicación en el Commodore 64 : descripción detallada del hardware del VIC-II.
- Análisis de color de la Commodore VIC-II (Vista previa) : un intento de proporcionar información precisa sobre la paleta de colores de la VIC-II, por Philip Timmermann.
- Descripción de los modos gráficos del C64 : explicaciones sencillas con imágenes de ejemplo de los modos comunes utilizados para los gráficos del C64, incluidos los modos modificados y los asistidos por software.
- Modos de vídeo Real Entrelace mediante la VIC-IIe.
- Información de programación de VIC en Codebase64.
- Disparos de troquel VIC-II
- Reproducción precisa de la salida de vídeo de un Commodore C64 - paleta VIC-II tal como se ve en pantallas PAL y NTSC; cálculo de las relaciones de aspecto de los píxeles.
- Circuitos integrados con tecnología MOS
- chips gráficos
- Commodore 64
- Estándares de visualización de computadoras