# Commodore REU

La RAM Expansión Unit (REU) es una gama de expansiones de RAM para los ordenadores domésticos Commodore 64 y 128. Fue anunciada al mismo tiempo que la C128. Las REU llegaron en tres modelos, inicialmente el 1700 (128 KB) y el 1750 (512 kB), y luego el 1764 (256 kB, para el C64).
La necesidad de la REU surgió cuando la administración de Commodore decidió no usar la versión final de la Unidad de administración de memoria (MMU) personalizada que luego limitó el tamaño de la memoria a pesar de la discusión inicial de un mapa de memoria más grande. Los ingenieros que viajaban al espectáculo CES de 1985 se enfrentaron con volantes y vallas publicitarias que anunciaban un tamaño de memoria que ya no era compatible y finalmente la alta gerencia preguntó dónde se conectaría la memoria adicional (hasta 512K).
En el momento de la exposición CES de 1985 en Chicago, los ingenieros pudieron mostrar un globo terráqueo girando como una demostración de Acceso directo a memoria (DMA) por las nuevas unidades REU.
El hardware REU fue diseñado por Frank Palia y el circuito integrado dedicado (IC) fue diseñado por Victor Andrade. Fred Bowen y Terry Ryan adaptaron el kernel y BASIC para acomodar el REU de forma nativa y Hedley Davis escribió la demo de spinning que fue una impresionante exhibición de animación a mediados de la década de 1980.

## Descripción del hardware

Aunque el C128 podía acceder a más de 64 kB de RAM a través de la conmutación de bancos de memoria, solo se podía acceder a la memoria dentro de la REU mediante transferencias de memoria (STORE/LOAD/SWAP/COMPARE) entre la memoria principal y la memoria REU, lo que proporciona un equivalente a una ventana de memoria pequeña (lenta). Además, el BASIC 7.0 incorporado del C128 tenía tres declaraciones, STASH, FETCH y SWAP, para almacenar y recuperar datos de REU.
Oficialmente, solo el 1700 y el 1750 fueron compatibles con el C128. El modelo de 256 kB (el 1764), fue lanzado para el C64 al mismo tiempo. Solo hubo diferencias menores entre los tres modelos. La unidad de fábrica no podía soportar el 1764 y agrupaba la unidad de fuente de alimentación C64 de 2,5 amperios, que soportaba la computadora y sus dispositivos y estaba definida por el nivel de necesidad que el dispositivo tenía de una fuente de energía regulada con suficiente RAM.
El 1700 utiliza dieciséis DRAM 4164 64kx1, mientras que el 1764 tiene ocho DRAM 41256 256kx1, y el 1750 tiene dieciséis DRAM 41256.
En la práctica, la diferencia entre las unidades 1764 y anteriores tuvo poco efecto en la compatibilidad, y las personas usaron 1700 y 1750 con éxito con el C64, y 1764 con éxito con el C128, aunque la fuente de alimentación del C64 era inadecuada para manejar de manera confiable la carga de energía de cualquiera de ellos. Algunos distribuidores extrajeron el 1764 y la fuente de alimentación para vender la fuente de alimentación a los usuarios de C64, y/o actualizar el 1764 a 512 kB .
A fines de la década de 1980, hubo una escasez de DRAM causada por la Administración Reagan que promulgó restricciones antidumping a los fabricantes japoneses, por lo tanto, la década de 1750 era rara y costosa. Sin embargo, fue relativamente fácil actualizar un 1700 o 1764 a 512 kB. Varias empresas hicieron esto comercialmente, ya sea vendiendo unidades mejoradas o mejorando unidades suministradas por el cliente.
A principios de la década de 1990, aparecieron esquemas de modificación de bricolaje para aumentar la capacidad de una REU a un megabyte o más en varios servicios en línea.

## Diferencias en los modelos

La placa de circuito del 1700 era idéntica a la del 1750, y un rastro marcado con J1 indicaba el tamaño de los chips utilizados. En 1750 y 1764, este rastro fue cortado.
El 1700 y el 1750 tenían una resistencia en la posición R4 que, según el ingeniero de Commodore Fred Bowen, compensaba las sutiles diferencias en el puerto de expansión en el C64 y el C128. El 1764 carecía de esa resistencia. Bowen y otros ingenieros de CBM recomendaron no usar un 1764 con un C128 a menos que se agregara 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 $DF00, que era 1 en un 1750 y 0 en un 1700 o 1764. Sin embargo, dado que este procedimiento no distinguiría entre un 1700 y un 1764, muchos programadores escribieron en la RAM para averiguar la cantidad de memoria instalada.

## Soporte de software para REU

Muy poco software hizo uso de la REU. Al igual que otros productos complementarios de Commodore, su base instalada relativamente pequeña en relación con la gran cantidad de C64 hizo que los desarrolladores de software dudaran en invertir mucho tiempo y esfuerzo en apoyarlo, y la falta de soporte comercial mantuvo las ventas más bajas de lo que podrían haber sido. REUs vieron apoyo en la comunidad Commodore BBS. Los programas como Color64 requerían una REU para minimizar los tiempos de carga al cambiar entre secciones del BBS.
Las REU venían con software para utilizar la memoria extra como un disco RAM, pero la compatibilidad del disco RAM con el software comercial variaba de trabajar a no funcionar, ya que algunos softwares 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 había incorporado soporte para REU como un disco RAM, al igual que la versión C128 de CP/M, y algunos programas de copia de disco usaron el REU para facilitar la copia a alta velocidad con una sola unidad de disco. GEOS y otros programas incluso usaron la REU para transferencias rápidas de memoria dentro de la memoria principal de la máquina host almacenando un bloque de memoria en la REU y luego volviéndolo a buscar a otra ubicación. Usando este método, sólo los datos que realmente debían ser transferidos pasaban por el bus de datos — a diferencia del método ordinario, en el que la CPU se encarga de hacer la transferencia, tanto el gasto por lo menos tres cuartas partes de la capacidad de los buses en ciclos de instrucción y sólo uno cuarto o menos en datos de carga útil.
Debido a su alta velocidad en relación con las unidades de disquete de Commodore o incluso los discos duros disponibles comercialmente, la REU también se hizo popular entre los operadores de BBS.