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 CPU | accede a ANTIC |
---|---|---|---|---|---|
1 | 1 | no importa | no importa | M $4000-$7FFF | M $4000-$7FFF |
Modo RAM ampliado de la CPU
Bit 5 VBE | Bit 4 CPE | Bit 3 Banco | Bit 2 selección | accede a CPU | accede a ANTIC |
---|---|---|---|---|---|
1 | 0 | 0 | 0 | E $0000-$3FFF | M $4000-$7FFF |
1 | 0 | 0 | 1 | E $4000-$7FFF | M $4000-$7FFF |
1 | 0 | 1 | 0 | E $8000-$BFFF | M $4000-$7FFF |
1 | 0 | 1 | 1 | E $C000-$FFFF | M $4000-$7FFF |
Modo RAM ampliada de vídeo (ANTIC)
Bit 5 VBE | Bit 4 CPE | Bit 3 Banco | Bit 2 selección | accede a CPU | accede a ANTIC |
---|---|---|---|---|---|
0 | 1 | 0 | 0 | M $4000-$7FFF | E $0000-$3FFF |
0 | 1 | 0 | 1 | M $4000-$7FFF | E $4000-$7FFF |
0 | 1 | 1 | 0 | M $4000-$7FFF | B $8000-$BFFF |
0 | 1 | 1 | 1 | M $4000-$7FFF | E $C000-$FFFF |
Modo RAM general ampliado
Bit 5 VBE | Bit 4 CPE | Bit 3 Banco | Bit 2 selección | accede a CPU | accede a ANTIC |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | E $0000-$3FFF | E $0000-$3FFF |
0 | 0 | 0 | 1 | E $4000-$7FFF | E $4000-$7FFF |
0 | 0 | 1 | 0 | E $8000-$BFFF | E $8000-$BFFF |
0 | 0 | 1 | 1 | E $C000-$FFFF | E $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. | 6502 | ANTIC | No. | Address |
0 | Extd | Extd | 0 | $0000-$3FFF |
1 | Main | Exd | 1 | $4000-$7FFF |
2 | Extd | Main | 2 | $8000-$BFFF |
3 | Main | Main | 3 | $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.