012:trucos

Microhobby 12. Año II, del 22 al 28 de enero de 1985

Una de las limitaciones del sistema operativo de los microdrives es que no permite la existencia, en un mismo cartucho, de dos programas con el mismo nombre; la forma de evitar esto y conseguir «esquivar» al sistema operativo, es la siguiente: basta con introducir en el nombre del programa los códigos de color directamente; por ejemplo:

Supongamos que nuestro programa se llama «prueba». Para salvarlo en el drive teclearíamos:

(1) SAVE * "M"; 1; "PRUEBA"

y en vez de teclear ENTER, llevaríamos el cursor antes de la P de PRUEBA; ahora, pulsamos CAPS SHIFT + SYMBOL SHIFT y un número, por ejemplo, el “4”. El papel cambiará a color verde; si queremos cambiar también la tinta, repetiremos la misma operación manteniendo pulsada CAPS SHIFT al teclear el número. Si lo hacemos con el “7” pondremos tinta blanca. Una vez hecho esto, llevamos el cursor después de las comillas del nombre del programa y restituimos los atributos originales por el mismo método. Ya podemos pulsar ENTER y salvar el programa. Para comprobar que todo ha salido correctamente, hacemos un CAT del drive y debiéramos ver el nombre del programa «PRUEBA» con el color de papel y tinta elegidos.

Si ahora tecleamos la línea (1) y pulsamos ENTER, salvaremos otra vez el programa, pero con distintos atributos, de forma que el sistema operativo del microdrive los considerará como ficheros distintos a pesar de tener al mismo nombre.

Una vez más, dejamos los posibles usos de esta técnica a la imaginación del lector, aunque una posibilidad sería utilizarla para tener copias de las distintas fases por las que pasa un programa que estemos desarrollando, hasta su conclusión final.

Si queremos incluir en nuestros propios programas el efecto de cargar programas desde la cassette, existe un grupo de direcciones en la memoria ROM que lo hacen con ruido de carga, sin ruido de carga, y con distintos colores a los habituales.

La pantalla tendrá la misma apariencia que cuando hacemos un LOAD desde el cassette, y permanecerá asi durante un tiempo variable que depende de la cantidad almacenada en ciertos registros del microprocesador.

Invitamos al lector a probar con las direcciones comprendidas entre la 1296 y la 1325, mediante la instrucción RANDOMIZE USR.

Si se cansa de esperar a que la rutina termine, pulse CAPS SHIFT + BREAK.

Supongamos que en medio de un bloque de líneas de un programa BASIC necesitamos insertar una que no deseamos que se ejecute siempre, sino sólo en el momento en que a nosotros nos interesa; la forma normal de realizar esto consistiría en insertar en esa línea, o en otra parte del programa que llamará al bloque que estamos considerando, una expresión condicional del tipo IF THEN o similar, decidiendo si la línea debe o no ser ejecutada; este método, aunque funciona impecablemente, en según qué casos, puede complicar la estructura lógica del programa y relentizar su ejecución.

Un método alternativo sería colocar la línea «dudosa» en una sentencia REM, con lo cual nos aseguramos, de entrada, que no va a ser ejecutada.

En el momento y lugar del programa que interese ejecutar un salto a esa línea, pokearíamos en dos variables del sistema, llamadas NEWPIC y NSPPC, localizadas en las posiciones de memoria 23618 y 23620 respectivamente, las cuales representan el número de línea al que hay que saltar y el comando dentro de la línea que va a ser ejecutado.

10 POKE 23618, 100: POKE 23619, 0: POKE 23620, 2
20 STOP
100 REM : PRINT "Esta Linea se ejecuta a pesar de todo"
  • 012/trucos.txt
  • Última modificación: d/m/Y H:i
  • por miguel