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?

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!