stringtranslate.com

Gráficos de Apple II

Los gráficos de Apple II debutaron en el Apple II original en 1977 y se utilizaron en toda la serie de computadoras del mismo nombre . Los gráficos consisten en un modo de baja resolución de 16 colores y un modo de alta resolución donde las imágenes dependen del color de los artefactos . El Apple IIe agregó versiones "dobles" de cada uno de estos, la más destacada "doble alta resolución" con el doble de resolución horizontal en 16 colores. Internamente, los modos gráficos de Apple II son idiosincrásicos y no utilizan un búfer de cuadros lineal .

Los modos gráficos introducidos con el Apple II GS de 1986 se separaron de los de los modelos Apple II anteriores y tienen más en común con los del Atari ST y el Amiga .

Peculiaridad de los modos gráficos

Los modos gráficos de la serie Apple II eran distintos incluso para los estándares de finales de los años 1970 y principios de los años 1980. Una peculiaridad notable de estos modos es un resultado directo del diseño de ahorro de chip del fundador de Apple, Steve Wozniak . Muchos sistemas informáticos domésticos de la época (así como los IBM PC compatibles de la actualidad ) tenían una arquitectura que asignaba bloques consecutivos de memoria a filas no consecutivas en la pantalla en modos gráficos, es decir, intercalado. [ cita requerida ] Los modos de texto y gráficos de Apple se basan en dos factores de intercalado diferentes de 8:1 y 64:1.

Una segunda peculiaridad de los gráficos del Apple II, las llamadas "franjas de color", son otro subproducto del diseño de Wozniak . Si bien aparecen en todos los modos gráficos, desempeñan un papel crucial en el modo de alta resolución o Hi-Res.

Salida de vídeo

La lectura de un valor desde, o la escritura de cualquier valor en, determinadas direcciones de memoria controlaban los llamados " interruptores suaves ". El valor leído o escrito no importa, lo que cuenta es el acceso en sí. Esto permitía al usuario hacer muchas cosas diferentes, incluyendo visualizar la pantalla de gráficos (de cualquier tipo) sin borrarla, visualizar la pantalla de texto, borrar la última tecla presionada o acceder a diferentes bancos de memoria. Por ejemplo, se podía cambiar de una pantalla mixta de gráficos y texto a una pantalla de todos los gráficos accediendo a la ubicación 0xC052 (49234). Luego, para volver a la pantalla mixta de gráficos y texto, se accedería a 0xC053 (49235).

Hardware de salida de vídeo incorporado

Todas las máquinas Apple II tenían un conector RCA que proporcionaba una salida de vídeo compuesto NTSC , PAL o SECAM (en las máquinas que no eran NTSC antes de la Apple IIe, esta salida era en blanco y negro). Esto permitía conectar la computadora a cualquier monitor de vídeo compuesto que se ajustara al mismo estándar para el que estaba configurada la máquina. Sin embargo, la calidad de esta salida no era confiable; la señalización de sincronización era lo suficientemente cercana para los monitores, pero no se ajustaba lo suficiente a los estándares como para ser adecuada para aplicaciones de transmisión, o incluso para ingresar a una grabadora de vídeo, sin procesamiento intermedio. La excepción fue la versión Extended Back del II Plus negro de la marca Bell & Howell, que sí proporcionaba una sincronización de vídeo adecuada, así como otras funciones orientadas a los medios.

Además del conector de salida de vídeo compuesto, el IIc, el IIc Plus y el II GS contaban con una salida de 15 pines de dos filas . En el IIc y el IIc Plus, este conector era un conector de vídeo de propósito especial para adaptadores a monitores RGB digitales y moduladores de RF . En el II GS era una salida para un monitor RGB analógico especialmente diseñado para el II GS .

Tarjetas de salida de vídeo complementarias

Había numerosas tarjetas de visualización de vídeo complementarias disponibles para la serie Apple II, como la tarjeta de texto de 80 columnas de Apple . Había tarjetas de color PAL que permitían la salida en color en las primeras máquinas PAL. Algunas otras tarjetas simplemente añadían capacidades de visualización de 80 columnas y minúsculas , mientras que otras permitían la salida a un monitor IBM CGA a través de un conector de salida DE9 .

Detalles del modo gráfico

Color en el Apple II

La salida de vídeo del Apple II es en realidad una pantalla monocromática basada en los patrones de bits de la memoria de vídeo (o píxeles). Estos píxeles se combinan en cuadratura con la señal de ráfaga de color para que una pantalla de vídeo compuesto los interprete como color. Esto da como resultado una paleta de vídeo compuesto de 16 colores , basada en el espacio de color YIQ utilizado por el sistema de televisión en color NTSC. [1] [2]

La alta resolución proporciona dos píxeles por ciclo de Colorburst , lo que permite dos colores posibles si un píxel está encendido, negro si no hay píxeles encendidos o blanco si ambos píxeles están encendidos. Al desplazar la alineación de los píxeles con respecto a la señal de Colorburst en 90°, se pueden mostrar dos colores más para un total de cuatro colores posibles. La baja resolución permite cuatro bits por ciclo, pero repite el patrón de bits varias veces por píxel de baja resolución. La doble alta resolución también muestra cuatro píxeles por ciclo.

Gráficos de baja resolución (Lo-Res)

Los colores de baja resolución 0 (negro), 3 (violeta), 6 (azul medio), 9 (naranja), 12 (verde claro) y 15 (blanco) también estaban disponibles en el modo de alta resolución. Los colores 5 y 10 (gris) son indistinguibles en el hardware original; sin embargo, algunos emuladores (como las versiones anteriores de AppleWin ) los muestran en tonos diferentes. Tenga en cuenta que algunos de los colores del emulador de AppleWin que se ven aquí difieren notablemente de los que se muestran en el hardware original.

El modo de gráficos de baja resolución (conocido a menudo como GR , por el comando BASIC) era de 40 píxeles de ancho, lo que correspondía a las 40 columnas de la pantalla de texto normal del Apple II. Este modo podía mostrar 40 filas de píxeles con cuatro líneas de texto en la parte inferior de la pantalla o 48 filas de píxeles sin texto. De este modo, dos píxeles, apilados verticalmente, llenarían el espacio de la pantalla correspondiente a un carácter en modo de texto. El valor predeterminado para esto eran gráficos de 40×40 con texto.

Hay 16 colores disponibles para usar en este modo (en realidad, 15 en la mayoría de los casos, ya que los dos tonos de gris son idénticos en brillo en el hardware original de Apple, excepto en el Apple II GS ). Tenga en cuenta que seis de los colores son idénticos a los colores disponibles en el modo de alta resolución (Hi-Res).

Los colores se crearon rellenando el píxel con un patrón binario repetitivo de 4 bits de tal manera que cada grupo de bits encajara dentro de un ciclo de la señal de referencia Colorburst . Las pantallas en color interpretarían este patrón como una señal de color. En los monitores monocromáticos , o si la señal Colorburst estaba desactivada, la pantalla revelaría estos patrones de bits. Hay dos tonos de gris equivalentes, ya que 5 (0101) es equivalente a 10 (1010) según cómo se mezclan los colores; los bits "activados" son polos opuestos entre sí en la señal de color en cuadratura , por lo que se cancelan entre sí y se muestran en gris.

Este modo está asignado a la misma área de memoria que la pantalla de texto principal de 40 columnas (0x400 a 0x7FF), y cada byte almacena dos píxeles, uno encima del otro.

El modo de gráficos de baja resolución ofrecía comandos integrados para limpiar la pantalla, cambiar el color del dibujo, trazar píxeles individuales, trazar líneas horizontales y trazar líneas verticales. También había una función "SCRN" para extraer el color almacenado en cualquier píxel, función de la que carecían los otros modos.

Disposición de la memoria de baja resolución

Un bloque de 128 bytes almacena tres filas de 40 caracteres cada una, con un resto de ocho bytes que quedan después de que se almacena la tercera fila. Pero estos bytes no se dejan vacíos. En cambio, el firmware de la placa base y el firmware de la tarjeta de expansión los utilizan de diversas formas para almacenar información importante, principalmente sobre dispositivos externos conectados al ordenador. Esto creaba problemas cuando el usuario cargaba un texto o una pantalla de gráficos de baja resolución directamente en la memoria de vídeo, reemplazando la información actual en los agujeros con la que había en el momento de guardar. La recalibración del cabezal del disco era un efecto secundario común, cuando el controlador del disco encontraba que su memoria (en un agujero de la pantalla) de donde estaba el cabezal, de repente no coincidía con los datos del encabezado de la pista que estaba leyendo. Los programadores de Apple respondieron programando ProDOS para que el usuario no pudiera cargar directamente un archivo (datos de pantalla o de otro tipo) en 0x400-0x7FF. Pronto surgieron programas ProDOS para cargar correctamente los datos en esta parte de la memoria; varios aparecieron en la revista Nibble .

Pantalla 2 Gráficos y texto de baja resolución

El hecho de tener dos pantallas para visualizar imágenes de vídeo era una parte integral del diseño de la familia Apple II. Al acceder a la posición de memoria 0xC055 (49237) se mostraba la "Pantalla 2" independientemente de cómo se hubieran configurado los otros "interruptores suaves". El espacio de texto y de pantalla de baja resolución 2 oscilaba entre 0x800 (2048) y 0xBFF (3071). El intercalado es exactamente el mismo que para la pantalla principal ("Pantalla 1"). Los programas BASIC de Applesoft se cargan en 801h (2049) de forma predeterminada; por lo tanto, ocuparán el espacio de la Pantalla de texto 2 a menos que se le indique al ordenador que cargue un programa en otra parte de la memoria. Por el contrario, algunos programas de software comerciales para Apple II utilizaban este espacio de memoria para diversos fines, normalmente para mostrar una pantalla de ayuda.

"Modo de visualización alternativo" en el Apple IIGS

A diferencia de los otros tipos de máquinas Apple II, la Apple II GS contaba con un procesador (el 65816 ) que podía manejar más de 64K de RAM sin necesidad de trucos especiales. En las IIgs, la RAM estaba dividida en bancos de 64K. Por ejemplo, el banco 0xE0 consistía en el rango de 0xE00000 a 0xE0FFFF. Las Apple IIgs tenían un chip llamado "Mega II" que le permitía ejecutar la mayoría de los programas escritos para otras computadoras Apple II. La arquitectura de las IIgs asignaba los datos de la pantalla al banco de memoria 0xE0. Sin embargo, en el modo de emulación de la IIe , los datos de la pantalla se almacenaban en el banco 0x00. Esto presentaba un problema. Los diseñadores de las Mega II incluyeron rutinas para copiar la mayoría de los datos de la pantalla al banco 0xE0 para garantizar que los programas específicos de las Apple IIe funcionaran correctamente. Pero se olvidaron de la pantalla de texto 2, que rara vez se usaba. Esto no se descubrió hasta que los chips Mega II llegaron a las máquinas IIgs. Por eso, los diseñadores del firmware añadieron un CDA (accesorio de escritorio clásico, al que se puede acceder desde el menú Accesorios de escritorio de IIgs, invocado con Apple+ Control+ Escape) llamado "Modo de pantalla alternativa", [4] que realizaba la tarea para los pocos programas que lo necesitaban, a costa de un poco de tiempo de CPU. Se podía encender y apagar a voluntad, pero volvía a apagarse cuando se reiniciaba la computadora.

La compatibilidad mejorada con Text Screen 2 se solucionó con la introducción de la Apple IIGS con 1 megabyte de RAM (mejor conocida como ROM 3) en 1989. La nueva placa base proporcionaba sombreado de hardware de Text Screen 2, sin costo de tiempo de CPU, por lo que no afectaba la velocidad de ejecución del software. Aunque el modo de visualización alternativo seguía siendo una opción en el menú CDA, la máquina detectaba automáticamente la presencia de Text Screen 2 y habilitaba el sombreado de hardware de Text Screen 2 en el banco 0xE0 en las máquinas con ROM 3.

Gráficos de alta resolución (Hi-Res)

Es posible generar límites de color suaves entre un color y el negro o el blanco; sin embargo, se debe elegir el negro o el blanco "correcto". Las dos imágenes superiores muestran el blanco y negro de la paleta verde/violeta sobre un fondo verde. Las dos imágenes inferiores muestran el blanco y negro de la paleta azul/naranja sobre un fondo verde; esto hace que muchos de los píxeles verdes circundantes se vuelvan anaranjados.
Los bordes horizontales entre dos colores generan "efectos de franjas" en el Apple II. En la imagen inferior izquierda, al dibujar una estrella azul sobre un fondo verde, el Apple II agrega píxeles negros, blancos y naranjas en los límites horizontales entre el verde y el azul y cerca de ellos.

Cuando salió el Apple II, se había añadido un nuevo modo para gráficos de alta resolución de 280×192. Al igual que el modo Lo-Res, el modo Hi-Res tenía dos pantallas; en Applesoft BASIC , cualquiera de las dos podía inicializarse, utilizando los comandos HGR para la primera pantalla o HGR2 para la segunda.

La ROM BASIC de Applesoft contenía rutinas para limpiar cualquiera de las dos pantallas de alta resolución, dibujar líneas y puntos y establecer el color del dibujo. La ROM también contenía rutinas para dibujar, borrar, escalar y rotar formas basadas en vectores . No había rutinas para trazar formas en mapas de bits , dibujar círculos y arcos o rellenar un área dibujada, pero se escribieron muchos programas; muchos aparecieron en Nibble y otras revistas de Apple II.

El usuario podía "cambiar" cuatro líneas de texto en el modo de alta resolución, al igual que en el modo de baja resolución; sin embargo, esto ocultaba las 32 líneas inferiores, lo que daba como resultado una imagen de 280  ×  160. Las rutinas de ROM aún podían modificar la parte inferior, aunque estuviera oculta.

El modo de alta resolución del Apple II era peculiar incluso para los estándares de la época. Mientras que la tarjeta CGA lanzada cuatro años después del Apple II en el IBM PC permitía al usuario seleccionar uno de los dos conjuntos de colores para crear gráficos de 320x200, solo había cuatro colores disponibles a la vez (el color de fondo y tres colores de dibujo). Por el contrario, el Apple ofrecía ocho colores para gráficos de alta resolución o en realidad seis, ya que el blanco y el negro se repetían en el esquema. Cada fila de 280 píxeles se dividía en 40 bloques de siete píxeles cada uno, representados en un solo byte. Cada par de píxeles adyacentes generaba un solo píxel de color a través de un color de artefacto , lo que daba como resultado una resolución efectiva de 140x192. Los siete bits inferiores de cada byte representaban los píxeles, mientras que el bit más significativo controlaba el desfase de fase para ese bloque de píxeles, alterando el color que se mostraba.

Aunque esta característica permite tener seis colores en pantalla simultáneamente, tiene un efecto secundario desagradable. Por ejemplo, si un programador intentaba dibujar una línea azul sobre una verde, partes de la línea verde se convertían en naranjas. Esto se debe a que, en este caso, al dibujar la línea azul se establece el MSB para cada bloque de siete píxeles. Los píxeles "verdes" y "naranjas" se representan de la misma manera en la memoria; la diferencia está en la configuración (o borrado) del MSB. Otro efecto secundario es que para dibujar un píxel era necesario dividirlo por siete. (Para el procesador 6502 de Apple, que no tenía hardware de división, dividir por siete era relativamente lento. Si para dibujar un píxel solo se hubiera necesitado dividirlo por una simple potencia de dos, como ocho, esto solo habría necesitado una secuencia de desplazamientos de bits, lo que habría sido mucho más rápido).

El modo Hi-Res del Apple II también era peculiar por su factor de intercalación de 64:1. Esto era un resultado directo del diseño de ahorro de chip de Steve Wozniak. [5] El factor 64:1 resultó en un efecto de "persiana veneciana" al cargar una pantalla de alta resolución en la memoria desde un disquete (o a veces un disco RAM ) con los interruptores suaves ya configurados. Los "agujeros de pantalla" ocurren en el modo Hi-Res al igual que en los modos de baja resolución y texto. No se almacenaba nada allí, aunque ocasionalmente se usaban para almacenar código en imágenes ejecutables que se mostraban automáticamente. Otra excepción notable es el formato Fotofile (FOT) [6] heredado por ProDOS de Apple SOS , que incluía metadatos en el byte 121 (el primer byte del primer agujero) que indicaban cómo debía mostrarse (modo de color, resolución) o convertirse a otros formatos gráficos.

Por último, otra peculiaridad del diseño de Wozniak es que, si bien cualquier píxel puede ser negro o blanco, solo los píxeles con coordenadas X impares pueden ser verdes o naranjas. Del mismo modo, solo los píxeles pares pueden ser morados o azules. [7] Aquí es donde entra en juego el llamado "beneficio adicional". El hardware de vídeo de Apple interpreta una secuencia de dos o más píxeles horizontales encendidos como blanco sólido, mientras que una secuencia de píxeles alternados se mostraría como color. De manera similar, una secuencia de dos o más píxeles horizontales apagados se mostraría como negro.

No había ningún comando integrado para extraer el color de un píxel en la pantalla de alta resolución, o incluso para determinar si estaba encendido. Se escribieron varios programas para determinar si un píxel estaba encendido, y en la edición de abril de 1990 de Nibble se publicó un programa para extraer el color verdadero del píxel .

Así como hay dos páginas de texto en la pantalla (y dos páginas de gráficos de baja resolución), también hay dos páginas de alta resolución, asignadas una tras otra en la memoria. La segunda pantalla de alta resolución se asignó a 0x4000-0x5FFF , o 16384–24575 en decimal. El CGA de IBM solo admitía una página de gráficos a la vez. Esto simplificó la animación en el Apple II, porque un programador podía mostrar una página mientras modificaba la otra (oculta).

Siempre que el vector de reinicio no haya sido ocluido por un programa en ejecución, la invocación de + interrumpiría un programa y escaparía al monitor o al símbolo del sistema de Applesoft. El uso de ++ forzaría un reinicio a expensas de una pequeña cantidad de corrupción de memoria. La configuración creativa de algunos interruptores suaves en el monitor o en el símbolo del sistema permitía la visualización inmediata de imágenes de programas interrumpidos. Luego se podían grabar escenas favoritas de juegos. En Apple //e y //c, el uso de ++ daría como resultado que el patrón 0xA0A0 ​​se escribiera dispersamente en toda la memoria, incluidas las páginas de alta resolución 1 y 2 a $2000$5FFF . La corrupción por estos artefactos se podía editar usando un paquete de pintura. En el Apple //e mejorado, la memoria de video de alta resolución se podía preservar sin artefactos mediante la siguiente secuencia: presionar + + y deslizar la tecla hacia arriba y luego hacia abajo durante una fracción de segundo, repitiendo hasta que el patrón de color de autodiagnóstico comenzara a llenar la primera línea de texto en la esquina superior izquierda. Dado que el autodiagnóstico avanzaba desde $0000 en adelante, una vez que se borraba la dirección inicial de la página de texto 1 ( $400 ), también se borraba la suma de comprobación del vector de reinicio ( $3F4 ), lo que significaba que una pulsación rápida posterior de + obligaría al firmware a reiniciarse sin borrar la memoria por encima de $0800 en los bancos principal o auxiliar. Era posible guardar estas imágenes en un disquete y crear una presentación de diapositivas o una imagen estática, porque un reinicio suave no borraba la memoria de video en las imágenes de alta resolución.ControlResetControlOpen-AppleResetControlOpen-AppleResetControlClosed-AppleResetResetControlReset

Modos gráficos en modelos posteriores (IIe, IIc, IIc Plus, IIGS)

Poco después de la introducción del Apple IIe, los ingenieros de Apple se dieron cuenta de que el circuito de duplicación del ancho de banda de vídeo utilizado para implementar el modo de texto de 80 columnas se podía ampliar fácilmente para incluir los modos gráficos de la máquina. Dado que la señal estaba presente en el conector de ranura auxiliar que albergaba la tarjeta de 80 columnas extendida, el Anunciador 3 del puerto de juegos se sobrecargó para activar los gráficos de doble resolución cuando se seleccionaba tanto el vídeo de 80 columnas como un modo gráfico. Se ofrecieron placas base de repuesto (llamadas placas base Revisión B) de forma gratuita a los propietarios del Apple IIe para actualizar sus máquinas con capacidades gráficas de doble resolución. Por este motivo, las máquinas con la placa base Revisión A original son extremadamente raras. Los modelos posteriores del Apple II también implementan los modos gráficos de doble resolución.

Doble baja resolución

Se trataba de un modo gráfico de 80×40 (o 80×48) disponible únicamente en máquinas de 80 columnas. En Applesoft BASIC, para habilitar este modo se necesitaban tres pasos. Primero, se habilitaba el modo de 80 columnas con , luego se habilitaban los gráficos de doble densidad con , seguido de .PR#3POKE 49246,0GR

10 IMPRIMIR CHR$ ( 4 ) "PR#3" : IMPRIMIR CHR$ ( 0 ); : POKE 49246 , 0 : GR          

Tenga en cuenta que esto PR#3se posterga al sistema operativo para evitar desconectarlo de BASIC. A esto le sigue un comando PRINT para enviar un carácter nulo, porque el dispositivo de salida recién asignado no se inicializa hasta que se le envía el primer carácter, lo que es una fuente común de confusión.PRINT CHR$(4)

Una vez hecho esto, se mostró y borró la pantalla Double Lo-Res y los comandos PLOT, HLIN, y VLINfuncionaron normalmente con el rango de coordenadas x extendido de 0 a 79. Solo Apple IIc y IIgs admitían esto en el firmware. Usar el modo Double Lo-Res desde BASIC en un IIe era mucho más complicado sin agregar una &extensión de comando a BASIC.

En Applesoft, el uso de este modo presentaba dos problemas importantes. En primer lugar, una vez activado el modo, el acceso a la impresora se complicaba, debido a que el firmware de la pantalla de 80 columnas se manejaba como una impresora. En segundo lugar, la función (lectura de píxeles) no funcionaba correctamente. Sin embargo, en la edición de marzo de 1990 de NibbleSCRN había un programa que solucionaba este problema.

Se sabía que al menos un compilador BASIC disponible comercialmente , ZBASIC de Zedcor Systems, soportaba gráficos Double Lo-Res.

Doble alta resolución

La composición de la pantalla Double Hi-Res es complicada. Además del entrelazado de 64:1, los píxeles de las filas individuales se almacenan de una manera inusual: cada píxel tenía la mitad de su ancho habitual y cada byte de píxeles se alternaba entre el primer y el segundo banco de memoria de 64 KB. Donde tres píxeles consecutivos eran blancos, ahora se necesitaban seis en la doble alta resolución. De hecho, todos los patrones de píxeles utilizados para crear color en los bloques gráficos de baja resolución se podían reproducir en gráficos Double Hi-Res.

La implementación de ProDOS de su disco RAM facilitó el acceso a la pantalla Double Hi-Res al hacer que el primer archivo de 8 KB guardado en /RAM almacene sus datos en 0x012000 a 0x013fff por diseño. Además, era posible una segunda página, y un segundo archivo (o un primer archivo más grande) almacenaría sus datos en 0x014000 a 0x015fff . Sin embargo, el acceso a través del sistema de archivos ProDOS era lento y no era adecuado para la animación de cambio de página en Double Hi-Res, más allá de los requisitos de memoria.

Aplicaciones que utilizan doble alta resolución

A pesar de las complejidades que implica la programación y el uso de este modo, existían numerosas aplicaciones que lo utilizaban. Los gráficos Double Hi-Res se incluían en aplicaciones empresariales, software educativo y juegos por igual. La versión de Apple de GEOS utilizaba Double Hi-Res, al igual que el programa de pintura de Broderbund , Dazzle Draw . Beagle Bros proporcionaba un kit de herramientas, Beagle Graphics, con rutinas para desarrollar gráficos Double Hi-Res en AppleSoft BASIC. Numerosos juegos arcade y juegos escritos para otros ordenadores se trasladaron al Apple II, y muchos aprovecharon este modo gráfico. También existían numerosos programas de utilidad y tarjetas de impresora enchufables que permitían al usuario imprimir gráficos Double Hi-Res en una impresora matricial o incluso en LaserWriter .

Manzana IIGS

Además de soportar los modos existentes, el Apple II GS agrega nuevos modos similares a los del Atari ST y Amiga .

Véase también

Referencias

  1. ^ abc "The Laboratorium: ¿Por qué el Apple II tenía seis colores?". laboratorium.net .
  2. ^ abc "Copia archivada" (PDF) . Archivado desde el original (PDF) el 2014-08-14 . Consultado el 2014-07-15 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )
  3. ^ ab BB Imagen frontal de Apple
  4. ^ Nibble , febrero de 1992
  5. ^ Nibble , julio de 1990
  6. ^ Notas sobre el tipo de archivo de Apple II : FTN.08.0000
  7. ^ Nibble , diciembre de 1988, pág. 66