Microhobby 2. Año I, del 13 al 19 de noviembre de 1984

Iniciación: El color en el Spectrum (I)

Principios básicos

Pantalla de carga del Alchemist

Uno de los mayores atractivos que presenta el ZX Spectrum a la hora de adquirirlo es, sin duda alguna, su capacidad para generar colores. Que el Spectrum es un ordenador en color es, por tanto, algo que saben todos sus usuarios, pero lo que muchos ignoran es la cantidad de cosas que podemos hacer con él en este sentido.

Lo primero que hay que saber es que el Spectrum opera con ocho colores fundamentales, a cada uno de los cuales le corresponde un número, al que denominaremos código de color.

  • 0 Negro.
  • 1 Azul.
  • 2 Rojo.
  • 3 Magenta.
  • 4 Verde.
  • 5 Cyan.
  • 6 Amarillo.
  • 7 Blanco.

El orden en el que han sido asignados estos códigos no está hecho ni mucho menos caprichosamente, si no que, por el contrario, atiende a una ordenación en función del brillo y la luminosidad. ¿Qué quiere decir esto? Muy sencillo. Si tenemos un televisor en blanco y negro, o cualquier otro que le quitemos el color, observaremos cómo a medida que el código correspondiente es más alto, el tono de gris es proporcionalmente más claro. Así, por ejemplo, el verde es más claro que el magenta y sin embargo más oscuro que el cyan.

Para encontrar una idea más clara de esto podemos crear un programa que muestre los ocho colores en pantalla, del mismo modo que estamos acostumbrados a verlos en la carta de ajuste.

10 BORDER 1: LET A$="■■"
20 FOR I=0 TO 31 STEP 4
30 READ A
40 FOR T=0 TO 21
50 PRINT INK A;AT T,I;A$
60 NEXT T
70 NEXT I
80 DATA 0,1,2,3,4,5,6,7

Si se dispone de un televisor en color, se puede ejecutar el programa para ver los ocho colores y posteriormente quitarle el color al televisor y así poder observar la escala de grises que se forma con éstos.

Una vez conocidos los colores de los que dispone nuestro ordenador y sus códigos correspondientes, podemos empezar a trabajar con ellos. Y, para ello, lo primero que hay que hacer es saber cuáles son las instrucciones que afectan a la formación de colores en la pantalla. Estas son fundamentalmente tres: BORDER, PAPER e INK. Si bien existen otras que también afectan al color y que estudiaremos posteriormente, como son: BRIGHT, FLASH e INVERSE.

Border

El comando BORDER se obtiene pulsando la tecla B, escribiendo seguidamente un número entre 0 y 7, que correspondería como ya se ha dicho anteriormente, a uno de los códigos de color. De esta forma podremos ir cambiando a la vez el borde de la pantalla. Teclee el siguiente programa:

10 LET A=RND*7
20 BORDER A: PAUSE 10
30 GO TO 10

y verá cómo éste cambia aleatoriamente.

Si ahora cambiamos la línea 20 del programa por:

20 BORDER A: FOR I=1 TO 1

el efecto será más espectacular debido a la rápida sucesión de colores.

Hasta ahora hemos cambiado el borde, pero aún nos queda por colorear el resto de la pantalla. Al rectángulo rodeado por el borde se le denomina PAPER. La forma de acceder a este comando es pulsando primero CAPS SHIFT y SYMBOL SHIFT simultáneamente y, posteriormente, cuando el cursor está en el modo E, manteniendo apretado el SYMBOL SHIFT, accionamos la tecla C. Una vez aparezca en la pantalla la palabra PAPER, deberemos introducir un código de color (número).

Si se quiere a continuación cambiar el color de la tinta, es decir, los caracteres que aparecen en pantalla, deberemos obtener la sentencia INK. Para ello hay que hacer exactamente lo mismo que con PAPER, pulsando al final la tecla X en lugar de la C.

Si tecleamos PAPER 1 y pulsamos a continuación ENTER, aparecerá en la pantalla un mensaje OK, 0:1, sin embargo, la pantalla no habrá cambiado de color. Si a continuación pulsamos nuevamente ENTER, veremos como en esta ocasión el rectángulo se ha vuelto azul. Esto ocurre porque en el Spectrum sólo pueden cambiarse los atributos de lo que se va a imprimir, no de lo que ya está impreso, en este caso, la pantalla. Al hacer CLS, limpiaremos la pantalla, lo que es lo mismo que imprimir una nueva totalmente vacía. Ahora, sí veremos los atributos correctamente. Se observa inmediatamente su efecto con:

PAPER 2: INK 6: CLS

No es necesario, sin embargo, poner CLS cuando el cambio de tinta y de papel se efectúa localmente, es decir, dentro de una línea de programa.

10 PRINT INK 1; PAPER 6;AT 10,10;"SINCLAIR"

Podemos observar ahora cómo sólo han cambiado los atributos de los caracteres que hemos printado (la palabra Sinclair).

Hasta ahora hemos aprendido la forma normal de introducir los colores, pero existen otras formas de hacerlo, algunas de las cuales son más complicadas y otras mucho más rápidas (como es el caso del código máquina).

Método directo

Una de estas formas, la denominada por algunos autores como “método directo”, consiste en la posibilidad de cambiar el color de una línea de programa pulsando, una vez que hemos puesto el cursor en el modo E, cualquiera de los códigos de color (números del 0 al 7). Introduzcamos la línea 10 REM Directo. Luego bajémosla mediante EDIT a la parte inferior de la pantalla. Una vez allí, se pone el cursor en el modo E y seguidamente se teclea un número del 0 al 7. Inmediatamente observaremos cómo la línea ha cambiado de color, a partir del lugar donde estaba situado el cursor. Ahora volvemos a ponerlas pulsando ENTER en la parte superior de la pantalla. Como habrá podido ver, éste es un método muy práctico para señalar partes del programa que sean de un interés especial. Sin embargo, existe un problema. Al cambiar el color de la línea 10, lo hemos hecho también de todas las que le siguen. Si introducimos ahora la línea 20 REM Hola, veremos cómo ésta tiene el mismo color que la anterior, y lo mismo ocurrirá con todas las siguientes.

Para evitar esto tenemos que devolver el color inicial a la pantalla, y para hacerlo lo lógico sería pensar en bajar la línea 20, y con el cursor en modo E, igual que hicimos antes, cambiar el color de la línea tecleando el número 7, que corresponde al color blanco.

Modo extendido: E Modo E + Symbol Shift o Caps Shift
0 Papel negro Tinta negra
1 Papel azul Tinta azul
2 Papel rojo Tinta roja
3 Papel magenta Tinta magenta
4 Papel verde Tinta verde
5 Papel cyan Tinta cyan
6 Papel amarillo Tinta amarilla
7 Papel blanco Tinta blanca
8 Brillo desactivado Flash desactivado
9 Brillo activado Flash activado
Cuadro indicativo del efecto de cada número en el 'método directo'

Al hacerlo, observaremos al subir la línea como efectivamente REM Hola ha cambiado de color, pero no ha ocurrido así con el número de línea que tiene el mismo color a partir del cursor. Sin embargo, si pusiéramos éste delante del número de línea, no lograríamos cambiar nada. La única forma de conseguirlo es bajar la línea 10 y, situando el cursor al final de la línea, volver a ponerlo en el modo E y pulsar el código de color número 7. Inmediatamente, al introducir la línea, observamos como la línea 20 ha cambiado de color. Esto mismo podríamos haberlo hecho al principio. Vamos a intentarlo.

  1. Borramos el programa BASIC (NEW)
  2. Introducimos la línea 10 REM
  3. La situamos en la parte inferior de la pantalla (EDIT)
  4. Ponemos el cursor en modo E (CAPS SHIFT y SYMBOL SHIFT)
  5. Tecleamos el número 4
  6. Situamos el cursor al final de la línea, una vez pasado REM
  7. Ponemos el cursor en modo E
  8. Tecleamos el número 7 seguido de ENTER
  9. A partir de ahí, todas las líneas que se introduzcan tendrán el color de papel inicial. Esta operación podemos repetirla con todas aquellas líneas de programa que queramos destacar de las demás.

Sistema sencillo

Con lo que se ha comentado hasta ahora, podemos cambiar los caracteres de control de color de línea del papel. Si quisiéramos cambiar los de la tinta, sería igual de sencillo. Bastaría con seguir los mismos pasos anteriores, con la salvedad de que el código de color (número) hay que pulsarlo simultáneamente con la tecla CAPS SHIFT. En el ejemplo anterior, después del punto 4 se volvería a poner el cursor en el modo E y accionaríamos a continuación CAPS SHIFT y la tecla 7. De esta forma se obtendrán letras blancas sobre fondo verde.

Gabriel Nieto

 
002/iniciacion.txt · Última modificación: d/m/Y H:i (editor externo)
Recent changes RSS feed Creative Commons License Driven by DokuWiki Made on Mac