Two of the most famous pieces of space flight software are at opposite ends of many spectra: one is for actual real space-flight, one is a simulation; one is safety/life critical, one is a game; one has a wealth of in-line comments and one has absolutely none!
Any self-respecting geek over a certain age will know about Elite. A game released for the BBC Micro computer in 1984, it quickly became one of the definitive releases for the platform. The game’s developers, Ian Bell & David Braben squeezed so much into the capabilities of the Beeb’s 6502-based 8 bit architecture that it illustrated what was possible and inspired a whole generation of computer programmers.
The two extremes of commenting style can be seen in the released source code – NASA initially made source code available in 2003 and in 2016 it was transcribed & uploaded to github, Ian Bell released the Elite source on his personal website in 2014.
NASA’s code for the Apollo Guidance Computer (AGC) used in the Lunar Module (LM) has a wealth of humourous & sarcastic comments and some apt procedure names like “BURN-BABY-BURN–MASTER_IGNITION_ROUTINE” 🙂
…sightly different to the beautifully laid out and (humorously) commented NASA code! Moxon exquisitely details the process he went through, building on the work of other avid BBC-assembler/Elite experts Paul Brink, Kieran Connell & Angus Duggan to get to his detailed annotated version.
The BBC Micro, based on the 8-bit 6502 CPU, was fairly similar in performance to the AGC, maybe slightly underpowered in comparison.
|AGC||BBC Model B|
|Bus Clock (MHz)||1.024||1|
|ROM (KB)||2 x 36||32|
|RAM (KB)||2 x 2||32|
|Architecture (bits)||16 (15+parity)||8|