[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.
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.
Little known fact, Señor Given (along with John Glen) where the primary inspirations for Clint Eastwood’s character in the movie Space Cowboys.
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.
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.
You could alway look here: https://hackaday.io/project/180467-nasa-standard-spacecraft-computer-1-nssc-1
They’ve got some high-level stuff (which is super interesting, BTW, I’d recommend reading the document on the development of the NSSC-1), but nothing on the actual instruction set. _Someone_, somewhere, must know…
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.
“GOTO JAIL”? Nice.
was there also
“DO NOT COLLECT £200”?
JAIL
Just Another Idle Loop?
Jump And Interrupt Link?
Jettison An Important Launcher?
Jam An Instruction Later?
Jeepers! All Is Lost!
The Apollo guidance computer used NOR gates.