Taking A Dump From Some Old Hardware

NYC Resistor shows you how to have some fun with electronics from the junk bin. Their post called The Joy of Dumping encourages you to look around for older memory chips and see what they’ve been hiding away for all these years.

The targets of their hunt are EPROM chips. Note the single ‘E’. These are Erasable Programmable Read-Only Memory chips, and predate EEPROM which adds “Electrically” to the beginning of the acronym.  You used to use a UV light source to erase the older types of memory. In fact we’ve seen some EPROM erasers as projects from time to time. These shouldn’t be too hard to find as they were prevalent as cheap storage back in the 1980’s.

If the quartz window on the top of the chips has been shielded from ambient UV light, you should still be able to read them and it’s as easy as hooking up your Arduino. Is it useful? Not really, but it still can be neat to interface with what might otherwise never make its way back out of the junk box.

30 thoughts on “Taking A Dump From Some Old Hardware

  1. If you don’t have enough pins or want to avoid a mess of wires, an alternative is to use a simple binary counter chip (say a cmos 4020, 4040 or 4060) and connects its output to the EPROM address pins. This way you only need a clock, reset and 8 pins for data.

  2. I once used a bank of EPROMs to hold and playback audio files for an entertaining car audio PA system. Had snippets from the 80s Batman movies, Raiding Arizona, Terminator, Princess Bride, etc. Fun stuff.. :)


    1. From the EPROMS I’ve had over the years, MAME emulating modems PC interface cards, printers and various bits of home machinery, probably wouldn’t be very interesting / worthwhile.

      1. You’d be surprised, Max. Everyone seems to be really in the dark as to the latest goings-on with MESS (the partner project to MAME, which concentrates on consoles and computers).

        By virtue of the fact that MESS emulates computers PROPERLY, by emulating the additional CPUs or hardware that existed on peripheral cards for computers like Macs, PCs and the original Apple II, ROM dumps from these peripheral cards are actually immensely useful.

        Right now, even, MESS’s ‘020-based Mac emulation is good enough that you can emulate a Macintosh II kitted out with an emulated NuBus-based Asante ethernet card and multiple (multi-head, even!) NuBus-based video cards. Right now, MESS’s Apple II emulation is good enough that you can select what device you want to plug into a given expansion slot, and in fact it emulates a number of Apple II peripheral cards that no other emulators do, simply by leveraging existing CPU cores that would have taken weeks to bolt onto another emulator. Right now, MESS’s PC emulation lets you select what combination of ISA cards you want plugged in, all emulated properly using actual ROM dumps.

        So, yes, actually, having ROM dumps from all of those peripheral cards would be very good indeed, and all of us on the MESS team would be very interested in seeing them dumped, and we consider it to be very worthwhile.

        Seeing as you don’t work on MESS and I do, why don’t you leave the judgment calls as to how interesting or useful the ROM dumps would be up to us?

  3. One thing all hackers should own is a old skool (e)eprom reader writer.

    Most older cars and some newer ones still use eproms as the programming for the ECM.

    Nothing is as uber 1337 as car hacking.

    1. I’ve got a half dozen of these, including an old school 1702 programmer that fits into the S100 bus. The very second that 2816s came out (2k x8 eeprom), I added a switch to disable write, started programming them in place and never looked back.
      Didn’t like flash ROM so much; ee was easy.

      My favorite invention was the serial eeprom – I put headers on my pcbs near the part and started programming them in-circuit, and later, updated them while the systems ran. Very nice.

      I missed the opportunity to take a walk while the eproms burned and cooked under UV, though.

      It was like long compiles – it used to take minutes, and then people got increasingly fancy with linkers and JIT, and took a lot of the leisure out of working with such things.

      And emulators/simulators – it’s like cheating!

      1. Back when I did HC11 development I practiced FIFO EPROM development for my code/compile/burn/debug cycles using a DIP tube of 10-20 EPROMs on my desk. Every cycle pop the old ROM out of the target, put it in the eraser tray, pull a fresh one from the tube and put it back in the target. Every time the tray fills up, just crank the dial on the eraser and when it finishes load them into the end of the tube.

    2. Weren’t there some large number of families of (e)eproms which each requires their own reader/writers? If so, to be useful for indeterminate future projects wouldn’t you need a whole shelf full of programmers? Or were they more generic than that? If so can you recommend what programmers one should get?

      Or would it be easier to just emulate the rom with one’s favorite micro?

      That’s a project I have had in mind for a while. I have a bunch of old 2-way radios with eeproms. My intention is to eventually replace the eeproms with micros and fool these old X number of fixed channel radios into operating like they have full VFOs.

      My plan was to connect my own buttons to the micro and let the micro trigger the up/down buttons from the original circuitry. Then the radio’s CPU should ask the ‘eeprom’ which is actually my micro for the info of some channel. Instead my micro just feeds the next frequency I want it to go to.

      1. IIRC most EPROM programmers could handle 1-5+ of the common variants, depending on how large the ZIF socket was and how much money you wanted to spend. Then there were of course a host of single-target programmers, either for lower cost or less common chips. I think the same was more or less true for EEPROM units with sockets.

        I’d be surprised if modern EPROM programmers (there must be some, right?) couldn’t handle a wider range of chip families.

      2. I have an eprom/eeprom/pal/gal/microcontroller programer on my on of my benches here at work that can read or write to just about everything you’ll come across, and the eproms I used are older vintage due to the systems they belong to. there are models that can handle even more than that. but mine was financed by work and actually wasn’t too pricey (~$1000 US) given theres a rohde & schwarz spec-an that cost more that my house sitting right about that.

  4. These old EPROMs had the advantage of long life. They were all in ceramic packages with that quartz window. This meant they were hermetically sealed like mil-spec parts, and don’t go bad from slow water ingress.

    The data in a 30-year-old EPROM is also likely to still be good (as long as the window is covered so UV won’t get in). I have serious doubts that the data in any modern nonvolatile memories will hold up that long!

  5. This morning I commented at the end of the article decrying the lack of Arduino code and hookup diagram, begging for same. I have some EEPROMs I’d like to have a look into as part of my current “retrocomputing” projects. (My old EPROM programmer/reader croaked)

    Looks like they’re probably not gonna deliver the goods, so its time to do it on my own, in my very limited free time. If anybody else gets the wherewithal to figure this out before I do, please let me know!

  6. Wow. I actually expected the comments to be filled with complaints about how this article was completely absent on any actual DETAILS of the hack and how that could make it here on HaD as a post.

    Not that this is especially complicated, but I thought there was a general rule here not to post projects that don’t have detail and documentation for others to follow?

    This one doesn’t even pass any “hacker” test I can think of. WTH, Hackaday?

  7. Justice99, agreed!! I’m going to take it upon myself to troll NYC resistor until the author gives up the details. I mean c’mon, why do a “look what I can do!” post with no meat?

    We as hackers need to think of ourselves as amateur scientists. Whats a scientist do when the experiment is over? PUBLISH. “Here’s what I did, here’s how I did it, anyone who’s interested please try and repeat the experiment, and lets compare results.”

    Sure, this particular instance is sort of a “basic skills” kinda thing. However, the higher we bring our “basic” skill set, the greater the awesomeness we’ll be able to achieve.

    I would implore the editors of HaD to call posts like this right on the carpet, asking “WHERE’S THE BEEF???” Criticism does not equal trolling, especially when its constructive.

  8. I don’t see any indication that anyone from NYC Resistor asked HaD to link to the original post.

    Even if so, NYC Resistor doesn’t have to comply with your personal definition of what makes a good HaD post. Not everyone considers it worthwhile to write up every last detail.

    Same goes with reasons for reading. I find it more often useful to read a short description of an experiment like this, and either email the author about specific points, or figure it out myself.

    Besides… this isn’t particularly difficult, the poster mentions the basic setup (write an address, read the data) and most of the fine detail is already available in easily accessible datasheets.

    There’s enough info for a lot of HaD readers to do this themselves, so someone needs to draw a line. Many scientific papers elide substantial details of *exactly* how experiments were performed, whether for publication space or assumptions about their readership.

  9. Agreed, but some of us have day jobs, are sleep-deprived, or are lazy. Or combinations of all three.

    I could offer several crass analogies to what I think that post with pretty pictures and no concrete details equates to, but I’ll leave that to others.

    “There’s enough info for a lot of HaD readers to do this themselves, so someone needs to draw a line.”

    Get out your pencil, buddy! ;) I need to get one of these kludges working, would be great if someone else started the leg work.

  10. really? people are begging for the software?

    maybe you all should think for one second about how simple this is.

    here is the software, MINUS the userinterface:
    NOTE: incorrect syntax i KNOW!

    ***** CODE: *****
    read(ADDRESS, DATA):
    if (address & 1 == 1) digitalwrite A0 HIGH;} else digitalwrite A0 LOW;}
    if (address & 2 == 1) digitalwrite A0 HIGH;else digitalwrite A1 LOW;}
    if (address & 4 == 1) digitalwrite A0 HIGH;} else digitalwrite A2 LOW;
    digitalwrite CE, HIGH;
    DATA = DATA + datainput0 * 1;
    DATA = DATA + datainput1 * 2;
    DATA = DATA + datainput2 * 4;
    digitalwrite CE, LOW;
    serialwrite(DATA, DEC);
    DATA = 0;

    1. i made typos too, it should read A0…else…A0 then A1…else…A1 ect

      the user interface is MUCH more code then the actual stuff to read the ROM/EPROM/EEPROM and consists of if serial.avali then serial.read; if serial.read == R then readsingle(); if serial.read == r then readall(); … ect

  11. Cool, thanks!

    The heck with a user interface, we can hard-code the eprom type.

    Next, how would be the best way to get the data into an intel-format bin file?

    I suppose just kicking the extracted bytes out to stdout would be ok, but the file would be luxury.

    Lastly, how would we go about implementing a read checksum?

    Hopefully I just find a cheap working old-school EPROM burner at TRW swapmeet this weekend and don’t have to give this much more thought. ;)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.