TOOLKIT para ZX81

Avatar de Usuario
eltargui
Mensajes: 239
Registrado: 06 Feb 2014 18:38
Agradecido : 30 veces
Agradecimiento recibido: 70 veces

TOOLKIT para ZX81

Mensajepor eltargui » 30 Oct 2016 18:01

Tengo intención de analizar algunos programas de utilidades que salieron para el ZX81, sin incluir los referentes a ensamblador-desemsamblador de código máquina, cursos de idiomas o programas tipo enciclopedia.

En este caso he utilizado TOOLKIT.

TOOLKIT es una utilidad desarrollada por Artic Computing en 1982 para el ZX81 con 16 kB de RAM. El programa fue publicado tanto por Artic como por Sinclair Research. Introduce 9 nuevas funciones a las que se accede ejecutando el RAND USR correspondiente, según el manual de instrucciones.

Imagen

El programa baja la RAMTOP a la dirección 30500 y se instala por encima de esta dirección, precisamente para que no pueda accederse por otros programas. Ocupa los 2268 bytes restantes hasta el tope de memoria.

Lo que me ha interesado de este programa es la rutina MEM (RAND USR 31850 o RAND USR MEM) para el cálculo de la memoria RAM disponible. Hay varios programas que realizan la misma función pero siempre para el modelo de 16 kB. Como es sabido, en este modelo la memoria de display de pantalla, entre las variables del sistema D_FILE y VARS, ocupa un espacio fijo de 793 bytes. Mientras que en el modelo de 1kB este área de memoria es variable, desde el mínimo de 25 bytes hasta los 793 bytes, lo cual dificulta algo más el cálculo de la memoria RAM disponible.

El tema de la memoria de pantalla ya fue tratado en este hilo, con la ayuda de dancresp.

Imagen

Al ejecutar la rutina MEM aparece el cálculo de memoria mostrado en la imagen anterior. El programa al ejecutarse, asigna una variable a cada una de las nuevas funciones como puede verse al ejecutarse RAND USR 31532 o RAND USR DUMP. Si ejecutamos un CLEAR, veremos que no obtendremos un resultado al ejecutar RAND USR MEM, pero sí al ejecutar RAND USR 31850. En este caso el área de memoria libre será 13161 bytes. Es decir, con la ejecución de CLEAR también hemos liberado el área de variables usado por el propio programa.

El cálculo es relativamente preciso, ya que si a 16384 (16 kB) le restamos el espacio ocupado por el programa (2268 bytes), la memoria de pantalla (793 bytes) y el área de variables del sistema (125 bytes), nos daría un número cercano a los 13161 bytes. La diferencia es de 37 bytes, que seguramente fuera menos al deducir las pilas.

Referencia: ZX81 Stuff

Volver a “Sinclair ZX80/81”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados