Buy Magic Mushrooms
Magic Mushroom Gummies Best Amanita Muscaria Gummies

The Joy of Dumping

 Uncategorized  Add comments
Jun 232012
 

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.

IMG 0693

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.

EPROM minus label

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?

Dumping EPROMs

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?

POKE #10C12D,#10
4840 POKE ADRS1+#180000,0: CHANAT: !
4841 IF Y9 THEN GOSUB 4852 ALWAYS 4844
4852 WA=PEEK#C0C126
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!

 Posted by at 1:45 am

  20 Responses to “The Joy of Dumping”

Comments (18) Pingbacks (2)
  1. 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!

  2. 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…

  3. This should get into museums.

  4. 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.

  5. 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.

  6. Sooo… when are you gonna post the code and a schematic?

    • Hello
       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.

  7. Your slogan, “We learn, share, and make things” when will the sharing of code and schematics commence?

  8. 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.

  9. 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.

    Enjoy!

  10. Good one! How about EPROM with size of 64 MB? is it still doable?

  11. I had a lot of fun with this idea! http://i.imgur.com/94Ilftj.png – wallpaper dimensioned 🙂

Leave a Reply to Frigolit Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)