using SIMM RAM modules with Arduino for extra RAM

Hi,
This is about a little library to interface 30-pin SIMM RAM modules using atmega328p on Arduino.
GitHub - zrafa/30pin-simm-ram-arduino: arduino library to interface with 30-pin simm ram.
It gives to Arduino projects extra RAM to store and restore dynamic data in sketches.

It was inspired in the great hack of "Linux on 8bit ATMEGA168", by
Dmitry Grinberg. But, the work of Dmitry is not easy to use as it is. In fact, it does
not work with Arduino, for several reasons. atmega328p and atmega168 are different.
Arduino has several less pins than Dmitry's project, and Arduino UNO is slower
(just 16Mhz). Just to mention some of them.

So it was a nightmare to find the proper timings to initialize the
SIMM RAM properly, and refresh it. After reading the old RAM chip
datasheets and souce code everywhere, we were able to use SIMM RAM
modules with Arduinos.
The github code is the release code, so others can use it easily, and
it is free software (under GPL v2).

SIMM RAMs were used in AT (286), 386, 486, Macintosh Plus, Macintosh
II, Quadra, Atari STE and Wang VS systems, so It is still ok to find
spare 30-bit SIMM RAM around, so we find useful to have learnt how to
operate them with Arduino. Maybe this could be useful for others, that
is why I am sharing here this little project.

I attach just few pics about how to connect the SIMM RAM pins with your Arduino.
And you can get all the information at the beta githup repo code :
GitHub - zrafa/30pin-simm-ram-arduino: arduino library to interface with 30-pin simm ram.

We also added a link for this code at : Arduino Playground - InterfacingWithHardware

Have fun!,
Rafa

I know it's an old thread but I'm new to the forum and RAMs interfacing. I found this video Shift Registers and SRAM and Arduino - YouTube and I think you might like it! It uses shift registers to index all the address. I think you can even use multiplexers for this... nice project though!

is that 64 bytes of dynamic storage? you could add some toggle switches for some more banks of memory
serial.println("Please insert disk 2.. I mean flip switch on Address bus line 6 and press any key to continue")

I tried it.

  • Only Compile on 1.0.5 for me :
  • COMPILE: - Arduino 1.0.5 - OK

  • COMPILE: - Arduino 1.6.13 - vector_13 ERROR

  • COMPILE: - Arduino 1.8.2 - vector_13 ERROR