46 5: FUNCIONES DE CADENA LEFT$ (retiene el caracter mas a la izquierda de una cadena) d$=LEFT$(S$,n). Esta instruccion funciona como en los mas pri- mitivos lenguajes basic. Ejemplo: B$="Hello! Soy Francis" L$=LEFT$(B$,9) Print L$ (Resultado: Hello! So) RIGHT$ (retiene el caracter mas a la derecha de una cadena) d$=RIGHT$(S$,n). Funciona como la anterior pero a la derecha. Print RIGHT$("AMOS Basic",5) (Resultado: Basic) MID$ (retiene un conjunto de caracteres de una cadena) d$=MID$(S$,p,n) MID$(d$,p,n)=S$. La funcion MID$ retiene una porcion de la ca dena S$. "P" indica el comienzo donde se iniciara esta subcadena, mientras que "N" especifica el numero de caracteres que seran to- mados. Si no se especificara el valor de N en esta instruccion, entonces se leeran a partir de la derecha hasta el final de tu cadena. Ejemplo: Print MID$(AMOS Basic,6) (Resultado: Basic) Otra forma de presentacion de la instruccion MID$ es: MID$(d$,p,n)=S$ Esta version de MID$ carga "N" caracteres de la cadena d$ des- de la posicion p+1 que seran almacenados dentro de la cadena S$. Si no se especificara el valor de N, directamente se reemplazara por el resto de la cadena. Este tipo de instruccion tambien se puede realizar conjuntamente con LEFT$ y RIGHT$. A$="AMOS *****" MID$(A$,5)="Magic" Print A$ (Resultado: AMOS Magic) 47 INSTR (busca la aparicion de una cadena dentro de otra cadena) f=INSTR(d$,S$ ¡,p¿) INSTR te permite buscar todas las veces que aparece una cadena dentro de otra. A menudo se usa en los juegos de aventura para reducir toda una completa linea de texto en un solo comando. Hay dos posibles formatos para esta instruccion: f=INSTR(d$,s$) Esta orden busca la primera aparicion de s$ en d$. Si se en- cuentra la cadena, entonces nos da automaticamente su posicion, en caso contrario, el resultado sera 0. Ejemplos: Print Instr ("AMOS BASIC","AMOS") (Resultado: 1) Print Instr ("AMOS BASIC","S") (Resultado: 4) Print Instr ("AMOS BASIC","AMIGA") (Resultado: 0) Do Input "Cadena a buscar";d$ Input "Cadena a encontrar";s$ x=instr (d$,s$) If x=0 then print s$;" no se encuentra" If x<>0 then print s$;" encontrado en la posicion ";x Loop Normalmente, la busqueda comienza desde el primer caracter en tu texto (d$). La segunda version de INSTR te permite comprobar una seccion determinada en una cadena al mismo tiempo. "P" es ahora la posicion de comienzo de busqueda. Todos los caracteres estan numerados desde izquierda a derecha empezando en 0. De tal forma que "P" toma valores que van desde 0 hasta LEN(s$). Ejemplo Print Instr ("AMOS BASIC","S",5) (Resultado: 8) UPPER$ (convierte una cadena de texto en mayusculas) s$=UPPER$(n$). Esta funcion convierte la cadena n$ en mayuscu- las y transfiere la nueva cadena a s$. Ejemplo Print UPPER$ ("AmOs BaSic") (Resultado: AMOS BASIC) 48 LOWER$ (convierte una cadena de texto en minusculas) s$=LOWER$(n$). LOWER$ traslada todos los caracteres de n$ a minusculas. Esto es especialmente util en los juegos de aventuras ya que permiten al usuario la introduccion de datos en un formato estandard (mayusculas o minusculas) mucho mas facil de interpre- tar. Ejemplo: Input "Continuo (YES/NO)";ANSWER$ ANSWER$=LOWER$(ANSWER$):IF ANSWER$="no" then edit Print "Continuo con tu programa..." FLIP$ (Invierte una cadena) f$=FLIP$(n$). FLIP$ simplemente invierte el orden de los carac teres de la cadena n$. SPACE$ (Espacia una cadena de texto) s$=SPACE$(n). Genera una cadena de n espacios en s$. Ejemplo: Print "Veinte"; Space$(20);" espacios" STRING$ (Crea una cadena llena del caracter a$) s$=STRING$(a$,n). STRING$ muestra una cadena con n copias del primer caracter de a$. Ejemplo: Print String$("The cat sat on the mat",10) (Resultado: TTTTTTTTTT) CHR$ (Muestra un caracter ASCII) s$=CHR$(n). Crea una cadena conteniendo un caracter simple en su formato ASCII. ASC (Muestra el codigo ASCII de un caracter) c=ASC(a$). ASC te permite acceder al codigo interno ASCII mos- trandote el primer caracter de la cadena a$. Print ASC("B") (Resultado: 66) LEN (Muestra el numero de caracteres presentes en la cadena) De este modo puedes conocer la longitud de la cadena: Print Len ("1234567890") (Resultado: 10) 49 VAL (Convierte una cadena en un numero) v=VAL(x$) vpt=VAL(x$) VAL convierte una lista de digitos decimales contenidos en x$, a un numero. Si este proceso fallara por alguna razon, tomara el valor cero. Ejemplo: x=VAL("1234"):Print x (Resultado: 1234) STR$ (Convierte un numero en una cadena) s$=STR$(n). STR$ convierte una variable entera en una cadena. Esto puede ser muy util en ciertos casos, como el centrado de una linea de texto, en donde no se te permite introducir parametros numericos. Ejemplo: Centre "Memory left is " +STR$(Chip Free)+ "Bytes" Cuidado de no confundir STR$ con STRING$. 1.- Operaciones con matrices SORT (clasifica todos los elementos de una matriz) SORT a(0) SORT apt(0) SORT a$(0) La instruccion SORT ordena el contenido de una determinada ma- triz en orden creciente. Esta matriz puede contener cadenas, va- riables enteras o decimales. El parametro a$(0) especifica el punto de comienzo de tu tabla. Debe estar siempre situado en el primer item de la matriz, item numero 0. Ejemplo: Dim A (25) p=0 Repeat input "input a number (0 to stop)";a(p) inc p until a(p-1)=0 or p>25 sort a(0) for i=0 to p-1 print a(i) next 50 MATCH (busca una matriz) r=MATCH(t(0),s) r=MATCH(T#(0),S#) r=MATCH(T$(0),s$) MATCH busca a traves de una matriz ya ordenada el valor S. Si existiera, entonces R toma valor negativo. Ten presente que solo las matrices con una sola dimension pueden ser chequeadas de esta forma. Tambien necesitaras ordenar previamente la matriz mediante la instruccion SORT. Ejemplo: Read N Dim D$(n) For i=1 to N Read D$(i) Next i Sort D$(0) Do Input A$ If A$="L" For i=1 to N:Print d$(i):Next i Else POS=MATCH(D$(0),a$) if POS>0 then print "Found", D$(POS);" in record ";POS if POS<0 and ABS (POS)<=N then print A$,"Not found. Closest to ",D$(ABS(POS)) if PO<0 and ABS(POS)>n then print A$, "not found. Closest to ";D$(n) Endif Loop Data 10,"Adams","Asimov","Shaw","Heinlien","Zelazny","Foster" Data "Niven","Harrison","Pratchet","Dickson" Recuerda que MATCH puede ser utilizado conjuntamente con la fun cion INSTR para potenciar asi la rutina. Deben ser usadas para poder interpretar las instrucciones que se introduzcan en los juegos de aventuras. 51 6: G R A F I C O S AMOS Basic te ofrece todo lo que necesitas para la generacion de divertidos graficos. Existe una facil serie de comandos para el diseño de circulos, rectangulos, poligonos, que como podras imaginarte en el AMIGA se realizan de forma casi instantanea. Pero incluso en este caso, AMOS Basic tiene un truco o dos en la manga. Las funciones AMOS de graficos trabajan correctamente en todos los modos graficos del AMIGA, incluyendo el HAM (Hold And Modify Mode). Ademas es posible crear hermosos paisajes directamente en modo HAM desde AMOS Basic. Por supuesto que no estaras limitado al tamaño de la pantalla, puedes crear grandes imagenes a la que podras ir accediendo por partes. Es muy facil generar fondos que hagan un scroll bonito para tus juegos de arcade como, el caso del "DEFENDER". 1- Colores El AMIGA te permite mostrar mas de 64 colores en pantalla al mismo tiempo. Esos colores pueden ser seleccionados usando los co mandos INK, COLOUR y PALETTE. INK (establece el color a utilizar en los dibujos) INK col ¡,paper¿¡,border¿ "col" especifica el color que sera usado en las siguientes opera- ciones de dibujo. El color de cada punto de la pantalla se toma de uno de los 32 diferentes registros de color. Esos registros pueden ser individualmente asignados, eligiendo el valor en una paleta de 4096 colores. Pese a que el AMIGA solo te permite 32 registros de color, AMOS te ofrece un rango de numeracion de color de 0 a 63. Esto permite que puedas usar sin limitaciones los colores para los modos HAM y Half-Bright respectivamente. Una explicacion detallada de estos modos la podras encontrar en el capitulo de Pantallas. "paper" asigna el color del fondo que sera generado por un co- mando SET PATTERN, cuando se trate de rellenar el fondo. "border" selecciona un color sobreimpresionado para lineas y poligonos. Esta opcion puede ser activada usando el comando SET PAINT como sigue: Set pattern 0: set paint 1 Repeat C=rnd(16):ink 16-c,0,c x=rnd(320)-20:y=rnd(200)-20:s=rnd(100)+10 bar x,y to x+s,y+s Until mouse key 52 Observa como los parametros col, border y paper, pueden ser omiti dos. Simplemente incluye comas "vacias" en los lugares adecuados de la instruccion. Por ejemplo: Ink ,,5:Rem ajusta el color del borde COLOUR (asigna un color a un indice) Colour index,$RGB La instruccion COLOUR permite asignar un color a cada uno de los 32 registros de color del AMIGA. INDEX es el numero del color que deseas cambiar, y puede oscilar entre 0 y 31. Como ya sabes, cualquier color puede crearse mezclando en diversa proporcion los 3 colores primarios: Rojo, Verde y Azul. Siendo el tono final del color la mezcla resultante de la intensidad de estos 3 colores primarios. La expresion $RGB consiste en 3 digitos de 0 a F. Cada componen te establece la fuerza o intensidad de uno de esos colores prima rios: R (Red) para el rojo G (Green) para el verde B (Blue) para el azul En hexadecimal, los digitos 0-F equivalen a Hex: 0 1 2 3 4 5 6 7 8 9 A B C D E F Decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Los modos HAM y Extra Half-Bright usan estos indices con algu- na pequeña diferencia. Ver el capitulo 9 para mas detalles. =COLOUR (Lee la asignacion de color) c=COLOUR(index) La funcion COLOUR toma un numero index de 0 a 31 y devuelve el valor de color previamente asignado a ese registro. "Index" es simplemente el numero de color cuya mezcla has determinado. Po- dras usar esta funcion para realizar un listado de los actuales colores usados en tu amiga, como sigue: For C=0 to 15 Print Hex$(colour(c),3) Next C PALETTE (Establece la actual pantalla de colores) Palette list of colours. La instruccion PALETTE realmente se tra- ta de una poderosa y rapida version de COLOUR. Mientras cargas el valor del color, el comando PALETTE te permite instalar una nueva y completa paleta de colores en un solo paso. Sin embargo, no puedes ubicar todos los colores en la paleta al mismo tiempo. Asi cualquier combinacion de colores debe ser grabada individualmente 53 Por ejemplo: Palette $100,$200,$300: Rem ubica 3 colores Tambien puedes cambiar colores en medio de tu lista: Palette $100,,$300: Rem cambia los colores 0 y 2 Es importante tener en cuenta que solo los colores en la paleta que se especifican en este comando seran los que cambiaran. Todos los otros colores retienen el antiguo valor. He aqui algunos ejem plos: Palette 0,$F00,$0F0 Palette 0,$770 Palette 0,,$66 Palette 0,$1,$2,$3,$4,$5,$6,$7 Al comienzo de tu programa la paleta de color se carga automatica mente usando una lista por defecto de colores. Esta lista por de- fecto puede reajustarse usando una simple opcion en la configura- cion del programa AMOS. Este comando tambien puede ser usado para establecer colores usados por los modos HAM y Half-Bright. Estos modos aumentan la paleta de color existente hasta generar docenas de colores extra en pantalla. Ver el capitulo 10. 2- Comandos de dibujo de lineas GR LOCATE (posiciona el cursor para graficos) GR locate x,y Esta orden situa la posicion del cursor en las coordenadas de pan talla x e y. El cursor grafico se usa como punto de arranque de la mayoria de operaciones de dibujo. Asi que si omites sus coorde nadas, ciertos comandos como PLOT y CIRCLE, utilizaran la actual posicion del cursor. Por ejemplo: Gr locate 10,10:Plot , Gr locate 100,100: Circle ,,100 = XGR (Indica la coordinada X del cursor grafico) = YGR (Indica la coordinada Y del cursor grafico) x=XGR: y=YGR Estas funciones devuelven las presentes coordinadas del cursor grafico: Circle 10,100,100 Print xgr,ygr 54 PLOT (dibuja un punto simple) PLOT x,y¡,c¿ El comando PLOT es la funcion de pintura mas simple de que se dis pone en AMOS Basic. Se usa para dibujar un punto en las coordena- das x e y, con el color c. El nuevo color de tinta (INK), en este caso "c", sera utilizado en las siguientes operaciones de dibujo. Pero si se omitiera el color "c" en esta instruccion, se usara el antiguo color. Por ejemplo: Curs off:Flash off:Randomize Timer DO Plot rnd(319),Rnd(199),Rnd(15) Loop POINT (Obtiene el color de un punto) c=Point(x,y) El comando POINT devuelve el index de color de un punto en las coordenadas x e y. Ejemplo: Plot 100,100 Print "El color en 100,100 es ";Point(100,100) DRAW (dibuja una linea) Draw es otra simple instruccion en basic. Sirve para dibujar una simple linea en la pantalla del Amiga. Draw x1,y1 to x2,y2 Dibuja una linea entre las coordenadas x e y. Draw to x3,y3 Dibuja una linea entre la actual posicion del cursor y la posi- cion x3,y3. Ejemplo: Colour 4,$707:ink4 Draw 0,50to200,50 Draw to100,100 Draw to 0,50 BOX (Dibuja un rectangulo hueco) Box x1,y1 to x2,y2 El comando BOX dibuja una caja rectangular y hueca en pantalla. X1Y1 son las coordenadas del angulo superior izquierdo de la caja mientras que X2Y2 corresponden a las coordinadas del angulo diago nalmente opuesto. 55 POLYLINE (Dibuja multiples lineas) Polyline es muy similar a la anterior, excepto que dibuja muchas lineas a la vez. Es capaz de generar complejos poligonos huecos en un solo paso. Polyline x1,y1 to x2,y2 to x3,y3 CIRCLE (Dibuja un circulo hueco) Circle x,y,r El comando CIRCLE dibuja un circulo hueco de radio R y centro en las coordenadas X e Y. Habitualmente si se omiten las coordenadas el circulo se dibujara en la actual posicion del cursor: Plot 100,100: Circle ,,50 ELLIPSE (Dibuja una elipse hueca) Ellipse x,y,r1,r2 La instruccion ELLIPSE dibuja una elipse hueca en las coordenadas x e y; siendo el radio horizontal r1. Esto corresponde exactamen- te a la mitad de amplitud de la elipse. R2 es el radio vertical, que se usa para establecer la altura de la elipse. La altura total de la elipse es r*2. Tipos de Lineas =============== AMOS Basic te permite dibujar tus lineas usando una gran canti dad de tipos de linea. SET LINE (Establece los estilos de linea) Set line mask El comando SET LINE establece el estilo de todas las lineas que se trazaran a continuacion usando los comandos BOX, DRAW y POLYLI NE. "Mask" es un numero binario de 16 bits que describe con exac- titud la apariencia de la linea Cualquier punto de la linea que aparezca con el color actual de tinta, sera representado por un "1", mientras que el punto con el color del fondo lo hara con un "0". Asi una linea normal sera representada por un numero binario: %111111111111111 y sera ejecu tado como ________________. De forma similar, una linea punteada como por ejemplo _ _ _ _ _ _ _ _, sera reproducida por una "mask" o mascara del tipo %111100001111000011110000. Dando valores a la linea mascara entre 0 y 65535, es posible generar una gran variedad de diferentes tipos de linea: SET LINE $F0F0 BOX 50,100 to 150,150 Este estilo de linea no tiene efectos en los dibujos de figuras con CIRCLE o ELLIPSE. 56 Figuras rellenas ================ PAINT (Relleno de un contorno) PAINT x,y,mode El comando PAINT te permite rellenar una determinada region de la pantalla con un bloque solido de color. Adicionalmente, puedes seleccionar el modelo de relleno para tus figuras utilizando el comando SET PATTERN. "X" e "Y" son las coordenadas de un punto dentro del area que sera rellenada. "MODE" puede ser 0 o 1. Un valor 0 terminara la operacion de relleno una vez que encuentre el primer pixel del ac tual color del borde. Un mode valor 1 interrumpira la operacion de relleno una vez encuentre cualquier color diferente al de la tinta de relleno. BAR (dibuja un rectangulo relleno) BAR x1,y1 to x2,y2 Dibuja una barra rellena desde x1,y1 (coordenadas del borde supe- rior izquierdo) hasta x2,y2 (coordenadas de la esquina opuesta). POLYGON (Dibuja un poligono relleno) Polygon x1,tox2,y2 tox3,y3 Polygon to x1,y1 to x2,y2 POLYGON genera un poligono relleno del actual color de tinta. Es basicamente una version solida del comando standard POLYLINE. No hay limite de numero de pares de coordenadas, salvo que el maximo de longitud de linea que admite AMOS es de 255 caracteres. Estilos de relleno ================== En AMOS Basic no tienes restriccion de relleno para tus figuras con un color solido. Existen docenas de modelos de relleno para poder elegir, e incluso podras grabar tus propios modelos en el banco de sprites. SET PATTERN (selecciona un modelo de relleno) SET PATTERN pattern Este comando te permite seleccionar un modelo de relleno para que puedas emplearlo en tus dibujos. Existen 3 posibilidades: 1) Pattern = 0 Este es el valor por defecto, y rellenara tus figuras con un bloque solido del actual color de tinta. 57 2) Pattern > 0 Si el numero del modelo es mayor que 0, AMOS Basic selecciona uno de los 34 modelos prediseñados. Estos modelos se encuentran en el fichero MOUSE.ABK del primer disco AMOS, y pueden ser reedi tados utilizando el definidor de sprites de AMOS Basic. Ten en cuenta que las 3 primeras imagenes de estos ficheros son necesa- rias para el cursor del raton (ver CAMBIO de RATON). Los modelos de relleno se almacenan en las imagenes 4 y sucesivas. 3) Pattern < 0 Esta es la mas poderosa opcion de todas. "Pattern" ahora se refiere a una imagen de sprite de banco 1. La imagen es un numero que se calcula segun la formula: SPRITE IMAGE = PATTERN * (-1) La imagen seleccionada sera automaticamente alterada antes de ser usada, de acuerdo con las siguientes reglas: * La amplitud de la imagen esta limitada a 64 pixels * La altura sera redondeada a la mas proxima potencia de 2 (por ejemplo 1,2,4,8......64) Dependiendo del tipo de tu imagen, el modelo sera dibujado de uno o dos modos. Dos imagenes en color se dibujan en "monocromo" Los actuales colores de tu imagen seran completamente desechados y el moedelo se dibujara usando los actuales colores de tinta y papel. Tambien es posible producir modelos de relleno multicoloreados. En este caso los colores de tu imagen se mezclaran con el actual color de tinta usando una funcion logica AND. De forma similar, al color del papel de tu modelo le sera aplicada la funcion OR con el sprite del bondo (color 0). Si deseas utilizar los colores originales de sprites, necesitaras establecer los colores de fon- do y tinta como sigue: Ink 31,0 No olvides cargar tu paleta de sprites desde el banco de spri- tes mediante el comando GET SPRITE PALETTE antes de usar estas instrucciones, de otro modo la ejecucion es probable que aparezca demasiado confusa. SET PAINT (set/reset el modo subrayado) SET PAINT n Cambia el dibujo subrayado por las instrucciones POLYGON o BAR. Como valor por defecto, este modo se encuentra en OFF. Si n=1 entonces se activa el modo subrayado. 58 Estilos de escritura ==================== GR WRITING (cambia el modo escritura) GR WRITING bitpattern Cuando dibujes graficos en tu pantalla, naturalmente se supone que ninguna otra cosa se sobrepondra sobre tu imagen. El comando GR WRITING te permite elegir dentro de un rango de 4 alternativas de tipos de escritura, que pueden ser usados generandos docenas de intrigantes efectos. Modo JAM 1 (Bit 0=0) JAM 1 solo dibuja las partes de tus graficos que van en el actual color de tinta. Cualquier otra parte dibujada con el color del papel se omitira. Esto es particularmente util con el comando TEXT, ya que te permitira mezclar tu texto directamente sobre una pantalla de fondo preexistente. Por ejemplo: Ink 2,5:Text 140,80,"Texto normal":Gr Writing 0: Text 140,71,"JAM1" Modo JAM 2 (Bit 0=1) Esta es la forma por defecto. Un grafico existente en pantalla sera completamente reemplazado por la nueva imagen. Modo XOR (Bit 1=1) XOR combina tus nuevos graficos con aquellos ya presentes en tu pantalla usando una operacion logica conocida como eXclusivo OR. El resultado neto es un cambio de color de las areas de dibujo que solapan un diseño previo. Otro interesante efecto de XOR es que puedes borrar cualquier objeto de la pantalla, simplemente pasando al modo XOR y grabando el nuevo objeto justamente en la misma posicion que el anterior, lo que produce una sensacion de borrado. Modo INVERSEVID (Bit 2=1) Este modo invierte la imagen detras del dibujo. Asi cualquier sec cion de tu imagen dibujada en el color de tinta, podra ser reem- plazada por el actual color del papel y viceversa. El modo INVER- SEVID se usa a menudo para reproducir texto invertido. Una vez que estos modos se empleen mediante el uso de bitpa- ttern, es posible combinar algunos modos juntamente: Gr Writing 4+1:Rem establece JAM2 e INVERSEVID Gr Writing 7: Rem elige JAM2, INVERSEVID o XOR Ink 2,5:Text 140,80'"Acceso e imagen!!" Advierte que este comando solo afecta a las operaciones de dibujo como CIRCLE, BOX, y el comando grafico TEXT. El modo de di bujo usado con comando "normales" de texto grafico como PRINT y CENTRE, se emplea utilizando otro tipo de comandos. Ver tambien AUTOBACK. 59 CLIP (restringe todos los graficos a una parte de pantalla) CLIP ¡x1,y1 to x2,y2¿ La instruccion CLIP limita todas las operaciones de dibujo a una region rectangular de la pantalla que se especifica por las coor- denadas x1,y1,x2,y2. x1,y1 representan las coordenadas del border superior izquier- do del rectangulo, mientras que x2,y2 con las coordenadas del an gulo inferior derecho del mismo. Ten presente que es perfectamente aceptable el uso de coordena das que sobrepase el tamaño normal de la pantalla. Todas las ope- raciones de dibujo trabajaran normalmente, incluso si solo fuera visible una parte del diseño. Como puedes ver, solo las partes del circulo que aparece den- tro del rectangulo restringido han sido dibujadas en pantalla. La zona restringida puede almacenarse como un area normal de panta- lla, omitiendo todas las coordenadas para esta instruccion. Tecnicas avanzadas ================== SET TEMPRAS (establece un buffer de memoria temporalmente) SET TEMPRAS ¡address, size¿ Esta instruccion permite a los experimentados programadores de AMIGA, afinar en la cantidad de memoria utilizada en las operacio nes graficas. Pero ATENCION: el uso inadecuado de esta instruc- cion puede alterar irreversiblemente tu ordenador. Cuando un programa AMOS ejecuta un comando completo, un area especial de memoria se reserva para el almacenaje del modelo de relleno. Esta memoria reservada es automaticamente devuelta al sistema una vez que la instruccion ha sido ejecutada. El tamaño del area de memoria del buffer es equivalente a un simple plano bidimensional del actual modo de pantalla. Siendo el valor total por defecto de la pantalla de 8k. El tamaño y localizacion del buffer de graficos puede ser alte rado en cualquier momento usando la instruccion SET TEMPRAS. En donde, SIZE es el numero de bytes que deseas reservar para tu area buffer, y puede oscilar entre 256 y 65536. La cantidad de memoria necesaria para albergar un objeto sim- ple se puede calcular de la siguiente forma: - Encierra el objeto en una caja rectangular - El area equivalente viene dada por la formula: SIZE = Amplitud/8 * Altura Si vas a utilizar el comando PAINT, asegurate que la figura esta "encerrada", de otra forma se necesitaria mucha memoria adi- cional y ademas el sistema puede ser afectado. 60 "BUFFER" puede ser una direccion de memoria o bien un banco de memoria. La memoria que reserves para este buffer debera siempre ser memoria CHIP. Una vez el area buffer sea instalada al inicio de tu programa, no hay necesidad de reservar continuamente y re- almacenar la memoria buffer. Esto puede aumentar la velocidad de tus programas en mas de un 5%. Podras reubicar el area buffer a su valor original, simplemen- te usando el comando SET TEMPRAS sin parametros a continuacion.