Dumping a ROM the very complicated way

This is a good read: “The hard way to recover the IBM 5100 Non-executable ROS”

2 Likes

That’s a splendid story!

1 Like

It turns out there’s a followup, or actually two. The first is an investigation and analysis of the dumped data:

The IBM 5100 portable computer came with some of its built-in programs stored in a read-only memory called the “non-executable ROS”. (ROS = “read-only storage”.) In contrast with the “executable ROS”, which supplies instructions to the 5100’s processor directly, the non-executable ROS is accessed using sequential I/O operations, a bit like a tape.
Most notably, the non-executable ROS holds the interactive interpreters for the APL and BASIC programming languages. These are not “native” 5100 programs but were expressed instead in System/370 mainframe and System/3 minicomputer machine code respectively. The 5100 runs emulator programs for those computers in order to host the interpreters, so perhaps it’s just as well that the non-executable ROS is non-executable.

And the second is Tom Stepleton proceeding to try to dump out the executable firmware from the IBM 5100… which being a Harvard kind of architecture isn’t readily able to read program memory…

The 5100’s design took advantage of existing hardware and software components at IBM. In particular, the APL and BASIC interpreters were not native 5100 programs—instead, they were modified versions of the interpreters IBM sold for their System/360 mainframe and System/3 midrange computers respectively. When a 5100 presents the APL workspace, it’s actually running a (limited) System/360 emulator software that hosts the interpreter. For BASIC, an analogous situation obtains where the 5100 emulates a System/3.
The 5100’s real processor is a 16-bit device called PALM, and of course this is the architecture that the emulators themselves are written for. (Trivia: PALM isn’t a microprocessor but a collection of ICs and gate arrays on a few separate circuit board modules.)

Objective:
Use elementary image processing and machine learning techniques to decode images of a computer screen showing hexadecimal digits. The data in these images are ROM contents from an interesting old computer.

Here’s the adventure.

2 Likes