![]() ![]() ![]() ![]() 256 colores con el emulador CpcAlive Cpc Online System vectors System memory map Documentación CpcAlive ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Français
English
V1.19a- 09/02/2025 - correctiones y implementación de programación en C++
BASIC AMSTRAD CPC6128V1.18 - 27/01/2025 - creación de animaciones GIF 320*200*256 colores y correcciones V1.17 - 07/01/2024 - nueva resolución de pantalla 1024*768*256 (MODE 3) V1.16 - 16/12/2014 - corrección compilador Z80 V1.15 - 30/11/2014 - correctiones V1.14 - 20/11/2014 - Muestra los archivos .ASM en el depurador Z80 V1.13 - 20/9/2014 - mejora del pedido basic TRON (basic debugger) y correcciones ![]() ![]() CALL, CAT
, CHAIN, CHAIN MERGE, CHR$, CINT,
CLEAR, CLEAR INPUT, CLG,
CLOSEIN, CLOSEOUT, CLS, CONT,
COPYCHR$, COS, CREAL,
CURSOR
ON BREAK
CONT, ON BREAK
GOSUB, ON
BREAK STOP, ON
ERROR GOTO, ON
<expression>
GOSUB, ON
<expression> GOTO, ON
SQ GOSUB, OPENIN, OPENOUT, OR,
ORIGIN, OUT
RAD, RANDOMIZE, READ,
RELEASE, REM, REMAIN,
RENUM, RESTORE, RESUME,
RESUME NEXT, RETURN, RIGHT$,
RND, ROUND,
RUN", RUN
SAVE, SGN,
SIN, SOUND,
SPACE$, SPC, SPEED
INK, SPEED KEY, SPEED WRITE, SQ,
SQR, STEP,
STOP, STR$, STRING$, SWAP, SYMBOL, SYMBOL
AFTER
Lista de palabras clave ABS ABS(<expresión numérica>) PRINT ABS(-67,98) 67.98 Fonctión. Calcula el valor ABSoluto de la expresión dada; es decir, convierte los números negativos en positivos. Palabras clave asociadas: SGN AFTER AFTER <retardo del temporizador>[,<numero de temporizador>] GOSUB <numero de linea> 10 AFTER 250 GOSUB 60:CLS 20 PRINT"Adivine una letra en 5 segundos" 30 a$=INKEY$:IF indicador=1 THEN END 40 IF a$<>CHR$(INT(RND*26+97)) THEN 30 50 PRINT a$;" es correcto. Usted gana." 55 SOUND 1,478:SOUND 1,358:END 60 PRINT "demasiado tarde. Yo gano." 70 SOUND 1,2000:indicador=1:RETURN run Orden. Invoca una subrutina de BASIC cuando ha transcurrido el tiempo especificado. El parámetro <retardo del temporizador> especifica el tiempo en unidades de 0.02 s (cincuentavos de segundo). El <numero de temporizador> (margen de 0 a 3) especifica cuál de los cuatros temporizadores disponibles debe medir el tiempo. El temporizador número 3 tiene la máxima prioridad; el 0 (que es el implícito), la mínima. Cada temporizador puede tener una subrutina asociada. Palabras clave asociadas: EVERY, REMAIN, RETURN AND <argumento> AND <argumento> IF "juan" < "pepe" AND "perro" > "gato" THEN PRINT "verdadero" ELSE PRINT "falso" verdadero IF "pepe" < "juan" AND "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" falso IF "juan" < "pepe" AND "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" falso .... PRINT 1 AND 1 1 PRINT 0 AND 0 0 PRINT 1 AND 0 0 Operador. Realiza la operación lógica 'y' bit a bit entre enteros. El resultado es 0 a menos que ambos bits sean 1. Palabras clave asociadas: OR, NOT, XOR. ASC ASC(<expresión literal>) PRINT ASC("x") 120 Función. Calcula el código ASCII del primer carácter de la <expresión literal>. Palabras clave asociadas: CHR$ ATN ATN(<expresión numérica>) PRINT ATN(1) 0.785398163 Función. Calcula el arco cuya tangente es la <expresión numérica>. Obsérvese que se puede utilizar DEG y RAD para hacer que el resultado se dé en grados o en radianes, respectivamente. Palabras clave asociadas: COS, DEG, RAD, SIN, TAN AUTO AUTO [<numero de linea>][,<incremento>] AUTO 100,50 Orden. Genera números de linea AUTOmáticamente. El parámetro opcional <numero de linea> especifica en qué número debe empezar la numeración. Si se lo omite, el ordenador genera números de línea a partir de 10. El parámetro opcional <incremento> especifica el salto que debe haber entre cada línea y la siguiente. Si se lo omite, el ordenador genera números de línea espaciados de 10 en 10. Si se genera un número de línea que ya ha sido utilizado, el ordenador la muestra en la pantalla y entonces se la puede editar, si es necesario. La línea editada sustituye a la que está en la memoria en el momento de pulsar [RETURN]. Para interrumpir el proceso de numeración automática, pulse [ESC]. Palabras clave asociadas: ninguna. BIN$ BIN$ ( <expresión entera>[,<expresión entera>] ) PRINT BIN$(64,8) 01000000 Función. Produce una cadena de dígitos binarios que representan el valor de la primera <expresión entera>, utilizando el número de dígitos binarios especifidados por la segunda <expresión entera> (margen de 0 a 16). Si el número de dígitos especificado es mayor que el necesario, la expresión resultante se completa con ceros por la izquierda; si el número de dígitos especificado es demasiado pequeño, la expresión resultante no se trunca, sino que contiene todos los dígitos que sean necesarios. La <expresión entera> que se va a convertir en binario debe tener ub valor comprendido entre -32768 y +65535. Palabras clave asociadas: DEC$, HEX$, STR$ BORDER BORDER <color>[,<color>] 10 REM 729 combinaciones para el borde 20 SPEED INK 5,5 30 FOR a=0 TO 26 40 FOR b=0 TO 26 50 BORDER a,b:CLS:LOCATE 14,13 60 PRINT"border";a;",";b 70 FOR t=1 TO 500 80 NEXT t,b,a run Orden. Cambia el color del borde de la pantalla. Si se especifican dos colores, el del borde alterna entre ambos, a una velocidad que se puede regular con la orden SPEED INK. El margen de colores es de 0 a 26. Palabras clave asociadas: SPEED INK BREAK Véase ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP CALL CALL <expression de dirección de memoria>[,<lista de:<parametro>] CALL 0 Orden. Permite invocar desde BASIC una rutina escrita en código de máquina. El ejemplo anterior provoca la reinicialización de la máquina. Esta orden no debe ser utilizada si no se sabe cuáles son sus efectos. Palabras clave asociadas: UNT CAT CAT CAT Orden. Da un catálogo del contenido del disco. Presenta en la pantalla, en orden alfanumérico, los nombres completos de todos los ficheros, junto con las respectivas longitudes (en unidades de Kbytes, redondeadas exceso). También se muestra el espacio libre que queda en el disco, así como las identificaciones de la unidad y del usuario. Esta orden no afecta al programa actualmente residente en la memoria. Palabras clave asociadas: LOAD, RUN, SAVE CHAIN CHAIN <nombre de fichero>[,<expresión de numero de linea>] CHAIN "programa.bas",350 Orden. Lee un programa grabado en disco y lo carga en la memoria reemplazando al actual. Inicia la ejecución del nuevo programa, bien desde el principio, bien desde una línea especificada por el parámetro opcional <expresión de numero de linea>. Los ficheros protegidos (grabados con SAVE ... ,p) se pueden cargar y ejecutar con esta orden. Palabras clave asociadas: CHAIN MERGE, LOAD, MERGE CHAIN MERGE CHAIN MERGE <nombre de fichero>[,<expresión de numero de linea>] [,DELETE <margen de numeros de linea>] CHAIN MERGE "nuevopro.bas",750,DELETE 400-680 Orden. Lee un programa grabado en el disco, lo carga en la memoria mezclándolo con el actual y empieza a ejecutar el programa resultante, bien desde el principio, bien desde una línea especificada por el parámetro opcional <expresión de numero de linea>. Si se desea borrar parte del programa original antes de iniciar la carga del nuevo, se puede utilizar la opción DELETE <margen de numeros de linea>. Obsérvese que las líneas del programa que se carga sustituyen a las que tuvieran el mismo número en el programa original. Los ficheros protegidos (grabados con SAVE ... ,p) se pueden cargar con esta orden. Palabras clave asociadas: CHAIN, DELETE, LOAD, MERGE CHR$ CHR$(<expresión entera>) 10 FOR x=32 TO 255 20 PRINT x;CHR$(x), 30 NEXT run Función. Convierte la <expresión entera>, que tiene que estar en el margen de 0 a 255, en su carácter equivalente. El conjunto de caracteres del AMSTRAD se muestra en la parte 3 del capitulo titulado 'Para referencia ...'. Obsérvese que los números 0 a 31 generan caracteres de control; por esa razón los hemos excluido del ejemplo anterior. Palabras clave asociadas: ASC CINT CINT(<expresión numérica>) 10 n=1.9999 20 PRINT CINT(n) run 2 Función. Aproxima el valor de la <expresión numérica> a un número entero comprendido en el margen de -32768 a +32767 Palabras clave asociadas: CREAL, FIX, INT, ROUND, UNT CLEAR CLEAR CLEAR Orden. Borra todas las variables (iguala e cero las numéricas y a la cadena vacia las literales). Además, se abandonan los ficheros que estén abiertos, se borran todas las listas y funciones definidas por el usuario y BASIC retorna al modo de radianes para el cálculo de funciones trigonométricas. Palabras clave asociadas: ninguna. CLEAR INPUT CLEAR INPUT 10 CLS 20 PRINT"Teclee letras ahora!" 30 FOR T=1 TO 3000 40 NEXT 50 CLEAR INPUT run Orden. Desecha todos los caracteres tecleados antes y que todaví estéten en el tampón del teclado; es decir, borra el tamón del teclado. Para observar el efecto de esta orden, ejecute el programa ejemplo y escriba letras cuando el ordenador se lo pida. Borre luego la linea 50 y vuelva a ejecutar el programa. Palabras clave asociadas: INKEY, INKEY$, JOY CLG CLG [<tinta>] LOCATE 1,20 CLG 3 Orden. Borra la pantalla gráfica, dejándola del color del papel de gráficos. Si se especifica la <tinta, el papel de gráficos toma ese color. Palabras clave asociadas: CLS, GRAPHICS PAPER, INK, ORIGIN CLOSEIN CLOSEIN CLOSEIN Orden. Cierra el fichero de disco que esté abierto en dirección de entrada (si lo hay). (Véase OPENIN.) Palabras clave asociadas: EOF, OPENIN CLOSEOUT CLOSEOUT CLOSEOUT Orden. Cierra el fichero de disco que esté abierto en dirección de salida (si lo hay). (Véase OPENOUT.) Palabras clave asociadas: OPENOUT CLS CLS [# <expresión de numero de canal>] 10 PAPER #2,3 20 CLS #2 run Orden. Borra la ventana (canal de pantalla) especificada, tiñéndola del color del papel. Si no se especifica ninguna <expression de numero de canal>, el ordenador borra la pantalla #0. Palabras clave asociadas: CLG, INK, PAPER, WINDOW CONT CONT CONT Orden. Reanuda la ejecución del programa cuando éste ha sido interrumpido, bien porque se ha pulsado la tecla [ESC] dos veces, bien porque el programa ha encontrado la instrucción STOP. CONT solamente puede continuar el programa en el supuesto de que no se lo haya modificado durante la interrupción y de que no se trate de un programa protegido. Palabras clave asociadas: STOP COPYCHR$ COPYCHR$ (# <expresión de numero de canal>) 10 CLS 20 PRINT"Extremo superior izquierdo" 30 LOCATE 1,1 40 a$=COPYCHR$(#0) 50 LOCATE 1,20 60 PRINT a$ run Función. Lee el carácter que hay en la posición actual del cursor; la ventana tiene que ser especificada. El programa ejemplo lee el carácter que está en la posición 1,1 y lo escribe en la positión 1,20. Si el carácter no es reconocible, esta función genera la cadena vacía. Palabras clave asociadas: LOCATE COS COS (<expresión numérica>) DEG PRINT COS(45) 0.707106781 Función. Calcula el COSeno de l'<expresión numérica>. Obsérvese que se puede utilizar DEG y RAD para hacer que el ordenador entienda los arcos como dados en grados o en radianes, respectivamente. Palabras clave asociadas: ATN, DEG, RAD, SIN CREAL CREAL (<expresión numérica>) 10 a=PI 20 PRINT CINT(a) 30 PRINT CREAL(a) run 3 3.14159265 Función. Convierte el valor de la <expresión numérica>, cualquiera que sea su tipo, en un nùmero real. Palabras clave asociadas: CINT CURSOR CURSOR [<commutador del sistema>)][ , <commutador del usuario>] 10 CURSOR 1 20 PRINT "pregunta?"; 30 a$=INKEY$:IF a$="" THEN 30 40 PRINT a$ 50 CURSOR 0 run Orden. El cursor puede ser activado o inhibido por dos conmutadores: el del sistema y el del usuario. Esta orden controla los dos conmutadores. Los parámetros pueden se 0 (inhibido) o 1 (activado). En la instrucción INKEY$ el cursor está normalmente oculto, pero en el programa ejemplo h asido activado por el valor 1 del parámetro <commutador del sistema> en la lìnea 10. Para que el cursor sea visible tiene que estar a 1 los dos conmutadores. El ordenador activa automáticamente el conmutador del sistema para la instrucción INPUT, pero lo desactiva INKEY$. Es conveniente ocultar el cursor antes de escribir texto en la pantalla. Se puede omitir cualquiera de los parámetros, pero no los dos. Cuando se omite uno de los parámetros, la situación del correspondiente conmutador no se modificada. Palabras clave asociadas: LOCATE DATA DATA <lista de :<constante> 10 FOR x=1 TO 4 20 READ nombre$,apellido$ 30 PRINT "Don ";nombre$;" ";apellido$ 40 NEXT 50 DATA Manuel,Gonzalez,Daniel,Garcia 60 DATA Felipe,Revilla,Ernesto,Diaz run Orden. Identifica las lineas en las que están contenidos los datos que pueden ser leidos con la instrucción READ. Cada vez que se lee un dato, el 'puntero' pasa a señalar el siguiente elemento de la lista. Se puede utilizar la instrucción RESTORE para hacer que el puntero señale una línea de datos determinada. Palabras clave asociadas: READ, RESTORE DEC$ DEC$ (<expresión numérica>,<plantilla de formato>) PRINT DEC$(10^ 7,"££########,.##") £10,000,000.00 Función. Produce una representación en forma de cadena decimal de la <expresión numérica> utilizando la <plantilla de formato> especificada. La plantilla de formato sólo puede contener los caracteres siguientes: : + - £ $ * # , . ^ La utilisatión de estos 'especificadores de formato' se describe en PRINT USING. Palabras clave asociadas: BIN$, HEX$, PRINT USING, STR$ DEF FN DEF FN <nombre de la función>[(<parametros de forma>)]=<expresión> 10 t=TIME/300 20 DEF FNreloj=INT(TIME/300-t) 30 EVERY 100 GOSUB 50 40 GOTO 40 50 PRINT"el programa se ejecuto hace"; 60 PRINT FNreloj;"segundos" 70 RETURN run Orden. BASIC permite que el programa defina y utilice funciones. DEF FN realiza la primera parte de ese mecanismo: crea una función específica del programa; una vez definida, la función se maneja de la misma forma que las funciones intrísecas de BASIC. (Nótese en el ejemplo anterior que el valor de la función FNreloj sigue siendo actualizada ininterrumpidamente, auque se imponga una pausa al programa pulsando [ESC] dos veces para luego reanudarlo con CONT.) Palabras clave asociadas: ninguna. DEFINT DEFINT <lista de: <margen de letras> 10 DEFINT n 20 nombre=123.456 30 PRINT numero run 123 Orden. Cada vez que el programa encuentra una variable que no vaya seguida de un indicador explícito (! % $), el ordenador considera que es del tipo implícito. Esta orden hace que el tipo implícito sea 'variable entera'. La orden afecta a todas las variables cuyos nombres empiecen por la letra o letras especificadas. Se puede especificar una lista: DEFINT a,b,c o bien un margen de iniciales: DEFINT a-z Palabras clave asociadas: DEFREAL, DEFSTR DEFREAL DEFREAL <lista de: <margen de letras> DEFREAL x,a-f Orden. Cada vez que el programa encuentra una variable que no vaya seguida de un undicador esplícito de tipo (! % $), el ordenador considera que es del tipo implícito. Esta orden hace que el tipo implícito sea 'variable real'. La orden afecta a todas las variables cuyos nombres empiecen por la letra o letras especificadas. Se puede especificar una lista: DEFREAL a,b,c o bien un margen de iniciales: DEFREAL a-z Palabras clave asociadas: DEFINT, DEFSTR DEFSRT DEFSTR <lista de: <margen de letras> 10 DEFSTR n 20 nom="Amstrad" 30 PRINT nom run Amstrad Orden. Cada vez que el programa encuentra una variable que no vaya seguida de un undicador esplícito de tipo (! % $), el ordenador considera que es del tipo implícito. Esta orden hace que el tipo implícito sea 'variable literal'. La orden afecta a todas las variables cuyos nombres empiecen por la letra o letras especificadas. Se puede especificar una lista: DEFSTR a,b,c o bien un margen de iniciales: DEFSTR a-z Palabras clave asociadas: DEFINT, DEFREAL DEG DEG DEG Orden. Hace que BASIC considere que los valores de los arcos que intervienen en los cálculos trigonométricos están expresados en grados, no en radianes. La situación implícita para las funciones SIN, COS, TAN y ATN es la inversa: radianes. DEG cambia de radianes a grados; las órdenes RAD, NEW, CLEAR, LOAD, RUN, etc. cambian de grados a radianes. Palabras clave asociadas: ATN, COS, RAD, SIN, TAN DELETE DELETE <margen de nùmeros de línea> DELETE 100-200 Orden. Borra la instrucción o grupo de instrucciones especificado por (margen de números de línea). Si se omite el primer nùmero de <margen de nùmeros de línea>, se entiende 'desde el principio del programa haste ...'; si se omite el segundo nùmero, se entiende '... hasta el final del programa'. Asi, DELETE -200 borra las primeras líneas del programa, hasta la 200 ínclusive. En cambio, DELETE 50- borra desde la línea 50 en adelante. Finalemente, DELETE borra el programa completo. Palabras clave asociadas: CHAIN MERGE, RENUM DERR DERR LOAD "xyz.abc" XYZ .ABC not found Ready PRINT DERR 146 Función. Toma como valor el ùltimo código de error detectado por el sisteme de archivo en disco. Se puede utilizar el valor de DERR para determinar qué error se ha producido. Véase la lista de los mesajes de error. Palabras clave asociadas: ERL, ERR, ERROR, ON ERROR GOTO, RESUME DI DI 10 CLS:TAG:EVERY 10 GOSUB 90 20 x1=RND*320:x2=RND*320 30 y=200+RND*200:c$=CHR$(RND*255) 40 FOR x=320-x1 TO 320*x2 STEP 4 50 DI 60 MOVE 320,0,1:MOVE x-2,y:MOVE x,y 70 PRINT" ";c$:FRAME 80 EI:NEXT:GOTO 20 90 MOVE 320,0:DRAW x+8,y-16,1:RETURN run Orden. Inhibe interrupciones (a exceptión de [ESC]) hasta que se las habilite explícitamente con EI o implícitamente con el RETURN en el que termina la subrutina invocada como consecuencia la interrupción. Nótese que al entrar en una rutina de interrupción se inhibenautomáticamente todas las interrupciones de prioridad igual o inferior. Esta orden se utiliza para asegurar que el programa funcione sin interrupción; por ejemplo, cuando dos rutinas están compitiendo por el uso de recursos comunes. En el ejemplo anterior, el programa principal y la subrutina de interrupción están compitiendo por el uso de la pantalla gráfica. Palabras clave asociadas: AFTER, EI, EVERY, REMAIN DIM DIM <lista de: <variable indexada> 10 CLS 20 DIM amigo$(5),telefono$(5) 30 FOR n=1 TO 5 40 PRINT "Amigo numero:";n 50 INPUT"Nombre ";amigo$(n) 60 INPUT"Telefono ";telefono$(n) 70 PRINT 80 NEXT 90 FOR n=1 TO 5 100 PRINT n;amigo$(n),telefono$(n) 110 NEXT run Orden. DIMensiona listas. DIM hace una reserva de espcio para los elementos de la lista y especifica cuál va a ser el máximo valor de índice. BASIC requiere que se le informe del tamaño que debe reservar para las listas; sin embargo, permite el manejo de listas no dimensionadas (es decir, no declaradas con una orden DIM) a condición de que el índice no sobrepase el valor 10. Una lista es una 'variable indexada', lo que quiere decir que se utiliza un solo nombre de variable para representar varios elementos; cada elemento está identificado por su 'indice'. Las listas pueden ser controladas fácilamente mediante bucles de tipo FOR...NEXT, identificando el índice con la variable del contador del bucle. Obsérvese que el valor mínimo del índice (esto es, el primer elemento utilizable) es el cero. Un vector es una lista monodimensional. También se pueden utilizar listas multidimensionales (matrices). Por ejemplo, una lista tridimensional se dimensionaría con DIM position$(20,20,20) y un elemento concreto sería posicion$(4,5,6) Palabras clave asociadas: ERASE DRAW DRAW <coordenada x>,<coordenada y> [,[<tinta>][,<modo de tinta>]] 10 MODE 0:BORDER 0:PAPER 0:INK 0,0 20 x=RND*640:y=RND*400:z=RND*15 30 DRAW x,y,z 40 GOTO 20 run Orden. Dibuja en la pantalla gráfica una recta que va desde la posición actual del cursor gráfico hasta el punto de coordenadas x,y especificadas. Se puede especificar el color de <tinta> con el que se desea dibujar la recta (margen: 0 a 15). El <modo de tinta> es opcional y determina el modo de interacción entre la tinta con que se dibuja y la que ya está en la pantalla gráfica. Los cuatro modos son los siguientes: 0: Normal 1: XOR (OR exclusivo) 2: AND 3: OR Palabras clave asociadas: DRAWR, GRAPHICS PEN, MASK DRAWR DRAWR <incremento x>,<incremento y> [,[<tinta>][,<modo de tinta>]] 10 CLS:PRINT"escalera" 20 MOVE 0,350:FOR n=1 to 8 30 DRAWR 50,0 40 DRAWR 0,-50 50 NEXT:MOVE 348,0:FILL 3 60 GOTO 60 run Orden. Dibuja en la pantalla gráfica una recta que va desde la posición actual del cursor gráfico hasta el punto especificado en coordenadas relativas por <incremento de x> y <incremento de y>. Se puede especificar el color de <tinta> con el que se desea dibujar (margen: 0 a 15). El <modo de tinta> es opcional y determina el modo de interacción entre la tinta con que se dibuja y la que ya está en la pantalla gráfica. Los cuatro modos son los siguientes: 0: Normal 1: XOR (OR exclusivo) 2: AND 3: OR Palabras clave asociadas: DRAW, GRAPHICS PEN, MASK EDIT EDIT <nùmero de línea> EDIT 20 Orden. Escribe en la pantalla la línea especificada por <nùmero de línea> y la deja dispuesta para ser editada, con el cursor sobre ella. Palabras clave asociadas: AUTO, LIST EI EI EI Orden. Habilita interrupciones que hayan sido inhibidas previamente con DI. Si se inhiben las interrupciones en una subrutina de interrupción, BASIC las habilita cuando encuentre el RETURN del final de la subrutina. Palabras clave asociadas: AFTER, DI, EVERY, REMAIN ELSE (Véase IF) END END END Orden. Termina la ejecución del programa y devuelve el ordenador al modo directo. En un mismo programa de pueden incluir varias órdones END; se supone un END implícito después de la línea del programa. Palabras clave asociadas: STOP ENT ENT <número de envolvente> [,<seccion de envolvente>] [,<seccion de envolvente>] [,<seccion de envolvente>] [,<seccion de envolvente>] [,<seccion de envolvente>] 10 ENT 1,10,-50,10,10,50,10 20 SOUND 1,500,200,10,,1 run Orden. Define la características de la envolvente de tono especificada por <nùmero de envolvente> (margen: de 1 a 15) e invocada como <envolvente de tono> en la orden SOUND. Si el <nùmero de envolvente> es negativo (margen de -1 a -15), la envolvente se repite hasta el final de la <duratión> especificada en la orden SOUND. Cada <seccion de envolvente> puede constar de 2 o 3 parámetros. Si se utilizan 3 parámetros, tienen el significado siguiente: <nùmero de escalones>, <altura de cada escalón>, <tiempo de pausa> parámetro 1: <nùmero de escalones> Este parámetro especificada en cuántas etapas querernos que la nota evolutione a lo largo de la duración de la sección de la envolvente. Por ejemplo, si una sección de la nota ha de durar 10 segundos, se la puede dividir en 10 etapas de 1 segundo cada una; en tal caso, el parámetro <nùmero de escalones> tendrá que ser 10. El margen de este parámetro es de 0 a 239. parámetro 2: <altura de cada escalón> En cada etapa, el tono puede variar con respecto al de la anterior en un nùmero de unidades comprendido entre -128 y +127. Las variaciones negativas representan aumentos del tono (tono más agudo); las variaciones negativas reducen el tono (tono más grave). El valor mínimo del periodo de tono es 0. parámetro 3: <tiempo de pausa> Este parámetro especifica la duración de cada escalón (intervalo entre cada dos saltos) en unidades de centésimas de segundo. El margen de valores es de 0 a 255; esto significa que la duración máxima de cada escalón es de 2.56 segundos (el 0 se considera como 256). Si se utilizan 2 parámetros, su significado es el siguiente: <periodo de tono>, <tiempo de pausa> parámetro 1: <periodo de tono> Este parámetro da un nuevo valor absoluto del periodo de tono. (Véase el parámetro 2 de la orden SOUND.) parámetro 2: <tiempo de pausa> Este parámetro especifica la duración de escalón en unidades de centésimas de segundo. El margen de valores es de 0 a 255, es decir, el valor máximo es 2.56 segundos, ya que el 0 se considera como 256. General La suma de todos los <tiempo de pausa> no debe ser mayor que el parámetro <duración> de la orden SOUND; de lo contrario, el sonido habrá concluido antes de que se hayan completado todas las etapas de la envolvente. (En tal caso, el ordenador ignora el resto del contenido de la envolvente.) Análogamente, si la duración especificada en SOUND es mayor que la impuesta por la suma de todos los <tiempo de pausa>, la nota continuará sonando aunque se hayan terminado los escalones de la envolvente de tono, y lo hará con el tono correspondiente al de la última etapa de la envolvente. En una orden ENT se puede definir un máximo de 5 <secciones de envolvente> (cada una de las cuales puede constar de 2 o 3 parámetros). La primera etapa de una envolvente de tono de ejecuta immediatamente. Cada vez que se define una envolvente de tono, se anula la definición anterior. Si se define un <número de envolvente> sin especificar parámetros para ninguna de sus secciones, se anula la definición anterior. Palabras clave asociadas: ENV, SOUND ENV ENV <numero de envolvente> [,<sección de envolvente>] [,<sección de envolvente>] [,<sección de envolvente>] [,<sección de envolvente>] [,<sección de envolvente>] 10 ENV 1,15,-1,10,15,,10 20 SOUND 1,200,300,15,1 run Orden. Define las características de la envolvente de volumen especificada por <numero de envolvente> (margen: de 1 a 15) e invocada como <envolvente de volumen> en la orden SOUND. Cada <sección de envolvente> puede constar de 2 o 3 parámetros. Si se utilizan 3 parámetros, tienen el significado siguiente: <numero de escalones>, <altura de cada escalon>, <tiempo de pausa> Parámetro 1: <numero de escalones> Este parámetro especifica en cuántas etapas queremos que la nota evolutione antes de completar la sección de la envolvente. Por ejemplo, si una sección de la nota ha de durar 10 segundos, se la puede dividir en 10 etapas de 1 segundo cada una; en tal caso, el parámetro <numero de escalones> será 10. El margen de este parámetro es de 0 a 127. Parámetro 2: <altura de cada escalon> En cada etapa, el volumen puede variar con respecto al nivel anterior en un nùmero de unidades comprendido entre 0 y 15. Estos 16 niveles de sonido son los mismos que se definen en la instrucción SOUND. Sin embargo, el margen del parámetro <altura de cada escalon> es de -128 a +127; el nivel del volumen vuelve 0 cada vez que sobrepasa el 15. Parámetro 3: <tiempo de pausa> Este parámetro especifica la duración de cada escalón en unidades de centésimas de segundo. El margen de valores es de 0 a 255; esto significa que la duración máxima de cada escalón es de 2.56 segundos (el 0 se considera como 256). Si se utilizan 3 parámetros, su significado es el siguiente: <envolvente de hardware>,<periodo de envolvente> Parámetro 1: <envolvente de hardware> Este parámetro especifica el valor que se debe enviar al registro de forma de envolvente del generador de sonido. Parámetro 2: <periodo de envolvente> Este parámetro especifica el valor que se debe enviar a los registros de periodo de envolvente del generador de sonido. Para utilizar las envolventes de hardware es necesario que el usuario conozca el funcionamiento interno del generador de sonido. De no ser así, le recomendamos que utilice las envolventes definidas por programa, incorporado un <tiempo de pausa> adecuado. General La suma de todos los <tiempo de pausa> no debe ser mayor qu el parámetro <duración> de la orden SOUND; de lo contrario, el sonido habrá concluido antes de que se hayan completado todas las etapas de la envolvente. (En tal caso, el ordenador ignora el resto del contenodo de la envolvente.) Análogamente, si la duración especificada en SOUND es mayor que la impuesta por la suma de todos los <tiempo de pausa>, la nota continuará sonando aunque se hayan terminado los escalones de la envolvente de tono, y lo hará con nivel de volumen igual al de la ùltima etapa de la envolvente. En una orden ENV se puede definir un máximo de 5 <secciones de envolvente> (cada una de las cuales puede constar de 2 o 3 parámetros). La primera etapa de una envolvente de volumen se ejecuta inmediatamente. Cada vez que se define una envolvente de volumen, se anula la definición anterior. Si se define un <nùmero de envolvente> sin especificar parámetros para ninguna de sus secciones, se anula la definición anterior. Palabras clave asociadas: ENT, SOUND EOF EOF 10 OPENIN"ex1.bas" 20 WHILE NOT EOF 30 LINE INPUT,#9,a$ 40 PRINT a$ 50 WEND 60 CLOSEIN run Función. Comprueba si se ha alcanzado el final del fichero (End Of File). Da el valor -1 (verdadero) si no hay nigùn fichero abierto o si se ha alcanzado el final del fichero; da 0 (falso) en caso contrario. Palabras clave asociadas: OPENIN, CLOSEIN ERASE ERASE <lista de:<nombre de variable> DIM a(100),b$(100) ERASE a,b$ Orden. Borra el contenido de una o varias listas y libera el espacio de memoria ocupado por ellas. Palabras clave asociadas: DIM ERL ERL 10 ON ERROR GOTO 30 20 GOTO 1000 30 PRINT"Error en la linea";ERL 40 END run Función. Da el nùmero de la linea en la que se ha detectedo el último error. En el programa ejemplo, el error está en la linea 20, y éste es el nùmero generado por ERL en la linea 30. Palabras clave asociadas: DERR, ERR, ERROR, ON ERROR GOTO, RESUME ERR ERR GOTO 500 Line does not exist Ready PRINT ERR 8 Función. Da el nùmero error detectado. En el capítulo titulado error messages list se da la lista de los mensajes de error. El programa ejemplo muestra que el error nùmero 8 es 'Line does not exist' ("no existe esa línea"). Palabras clave asociadas: DERR, ERL, ERROR, ON ERROR GOTO, RESUME ERROR ERROR <expresión entera> 10 IF INKEY$="" THEN 10 ELSE ERROR 17 run Orden. Invoca el error de nùmero especificado por <expresión entera>. En el capitulo error messages list se da la lista de los mensajes de error 1 a 32. BASIC trata el ERROR como si efectivamente lo hubiera detectado: salta a la rutina de gestión de errores (si la hay) y genera los valores correctos de ERR y ERL. La orden ERROR seguida de una <expresión entera> cuyo valor esté entre 33 y 255 sirve para crear mensajes de error a medida de las necesidades del programador, como ilustra el siguiente ejemplo: 10 ON ERROR GOTO 100 20 INPUT"Escriba una letra ";a$ 30 IF LEN(a$)<>1 THEN ERROR 100 40 GOTO 20 100 IF ERR=100 THEN 110 ELSE 130 110 PRINT CHR$(7) 120 PRINT"Le dije que UNA letra!" 130 RESUME 20 run Palabras clave asociadas: ERL, ERR, ON ERROR GOTO, RESUME EVERY EVERY <periodo de tiempo>[,<nùmero de temporizador>] GOSUB <numero de linea> 10 EVERY 50,1 GOSUB 30 20 GOTO 20 30 SOUND 1,20 40 RETURN run Orden. Invoca una subrutina de BASIC a intervalos de tiempo regulares. El <periodo de tiempo> especifica el intervalo en unidades de 0.02 s (cintuentavos de segundo). El <nùmero de temporizador> (margen de 0 a 3) especifica cuál de los cuatro cronómetros se debe utilizar. El temporizador nùmero 3 tiene la prioridad más alta; el nùmero 0 (que es el implícito), la más baja. Cada uno de los cuatro cronómetros puede tener una subrutina asociada. Palabras clave asociadas: AFTER, REMAIN EXP EXP (<expresión numérica>) PRINT EXP(6.876) 968.743625 Función. Calcula el nùmero e elevado a la potencia dada por <expresión numérica>. El nùmero e es la base de los logaritmos neperianos, aproximadamente igual a 2.7182818 . Palabras clave asociadas: LOG FILL FILL <tinta> 10 MODE 0 20 FOR n=1 TO 500 30 PRINT "O"; 40 NEXT 50 colorpluma=2+RND*13 60 FILL colorpluma 70 GOTO 50 run Orden. Rellena una región de la pantalla gráfica. Los límites de la región son rectas dibujadas con la tinta de la pluma de gráficos actual o con la tínta utilizada para rellenar (margen de 0 a 15). El rellenado se realiza partiendo de la posición actual del cursor gráfico. Si esta posición está en un límite, no se produce rellenado alguno. Palabras clave asociadas: GRAPHICS PEN FIX FIX (<expresión numérica>) PRINT FIX(9.99999) 9 Función. Da la parte entera de la <expresión numérica>, ignorando su parte decimal. Palabras clave asociadas: CINT, INT, ROUND FN Véase DEF FN) FOR FOR <variable sencilla>=<principio> TO <fin> [STEP <salto>] 10 FOR n=2 TO 8 STEP 2 20 PRINT n; 30 NEXT n 40 PRINT", y ocho dieciseis" run Orden. Ejecuta al grupo de instrucciones comprendidas entre FOR y NEXT un nùmero dado de veces, incrementando el valor de la variable de control (variable de contador) en un nùmero especificado por <salto> desde <principio> hasta <fin>. Si no se especifica ningún valor de <salto> para STEP, se supone el 1. El <salto> puede ser una <expresión numérica>. Si su valor es negativo, el parámetro <principio> tiene que ser mayor que el parámetro <fin>, pues de no ser así la variable del contador no será modificada. Los bucles FOR...NEXT pueden ser 'anidados', es decir, programados uno dentro de otro. No es necesarion especificar el nombre de la variable a continuación de NEXT, ya que BASIC determina automáticamente a qué FOR corresponde cada NEXT 'anónimo'. Palabras clave asociadas: NEXT, STEP, TO FRAME FRAME 10 MODE 0 20 PRINT "sin FRAME" 30 TAG 40 MOVE 0,200 50 FOR x=0 TO 500 STEP 4 60 IF f=1 THEN FRAME 70 MOVE x,200 80 PRINT" ";CHR$(143); 90 NEXT 100 IF f=1 THEN RUN 110 CLS 120 TAGOFF 130 PRINT"con FRAME" 140 f=1 150 GOTO 30 run Orden. Sincroniza la escritura de caracteres gráficos en la pantalla con el retorno del haz en el monitor. El efecto global es hacer que el movimiento de símbolos por la pantalla sea más suave, sin parpadeo ni discontinuidad. Palabras clave asociadas: TAG, TAGOFF FRE FRE (<expresión numérica>) FRE (<expresión literal>) PRINT FRE(0) PRINT FRE(" ") Función. Da el espacio libre de memoria utilizable por BASIC. En la forma FRE (" ") realiza una 'limpieza de memoria' antes de dar el nùmero de bytes libres. Nota. BASIC solamente utiliza el primer banco de memoria, es decir, los primeros 64K. Palabras clave asociadas: HIMEM, MEMORY GOSUB GOSUB <nùmero de linea> GOSUB 210 Orden. Invoca una subrutina de BASIC; es decir, reconduce el programa hacia el <nùmero de linea> especificado. El final de la subrutina estará indicado por la orden RETURN; cuando se llega a ella, el programa retorna a la instrucción siguiente al GOSUB que invocó la subrutina. Palabras clave asociadas: RETURN GOTO GOTO <número de linea> GOTO 90 Orden. Hace que la ejecución del programa salte a la linea especificada. Palabras clave asociadas: ninguna. GRAPHICS PAPER GRAPHICS PAPER <tinta> 10 MODE 0 20 MASK 15 30 GRAPHICS PAPER 3 40 DRAW 640,0 run Orden. Especifica la <tinta> del papel de la pantalla de gráficos, es decir, el color de fondo sobre el que se dibujan los gráficos. Cuando se dibujan líneas continuas, el papel gráfico se hace invisible. En el programa ejemplo, la orden MASK hace que la recta que se dibuja sea discontinua y que, por lo tanto, el papel gráfico se pueda ver debajo de ella. La tinta del papel gráfico (margen de 0 a 15) se utiliza también como fondo de los caracteres que se escriben mediante TAG y para reteñir la pantalla gráfica cuando no se especifica otra tinta tras la instrucción CLG. Palabras clave asociadas: CLG, GRAPHICS PEN, INK, MASK, TAG, TAGOFF GRAPHICS PEN GRAPHICS PEN [<tinta>][,<modo de fondo>] 10 MODE 0 20 GRAPHICS PEN 15 30 MOVE 200,0 40 DRAW 200,400 50 MOVE 639,0 60 FILL 15 run Orden. Especifica la <tinta> con la que en lo sucesivo se van a dibujar rectas y puntos. El <modo de fondo> puede ser: 0: Fond opaco 1: Fondo transparente (El fondo transparente afecta al papel gráfico de los caracteres escritos con TAG y a los espacios que quedan entre los trazos de las líneas discontinuas.) Se puede omitir cualquiera de los dos parámetros, pero no ambos. Si se omite un parámetro, la característica controlada por él permanece inalterada. Palabras clave asociadas: GRAPHICS PAPER, INK, MASK, TAG, TAGOFF HEX$ HEX$ (<expresión entera>[,<anchura del campo>]) PRINT HEX$(255,4) 00FF Función. Produce una cadena literal que es la versión hexadecimal de la <expresión entera>. La longitud de la cadena es la especificada por el parámetro <anchura de campo> (margen de 0 a 16). Si la longitud es demasiado pequeña, la cadena resultante no se trunca, sino que consta de todos los caracteres necesarios. El valor de la <expresión entera> tiene que estar comprendido entre -32768 et 65535. Palabras clave asociadas: BIN$, DEC$, STR$, UNT HIMEM HIMEM PRINT HIMEM 42619 Función. Da la dirección de la posición de memoria más alta accesible a BASIC (la cual puede ser modificada con la orden MEMORY). Nota. BASIC solamente utiliza el primer banco de memoria, es decir, los primeros 64K. Palabras clave asociadas: FRE, MEMORY, SYMBOL, SYMBOL AFTER IF IF (<expresión logica>) THEN <opción> [ELSE <opción>] 10 MODE 1 20 x=CINT(RND*100) 30 PRINT"Adivine mi numero (de 0 a 100)" 40 INPUT n 50 IF n<x THEN PRINT n;" es demasiado bajo..." 60 IF n>x THEN PRINT n;" es demasiado alto..." 70 IF n=x THEN 80 ELSE c=c+1:GOTO 40 80 PRINT"Muy bien. Lo ha conseguido en"; 90 PRINT c+1;"intendos!" run Orden. Determina si la <expresión logica> tiene el valor 'verdadero'. Si es así, ejecuta la primera <opción>. Si la <expresión lógica> tiene el valor 'falso', ejecuta la <opción> especificada después de ELSE; si no se ha incluido ELSE, BASIC pasa a la siguiente línea del programa. Las órdenes IF . . . THEN . . . se pueden anidar, sin más límite que la longitud de la línea. La orden (o la serie de órdenes anidadas) termina en el final de la línea, de modo que no es posible poner en la misma línea instrucciones que sean independientes de la orden IF . . . THEN . . . . Si la <opción> especificada consiste en un salto de línea, la orden puede tener cualquiera de las tres formas siguientes: IF a=1 THEN 100 IF a=1 GOTO 100 IF a=1 THEN GOTO 100 Palabras clave asociadas: ELSE, GOTO, THEN INK INK <tinta>,<color> [,<color>] 10 MODE 1:PAPER 0:PEN 1 20 FOR p=0 TO 1 30 FOR i=0 TO 26 40 INK p,i 50 LOCATE 16,12:PRINT"INK";p;",";i 60 FOR t=1 TO 400:NEXT t,i,p 70 INK 0,1:INK 1,24:CLS run Orden. Asigna uno o dos colores a la <tinta> dada. El parámetro <tinta> es el número de referencia de la tinta (margen de 0 a 15), por el que se la cita en las órdenes PEN y PAPER. El primer <color> debe ser una expresión entera cuyo valor esté comprendido entre 0 y 26. Si se incluye el segundo <color>, la tinta alterna entre los dos colores, a una velocidad que se controla con la orden SPEED INK. Palabras clave asociadas: GRAPHICS PAPER, GRAPHICS PEN, PAPER, PEN, SPEED INK INKEY nota : utilice preferentemente INKEY$ INKEY (<expresión entera>) 10 IF INKEY(55)<>32 THEN 10 20 PRINT"Ha pulsado [SHIFT] y V" 30 CLEAR INPUT run Función. Examina el teclado para determinar si se ha pulsado una tecla determinada. La exploración se realiza una vez cada 0.02 s. Este Función es útil para averiguar si se ha pulsado cierta tecla, comprobando si el número generado por INKEY es -1 (el cual es independiente de la situación de [SHIFT] y [CTRL]. El ejemplo anterior detecta cuándo se pulsa V (tecla nùmero 55) con [SHIFT] y sin [CTRL]. El esquema de la numeración de las teclas está grabado en la carcasa del ordenador, a la derecha del teclado, e impreso en el capítulo "Cpc 6128 - Documentation" . Los valores generados por INKEY en función de la situación de las teclas [SHIFT] y [CTRL] son los siguientes: Valor generado [SHIFT] [CONTROL] Tecla especificada -1 Indiferente Indiferente No pulsada 0 No pulsada No pulsada Pulsada 32 Pulsada No pulsada Pulsada 128 No pulsada Pulsada Pulsada 160 Pulsada Pulsada Pulsada Palabras clave asociadas: CLEAR INPUT, INKEY$, JOY INKEY$ INKEY$ 10 CLS 20 PRINT"Elija Si o No (S/N):" 30 a$=INKEY$ 40 IF a$="" THEN 30 50 IF a$="s" OR a$="S" THEN 80 60 IF a$="n" OR a$="N" THEN 90 70 GOTO 30 80 PRINT"Ha respondido SI":END 90 PRINT"Ha respondido NO" run Functión. Examina el teclado para determinar si se ha pulsado alguna tecla; de ser asi, genera una cadena literal consistente en el carácter correspondiente a la tecla pulsada. Si no se ha pulsado ninguna tecla, genera la cadena vacía. En el programa ejeplo, las líneas 30 y 40 forman un bucle que no deja de repertise mientras no se pulse una tecla. Palabras clave asociadas: CLEAR INPUT, INKEY INP INP(<nùmero de puerta>) PRINT INP(&FF77) 255 Functión. Da el valor de entrada leído en la dirección de entrada/salida especificada por el parámetro <nùmero de puerta> Palabras clave asociadas: OUT, WAIT INPUT INPUT [#<expresión de nùmero de canal>,][;][<cadena literal entre comillas> <separator>] <lista de:<variable> 10 MODE 1 20 INPUT "Escriba los dos factores (separados por una coma): ",a,b 30 PRINT a;"por";b;"es";a*b 40 GOTO 20 run Orden. Capta una entrada de datos por el canal especificado (Por el #0, si no se especifica ninguno). El primer signo de punto y coma [;] es opcional e inhibe la functión de retorno del carro/avance de linea que de otra forma se produciría al terminar de ejecutarse la instrucción. El <separador> tiene que ser una coma o un punto y coma. El punto y coma hace que se escriba el signo de interrogatión; la coma lo impide. Si el dato introducido es de tipo incorrecto (por ejemplo, cuando se escrbe la letra O en lugar del nùmero 0 en la captación de un dato nùmerico), BASIC responde con el mensaje: ?Redo from start y cualquier otro texto que se haya programado. Toda introducción de datos a través del teclado debe terminar con la pulsación de la tecla [RETURN]. Palabras clave asociadas: LINE INPUT INSTR INSTR ( [<posición de partida>,]<cadena en la que se busca>,<cadena buscada> ) 10 CLS:FOR n=1 TO 26 20 alfabeto$=alfabeto$+CHR$(n+64) 30 NEXT 40 INPUT "Escriba una letra";a$ 50 b$=UPPER$(a$) 60 PRINT b$;" es la letra numero"; 70 PRINT INSTR(alfabeto$,b$); 80 PRINT"del alfabeto":PRINT 90 GOTO 40 run Functión. Determina si la <cadena buscada> está contenida en la <cadena en la que se busca>. Si lo está, da la posición del carácter de la <cadena en la que se busca> en el que se ha producido la primera coincidencia. Si no lo está, da el nùmero 0. El parámetro opcional <posición de partida> indica en qué lugar de la <cadena en la que se busca> debe empezar la bùsqueda; debe ser una expresión entera que dé un valor comprendido entre 1 y 255. Palabras clave asociadas: ninguna. INT INT (<expresión numérica>) PRINT INT(-1.995) -2 Functión. Redondea el valor de la <expresión numérica> al nùmero entero inferior, despreciando la parte decimal. Da el mismo valor que FIX cuando el argumento es positivo, pero una unidad menos que FIX cuando el argumento es negativo y no entero. Palabras clave asociadas: CINT, FIX, ROUND JOY JOY (<expresión entera>) 10 PRINT"Para detener el programa "; 20 PRINT"accione el joystick" 30 IF JOY(0)<>0 THEN END 40 GOTO 10 run Functión. Lee bit a bit la situación del joystick especificado por la <expresión entera> (que debe valer 0 o 1). Genera un valor decimal según la siguiente tabla: Bit Decimal 0:Arriba 1 1:Abajo 2 2:Izquierda 4 3:Derecha 8 4:Disparo 2 16 5:Disparo 1 32 Asi, en el programa ejemplo, si el botón principal de disparo (Disparo 2) del primer joystick está accionado mientras la empuñadura está inclinada hacia la izquierda, la función JOY(0) da el nùmero decimal 20, que es la suma de 16 (Disparo 2) más 4 (Izquerdia). Palabras clave asociadas: CLEAR INPUT, INKEY KEY KEY <código expansible>,<expresión literal> KEY 11,"border 13:paper 0:pen 1:ink 0,13:ink 1,0:mode 2:list"+CHR$(13) y ahora pulse la tecla [INTRO]. Orden. Asigna la <expresión literal> al <código expansible> especificado. El sistema maneja 32 códigos expansibles, del 0 al 31, identificados por los códigos de tecla 128 a 159. Los códigos de tecla del 128 (generado por la tecla 0 del teclado numérico) al 140 (generado por la tecla [INTRO] con [CONTROL]) tienen asignadas implícitamente las funciones de escribir los dígitos del 0 al 9, el punto, [RETURN] y RUN"[RETURN] (para operatión con cinta), respectivamente, pero se les pueden asignar otras <expresiónes literales> diferentes con KEY. Los códigos espansibles 13 a 31 (códigos de tecla 141 a 159) tienen asignada implícitamente la cadena vacía, pero se los puede expandir con KEY para luego asignarlos a teclas concretas con KEY DEF. El parámetro <código expansible> incluido en la orden KEY puede estar en el margen de 0 a 31, o bien en el margen 128 a 159 para reflejar directamente códigos de tecla. (consulte "Cpc 6128 - Documentation") Las <expresiónes literales> con las que se expandan los códigos expansibles pueden ocupar como máximo un total de 120 caracteres. Si se intenta sobrepasar ese límite se produce el error 'improper argument' ('argumento inadecuado', error nùmero 5). Palabras clave asociadas: KEY DEF KEY DEF KEY DEF <nùmero de tecla>,<repetir>[,<normal>[,<con shift>[,con control]]] KEY 159,"esta es la tecla TAB" KEY DEF 68,1,159 Después de escribir estas órdenes, pulse la tecla [TAB]. Orden. Define los códigos de tecla que van a ser genarados por le tecla de nùmero especificado. El <nùmero de tecla> tiene que estar en el margen de 0 a 79 (véanse los nùmeros de tecla en el diagrama grabado a la derecha del teclado, o bien el esquema del capítulo "Cpc 6128 - Documentation"). En la definición se pueden incluir los códigos de tecla que deben ser generados por la tecla cuando se la pulsa sola y cuando se la pulsa en combinación con [SHIFT] y [CONTROL]. Todos estos parámetros son opcionales. El parámetro <repetir> puede tener los valores 1 (para que la tecla sea de repetición) o 0 (para que no lo sea). La velocidad de repetición se puede definir con SPEED KEY. En el ejemplo anterior, primero se asigna una cadena literal al código 159 (equivalente al código expansible 31), y luego se especifica que la tecla nùmero 68 (la tecla [TAB]) debe ser de repetición (1) y generar el código 159 cuando se la pulse sola. La situación normal se restaura, en el ejemplo anterior, mediante la orden: KEY DEF 68,0,9 ya que el 9 es el código ASCII normalmente generado por [TAB]. Palabras clave asociadas: KEY, SPEED KEY LEFT$ LEFT$(<expresión literal>,<longitud deseada>) 10 CLS 20 a$="AMSTRAD" 30 FOR n=1 TO 7 40 PRINT LEFT$(a$,n) 50 NEXT run Functión. Produce una cadena que consta del nùmero de caracteres dado por <longitud deseada> (margen de 0 a 255) tomados de la izquierda de la <expresión literal>. Si la longitud de la <expresión literal> es menor que la <longitud deseada>, la cadena producida es la <expresión literal> completa. Palabras clave asociadas: MID$, RIGHT$ LEN LEN (<expresión literal>) 10 LINE INPUT "Escriba una frase: ";a$ 20 PRINT"la frase tiene"; 30 PRINT LEN(a$);"caractères." run Functión. Da la longitud de la <expresión literal>, es decir, el nùmero de caracteres de que consta ésta. Palabras clave asociadas: ninguna. LET LET <variable>=<expresión> LET x=100 Orden. Asigna un valor a una variable. Es una reliquia de las primeras versiones de BASIC, innecesaria en el BASIC de AMSTRAD. En el ejemlo anterior habría bastado con escribir: x=100 Palabras clave asociadas: ninguna. LINE INPUT LINE INPUT [#<expresión de nùmero de canal>,][;][<cadena entre comillas> <separator>] <variable literal> 10 LINE INPUT "Escriba una linea de texto: ";a$ 20 CLS 30 PRINT"La variable a$ es igual a: " 40 PRINT a$ run Orden. Acepta la introducción de una línea entera de texto por el canal especificado (o por el #0, si no se especifica ninguno). El primer signo de punto y coma [;] es opcional y, si se lo incluye, inhibe el retorno del carro/avance de línea que de otra forma se realizaría al terminar de ejecutarse la orden. El <separator> tiene que ser una coma o un punto y coma. El punto y coma hace que se escriba el signo de interrogación; la coma lo impide. La captación de datos a traves del teclado debe terminar con la pulsación de la tecla [RETURN]. La captación de datos por el canal #9 (disco o cinta) termina cuando se recibe un carácter de retorno del carro o cuando se han recibido 255 caracteres (lo que antes ocurra). Palabras clave asociadas: INPUT LIST LIST [<margen de nùmeros de línea>][, #<expression de nùmero de canal>] LIST 100-1000,#1 Orden. Envía el listado de las líneas especificadas al canal especificado. El canal implícito es el #0. La impresora es el canal #8. La acción de listar se puede suspender momentáneamente pulsando [ESC] una vez, tras lo cual se la puede reanudar pulsando la barra espaciadora o abandonar definitivamente pulsando [ESC] por segunda vez. Si se omite el primer nùmero de <margen de nùmeros de línea>, se entiende 'desde el principio del programa hasta ...'; si se omite el segundo nùmero, se entiende '... hasta el final del programa'. Asi, LIST -200 lista las primeras líneas del programa, hasta la 200 inclusive. En cambio, LIST 50- lista desde la línea 50 en adelante. Finalmente, LIST lista el programa completo. Palabras clave asociadas: ninguna. LOAD LOAD <nombre de fichero>[,<expresión de dirección de memoria>] LOAD"fichdisc.xyz",&2AF8 Orden. Lee un programa de BASIC grabado en disco y lo carga en la memoria, reemplazando al actual. Si se especifica la <expresión de dirección de memoria> opcional, LOAD carga un fichero binario en esa dirección, en lugar de hacerlo en la dirección a partir de la cual se lo grabó. Los programas de BASIC protegidos no se pueden cargar por este método, pues el orenador los borra inmediatamente de la memoria. Esos programas deben ser cargados con RUN o CHAIN. Palabras clave asociadas: CHAIN, CHAIN MERGE, MERGE, RUN, SAVE LOCATE LOCATE [#<expresión de nùmero de canal>,]<coordenada x>,<coordenada y> 10 MODE 1 20 FOR n=1 TO 20 30 LOCATE n,n 40 PRINT CHR$(143);"posicion"; 50 PRINT n;",";n 60 NEXT run Orden. Coloca el cursor de texto del canal indicado en la posición especificada por las coordenadas x,y. La posición 1,1 es el extremo superior izquierdo de la ventana. El canal #0 es el canal implícito. Palabras clave asociadas: WINDOW LOG LOG (<expresión numérica>) PRINT LOG(9999) 9.21024037 Functión. Calcula el LOGaritmo natural o neperiano de la <expresión numérica>, la cual debe ser mayor que cero. Palabras clave asociadas: EXP, LOG10 LOG10 LOG10 (<expresión numérica>) PRINT LOG10(9999) 3.99995657 Functión. Calcula el LOGaritmo decimal de la <expresión numérica>, la cual debe ser mayor que cero. Palabras clave asociadas: EXP, LOG LOWER$ LOWER$ (<expresión literal>) 10 a$="OBSERVE COMO SE CONVIERTEN LAS LETRAS A " 20 PRINT LOWER$(a$+"MINUSCULAS") run Functión. Da una cadena literal que es copia de la <expresión literal> especificada, pero convirtiendo las letras mayúsculas en minúsculas y dejando inalterados los restantes caracteres. Esta fonctión es útil en el proceso de datos que puedan contener minúsculas mezcladas con mayúsculas. Palabras clave asociadas: UPPER$ MASK MASK [<expresión entera>][,<situacion del primer punto>] 10 MODE 0:INK 5,21:INK 8,16 20 MOVE -100*RND,400*RND 30 WHILE XPOS<640 40 FOR x=1 TO 8 50 MASK 2^ (8-x) 60 DRAWR 32,0,x,1:MOVER -32,0 70 NEXT 80 MOVER 34,0 90 WEND:GOTO 20 run Orden. Define una 'máscara' o plantilla que se puede utilizar en el dibujo de rectas. La <expresión entera> (margen de 0 a 255) determina la situación de los diversos bits de cada grupo de 8 pixels adyacentes: 0 para pixel apagado, 1 para pixel iluminado. El parámetro <situacion del primer punto> determina si el primer punto de la recta debe ser iluminado (1) o no (0). Se puede omitir cualquiera de los dos parámetros, pero no ambos. La situación de la característica correspondiente al parámetro omitido permanece inalterada. Palabras clave asociadas: DRAW, DRAWR, GRAPHICS PAPER, GRAPHICS PEN MAX MAX (<lista de:<expresión numérica>) 10 n=66 20 PRINT MAX(1,n,3,6,4,3) run 66 Functión. Da el valor máximo de los incluidos en la <lista de:<expresión numérica>. Palabras clave asociadas: MIN MEMORY MEMORY <expresión de dirección de memoria> MEMORY &20AA Orden. Determina el espacio de memoria utilizable por BASIC al fijar la dirección de su límite superior. Nota. BASIC solamente utiliza el primer banco de memoria, es decir, los primeros 64K. Palabras clave asociadas: FRE, HIMEM, SYMBOL, SYMBOL AFTER MERGE MERGE <nombre de fichero> MERGE "nuevopro.bas" Orden. Lee un programa grabado en disco y lo superpone al actualmente almacenado en la memoria. Las líneas del programa leído se superponen y sustituyen a las que hubiera en el antiguo con el mismo nùmero. Los ficheros protegidos (grabados con ,p) no pueden ser mezclados por este procedimiento con el programa actual. Palabras clave asociadas: CHAIN, CHAIN MERGE, LOAD MID$ MID$ (<expresión literal>,<posición de partida>[,<longitud de la subcadena>]) 10 MODE 1:ZONE 3 20 a$="MASSACHUSETTS" 30 PRINT"Deletreame ";a$ 40 PRINT "Vale ...":PRINT 50 FOR n=1 TO LEN(a$) 60 PRINT MID$(a$,n,1), 70 FOR t=1 TO 700:NEXT t,n 80 PRINT:PRINT 90 INPUT "Ahora escriba usted otra palabra: ";a$ 100 GOTO 50 run Functión. Genara una cadena literal copiada de la <expresión literal>. El nùmero de caracteres copiados es el dado por <longitud de la subcadena>; la copia empieza en el carácter especificado por <posición de partida>. Si no se especifica la <longitud de la subcadena>, se copian todos los caracteres restantes, desde <posición de partida> hacia la derecha. Si la <posición de partida> es mayor que la longitud de la <expresión literal> se genera la cadena vacía. El margen de <posición de partida> es de 1 a 255. El margen de <longitud de la subcadena> es de 0 a 255. Palabras clave asociadas: LEFT$, RIGHT$ MID$ MID$ (<variable literal>,<posición de incerción>[,<longitud de cadena nueva>]) = <expresión de cadena nueva> 10 a$="Amstrad" 20 MID$(a$,3,2)="XX" 30 PRINT a$ run AmXXrad Orden. Reemplaza un nùmero de caracteres de la <variable literal>, dado por <longitud de cadena nueva>, con caracteres tomados de <expresión de cadena nueva>. La substitutión empieza en <posición de incerción>. Obsérvese que cuando se utiliza MID$ como orden, su argumento debe ser una <variable literal>; no vale, pues, una cadena literal constante tal como "hola". Palabras clave asociadas: LEFT$, RIGHT$ MIN MIN (<lista de:<expresión numérica>) PRINT MIN(3,6,2.999,8,9,) 2.999 Functión. Da el valor mínimo de los incluidos en la <lista de:<expresión numérica>. Palabras clave asociadas: MAX MOD <argumento> MOD <argumento> PRINT 10 MOD 3 1 PRINT 10 MOD 5 0 Operador. Da el resto de la división entera del primer <argumento> por el segundo. Palabras clave asociadas: ninguna. MODE MODE <expresión entera> 10 m=m+1: IF m>2 THEN m=0 20 MODE m 30 PRINT"Este es el modo";m 40 PRINT"Pulse una tecla." 50 IF INKEY$="" THEN GOTO 50 ELSE 10 run Orden. Cambia el modo de pantalla (0,1 o 2) y la borra tiñéndola con la tinta nùmero 0 (que puede no ser la tinta actualmente asignada al papel). Todas las pantallas de texto y gráficas se restauran (coincidentes con la pantalla completa); los cursores de texto y gráfico quedan en sus orígenes respectivos. Palabras clave asociadas: WINDOW, ORIGIN MOVE MOVE <coordenada x>,<coordenada y>[,[<tinta>][,<modo de tinta>]] 10 MODE 1:TAG 20 x=RND*800-100:y=RND*430 30 MOVE x,y 40 PRINT"Estoy aqui"; 50 GOTO 20 run Orden. Lleva el cursor gráfico a la posición absoluta especificada por las coordenadas x,y. Se puede utilizar el parámetro opcional <tinta> para cambiar la tinta de la pluma gráfica (margen 0 a 15). El parámetro opcional <modo de tinta> determina la futura forma de interacción entre la tinta con la que se dibuje y la ya existente en la pantalla. Los cuatros modos son: 0:Normal 1:XOR (OR exclusivo) 2:AND 3:OR Palabras clave asociadas: MOVER, ORIGIN, XPOS, YPOS MOVER MOVER <incremento de x>,<incremento de y>[,[<tinta>][,<modo de tinta>]] 10 MODE 1:TAG:MOVE 0,16 20 PRINT"primero se sube"; 30 FOR n=1 TO 8 40 MOVER -56,16 50 PRINT"sube";:NEXT:PRINT" y luego se baja"; 60 FOR n=1 TO 8 70 MOVER -56,-16 80 PRINT"baja";:NEXT run Orden. Lleva el cursor gráfico a un punto cuya positión, referida a la actual, viene dada por <incremento de x> e <incremento de y>. Se puede utilizar el parámetro opcional <tinta> para cambiar la tinta de la pluma gráfica (margen de 0 a 15). El parámetro opcional <modo de tinta> determina la futura forma de interacción entre la tinta con la que se dibuje y la ya existente en la pantalla. Los cuatros modos son: 0:Normal 1:XOR (OR exclusivo) 2:AND 3:OR Palabras clave asociadas: MOVE, ORIGIN, XPOS, YPOS NEW NEW NEW Orden. Borra el programa de BASIC actualmente residente en la memoria. No se pierden las definiciones de teclas ni se modifican las características de la pantalla (MODE, PEN, PAPER, INK etc.) ni se borra la pantalla. Palabras clave asociadas: ninguna. NEXT NEXT [<lista de: <variable>] 10 FOR a=1 TO 3 20 FOR b=0 TO 26 30 MODE 1 40 PEN a:BORDER b 50 PRINT"PEN";a;"BORDER";b 60 FOR c=1 TO 500 70 NEXT c,b,a run Orden. Señala el final del bucle FOR ... NEXT. La orden NEXT puede ser anónima o mencionar el nombre de la variable del FOR correspondiente. Obsérvese en el ejemplo anterior que las variables de la lista deben estar en orden inverso al de sus correspondientes órdenes FOR, de modo que los bucles no queden solapados, sino anidados. Palabras clave asociadas: FOR, STEP, TO NOT NOT <argumento> IF NOT "juan" < "pepe" THEN PRINT "verdadero" ELSE PRINT "falso" falso IF NOT "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" verdadero ...... PRINT NOT -1 0 PRINT NOT 0 -1 Operador. Realiza la negación lógica sobre enteros inviertiendo todos los bits del argumento. Palabras clave asociadas: AND, OR, XOR ON BREAK CONT ON BREAK CONT 10 ON BREAK CONT 20 PRINT"El programa CONTinua aunque usted intente interrumpirlo con [ESC]":PRINT 30 FOR t=1 TO 1000:NEXT:GOTO 20 run Orden. Inhibe la posibilidad de interrumpir el programa pulsando la tecla [ESC], pues intercepta la interrupción y continùa la ejecución. Esta orden se debe utilizar con precaución, ya que el programa no podrá ser detenido más que reinicializando la máquina; grabe el programa antes de ejecutarlo. Dentro de un programa, esta orden se anula con ON BREAK STOP. Palabras clave asociadas: ON BREAK GOSUB, ON BREAK STOP ON BREAK GOSUB ON BREAK GOSUB <número de linea> 10 ON BREAK GOSUB 40 20 PRINT"Programa funcionando" 30 GOTO 20 40 CLS::PRINT"Pulsando dos veces [ESC] "; 50 PRINT"se invoca la subrutina" 60 FOR t=1 TO 2000:NEXT 70 RETURN run Orden. Provoca el salto a la subrutina especificada por <número de linea> cuando se pulsa dos veces la tecla [ESC]. Palabras clave asociadas: ON BREAK CONT, ON BREAK STOP, RETURN ON BREAK STOP ON BREAK STOP 10 ON BREAK GOSUB 40 20 PRINT"Programa funcionando" 30 GOTO 20 40 CLS:PRINT"Pulsando dos veces [ESC] "; 50 PRINT"se invoca la subrutina" 60 FOR t=1 TO 2000:NEXT 65 ON BREAK STOP 70 RETURN run Orden. Anula las órdenes ON BREAK CONT y ON BREAK GOSUB, permitiendo así que el programa pueda ser interrumpido normalmente con la tecla [ESC]. En el programa ejemplo, la orden ON BREAK GOSUB sólo actùa una vez, pues la línea 65 de la rutina de interrupción la anula. Palabras clave asociadas: ON BREAK CONT, ON BREAK GOSUB ON ERROR GOTO ON ERROR GOTO <número de linea> 10 ON ERROR GOTO 60 20 CLS:PRINT"Si detecto un error, "; 30 PRINT"LISTare el programa" 40 FOR t=1 TO 4000:NEXT 50 GOTO 100 60 PRINT"Hay un error en la linea"; 70 PRINT ERL:PRINT:LIST run Orden. Provoca el salto a la línea especificada cuando se detecta un error en el programa. La forma ON ERROR GOTO 0 desactiva la gestión de errores programada por el usuario y activa la norma de BASIC. Véase también la orden RESUME. Palabras clave asociadas: DERR, ERL, ERR, ERROR, RESUME ON <expresión> GOSUB ON <selector> GOSUB <lista de: <número de línea> 10 PAPER 0:PEN 1:INK 0,1 20 CLS:PRINT"MENU DE OPCIONES":PRINT 30 PRINT"1 - Cambiar borde":PRINT 40 PRINT"2 - Cambiar pluma":PRINT 50 PRINT"3 - Cambiar modo":PRINT 60 INPUT"Elija del 1 al 3: ";x 70 ON x GOSUB 90,110,130 80 GOTO 20 90 b=b-1:IF b<0 THEN b=26 100 BORDER b:RETURN 110 p=p-1:IF p<2 THEN p=26 120 INK 1,p:RETURN 130 m=m-1:IF m<0 THEN m=2 140 MODE m:RETURN run Orden. Determina, en función del valor de <selector>, qué subrutina de BASIC debe ser invocada. El margen de valores de <selector> es de 0 a 255. La rutina elegida es la que se encuentra en la lista en el lugar indicado por <selector>. Así, en el ejemplo anterior, si x=1, se invoca la rutina de la línea 90; si x=2, la línea 110; si x=3, la línea 130. Si el valor de <selector> es cero o mayor que el nùmero de líneas citadas en la <lista de: <número de línea>, no se invoca ninguna subrutina. Palabras clave asociadas: RETURN ON <expresión> GOTO ON <selector> GOTO <lista de: <número de línea> 10 CLS:PRINT"MENU DE OPCIONES":PRINT 20 PRINT"1 - LISTar programa":PRINT 30 PRINT"2 - EDITar y ampliar":PRINT 40 PRINT"3 - CATalogo del disco":PRINT 50 INPUT"Elija del 1 al 3: ";n 60 ON n GOTO 80,90,100 80 LIST 90 AUTO 100 CAT run Orden. Determina, en función del valor de <selector>, qué línea del programa debe saltar la ejecución. El margen de valores de <selector> es de 0 a 255. La línea elegida es la que se encuentra en la lista en el lugar indicado por <selector>. Así, en el ejemplo anterior, si x=1, se salta a la línea 80; si x=2, a la línea 90; si x=3, a la línea 100. Si el valor de <selector> es cero o mayor que el nùmero de líneas citadas en la <lista de: <número de línea>, no se produce el salto. Palabras clave asociadas: ninguna. ON SQ GOSUB ON SQ (<nùmero de canal>) GOSUB <número de línea> 10 ENV 1,15,-1,1 20 ON SQ(1) GOSUB 60 30 MODE 0:ORIGIN 0,0,200,440,100,300 40 FOR x=1 TO 13:FRAME:MOVE 330,200,x 50 FILL x:NEXT:GOTO 40 60 READ s:IF s=0 THEN RESTORE:GOTO 60 70 SOUND 1,s,25,15,1 80 ON SQ(1) GOSUB 60:RETURN 90 DATA 50,60,90,100,35,200,24,500,0 run Orden. Invoca la subrutina especificada cuando hay espacio libre en la cola de sonidos. El parámetro <canal> deber ser una expresión entera que dé uno de los siguientes valores: 1: para el canal A 2: para el canal B 4: para el canal C Palabras clave asociadas: RETURN, SOUND, SQ OPENIN OPENIN <nombre de fichero> 10 REM abrir un fichero del disco para entrada 20 OPENIN "datos":INPUT#9,a,a$ 30 CLOSEIN:PRINT"los dos valores son:" 40 PRINT:PRINT a,a$ run Orden. Abre, en dirección de entrada, un fichero grabado en disco para hacerlo accesible al programa. El fichero tiene que ser de tipo ASCII. El programa anterior sólo functiona si se ha creado previamente el fichero (por ejemplo, con el programa siguiente). Palabras clave asociadas: CLOSEIN, EOF OPENOUT OPENOUT <nombre de fichero> 10 REM abrir un fichero en el disco para salida 20 INPUT"Escriba un numero: ";a 30 INPUT"Escriba una palabra: ";a$ 40 OPENOUT "datos" 50 WRITE#9,a,a$ 60 CLOSEOUT:PRINT"Datos grabados en disco" run Orden. Abre, en dirección de salida, un fichero para su grabación en disco. Palabras clave asociadas: CLOSEOUT OR <argumento> OR <argumento> IF "juan" < "pepe" OR "perro" > "gato" THEN PRINT "verdadero" ELSE PRINT "falso" verdadero IF "pepe" < "juan" OR "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" falso IF "juan" < "pepe" OR "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" verdadero ..... PRINT 1 OR 1 1 PRINT 0 OR 0 0 PRINT 1 OR 0 1 Operador. Realiza la operación lógica 'o' bit a bit entre enteros. El resultado es 1 a menos que ambos bits sean 0. Palabras clave asociadas: AND, NOT, XOR ORIGIN ORIGIN <x>,<y>[,<izquerda>,<derecha>,<arriba>,<abajo>] 10 MODE 1:BORDER 13:TAG 20 ORIGIN 0,0,100,540,300,100 30 GRAPHICS PAPER 3:CLG 40 FOR x=550 TO -340 STEP -10 50 MOVE x,206 60 PRINT"Esta es una ventana grafica "; 70 FRAME:NEXT:GOTO 40 run Orden. Traslada el origen de gráficos (nuevo punto 0,0) a la posición especificada por <x> e <y>. Al mismo tiempo se pueden especificar la dimensiones de una ventana gráfica dando los cuatro últimos parámetros (opcionales). Si estos parámetros definen posiciones externas a la pantalla, el borde de la ventana será el borde de la pantalla. Palabras clave asociadas: CLG OUT OUT <nùmero de puerta>,<expresión entera> OUT &F8F4,&FF Orden. Envía el valor de <expresión entera> (margen de 0 a 255) al la dirección especificada por <nùmero de puerta>. Esta orden no debe ser utilizada si no se sabe cuáles son sus efectos. Palabras clave asociadas: INP, WAIT PAPER PAPER[#<expression de nùmero de canal>,] <tinta> 10 MODE 0:PEN 0:INK 0,13 20 FOR p=1 TO 15 30 PAPER p:CLS 40 LOCATE 7,12:PRINT"PAPER";p 50 FOR t=1 TO 5000:NEXT t,p 60 PAPER 5:CLS run Orden. Establece qué tinta se va a utilizar para escribir el fondo (papel) de los caracteres. Si los caracteres se envían a la pantalla de texto, la celda se rellena con el color actual del papel antes de escribir el carácter (a menos que se haya elegido el modo transparente). Si se omite la <expression de nùmero de canal> se supone el #0. El nùmero de tintas utilizables simultáneamente depende del modo de pantalla. Palabras clave asociadas: INK, GRAPHICS PAPER, PEN PEEK PEEK (<expresión de dirección de memoria>) 10 MODE 1:ZONE 7 20 WINDOW 1,40,1,3:WINDOW#1,1,40,4,25 30 LOCATE 13,1:PRINT"MEMORIA" 40 PRINT:PRINT:"Direccion" 50 LOCATE 20,3:PRINT"Contenido" 60 FOR n=0 TO 65535 70 p=PEEK(n) 80 PRINT#1,n,"(&";HEX$(n);")"; 90 PRINT#1,TAB(20);p,"(&";HEX$(p);")" 100 NEXT run Función. Da el contenido de la posición de memoria especificada por el argumento, el cual debe estar en el margen de &0000 a &FFFF (0 a 65535). En todos los casos, el valor producido será el contenido de la posición de memoria de la RAM (no de la ROM) y estará entre &00 y &FF (entre 0 y 255). Palabras clave asociadas: POKE PEN PEN [#<expresion de nùmero de canal>,][<tinta>][,<modo de fondo>] 10 MODE 0:PAPER 0:INK 0,13 20 FOR p=1 TO 15 30 PEN p:PRINT SPACE$(47);"PEN";p 40 FOR t=1 TO 5000:NEXT t,p:GOTO 20 run Orden. Establece la (tinta) (margen de 0 a 15) con la que se escribirán los caracteres en lo sucesivo en el canal especificado (en el #0 si no se especifica ninguno). El parámetro <modo de fondo> puede ser 1 (transparente) o O (opaco). Se puede omitir cualquiera de los últimos parámetros, pero no ambos. La característica correspondiente al parámetro omitido permanece inalterada. Palabras clave asociadas: PAPER PI PI PRINT PI 3.14159265 Función. Da el valor del número PI, relación de la longitud al diámetro de la circunferencia. Palabras clave asociadas: DEG, RAD PLOT PLOT <coordenada x>,<coordenada y>[,[<tinta>][,<modo de tinta>]] 10 MODE 1:BORDER 0:PAPER 0:PEN 1 20 INK 0,0:INK 1,26:INK 2,13,26:DEG 30 FOR x=1 TO 360:ORIGIN 320,200 40 DRAW 50*COS(x),50*SIN(x),1 50 PLOT 100*COS(x),25*SIN(x):NEXT 60 ORIGIN 0,0:t=TIME+700:WHILE TIME<t 70 PLOT RND*640,RND*400:WEND 80 PLOT RND*640,RND*400,2 90 GOTO 90 run Orden. Dibuja un punto en la pantalla gráfica, en la posición absoluta especificada por los parámetros <coordenada X> y <coordenada y>. También se puede especificar la (tinta) con la que se debe dibujar (margen de 0 a 15). El parámetro opcional <modo de tinta> determina la forma de interacción entre la tinta con la que se dibuja y la ya presente en la pantalla. Los cuatro modos son: 0: Normal 1: XOR (OR exclusivo) 2: AND 3: OR Palabras clave asociadas: GRAPHICS PEN, PLOTR PLOTR PLOTR <incremento de x>,<incremento de y>[,[<tinta>][,<modo de tinta>]] 10 REM dibujo de rectas con las teclas del cursor 20 BORDER 0:GRAPHICS PEN 1 30 MODE 1:PLOT 320,200 40 IF INKEY(0)=0 THEN PLOTR 0,1 50 IF INKEY(1)=0 THEN PLOTR 1,0 60 IF INKEY(2)=0 THEN PLOTR 0,-1 70 IF INKEY(8)=0 THEN PLOTR -1,0 80 IF INKEY(9)=0 THEN 30:REM copy = borrar 90 GOTO 40 run Orden. Dibuja un punto en la pantalla gráfica en una posición que, referida a la actual, viene dada por los parámetros <incremento de X> e <incremento de y>. Se puede utilizar el parámetro opcional <tinta> para cambiar la tinta de la pluma gráfica (margen de 0 a 15). El parámetro opcional ( modo de tinta) determina la futura forma de interacción entre la tinta con la que se dibuja y la ya presente en la pantalla. Los cuatro modos son: 0: Normal 1: XOR (OR exclusivo) 2: AND 3: OR Palabras clave asociadas: GRAPHICS PEN, PLOT POKE POKE <expresión de dirección de memoria>,<expresión entera> 10 FOR m=49152 TO 65535 20 POKE m,100 30 NEXT run Orden. Escribe el valor de la <expresión entera> (margen de 0 a 255) en la memoria de la máquina (RAM), en la posición especificada por el parámetro <expresión de dírección de memoria>. Esta orden no se debe utilizar si no se sabe cuáles son sus efectos. Palabras clave asociadas: PEEK POS POS (#<expresion nùmero de canal>) 10 MODE 1:BORDER 0:LOCATE 8,2 20 PRINT"Utilice las teclas de cursor a la izquievda y cursor a la derecha" 30 WINDOW 1,40,12,12:CURSOR 1,1 40 FOR n=1 TO 19:PRINT CHR$(9);:NEXT 50 IF INKEY(1)<>-1 THEN PRINT CHR$(9); 60 IF INKEY(8)<>-1 THEN PRINT CHR$(8); 70 LOCATE #1,2,24 80 PRINT #1,"Posicion horizontal del "; 90 PRINT #1,"cursor de texto ="; 100 PRINT #1,POS(#0):GOTO 50 run Función. Da la posición horizontal del cursor de texto referida al borde izquierdo de la ventana. El parámetro <expresión de número de canal> tiene que ser especificado, aunque sea el #0. POS(#8) da la posición horizontal de la cabeza impresora, siendo 1 la posición del extremo izquierdo. POS(#9) da la posición lógica en el canal del disco, esto es, el número de caracteres tipográficos enviados al disco después del último retorno del carro. Palabras clave asociadas: VPOS, WINDOW PRINT [#<expresion nùmero de canal>,][<lista de: <elemento que se escribe>] 10 a$="corta" 20 b$="esta cadena es mas larga" 30 PRINT a$;a$ 40 PRINT a$,a$ 50 PRINT 60 PRINT b$;b$ 70 PRINT b$,b$ run Orden. Envía los <elementos que se escriben> al canal especificado (o al #0, si no se especifica ninguno). Cuando se utiliza un signo de punto y coma (;) para separar los elementos de la lista, el ordenador escribe cada elemento inmediatamente después del anterior; no obstante, BASIC comprueba si el elemento siguiente cabe en la misma línea y, si no cabe, salta a la línea siguiente a pesar del signo de punto y coma. Análogamente, la coma (,) especifica que el siguiente elemento se debe escribir en la siguiente zona de escritura; no obstante, BASIC comprueba si con el elemento actual se ha rebasado la anchura de la zona de escritura y, si es así, escribe el siguiente elemento en una zona más a la derecha. PRINT SPC PRINT TAB PRINT [#<expresión de nùmero de canal>,][<lista de: <elemento que se escribe>][;] [SPC(<expresión entera>)][<lista de: <elemento que se escribe>] PRINT [#<expresión de nùmero de canal>,][<lista de: <elemento que se escribe>][;] [TAB(<expresión entera>)][<lista de: <elemento que se escribe>] 10 PRINT"Esta es la funcion SPC" 20 FOR x=6 TO 15 30 PRINT SPC(5) "a";SPC(x);"b" 40 NEXT 50 PRINT"Esta es la funcion TAB" 60 FOR x=6 TO 15 70 PRINT TAB(5) "a";TAB(x);"b" 80 NEXT run SPC escribe el número de espacios especificado por la <expresión entera> y luego, inmediatamente a su derecha, el siguiente <elemento> (en el supuesto de que quepa en la misma línea). Por consiguiente, no es necesario poner el signo de punto y coma después de SPC. TAB avanza (escribiendo espacios) hasta la posición especificada por la <expresión entera>, referida al borde izquierdo de la ventana, y luego, inmediatamente a la derecha de esa posición, escribe el siguiente <elemento> (en el supuesto de que quepa en la misma línea). Por consiguiente, no es necesario poner el signo de punto y coma después de TAB. Si la posición actual es mayor que la especificada, primero se realiza un retorno de carro y avance de línea y después el avance de los espacios necesarios. PRINT USING PRINT [#<expresión nùmero de canal>][<lista de:<elemento que se escribe>][;] [USING<plantilla de formato>][<separator> <expresión>] 10 FOR x=1 TO 10 20 n=100000*(RND^ 5) 30 PRINT"Precio";USING"########,.##";n 40 NEXT run PRINT USING permite especificar el formato de la expresión escrita con PRINT. Esto se consigue especificando una <plantilla de formato> a la que la escritura ha de amoldarse. El <separador> es una coma o un punto y coma. La <plantilla de formato> es una cadena literal constmida con los siguientes ‘especificadores de formato’: Formutos numéricos Para el número en sí: # Cada # específica una posición (para un dígito). Ejemplo: ###### . Especifica la posición del punto decimal. Ejemplo: ######.## , (Especifica una posición.) Sólo puede aparecer antes del punto decimal. Especifica que los dígitos que queden a la izquierda del punto decimal deben separarse mediante comas en grupos de tres. Ejemplo: #####,.## Para antes y después del número: PtPt (Especifica dos posiciones.) Especifica que se debe escribir un signo Pt imnediatamente antes del primer dígito o del punto decimal, después del signo + o - (si lo hay). Obsérvese que el signo Pt ocupará una de las posiciones para dígitos. Ejemplo: PtPt######,.## ** (Especifica dos posiciones.) Especifica que los espacios libres a la izquierda deben ser rellenados con asteriscos. Ejemplo: **######,.## **Pt (Especifica tres posiciones.) Actúa como las opciones ** y Pt combinadas, es deeir con asteriscos por la izquierda y el signo Pt. Ejemplo: **Pt######,.## $$ (Especifica dos posiciones.) Especifica que se debe escribir un signo $ inmediatamente antes del primer dígito o del punto decimal, después del signo + o - (si lo hay). Obsérvese que el signo $ ocupará una de las posiciones para dígitos. Ejemplo: $$######,.## **$ (Especifica tres posiciones.) Actúa como las opciones ** y $$ combinadas es decir, con asteriscos por la izquierda y el signo $. Ejemplo: **$######,.## + Especifica que se debe escribir el signo + o el - (según corresponda). Si se incluye el signo + al principio de la plantilla, el signo se escribirá inmediatamente antes del número (y del signo Pt o $, si se lo ha especificado). Si se incluye el signo + al final de la plantilla, el signo se escribe a la derecha del número (y del exponente, si lo hay). Ejemplo: +####.#### - Este signo sólo se puede poner al final de la plantilla. Especifica que, si el número es negativo, se debe escribir el signo - a su derecha (y a la derecha del exponente, si lo hay). Si el número es positivo, a su derecha se escribe un espacio. Si no se especifica esto, se escribe automáticamente un signo - a la izquierda de todos los números negativos. Ejemplo: ####.####- ^^^^ Especifica que el número se debe escribir en forma exponencial. Los signos ^^^^ se deben poner a la derecha de las posiciones para dígitos, pero a la izquierda de los signos + y - (si los hay). Ejemplo: ##.####^^^^+ La <plantilla de formato> para números no puede contener más de 20 caracteres. Los números son redondeados antes de escribirlos con los dígitos especificados. Si el formato es demasiado pequeño para el número que se ha de escribir, por ejemplo PRINT USING "####";12345678 el número no se trunca, sino que se lo escribe entero, precedido de un signo % para indicar el ‘fallo de formato’. Formatos literales 10 CLS:a$="abcdefghijklmnopq" 20 PRINT"expresion de entrada = ";a$ 30 PRINT:PRINT"con especificador ! = "; 40 PRINT USING "!";a$ 50 PRINT:PRINT"con especificador \espacios\ = "; 60 PRINT USING "\ \";a$ 70 PRINT:PRINT"con especificador & = "; 80 PRINT USING "&";a$ 90 GOTO 90 run ! Especifica que solamente se debe escribir el primer carácter de la cadena. Ejemplo: ! \<espacios)\ Especifica que solamente se deben escribir los X primeros caracteres de la cadena, siendo x la longitud de la plantilla (incluidas las barras inclinadas hacia la izquierda). Ejemplo: \ \ & Especifica que se debe escribir la cadena completa sin modificarla. Ejemplo: & La <plantilla de formato> para cadenas literales no puede contener más de 255 caracteres. Las plantillas de formato, tanto si son numéricas como si son literales, pueden ser representadas por variables literales; por ejemplo: 10 a$="€######,.##" 20 b$="!" 30 PRINT USING a$;12345.6789; 40 PRINT USING b$;"centimos" run Palabras clave asociadas: SPC, TAB, USING, ZONE RAD RAD RAD Orden. Hace que BASIC entienda los argumentos de las funciones trigonométricas en radianes. Esta es la situación implícita que se establece en el momento de encender la máquina, cuando se la reinicializa y cuando se ejecutan las órdenes NEW, CLEAR, LOAD, RUN, etc. Palabras clave asociadas: ATN, COS, DEG, SIN, TAN RANDOMIZE RANDOMIZE [<expresión numérica>] RANDOMIZE 123.456 PRINT RND 0.258852139 Orden. El generador de números aleatorios de BASIC produce una sucesión pseudo-aleatoria en la que cada número depende del anterior. La sucesión es siempre la misma. RANDOMIZE hace que los números aleatorios se tomen de esa sucesión a partir de la posición dada por la (expresión numérica) o, si se omite ésta, por un valor que el usuario debe teclear. RANDOMIZE TIME produce una sucesión que es muy difícil de repetir. Palabras clave asociadas: RND READ READ <lista de:<variable> 10 FOR n=1 TO 8 20 READ a$,c 30 PRINT a$;" ";:SOUND 1,c:NEXT 40 DATA en,478,todas,426,8,379,escalas 50 DATA 358,musicales,319,hay,284,8,253,notas,239 run Orden. Lee datos de las listas precedidas de DATA y los asigna a variables, actualizando automáticamente el ‘puntero’ de forma que éste señale el siguiente dato. Se puede utilizar la orden RESTORE para hacer que el puntero señale el primer dato de una determinada lista DATA. Palabras clave asociadas: DATA, RESTORE RELEASE RELEASE <canales de sonido> 10 SOUND 65,1000,100 20 PRINT"Pulse R para liberar el sonido" 30 IF INKEY(50)=-1 THEN 30 40 RELEASE 1 run Orden. Libera los canales de sonido que han sido retenidos en una orden SOUND. El parámetro <canales de sonido> tiene que dar un valor entero comprendido entre 1 y 7. Su significado es el siguiente: 1 libera el canal A 2 libera el canal B 3 libera los canales A y B 4 libera el canal C 5 libera los canales A y C 6 libera los canales B y C 7 libera los canales A, B y C Palabras clave asociadas: SOUND REM REM <resto de la línea> 10 REM Caza a muerte de los invasores del hiperespacio intergalactico, por AMSOFT 20 REM Copyright AMSOFT Orden. Precede a las observaciones o anotaciones al programa. Hace que BASIC ignore el resto de la línea, en el cual pueden figurar caracteres cualesquiera, incluso el signo de dos puntos (:), que normalmente se utiliza para separar instrucciones. En lugar de :REM se puede poner una comilla sencilla (') en todos los casos salvo en las líneas de DATA, en las que el signo ' se interpreta como integrante de una cadena literal. Palabras clave asociadas: ninguna. REMAIN REMAIN (<numero de temporizador>) 10 AFTER 500,1 GOSUB 40 20 AFTER 100,2 GOSUB 50 30 PRINT"Programa funcionando":GOTO 30 40 REM esta subrutina no sera invocada porque lo impide la linea 80 50 PRINT:PRINT "El temporizador 1 va ser "; 60 PRINT"inhibido por REMAIN." 70 PRINT"Inidades de tiempo que quedaban:"; 80 PRINT REMAIN(1) run Función. Da la cuenta restante en el temporizador especificado (margen de 0 a 3) y lo desactiva. Palabras clave asociadas: AFTER, DI, EI, EVERY RENUM RENUM [<nuevo número de línea>][,[<antiguo número de línea>][,<incremento>]] 10 CLS 20 REM esta linea sera la 123 30 REM esta linea sera la 124 40 REM esta linea sera la 125 RENUM 123,20,1 LIST Orden. Renumera las líneas del programa. El parámetro <antiguo número de línea> especifica el número de línea actual en el cual debe comenzar la renumeracíón. Si se omite ese parámetro, la renumeración se realiza desde el principio del programa. El parámetro <nuevo número de línea> especifica qué número se va a dar a la primera línea renumerada. Si se omite este parámetro, el programa renumerado empieza en la línea 10. El parámetro (incremento) especifica el salto que habrá entre cada dos números de línea sucesivos. Si Se lo omite, el incremento es 10. RENUM modifica correctamente los números de línea citados en las instrucciones GOTO, GOSUB y similares. Sin embargo, no se modifican las referencias a números de línea que estén contenidas en expresiones literales, tales como las que intervienen en las órdenes KEY, ni tampoco las contenidas en líneas REM, ni las <expresiones de número de línea> incluidas en CHAIN y CHAIN MERGE. Los números de línea válidos son los comprendidos entre 1 y 65535. Palabras clave asociadas: DELETE, LIST RESTORE RESTORE [<número de línea>] 10 READ a$:PRINT a$;" "; 20 RESTORE 50 30 FOR t=1 TO 500:NEXT:GOTO 10 40 DATA restore los datos para leerlos una vez 50 DATA y otra run Orden. Hace que el ‘puntero’ de datos ‘apunte’ hacia el principio de la línea de DATA especificada por el parámetro opcional <número de línea>. Si se omite el parámetro, el puntero señala la primera línea de DATA del programa. Palabras clave asociadas: DATA, READ RESUME RESUME [<número de línea>] 10 ON ERROR GOTO 60 20 FOR x=10 TO 0 STEP-1:PRINT 1/x:NEXT 30 END 40 PRINT"llegamos hasta aqui despues del error" 50 END 60 PRINT"error numero";ERR;"en la linea";ERL 70 RESUME 40 run Orden. Reanuda la ejecución normal del programa una vez detectado un error y procesado por una orden ON ERROR GOTO, Si se omite el (número de línea), el programa continúa en la misma línea en la que se produjo el error. Supríma el <número de línea> en el ejemplo anterior y ejecute nuevamente el programa: 70 RESUME run Palabras clave asociadas: DERL, ERL, ERR, ERROR, ON ERROR GOTO, RESUME NEXT RESUME NEXT RESUME NEXT 10 ON ERROR GOTO 90 20 PRINT"Pulse siempre [RETURN]" 30 INPUT "1";a 40 INPUT "2";a 50 inpot "3";a:REM error de sintaxis 60 INPUT "4";a 70 INPUT "5";a 80 END 90 PRINT"error numero";ERR;"en la linea";ERL 100 RESUME NEXT run Orden. Reanuda la ejecución normal del programa una vez detectado un error y procesado por una orden ON ERROR GOTO. RESUME NEXT reanuda la ejecución en la línea siguiente a aquélla en la que se detectó el error. Palabras clave asociadas: DERR, ERR, ERROR, ON ERROR GOTO, RESUME RETURN RETURN 10 GOSUB 50:PRINT "despues del GOSUB":END 50 FOR n=1 TO 20 60 PRINT"subrutina" 70 NEXT:PRINT 80 RETURN run Orden. Señala el final de una subrutina. BASIC retorna de la subrutina a la instrucción inmediatamente posterior a aquélla que invocó la subrutina. Palabras clave asociadas: GOSUB RIGHT$ RIGHT$ (<expresion literal>,<longitud deseada>) 10 MODE 1:a$="Ordenador CPC6128" 20 FOR n=1 TO 17:LOCATE 21-n,n 30 PRINT RIGHT$(a$,n) 40 NEXT run Función. Produce una cadena que consta del número de caracteres dado por <longitud deseada> (margen de 0 a 255) tomados de la derecha de la <expresión literal>. Si la longitud de la <expresión literal> es menor que la <longitud deseada>, la cadena producida es la <expresión literal> completa. ` Palabras clave asociadas: LEFT$, MID$ RND RND [ (<expresión numérica>)] 10 RANDOMIZE 20 FOR x=1 TO -1 STEP-1 30 PRINT"parametro de RND=";x 40 FOR n=1 TO 6 50 PRINT RND(x) 60 NEXT n,x run Función. Da el siguiente número aleatorio de la sucesión en el caso de que la <expresión numérica> tenga valor positivo o no haya sido especificada. Si la <expresión numérica> toma valor cero, RND vuelve a dar el anterior número aleatorio generado. Si la <expresión numérica> toma un valor negativo, se inicia una nueva sucesión aleatoria y RND da su primer número. Palabras clave asociadas: RANDOMIZE ROUND ROUND (<expresión numérica>[,<decimales>]) 10 FOR n=4 TO -4 STEP -1 20 PRINT ROUND(1234.5678,n), 30 PRINT "con <decimales> =";n 40 NEXT run Función. Redondea la <expresión numérica> a un número de decimales o potencia de diez especificada por <decimales>. Si <decimales> es menor que cero, se redondea la <expresión numérica> para dar un número entero seguido de tantos ceros antes del punto decimal como indique el parámetro <decimales>. Palabras clave asociadas: ABS, CINT, FIX, INT RUN RUN <expresión literal> RUN "disc" Orden. Carga un programa de BASIC o un programa binario que esté grabado en disco en e inicia su ejecución. Borra el programa anteriormente residente en la memoria. Los programas de BASIC protegidos pueden ser ejecutados por este procedimiento. Palabras clave asociadas: LOAD RUN RUN [ <número de línea>] RUN 200 Orden. Inicia la ejecución del programa de BASIC actual a partir de la línea especificada por <número de línea>, o a partir de la primera línea del programa si se omite el parámetro. Los programas protegidos no pueden ser ejecutados por este procedimiento. Palabras clave asociadas: CONT, END, STOP SAVE SAVE <nombre de fichero>[,<tipo de fichero>][,<parametros binarios>] SAVE "fichero.xyz" graba el fichero en modo de BASIC no protegido normal. SAVE "fichero.xyz",P graba el fichero en modo de BASIC protegido. SAVE "fichero.xyz",A graba el fichero en modo ASCII. SAVE "fichero.xyz",B,8000,3000,8001 graba el fichero en modo binario. En este ejemplo, graba la zona de memoria del ordenador que empieza en la dirección 8000 y tiene una extensión de 3000 bytes; el punto de entrada opcional es 8001. Orden. Graba en disco el programa actualmente residente en la memoria. Un fichero binario consiste en una zona de memoria copiada en el disco. Los parámetros son en este caso: <direccion inicial> , <longitud del lichero> [ , <punto de entrada>] La memoria dedicada a la pantalla se puede grabar en forma de fichero binario. Es lo que se denomina ‘volcado de la pantalla’; la orden necesaria es: SAVE "pantalla",B,&CØØØ,&4ØØØ El fichero se puede volver a cargar con la orden: LOAD "pantalla" Palabras clave asociadas: CHAIN, CHAIN MERGE, LOAD, MERGE, RUN SGN SGN(<expresión numérica>) 10 FOR n=200 TO -200 STEP -20 20 PRINT" SGN da"; 30 PRINT SGN(n);"cuando el numero es";n 40 NEXT run Función. Determina el signo de la <expresión numérica>. Da el valor -l si la <expresión numérica> es menor que cero; el valor 0 si es igual a 0; y el valor l si es mayor que cero. Palabras clave asociadas: ABS SIN SIN(<expresión numérica>) 10 CLS:DEG:ORIGIN 0,200 20 FOR n=0 TO 720 30 y=SIN(n) 40 PLOT n*640/720,198*y:NEXT 50 GOTO 50 run Función. Calcula el seno de la <expresión numérica>. Obsérvese que se puede utilizar DEG y RAD para hacer que el ordenador entienda los y arcos como dados en grados o en radianes, respectivamente. Palabras clave asociadas: ATN, COS, DEG, RAD, TAN SOUND SOUND <situación de canales>,<periodo de tono>[,<duratión>[,<volumen>[,<envolvente de volumen>,[<envolvente de tono>[,<ruido>]]]]] 10 FOR z=0 TO 4095 20 SOUND 1,z,1,12 30 NEXT run Orden. Programa la generación de un sonido. Los parámetros son los siguientes: Parámetro 1: (situación de canales) El parámetro <situación de canales> debe tener un valor comprendido entre 1 y 255. El significado de cada uno de los bits es como sigue: Bit 0 (decimal 1) enviar sonido al canal A (bit menos significativo) Bit 1 (decimal 2) enviar sonido al canal B Bit 2 (decimal 4) enviar sonido al canal C Bit 3 (decimal 8) sincronización con el canal A Bit 4 (decimal 16 sincronización con el canal B Bit 5 (decimal 32) sincronización con el canal C Bit 6 (decimal 64) retención del canal de sonido . Bit 7 (decimal 128) borrado del canal de sonido (bit más significativo) Por ejemplo, el valor 68 del parámetro (situación de canales) especifica: Enviar el sonido al canal C (4) y retenerlo (64). Parámetro 2: <periodo de tono> Este parámetro define el tono del sonido; es decir, identifica la nota (C, C#, D, D#, etc.). Cada nota tiene un número de identificación, que es el <periodo de tono>. Parámetro 3: <duratión> Este parámetro especifica la duración del sonido. Las unidades son de centésimas de segundo (0.01 s). Si no se especifica duración, el ordenador toma el valor implícito para este parámetro, que es 20 (un quinto de segundo). Si el valor de <duración> es cero, el sonido dura hasta el final de la envolvente de volumen especificada. Si el valor de <duración> es negativo, la envolvente de volumen especificada se repite ABS(<duración>) veces. Parámetro 4: <volumen> Este parámetro especifica el volumen inicial de la nota. El margen de valores va de 0 a l5. El <volumen> 0 es el mínimo; e1 l5 es el máximo. Si no se especifica <volumen>, el ordenador toma el implícito, que es 12. Parámetro 5: <envolvente de volumen> Se puede hacer que el volumen de la nota no sea constante, sino que varíe con el tiempo mientras la nota está sonando. Para especificar la forma de variación del volumen con el tiempo se utiliza la orden ENV. De hecho, se pueden crear hasta 15 envolventes de volumen diferentes, con números de referencia del l al 15. El parámetro <envolvente de volumen> invoca una envolvente de volumen para su utilización por SOUND. Véase la descripción de la orden ENV. Parámetro 6: <envolvente de tono> Se puede hacer que el tono de una nota no sea constante, sino que varíe con el tiempo mientras la nota está sonando. Para especificar la forma de variación del tono con el tiempo se utiliza la orden ENT. De hecho, se pueden crear hasta 15 envolventes de tono diferente, con números de referencia del 1 al 15. El parámetro <envolvente de tono> invoca una envolvente de tono para su utilización por SOUND. Si en la definición de ENT se ha puesto un número negativo como número de envolvente, en la instrucción SOUND se debe poner el valor absoluto de ese número como <envolvente de tono>. Véase la descripción de la orden ENT. Parámetro 7: <ruido> Se puede añadir ruido al sonido: la intensidad del ruido se controla con el parámetro <ruido>. El margen de valores va de 0 (ruido apagado) hasta 31. Palabras clave asociadas: ENT, ENV,ON SQ GOSUB, RELEASE, SQ SPACE$ SPACE$ (<expresión entera>) 10 MODE 1 20 PRINT"Pongamos 5 espacios entre uno"; 30 PRINT SPACE$(5); 40 PRINT"y otro" run Función. Crea una cadena literal consistente en el número de espacios especificado por <expresión entera> (margen de 0 a 255). Palabras clave asociadas: SPC, STRING$, TAB SPC Véase PRINT SPC) SPEED INK SPEED INK <periodo 1>,<periodo 2> 10 BORDER 7,18 20 FOR i=30 TO 1 STEP -1 30 SPEED INK i,i 40 FOR t=1 TO 700:NEXT t,i run Orden. Establece la velocidad de alternancia entre los dos colores de tinta especificados mediante INK o BORDER. El primer parámetro, <periodo 1>, especifica el tiempo para el primer color, en unidades de 0.02s (cincuentavos de segundo); <periodo 2> especifica el tiempo para el segundo color. Téngase cuidado al elegir colores y velocidades para evitar efectos mesméricos (‘hipnotizantes’). Palabras clave asociadas: BORDER, INK SPEED KEY SPEED KEY <demora de arranque>,<periodo de repeticion> 10 CLS:FOR K=7 TO 1 STEP -2 20 PRINT"Escriba su nombre y pulse [RETURN]" 30 SPEED KEY k,k 40 LINE INPUT a$:NEXT 50 PRINT"Es un nombre muy interesante" run Orden. Establece las características de repetición de las teclas. El parámetro <demora de arranque> especifica el tiempo, en unidades e 0.02 s (cincuentavos de segundo) que ha de estar pulsada la tecla antes de que empiece a repetirse su acción. El parámetro <periodo de repetición> especifica el tiempo que debe transcurrir entre cada dos repeticiones sucesivas. SPEED KEY solamente actúa sobre las teclas que son de repetición implícitamente o que han sido definidas como tales mediante KEY DEF. Cuando se vaya a utilizar valores muy bajos del parámetro (demora de arranque), es aconsejable definir previamente una de las teclas numéricas para que devuelva el teclado a la situación implícita, SPEED KEY 30,2. La orden KEY 0,"SPEED KEY 30,2"+CHR$(13) restablece los valores implícitos de los parámetros de SPEED KEY en cuanto se pulsa la tecla del 0 del teclado numérico. Palabras clave asociadas: KEY DEF SPEED WRITE SPEED WRITE <expresión entera> SPEED WRITE 1 Orden. Establece la velocidad de transferencia de datos al magnetófono (si está conectado). Las velocidades son: 2000 bits por segundo, si <expresión entera> vale 1, y 1000 bits por segundo si (expresión entera) vale 0. Esta última es la velocidad implícita. Para leer una cinta no es necesario saber a qué velocidad ha sido grabada, pues el ordendor selecciona automáticamente la velocidad correcta de lectura. La máxima fiabilidad en la transferencia de datos se obtiene con la velocidad mínima, que además es la implícita: SPEED WRITE 0. Esta orden no ejerce ningún efecto sobre el sistema de grabación en disco. Palabras clave asociadas: OPENOUT, SAVE SQ SQ (<canal>) 10 SOUND 65,100,100 20 PRINT SQ(1) run 67 Función. Genera un número que informa del estado de la cola de sonido del <canal> especificado. El parámetro puede tener uno de los siguientes valores: 1 para el canal A 2 para el canal B 4 para el canal C La función SQ produce un número que se interpreta, según sea el valor de sus bits, de la forma siguiente: Bits 0, 1 y 2 : número de huecos libres en la cola Bits 3, 4 y 5 : estado de sincronización de la primera nota de la cola Bit 6 : la primera nota está retenida Bit 7 : el canal está activo en la actualidad donde el bit 0 es el menos significativo y el bit 7 el más significativo. Como se puede apreciar, si el bit 6 está a 1, el bit 7 tiene que estar a cero, y viceversa. Análogamente, si alguno de los bits 3, 4 y 5 está a 1, los bits 6 y 7 tienen que estar a cero. Palabras clave asociadas: ON SQ GOSUB, SOUND SQR SQR (<expresión numérica>) PRINT SQR(9) 3 Functión. Da el valor de la raiz cuadrada de la <expresión numérica>. Palabras clave asociadas: ninguna. STEP Véase FOR) STOP STOP 10 FOR n=1 TO 30:PRINT n:NEXT 20 STOP 30 FOR n=31 TO 60:PRINT n:NEXT run cont Orden. Detiene la ejecución del programa, pero deja BASIC en un estado tal, que el programa puede ser reanudado mediante CONT. STOP se utiliza para establecer puntos de parada en la depuración de programas. Palabras clave asociadas: CONT, END STR$ STR$ (<expresión numérica>) 10 a=&FF:REM 255 hexadecimal 20 b=&X1111:REM 15 binario 30 c$="$$$" 40 PRINT c$+STR$(a+b)+c$ run $$$ 270$$$ Functión. Convierte la <expresión numérica> en una cadena literal formada por los mismos dígitos decimales. Palabras clave asociadas: BIN$, DEC$, HEX$, VAL STRING$ STRING$ (<longitud>,<especificador del caracter>) PRINT STRING$(40,"*") **************************************** Functión. Da una cadena literal que consiste en el carácter especificado repetido tantas veces como indique <longitud> (margen de 0 a 255). Nótese que en el ejemplo anterior se podría haber puesto también: PRINT STRING$(40,42) **************************************** donde el (especificador del carácter), el número 42, es el código ASCII del asterisco. Palabras clave asociadas: SPACE$ SWAP Véase WINDOW SWAP) SYMBOL SYMBOL <nùmero del caracter>,<lista de:<fila> 10 MODE 1:SYMBOL AFTER 105 20 fila1=255:REM 11111111 en binario 30 fila2=129:REM 10000001 en binario 40 fila3=189:REM 10111101 en binario 50 fila4=153:REM 10011001 en binario 60 fila5=153:REM 10011001 en binario 70 fila6=189:REM 10111101 en binario 80 fila7=129:REM 10000001 en binario 90 fila8=255:REM 11111111 en binario 100 PRINT"La linea 110 redefinie la letra i (105)" 105 PRINT"Teclee varias veces esa letra y luego liste el programa." 110 SYMBOL 105,fila1,fila2,fila3,fila4,fila5,fila6,fila7,fila8 run Orden. Redefine la forma de un carácter. El margen para todos los parámetros es de 0 a 255. Con objeto de reservar espacio en la memoria del ordenador para la descripción del carácter, es necesario ejecutar previamente la orden: SYMBOL AFTER x donde X debe ser igual O menor que el número del carácter que se va a definir. A continuación se emite la orden SYM BOL seguida, en primer lugar, por el número del carácter. El carácter puede ser directamente accesible por el teclado; en cualquier caso se lo puede escribir mediante la orden PRINT CHR$(x) Después de SYMBOL x viene una sucesión de hasta 8 parámetros, cada uno de los cuales describe una fila de la matriz del carácter. El margen de estos parámetros es de 0 a 255. La representación binaria de cada parámetro indica la situación de ‘encendido’ o ‘apagado’ de cada uno de los puntos de la fila correspondiente. Por ejemplo, si el primero de los ochos parámetros vale 1, la fila superior del carácter tiene la representación binaria 00000001. Cada 1 indica que el correspondiente punto del carácter se ilumina con el color de PEN; cada 0 indica que el correspondiente punto no será visible, pues se lo escribe con el color de PAPER. Así pues, la primera fila de este carácter consiste en un punto en el extremo superior derecho. Los siguientes parámetros son 3,7,15,31.63,0,0. La representación binaria de los ocho parámetros es como sigue: parámetro (fila) 1: 00000001 en binario (1 en decimal) parámetro (fila) 2: 00000011 en binario (3 en decimal) parámetro (fila) 3: 00000111 en binario (7 en decimal) parámetro (fila) 4: 00001111 en binario (15 en decimal) parámetro (fila) 5: 00011111 en binario (31 en decimal) parámetro (fila) 6: 00111111 en binario (63 en decimal) parámetro (fila) 7: 00000000 en binario (0 en decimal) parámetro (fila) 8: 00000000 en binario (0 en decimal) Observando el conjunto de las representaciones binarías podemos hacernos una idea del aspecto que tendrá el carácter. Asígnemos estos parámetros al carácter número 255 mediante la orden: SYMBOL 255,1,3,7,15,63,0,0 Al ser 0 los dos últimos, podemos omitírlos: SYMBOL 255,1,3,7,15,63 Los parámetros se pueden introducir en forma binaria, con lo que se ahorra el trabajo de convertirlos previamente a la forma decimal. (Recuérdese que el preñjo para números binarios es &X.) Por ejemplo: SYMBOL 255,&X00000001,&X00000011,&X00000111,&X00001111 &X00011111,&X00111111 Finalmente, para ver el resultado de la definición, ejecute la orden PRINT CHR$(255) Si se redeñne uno de los caracteres accesibles por el teclado, el nuevo carácter aparecerá en la pantallacada vez que se pulse la tecla correspondiente o se lo escriba con PRINT CHR$( ). Por otra parte, BASIC reconoce la forma del nuevo carácter cuando trata de leerlo en la pantalla, y no lo rechaza por incomprensible. Palabras clave asociadas: HIMEM, MEMORY, SYMBOL AFTER SYMBOL AFTER SYMBOL AFTER <expresión entera> 10 CLS 20 SYMBOL AFTER 115 30 PRINT"La linea 40 redefine la letra s "; 40 SYMBOL 115,0,56,64,64,48,8,8,112 50 PRINT"a s" 60 PRINT"Cancele esta definicion de s" 70 PRINT"tecleando SYMBOL AFTER 240" run Orden. Establece el número de caracteres redefinibles por el usuario (en el margen de 0 a 256). El número implícito es 240, lo que deja 16 caracteres (del 240 al 255) definibles por el usuario. Si <expresión entera> es 32, todos los caracteres, del 32 al 255, son definibles. SYMBOL AFI'ER 256 impide la redefinición de caracteres. Cada vez que se ejecuta una orden SYM BOL AFI'ER, quedan anuladas todas las redefiniciones y la forma de todos los caracteres vuelve a ser la implícita. La Orden SYMBOL AF|'ER no se puede ejecutar después de modificar el valor de HIMEM, lo cual puede ocurrir como resultado de una orden MEMORY, o bien al abrir un tampón para la grabación o lectura de un fichero con OPENOUT u OPENIN. En tales circunstancias se provoca el mensaje ‘lmproper argument' (‘argumento inadecuado’, error número 5), a menos que la situación anterior fuera SYMBOL AFI'ER 256. Palabras clave asociadas: HIMEM, MEMORY, SYMBOL TAB Véase PRINT TAB) TAG TAG [#(<expresion de nùmero de canal>)] 10 INPUT "Escriba su nombre: ";a$:CLS 20 PRINT"Se mueve usted mucho, ";a$;" !!" 30 TAG 40 x=LEN(a$)*17:y=50+RND*300:MOVE -x,y 50 FOR f=-x TO 640 STEP RND*7+3 60 MOVE f,y:PRINT" ";a$;:FRAME:NEXT 70 FOR b=640 TO -x STEP -RND*7+3 80 MOVE b,y:PRINT a$;" ";:FRAME:NEXT 90 GOTO 40 run Orden. Hace que el texto enviado al canal especificado sea escrito en la pantalla gráfica, en la posición actual del cursor. De esta forma se puede mezclar texto con gráficos, o mover los caracteres píxel a pixel. Si se omite la <expresión de número de canal>, se supone el #0. El punto superior izquierdo del carácter se conecta al cursor gráfico. Si se omite el signo de punto y coma al final de la instrucción PRINT, los códigos de retorno del carro y de avance de línea se visualizan como caracteres gráficos. Si se ha aplicado TAG al canal #0, BASIC desactiva TAG al volver a modo directo. Palabras clave asociadas: TAGOFF TAGOFF TAGOFF [#(<expresion nùmero de canal>)] 10 MODE 2:TAG:REM texto ligado al cursor grafico 20 periodo=1984:FOR x=1 TO 640 STEP 60 30 MOVE x,400:DRAWR 0,-350 40 periodo=periodo+1:PRINT periodo;:NEXT 50 TAGOFF:REM texto desconectado de cursor grafico 60 LOCATE 34,25:PRINT"Datos anuales" 70 GOTO 70 run Orden. Cancela la orden TAG para el canal especificado (o para el #0, si no se especitica otro) y redirige el texto a la posición que ter1ía el cursor de texto antes de ejecutarse TAG. Palabras clave asociadas: TAG TAN TAN (<expresión numérica>) PRINT TAN(45) 1.61977519 Función. Calcula la tangente de la <expresión numérica>, que debe tener un valor comprendido entre -20000 y +20000. Obsérvese que se puede utilizar DEG y RAD para hacer que el ordenador entienda los arcos como dados en grados o en radianes, respectivamente. Palabras clave asociadas: ATN, COS, DEG, RAD, SIN TEST TEST (<coordenada x>,<coordenada y>) 10 CLS 20 PRINT"Estamos utilizando la pluma numero"; 30 PRINT TEST(10,386) 40 PRINT"Cambie la pluma y el modo "; 50 PRINT"... y ejecute otra vez el programa." run Función. Traslada el cursor gráfico al punto de coordenadas absolutas especificadas e informa del valor de la tinta presente en esa posición. Palabras clave asociadas: MOVE, MOVER, TESTR, XPOS, YPOS TESTR TESTR (<incremento x>,<incremento y>) 10 MODE 0:FOR x=1 TO 15:LOCATE 1,x 20 PEN x:PRINT STRING$(10,143);:NEXT 30 MOVE 200,400:PEN 1 40 FOR n=1 TO 23:LOCATE 12,n 50 PRINT"pen";TESTR(0,-16):NEXT run Función. Lleva el cursor gráfico a un punto cuya posición, referida a la posición actual, viene dada por los parámetros <incremento de x> e <incremento de y>, e informa del valor de la tinta presente en ese punto. Palabras clave asociadas: MOVE, MOVER, TEST, XPOS, YPOS THEN Véase IF) TIME TIME 10 CLS:REM reloj 20 INPUT "Hora";hora 30 INPUT "Minuto";minuto 40 INPUT "Segundo";segundo 50 CLS:referencia=INT(TIME/300) 60 WHILE hora<13 70 WHILE minuto<60 80 WHILE tiempo<60 90 tiempo=(INT(TIME/300)-referencia)+segundo 100 LOCATE 1,1 110 PRINT USING "## ";hora;minuto;tiempo 120 WEND 130 tiempo=0:segundo=0:minuto=minuto+1 140 GOTO 50 150 WEND 160 minuto=0:hora=hora+1 170 WEND 180 hora=1 190 GOTO 60 run Función. Da el tiempo transcurrido desde el momento en que se encendíó o reinicializó la máquina por última vez (excluyendo el dedicado a escribir o leer en el disco), en unidades de 1/300 s. Expresado en segundos, el tiempo es, pues, TIME/300. Palabras clave asociadas: AFTER, EVERY, WEND, WHILE TO Véase FOR) TROFF TRON TROFF TRON 10 TROFF:PRINT:PRINT"TROFF" 20 FOR n=1 TO 8 30 PRINT"Programa funcionando":NEXT 40 IF f=1 THEN END 50 TRON:PRINT:PRINT"TRON" 60 f=1:GOTO 20 run Orden. Sigue la ‘traza’ del programa escribiendo los números de cada línea antes de ejecutarla. Los números de línea aparecen entre corchetes [ ]. TRON activa este modo; TROFF lo desactiva. TRON es particularmente útil para estudiar la secuencia de números de línea anterior al momento en que se produce un error. Palabras clave asociadas: ninguna. UNT UNT (<expresión de dirección de memoria>) PRINT UNT(&FF66) -154 Orden. Da un entero, comprendido entre -32768 y +32767, que es el equivalente en 'complemento a dos’ al valor de <expresión de dirección de memoria>. Palabras clave asociadas: CINT, FIX, INT, ROUND UPPER$ UPPER$ (<expresión literal>) 10 CLS:a$="mire como crecen !" 20 PRINT UPPER$(a$) run Función. Da una cadena literal que es copia de la <expresión literal> especificada, pero convirtiendo las letras minúsculas en mayúsculas y dejando inalterados los restantes caracteres. Esta función es útil en el proceso de datos que puedan contener minúsculas mezcladas con mayúsculas. Palabras clave asociadas: LOWER$ USING Véase PRINT USING) VAL VAL (<expresion literal>) 10 CLS:PRINT "Ya he aprendido la tabla de multiplicar" 20 PRINT:PRINT"Pulse una tecla del 1 al 9: " 30 a$=INKEY$:IF a$="" THEN 30 40 n=VAL(a$):IF n<1 OR n>9 THEN 30 50 FOR x=1 TO 12 60 PRINT n;"X";x;"=";n*x 70 NEXT:GOTO 20 run Función. Da el valor numérico (incluyendo el signo y el punto decimal) de los primeros caracteres de la <expresión literal> que sean dígitos. Si el primer carácter no es un dígito, el valor generado es 0. Si el primer carácter es el signo menos o el punto decimal y va seguido de caracteres no numéricos, se provoca el mensaje ‘Type mismatch’ (‘incongruencia de típos’, error número 13). Palabras clave asociadas: STR$ VPOS VPOS ( # <expresion de nùmero de canal>) 10 MODE 1:BORDER 0:LOCATE 8,2 20 PRINT"Utilice las teclas subir/bajar cursor" 30 WINDOW 39,39,1,25:CURSOR 1,1 40 LOCATE 1,13 50 IF INKEY(0)<>-1 THEN PRINT CHR$(11); 60 IF INKEY(2)<>-1 THEN PRINT CHR$(10); 70 LOCATE #1,3,23 80 PRINT#1,"Posicion vertical del "; 90 PRINT#1,"cursor texto ="; 100 PRINT#1,VPOS(#0):GOTO 50 run Función. Da la posición vertical del cursor de texto, referida al extremo superior de la ventana. Es necesario especificar la <expresión de número de canal>, Pues el ordenador no da por supuesto el #0. Palabras clave asociadas: POS, WINDOW WAIT WAIT <nùmero de puerta>,<mascara>[,<inversion>] WAIT &FF34,20,25 Orden. Espera hasta que por la puerta de entrada/salida especificada por <número de puerta> se reciba un determinado valor. BASIC lee incesantemente la puerta. Con el valor recibido y el parámetro <inversión> se realiza la operación lógica XOR; con este resultado y el parámetro <máscara> se realiza la operación lógica AND; el proceso se repite hasta que el resultado final sea distinto de cero. BASIC espera indefinidamente hasta que se cumple la condición requerida. Esta orden no debe ser utilizada por quien no sepa cuáles son sus efectos. Palabras clave asociadas: INP, OUT WEND WEND WEND Orden. Señala el final del grupo de instrucciones cuya ejecución Se repite en un bucle del tipo WHILE. BASIC determina automáticamente a qué WHILE corresponde cada WEND. Palabras clave asociadas: TIME, WHILE WHILE WHILE <expresión lógica> 10 CLS:PRINT "Temporizador de 10 segundos":t=TIME 20 WHILE TIME<t*3000 30 SOUND 1,0,100,15 40 WEND:SOUND 129,40,30,15 Orden. Repite la ejecución de un grupo de instrucciones mientras se cumpla cierta condición. La orden WHILE señala el principio del bucle y especifica la condición lógica mediante la <expresión lógica>. Palabras clave asociadas: TIME, WEND WIDTH WIDTH <expresion entera> WIDTH 40 Orden. Informa a BASIC de cuántos caractes por línea se deben enviar a la impresora. BASIC envía a la impresora los códigos de retorno del carro y avance de línea en el momento adecuado. El valor implícito es 132. La orden WIDTH 255 suprime los códigos de retorno del carro y avance de línea, dejando que el número de caracteres por línea sea totalmente controlado por la impresora. En todo caso, la orden PRINT envía a la impresora esos dos códigos siempre que no se incluya el signo de punto y coma al final. Palabras clave asociadas: POS WINDOW WINDOW [ # <expresion de nùmero de canal>,]<izquierda>,<derecha>,<arriba>,<abajo> 10 MODE 0:BORDER 0:REM carta de ajuste 20 INK 0,0:INK 1,25:INK 2,23:INK 3,21 30 INK 4,17:INK 5,6:INK 6,2:INK 7,26 40 PAPER 0:CLS 50 PAPER 1:WINDOW 2,4,1,18:CLS 60 PAPER 2:WINDOW 5,7,1,18:CLS 70 PAPER 3:WINDOW 8,10,1,18:CLS 80 PAPER 4:WINDOW 11,13,1,18:CLS 90 PAPER 5:WINDOW 14,16,1,18:CLS 100 PAPER 6:WINDOW 17,19,1,18:CLS 110 PAPER 7:WINDOW 2,19,19,25:CLS 120 GOTO 120 run Orden. Especifica las dimensiones y situación de una ventana de texto. Los valores de los parámetros <izquierda>, <derecha>, <arriba> y <abajo> indican los números extremos de columna y de fila, y deben ser consistentes con el modo de pantalla actual. Si no se especifica la <expresión de número de canal>, BASIC supone el #0. Palabras clave asociadas: WINDOW SWAP WINDOW SWAP WINDOW SWAP <expresion de nùmero de canal>,<expresion de nùmero de canal> 10 MODE 1:INK 1,24:INK 2,9:INK 3,6 20 WINDOW 21,40,13,25:PAPER 3 30 WINDOW #1,1,20,1,12:PAPER #1,2 40 CLS:PRINT" Ventana numero 0" 50 CLS #1:PRINT #1," Ventana numero 1" 60 LOCATE 1,6 70 PRINT" Ventana roja (0)";SPC(2) 80 LOCATE #1,1,6 90 PRINT #1," Ventana verde (1)" 100 FOR t=1 TO 1000:NEXT 110 WINDOW SWAP 0,1:GOTO 60 run Orden. Intercambia las características de las dos ventanas de texto especificadas por las <expresiones de número de canal>. Se deben especificar los dos números de canal, pero en este caso no deben ir precedidos del signo #. Palabras clave asociadas: WINDOW WRITE WRITE [ # <expresion de nùmero de canal>,][<lista de datos>] 10 REM escribir variables en disco 20 INPUT "Escriba un numero: ";a 30 INPUT "Escriba una palabra: ";a$ 40 OPENOUT "datos" 50 WRITE #9,a,a$ 60 CLOSEOUT:PRINT "Datos grabados en disco" run Orden. Envía los valores de los elementos de la (lista de datos) al canal especificado por la <expresión de número de canal>. Los elementos irán separados por comas; las cadenas literales irán entre comillas. En el ejemplo anterior, los valores captados por el teclado son enviados al canal #9 (disco). Para leer esos valores después de grabarlos en disco, se necesita un programa tal como el siguiente: ; 10 REM leer variables del disco 20 OPENIN "datos":INPUT #9,a,a$ 30 CLOSEIN:PRINT"Los dos valores son:" 40 PRINT:PRINT a,a$ run Palabras clave asociadas: INPUT, LINE INPUT XOR <argumento> XOR <argumento> IF "juan" < "pepe" XOR "perro" > "gato" THEN PRINT "verdadero" ELSE PRINT "falso" falso IF "pepe" < "juan" XOR "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" falso IF "juan" < "pepe" XOR "gato" > "perro" THEN PRINT "verdadero" ELSE PRINT "falso" verdadero .... PRINT 1 XOR 1 0 PRINT 0 XOR 0 0 PRINT 1 XOR 0 1 Operador. Realiza la operación lógica ‘o exclusivo’ bit a bit entre enteros. El resultado es 1 a menos que ambos bits tengan el mismo valor. Palabras clave asociadas: AND, OR, NOT XPOS XPOS 10 MODE 1:DRAW 320,200 20 PRINT"POSicion horizontal del cursor grafico ="; 30 PRINT XPOS run Función. Da el valor de la posición horizontal (coordenada x) del cursor gráfico. Palabras clave asociadas: MOVE, MOVER, ORIGIN, YPOS YPOS YPOS 10 MODE 1:DRAW 320,200 20 PRINT"POSition vertical del cursor grafico ="; 30 PRINT YPOS run Función. Da el valor de la posición vertical (coordenada y) del cursor gráfico. Palabras clave asociadas: MOVE, MOVER, ORIGIN, XPOS ZONE ZONE <expresion entera> 10 CLS:FOR z=2 TO 20 20 ZONE z 30 PRINT "X","X ZONE ";z:NEXT run Orden. Cambia la anchura de la zona de escritura (especificada en las instrucciones PRINT cuando se utiliza una coma para separar elementos). La achura implícita es 13 columnas, pero se la puede cambiar al valor dado por la (expresión entera), cuyo margen es de 1 a 255. Palabras clave asociadas: PRINT |