stringtranslate.com

gráficos Apple II

Los gráficos 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 constan de un modo de baja resolución de 16 colores y un modo de alta resolución donde las imágenes dependen del color del artefacto . El Apple IIe agregó versiones "dobles" de cada uno de estos, entre los que destaca "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 de gráficos introducidos con el Apple II GS de 1986 se separaron de los de los modelos anteriores de Apple II y tienen más en común con el 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 70 y principios de los 80. Una peculiaridad notable de estos modos es el 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 PC compatibles con IBM actuales ) tenían una arquitectura que asignaba bloques consecutivos de memoria a filas no consecutivas en la pantalla en modos gráficos, es decir, entrelazados. [ cita necesaria ] Los modos de texto y gráficos de Apple se basan en dos factores de entrelazado diferentes de 8:1 y 64:1.

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

Salida de vídeo

Leer un valor o escribir cualquier valor en ciertas direcciones de memoria controlaba los llamados " interruptores de software ". No importa el valor leído o escrito, lo que cuenta es el acceso en sí. Esto permitía al usuario hacer muchas cosas diferentes, incluyendo mostrar la pantalla de gráficos (cualquier tipo) sin borrarla, mostrar la pantalla de texto, borrar la última tecla presionada o acceder a diferentes bancos de memoria. Por ejemplo, se podría cambiar de gráficos y texto mixtos a una visualización exclusivamente gráfica accediendo a la ubicación 0xC052 (49234). Luego, para volver a gráficos y texto mixtos, se accedería a 0xC053 (49235).

Hardware de salida de vídeo incorporado

Todas las máquinas Apple II presentaban un conector RCA que proporcionaba una salida de vídeo compuesto NTSC , PAL o SECAM (en máquinas que no eran NTSC anteriores al Apple IIe, esta salida era en blanco y negro). Esto permitió conectar la computadora a cualquier monitor de video compuesto que cumpliera con el mismo estándar para el cual fue configurada la máquina. Sin embargo, la calidad de esta producción no fue 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 la entrada a una grabadora de video, sin intervenir el procesamiento. La excepción fue la versión Extended Back del II Plus negro de la marca Bell & Howell, que proporcionó una sincronización de video 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 presentaban una salida de 15 pines de dos filas . En IIc y 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 adicionales

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 impresión en color en las primeras máquinas PAL. Algunas otras tarjetas simplemente agregaron capacidades de visualización de 80 columnas y minúsculas , mientras que otras permitieron la salida a un monitor IBM CGA a través de un conector de salida DE9 .

Detalles del modo de gráficos

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 explosión de color para que una pantalla de vídeo compuesto los interprete como color.

La alta resolución proporciona dos píxeles por ciclo Colorburst , lo que permite dos colores posibles si un píxel está activado, negro si no hay píxeles activados o blanco si ambos píxeles están activados. Al cambiar la alineación de los píxeles con la señal de explosión de color 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 (púrpura), 6 (azul medio), 9 (naranja), 12 (verde claro) y 15 (blanco) también estaban disponibles en modo de alta resolución. Los colores 5 y 10 (gris) no se distinguen en el hardware original; sin embargo, algunos emuladores (como las versiones anteriores de AppleWin ) los muestran en diferentes tonos. Tenga en cuenta que algunos de los colores del emulador 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 en bloques, pero rápido y colorido (a menudo conocido como GR después del comando BASIC) tenía 40 píxeles de ancho, correspondientes a las 40 columnas de la pantalla de texto normal de Apple II. Este modo podrí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. Así, dos píxeles, apilados verticalmente, llenarían el espacio de la pantalla correspondiente a un carácter en modo 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 Alta resolución (Hi-Res).

Los colores se crearon llenando el píxel con un patrón binario repetido 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 monitores monocromáticos , o si la señal Colorburst estaba apagada, la pantalla revelaría estos patrones de bits. Hay dos tonos de gris equivalentes, ya que 5 (0101) equivale a 10 (1010) según cómo se mezclan los colores; los bits "encendidos" 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 se asigna a la misma área de memoria que la pantalla principal de texto 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, uno de los cuales faltaba en los otros modos.

Diseño de memoria de baja resolución

Un bloque de 128 bytes almacena tres filas de 40 caracteres cada una, quedando un resto de ocho bytes después de almacenar la tercera fila. Pero estos bytes no quedan 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 a la computadora. 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 allí en el momento de guardar. La recalibración del cabezal del disco fue un efecto secundario común, cuando el controlador del disco encontró que su memoria (en un agujero de la pantalla) de dónde 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 u otros) en 0x400-0x7FF. Pronto surgieron programas ProDOS para cargar datos correctamente en esta porción de memoria; varios aparecieron en la revista Nibble .

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

Tener dos pantallas para mostrar imágenes de vídeo era una parte integral del diseño de la familia Apple II. Al acceder a la ubicación de la memoria 0xC055 (49237), se mostró la "Pantalla 2" independientemente de cómo se configuraron los otros "interruptores de software". El texto y el espacio de la pantalla de baja resolución 2 oscilaron entre 0x800 (2048) y 0xBFF (3071). El intercalado es exactamente el mismo que para la pantalla principal ("Pantalla 1"). Los programas Applesoft BASIC se cargan a 801h (2049) de forma predeterminada; por lo tanto, ocuparán el espacio de la pantalla de texto 2 a menos que se le indique a la computadora 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 II GS

A diferencia de los otros tipos de máquinas Apple II, la Apple II GS presentaba un procesador (el 65816 ) que podía manejar más de 64 KB de RAM sin trucos especiales. En los IIgs, la RAM estaba dividida en bancos de 64K. Por ejemplo, el banco 0xE0 constaba del rango 0xE00000 a 0xE0FFFF. Los 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 IIgs mapeó los datos de la pantalla al banco de memoria 0xE0. Sin embargo, en el modo de emulación IIe , los datos de la pantalla se almacenaron en el banco 0x00. Esto presentó un problema. Los diseñadores del 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 Apple IIe funcionaran correctamente. Pero se olvidaron de la rara vez utilizada Text Screen 2. Esto no se descubrió hasta que los chips Mega II llegaron a las máquinas IIgs. Entonces, los diseñadores de firmware agregaron un CDA (accesorio de escritorio clásico, accesible desde el menú Accesorios de escritorio de IIgs, invocado con Apple+ Control+ Escape) llamado "Modo de visualización alternativo", [1] que realizaba la tarea para los pocos programas que la necesitaban, a expensas de un poco de tiempo de CPU. Se podía activar y desactivar a voluntad, pero se desactivaba cuando se reiniciaba la computadora.

La compatibilidad mejorada con Text Screen 2 se abordó con la introducción del Apple IIGS con 1 megabyte de RAM (más conocido como ROM 3) en 1989. La nueva placa base proporcionó sombreado de hardware de Text Screen 2, sin costo para el tiempo de CPU, por lo tanto sin afectar 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 la Pantalla de texto 2 y habilitaba el sombreado por hardware de la Pantalla de texto 2 en el banco 0xE0 en las máquinas ROM 3.

Gráficos de alta resolución (alta resolución)

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

Cuando salió el Apple II, se añadió un nuevo modo para gráficos de alta resolución de 280×192. Al igual que el modo de baja resolución, el modo de alta resolución tenía dos pantallas; en Applesoft BASIC , cualquiera de los dos podría inicializarse, usando los comandos HGR para la primera pantalla o HGR2 para la segunda.

La ROM BÁSICA de Applesoft contenía rutinas para borrar cualquiera de 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 podrí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 ocultó las 32 líneas inferiores, lo que dio como resultado una imagen de 280  ×  160. Las rutinas de la 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. Si bien la tarjeta CGA lanzada cuatro años después de Apple II en IBM PC permitía al usuario seleccionar uno de dos conjuntos de colores para crear gráficos de 320 × 200, solo cuatro colores (el color de fondo y tres colores de dibujo) estaban disponibles a la vez. Por el contrario, Apple ofreció ocho colores para gráficos de alta resolución, o incluso seis, ya que en el esquema se repetían el blanco y el negro. Cada fila de 280 píxeles se dividió en 40 bloques de siete píxeles cada uno, representados en un solo byte. Cada par de píxeles adyacentes generó un píxel de un solo color a través del color del artefacto , lo que dio como resultado una resolución efectiva de 140 × 192. Los siete bits inferiores de cada byte representaban los píxeles, mientras que el bit más significativo controlaba el desplazamiento de fase de ese bloque de píxeles, alterando el color que se mostraba.

Si bien esta característica permite seis colores en pantalla simultáneamente, tiene un efecto secundario desagradable. Por ejemplo, si un programador intentara dibujar una línea azul encima de una verde, partes de la línea verde cambiarían a naranja. 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 limpieza) del MSB. Otro efecto secundario es que dibujar un píxel requiere dividirlo por siete. (Para el procesador 6502 de Apple, que no tenía hardware de división, dividir entre siete era relativamente lento. Si dibujar un píxel solo hubiera requerido dividirlo por una simple potencia de dos, como ocho, esto solo habría necesitado una secuencia de cambios de bits. lo cual habría sido mucho más rápido.)

El modo Hi-Res del Apple II también era peculiar por su factor de entrelazado 64:1. Este fue el resultado directo del diseño de ahorro de chips de Steve Wozniak. [2] 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 en la pantalla" ocurren en el modo de alta resolución al igual que en los modos de baja resolución y texto. Por lo general, 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) [3] heredado por ProDOS de Apple SOS , que incluía metadatos en el byte 121 (el primer byte del primer hueco) indicando cómo debía mostrarse (modo de color, resolución), o convertido a otros formatos gráficos.

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

No había ningún comando incorporado para extraer el color de un píxel en la pantalla de alta resolución, ni siquiera para determinar si estaba encendido. Se escribieron varios programas para determinar si un píxel estaba iluminado 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 pantalla de texto (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 admitía sólo una página de gráficos a la vez. Esta animación simplificada en el Apple II, porque un programador podría mostrar una página mientras modifica la otra página (oculta).

Siempre que el vector de reinicio no haya sido ocluido por un programa en ejecución activa, 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 indicador permitió la visualización inmediata de imágenes de programas interrumpidos. Luego se podrían grabar las escenas favoritas de los juegos. En Apple //e y //c, el uso de ++ daría como resultado que el patrón 0xA0A0 ​​se escribiera escasamente en toda la memoria, incluidas las páginas 1 y 2 de alta resolución en $2000$5FFF . La corrupción causada por estos artefactos podría eliminarse utilizando un paquete de pintura. En el Apple //e mejorado, la memoria de vídeo de alta resolución se podía conservar 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 comenzara el patrón de color de autodiagnóstico. para llenar la primera línea de texto en la esquina superior izquierda. Dado que el autodiagnóstico avanzó desde $0000 hacia arriba, una vez que la dirección inicial de la página de texto 1 ( $400 ) fue golpeada, también lo fue la suma de verificación del vector de reinicio ( $3F4 ), lo que significaba que una presión rápida posterior de + forzaría el firmware para reiniciar sin dañar 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 por software no borraba la memoria de video en imágenes de alta resolución.ControlResetControlOpen-AppleResetControlOpen-AppleResetControlClosed-AppleResetResetControlReset

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

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 podía ampliarse fácilmente para incluir los modos gráficos de la máquina. Dado que la señal estaba presente en el conector de la ranura auxiliar que albergaba la tarjeta extendida de 80 columnas, el anunciador 3 en el puerto de juego se sobrecargó para activar gráficos de doble resolución cuando se seleccionaban tanto el modo de video de 80 columnas como el de gráficos. Se ofrecieron placas base de reemplazo (llamadas placa base Revisión B) de forma gratuita a los propietarios de Apple IIe para actualizar sus máquinas con capacidades de gráficos de doble resolución. Por esta razón, las máquinas con la placa base original de Revisión A son extremadamente raras. Los modelos posteriores de Apple II también implementan modos de gráficos de doble resolución.

Doble baja resolución

Este era un modo de gráficos de 80×40 (u 80×48) disponible sólo en máquinas de 80 columnas. En Applesoft BASIC, habilitar este modo requirió tres pasos. Primero, habilitando el modo de 80 columnas con , luego habilitando gráficos de doble densidad con , seguido de .PR#3POKE 49246,0GR

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

Tenga en cuenta que PR#3se difiere al sistema operativo, para evitar que se desconecte del 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, 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, PLOTy funcionaron normalmente con el rango de coordenadas x extendido de 0 a 79. Solo Apple IIc y IIgs admitieron esto en el firmware. Usar el modo Double Lo-Res de BASIC en un IIe era mucho más complicado sin agregar una extensión de comando a BASIC.HLINVLIN&

Hubo dos problemas importantes al usar este modo en Applesoft. Primero, una vez activado el modo, el acceso a la impresora se volvió complicado, debido a que el firmware de la pantalla de 80 columnas se manejaba como una impresora. En segundo lugar, la SCRNfunción (lectura de píxeles) no funcionó correctamente. Sin embargo, en la edición de marzo de 1990 de Nibble apareció un programa que solucionó este problema.

Se sabía que al menos un compilador BASIC disponible comercialmente , ZBASIC de Zedcor Systems, admitía gráficos de doble baja resolución.

Doble alta resolución

La composición de la pantalla Double Hi-Res es complicada. Además del entrelazado 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. Mientras que tres píxeles consecutivos eran blancos, ahora se requerían seis en doble alta resolución. Efectivamente, todos los patrones de píxeles utilizados para crear color en bloques de gráficos de baja resolución podrían reproducirse en gráficos de doble alta resolución.

La implementación 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 almacenara 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 doble alta resolución, 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, hubo numerosas aplicaciones que lo utilizaron. Los gráficos dobles de alta resolución aparecieron tanto en aplicaciones comerciales como en software educativo y juegos. La versión Apple de GEOS usaba Double Hi-Res, al igual que el programa de pintura de Broderbund , Dazzle Draw . Beagle Bros proporcionó un conjunto de herramientas, Beagle Graphics, con rutinas para desarrollar gráficos de doble alta resolución en AppleSoft BASIC. Numerosos juegos de arcade y juegos escritos para otras computadoras fueron portados al Apple II, y muchos aprovecharon este modo de gráficos. También había numerosos programas de utilidad y tarjetas de impresora enchufables que permitían al usuario imprimir gráficos de alta resolución doble en una impresora matricial o incluso en la LaserWriter .

Apple II GS

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

Ver también

Referencias

  1. ^ Mordisco , febrero de 1992
  2. ^ Mordisco , julio de 1990
  3. ^ Notas sobre el tipo de archivo Apple II : FTN.08.0000
  4. ^ Nibble , diciembre de 1988, pág. 66