La unidad de expansión de RAM Commodore (REU) es una gama de complementos de RAM externos.
En el momento de la introducción del ordenador doméstico Commodore 128 , se anunciaron dos REU para ese modelo: el REU 1700 (128 KB ) y el REU 1750 ( 512 KB ). Más tarde, Commodore presentó un tercer modelo, para su modelo Commodore 64 : el 1764 ( 256 KB ) [1]
La necesidad de la REU surgió cuando la dirección de Commodore decidió no utilizar la versión final de la unidad de gestión de memoria (MMU) personalizada, que limitaba el tamaño de la memoria a pesar de que en un principio se había hablado de un mapa de memoria más grande. Los ingenieros que viajaban al Consumer Electronics Show (CES) de 1985 se encontraron con folletos y vallas publicitarias que anunciaban un tamaño de memoria que ya no era compatible y, finalmente, la alta dirección preguntó dónde se conectaría la memoria adicional (hasta 512 KB ).
En el momento de la feria CES de 1985 en Chicago, los ingenieros pudieron mostrar un globo terráqueo giratorio como demostración del acceso directo a memoria (DMA) de las nuevas unidades REU.
El hardware REU fue diseñado por Frank Palia y el circuito integrado (IC) del controlador de expansión de RAM (REC) fue diseñado por Victor Andrade. Fred Bowen y Terry Ryan adaptaron el KERNAL y el BASIC del C128 para que admitieran el REU de forma nativa y Hedley Davis escribió la demostración del globo giratorio, que fue una impresionante muestra de animación a mediados de los años 80.
Aunque el C128 podía acceder a más de 64 KB de RAM mediante conmutación de bancos , a la memoria dentro de la REU solo se podía acceder mediante transferencias de memoria (ALMACENAMIENTO/CARGA/INTERCAMBIO/COMPARACIÓN) entre la memoria principal y la memoria de la REU. Además, el BASIC 7.0 integrado del C128 tenía tres instrucciones, STASH
, FETCH
, y SWAP
, para almacenar y recuperar datos de la REU.
Oficialmente, solo los modelos 1700 y 1750 eran compatibles con el C128. El modelo de 256 KB , el 1764, se lanzó para el C64 al mismo tiempo. Solo había pequeñas diferencias entre los tres modelos. La fuente de alimentación original del C64 no podía soportar la carga adicional que presentaba el 1764, por lo que se incluyó una fuente de alimentación C64 de 2,5 amperios.
El 1700 utiliza dieciséis circuitos integrados DRAM 4164 64kx1 , el 1764 tiene ocho DRAM 41256 256kx1 y el 1750 tiene dieciséis DRAM 41256.
En la práctica, la diferencia entre el 1764 y las unidades anteriores tuvo poco efecto en la compatibilidad, y la gente utilizó los 1700 y 1750 con el C64 con éxito, y los 1764 con el C128 con éxito, aunque la fuente de alimentación de serie del C64 era inadecuada para manejar de forma fiable la carga de energía de cualquiera de ellos. Algunos distribuidores desmantelaron el 1764 y la fuente de alimentación para vender la fuente de alimentación a los usuarios del C64 y/o actualizar el 1764 a 512 KB .
El modelo REU 1750 se puede modificar para admitir hasta 2 MB de memoria mediante la instalación de 2 circuitos integrados adicionales para la conmutación de bancos. Solo hay una fuente de incompatibilidad de software en esta modificación: el software que no establece los bits en $DF06 con el mismo valor en todo momento, o establece los bits en un banco de 512 kb que aún no está instalado, no funcionará. [2]
A finales de los años 80, había escasez de DRAM, por lo que las 1750 eran escasas y caras. Sin embargo, era relativamente fácil actualizar una 1700 o una 1764 a 512 KB . Varias empresas lo hicieron comercialmente, ya sea vendiendo unidades actualizadas o actualizando unidades suministradas por los clientes.
A principios de la década de 1990, aparecieron en varios servicios en línea esquemas de modificación DIY para aumentar la capacidad de una REU a un megabyte o más.
La placa de circuitos del siglo XVIII era idéntica a la del modelo 1750 y una pista marcada con J1 indicaba el tamaño de los chips utilizados. En el modelo 1750 y el 1764, esta pista estaba cortada.
Los modelos 1700 y 1750 tenían una resistencia en la posición R4 que, según el ingeniero de Commodore Fred Bowen, compensaba las sutiles diferencias de sincronización en el puerto de expansión del C64 y el C128. El 1764 carecía de esa resistencia. Bowen y otros ingenieros de CBM recomendaron no utilizar un 1764 con un C128 a menos que se añadiera la resistencia, o un 1700/1750 con un C64 a menos que se quitara la resistencia.
Fue posible verificar la presencia de un 1750 leyendo el bit 4 de la dirección de memoria , que era 1 en un 1750 y 0 en un 1700 o 1764. Sin embargo, este procedimiento no distinguiría entre un 1700 y un 1764. Para resolver esto, los programadores escribieron y luego leyeron la RAM del REU para averiguar la cantidad de memoria instalada.$DF00
Un pequeño porcentaje del software hizo uso de los REU. Al igual que otros productos complementarios de Commodore , su base instalada relativamente pequeña en relación con la enorme cantidad de C64 y C128 hizo que los desarrolladores de software dudaran en invertir mucho tiempo y esfuerzo en brindar soporte a los REU. La falta de soporte comercial mantuvo las ventas por debajo de lo que podrían haber sido de otra manera. Debido a su alta velocidad en relación con las unidades de disquete de Commodore o incluso los discos duros disponibles comercialmente, los REU recibieron soporte en la comunidad BBS de Commodore . Programas como Color64 requerían un REU para minimizar los tiempos de carga al cambiar entre secciones del BBS. [3]
Las REU venían con software para usar la memoria adicional como un disco RAM , pero la compatibilidad del disco RAM con el software comercial variaba, ya que algunos programas comerciales dependían en gran medida de varias peculiaridades de la unidad de disquete Commodore 1541. Además, muchos programas comerciales simplemente sobrescribían el espacio de memoria ocupado por el software del disco RAM.
El sistema operativo GEOS tenía soporte integrado para el REU como disco RAM , al igual que la versión de CP/M del C128 , y algunos programas de copia de discos usaban el REU para facilitar la copia a alta velocidad con una sola unidad de disco. GEOS, así como otros programas, incluso usaban el REU para transferencias rápidas de memoria dentro de la memoria principal de la máquina anfitriona almacenando un bloque de memoria en el REU y luego recuperándolo en otra ubicación. Con este método, solo los datos reales que se iban a transferir necesitaban viajar por el bus de datos de la máquina, a diferencia del método ordinario, que hacía que la CPU de la computadora hiciera la transferencia, gastando así al menos tres cuartas partes de la capacidad del bus en la búsqueda de instrucciones y solo una cuarta parte o menos en datos de carga útil.