derecha|miniaturadeimagen|MOS 6569R3 (PAL version) on a C64 main board El VIC-II (Video Interface Chip II), específicamente conocido como el MOS Technology 6567/8562/8564 (versiones NTSC), 6569/8565/8566 (PAL), es el microchip que genera las señales de vídeo Y/C (combinado en vídeo compuesto en el modulador RF) y las señales de refresco de la DRAM en las computadoras domésticas Commodore 64 y C128.
Sucediendo al original MOS VIC (usado en el VIC-20), el VIC-II fue uno de los dos chips principalmente responsables del éxito del C64 (el otro chip era el 6581 SID).
Historia de desarrollo El chip VIC-II fue diseñado principalmente por Al Charpentier y Charles Winterble en MOS Technology, Inc. como un sucesor del MOS Technology 6560 "VIC". El equipo en MOS Technology había fallado previamente al producir dos chips gráficos llamados MOS Technology 6562para la computadora Commodore TOI, y el MOS Technology 6564 para el Color PET, debido a las limitaciones de velocidad de la memoria.
Para construir el VIC-II, Charpentier y Winterble hicieron una encuesta de mercado de las presentes computadoras domésticas y videojuegos, listando las características presentes en ese momento y qué características se querían tener en el VIC-II. La idea de añadir sprites vino de la computadora Texas Instruments TI-99/4A y su TMS9918 coprocesador gráfico. La idea de soportar la detección de colisiones vino de la Mattel Intellivision. La Atari 800 fue también minado para encontrar características deseadas. Sobre 3/4 de la superficie del chip es usada para la funcionalidad de sprites.
El chip fue parcialmente diseñado usando herramientas de automatización de diseño electrónico de Applicon (ahora parte de Siemens PLM Software) y parcialmente diseñado manualmente en papel vegetal o de calco. El diseño fue parcialmente depurado fabricando chips que contenían pequeños subconjuntos del diseño, los cuales podían ser probados por separado. Esto fue fácil debido a que MOS Techonology tenía tanto su laboratorio de investigación y desarrollo como su planta de semiconductores en la misma ubicación. El chip fue desarrollado en tecnología de 5 micrómetros.
El trabajo en el VIC-II fue completado en noviembre de 1981 mientras Robert Yannes estaba simultáneamente trabajando en el chip SID. Ambos chips, como el Commodore 64, fueron finalizados a tiempo para el Consumer Electronics Show en el primer fin de semana de enero de 1982.
Características del VIC-II Espacio de direcciones de 16 kB para la 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 pantalla de caracteres y dos de mapa de bits 16 colores Manejo concurrente de 8 sprites por línea de exploración, cada uno de 24 × 21 píxeles (12 × 21 en multicolor) Interrupción raster (ver detalles más abajo) Scroll suavizado Refrescamiento de memoria RAM independiente y dinámico Bus mastering para un estilo del bus de sistema del 6502: La CPU y el VIC-II accediendo al bus durante mitades alternas del ciclo de reloj (el VIC-II detiene a la CPU cuando necesita ciclos extra)
Detalles técnicos
miniaturadeimagen|derecha|250px|MOS 6567 VIC-II patillaje. Nótese que abajo, las direcciones de los registros están indicadas como las ve la CPU en un C64. Para obtener los números de registro como se dan usualmente en las hojas de datos (p.e., comenzando con 0), el "D0" inicial debe ser omitido.
Registros El VIC-II tiene 47 registros de lectura/escritura listados a continuación:
Registro Hexadecimal Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Descripción 0 D000 M0X Coordenada X del Sprite 0 1 D001 M0Y Coordenada Y del Sprite 0 2 D002 M1X Coordenada X del Sprite 1 3 D003 M1Y Coordenada Y del Sprite 1 4 D004 M2X Coordenada X del Sprite 2 5 D005 M2Y Coordenada Y del Sprite 2 6 D006 M3X Coordenada X del Sprite 3 7 D007 M3Y Coordenada Y del Sprite 3 8 D008 M4X Coordenada X del Sprite 4 9 D009 M4Y Coordenada Y del Sprite 4 10 D00A M5X Coordenada X del Sprite 5 11 D00B M5Y Coordenada Y del Sprite 5 12 D00C M6X Coordenada X del Sprite 6 13 D00D M6Y Coordenada Y del Sprite 6 14 D00E M7X Coordenada X del Sprite 7 15 D00F M7Y Coordenada Y del Sprite 7 16 D010 M7X8 M6X8 M5X8 M4X8 M3X8 M2X8 M1X8 M0X8 MSBs de las coordenadas X 17 D011 RST8 ECM BMM DEN RSEL YSCROLL Registro de control 1 18 D012 RASTER Contador raster 19 D013 LPX Lápiz óptico X 20 D014 LPY Lápiz óptico Y 21 D015 M7E M6E M5E M4E M3E M2E M1E M0E Sprite activado 22 D016 - - RES MCM CSEL XSCROLL Registro de control 2 23 D017 M7YE M6YE M5YE M4YE M3YE M2YE M1YE M0YE Sprite Y expansión 24 D018 VM13 VM12 VM11 VM10 CB13 CB12 CB11 - Punteros de memoria 25 D019 IRQ - - - ILP IMMC IMBC IRST Registro de interrupción 26 D01A - - - - ELP EMMC EMBC ERST Interrupción activada 27 D01B M7DP M6DP M5DP M4DP M3DP M2DP M1DP M0DP Prioridad de datos del sprite 28 D01C M7MC M6MC M5MC M4MC M3MC M2MC M1MC M0MC Sprite multicolor 29 D01D M7XE M6XE M5XE M4XE M3XE M2XE M1XE M0XE Expansión X del sprite 30 D01E M7M M6M M5M M4M M3M M2M M1M M0M Colisión sprite-sprite 31 D01F M7D M6D M5D M4D M3D M2D M1D M0D Colisión sprite-datos 32 D020 - - - - EC Color de borde 33 D021 - - - - B0C Color de fondo 0 34 D022 - - - - B1C Color de fondo 1 35 D023 - - - - B2C Color de fondo 2 36 D024 - - - - B3C Color de fondo 3 37 D025 - - - - MM0 Sprite multicolor 0 38 D026 - - - - MM1 Sprite multicolor 1 39 D027 - - - - M0C Color del sprite 0 40 D028 - - - - M1C Color del sprite 1 41 D029 - - - - M2C Color del sprite 2 42 D02A - - - - M3C Color del sprite 3 43 D02B - - - - M4C Color del sprite 4 44 D02C - - - - M5C Color del sprite 5 45 D02D - - - - M6C Color del sprite 6 46 D02E - - - - M7C Color del sprite 7
Referencias
Categoría:Estándares de pantalla de computadora Categoría:Chips de gráficos Categoría:Commodore 64 V