Extended Basic También llamado Advance Basic. Escrito por R. Falk y producido por CP Software en 1983. Spectrum Extended Basic (Extensión del Basic de Spectrum o Basic Avanzado) provee diez comandos adicionales esenciales para la programación seria además de ser muy usuales en máquinas más caras. El programa ocupa poco espacio en RAM, es amigable y chequea la sintaxis. Una vez cargado con LOAD "", el programa está ya listo para usar. Se requieren 20 bytes libres para poder ejecutar un comando sino da error. Se trata de comandos directos que no pueden ser combinados con otras ordenes del Spectrum ni pueden ser usados en listados de programas. NEW o Rand.Usr 61135 desactivan al Basic extendido. Se requiere un Rand.Usr 61128 para reactivarlo. Funciona optimamente con el basic de cassette. Es necesario desactivarlo si se quiere usar comandos de disco, pues cuelga dichos sistemas. No sé si en el Wafadrive real suceda pero en el emulador RealS. no solo cuelga al WOS sino que daña totalmente al cartucho WDR. Causa crash del sistema en las máquinas 128, +2, +3 y +2a. No, si están en modo 48k. Sintaxis: *comando [parametros] Comandos: Auto, Clock, Delete, Examine, Find, Memory, Renumber, Scroll, Trace, Varaibles. Los comandos tienen el * como prefijo y basta tipear la letra inicial para que aparezca el comando. Por ejemplo *C da *CLOCK. Es indistinto si se tipean ya en mayusculas o minusculas pues todo aparece automáticamente en mayusculas. Pero deben ser borrados letra a letra. Los parametros pueden ser valores desde 0 a 9999. *Auto (*A) sintaxis:*Auto {línea{,salto}} Genera automáticamente la numeración de líneas. Si no se dan parametros empieza por defecto en la línea 10 y salto en 10. Para salir de este modo basta pulsar BREAK. *Clock (*C) sintaxis1: *Clock n donde n = 0/1 - desactiva / activa la aparición del reloj de 12 horas en pantalla. sintaxis2: *Clock h,m,s donde h,m,s = hora, minutos y segundos - Permite ajustar la hora del reloj. Da error si no se da ningún parámetro. Una vez activado el reloj, corre continuamente siendo interrumpido por BEEPs o comandos de cassette. Ejemplo: *C 10,26,30 - pone el reloj para las 10:26:30 *C 1 - muestra el reloj en pantalla y desactiva la orden TRACE. La hora aparece en la esquina superior derecha antecedida por la palabra "Time:" Nota: la hora desaparece si se pulsa NEW. Basta reactivar el Adv. Basic con Usr 61128 para que la hora reaparezca. Solo '*C 0' ó '*T 1' lo quitan de la pantalla. *Delete (*D) sintaxis: *Delete x{,y} Elimina lineas desde x hasta y. Solo la linea x si no se añade y. Da error sin ningún parámetro o si hay equivoco sintáctico. *Examine (*E) Es un lector de cabeceras de programas en cinta. No tiene parámetros. Ofrece la sigte. información bajo HEADER INFORMATION (datos de la cabecera): El nombre de archivo. El tipo: program si es basic, bytes si es C.M., bytes (screen) si es imagen, number array / character array si son matrices numericas o de cadena. La dirección de comienzo si es C.M. El largo en bytes. Si es autoejecutable y desde qué linea o bytes. Nota: *E funciona muy bien leyendo los datos de discos de MB-02+. *Find (*F) sintaxis: *Find [t]{,n} donde [t] = el texto a buscar en el listado y ,n = línea donde empieza la busqueda. n es opcional, si se omite busca desde el inicio del listado. Da error si no hay parametros. Ejemplos: *F [CHR$ 91] - mostrara la primera linea que contenga esta funcion *F [LET A = A+1],210 - buscara la sentencia entre llaves a partir de la lnea 210 *F [] - vacío salta a la primera línea del listado *F [],n - muestra la línea n si esta existe, da error si no. *Memory (*M) Muestra en pantalla el estado actual de la memoria. No requiere parametros. La información que ofrece es la sigte: Ramtop address: ...(dirección de la ramtop) Program: ... bytes, Variables: ... bytes, Free RAM: ... bytes. Todo antecedido por el título: MEMORY STATUS (Estado de la memoria) *Renumber (*R) sintaxis: *Renumber {c{,i}} donde: c = la línea de comienzo e i = el intervalo entre líneas Permite renumerar todo un programa incluidos GOTO y GOSUB. Al igual que *A, si no se dan parametros empieza por defecto en la línea 10 y salto en 10. *Scroll (*S) sintaxis: *Scroll n donde n = 0/1 - desactiva / activa el Scroll Permite un scroll continuo de la pantalla sin el típico mensaje de espera "Scroll?". *Trace (*T) sintaxis: *Trace n donde n = 0/1 - desactiva / activa el Trace Utilidad de rastreo de programas en tiempo de ejecución. Cuando se activa aparece en la esquina superior derecha el número de línea y el de sentencia en ejecución antecedida por la palabra "Trace:". Activado hace más lenta la ejecución de un programa por un factor de 20. *T 1 - activa el Trace y desactiva la aparición del reloj en pantalla. Al igual que con *Clock, tras un NEW hay que hacer Usr 61128 para continuar el Trace. *Variables (*V) Carece de parametros como *Memory y *Examine. Muestra en pantalla una lista de las variables usadas por el programa en curso. Las variables DIM son listadas después de las variables comunes. Las variables de más de 5 dimensiones no se listan. Mensajes de error: 4 Out of memory - se da si no hay 20 bytes libres para los comandos extendidos. S Error - mensaje usual en caso de errores sintacticos del Adv. Basic o un * solo. T Break - este mensaje se da cuando se interrumpe un Examine pulsando BREAK. U Line not found (línea no hallada) - se da con Find. Por ejemplo: *F [],120 0 OK - los comandos extendidos se ejecutaron correctamente. zx_if1@hotmail.com