EPROMSDB.com – The Vintage ROMs collection

While developing the code for the UCA’s EEPROM Adapter, I came up with an idea to automatically match the contents of a newly read EEPROM to a database, allowing the user to check if the data is already known – like identifying a specific BIOS version, for instance. This would enable the UCA companion application to detect specific EEPROM contents and also verify if the data is corrupted. Additionally, users could select the brand and model of a motherboard (or any other device), choose the file revision, and automatically load the correct binary to write to an actual EEPROM. A simplified process for retro-enthusiasts.

To accomplish this, I needed a database of RAW binaries along with their corresponding checksums. The Retro Web project generously provided their BIOS databases to kick-start the project. However, many files were stored in ZIPs, RARs, ZIPs in RARs or even EXEs with multiple layers of compression. My first task was to extract all the RAW binaries, analyze their contents using tools like bios-tools and binwalk, compute their MD5 and SHA256 checksums, and organize both the raw binaries and their original files into a clear directory structure.

I quickly put together a basic website to showcase the database, which you can check out here: https://epromsdb.com/. It’s as simple as it gets: no fancy JavaScript, cookies, or ads. This site is intended for advanced users looking specifically for RAW binaries. For a more user-friendly experience with retro information, I recommend visiting The Retro Web.

Eventually, this content will likely be merged with The Retro Web, but for now, it’s readily available. The “Bin” option lets you download the raw binary, while the “Raw” link gives you the original package (usually with the original flashing tool) untouched. I also wrote a simple API to link EPROMSDB.com with the UCA companion app.

For example, here’s a 1 MB (8 Mbits) BIOS from an Asus P5N-D written to a 27C801 EEPROM, successfully read and detected by the UCA. Once the EEPROM Write code is added, you’ll also be able to select a BIOS, download the corresponding binary from epromsdb.com, and write it seamlessly using the UCA!

This project is open-source. Both the database and the file collection behind EPROMDB.com (including future updates) are available for download here: https://github.com/x86fr/epromsdb. Hopefully, this will help keep older computers running and contribute to the digital preservation of vintage hardware.

 

The UCA now supports ROMs & (E)EPROMs

Preserving the content of ROM, EPROM, and EEPROM is crucial for maintaining and restoring vintage electronic devices like retro-computers. These memories hold critical software, firmware, or microcode to ensure device’s functionality. Over time, the data stored in these chips can degrade due to age or environmental factors like lightning condition or humidity, leading to the whole device to fail. Beyond functionality, the preservation of this data holds significant historical value. The software and firmware embedded in these chips are often unique, reflecting the technological knowledge and practices of their time. Safeguarding their data allow to maintain the historical authenticity of these devices and enable accurate emulation on modern systems.

To solve these problems, let’s introduce the EEPROM Adapter for the Universal Chip Analyzer! EEPROM reader/writer are often expensive, unreliable or complex to use with many jumpers or DIP switches. Thanks to the UCA modularity, a single adapter can support the vast majority of standard 8-bit read-only memory, including early ROM, EPROM, EEPROM, Flash, and more! As of today, it has been tested successfully in read mode with EPROM ranging from 16 Kbits (2716) to 8 Mbits (27C801) including EEPROM (28Cxxxx) and Flash (28Fxxxx & 29C/Fxxxx). The integrated voltage regulator of the UCA also allow to read modern 3.3V-only Flash chips like 29EExxxx series. 28 and 32-pin PLCCs can also be supported using cheap and widely available Socket adapters.

At this point, you might be wondering: what about writing? While reading data from these chips is relatively straightforward – simply a matter of toggling a 5V power line between the appropriate pins – writing is much more complex. Writing to (EE)PROMs requires generating and switching high voltages (ranging from 9V to 25V) across one or more “Write” pins. To address this, the UCA EEPROM adapter includes a digitally programmable DC-DC boost converter and a set of transistors to manage the high voltage switching to the necessary pins. Although the programmable converter and voltage switching have been successfully tested, the software for writing still needs to be developed. The ultimate goal is to create a jumper-free adapter capable of reading and writing to common (EE)PROMs without complicated configurations.

Another news is planned tomorrow to reveal some more details about the software behind the UCA EPROM reader.