Usuario:Newton99/Graphics BASIC

De Wikipedia, la enciclopedia libre

Graphics BASIC es una extensión externa para el lenguaje de programación Commodore BASIC V2.0, creado para el ordenador Commodore 64. Fue escrito en 1983 por Ron Gilbert y Tom McFarlane. El uso del programa se autorizó a Hesware, que no tardó en vender el programa en 1984 como parte de su línea de productos antes de desaparecer. Posteriormente, fue ampliado por Ken Rose y Jack Thornton, y redistribuido y puesto a la venta en 1985 por Epyx con el nombre Programmers BASIC Toolkit.

Graphics BASIC aporta más de 100 comandos al lenguaje BASIC y proporciona una API de fácil uso a las funciones de hardware gráficas y de sonido del Commodore 64, consideradas relativamente avanzadas para la época. La única forma de acceder a tales funciones sólo con Commodore BASIC era empleando los complejos comandos PEEK y POKE. Graphics BASIC se entregaba en un solo disco flexible de 5,25"; contenía el propio lenguaje y numerosos programas muy sencillos que demostraban las nuevas funciones del lenguaje. También había disponible una versión en cartucho. Para instalar Graphics BASIC, sólo hace falta introducir el poopular comando:

 LOAD "*",8,1

Después de cargar, el lenguaje se inicia automáticamente, sin necesidad de usar los comandos RUNSYS.

Características[editar]

Gráficos[editar]

La principal ventaja de Graphics BASIC reside en sus numerosos comandos gráficos de fácil uso, que permiten dibujar puntos, líneas, círculos, elipses, rectángulos y polígonos. A continuación se incluye un ejemplo de uso de tales comandos:

 DOT 160,100
 LINE 80,50 TO 240,150
 BOX 10,10 TO 20,20

Como se puede apreciar, la sintaxis es bastante parecida a la de los comandos gráficos de GW-BASIC o AmigaBASIC, pero lo suficientemente distinta como para impedir la compatibilidad del código fuente.

El Commodore 64 tiene modos de vídeo independientes para texto y gráficos. Cambiar entre ambos resulta extremadamente sencillo con Graphics BASIC. TEXT cambia al modo de texto, HIRES cambia al modo gráfico de dos colores a 320×200 y MULTI cambia al modo gráfico de cuatro colores a 160×200. Graphics BASIC también permite dividir la pantalla horizontalmente y aplicar un modo diferente a cada parte.

Usar los 16 colores es posible tanto en el modo HiRes como en el modo Multi, pero si se dibujan dos colores incompatibles en el mismo bloque de píxeles de 8×8, el bloque entero se llena con el último color dibujado. Esto se debe a una limitación técnica del chip de representación VIC-II del Commodore 64.

Una de las opciones menos frecuentes de la sintaxis de Graphics BASIC es el ajuste de colores gráficos. Para ajustar los colores de primer plano y fondo en el modo de texto, se usan los comandos COLOUR y BACKGROUND, seguidos de un número comprendido entre 0 y 15, o una constante simbólica predefinida, como WHITEBLACK. Para ajustar los colores en el modo gráfico, la sintaxis del comando es similar a la siguiente:

 COLOUR HIRES x ON y

donde x es el color de primer plano e y es el color de fondo. (Por ejemplo, COLOUR HIRES BLACK ON WHITE).

Sprites[editar]

Graphics BASIC ofrece también comandos para manipular los ocho sprites del Commodore 64. Los sprites poseen un tamaño de 24×21 píxeles, dibujados en 2 colores (1 color + fondo) o 4 colores (3 colores + fondo). Cada sprite tiene un color independiente. En el modo de 3 colores, la resolución horizontal se divide en dos; asimismo, todos los sprites de 3 colores comparten los mismos 2 colores adicionales.

El carácter compacto de la sintaxis de los comandos de sprites tiene más en común con las opciones de línea de comandos de los programas de Unix que con los lenguajes de programación convencionales. Básicamente, es posible combinar varias manipulaciones en un único comando, comenzando con la palabra SPRITE y el número del sprite (comprendido entre 1 y 8), e incluyendo a continuación todas las palabras clave y parámetros necesarios. En el ejemplo:

 SPRITE 1 ON AT 160,100 COLOUR BLUE XYSIZE 2,2

se establece el sprite 1 como visible, se mueve a la posición (160, 100) de la pantalla, se ajusta su color a azul y se duplica su tamaño físico tanto horizontal como verticalmente.

Graphics BASIC admite también desplazamiento automático de sprites (cambio de posición), animación (cambio de forma) y detección de colisión. Todo ello forma parte del núcleo del lenguaje y agrega desencadenantes a las rutinas de interrupción de software del Commodore 64. (El lenguaje no admite la agregación de desencadenantes de interrupción personalizados).