stringtranslate.com

Tecnología MOS 8563

El VDC fue diseñado teniendo en mente las aplicaciones de la suite ofimática . Aquí se muestra SpeedScript 128 , un procesador de textos .

El controlador de pantalla de vídeo ( VDC ) 8563 fue un circuito integrado producido por MOS Technology . Se utilizó en la computadora Commodore 128 (C128) para generar una pantalla de video RGB de 80 columnas (640 × 200 píxeles ) , ejecutándose junto con un VIC-II que admitía gráficos compatibles con Commodore 64 . Los modelos DCR (así como algunos modelos D) del C128 utilizaron el controlador 8568 [D]VDC posterior y más avanzado técnicamente .

Historia y características

Originalmente pensado para una computadora empresarial basada en UNIX planificada (pero inédita) basada en Zilog Z8000 , Commodore diseñó el VDC en varias máquinas prototipo. De estos, sólo 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; actualizable a 64 kilobytes, 65.536 bytes) en el C128 original o "plano" y 64 kilobytes en el C128DCR . El microprocesador no podía acceder directamente a esta RAM .

El 8563 fue más difícil de producir que la mayoría del resto de la línea de tecnología MOS y los rendimientos iniciales fueron muy bajos. Las primeras unidades también tenían importantes problemas de confiabilidad y tendían a autodestruirse por sobrecalentamiento. [1] Además, hubo problemas de sincronización con el VDC que provocarían un mal funcionamiento de las operaciones de carga y almacenamiento indirecto en sus registros.

Oficialmente, el VDC era un chip de sólo texto, aunque una lectura cuidadosa de la literatura técnica de MOS Technology que se entregó a los primeros desarrolladores del C128 indicó que era posible un modo de mapa de bits de alta resolución ; simplemente no estaba descrito en ningún 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 chip VIC-II heredado.

Esta demostración en ultra alta resolución muestra las capacidades de blitter del VDC con una simple animación 3D de un modelo de estructura de alambre de un cubo .

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 los Estados Unidos por Abacus Software), y un programa en lenguaje ensamblador. fue proporcionado por los autores alemanes Klaus Löffelmann y Dieter Vüllers, en el que era posible configurar o borrar cualquier píxel o, utilizando BASIC para realizar los cálculos necesarios, generar formas geométricas en mapas 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 describe el modo de mapa de bits del VDC e incluye un programa de escritura (escrito en lenguaje ensamblador 8502 ). ) que amplió las capacidades de BASIC 7.0 para admitir gráficos de alta resolución de 640×200 utilizando el 8563.[1] Los autores Lou Wallace y David Darus desarrollaron posteriormente la utilidad Ultra Hi-Res en un paquete comercial, BASIC 8 . Una de las utilidades de terceros más populares para el C128, ofrecía capacidades de alta resolución VDC más avanzadas a una amplia audiencia de programadores.

Commodore finalmente 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 VDC se utilizaron ampliamente en la versión C128 del sistema operativo GEOS .

El VDC carecía de capacidades de sprites , lo que limitaba su uso en aplicaciones de juegos . Sin embargo, contenía capacidades de blitting para realizar de forma autónoma copias de memoria de pequeños bloques dentro de su RAM de video dedicada. Mientras el VDC realiza dicha copia, la CPU del sistema puede continuar ejecutando código, siempre que no se intente ningún otro acceso al VDC antes de finalizar la copia. Estas funciones fueron utilizadas por la ROM del editor de pantalla del C128 para desplazarse o borrar rápidamente secciones de la pantalla.

Especificaciones técnicas

* Esto se aplica únicamente a los C128 de 60 Hz de EE. UU. Las máquinas C128 de 50 Hz emiten una señal con una actualización vertical de 50 Hz. Aunque no se ajustaban al estándar CGA, la mayoría de los monitores CGA eran capaces de mostrar la señal de 50 Hz sin problemas. Sin embargo, algunos monitores no lograron resolver la señal o lograron resolverla, pero tarde o temprano sus circuitos de desviación fallarían debido a estrés eléctrico o térmico, requiriendo reparación.

Programación

El direccionamiento de los registros internos del VDC y de la memoria de vídeo dedicada debe realizarse por medios indirectos. Primero, el programa debe indicarle al VDC a cuál de sus 37 registros internos se debe acceder. A continuación, el programa debe esperar hasta que el VDC esté listo para el acceso, después de lo cual se puede realizar una lectura o escritura en el registro interno seleccionado. El siguiente código ensamblador es típico de una lectura de registro:

 ldx # regnum ;registro VDC para acceder a stx $d600 ;escribir en el bit de bucle del registro de control $d600 ;verificar el bit 7 del bucle bpl del registro de estado ;VDC no listo lda $d601 ;leer del registro VDC ...                

El siguiente código es típico de una operación de escritura de registro:

 ldx # regnum ;registro VDC para escribir en stx $d600 ;escribir en el bit de bucle del registro de control $d600 ;verificar el bit 7 del bucle bpl del registro de estado ;VDC no listo sta $d601 ;escribir en el registro VDC ...                

Lo mismo es factible 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 máxima velocidad de fotogramas posible en el modo de mapa de bits es generalmente 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 modo de texto estándar, el VDC se comporta de manera muy similar al VIC-II excepto que tiene 2k de memoria de pantalla en lugar de 1k. La configuración predeterminada de encendido coloca la memoria de pantalla $0-$7FFy la memoria de color en $800-$9FFy se pueden mover a cualquier lugar de la memoria VDC siempre que esté en un límite de 2k. Los atributos se manejan como 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 según el color de la RAM. Además de los datos de color, este último 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 juego de caracteres alternativo. El VDC puede utilizar hasta 512 caracteres. Cuando la marca de carácter alternativo para un carácter determinado está habilitada, el patrón de caracteres se extraerá de los caracteres 256 a 511. Por lo tanto, si se muestra el carácter 65, al habilitar el indicador de carácter alternativo se mostrará el carácter 321. El indicador de caracteres alternativos se usa normalmente cuando se configura el modo mayúsculas/minúsculas; el indicador está habilitado para todas las posiciones de la pantalla VDC, lo que hace que se muestre el conjunto de caracteres en mayúsculas/minúsculas y sus versiones de video inverso en lugar del conjunto de caracteres en mayúsculas/gráficos predeterminado.

El VDC no utiliza una ROM de caracteres; en cambio, los patrones de ROM de caracteres del VIC-II simplemente se copian en la RAM del VDC como parte de la inicialización de encendido del C128, incluidos los patrones para caracteres de video inverso, aunque el VDC es capaz de invertir caracteres en el hardware. Los patrones de caracteres requieren 16 bytes en lugar de 8 para almacenarse, ya que el VDC tiene una altura de caracteres ajustable. Dado que la pantalla tiene 25 líneas, en la práctica la altura de los caracteres está limitada a 8 líneas, lo que significa que la mitad del espacio para los datos de los caracteres no se utiliza y se desperdicia. La configuración predeterminada de encendido coloca los datos de los caracteres en formato $2000-$3FFF. $2000-$23FFcontiene los patrones para los caracteres gráficos/mayúsculas, $2C00-$33FFlos caracteres mayúsculas/minúsculas, mientras que $2400-$2BFFcontiene $3400-$3FFFlos patrones de vídeo inversos para cada conjunto. El usuario puede definir libremente cualquier carácter personalizado y asignarlo a la memoria VDC.

Listado de registro

Esta información fue adaptada de la Guía de referencia del programador del Commodore 128 [3]

Referencias

  1. ^ "Commodore.ca | Productos | Commodore 128, 128D, 128DCR, historial, manuales, imágenes y línea de tiempo". www.commodore.ca . Archivado desde el original el 26 de julio de 2003.
  2. ^ Capítulo 3.9.1 "VDC HI-RES-Grafik" Página 213 y siguientes
  3. ^ Comodoro Capital, Inc., (1986). Guía de referencia del programador Commodore 128. Nueva York, Nueva York: Bantam Books, Inc.

enlaces externos