Assembly Code That Took America to the Moon Now Published On GitHub (qz.com)
An anonymous Slashdot reader writes:
"The code that took America to the moon was just published to GitHub, and it's like a 1960s time capsule," reports Quartz. Two lines of code include the comment "# TEMPORARY, I HOPE HOPE HOPE," and there's also a quote from Shakespeare's play Henry VI. In addition, the keyboard and display system program is named PINBALL_GAME_BUTTONS_AND_LIGHT, and "There's also code that appears to instruct an astronaut to 'crank the silly thing around.'"
A former NASA intern uploaded the thousands of lines of assembly code to GitHub, working from a 2003 transcription made from scans inherited by MIT from a Colorado airplane pilot, and developers are already using GitHub to submit funny issue tickets for the 40-year-old code -- for example, "Extension pack for picking up Matt Damon". Another issue complains that "A customer has had a fairly serious problem with stirring the cryogenic tanks with a circuit fault present." Because this issue succinctly describes the Apollo 13 mission in 1970, the issue has been marked "closed".
A former NASA intern uploaded the thousands of lines of assembly code to GitHub, working from a 2003 transcription made from scans inherited by MIT from a Colorado airplane pilot, and developers are already using GitHub to submit funny issue tickets for the 40-year-old code -- for example, "Extension pack for picking up Matt Damon". Another issue complains that "A customer has had a fairly serious problem with stirring the cryogenic tanks with a circuit fault present." Because this issue succinctly describes the Apollo 13 mission in 1970, the issue has been marked "closed".
I think This is the most amazing example of software being developed by a non-company ever.
Margaret Hamilton ran the show.
roswell db "...." ; contents redacted
mov cx, 16777215
mov di, offset mediabuf
mov si, offset roswell
cld
rep movsb
"Extension pack for picking up Matt Damon" is not a link real link
OMG facts!
Ah yes, the assembly programming language.
Commented code is good code.
What did they use to develop the software? And even more interesting how did they test it? The must have had some simulators, probably both software and hardware based?
4wdloop
Unfortunately, with the amount of coverage that this is getting in the geek sphere, the Dunning-Kruger Effect is in full force. So far, just today, I've seen:
- Someone trying to look into the code who had apparently never encountered a .s file before, and
- Some (judging by his name) Indian guy who had apparently never heard of the term "attitude" in relation to flight control, and submitted a pull request to change it to "altitude".
Idiots. Idiots everywhere.
If the first & second AC was the same and legitimate, he sure as hell has regretted not signing-in right about now!
Violence is the last refuge of the incompetent. Polar Scope Align for iOS
The mathematical sections tend to be better, well defined, well commented, and well-written code.
"First they came for the slanderers and i said nothing."
... historical code like this also needs to exist in a "curated" version, where the only "changes" are those made by a responsible curator, with the changes consisting only of comments.
I'd fork it myself but the honor of being the "keeper of the curated version" really should be someone with a connection to the project or, better yet, an organization like NASA, a museum, a retired-NASA-employee-association, university, or similar organization that will have the funds, manpower, and interest to keep this going for the long haul.
Also, separately from the above, paper, original-media or modern-copy-on-same-type-of-media (if available and feasible), and modern-electronic-copies of all of the code should be given to the National Archives, NASA archives, or some similar agency.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Don Eyles walks us through the Lunar Module source code
... yesterday's story TIOBE's Language-Popularity Index Sees A New Top 10 Language: Assembly. :)
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Look at this interview with Edsger Dijkstra (section after ~14:30).
A nasty bug was found just in time or else the eagle would never have landed in tranquility base.
A small bug for a programmer, a big bug for mankind.
Maybe we can now find other bugsðYS
https://youtu.be/RCCigccBzIU
Hans Beers
Integer and fixed-point math was how we used to do nearly everything in the 70s and early 80s when performance mattered. There were no FPUs, most CPU chips did not even have multiply or divide instructions. Anything resource- or performance-constrained was coded "on the metal" in assembly.
When I first wrote bootloader code I coded in actual 1s and 0s (machine code) and manually burned it into PROMS, which felt really advanced over the earlier stuff of hard-wiring tiny ferrite torus bits into magnet wire grids or soldering diodes into grids of perf board. When you have to spend time soldering/wiring each bit, or you have to throw out a several dollar one-time-programmable PROM chip any time you make an error, you learn to understand the hardware at the bit-level and minimize your errors in a real hurry, since errors are painful and expensive.
Young coders today who paste together megabytes of code other people have uploaded onto github/freshmeat/etc using mixes of languages on GHz+ 64bit processors, multi-terabyte drives, and using beautiful 24-bit color IDEs on massive flat-panel screens would be in tears, and despite a veneer of seemingly solid knowledge often seem to not even know how microprocessors actually work, and how to control actual hardware.
Hey, you kids, git off my lawn! (smile)
Is it not an ITAR violation to post the source?
print "HELLO MOON";
Star Trek transporters are just 3d printers.
/* snippet from moon.c */
for (i=0; i < 3; i++)
puts("c moon");
puts("are we");