Toolkit II, Manual de Usuario
Anterior Siguiente

14 Control de la Pantalla

Las facilidades que se dan para el control de la pantalla son de tres tipos: control del cursor, control de la fuente de caracteres y reinicialización de las ventanas.

14.1 Control del Cursor

La función INKEY$ fue diseñada para leer las pulsaciones sobre el teclado sin activar el cursor. Se dan dos procedimientos para conectar y desconectar el cursor. Un cursor conectado suele aparecer como un rectángulo sólido (estado inactivo). El cursor comenzará a parpadear (estado activo) cuando la cola del teclado se encuentre conectada a la ventana que contiene el cursor (por ejemplo, mediante un INKEY$).

CURSEN #canal conecta el cursor
CURDIS #canal desconecta el cursor

Observa que mientras CURSEN y CURDIS utilizan, como la mayoría de comandos de entrada/salida, el canal #1 como canal de omisión, INKEY$ utiliza el #0.

Por ejemplo:

CURSEN:in$=INKEY$(#1,250):CURSEN

conectará el cursor en la ventana #1, y esperará 5 segundos a que sea pulsado un carácter desde el teclado. Si no se pulsa nada en el teclado, in$ tomará un valor de cadena nulo ("").

14.2 Control de la Fuente de Caracteres

El controlador de la pantalla del QL tienen dos fuentes de caracteres en su interior. La primera fuente provee los patrones para los caracteres 32 (espacio) a 127 (copyright), mientras que la segunda provee los patrones para los caracteres 127 (no definido) a 191 (flecha hacia abajo). Para cada carácter, el controlador de pantalla utiliza el patrón apropiado de la primera fuente; si no lo encuentra en la primera fuente, lo busca en la segunda, y en caso de que tampoco lo encuentre en la segunda, usará el primer patrón definido en esta segunda fuente.

Las fuentes sustitutas no tienen porqué tener el mismo rango de caracteres que las fuentes internas. Puede, por ejemplo, definir una fuente que tenga todos los valores desde el 128 al 255.

El formato de una fuente del QL es:

Los caracteres estándar del QL se componen de 9 líneas de puntos de pantalla, cada una de 5 puntos de ancha. La primera línea de puntos de pantalla que compone el patrón del carácter se almacena en el primer byte y así hasta la novena línea que lo hace en el noveno byte. Para cada línea, el bit 6 del byte correspondiente indica el estado del punto situado más a la izquierda de la línea y el 2 el del más a la derecha. Un bit igual a uno, indica que debe colorearse con el color de la tinta (INK), mientras que cero que debe colorearse con el color del papel (PAPER).

El carácter 'g' se almacena como:

%00000000
%00000000
%00111000
%01000100
%01000100
%01000100
%00111100
%00000100
%00111000

El comando CHAR_USE se utiliza para cambiar una o las dos fuentes de caracteres.

CHAR_USE #canal,dirección1,dirección2 "dirección1" y "dirección2" son las direcciones de memoria donde se encuentran las fuentes sustitutas
CHAR_USE #canal,0,dirección2 como primera fuente será utilizada la interna del QL
CHAR_USE 0,0 reinicializa ambas fuentes para la ventana #1

El controlador de la pantalla del QL asume que todos los caracteres son de 5 puntos de pantalla ("pixels") de ancho por 9 de alto. El resto de tamaños se obtienen duplicando los puntos o colocando puntos en blanco entre los caracteres. Con el Toolkit II es posible escoger cualquier espaciado horizontal y vertical. Si el incremento se selecciona a un valor más pequeño que el del tamaño actual de los caracteres (seleccionado mediante CSIZE), deberá tenerse extremo cuidado ya que es posible que el controlador de la pantalla escriba caracteres (en la parte derecha o en la inferior) parcialmente fuera de la ventana: la distancia de las ventanas a los límites derecho o inferior de la pantalla no deberá ser inferior a la diferencia entre el tamaño de los caracteres (seleccionado con CSIZE) y el espaciado de los mismos (seleccionado con CHAR_INC).

CHAR_INC #canal,incremento x, incremento y selecciona los espaciados x (ancho) e y (alto)

El canal de omisión es el #1.

Los espaciados de caracteres especificados mediante el comando anterior son anulados cuando se emplea un comando CSIZE.

Por ejemplo, si hay una fuente de caracteres 3x6 en un fichero llamado "f3x6" (de longitud 875 bytes), se puede seleccionar una pantalla de 127 columnas por 36 líneas mediante los siguientes comandos:

MODE 4
WINDOW 512-2,256-3,0,0 :REMark límites de la ventana
CSIZE 0,0 :REMark espaciado 6x10
CHAR_INC 4,7 :REMark espaciado 4x7
fount=ALCHP(875) :REMark reserva espacio para fuente
LBYTES f3x6,fount :REMark carga la fuente
CHAR_USE fount,0 :REMark selecciona la nueva fuente como fuente primera

14.3 Reinicializando las Ventanas

Hay dos procedimientos para reinicializar las ventanas al estado que tienen al encender el aparato:

WMON modo reinicializa a "Monitor"
WTV modo reinicializa a "Televisión"

El modo debe ser 0, 4 o 512 para el modo de alta resolución, u 8 o 256 para el de baja resolución. Sólo se reinicializan los tamaños, posiciones y bordes de las ventanas pero no el color del papel o de la tinta.


Anterior Índice de Materias Siguiente
Conversiones de formato   Administración de memoria