Parte 15: Memoria
El CPC6128 dispone de 128K de RAM y 48K de ROM. Esta memoria es utilizable por BASIC 1.1
según se indica en la figura siguiente. El primer banco de 64K de RAM está dividido
nominalmente en cuatro bloques (de 16K cada uno), numerados del 0 al 3. La pantalla utiliza el
bloque 3; la zona superior del bloque 2 está dedicada a las variables de sistema, según se
muestra en la figura.
Los caracteres definidos por el usuario están inicialmente inmediatamente por encima de
HIMEM. Este valor se puede modificar mediante una orden MEMORY; además se reduce en 4K
automáticamente para crear un tampón cada vez que se abre un fichero. El número de
caracteres definibles por el usuario (controlado por la orden SYMBOL AFTER de BASIC) sólo se
puede modificar si HIMEM no ha variado desde la última vez que aquél fue establecido (o si en
esa ocasión se estableció en cero, con SYMBOL AFTER 256). Cuando se entra en BASIC, el
número de caracteres definibles por el usuario se establece como si se hubiera ejecutado la
orden SYMBOL AFTER 240.
Por consiguiente, antes de cambiar permanentemente HIMEM, es prudente reducir a cero la
zona de memoria dedicada a los caracteres definibles; después se modifica HIMEM y finalmente
se restablece la zona de caracteres definibles al tamaño deseado. De esta manera los siguientes
programas podrán ejecutar nuevas órdenes SYMBOL AFTER sin problemas.
El siguiente ejemplo ilustra este método, aplicado a la carga de una RSX:
100
SYMBOL AFTER
usuario
110
direccionrsx=HIMEM-longitudrsx
120
MEMORY
direccionrsx-1
Mapa de memoria para BASIC 1.1
256
' anular memoria para caracteres definibles por el
Manual de Amstrad CPC 6128 (revisión 2008) - Página 308