An Emulator For OBP, The Spaceflight Computer From The 1960s

[David Given] frequently dives into retrocomputing, and we don’t just mean he refurbishes old computers. We mean things like creating a simulator and assembler for the OBP spaceflight computer, which was used in the OAO-3 Copernicus space telescope, pictured above. Far from being a niche and forgotten piece of technology, the On-Board Processor (OBP) was used in several spacecraft and succeeded by the Advanced On-board Processor (AOP), which in turn led to the NASA Standard Spaceflight Computer (NSSC-1), used in the Hubble Space Telescope. The OBP was also created entirely from NOR gates, which is pretty neat.

One thing [David] learned in the process is that while this vintage piece of design has its idiosyncrasies, in general, the architecture has many useful features and is pleasant to work with. It is a bit slow, however. It runs at a mere 250 kHz and many instructions take several cycles to complete.

Sample of the natural-language-looking programming syntax for the assembler. (Example from page 68 of the instruction set manual for the OBP.)

One curious thing about the original assembler was documentation showing it was intended to be programmed in a natural-language-looking syntax, of which an example is shown here. To process this, the assembler simply mapped key phrases to specific assembly instructions. As [David] points out, this is an idea that seems to come and go (and indeed the OBP’s successor AOP makes no mention whatsoever of it, so clearly it “went”.) Since a programmer must adhere to a very rigid syntax and structure anyway to make anything work, one might as well just skip dealing with it and write assembly instructions directly, which at least have the benefit of being utterly unambiguous.

We’re not sure who’s up to this level of detail, but embedded below is a video of [David] coding the assembler and OBP emulator, just in case anyone has both an insatiable vintage thirst and a spare eight-and-a-half hours. If you’d prefer just the files, check out the project’s GitHub repository.

9 thoughts on “An Emulator For OBP, The Spaceflight Computer From The 1960s

  1. I wish I had 8 hours to watch this all the way through. Having skimmed a bit, I’m super impressed by the presenter’s hold stuff in his head, and talk cogently about it as he codes. Very impressive and fascinating stuff.

  2. So the OBP was the first version, which was then overhauled to make the AOP (used in several other spacecraft), which was then overhauled _again_ to make the Nasa Standard Spaceflight Computer, or NSSC. It was the Hubble Space Telescope’s NSSC which caused the drama a few months ago and was the reason why I wrote this.

    If anyone has any reference material for the NSSC’s instruction set, I’d love to tackle that, and possibly do a compiler backend for it.

    1. I wonder if there is a way to bridge all the coding into one functional language. Like how a raspberry pi b1 can communicate with the pi 400. I know the language t8 Sam coding wise but there’s got to be a way to make a coding language that understands each overhaul of the system.

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.