009:trucos

¡Esta es una revisión vieja del documento!


Microhobby 9. Año II, del 1 al 7 de enero de 1985

Dentro del capítulo de protección de programas se encuentra la técnica de grabar en cinta los programas Basic como si se tratara de bytes.

Este método no funcionaría correctamente en el caso de los microdrives; la causa es que durante la carga de un programa desde el drive, la zona de trabajo cambia de acuerdo a la información a la que accede sucesivamente, con lo cual ésta no corresponde a lo que habíamos salvado en un principio.

Antes de nada, hay que decidir qué es lo que queremos salvar (para obtener la dirección de comienzo), y su longitud en bytes.

Dirección de comienzo:

  1. Incluyendo la pantalla: DIR = 16384.
  2. Programa Basic en adelante: DIR = 23552.

Longitud en bytes de la parte de la memoria que queremos salvar:

  1. Sólo programa Basic: LONG = PEEK 23627 + 256 * PEEK 23628 + 2 — DIR
  2. Programa más variable: LONG = PEEK 23641 + 256 * PEEK 23642 + 1 — DIR
  3. Con bytes o código máquina incluido: LONG = última dirección del c/m + 1 — DIR

La orden final que debemos dar al ordenador es:

SAVE "nombre" CODE DIR, LONG

que debe estar en una línea de programa; haremos un 'GO TO' a esa línea y eso es todo.

Una precaución que es imprescindible tomar siempre es SALVAR LA ZONA DE LAS VARIABLES DEL SISTEMA.

5 REM *** ASIGNACION DE DIRECCION DE COMIENZO Y LONGITUD TOTAL A SALVAR ***
10 LET DIR = 23552: LET LONG = PEEK 23627 + 256 * PEEK 23628 + 2 - DIR
15 REM *** SALVA EL PROGRAMA COMO BYTES ***
20 SAVE "PRUEBA" CODE DIR, LONG: GO TO 30
30 CLS : PRINT "ESTE PROGRAMA SE HA AUTOEJECUTA-DO COMO BYTES. SOLO HEMOS SALVADOEL PROGRAMA BASIC ( INCLUYENDO VARIABLES DEL SISTEMA )."
40 STOP

Continuando con el asunto de invertir el contenido de la pantalla, presentamos la que podíamos denominar «segunda parte» de la cuestión; de la misma forma que

invertíamos los caracteres de la pantalla, haremos lo mismo con los atributos.

De nuevo nos vemos obligados a recurrir al código máquina por razones de velocidad y de sencillez de programación.

El método empleado en ambas rutinas es prácticamente el mismo, y pueden utilizarse juntas o por separado.

MAS DE UN JUEGO DE CARACTERES GRAFICOS

Para todos los amantes de los juegos y, sobre todo, para los programadores que se encuentran con que los 21 gráficos definidos por el usuario se agotan a las primeras de cambio, presentamos una pequeña técnica que nos permitirá emplear todos los juegos de caracteres que queramos.

Hay una variable del sistema situada en las posiciones de memoria 23675 y 23676, denominada UDG, cuyo contenido apunta a la dirección del primer carácter gráfico definido por el usuario.

Si cambiamos esa dirección de memoria por otra, el ordenador creerá que el juego de caracteres gráficos está en otra dirección; según el número de veces que hagamos esto, tantos juegos distintos tendremos.

Supongamos que queremos almacenar un segundo juego a partir de la posición de memoria 40960; este número es 160 x 256 más cero. Así que haríamos POKE 23675,0 y POKE 23676,160 después de introducir nuestros gráficos en la memoria.

En este espacio también tienen cabida los trucos que nuestros lectores quieran proponer._

Para ello, no tienen más que enviarlos por correo a MICROHOBBY, C/Arzobispo Morcillo, 24, of. 3 y 4, Madrid-28029.

1 DRTR 24-3 , 33 , 224-, 87 , 5 , 22 , 17 , 3 2,0,25,229,213,197,5,15,27,229,2 5,235,225,125,79,25,119,121,18,3 5,27,15,245,193,209,225,15,227,2 51,201

40 FOR 1=50100 TO 50135: RERD X: POKE I,X: NEXT I

50 FOR 1=0 TO 21: PRINT RT 1,0 ; PRPER 4; INK 0;“01234557890123 45”; PRPER 3; INK 0;“01234557890 12345”: NEXT I

50 RRNDOMIZE USR 50100 70 STOP

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