
El controlador de pantalla de vídeo ( VDC ) 8563 era un circuito integrado fabricado por MOS Technology . Se utilizaba en el ordenador Commodore 128 (C128) para generar una pantalla de vídeo RGB de 80 columnas (640 × 200 píxeles ) , funcionando junto con un VIC-II que admitía gráficos compatibles con Commodore 64. Los modelos DCR (así como algunos modelos D) del C128 utilizaban el controlador VDC 8568 [D], posterior y técnicamente más avanzado .
Historia y características
Originalmente concebido para el Commodore 900 , un ordenador empresarial basado en UNIX (pero nunca lanzado) basado en el Zilog Z8000 , Commodore diseñó el VDC en varias máquinas prototipo. De estas, solo el Commodore 128 llegó a producirse. A diferencia de los chips de vídeo MOS anteriores, como el popular VIC-II, el VDC tenía memoria de vídeo dedicada, 16 kilobytes (16.384 bytes; ampliable a 64 kilobytes, 65.536 bytes) en el C128 original o "plano" y 64 kilobytes en el C128DCR . Esta RAM no era directamente accesible por el microprocesador .
El 8563 era más difícil de producir que la mayoría de los demás componentes de la línea de MOS Technology, y los rendimientos iniciales eran muy bajos. Las primeras unidades también presentaban importantes problemas de fiabilidad y tendían a autodestruirse por sobrecalentamiento. [ 1 ] Además, existían problemas de sincronización con el VDC que provocaban fallos en las operaciones indirectas de carga y almacenamiento en sus registros.
Oficialmente, el VDC era un chip de solo texto, aunque una lectura atenta de la documentación técnica de MOS Technology, entregada a los primeros desarrolladores del C128, indicaba que era posible un modo de mapa de bits de alta resolución ; simplemente no se describía con detalle. BASIC 7.0 , el lenguaje de programación integrado del C128, solo admitía gráficos de alta resolución en modo de 40 columnas a través del antiguo chip VIC-II.

Poco después del lanzamiento del C128, el modo de mapa de bits del VDC se describió con considerable detalle en el libro de Data Becker "Commodore 128 - Das große GRAFIK-Buch" (publicado a finales de 1985 en Estados Unidos por Abacus Software ), y los autores alemanes Klaus Löffelmann y Dieter Vüllers proporcionaron un programa en lenguaje ensamblador, en el que era posible activar o desactivar cualquier píxel o, utilizando BASIC para realizar los cálculos necesarios, generar formas geométricas de mapa de bits en la pantalla de 80 columnas. [ 2 ] En febrero de 1986, menos de un año después del lanzamiento del Commodore 128 , la revista RUN publicó " Ultra Hi-Res Graphics ", un artículo que describía el modo de mapa de bits del VDC e incluía un programa de entrada (escrito en lenguaje ensamblador 8502 ) que extendía las capacidades de BASIC 7.0 para admitir gráficos de alta resolución de 640×200 utilizando el 8563.Los autores Lou Wallace y David Darus desarrollaron posteriormente la utilidad Ultra Hi-Res en un paquete comercial, BASIC 8. Esta utilidad, una de las más populares de terceros para el C128, ofrecía capacidades de alta resolución VDC más avanzadas a un amplio público de programadores.
Finalmente, Commodore ofreció documentación oficial completa sobre el VDC en la Guía de referencia del programador de Commodore 128. Los modos de mapa de bits del VDC se utilizaron ampliamente en la versión C128 del sistema operativo GEOS .
El VDC carecía de capacidades para sprites , lo que limitaba su uso en aplicaciones de juegos . Sin embargo, sí incluía capacidades de transferencia de datos para realizar copias de memoria de pequeños bloques de forma autónoma dentro de su RAM de vídeo dedicada. Mientras el VDC realizaba dicha copia, la CPU del sistema podía seguir ejecutando código, siempre que no se intentara acceder al VDC antes de que finalizara la copia. Estas funciones eran utilizadas por la ROM del editor de pantalla del C128 para desplazarse rápidamente o borrar secciones de la pantalla.
Especificaciones técnicas

- Salida RGBI (RGB más intensidad) compatible con el estándar de vídeo CGA de IBM . *
- Espacio de direcciones de 16 o 64 kilobytes para la memoria de visualización, forma de caracteres y atributos de visualización (dedicado, separado de la memoria del sistema).
- Resolución de vídeo de hasta 720 × 700 píxeles en modo entrelazado (máximo con 64 kilobytes de RAM de vídeo). Según las necesidades del programador, son posibles otros tamaños de imagen, como 640 × 200 sin entrelazar, 640 × 400 entrelazado, etc.
- Resolución de texto de 80 × 25 caracteres (valor predeterminado del kernel C128); también son posibles otros tamaños, como 80 × 50 o 40 × 25.
- 8 colores con 2 intensidades.
* Esto aplica únicamente a los monitores C128 de 60 Hz de EE. UU. Los monitores C128 de 50 Hz emiten una señal con una frecuencia de actualización vertical de 50 Hz. Si bien no se ajustan al estándar CGA, la mayoría de los monitores CGA podían mostrar la señal de 50 Hz sin problemas. Sin embargo, algunos monitores no lograban reproducir la señal o, si bien la reproducían, sus circuitos de deflexión fallaban tarde o temprano debido a sobrecargas eléctricas o térmicas, lo que requería reparación.
Programación
El acceso a los registros internos y a la memoria de vídeo dedicada del VDC debe realizarse de forma indirecta. Primero, el programa debe indicar al VDC cuál de sus 37 registros internos desea consultar. A continuación, el programa debe esperar a que el VDC esté listo para el acceso, tras lo cual se puede realizar una lectura o escritura en el registro interno seleccionado. El siguiente código ensamblador es un ejemplo típico de lectura de registro:
ldx # regnum ;Registro VDC al que acceder stx $d600 ;Escribir en el bit loop del registro de control $d600 ;Comprobar el bit 7 del registro de estado bpl loop ;VDC no está listo lda $d601 ;Leer del registro VDC ...El siguiente código es típico de una operación de escritura en un registro:
ldx # regnum ;Registro VDC en el que escribir stx $d600 ;Escribir en el bit de bucle del registro de control $d600 ;Comprobar el bit 7 del registro de estado bpl loop ;VDC no está listo sta $d601 ;Escribir en el registro VDC ...Lo mismo es posible en lenguaje BASIC , llamando a rutinas KERNAL específicas :
Este código es típico de una lectura de registro VDC, donde ⟨registro⟩ es un número entre 0 y 36, como se muestra a continuación .
BANK15 ... SYS DEC ( "CDDA" ),, registro : RREG VDC REM $ccda también conocido como 52698 en decimal PRINT VDC ...Este código es típico de una escritura de registro VDC, donde ⟨registro⟩ es un número entre 0 y 36, y ⟨valor⟩ es un número entre 0 y 255 , que desea colocar en ese registro.
BANK15 ... SYS DEC ( "CDCC" ), valor , registro REM $ccdc también conocido como 52684 en decimal ...Debido a este método algo engorroso de controlar el VDC, la velocidad de fotogramas máxima posible en modo de mapa de bits suele ser demasiado lenta para los videojuegos de acción de estilo arcade, en los que se requiere una manipulación intensiva de bits de la pantalla.
En el modo de texto estándar, el VDC se comporta de forma muy similar al VIC-II, excepto que tiene 2k de memoria de pantalla en lugar de 1k. La configuración predeterminada al encenderlo coloca la memoria de pantalla en $0-$7FFy la memoria de color en $800-$9FFy se pueden mover a cualquier lugar en la memoria del VDC siempre que esté en un límite de 2k. Los atributos se manejan como en el modo de alta resolución del VIC-II con un color de fondo global y el color de primer plano de cada carácter configurado individualmente por la RAM de color. Además de los datos de color, esta última también contiene datos de atributos para cada carácter. El bit 4 hace que el carácter parpadee si está habilitado, el bit 5 produce caracteres subrayados y el bit 6 invierte el patrón de mapa de bits del carácter. El bit 7 habilita el conjunto de caracteres alternativo. El VDC puede usar hasta 512 caracteres. Cuando se habilita el indicador de carácter alternativo para un carácter dado, el patrón de caracteres se dibujará a partir de los caracteres 256-511. Por lo tanto, si se muestra el carácter 65, habilitar el indicador de carácter alternativo mostrará el carácter 321 en su lugar. La bandera de caracteres alternativos se usa normalmente cuando está configurado el modo mayúsculas/minúsculas; la bandera está habilitada para todas las posiciones de pantalla VDC, lo que hace que se muestre el conjunto de caracteres en mayúsculas/minúsculas y sus versiones de vídeo inversas en lugar del conjunto de caracteres predeterminado en mayúsculas/gráficos.
El VDC no utiliza una ROM de caracteres, en su lugar, los patrones de la ROM de caracteres del VIC-II se copian simplemente en la RAM del VDC como parte de la inicialización al encender el C128, incluidos los patrones para los caracteres de vídeo invertidos, aunque el VDC es capaz de invertir caracteres en hardware. Los patrones de caracteres ocupan 16 bytes en lugar de 8 para almacenarse, ya que el VDC tiene una altura de caracteres ajustable. Dado que la pantalla es de 25 líneas, en la práctica la altura de los caracteres se limita a 8 líneas, lo que significa que la mitad del espacio para los datos de caracteres queda sin usar y se desperdicia. La configuración predeterminada al encender coloca los datos de caracteres en $2000-$3FFF. $2000-$23FFcontienen los patrones para los caracteres en mayúsculas/gráficos, $2C00-$33FFlos caracteres en mayúsculas/minúsculas, mientras que $2400-$2BFFy $3400-$3FFFcontienen los patrones de vídeo invertidos para cada conjunto. El usuario puede definir libremente cualquier carácter personalizado y asignarlo a la memoria del VDC.
Registrar anuncio
Esta información fue adaptada de la Guía de referencia del programador de Commodore 128 [ 3 ].
Referencias
- ↑ "Commodore.ca | Productos | Commodore 128, 128D, 128DCR, Historia, Manuales, Imágenes y Cronología" . www.commodore.ca . Archivado del original el 26 de julio de 2003.
- ^ Capítulo 3.9.1 "VDC HI-RES-Grafik" Página 213 y siguientes
- ↑ Commodore Capital, Inc., (1986). Guía de referencia del programador de Commodore 128. Nueva York, NY: Bantam Books, Inc.
Enlaces externos
- Archivo autoextraíble de ultra alta resolución - Volumen I
- Archivo autoextraíble de ultra alta resolución - Volumen II
- C= Hacking volumen 2 - Listado y descripción de registros
- Circuitos integrados con tecnología MOS
- chips gráficos
- Commodore 64