Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
012:software [d/m/Y H:i] – [Macedonia de trucos] miguel | 012:software [d/m/Y H:i] (actual) – [Inofensivo y divertido] miguel | ||
---|---|---|---|
Línea 45: | Línea 45: | ||
El segundo truco antiMERGE se basa en unos principios totalmente diferentes. Dado que esta instrucción está pensada originalmente para fusionar programas, es imprescindible que vaya tomando nota de los números de línea. El truco consiste en darle un número «imposible» con lo que la rutina se vuelve loca y se produce el consiguiente bloqueo. Naturalmente, | El segundo truco antiMERGE se basa en unos principios totalmente diferentes. Dado que esta instrucción está pensada originalmente para fusionar programas, es imprescindible que vaya tomando nota de los números de línea. El truco consiste en darle un número «imposible» con lo que la rutina se vuelve loca y se produce el consiguiente bloqueo. Naturalmente, | ||
- | 1 POKE 23802,0 : POKE 23613,0 | + | |
- | 2 GOTO 4 | + | <code basic> |
- | 3 POKE 23801,255 : SAVE " | + | 1 POKE 23802, 0: POKE 23613, 0 |
- | 4 REM principio del programa | + | 2 GOTO 4 |
- | A la hora de proteger un programa contra MERGE incluiremos estas líneas al principio del mismo y lo grabaremos haciendo GOTO 3. El POKE de esta línea tiene por objeto transformar el número de la línea 2, cambiándolo a 65282, lo que para el Spectrum es imposible, y provocará el bloqueo si intentamos hacer MERGE. Por el contraio, si utiliza- | + | 3 POKE 23801, 255: SAVE " |
- | 8 MICROHOBBY | + | 4 REM principio del programa |
- | mos el LOAD normal, la ejecución comenzará en la línea 1 donde el primer POKE devolverá a la línea 2 su número normal, y el segundo es uno de los de protección que ya hemos visto. Luego la ejecución se transferirá a la línea 4 donde comienza el resto del programa. Al utilizar esta rutinita hay que tener cuidado en no modificar la línea 1 ya que alteraríamos la dirección de la segunda línea con lo que el POKE debería de tener otra dirección. Por el contrario, si utilizamos | + | </ |
- | Inofensivo y divertido | + | |
- | Y siguiendo con nuestro panorama de trucos, vamos ahora con uno bastante inofensivo pero que siempre resulta divertido. El archifamoso de la línea 0. Muchos programadores que conocen este truco, lo emplean para crear una línea que no se puede editar y donde colocan su nombre para evitar que otra persona se apropie del programa. No nos parece mal, pero rogamos que no lo pongan en los programas que nos envían ya que luego llueven cartas de lectores justamente indignados quejándose de que no pueden introducir esta línea en su ordenador. Para ello, basta con introducir la línea con un número normal y, posteriormente, | + | A la hora de proteger un programa contra MERGE incluiremos estas líneas al principio del mismo y lo grabaremos haciendo GOTO 3. El POKE de esta línea tiene por objeto transformar el número de la línea 2, cambiándolo a 65282, lo que para el Spectrum es imposible, y provocará el bloqueo si intentamos hacer MERGE. Por el contrario, si utilizamos |
- | Un truco canallesco_ | + | |
- | Y vamos a terminar con un truco verdaderamente canallesco. Aquellos lectores que hayan tenido la paciencia de leer a fondo el manual del Spectrum (y hago aquí una pausa para afirmar que es uno de los mejores del mercado, otro día hablaremos de la traducción...) recordarán que los números se almacenan en memoria de dos formas. Primero viene la representación en ASCII del número, a continuación el código 14 que indica número y, por último, cinco bytes que lo representan en coma flotante. Lo interesante de este complicado asunto es que, para obtener el listado del programa, nuestro Spectrum emplea la representación el ASCII, mientras que para los cálculos emplea los cinco bytes mencionados. Esto significa que es posible cambiar los bytes que representan el número en ASCII dándoles unos valores irreales mientras que el programa va a seguir operando con los números reales, lo que nos permite confundir a todo aquel que intente reproducir nuestro programa. Y más interesante todavía, cuando editamos una línea «protegida» y la volvemos a introducir en memoria la representación en coma flotante cambia para ajustarse a la representación en ASCII lo que significa que el listado queda totalmente corrompido e inutilizable. Vamos con el ejemplo de turno: | + | ==== Inofensivo y divertido |
+ | |||
+ | Y siguiendo con nuestro panorama de trucos, vamos ahora con uno bastante inofensivo pero que siempre resulta divertido. El archifamoso de la línea 0. Muchos programadores que conocen este truco, lo emplean para crear una línea que no se puede editar y donde colocan su nombre para evitar que otra persona se apropie del programa. No nos parece mal, pero rogamos que no lo pongan en los programas que nos envían ya que luego llueven cartas de lectores justamente indignados quejándose de que no pueden introducir esta línea en su ordenador. Para ello, basta con introducir la línea con un número normal y, posteriormente, | ||
+ | |||
+ | ==== Un truco canallesco ==== | ||
+ | |||
+ | Y vamos a terminar con un truco verdaderamente canallesco. Aquellos lectores que hayan tenido la paciencia de leer a fondo el manual del Spectrum (y hago aquí una pausa para afirmar que es uno de los mejores del mercado, otro día hablaremos de la traducción...) recordarán que los números se almacenan en memoria de dos formas. Primero viene la representación en ASCII del número, a continuación el código 14 que indica número y, por último, cinco bytes que lo representan en coma flotante. Lo interesante de este complicado asunto es que, para obtener el listado del programa, nuestro Spectrum emplea la representación el ASCII, mientras que para los cálculos emplea los cinco bytes mencionados. Esto significa que es posible cambiar los bytes que representan el número en ASCII dándoles unos valores irreales mientras que el programa va a seguir operando con los números reales, lo que nos permite confundir a todo aquel que intente reproducir nuestro programa. Y más interesante todavía, cuando editamos una línea «protegida» y la volvemos a introducir en memoria la representación en coma flotante cambia para ajustarse a la representación en ASCII lo que significa que el listado queda totalmente corrompido e inutilizable. Vamos con el ejemplo de turno: | ||
Introduzcamos el siguiente y elemental programa: | Introduzcamos el siguiente y elemental programa: | ||
+ | |||
+ | <code basic> | ||
1 PRINT 2 + 2 | 1 PRINT 2 + 2 | ||
- | Y a continuación vamos a cambiar los números mediante POKE 23760,49 y POKE 23768,49. Si ahora hacemos LIST obtendremos el siguiente programa: | + | </ |
- | 1 PRINT 1 + 1, ya que 49 es el código ASCII del número 1. | + | |
- | Pero si hacemos RUN observaremos con gran sorpresa que el resultado sigue siendo 4, y no 2 como sería de esperar. Y por último, editemos la línea mediante CAPS SHIFT y EDIT y sin modificarla volvamos a introducirla con EN-TER. Si ahora pulsamos nuevamente RUN, veremos que el resultado es 2, lo que significa que ha perdido definitivamente la representación en coma flotante de los números originales al intentar editar la línea. Combinando este truco con el de los caracteres de control de color para volver invisible nuestro programa, habremos conseguido producir un buen dolor de cabeza a todo aquel que intente meterse dentro del mismo. | + | Y a continuación vamos a cambiar los números mediante POKE 23760,49 y POKE 23768,49. Si ahora hacemos LIST obtendremos el siguiente programa: |
+ | |||
+ | <code basic> | ||
+ | 1 PRINT 1 + 1 | ||
+ | </ | ||
+ | |||
+ | ya que 49 es el código ASCII del número 1. | ||
+ | |||
+ | Pero si hacemos RUN observaremos con gran sorpresa que el resultado sigue siendo 4, y no 2 como sería de esperar. Y por último, editemos la línea mediante CAPS SHIFT y EDIT y sin modificarla volvamos a introducirla con ENTER. Si ahora pulsamos nuevamente RUN, veremos que el resultado es 2, lo que significa que ha perdido definitivamente la representación en coma flotante de los números originales al intentar editar la línea. Combinando este truco con el de los caracteres de control de color para volver invisible nuestro programa, habremos conseguido producir un buen dolor de cabeza a todo aquel que intente meterse dentro del mismo. | ||
¡Qué ustedes se lo pasen bien! | ¡Qué ustedes se lo pasen bien! |