El Blitter es una de las piezas de hardware en común que usaron varios ordenadores y consolas de la década de los 80 y de los 90. Si bien se suele asociar con el Commodore Amiga, al ser el ordenador que lo popularizó. Sin embargo, dicho componente tiene más historia que la inclusión en el archiconocido ordenador de 16 bits de Commodore, y es por ello que le hemos dedicado un artículo propio, dada su importancia histórica.
Los orígenes del Blitter: el Xerox Alto
(
Los orígenes de lo que es el Blitter podemos encontrarlo en el Xerox Alto. Este desconocido ordenador fue desarrollado en 1973 en el centro de investigación PARC de Xerox. Se trata de un ordenador proveniente de la época en la que se usaban chips TTL, por lo que no se trata de un sistema fabricado a gran escala. ¿Su particularidad? Ser el primer ordenador en tener una interfaz gráfica de usuario basada en ventanas, iconos, menús y en el uso del ratón con un puntero para manejarlos.
Al usar circuitería TTL, excepto para la RAM, necesitaba un total de 13 placas para funcionar. Incluso la CPU se encontraba separada en varias de estas placas. Por lo que se trata de una pieza evolutiva entre los miniordenadores y los ordenadores personales. No obstante, destaca por las innovaciones que trajo consigo, como la ya mencionada interfaz gráfica de usuario, el ratón y cosas como el permitir una conexión de red local a través de Ethernet para el trabajo en grupo en un puesto de trabajo.
Por desgracia, Xerox no le vio salida, pero Apple sí, quienes en 1979, tras una visita al PARC decidieron copiar de forma descarada y mejorar el concepto para crear el Apple Lisa primero y luego el Apple Macintosh. Lo curioso es que no integraron un Blitter en el hardware de ninguno de los ordenadores, pese a que la rutina BitBLT era una función básica en hardware original.
La rutina BitBLT
El Alto generaba gráficos basados en mapas de bits y no en caracteres, como ocurría en la mayoría de sistemas de la época que eran las terminales de texto. Su pantalla vertical era de 606 x 808 píxeles y pese a que era una pantalla monocromática, era capaz de mostrar 4 niveles de luminancia, por lo que requería ni más ni menos que 120 KB de memoria para funcionar.
Tal volumen de datos en 1973 requería una placa llena de chips de memoria solo para almacenar el búfer de imagen. Por lo que la rutina de copia de datos tenía que hacerse en un tiempo relativamente corto para que el entorno gráfico se generase ante los ojos del usuario con la suficiente celeridad.
Si bien la instrucción BitBLT, la cual puede parecer una simple instrucción de movimiento de bloques de memoria, pero iba más allá. Su particularidad era la capacidad de realizar operaciones al vuelo mientras se realizaba la transferencia de datos. La idea es que podía combinar dos patrones de bits usando operaciones booleanas básicas para combinar de una forma dos patrones distintos en uno solo.
El Mindset Computer
Las primeras CPU, a excepción de algunos casos particulares como el Zilog Z80, no incluyeron rutinas de movimiento de bloques y ninguna de ellas añadió la capacidad de realizar operaciones lógicas con los datos. Simple y llanamente, el coste de los transistores era muy alto y dicha función no era imprescindible en un mundo compuesto por terminales de texto. Además, la memoria era cara y un búfer de imagen no era viable a nivel económico. En cualquier caso, ni los miniordenadores más avanzados disponían de una rutina de este tipo, de ahí a que el BitBLT se considerase una instrucción adelantada a su tiempo.
Claro está, que mucha gente cae en un error histórico al considerar al Commodore Amiga 1000 como el primer ordenador con un Blitter integrado, dicho honor se lo lleva el Mindset. Un sistema cuyo diseño empezó en 1982 de la mano de Roger Badertscher y Bruce Irvine, dos exingenieros de Atari que tras la marcha de Jay Miner y Joe Decuir habían pasado a liderar la división de hardware de Atari. Frustrados por no poder hacer nada nuevo debido a las políticas internas de la empresa, decidieron fundar Mindset para crear un ordenador de nueva generación, el cual pivotaría alrededor de dos chips gráficos distintos diseñados con tecnología VLSI.
De ambos chips gráficos creados para el Mindset el que más destaca es el que podemos considerar el primer Blitter de la historia de la informática doméstica, el cual precede en 15 meses en el tiempo al lanzamiento del Commodore Amiga 1000. Si bien el ordenador diseñado por Jay Miner y Joe Decuir era superior en varios aspectos, no fue el primero en integrar un Blitter en su interior.
¿Por qué casi nadie lo conoce?
Por el hecho que fue un fiasco comercial, cuando sus diseñadores empezaron a crear el Mindset lo hicieron tomando como referencia al 80186, y no, no es un error, dicha CPU existió. El problema es que su diseño era posterior a que IBM escogiera el 8086/8088 como CPU para su PC, pero descartara el 8089 para el control de periféricos. Es decir, puede ejecutar código pensado para dicha CPU y es binariamente compatible, pero al usar una gestión de periféricos distinta, tanto el sistema operativo como el software se han de adaptar.
Su arquitectura era casi idéntica a la del 8086/8088, su única particularidad era implementar al 8089 dentro del chip, funcionar a 6 MHz y que la cantidad de ciclos para ciertas instrucciones se redujeron. No obstante, no se usó en PC por el hecho que requería adaptar el software ya existente y el sistema operativo. Es decir, debido a ello, el Mindset era un PC que no podía ejecutar todo el software de PC.
Se dice que Microsoft creó una versión especial del MS-DOS para el Mindset. Las malas lenguas afirman que era la apuesta de Microsoft para hacerle frente al Macintosh y que la primera versión de Windows se estaba diseñando con este ordenador en mente, pero resultó un fiasco comercial que no duró ni un año en el mercado, antes de retirarse definitivamente.
El primer Blitter de la historia
Si bien ya existían en el mercado chips gráficos avanzados para crear gráficos por mapas de bits como el NEC 7220 en el mercado, el Mindset propuso una forma algo distinta de generar gráficos a tiempo real a gran velocidad. Pese a adaptar la rutina BitBLT del Alto, hizo una serie de mejoras al concepto original. En primer lugar, la cantidad de instrucciones lógicas pasó de ser 4 a 8 distintas, cuya funcionalidad podemos ver en la siguiente tabla:
Operación Lógica | Función | Utilidad |
---|---|---|
NULL | No cambia el contenido | El Blitter no realiza ninguna operación; se mantiene el valor previo del canal de destino. |
AND | Combinación de intersección | Solo los píxeles comunes entre las tres fuentes permanecen. Útil para crear máscaras donde varias capas se superponen. |
OR | Fusión completa | Combina las áreas activas de las tres fuentes. Útil para fusionar múltiples capas de gráficos o añadir objetos al fondo. |
XOR | Diferencias exclusivas | Realza diferencias entre las fuentes, útil para efectos de detección de bordes o «highlighting». |
NOT | Inversión | Invierte los valores de la Fuente A. Útil para crear efectos de negativo o invertir una máscara. |
NAND | Inversión de la intersección | Conserva los píxeles que no están presentes en todas las fuentes. Útil para resaltar áreas no comunes. |
NOR | Inversión de la unión completa | Solo conserva píxeles en áreas completamente inactivas. Útil para crear efectos de silueta invertida o eliminar gráficos de fondo. |
XNOR | Coincidencias completas | Conserva píxeles donde las tres fuentes coinciden o son todas inactivas. Útil para verificar igualdad gráfica entre capas o crear efectos de patrón. |
No solo eso, sino que el Blitter del Mindset integró la capacidad de dibujar líneas y arcos en su set de instrucciones, permitiendo su uso en un entorno CAD/CAM. La combinación de ambos conceptos permitía cosas que eran imposibles en otros sistemas. Lo curioso es que cuando Commodore hizo la presentación de las capacidades del Amiga junto a Andy Warhol, lo que hicieron fue copiar de forma descarada las capacidades gráficas que permitía el Blitter del Mindset.
No obstante, el ordenador de Commodore fue gráficamente superior y mejor adaptado a videojuegos. No vamos a entrar en el generador de sprites y el scroll por hardware, ya que el Mindset era una estación de trabajo. Más bien, la ventaja en el Amiga estaba en la capacidad de poder manejar 32 colores en pantalla y un DAC de 12 bits para 4096 colores frente al de 9 bits y hasta 512 colores posibles del Mindset. Eso sin dejarnos de lado otras capacidades del Commodore Amiga, pero todo ello ya lo ampliaremos cuando llegue el momento al hablar de los diferentes sistemas que usaron un Blitter en su hardware gráfico.
S