One of the great advantages of modern technology is the ability to reproduce the behavior of old systems with a high degree of precision. Two classic and recurring examples are the Enigma machine and the Apollo navigation computer, but today we'll mention an even more extreme case. David Given, better known as Hjalfi on YouTube and Twitter, decided to create the simulator of a 1960s computer used in various space projects, and the most impressive part is that he shared his work in an eight-and-a-half-hour video…

Creating a Simulator for a 1960s Space Computer
Computer simulator

The OBP, short for On-Board Processor, was originally designed in 1968 and used in various space projects. One of the most important was the OAO-3 Copernicus telescope, the most successful of the entire OAO series (Orbiting Astronomical Observatory), with a mission that ran from August 1972 to February 1981.

David Given's Simulator

David Given, also known as Hjalfi, shared very interesting technical details about the OBP on his official page: 18 bits, Von Neumann architecture, data and code sharing the same address space, memory protection, DMA... in short, a very pleasant system to work with. Now, at a frequency of 250 KHz, the OBP has serious limitations in terms of speed, but David wasn't satisfied with a superficial analysis, and decided to create a simulator... from start to finish:

Your eyes don't deceive you: The video lasts eight and a half hours, and that's equivalent to three days of work. The introduction lasts five minutes, but the assembler spans over an hour, and the rest is focused on the simulator. One of the most interesting details about the assembler is that according to the original documentation, it had to be programmed using natural language. In reality, the assembler doesn't 'understand' words per se, but rather certain key phrases are associated with specific instructions.

Creating a Simulator for a 1960s Space Computer
An example from the official manual. Except for isolated details... it's English.

Programming in Natural Language

This proves that programming in natural language is something we've explored for decades, and it never fully gained traction. David explains that the English language is fundamentally ambiguous and context-dependent, while programming languages are the exact opposite. Perhaps the language is easy to read and interpret for us, but it's also easy for the assembler to end up confused. Faced with the possibility of errors, it's more comfortable for the programmer to eliminate any source of ambiguity and write the instructions directly.

For more information, visit the official site or read the article on Hackaday.