022:trucos

Microhobby 22. Año II, del 02 al 08 de abril de 1985

Rafael Domingo Gómez

Con este programa que nos ha enviado Rafael Domingo Gómez, conseguiremos un CLEAR hasta el máximo de la RAM física, incluyendo los gráficos definidos por el usuario (UDG), disponiendo de sus bytes para el basic sin que por esto nos quedemos sin ellos. El programa actúa de la siguiente manera:

«Pokea» la variable del sistema UDG que contiene la dirección del primer gráfico definido por el usuario, con la dirección del buffer de la impresora más cuatro bytes, ya que algunos programas utilizan las primeras posiciones de esta dirección para la entrada de datos. Seguidamente, copia todos los gráficos que hubiera habido en la dirección original de la UDG en un 16 K.

Para 48 K poner en la linea: 60,65368 en vez de 32600. Este los copia en la nueva dirección con tan solo ejecutar un CLEAR al PRAMT localizado en la variable «p», y, posteriormente, se borra.

Para utilizar esto en un programa, debemos «pokear» las direcciones 23675 y 23676 con 4 y 91, después hacer un CLEAR al máximo de la RAM y, por último, crear nuestros gráficos normalmente con USR«A» o usar la dirección 23300 en vez de 32600 o 65368.

10 LET dir =23300
20 LET p = PEEK 23732 +256 * PEEK 23733
30 LET a = INT (dir/256): POKE 23676, a
40 LET b = dir - 256 * a: POKE 23675, b
50 FOR i = 0 TO 167
60 POKE (dir + i), PEEK (32600 + i)
70 NEXT i
80 CLEAR p: NEW

Daniel Barreda

Con el titulo «Simulador de carga de programas», publicábamos en el número 12 un truco que, según Daniel Barreda, puede ampliarse para conseguir el mismo efecto. El modo de hacerlo es el siguiente:

Entre las direcciones 1240 y 1253, se simula la carga de cabeceras y la carga de información.

Entre las direcciones 1254 y 1334 sólo simula la carga de información (algunas con sonido y otras sin él) excepto:

  • Direcciones 1297 y 1329, sólo simulan el sonido.
  • Dirección 1296, hace NEW.
  • Direcciones 1330 y 1332, no hace nada.

Justino Espadas

Con frecuencia hemos querido que saliera en la pantalla de nuestro Spectrum una frase, letra por letra. Para poder realizar esto, Justino Espadas nos ha mandado un truco cuya explicación está en la fragmentación de cadenas del ordenador.

Cuando la N toma valor 1 se imprimirá la primera letra que hayamos metido. Esto se hace con la sentencia 30, que dice: PRINTA$ (N), donde N habrá tomado el valor 1, y equivaldrá a: PRINT A$ (1), con lo cual se imprimirá la primera letra, después la segunda letra y asi sucesivamente.

10 INPUT a$
20 FOR n = 1 TO LEN a$
30 PRINT a$(n);: PAUSE 7
40 NEXT n
  • 022/trucos.txt
  • Última modificación: d/m/Y H:i
  • por miguel