___________________________________________________________ | | E X - B A S I C por C O M P A N I O N | | - E L S Y S T E M A B A S I C E X T E N D I D O - |___________________________________________________________| EX-BASIC es un programa de BASIC extendido escrito para cualquier Spectrum. Si ya estas familiarizado con extenciones al Basic entonces comprenderas que los comandos extras son tipeados letra a letra, normalmente poniendo un "*" delante de cada nuevo comando. ________________________________________________________________ EX BASIC es el hermano mayor de Imbos... pero, no todos los usuarios de ZX Spectrum tienen una copia de esta ultima, ya que necesita del Interfaz 1 para que opere correctamente! EX-BASIC no requiere del Interfaz 1 por lo que la puedes usar con CUALQUIER Spectrum SIN Interfaz 1!! EX-BASIC posee todos los comandos de IMBOS (excepto los de microdrives) y ADEMAS incluye: - software SLOMO incorporado, - Reloj de tiempo real, - 100 teclas definibles de funcion, - facilidad de rastreo (Trace), - interrupciones seleccionables por el Usuario, - un infinito rango de FX de sonidos y musica REAL!, - comandos de Atributos y pantalla, - proteccionde archivos, - Creacion de cargadores tipo ALKATRAZ, - Conversiones - HEX-DEC-BIN etc, - fonts definibles por el User desde BASIC (*CHAR/*DATA) - comandos de monitoreo y edicion desde BASIC - Monitor, DOKE etc, - desplazamiento de atributos y pantalla en cualquier direccion, - mensajes desplazados en alta res., texto a doble altura, centrado, etc, - salvar y cargar pantallas en RAM instantaneamente!, - comandos de Programacion- cat, delete, remkill, etc! y eso solo nombrando unos POCOS! EX-BASIC a~ade mas de 65 NUEVOS comandos al BASIC Sinclair, convirtiendo a un buen sistema BASIC en una fantastica version... Tus programas nunca seran los mismos! EX-BASIC viene completo con un PROGRAMA de DEMOSTRACION y un programa MUSIC MELODY el cual te permite crear musica como en muchos de los juegos mas recientes p.ejm. tamborileos y sonidos tipo "whiney"! EX-BASIC, Copyright 1988 EX-BASIC tien varios archivos en el cassette que han sido suplidos dentro del mismo paquete: Side -A- Side -B- NOMBRE TIPO NOMBRE TIPO 1) EX-BASIC Program 1) MELODY Program 2) SCREEN Bytes 2) MELODY SCREEN Bytes 3) EX-M/CODE Bytes 3) PLAYBACK Program 4) FONT1 Bytes 4) ADVERT Program 5) DEMO Program 5) ADVERT SCREEN$ Bytes 6) DEMO SCREEN$ Bytes 6) ZAP EX Bytes Pon el lado -A-, pulsa PLAY en el toca cassette y tipea LOAD "" en modo 48K. En unos minutos una pantalla de carga aparece seguido del sistema operativo del EX-BASIC. No te alarmes cuando oigas un 'beep' seguido! EX-BASIC ha sido cargado ya y eres libre de usar todos los nuevos comandos tras tipear el sigte. comando inicial: RANDOMIZE USR 61434 - si se tipea como comando DIRECTO entonces aparece un mensaje de copyright en la pantalla. Pero si ha sido incluido en un programa entonces NO mostrara nada en pantalla. Notese que este comando DEBE siempre estar presente en la PRIMERA linea de un programa si usas comandos EX-BASIC. Notese tambien que despues de cada CLEAR, el control es devuelto forsozamente al Basic Sinclair por lo que debes tipear otra vez RANDOMIZE USR 61434. En el LADO -B- seguido del programa musical MELODY, hay un programa llamado PLAYBACK el cual sirve para reproducir tu musica, y despues viene ADVERT una peque~a demostracion explicando el "MULTI-ROM" - una expansion de 16K para el Spectrum (NO el +3!). A continuacion explicaremos muy detalladamente los comandos del EX-BASIC con algunos programas ejemplos: Los nuevos comandos del EX-BASIC consisten de un "*" seguido de la palabra clave. Si deseas escribir tus propios programas entonces necesitaras del codigo del EX-BASIC en memoria! Lo puedes salvar a otra cinta de cassette con: SAVE "EX" CODE 54110,11257 - y cargarlo otra vez con: CLEAR 54109:LOAD "EX" CODE 54110: RANDOMIZE USR 61434 Las nuevas instrucciones. - Interrupciones: *CLOCK - activa un reloj constante en la esquina superior derecha de la pant. *TIME x,y,z - fija el reloj, donde: x = la hora, y = minutos, z = segundos *COLOUR x - donde: x = atributo de color. Altera tambien al fondo del reloj. Para tener la tinta y papel correctos, usar: x = papel*8+tinta. *TRON - un comando de depuracion, simplemente reporta en que num. de linea estas cuando un programa BASIC se ejecuta. *SLOMO - activa la ralentizacion de la maquina a la velocidad dada por: *SLOW x - fija la velocidad de SLOMO. Un numero menor (no cero) es rapido, y un num. mayor (5000 p.ejm.) es extremadamente lento. *FUNCTION - activa las 100 teclas de funcions. A modo de demostracion, tras tipear *FUNCTION, pulsa NEW (shift + A) y "STOP" aparecera en cambio! Los comandos asociados para controlar esto son: *DEF x - donde: x = 0 - 99. Elije cual tecla sera definida listada e indexada. La definicion real de las teclas la hace: *KEY x,y - donde: x = tecla en ASCII a cambiar, y = el valor ASCII de la tecla cambiada. Ejemplo. Para cambiar la A mayuscula por STOP: *DEF 0 -- elegimos la tecla cero. *KEY 65,226 -- es mejor usar *KEY CODE "A", CODE " STOP " por claridad. Un punto interesante a saber, es que los caracteres de control tambien pueden ser cambiados. P.ejm. deshabilitemos el "CURSOR arriba", ya que quizas no se necesite en algunos programas. *LFUNCTION - lista todas las teclas de funcion definidas *IM x - donde x= 1: Modo de Interrupcion 1. Desabilita todas las interrupciones y retorna al modo normal = 2: Modo de Interrupcion 2. Retorna al modo usado por EX-BASIC Para poner, por ejemplo, el reloj sin su sonido constante, usamos: *CLOCK: *IM 1 Notese que *CLOCK, *FUNCTION, *SLOMO y *TRACE activan el modo 2 de las interrupciones sin tener que tipear *IM 2. *INT AT x - donde: x = una dir. de memoria. La primera instruccion Z80 debera incluir un FF (byte 255). Si eres programador en C.M. y deseas poner interrupciones en ciertas direcciones, usa el comando INT AT. - Monitoreo: *DEC x$ - donde: x$ = una cadena que debe contener un valor hexadecimal. por ejm. *DEC "abc0". Esta orden muestra el valor en formato decimal seguido de una nueva linea. *DEC x$; - desabilita eso. El uso de ";" va a ser comun en los demas comandos: *HEX x - donde: x = un valor decimal que sera convertido a hexadecimal. Ejemplo: *HEX 65535; *BIN x - donde: x = un valor decimal que sera convertido a binario de 16 bits. *LIST x - donde: x = una dir. de memoria. *LIST lista el contenido de memoria en hexadecimal y ASCII. Para salir basta con pulsar SPACE. *DOKE x,y - donde: x = una dir. de memoria, y = un valor. Doble Poke o POKE de 16 bits - El POKE normal del Spectrum solo te permite POKEar numeros de 8 bitss (max. 255). *DOKE permite POKEar numeros de 16 bits (max. 65535). *WOKE x,x$ - donde: x = una dir. de memoria, x$ = un word (palabra). Se trata de un POKE que permite insertar cadenas de texto en la memoria. NOTA: x$ nunca debe ser una cadena vacia! *MFILL s,t;w - llena la memoria con un byte w, a partir de dir. s con largo t. Ejm.: 10 FOR F=100 TO 0 STEP -1:*MFILL 16384,6912;f:NEXT F *MMOVE s,l TO t - mueve bloques de memoria a partir de dir. s con largo l a t. Ejemplo: 10 LIST: INPUT "PAPER ";x: INPUT "INK";y: LET at=c*8+y 20 POKE 22528,at:*MMOVE 22528,255 to 22529 *RAMTOP - Simplemente muestra en pantalla el valor actual de la ramtop. - edicion desde BASIC *FRE - muestra cuanta memoria libre le queda al micro. Ejemplo: *FRE;:PRINT " bytes free" *VAR - la longitud de todas las variables usadas por el programa. *PROG - el largo de tu programa BASIC. *DELETE x,y - un poderoso sistema de borrado de bloques de lineas que permite una rapida y facil eliminacion de lineas de programa. Donde: x = la linea inicial, y = la linea final del bloque Ejemplo: *DELETE 400,950 - elimina las lineas del 400 a 950 inclusive *RENUMBER x,y - un poderoso sistema de renumeracion donde: x = numero de linea inicial de la renumeracion y = el salto o incremento. *REMKILL - elimina todas las sentencias REM en un programa. A modo de buen ejemplo, hay que ver cuanta memoria se ahorra borrando los REMs: *PROG:*REMKILL:*PROG; *EDIT x - mueve el CURSOR de LINEAS de programas a la linea x. Ejemplo: para editar una linea tipeamos *EDIT x seguido de la tecla EDIT. *GOTO x,y - el GOTO del Spectrum no te perimte saltar a sentencias dentro de un numero de linea. Eso se puede superar tipeando: *GOTO num. de linea, num. de la sentencia. Ejemplo: 10 STOP: PRINT "ST 2": PRINT "ST 3" Ahora tipeamos *GOTO 10,2 y la computadora ignorara la sentencia STOP! - Graficos *DOUB x$ - pone el texto x$ al DOBLE de ALTO en pantalla. Notese que los colores de PAPER e INK, etc. pueden ser fijados de ante mano. Ejemplo: PAPER 1:*DOUB "Test":PAPER 7 *CENTRE x$ - CENTRa un texto en la pantalla. Ejemplo: *CENTRE "Spectrum" - hara que "Spectrum" aparezca en mitad de la pantalla. *TEXT x$,s,k$; - desplaza texto PIXEL a PIXEL en la posicion actual de PRINT AT. donde: x$ = el texto a ser desplazado, s = velocidad: 1 es rapido, 1000 es cercano a lo mejor, k$ = deteccion de tecla - detiene el desplazamiento si se presiona k$. Si el mensaje se va a desplazar sin importar la tecla entonces k$ = "" (cadena vacia). Ejemplo: 10 PRINT AT 15,0;INK 1;" ";INK 2;" "; INK 3;" "; 20 PRINT AT 15,0;:*TEXT "el mensaje se desplaza a la izq. usando atributos de color actuales",5000,""; 30 *TEXT " - Notese el efecto que toma lugar en la linea 30",500,""; El texto es impreso usando una fuente ligeramente mas chica - 42 caracteres para darle a las lineas un aspecto mas profesional. *STRING$ x$,l - muestra el caracter x$ en pantalla un l numero de veces. Ejm.: *STRING$ "*",32; producira una linea de estrellas. *SCREEN p,i - cambia los colores en pantalla sin borrar la imagen mostrada. Donde: p = papel, i = tinta. Ejemplo: 10 LIST 20 FOR F=0 TO 7 30 *SCREEN INT (RND*5),f 40 NEXT F 50 GOTO 20 *WHOLE - hace que la parte baja de la pantalla adquiera el mismo color que la zona superior. Por ejm.: haz BREAK al programa anterior cuando la pantalla este parpadeando y tipea *WHOLE para que veas su efecto! *FLASH x - donde: x = 0 o 1. Actua similar al FLASH del Basic Sinclair, excepto que toma accion instantaneamente. *BRIGHT x - similar al anterior - el brillo toma lugar instantaneamente. *AFIND p,i TO p2,i2 - busca a traves del archivo de ATTRIBUTOS y si encuentra PAPEL p y TINTA i, lo cambiara a PAPEL p2, TINTA i2. Un buen ejemplo es: 10 *MMOVE 0,768 TO 22528 20 FOR F=0 TO 7: FOR P=0 TO 7 30 *AFIND f,p TO 0,0 40 NEXT p: NEXT F Comprenden como los colores de la pantalla se van difuminando? Una simple rutina; un buen efecto. *SFIND x,y - como el anterior, excepto que el Spectrum empezara a buscar a traves del archivo del DISPLAY y si encuentra el BYTE x, lo reemplaza con el byte y. Ejm: 10 *MMOVE 0,6144 TO 16384 20 FOR F=255 TO 0 STEP -1: *SFIND x,0: NEXT F *STORE x - es un comando que salva en la RAM la pantalla usando la pos. de memoria x. Cada imagen es siempre de 6912 bytes y NO debe sobre escribir importantes areas de codigo - por debajo de 54109! *PRINT x - recupera una pantalla almacenada con *STORE. Ejemplo: cuando tu corras el sigte. programa, cargara la pantalla de EX-BASIC: 10 LOAD ""CODE 16384 20 *STORE 40000 30 CLS 40 PRINT "press a key": PAUSE 0 50 *PRINT 40000 60 GOTO 60 *SPRINT x,y - como el anterior, excepto que el computador imprime una pant. guardada en la pos. x PIXEL a PIXEL. Donde y fija la vel. de movim. Cambiemos la linea 50 para que se lea: *SPRINT 40000,2000 - y vean el efecto producido. *VDU x - limpia la pantalla dandole el atributo de color x requerido, el cual puede ser calculado mediante el comando *COLOUR. Ejemplo: *VDU 5 *FADE x,y - un especial FADE OUT CLS el cual borra la pant. por difuminacion a la derecha si x = 1 o a la izquierda si x = 0 a travez de un monto y de pixeles - y solo puede llegar a 8 como maximo. Ejemplo: 10 *MMOVE 0,6144 TO 16384 20 *CLS 0,8 30 PAUSE 0 *INVERT - simplemente invierte toda la pantalla. Por ejemplo, si el color de papel de la pantalla es 4 y el color de tinta es 2, entonces *INVERT cambiara atributos a tinta 4 y papel 2. *BORDER x,y - crea efectos de borde, enviando pulsos de color al borde. Donde: x = el monto de colores, y = su duracion. Ejemplo: *BORDER 5,0 *PLOT x,y - un super PLOT a pantalla completa que permite trazar en la parte baja de la pant. (0,0) - (191,0). - desplazamiento En este campo el comando mas basico es: *SCROLL - genera un desplazamiento al viejo estilo del ZX-81! Desplaza la pant. y los atributos 8 caracteres hacia arriba. Los comandos mas impresionantes para el desplazamiento de pant. son: *SUP x,y / *SDOWN x,y / *SRIGHT x,y / *SLEFT x,y Donde los parametros x e y son tan comunes entre si, que muy bien les puedo explicar todo de una vez! Si x = cero, entonces el archivo de ATRIBUTOS sera desplazado. Pero, si x = 1, entonces el archivo del DISPLAY sera el desplazado. y simplemente le dice al computador cuantas VECES la pant. debe ser desplazada. Ejemplo: 10 *MMOVE 0,6912 TO 16384 15 *CLOCK:*TIME 8,59,7 20 *SRIGHT 0,100 30 *SUP 1,100 40 FOR F=1 TO 1000:*SRIGHT 0,1: NEXT F Han notado el sistema de desplazamiento suave en la linea 40? - Programacion *REPORT x - Donde: x = un codigo de error de 0 a 255. Solamente reporta un error, si x = 255, dara el mensaje de OK. 255 es util para detener un programa sin imprimir el usual 9: STOP. *HALT x - Exactamente como el PAUSE de Sinclair, excepto que pulsar una tecla o interrumpe la pausa. Por eso 5 segs es el maximo de pausa permitido. Para obtener 10 seg. de pausa, por ejemplo, usar *HALT dentro de un bucle FOR/NEXT. *TRAP x$ - Es como el GET$ del sistema BBC. *TRAP esperara a que se pulse la tecla ASCII en x$. Por ejemplo, *TRAP "*" esperara hasta que "*" sea presionado, solo entonces continua. Noten que pueden salir con solo pulsar BREAK. *CAPS x - Donde: x = cero o uno. Cambia el estado de mayusculas (caps lock) durante la ejecucion de un programa. Ejm. *CAPS 1 activa MAYUSC. *. - Da el catalogo de los archivos que hay en una cinta de cassette. Muestra una informacion variada como la dir. de inicio, long., linea de auto arranque, etc. *CHAR x$ - Equivale a la sentencia AFTER de Amstrad. Fija una variable que apunta al juego de caracteres para que pueda ser alterado. Ejemplo: *CHAR "0" apuntara al car. cero. *DATA a,b,c,d,e,f,g,h - Usado con *CHAR. POKEa 8 bytes de datos en el juego de caracteres (algo similar a los datos de un UDG) y permite que los caracteres sean alterados. Tras cada *DATA el puntero *CHAR se incrementa un caracter. Ejemplo: 10 *CHAR "0" 20 *DATA 0,126,102,102,102,102,126,0: REM cero 30 *DATA 0,24,24,24,24,24,24,0: REM uno ... Tan pronto como presiones 0 y 1, veras un nuevo estilo. Hay todo un nuevo juego de caracteres en el lado -A- de la cinta con el nombre "FONT1". Simplemente lo cargas con LOAD ""CODE. Empieza en 54110 y es de 768 bytes. LETTER SET 3 se puede usar para definir varios tipos diferentes de fonts. - efectos de Sonido Varios efectos de sonido pueden ser creados con EX-BASIC: El primer FX de sonido es un comando musical de dos octavas que usa los mismos numeros como el comando BEEP estandar: *SOUND len,pitch - Por ejm.: *SOUND 50,1 donde: pitch = 0 (C#) - los pasos correctos pueden ser encontrados en tu guia de usuario y notese que el medio C (0) es ahora nota 12! *FX x,y - donde x = 1 - ruido blanco. Para crear sonido de metralleta, trenes a vapor, etc. 2 - Laser zap. En un bucle FOR/NEXT puedes crear sonidos muy interesantes. 3 - Laser shot. Como el 2, excepto que el sonido es tocado en reversa. y = puede ser de 1 a 255 o hasta 65535 para el generador de ruido blanco. donde x = 4 - sonidos de "booteo" que pueden ser faciles de hacer. 5 - laser repetido. y = controla el monto de repeticiones del laser. Puede ser un valor de 1 a 19. - Proteccion La proteccion es importante hoy en dia. Varios comandos save/load son usados incluido un generador de carga ALKATRAZ (aqui es donde el computador puede cargar imagenes en espiral, aleatoreamente o solo las partes que sean necesarias). Los primeros comandos para salvart y cargar sin cabecera normal son: *HSAVE s,l - donde: s = direccion inicial, l = largo. Salva archivos sin cabecera. (Headerless Save) Notese que la computadora NO espera que se pulse ninguna tecla. Ejemplo: para salvar una pantalla usamos *HSAVE 16384,6912. *HLOAD s,l - es lo opuesto al comando *HSAVE. Carga archivos salvados sin cabecera. (Headerless Load) Para cargar la pantalla del ejemplo anterior: *HLOAD 16384,6912. Los sigtes. save y load consisten de proteccion - los datos son salvados con dos cabeceras especiales y tambien un sistema de codigo auto ejecutable. *PSAVE s,l,a - donde: s = direccion inicial, l = largo, a = dir. auto ejecucion. Si no va a haber auto ejecucion debemos poner entonces a = cero. *PLOAD - No se necesitan parametros, ya que cuando encuentra un archivo que fue salvado con *PSAVE, obtiene su informacion de la cabecera especial y carga y auto ejecuta el codigo de ser requerido. - ALKATRAZ Para crear un sistema de carga alkatraz, una tabla ha sido preparada diciendole a la computadora donde poner cada segmento de datos de la pantalla. Una tabla zapper es creada, y para usarla simplemente carga una pantalla con screen$ y tipea: *ZAP x - donde x = la posicion de la tabla, ejm. 35000. Cada ZAP es de 18 bytes, asi que el largo maximo de la tabla puede ser de 13.5K (13824 bytes). Mueve el cursor parpadeante y pulsa FIRE para hacer el zap - llena todos los segmentos de la pantalla, y cuando el computador viene a cargar la imagen, lo hara en la pos. EXACTA de cada zap en su orden correcto. Pulsa SPACE para salir y el mensaje "HALF:" seguido de un numero aparecera. Se muestra la MITAD del tam. de la tabla. Anota ese valor. La tabla DEBE ser salvada al cassette. Puede ser salvada como un archivo de bytes con: SAVE "TABLE" CODE inic. tabla,num el cual debe ser anotado por 2. Digamos que la tabla fue puesta en 35000 y su largo es de 1938 - simplemente tipeamos: SAVE "TABLE" CODE 35000,1938*2 Una vez que la tabla ha sido salvada a cinta, la pantalla debe ser salvada en el orden correcto de cada zap. Carga de vuelta tu pantalla y usa: *SAVE x,hl - donde: x = dir. de la tabla y hl = el num. mostrado tras salir de la tabla del zap. La pantalla sera ahora salvada en el orden correcto. Nota: algunas veces la tabla puede corromperse y debe ser vuelta a cargar con: LOAD ""CODE Para cargar de nuevo loa pantalla salvada, la tabla DEBE estar en la memorIa y ser cargada con: *LOAD dir,hl - la computadora empezara entonces a buscar la imagen y la cargara como un tipo alkatraz. Notese que la tecla BREAK es deshabilitada para una extra proteccion, por lo tanto si tratas de usar *LOAD con un archivo que no existe y quieres escapar de eso, simplemente carga un archivo de cinta normal. Por ejm. el programa cargador del EX-BASIC - el sistema volvera al BASIC. Todos los comandos: *DOKE, *MFILL, *SRIGHT, *REPORT, *WOKE, *MMOVE, *SLEFT, *INTAT, *SCREEN, *AFIND, *SCROLL, *PLOT, *COLOUR, *SFIND, *CAPS, *PLOAD, *CLOCK, *PRINT, *WHOLE, *PSAVE, *TRON, *SPRINT, *INVERT, *SLOMO, *STORE, *. , *SPEED, *DEC, *LIST, *FUNCTION, *HEX, *CHAR, *DEF, *BIN, *DATA, *KEY, *TRAP, *FLASH, *IM 1, *IM 2, *HALT, *BRIGHT, *GOTO, *STRING$, *CENTRE, *EDIT, *RAMTOP, *HSAVE, *VAR, *LOAD, *HLOAD, *FRE, *SAVE, *ZAP, *PROG, *VDU, *SOUND, *DELETE, *FX, *FADE, *RENUMBER, *BORDER, *TEXT, *SUP, *DOUB, *SDOWN Informacion util: la direccion de cada juego de caracteres es siempre puesto en 54110 y es indicado mediante *DOKE: 23606 con la direccion del font menos 256. De este modo LETTER SET 3 puede ser usado para crear nuevos fonts. Otro punto interesante a notar es que la tabla de *KEY esta en la RAM del usuario desde la dir. 63837 hasta la 64037 (200 bytes). Cada *KEY toma 2 bytes de memoria. Si sueles crear una larga tabla *KEY, la puedes salvar y cargar en cassette con: *PSAVE 63837,200,0 y *PLOAD/. Notese que la RAMTOP (fijada con CLEAR) nunca debe ir mas arriba de 54110 (el inicio del juego de caracteres del usuario en RAM). Si se mantuviese mas BAJO entonces un NEW not destruiria al sistema operativo del EX-BASIC, pero sera alrerado otra vez con el usual RANDOMIZE USR. Programas de ejemplo. Estos ejemplos pueden ser puestos en programas de EX-BASIC. i) Rutina de difuminado: 10 RANDOMIZE USTR 61434 20 *MMOVE 0,6912 TO 16384 30 *BRIGHT 0:*FLASH 0 40 FOR F=0 TO 7: FOR P=0 TO 7:*ADIND F,P TO 7,1: NEXT P: NEXT F 50 FOR F=255 TO 0 STEP -1:*SFIND F,0: NEXT F Ven como la pantalla y sus atributos se van difuminando? ii) Letras alargadas: 10 RANDOMIZE USR 61434 20 *MMOVE 54110,768 TO 40000:*CHAR "0":*DATA 0,0,0,0,0,0,0,0 30 *DATA 255,0,255,0,255,0,255,0 40 FOR L=1 TO 3: CLS: LET X=0: LET Y=0 50 LET W$="EX": FOR P=1 TO LEN w$ 60 LET chc=CODE W$(p): LET cha=(PEEK 23606+256*PEEK 23607)+chc*8 70 OVER 1: PRINT AT X,Y;: FOR F=0 TO 7: FOR S=0 TO L: PRINT TAB Y; 80 *BIN PEEK (cha+f);: NEXT S 90 NEXT f: OVER 0: LET Y=Y+8: NEXT P 100 *MMOVE 40000,768 TO 54110 110 *SLEFT 1,32: *SUP 1,24: *SDOWN 1,24 120 GOTO 110 Comprenden como las letras largas son impresas? Cambiando CEROs y UNOs, usa el comando *BIN command, varios graficos alargados pueden entonces ser producidos. iii) Funcion TECLA (cambia A en B, B a C, C a D, D a E, ademas intercambia ENTER y SPACE!!! 10 RANDOMIZE USR 61434 20 *IM 1 30 LET X=0 35 READ A$,B$: IF A$="end" THEN GOTO 50 40 *DEF X: *KEY CODE A$,B$: LET X=X+1: GOTO 35 50 LET X=X+1:*DEF X:*KEY 13,32:LET X=X+1:*EF 32,13 60 *FUNCTION 99 DATA "A","B","B","C","C","D","D","E","END","" Estos programas tan cortos y simples son imposibles en el BASIC Sinclair estandar, mas aun el ejemplo iii. Las teclas de Funcion son simplemente definidas en un bucle FOR/NEXT con *DEF y *KEY. Las teclas requeridas son almacenadas en sentencias DATA. Incluido despues de la propaganda hay un archivo en bytes llamado "ZAP EX", es un archivo que puede ser cargado en cualquier direccion, digamos 35000, con LOAD ""CODE 35000. Tipea directamente en tu computadora: *VDU 5, seguido de: *LOAD 35000,5058 y pulsa PLAY en tu toca cassettes. Otro archivo le sigue a "ZAP EX" que no esta impreso en este manual ya que es un archivo especial sin cabecera de alkatraz, que dibuja el logo de EX-BASIC en una forma muy especial. Esos son los efectos que pueden ser producidos con el comando *ZAP. Seras capaz de elaborar que la tabla es de 10116 bytes (provado con *.ing)! Es un triste hecho con esta clase de cargadores y no puede ser evitado. MELODY MAKER - lado B de la cinta. Este es un corto programa en EX-BASIC que sirve apra permitirte crear musica y tocarla de nuevo mediante el programa "REPLAY". Cargalo del modo normal con LOAD "" y espera hasta que el mensaje aparezca desplazandose. Las teclas de control son las sigtes.: (1) Ir a la opcion DEFINE MUSICA. (2) Reproduce MUSICA. (3) Altera el TEMPO. (4) Salva la musica. (5) Carga la musica salvada. (6) Destruye la musica. (1) si pulsas 1, entonces el teclado de la computadora puede ser usado para ingresar musica en el tempo en curso. Las teclas Z a M son la primera octava con Symbol shift + X/C, B/N/M como los sharps (agudos). Las teclas A a J son la segunda octava, con Symbol shift + S/D, G/H/J como los sharps. La fila de arriba controla los tambores, Q hace un sonido de laser "zap". EDIT reproduce la musica, DELETE elimina la ultima nota y ENTER nos devuelve al menu principal. (2) reproduce simplemente el sonido guardado en la memoria. (3) la velocidad de la musica (tempo) puede ser alterada desde 5 a 50 - donde 5 es MUY rapido y 50 es bastante promedio. (4) salva la musica a cassette como una matriz o arreglo numerico. (5) lo opuesto a la opcion 4 - acepta la musica salvada. (6) USESE CON CUIDADO ya que elimina TODAS las notas de la memoria de la computadora. Tras el MELODY MAKER hay una corta subrutina en BASIC que nos permite reproducir la musica facilmente. Fijamos el Tempo antes de ejecutar el programa con la variable "TE". Espero que hayan disfrutado leyendo esta guia. Gurdenla en lugar seguro y usenla como una referencia cada vez que deseen escribir un programa en EX-BASIC. EX-BASIC fue escrito y producido por Jonathan Lawrence Edgar Copyright 1988 N.d.T.: traducido al castellano del texto original en ingles. (c)2024 zx_if1@hotmail.com