I may have mentioned before, I'm kind of old. One measure of how old I am is the fact that I've actually programmed machines that used core memory. Real core memory. Little ferrite donuts on arrays of wires.
Some time ago, I remember running across this awesome blog post from "Wayne's Tinkering Page" which showed some experimentation in creating a driver for some surplus 1mm ferrite memory cores, effectively creating a single bit memory. I thought that was pretty darned cool. But what's even more amazing is what Ben North and Oliver Nash have done: create a 32 bit core memory shield for an Arduino.
And they have an excellent report on the project, which includes a reference to a different core memory technique which employed non-destructive reads.