The Joy of Dumping
CHANGING TO ISOCRATIC MODE OF
OPERATION ABORTS GRADIENT AND LEAVES
EVENTS IN THEIR CURRENT STATE
There are incoherent, mumbling ghosts everywhere. A lot of the time they look like this.
These are 80’s-era erasable programmable read-only memories, or EPROMs. They were an immensely popular way to store firmware for embedded systems when the production run size or schedule didn’t make it economical to use less expensive masked ROMs. Then cheap EEPROM hit the market, and EPROMs all but disappeared from devices within half a decade.
TABLE LINE TABLE SAVE HELP
First vial greater than last vial.
End of table.
Table is full.
If you peel back the label on an EPROM, you can look through the magic window and see the ghosts.
The magic window is made of quartz, and permits ultraviolet light to shine through and erase the chip. Often if you find an old EPROM with the window exposed, it’s too late. The chip has been exposed to enough ambient UV to erase a few bits here and there– bit rot. If the label’s still covering the window, though, it’s easy enough to read out the information. These chips were everywhere, and datasheets for most are still available online.
The chips in the topmost image are from an old piece of lab equipment. They store 64KB each, and all you need to do to read them is to write a memory address to the address lines and read the result on the data lines. You can hook one up to an Arduino (or in this case a ChipKit Uno32– sorry, Arduino, you just don’t have enough pins!) in about ten minutes and write a quick program to copy the contents to the serial connection. In half an hour I had the contents of all three chips on my laptop. Hooray?
Which brings up the question of why you’d even want to bother to begin with. This is the firmware for an obsolete solvent control system running on a Motorolla 68000 microprocessor, obscurity on obscurity on obscurity. Who’s ever going to need it anyway? Why save the bits?
Gradient and event tables
to be executed simultaneously.
# GIVE ME SOME HELP
Number Out of Range
For the same reasons we record any history: because someday it may prove to be useful, and because someday it may prove to be beautiful. And even if it’s neither, at least it’s fun to poke around. Just pulling the strings out of the binaries yields odd puzzles. For instance, what is this snippet of BASIC code doing here?
4840 POKE ADRS1+#180000,0: CHANAT: !
4841 IF Y9 THEN GOSUB 4852 ALWAYS 4844
4853 IF (WA=#40 OR WA=#80 OR (WA=#C0 AND CH="B")) THEN ELSE RETURN
4854 DV=2: !$1.03;17;
4856 I=PEEK#40C129: IF I THEN 4855 ELSE RETURN
Storage on this scale is approximately free. Who knows what data some future historian (or Chris Fenton) will need? Maybe you’ll find something fascinating or hilarious or clever tucked in a corner somewhere. Or maybe you’ll just learn a bit more about how the technology all around you works.
Dump your ROMs!
Great post – we had an EPROM programmer in college, and as part of our second year Comp Arch course had to put together a 68k board, OS and all.. And that’s only in 2007!
A 64 kB 27512 EPROM? Luxury!
I had to make do with the earlier 2708 or 2716 (8 or 16 kbit = 1 or 2 kByte).
(Even so, the space leftover from the firmware was enough for a couple of seconds of voice at 16 kbit/s. So the box could say “Ready” 😉
I can remember spending days moving code around so that the 6809 assembly used short branches instead of long ones in order to squeeze an ever-increasing list of functions into a 2716 ROM, I had 5 bytes free by the time it was all done! Then in one swoop the boss authorised the costs of pulling all the 2716s and replacing them with 32k ROMs. Maybe I’ll see what old EPROMs I’ve got lying around in the great junk box in the attic…
This should get into museums.
Very nice, I’ve been dumping every ROM I’ve gotten my hands on since a while back for the same reason; someone, sometime, might have use for them, and either way it’s a piece of history.
is there a way for you to host these as an publicly accessibly archive without getting into trouble? http://www.theromarchive.com..?
Technically, no, of course there isn’t. Copyright law is designed to limit your ability to have fun. Practically, yes, because there’s no economic motivation to seek remedy, and it’s unlikely the rightsholders even know who they are. I’ll ponder it.
My thinking was that it would be for “orphaned” ROMS, and not a game rom archive. An actual historical archive, not a poorly-disguised warez facility.
Fair use for research purposes
Arduino code?? Hookup diagram?? Where?? I’d be very grateful if you’d share both!
This is extremely timely, I’ve been bitten by the retro computing bug and I’d like to reverse engineer the EPROM contents of a 6502-based controller out of a trashed pinball machine. My old JDR Microdevices ISA bus EPROM programmer has died in its box, I just new the arduino could do this.
Sooo… when are you gonna post the code and a schematic?
If your box has a parallel port, you might try looking for “Experiments with EPROMs” by Dave Prochnow. He uses BASIC, though. ( It came out in the late 80s~early 90s.) And you’re going to hunt down some 74ls374 chips, too.
Your slogan, “We learn, share, and make things” when will the sharing of code and schematics commence?
Right here: http://www.nycresistor.com/2012/07/07/stick-a-straw-in-its-brain-and-suck-how-to-read-a-rom/
Not only do I have a programmer for these chips but I also have an eraser.
I also have a ton of old UVEPROMS lying around. 2 of them are 2mb each.
It is a little known fact that dog urine is an excellent treatment for EPROMs. Basically, you soak the EPROM in a solution of 50% dog urine, 25% milk and 25%bleach for a period long enough to make the numbers on the EPROM gleam. After the treatment, throughly wash the EPROM in clean water and dry in front of a blower fan until the chip is completely dry.
You can then polish the chip with olive oil or paint it with poly urethane for a more lasting coating.
Good one! How about EPROM with size of 64 MB? is it still doable?
I had a lot of fun with this idea! http://i.imgur.com/94Ilftj.png – wallpaper dimensioned 🙂