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 | ||
014:software [d/m/Y H:i] – [Sistema Turbo] miguel | 014:software [d/m/Y H:i] (actual) – [El sistema «TURBO» en clave] miguel | ||
---|---|---|---|
Línea 44: | Línea 44: | ||
Intentamos describir telegráficamente, | Intentamos describir telegráficamente, | ||
- | a) A nivel de basic. | + | |
- | b) A nivel de código máquina. | + | * A nivel de basic. |
+ | | ||
Los puntos en que se basa son los siguientes: | Los puntos en que se basa son los siguientes: | ||
- | 1.°) El BASIC cargador contiene enmascarada la rutina de carga rápida, junto con los datos de carga del programa. | + | |
- | 2.°) La rutina de carga representa la última línea (aparente) del programa BASIC. Su número de línea es superior a 9999, por lo que no se ejecuta. | + | - El BASIC cargador contiene enmascarada la rutina de carga rápida, junto con los datos de carga del programa. |
- | 3.°) La rutina de carga está enmascarada con la función OR exclusive, de modo que cada octeto original se obtiene de hacer el OR exclusive entre dos octetos adyacentes del código enmascarado. | + | |
- | 4.°) La rutina específica para desenmascarar la rutina de carga y trasladarla a su zona de ejecución, ocupa la zona de variables del BASIC. Su comienzo está en la dirección a la que apunta la variable VARS. | + | |
- | 5.°) La rutina de desenmascaramiento está, a su vez, enmascarada mediante una utilización especial del registro indexado IY. Este registro se utiliza normalmente como registro doble de 16 bits. Los códigos son los mismos que los de los registros H y L, salvo con un FD delante de cada código. | + | |
- | 6.°) Todas las líneas BASIC tienen número de línea 0 y PAPER 0, INK 0, ocultos o implícitos en cada lí- | + | |
- | nea. Ello los hace invisibles en el listado. | + | |
- | 7.°) Las líneas BASIC no aportan nada esencial, salvo la 4.a, que contiene oculta, en los códigos | + | |
- | 8.°) La puesta en marcha de todo el proceso, tiene lugar al finalizar la ejecución del BASIC, momento en el que en lugar de imprimir en pantalla el mensaje O.K., salta automáticamente al comienzo de la rutina de desenmascaramiento. | + | |
- | 9.°) La rutina de carga rápida tiene protecciones diversas en su ejecución. En distintos puntos de la misma, comprueba los resultados de la carga y salta a la dirección 0 de la memoria ROM si no son los esperados. Antes de saltar al comienzo del juego, se borra ella misma. | + | |
- | El programa | + | |
- | a) No tiene BASIC. Es inútil buscar ningún listado. | + | El programa |
- | b) Sólo tiene definidas las variables del sistema que necesita el juego, como la de BORDER; por ejemplo. | + | |
- | c) Al no estar definida la zona BASIC (puede estar definida pero vacía), el programa es inmanejable desde el BASIC; sólo puede examinarse con un monitor de código máquina o similar (Acondicionar el BASIC supondría destruir parte del juego). | + | * No tiene BASIC. Es inútil buscar ningún listado. |
+ | | ||
+ | |