Idioma

Gestión de memoria en el modelo 130XE

La ubicación de selección de banco es 54017 ($D301). PORTB, ahora un byte de salida en lugar del byte de entrada que era en las máquinas 400/800, usa los bits 2-5 (que corresponden a los pines 2-5 en el chip PIA 6520) para seleccionar a qué banco de 16K se está accediendo y si el área se usa o no para acceso de video (ANTIC) o acceso 6502. Hay otros 64K de RAM en el 130XE (no el 65XE) que es idéntico al banco principal en diseño y control, pero se puede acceder solo en bancos de 16K en cualquier momento. Por supuesto, usando una rutina ML rápida impulsada por interrupciones, puede cambiar bits en PORTB para derivar entre bancos de 16K según sea necesario.


Cuando se habilita el acceso a un banco, aparece a través de una "ventana de acceso" en la memoria principal, en las ubicaciones 16384-32767 ($4000-$7FFF, debajo de las áreas de cartuchos o ROM del SO). Si habilita el cambio de banco, hace que la RAM normal en esta área sea reemplazada por el banco que ha elegido. El bit 4 es el bit de habilitación del banco de CPU (CBE) y el bit 5 es el bit de habilitación del banco de video (VBE). Los bits 3 y 2 son el MSB y el LSB de la dirección del banco secundario, respectivamente.


Puede configurar el sistema en uno de los cuatro modos siguientes: compatible con el software XL/XE existente, RAM extendida de CPU, RAM extendida de video y modos RAM extendida general. En todos los casos, solo el área de la ventana de acceso se ve afectada por la selección del modo.


El programador no necesita sincronizar las áreas; el sistema sabrá dónde se encuentra el área de visualización mediante la configuración de bits en PORTB. Esto es importante: una vez que configure los bits, no tendrá que preocuparse por dónde se producirá el acceso; el SO se encargará de seleccionar el banco correcto. Si tiene la intención de utilizar más de un bloque de 16K en la RAM extendida, tendrá que configurar y restablecer los bits de selección de banco según sea necesario, pero no los bits CPE o VBE.


  • En el modo de RAM extendida de CPU, sólo la CPU accede a la memoria adicional. Todos los ciclos ANTIC operan en la memoria principal de 64K. Esto significa que puede utilizar la memoria extendida para programas y datos, mientras que utiliza el banco principal para listas de visualización y datos de pantalla.

  • En el modo de RAM extendida de video, todas las referencias ANTIC al área $4000-$7FFF se dirigirán al banco secundario; todas las referencias de CPU ocurrirán en el banco principal. Esto permite a los programadores acceder a toda la memoria RAM para programas y datos en el área principal, mientras que ubican listas de visualización y datos de pantalla en el banco secundario.

  • En el modo de RAM extendida, tanto la CPU como ANTIC procesan en el segundo banco, exactamente como si fuera el banco principal en modo de compatibilidad (al que entonces no se accede en absoluto). El estado normal de los bits para CPE o VBE es 1; banco secundario deshabilitado. Cuando se establece en 0, se habilita el acceso al segundo banco. Aquí están las posibles configuraciones de bits (M significa banco principal, E para banco extendido o secundario):

Modo de compatibilidad (sólo se activa el banco principal)


Bit 5
VBE
Bit 4
CPE
Bit 3
Banco
Bit 2
selección
accede a CPUaccede a ANTIC
11no importano importaM $4000-$7FFFM $4000-$7FFF

Modo RAM ampliado de la CPU


Bit 5
VBE
Bit 4
CPE
Bit 3
Banco
Bit 2
selección
accede a CPUaccede a ANTIC
1000E $0000-$3FFFM $4000-$7FFF
1001E $4000-$7FFFM $4000-$7FFF
1010E $8000-$BFFFM $4000-$7FFF
1011E $C000-$FFFFM $4000-$7FFF

Modo RAM ampliada de vídeo (ANTIC)


Bit 5
VBE
Bit 4
CPE
Bit 3
Banco
Bit 2
selección
accede a CPUaccede a ANTIC
0100M $4000-$7FFFE $0000-$3FFF
0101M $4000-$7FFFE $4000-$7FFF
0110M $4000-$7FFFB $8000-$BFFF
0111M $4000-$7FFFE $C000-$FFFF

Modo RAM general ampliado


Bit 5
VBE
Bit 4
CPE
Bit 3
Banco
Bit 2
selección
accede a CPUaccede a ANTIC
0000E $0000-$3FFFE $0000-$3FFF
0001E $4000-$7FFFE $4000-$7FFF
0010E $8000-$BFFFE $8000-$BFFF
0011E $C000-$FFFFE $C000-$FFFF

Para seleccionar el modo y el banco al que desea acceder en BASIC, utilice

POKE 54017, 193 + (MODO * 16) + (BANCO * 4)	

Para modo y banco, elija el número que representa el tipo y el área en la dirección:


Modo Banco
No.6502ANTICNo.Address
0ExtdExtd0$0000-$3FFF
1MainExd1$4000-$7FFF
2ExtdMain2$8000-$BFFF
3MainMain3$C000-$FFFF

El acceso a la memoria extendida es siempre a través del banco $4000-$7FFF, por lo que no importa cuál sea la dirección del banco extendido, usted sigue haciendo PEEK y POKE en las posiciones 16384-32767 ($4000-$7FFF), no en la dirección del banco extendido.


El DOS 2.5 incluye un programa llamado RAMDISK.SYS que, cuando se arranca el disco, comprueba si tiene un 130XE y, si es así, crea un disco de memoria de 64K (RAMdisk) a partir de la memoria extendida. (Vea la sección sobre DOS 2.5.) El RAMdisk ocupa todo el bloque extendido de 64K, por lo que no puede usar los 64K extra para BASIC u otros programas si quiere mantener el RAMdisk intacto.