Esta vez os traemos una reseña del 6845 CRTC, un chip gráfico que se utilizó en multitud de ordenadores y máquinas recreativas de finales de los 70 y principios de los 80 para usos totalmente dispares. Desde la generación de tilemaps en recreativas famosas hasta terminales de texto de 80 columnas.
¿Cómo funcionaba el 6845 CRTC?
El 6845 CRTC es un generador de caracteres, es decir, era una versión en un solo chip (LSI) de los diseños construidos por una gran cantidad de chips TTL que formaban una terminal de texto. No obstante, mientras que la gran mayoría de diseños, tanto integrados en un chip o con circuitería de lógica transistor a transistor, tenían unas especificaciones fijas, el controlador de Motorola era altamente versátil.
Entra otras cosas permitía:
- Usar caracteres de cualquier ancho y altura, lo que le permitía usar cualquier ROM de caracteres
- Se pueden configurar la cantidad de caracteres por líneas, así como la cantidad de líneas de resolución. Lo que le permitía soportar múltiples resoluciones.
- Todo ello dentro de unos límites: la cantidad de líneas no podía ser superior al estándar televisivo y no podía haber más de 640 bits de información por línea.
- Podía funcionar tanto en los modos entrelazado como progresivo, permitiendo más líneas de resolución vertical si el sistema lo requería.
Todo ello se hacía configurando unos registros durante el inicio del sistema. Se trata, por tanto, de un chip que pese a dicha versatilidad es sumamente simple, pero que tuvo su importancia en la historia de la informática por la cantidad de sistemas que lo usaron.
Búfer de imagen y tilemaps
Dado que podemos configurar el tamaño de los caracteres hasta ser de un solo píxel, esto nos permite no solo que funcione como un generador de caracteres al uso con la capacidad de funcionar para terminales de texto o para crear tilemaps de fondo para videojuegos, sino que tiene la capacidad de crear un búfer de imagen entero, esto se consigue enviando el valor de color uno o varios píxeles desde la CPU al búfer de imagen en el periodo VBlank y de allí al búfer de línea mientras se genera la imagen.
Por desgracia, para las CPU de la época, transmitir 80 x 25 direcciones de memoria para una terminal de texto o un tilemap (2 KB) durante el VBlank era en cierta medida posible y en algunos casos con una tasa de refresco baja. Imaginad, por ejemplo, transmitir los valores de color píxel por píxel. Por lo que el 6845 CRTC se quedó principalmente para bitmaps de fondo.
No obstante, la mayor limitación del 6845 CRTC es que su búfer de línea no es mayor a 640 bits, esto son, la misma cantidad de píxeles en monocromo, 320 píxeles con 2 bits por píxel (4 colores) o 160 píxeles con 4 bits por píxel (16 colores). Debido a la naturaleza del IBM PC pocos juegos usaron el modo de 16 colores, ya que se ideó para oficinas. En cambio, el Amstrad CPC sí que lanzó como ordenador doméstico y sí que uso el modo multicolor.
No es un chip gráfico completo
Uno de los problemas del 6845 CRTC es que no dispone de la parte final de la salida de vídeo, por lo que no incluye el mecanismo de color. El motivo de ello es que pese a que tiene la capacidad de poder generar búferes de imagen e incluso tilemaps a color, cuando se diseñó las pantallas eran en monocromo. Por lo que es necesaria circuitería adicional para que genere el color, esto además tiene una ventaja frente a otros sistemas con paleta fija.
De ahí a que las especificaciones de color y la salidas de vídeo soportadas sean diferentes en cada uno de los sistemas que usan el 6845 CRTC. Dicho de otra forma, si mirases un rato, el Amstrad CPC, la recreativa de Pac-Man y un PC de primera generación, no te creerías que es el mismo sistema de vídeo a no ser que mirases las especificaciones.
Todo esto se debe a que los diseñadores de sistemas tomaron el 6845 CRTC para usarlo de una forma para el que no se diseño originalmente, que era mostrar aburrido texto en pantalla.
La búsqueda de las 80 columnas de texto
Si hubo una aplicación que coloco al Apple II al frente en cuanto a productividad, esta fue Visicalc, considerada la primera hoja de cálculo de la historia y la killer app que consolido a Apple más allá del mercado doméstico, ya que muchas empresas compraron sus ordenadores solo para poder usar dicha aplicación. No obstante, fue su compatibilidad con el modo de 80 columnas, el cual solo se conseguía con ciertas tarjetas de expansión, ya que el modo texto del Apple II soportaba como mucho 40, y las capacidades de expansión del ordenador del sistema diseñado por Wozniac los que llevaron a que multitud de empresas se instalasen tarjetas gráficas, muchas de ellas con el 6845 CRTC a 2 MHz para conseguir la ansiada resolución de 80 caracteres por línea.
Tenemos casos como el Videx Videoterm, la Apple 80-Column Text Card, esta última para el Apple IIe, entre muchas. Que traen de serie un 6845 para permitir un modo texto de 80 columnas, el cual era clave para poder sacar todo el partido a la que por aquel entonces era la aplicación de referencia en las oficinas. No solo en tarjetas de expansión, sino que además, el 6845 CRTC se convirtió en el chip de vídeo en multitud de ordenadores personales orientados al trabajo en oficina.
El impacto fue suficiente como para que IBM se plantease tomarse en serio los ordenadores personales. Y optaron por el 6845 CRTC para sus primeras tarjetas gráficas de su primer PC (el 5150), tanto para el MDA (Monochrome Display Adapter) que reproducía solo texto aunque en alta resolución y, por lo tanto, con 80 columnas, como la tarjeta gráfica CGA (Color Graphics Adapter), el cual usaba un modo texto a baja resolución y un búfer de imagen.
El impacto del 6845 CRTC
El 6845 CRTC se usó en multitud de sistemas a finales de los 70 y principios de los 80, y puede que sea el chip más usado en ordenadores y recreativas de la época. En consolas, debido a necesitar chips externos para ciertas funciones, lo que afectaba al coste, no se utilizó y en general se lo suele asociar mucho al IBM PC y al Amstrad CPC, pero su uso ya se estandarizó mucho antes.
Para empezar en las tarjetas gráficas para el modo de 80 columnas, tanto para el Apple II como para los sistemas basados en el Z80 que usaban CP/M. Sin embargo, fue en máquinas recreativas donde más se utilizó, en concreto para generar los gráficos de fondo, en especial de marcas japonesas. Así pues, tenemos casos como que la placa arcade SEGA G80 donde lanzador Zaxxon utiliza un 6845 CRTC como uno de los integrantes del sistema de vídeo.
Sin embargo, no fue el único y podemos hablar de cómo Nintendo lo uso en sus placas arcade, desde el fallido Radarscope pasando por los diferentes Donkey Kong. Y no, Nintendo no uso el hardware de Famicom/NES en sus recreativas
¿Y qué hay de Namco? La revolucionaria recreativa de Galaxian, el primer videojuego en usar sprites multicolor, también uso el 6845 CRTC en su interior.
Si bien el chip de Motorola no se usó para todo el subsistema gráfico en dichas máquinas recreativas, su presencia nos indica la importancia que tuvo este chip dentro de la industria de videojuegos arcade de la época.
Con esto terminamos nuestro repaso acerca del 6845 CRTC y su importancia en el mundo del hardware clásico.