Capítulo 8. Más sobre el gestor de bancos de memoria

Contenido:


Utilización por BASIC del segundo banco de 64K de RAM

El mapa de memoria de BASIC 1.1 que vimos en el capítulo anterior, parte 15, muestra que BASIC no utiliza 64 de los 128K de RAM. BASIC y el firmware residen en una ROM; si a ésta se añade la ROM del sistema de disco, resulta que la memoria utilizable desde BASIC es 112K en total (64K de RAM y 48K de ROM).

Cada sección de 16K es un "bloque"; un grupo de 4 bloques (64K) es lo que se denomina "banco". La técnica de selección de bloques se llama, pues, "conmutación de bancos".

El microprocesador Z80 no puede direccionar, en un momento dado, más de 64K. Por esa razón el sistema operativo está preparado para utilizar la ROM del firmware en lugar del bloque o de RAM, o las ROM de BASIC o del sistema de disco en lugar del bloque 3 de RAM. Esta conmutación se realiza automáticamente cada vez que se deben ejecutar rutinas de BASIC o del firmware.

Pues bien, la selección de bancos de RAM no es más que una generalización de este método. La conmutación la realiza un programa escrito en ensamblador.

En la cara 1 del juego de discos del sistema se incluye el programa BANKMAN.BAS. Este programa se ejecuta desde BASIC; su objeto es instalar la RSX que proporciona las órdenes externas de gestión de bancos.

Una aplicación del segundo banco de 64K es el almacenamiento temporal de imágenes de pantalla; por ejemplo, en un programa "diseñador de pantallas" que almacene varias pantallas diferentes, o un videojuego que tenga preparadas varias pantallas para mostrarlas inmediatamente cuando las necesite.

Otra aplicación del segundo banco de 64K es la ampliación del espacio dedicado a las variables; este espacio adicional se puede considerar como ampliación del espacio reservado a las matrices literales o como "disco de RAM" ("Ramdisc").