Capítulo 7. Para su referencia

Parte 1: Posiciones del cursor y códigos de control

Contenido:


En ciertas aplicaciones el cursor puede encontrarse fuera de la ventana de texto. Algunas operaciones fuerzan al cursor a ocupar una posición permitida antes de poder ser llevadas a cabo. Son las siguientes:

  1. Escribir un carácter.
  2. Exhibir el signo del cursor (el rectángulo).
  3. Obedecer los códigos de control señalados con un asterisco en la tabla siguiente.

El proceso de forzar el cursor a ocupar una posición permitida consiste en lo siguiente:

  1. Si el cursor está a la derecha del borde derecho de la ventana, salta al extremo izquierdo de la línea siguiente.
  2. Si el cursor está a la izquierda del borde izquierdo de la ventana, salta al extremo derecho de la línea anterior.
  3. Si el cursor está por encima del borde superior, el contenido de la ventana se desplaza una línea hacia abajo y el cursor aparece en la primera línea.
  4. Si el cursor está por debajo del borde inferior, el contenido de la ventana se desplaza una línea hacia arriba y el cursor aparece en la última línea.

Las comprobaciones y operaciones se realizan en el orden de la lista anterior. Las posiciones ilegales del cursor pueden ser cero o negativas, es decir, a la izquierda y por encima de la ventana.

Los códigos del margen 0 a 31 no producen ningún símbolo cuando se los envía a la pantalla, sino que son interpretados como códigos de control (y deben ser utilizados con cuidado). Algunos de ellos alteran el significado de uno o varios de los códigos siguientes, que hacen las funciones de parámetros del código original.

Si se envía un código de control a la pantalla gráfica, su efecto es dibujar un símbolo relacionado con la función que tendría si se lo generase mediante el teclado (v.g., &07 "BEL": [CTRL] G). Ejercerá su función de control si se lo envía a la pantalla mediante:

PRINT CHR$(&07) o bien PRINT "A"
  • En lugar del símbolo "A" se mostraría el símbolo del timbre.

donde el símbolo del "timbre" se obtiene pulsando [CTRL] G en el momento de teclear la instrucción PRINT.

Los códigos señalados con * en la lista siguiente fuerzan al cursor a ocupar una posición permitida en la ventana antes de ser obedecidos. Para cada código se da el número, en hexadecimal y en decimal, y la descripción de su función.

Control de códigos en BASIC

ValorNombreParámetroSignificado
&00 0NULSin efecto. Se lo ignora.
&01 1SOH0 a 255Escribe el símbolo correspondiente al valor del parámetro, lo que permite exhibir los símbolos del 0 al 31.
&02 2STXHace invisible el cursor de texto. Equivale a la orden CURSOR con el parámetro <conmutador de usuario> igual a 0.
&03 3ETXHace visible el cursor de texto. Equivale a la orden CURSOR con el parámetro <conmutador de usuario> igual a 1. Nótese que para visualizar el cursor desde dentro de un programa de BASIC (aparte de la situación en que BASIC está esperando una entrada por el teclado) es necesario ejecutar una orden CURSOR con el parámetro <conmutador del sistema> igual a 1.
&04 4EOT0 a 2Establece el modo de pantalla. El parámetro se toma MOD 4. Equivale a la orden MODE.
&05 5ENQ0 a 255Envía a la posición del cursor gráfico el carácter correspondiente al valor del parámetro.
&06 6ACKHabilita la pantalla de texto. (Véase &15 NAK.)
&07 7BELProduce un pitido. Obsérvese que este código borra las colas de sonido.
&08 8*BSHace retroceder el cursor una posición.
&09 9*TABHace avanzar el cursor una posición.
&0A 10*LFHace bajar el cursor una línea.
&0B 11*VTHace subir el cursor una línea.
&0C 12FFBorra la ventana de texto y lleva el cursor al extremo superior izquierdo. Equivale a la orden CLS.
&0D 13*CRLleva el cursor al extremo izquierdo de la línea actual.
&0E 14SO0 a 15Establece la tinta asignada al papel. El parámetro se toma MOD 16. Equivale a la orden PAPER.
&0F 15SI0 a 15Establece la tinta asignada a la pluma. El parámetro se toma MOD 16. Equivale a la orden PEN.
&10 16*DLEBorra el carácter que está en la posición del cursor. Rellena la célula del carácter con el color actual del papel.
&11 17*DC1Borra desde el extremo izquierdo de la ventana hasta la posición actual del cursor inclusive. Rellena las células afectadas con el color actual del papel.
&12 18*DC2Borra desde la posición actual del cursor inclusive hasta el extremo derecho de la ventana. Rellena las células afectadas con el color actual del papel.
&13 19*DC3Borra desde el principio de la ventana hasta la posición actual del cursor inclusive. Rellena las células afectadas con el color actual del papel.
&14 20*DC4Borra desde la posición actual del cursor inclusive hasta el final de la ventana. Rellena las células afectadas con el color actual del papel.
&15 21NAKInhibe la pantalla de texto, la cual no reacciona ante nada que se le envía mientras no reciba el código ACK (&06 6)
&16 22SYN0 a 1Se toma el parámetro MOD 2. Opción de transparencia: 0 desactiva, 1 activa.
&17 23ETB0 a 3Se toma el parámetro MOD 4. Establece el modo de tinta para gráficos:
0 normal
1 XOR
2 AND
3 OR
&18 24CANIntercambia las tintas de pluma y papel
&19 25EM0 a 255
0 a 255
0 a 255
0 a 255
0 a 255
0 a 255
0 a 255
0 a 255
0 a 255
Define la matriz de un carácter definible por el usuario. Equivale a la orden SYMBOL. Lleva nueve parámetros. El primero es el número del carácter; los ocho restantes, el diseño del carácter. El bit más significativo del primer byte corresponde al punto extremo superior izquierdo del carácter. El bit menos significativo del último byte corresponde al punto extremo inferior derecho del carácter.
&1A 26SUB1 a 80
1 a 80
1 a 25
1 a 25
Define una ventana. Equivale a la orden WINDOW. Los dos primeros parámetros especifican los bordes izquierdo y derecho de la ventana; el menor de ellos se considera definitorio del borde izquierdo. Los dos últimos parámetros especifican los bordes superior e inferior de la ventana; el menor de ellos se considera definitorio del borde superior.
&1B 27ESCSin efecto. Se lo ignora.
&1C 28FS0 a 15
0 a 31
0 a 31
Asigna dos colores a una tinta. Equivale a la orden INK. El primer parámetro (MOD 16) especifica el número de tinta; los dos siguientes (MOD 32), los colores deseados. (Los valores 27 a 31 no corresponden a colores definidos.)
&1D 29GS0 a 31
0 a 31
Asigna dos colores al borde. Equivale a la orden BORDER. Los dos parámetros (MOD 32) especifican los colores. (Los valores 27 a 31 no corresponden a colores definidos.)
&1E 30RSLleva el cursor al extremo superior izquierdo de la ventana.
&1F 31US1 a 80
1 a 25
Lleva el cursor a la posición especificada dentro de la ventana actual. Equivale a la orden LOCATE. El primer parámetro representa la columna; el segundo, la línea.