***************************************************************************
*******************************
FLIB 3.2
*******************************
por François LEIBER
traducción a Español por David Suescun
http://leiber.free.fr
***************************************************************************
Este texto contiene una descripción detallada de todas las funciones de Flib y Flib2, lea el archivo Léeme para una presentación más general.
Resumen | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
off Apaga la calculadora. breakoff Deshabilita la función break (Tecla ON, mire el ejemplo 'flpass'). Atención, al usar getkey(), llamar un programa o la función string() habilitan el break de nuevo, por esta razón no se incluyó ninguna función adicional para habilitarlo. Finalmente, ya que esta función deshabilita todas las interrupciones, esto acelerará sus programas. beep:freq[,longitud] Reproduce una nota a una frecuencia freq, para longitud en centésimas de segundo (por defecto 4). beep2:[tempo,]canción Reproduce la canción en el tempo (beats por minuto) tempo, el cuál tiene un valor de 120 por defecto. Para cuando el usuario digita una tecla cualquiera. canción debe respetar las siguientes convenciones (mire el ejemplo 'sound'):
Para cambiar la octava, digite 'O' seguido del número de la octava, el cual debe estar entre 0 y 4 (2 por defecto).
Finalmente, para una pausa, digite 'P', la pausa será de la misma longitud de la nota que sería reproducida. wait:valor Espera sin hacer nada, valor esta en décimos de segundo. Esta función está parametrizada para encajar exactamente en las calculadoras HW2. *apd: valor Ajusta el valor de la rata de apagado automático (APD); valor está en segundo. Devuelve el valor anterior. *error:num Devuelve el error número num; vea el manual TI para encontrar el significado de los diferentes códigos de error. Las ventajas de devolver el error manualmente es que puede mostrar el error sin salirse del programa. *reset Resetea la calculadora. Esta función no es la más útil, pero seguro que es la más divertida! (*)version Devuelve una cadena que contiene la versión Flib's. + Aumento el contraste. - Decremento del contraste. getcont Obtiene el contraste actual, que es un número entero entre 0 (contraste muy bajo) y 15 (contraste muy alto). setcont:valor Ajusta el contraste actual. valor debe ser un número entero entre 0 y 15. | |||||||||||||||||||||||||||||||||||||||||||||||||||
gray Actívale modo de escala de grises, limpia la pantalla en los dos planos y activa el plano 1. Al final de la llamada de Flib, la librería espera a que el usuario presione una tecla, en ese momento devuelve el valor de la tecla presionada, apaga el modo de escala de grises y restaura la pantalla original (mire el ejemplo 'grayex' y 'anni'). gray2 Es lo mismo que 'gray', pero no espera a que el usuario presione una tecla al final. Si la llama por segunda vez, apaga el modo de escala de grises. plane:x Ajusta el plano activo a x : todas las llamadas de funciones gráficas que haga después serán dibujadas en este plano. x puede tomar los valores 0 y 1.
clrscr Limpia la pantalla. sprite:[x,][y,][modo,]pic Pone el bitmap pic en la pantalla en la posición (x, y).
x y y valen 0 por defecto. savpic:x1,y1,x2,y2,pic Almacena en la variable pic la fracción de la pantalla comprendida entre las coordenadas (x1, y1) and (x2, y2). savscr:pic Alamcena la pantalla LCD y la guarda en la variable pic. rclscr:pic Restaura la pantalla LCD almacenada en pic por 'savscr'. picsize:pic Devuelve, en una lista, las dimensiones horizontales y verticales de pic. rect:x1,y1,x2,y2[,modo] Dibuja una rectángulo vació entre (x1, y1) y (x2, y2) como esquinas.
De hecho, si está buscando un efecto en particular, pruebe con otros argumentos, usted puede tener rectángulos invertidos con los borden redondeados, etc... fillrect:x1,y1,x2,y2[,modo] Dibuja un rectángulo relleno entre (x1, y1) y (x2, y2) como esquinas.
filltri:x1,y1,x2,y2,x3,y3[,modo] Dibuja un triangulo relleno entre los puntos (x1, y1), (x2, y2) y (x3, y3). fillpoly:x1,y1,x2,y2,x3,y3,x4,y4[,modo] Dibuja un cuadrilatero entre las líneas (x1, y1)-(x2, y2) y (x3, y3)-(x4, y4). ellipse:x,y,r1,r2[,mode] Dibuja una elipse con centro en (x, y), y los semi ejes r1 y r2. line:x1,y1,x2,y2[,modo] Dibuja una línea entre (x1, y1) y (x2, y2).
Los sombreados funcionan con líneas de más de45°. pix:x,y[,modo] Dibuja un pixel en (x, y). pixtest:x,y Devuelve 0 si el pixel (x, y) está apagado y 1 si está prendido. mkpic:width,height,var,data Crea, en la variable var, una imágen de ancho width y alto height, en donde la imágen misma se da como una cadena. La estructura de data structure se define a continuación: cada línea dada contiene un número de caracteres; cada character contiene 8 pixels (si el ancho de la imágen no es un multiplo de 8, el último bit del último carácter de cada línea no será usado). Las líneas se escriben un tras la otra. Para evitar el problema de caracteres que no tengan acceso desde BASIC, reemplace el caracter n°0 por '00', n°2 por '02' y n°13 by '13'. Para entender, mire los pqueños programas de BASIC 'mkpic' y 'mkpic2' que automáticamente convierten imágenes en cadenas para 'mkpic'; también debería mirar mi programa BASIC Othello para que pueda ver un ejemplo de cómo se usa. Si desarrollé tal función, es por que siempre veo programadores BASIC que distribuyen sus programas con cientos de imágenes pequeñas en diferentes folders. Con esta función es posible crear imágenes fácilmente y con poca memoria. map:[width,][x,][y,][horiz,][vert,][mode,][time,],prefix,data Muestra una suceción de sprites en una pasada, uno después del otro en líneas ordenadas (mire el ejemplo 'map'). Ej : flib("map:,x,y,0,,4,time,pic,123456") | |||||||||||||||||||||||||||||||||||||||||||||||||||
font:size Configura el tamaño de la fuente.
drawstr:x,y,[mode,]str imprime la cadena str en (x, y).
Atención, si omite el argumento mode, str no debe empezar en por un número o un espacio, de lo contrario Flib lo tomará como mode. Otra solcuión que recomiendo es poner la coma sin ningún valor. drawstrv:x,y,[mode,]str Imprime la cadena str verticalmente en (x, y). pretty:x,y,[mode,]expr Imprime en modo Pretty Print la expresión expr en (x, y). pinfo:expr Devuelve {ancho, tope, fondo} que la expresión tendrá si es impresa con pretty. width:size,str Devuelve el ancho, en pixels, de una cadena str usando una fuente tamaño size. msg:string Imprime string invertida en una caja negra y espera hasta que el usuario presione una tecla, después restaura la pantalla y devuelve el valor correspondiente a la tecla presionada (vea 'keywait'). No use esta function cuando la escala de grises esté activada ya que las dos funciones usan la misma dirección de memoria para almacenar la pantalla, por lo tanto Flib no restaurará la pantalla correctamente al final, pero usted lo puede hacer manualmente si así lo desea... *menu:[height,][x,][y,]title,options... Muestra un menu rectangular con tantas opciones y subopciones como se deseen, con la esquina superior en (x, y). Los primeros tres argumentos son opcionales, El menu tendrá la altura correcta y será centrado en caso de ser omitidas. Si height es insuficiente para mostrar todos los elementos, ud podrá desplazarse dentro del menú. Cada opción es precedida por una coma, y cada sub opción por un '|'. El valor devuelto en 'fl' es el número del elemento seleccionado al presionar ENTER, o 0 si el usuario presionó ESC. Por ejemplo, en su calculadora, intente *numline:var Devuelve el número de líneas en el variable de texto var. *getline:n,var Devuelve la n-sima línea de la variable de texto var. *delline:n,var Borra la n-sima línea de la variable de texto var. *insertline:n,var,str Inserta la línea str entre la (n-1)-sima línea y la n-sima línea de la variable de texto var. | |||||||||||||||||||||||||||||||||||||||||||||||||||
El símbolo es una cadena, y no se tiene acceso a los datos, solo podrá ver 'Highscores by Flib;' puede encontrar un ejemplo en el programa 'memory.' *mkhs:n,rec,name,var Crea, en la variable var, una tabla de puntajes altos que contiene n puntuaciones altas, inicializado al valor score y al nombre name. *puths:rec,name,var Agrega automáticamente puntajes altos a la tabla var el record siendo el valor score y un nombre name. *geths:n,var Devuelve, en la variable 'fl', el n-simo puntaje alto de la variable var, un número seguido de una cadena con el nombre. | |||||||||||||||||||||||||||||||||||||||||||||||||||
slclr Borra el contenido de la línea de estatus. slrcl Redibuja la línea encima de la línea de estatus. slmsg:string Muestra la cadena string en la línea de estatus. busy:modo Ajusta el indicador BUSY en la línea de estatus.
| |||||||||||||||||||||||||||||||||||||||||||||||||||
keywait Espera a que el usuario presione una tecla y devuelve el valor correspondiente de la tecla presionada.
Atención: en una 92+, las teclas arriba e izquierda están invertidas. keylow keylow se usa para lectura de teclas de bajo nivel: solo detecta cuando se presionan las flechas o las teclas 2nd, Shift, Diamond o Alpha. Por ejemplo, "10001010" significa que 2nd, izquierda y arriba están siendo presionadas mientras las otras teclas no. initdelay:time Ajusta el tiempo time (395avos de segundo) durante el cual una tecla debe estar presionada antes de repetirse. delay:time Ajusta el tiempo time (395avos de segundo) para que una tecla se auto repita. | |||||||||||||||||||||||||||||||||||||||||||||||||||
*hide:var Esconde el símbolo o carpeta var (el símbolo será Escondido del TIOS). *unhide:var Muestra el símbolo o folder var que esté oculto (mire el ejemplo 'hide'). *size:var Devuelve el tamaño de var. *state:var Devuelve un número compuesto de 3 bits que representan el estado de la variable var: El primero indica si la variable está archivada, el Segundo si está asegurada (locked) y el último si está escondida. flib("state:var")
*folder:var Devuelve una lista de todos los folders que contengan el símbolo var. *getfolder Devuelve una lista de todos los folder en la calculadora. *getfile:[type,]folder Devuelve una lista de todos los archivos en la carpeta folder.
Las expresiones no tienen un valor asigando, es por esta razón que no aparecen aquí. *getbyte:num[,n],var Devuelve el byte número num de la variable var. *setbyte:num,value,var Ajusta el byte número num de una variable var al valor value. *memcpy:ndest,nsrc,num,dest,src Copia num bytes de la variable src, comenzando por su nsrc-simo byte, a la variable dest, comenzando por su ndest-simo byte. *komp:var Si la variable var no está comprimida, la función la comprime, reemplaza la variable por una tipo KOMP, pero más pequeña en tamaño. Si var ya está comprimida entonces la descomprime.
*kinfo:var Devuelve el tipo original (vea la función 'getfile') y el tamaño de una variable KOMP. Devuelve 0 si var no es una variable KOMP. *group:[n,][var1,var2,...]var Cuando hay más de un argumento, la función agrupa las variables var1, var2, ... y las almacena en la variable var, cuyo tipo será GRP. Si la variable var ya es una variable tipo GRP y sólo hay un argumento adicional var1, la función agregará var1 a la variable var.La suma del tamaño de todas las variables no debe exceder los 65 KB, limitados por el TIOS. Los nombres de las variables pueden incluir el nombre del folder. El uso de esta función no implica que deba hacer con programas con miles de programitas pequeños. Inclusive, la compresión con 'komp' es mucho más eficiente cuando se agrupan variables antes de comprimirlas independientemente para luego agruparlas. *ginfo:var Devuelve una lista de archivo en una variable var tipo GRP. *mkvar:taille,[type,][extension,]name Crea una variable llamada name de tamaño size bytes llena de ceros. *type:var Devuelve la extensión de var, si var tiene una extensión personalizada (hecha con 'mkvar' por ejemplo). |