010:trucos

Microhobby 10. Año II, del 8 al 14 de enero de 1985

Seguramente nuestros lectores habrán observado en algunos programas en BASIC que estos tienen líneas cero que no se pueden editar. La forma de realizar este truco es muy fácil. Lo primero que necesitamos es averiguar la dirección de la línea en memoria para cambiar su número. Si hacemos:

PRINT PEEK 23635 + 256 * PEEK 23636

obtendremos un número (23755 si no tenemos el interfaz 1 conectado) que nos da la dirección en memoria de la primera línea del programa. Haciendo POKES con ceros en esta dirección y en la siguiente, dejaremos una hermosa línea cero que no puede ser editada.

Así, por ejemplo, en el caso anterior bastará con hacer POKE 23755,0 y POKE 23756,0. El mismo truco puede emplearse en cualquier línea del programa que no sea la primera, a condición de conocer su dirección en la memoria.

Muchos lectores nos han escrito preguntándonos si existe alguna posibilidad de hacer que la sentencia INPUT se imprima en cualquier parte de la pantalla, y no necesariamente en la parte baja de la misma, como ocurre normalmente. Pues bien, con un poco de picardía es perfectamente posible obtener este efecto como lo demuestra este programita.

10 INPUT AT 22, 0: AT 0, 0; "NOMBRE", N$

Las posibilidades que ofrece este truco son infinitas, pero tiene un pequeño defecto que rápidamente descubrirán nuestros lectores. Una vez que hemos contestado al INPUT, éste se borra. Para evitarlo, podemos añadir esta línea que corregirá el defecto:

20 PRINT AT 0, 0; "NOMBRE", N$

Les ofrecemos un interesante truquito para imprimir una variable dentro de un INPUT. Basta con utilizar el signo + para conectar un string con la variable que deseemos imprimir. De esta forma, el Spectrum construye, primero, el string antes de la impresión y se consigue el efecto deseado. Veamos un ejemplo práctico: Naturalmente, podemos utilizar cualquier tipo de variable, normal o matriz, siempre que sea alfanumérica. Si queremos imprimir una variable numérica, tendremos que utilizar la función STR$ para convertirla a alfanumérica.

10 LET A$ = "PROGRAMA"
20 INPUT "NOMBRE DEL" + A$; B$

Normalmente cuando vd. carga un programa aparece en la pantalla el clásico mensaje: xxxxx o bytes: xxxxx. Pero imagínese que comienza a cargar su programa y no aparece nada en la pantalla. Este curioso efecto se puede lograr utilizando códigos de control en el nombre del programa. El ejemplo que sigue le aclarará algo las ideas:

10 LET A$ = CHR$ 22 + CHR$ 1 + CHR$ 0 + CHR$ 16 + CHR$ 7 + CHR$ 17 + CRH$ 7 + CHR$ 249 + CHR$ 249
20 SAVE A$

Haga RUN, grabe el programa resultante en una cinta e intente cargarlo después de haber tecleado NEW.

  • 010/trucos.txt
  • Última modificación: d/m/Y H:i
  • por miguel