Shadow RAM , en los microordenadores Acorn BBC Micro , Master-series y Acorn Electron, es el nombre que recibe una implementación especial del búfer de fotogramas para liberar memoria principal y que esta pueda ser utilizada por el código del programa y los datos. Algunas implementaciones de Shadow RAM también permiten gráficos con doble búfer .
Fondo
Las máquinas BBC Micro, Master-series y Electron utilizan los procesadores 6502 y 65C102 de 8 bits con un espacio de direcciones de 16 bits . Este espacio de direcciones se divide en 32 KB de RAM ( 0x0000 a 0x7FFF ), 16 KB de espacio de direcciones paginado lateralmente ( 0x8000 a 0xBFFF ) y 16 KB de espacio del sistema operativo ( 0xC000 a 0xFFFF ). La memoria de vídeo o de pantalla se asigna normalmente desde 0x7FFF hacia abajo según sea necesario, ocupando tan solo 1 KB para el modo Teletexto 7 (y, por lo tanto, la región de 0x7C00 a 0x7FFF ), o hasta 20 KB para los modos 0-2 (y, por lo tanto, la región de 0x3000 a 0x7FFF ). Por lo tanto, la memoria de pantalla puede ocupar una cantidad considerable de los 32 KB de RAM disponibles de acceso directo.
Descripción general
La RAM de sombra es un bloque de RAM que puede considerarse que reside en paralelo al mapa de memoria normal y al que el sistema accede solo bajo ciertas condiciones. Cuando se habilita la RAM de sombra, la región de memoria que normalmente se usa para la memoria de pantalla queda disponible para su uso en programas BASIC y para aplicaciones que emplean interfaces de sistema operativo documentadas oficialmente. Dado el requisito máximo de 20 KB para la memoria de pantalla en los sistemas en cuestión, esta cantidad de RAM se proporciona como RAM de sombra. [ 1 ]
Shadow RAM venía instalado de serie en el BBC Micro Model B+ y en la serie BBC Master, pero era una característica opcional proporcionada por expansiones de terceros en sistemas BBC Micro anteriores y en el Acorn Electron. El producto Aries-B20, vendido inicialmente por Cambridge Computer Consultants, [ 2 ] ofrecía 20 KB de Shadow RAM para el BBC Model B, desviando de forma transparente los accesos que no eran del framebuffer a la Shadow RAM para direcciones en la región de memoria de vídeo de 20 KB. [ 1 ] La Master RAM Board, fabricada por Slogger, ofrecía una funcionalidad similar para el Electron. [ 3 ]
En sistemas basados en el modelo BBC B+, como la estación de trabajo Acorn Cambridge , la memoria de pantalla puede residir en RAM convencional o en RAM de sombra. Un chip de lógica de matriz programable (PAL) controla el acceso a la memoria y expone la memoria de pantalla a la CPU redirigiendo los accesos a la memoria a las ubicaciones de memoria apropiadas. Cuando el modo de sombra está habilitado, el chip PAL supervisa las direcciones de las instrucciones obtenidas por la CPU, y cuando dichas instrucciones se han obtenido de un rango de memoria de 0xA000 a 0xAFFF o de 0xC000 a 0xDFFF , se consideran parte de los controladores VDU que pueden acceder a la memoria de pantalla. [ 4 ]
En consecuencia, todos los accesos a memoria realizados por instrucciones obtenidas de estas regiones del controlador VDU que luego acceden a memoria en el rango 0x3000 a 0x7FFF se consideran accesos a la memoria de pantalla, y el chip PAL activa una señal para seleccionar el banco de memoria "en sombra" de 20 KB para dichas instrucciones, de modo que puedan leer o escribir en la pantalla. Todos los demás accesos a RAM mientras se está en modo sombra se dirigen a una región contigua de RAM desde 0x0000 a 0x7FFF (si está expuesta) que no aloja la memoria de pantalla. Mientras tanto, en modo no sombra o "normal", esta misma región contigua sí aloja la memoria de pantalla, como es la convención en la arquitectura tradicional de BBC Micro, y la memoria en sombra no es accesible. [ 4 ]
Memoria RAM adicional
El modelo B+ proporciona 32 KB de RAM adicional, de los cuales 20 KB se utilizan para la memoria de pantalla. Los 12 KB restantes pueden estar disponibles en la región de memoria asociada con la RAM lateral (de 0x8000 a 0xAFFF ), pero el sistema operativo no reconoce las aplicaciones instaladas en esta memoria con la misma precisión que lo haría con la RAM lateral convencional. [ 5 ] Esta "RAM privada" puede controlarse de forma independiente y, dado que parte de ella coincide con las regiones asociadas con los controladores VDU, proporciona una "función clave" para juegos u otras aplicaciones que deseen escribir directamente en la memoria de pantalla en modo de sombra, utilizando sus propias rutinas rápidas en lugar de las rutinas más generales, pero más lentas, del sistema operativo. [ 6 ]
Las expansiones posteriores para el modelo B de la BBC también aumentaron la RAM de sombra con RAM adicional que podía utilizarse para otros fines. Por ejemplo, el producto Aries-B32 permitía combinaciones de RAM de sombra/lateral de 20 KB/12 KB y 16 KB/16 KB, o el uso de la RAM de 32 KB como dos bancos de RAM lateral. [ 7 ]
La placa Slogger Master RAM ofrecía una solución de 32 K de RAM para el Acorn Electron junto con una mejora de "modo turbo". [ 3 ] La RAM adicional proporcionada en esta solución era expuesta como un búfer de impresión por la ROM del sistema operativo de reemplazo de Slogger, pero exponía esta RAM en la base del mapa de memoria (de 0x0000 a 0x2FFF ), lo que permitía la funcionalidad turbo (acceso a memoria acelerado e independiente dentro de esa región inferior) en modo sombra. De hecho, toda la RAM proporcionada por la placa Master RAM era "RAM rápida", a la que accedía la CPU a 2 MHz. [ 8 ]
Implementación maestra de la BBC
A diferencia de las tarjetas de expansión para sistemas anteriores, la implementación de la memoria RAM de sombra en BBC Master permite seleccionar entre la memoria de sombra y la memoria principal para usarla como memoria de pantalla, lo cual se realiza mediante el Registro de Control de Acceso. [ 9 ] Al alternar entre la memoria principal y la de sombra en fotogramas alternos, se podía usar vídeo con doble búfer. Acorn proporcionó un programa de demostración en BASIC que mostraba una animación de nubes desplazándose con y sin doble búfer. El videojuego Firetrack también usaría doble búfer si la memoria RAM de sombra estuviera presente.
En el BBC Master (y también en el BBC Model B+ [ 10 ] ), la memoria RAM en la sombra se activa configurando el bit más significativo del número de modo de memoria. Por ejemplo, para usar el modo 1 con la memoria RAM en la sombra habilitada, se selecciona el modo 129 (128 combinado con 1).
Otra diferencia significativa entre la implementación de RAM de sombra del Master y las implementaciones anteriores que también ofrecían 32 KB de RAM de sombra es la asignación de los 12 KB adicionales más allá de los 20 KB que ocultan la memoria de pantalla. En lugar de que esta memoria ocupe una sola región de 0x8000 a 0xAFFF en el espacio de RAM lateral, como ocurre con el producto Aries-B32 y el BBC Model B+, ocupa dos regiones en el Master como "RAM privada": una región de 4 KB de 0x8000 a 0x8FFF que contiene definiciones de teclas de función , espacio de trabajo para el sistema operativo y definiciones de caracteres y fuentes; una región de 8 KB de 0xC000 a 0xDFFF que contiene ROM paginada (lateral) y espacio de trabajo del sistema operativo. De este modo, el Master pudo admitir la redefinición del conjunto de caracteres y asignar memoria a los sistemas de archivos sin que se redujera la cantidad de RAM disponible para el usuario. [ 11 ]
Disputa de patentes
Surgió una disputa entre los diseñadores de la placa de memoria RAM Aries-B20 (Aries Computers Limited) y otras dos empresas que ofrecían productos similares, Raven Micro Products y Watford Electronics , por la supuesta infracción de la patente GB2137382A, que describía las técnicas empleadas en el diseño de la placa Aries-B20. [ 12 ] Los productos involucrados fueron la Raven Micro Products (Raven-20) y la Watford Electronics (placa de expansión de RAM de 32 KB). Finalmente, en 1986, Watford Electronics adquirió Aries Computers en una operación multimillonaria que incluía las patentes en cuestión, y posteriormente Watford vendió los productos de Aries junto con los suyos propios. [ 13 ]
Referencias
- 1 2 "Un aumento de 20K de RAM para el 'B' con un sistema de paginación único" . Acorn User . Abril de 1984. pág. 162. Recuperado el 29 de agosto de 2020 .
- ↑ "Microcámara BBC de 52k" . Usuario de Acorn . Enero de 1984. pág. 10. Consultado el 10 de octubre de 2020 .
- 1 2 Emblem, Bernard (abril de 1987). "Slogging it out" . Acorn User . págs. 146–147 . Recuperado el 29 de agosto de 2020 .
- 1 2 Watters, C.; Wilkins, J. (7 de enero de 1987). Manual de servicio de ACW . Acorn Computers Limited. págs. 40–45 , 76–77 . Recuperado el 23 de marzo de 2022 .
- ↑ Smith, Bruce (julio de 1985). "Calificación B+" . Acorn User . págs. 160–161 . Recuperado el 18 de octubre de 2020 .
- ↑ Moxon, Mark (2025). "Información técnica para BBC Master Elite en BBC Micro B+" . Elite en el 6502. Recuperado el 10 de agosto de 2025 .
- ↑ Expansión de RAM Aries-B32 de 32K para el microordenador BBC Modelo B (PDF) . Aries Computers. pág. 6. Consultado el 29 de agosto de 2020 .
- ↑ La placa maestra de RAM . Slogger.
- ↑ Manual de referencia de la serie maestra del sistema de microcomputadoras BBC, parte 1 (PDF) . Acorn Computers Limited. 1986. págs. F.2–3 . Consultado el 30 de agosto de 2020 .
- ↑ "Se revela la clasificación B+ de la BBC" . Usuario de Acorn . Junio de 1985. págs. 7, 11. Consultado el 30 de agosto de 2020 .
- ↑ Smith, Bruce (marzo de 1986). "Obra maestra" . Acorn User . págs. 73–77 . Recuperado el 19 de octubre de 2020 .
- ↑ "Conflicto de patentes sobre tableros" . Acorn User . Diciembre de 1984. pág. 16. Consultado el 29 de agosto de 2020 .
- ↑ "Aries adquirido" . Usuario de Acorn . Julio de 1986. pág. 9. Consultado el 3 de septiembre de 2020 .
- Memoria de computadora
- Computadoras Acorn
- Gestión de la memoria