It looks like you're using an Ad Blocker.

Please white-list or disable AboveTopSecret.com in your ad-blocking tool.

Thank you.

 

Some features of ATS will be disabled while you continue to use an ad-blocker.

 

The code that took America to the moon was just published to GitHub

page: 1
6
<<   2 >>

log in

join
share:

posted on Jul, 16 2016 @ 10:09 AM
link   
Found this interesting story and was not sure where to post it on ATS, but I think it fits under Science & Technology just fine.

Article


When programmers at the MIT Instrumentation Laboratory set out to develop the flight software for the Apollo 11 space program in the mid-1960s, the necessary technology did not exist. They had to invent it.
They came up with a new way to store computer programs, called “rope memory,” and created a special version of the assembly programming language. Assembly itself is obscure to many of today’s programmers—it’s very difficult to read, intended to be easily understood by computers, not humans. For the Apollo Guidance Computer (AGC), MIT programmers wrote thousands of lines of that esoteric code.


Github Repository

Assembly code takes me back to the days I started programming in the early 80's with 6500 series assembly on Commodore products.
Why did I hear a grandfather story telling voice in my head when I typed that?


The programmer in me finds the Opcodes and structure very interesting.
Some of the code commenting is quite humorous.
edit on 16-7-2016 by Dreamwatcher because: Formatting




posted on Jul, 16 2016 @ 10:17 AM
link   
The code has been up for 2 days and it's Github stats are sky high.

Watching: 908
Forks: 2,718
Stars: 19,022

2,718 forks?? Some people may want to archive it on Github, but I would think most would just clone it locally.

edit on 16-7-2016 by Dreamwatcher because: Need more coffee



posted on Jul, 16 2016 @ 10:20 AM
link   
A picture from the article showing the code printed out in paper form.




posted on Jul, 16 2016 @ 10:43 AM
link   

originally posted by: Dreamwatcher
A picture from the article showing the code printed out in paper form.



It looks pretty used huh
edit on 16-7-2016 by Tjoran because: (no reason given)



posted on Jul, 16 2016 @ 11:22 AM
link   
a reply to: Tjoran

probably would be as in those days the source would be mainly on punched cards or if using disk space would be edited via use of an editfile so original source+edit file=new source file so lots of pouring over the print outs would be normal practice and if you looked at them they'll probably have loads of pen marks where programmers worked it out first.



posted on Jul, 16 2016 @ 11:22 AM
link   
im under the impression that even now the computers understand only assembler code



posted on Jul, 16 2016 @ 11:40 AM
link   
a reply to: Nochzwei

Actually they understand machine code; assembly is just a humanized version of machine. Every exe file is in machine code.

Most modern programming uses compilers to translate the complex commands into machine code. Assemblers are much much simpler, since all assembly statements are directly translatable into machine code.

TheRedneck



posted on Jul, 16 2016 @ 11:43 AM
link   
Incredible how they accomplished that. You probably had to be really innovative to work with the limited memory and processing power, and writing everything in low-level code.



posted on Jul, 16 2016 @ 12:34 PM
link   
a reply to: Dreamwatcher

awwwww,jeeez! Now everyone will be moving there....what about the property values? I'll never find a parking spot for my starship....



posted on Jul, 16 2016 @ 12:46 PM
link   
a reply to: Dreamwatcher

Kudos to you Dreamcatcher, sir. Love this history!

I'll use my grandma voice and say:
"These youngsters, today, have no idea of the computing power they carry around in their hands, used for social media and capturing make believe monsters in a run-around town game, and posting pictures of themselves and every meal they eat. I am a gnarly veteran of the IT industry; I remember main frames and batch processing. I was a participant in those first Lanier Word Processors (Floppy drive and "Word Wrap" technology), replacing typewriters for secretaries and admin support staff. Then, my-oh-my, the personal computers and Local Area Networks! ...10baseT = wow, we can run networks over unshielded twisted pair phone lines!? Now we have WiFi instant access to the GREAT GOD GOOGLE - and your every question answered, your every embarrassing moment forever shared."



posted on Jul, 16 2016 @ 03:02 PM
link   

originally posted by: Nochzwei
im under the impression that even now the computers understand only assembler code


Machine code, not assembly code.



posted on Jul, 16 2016 @ 03:59 PM
link   
Some background/history on the computer hardware, software and development for NASA space systems from Gemini to the Shuttle.

An interesting read if you are a computer person or have an interest in this type of material. Early development of redundant systems and digital fly by wire. Overcoming limits of memory, storage and more.

Computers in Spaceflight: The NASA Experience



posted on Jul, 16 2016 @ 05:24 PM
link   

originally posted by: GetHyped

originally posted by: Nochzwei
im under the impression that even now the computers understand only assembler code


Machine code, not assembly code.
I stand corrected



posted on Jul, 16 2016 @ 07:10 PM
link   
a reply to: SeaYote
Indeed!



a reply to: roadgravel
Thanks for the info.

More interesting history re "rope memory"..... Hamilton is Margaret Hamilton of OP pix


For Hamilton, programming meant punching holes in stacks of punch cards, which would be processed overnight in batches on a giant Honeywell mainframe computer that simulated the Apollo lander’s work. “We had to simulate everything before it flew,” Hamilton remembers. Once the code was solid, it would be shipped off to a nearby Raytheon facility where a group of women, expert seamstresses known to the Apollo program as the “Little Old Ladies,” threaded copper wires through magnetic rings (a wire going through a core was a 1; a wire going around the core was a 0). Forget about RAM or disk drives; on Apollo, memory was literally hardwired and very nearly indestructible.

Apollo flights carried two near-identical machines: one used in the lunar module—the Eagle that landed on the moon—and the other for the command module that carried the astronauts to and from Earth. These 70-pound Apollo computers were portable computers unlike any other. Conceived by MIT engineers such as Hal Laning and Hamilton’s boss, Dick Batton, it was one of the first important computers to use integrated circuits rather than transistors. As Mindell tells the story, it was the first computerized onboard navigation system designed to be operated by humans but with “fly-by-wire” autopilot technology—a precursor to the computerized navigation systems that are now standard on jetliners.

The system stored more than 12,000 “words” in its permanent memory—the copper “ropes” threaded by the Raytheon workers—and had 1,024 words in its temporary, erasable memory. “It was the first time that an important computer had been in a spacecraft and given a lot of responsibility for the mission,” says Don Eyles, who worked on the lunar module code while at MIT’s IL. “We showed that that could be done. We did it in what today seems an incredibly small amount of memory and very slow computation speed.” Without it, Neil Armstrong wouldn’t have made it to the moon. And without the software written by Hamilton, Eyles, and the team of MIT engineers, the computer would have been a dud.


Her Code Got Humans on the Moon—And Invented Software Itself

A good read. Enjoy!



posted on Jul, 17 2016 @ 12:30 AM
link   
a reply to: desert

From the article posted


Lauren had crashed the simulator by somehow launching a prelaunch program called P01 while the simulator was in midflight. There was no reason an astronaut would ever do this, but nonetheless, Hamilton wanted to add code to prevent the crash. That idea was overruled by NASA. “We had been told many times that astronauts would not make any mistakes,” she says. “They were trained to be perfect.” So instead, Hamilton created a program note—an add-on to the program’s documentation that would be available to NASA engineers and the astronauts: “Do not select P01 during flight,” it said. Hamilton wanted to add error-checking code to the Apollo system that would prevent this from messing up the systems. But that seemed excessive to her higher-ups. “Everyone said, ‘That would never happen,’” Hamilton remembers.


I wonder how many of the admins that made that decision were engineers? As a modern day engineer, I cannot imagine leaving a big red button within reach of an operator.
But of course, the more you do not want someone to hit the big red button.



But it did. Right around Christmas 1968—five days into the historic Apollo 8 flight, which brought astronauts to the moon for the first-ever manned orbit—the astronaut Jim Lovell inadvertently selected P01 during flight.


Possibly the first remote firmware update:


After spending nine hours poring through the 8-inch-thick program listing on the table in front of them, they had a plan. Houston would upload new navigational data. Everything was going to be OK. Thanks to Hamilton—and Lauren—the Apollo astronauts came home.



posted on Jul, 17 2016 @ 12:52 AM
link   
a reply to: SeaYote

As an electrical engineer, I am guilty of seeing modern designs and thinking "Wow, is that over engineered".

I remember a series of videos on Youtube made by a group of older engineers. After a few of them, I stopped watching as they were acting like the persona we are joking about. One would have thought we needed to start teaching vacuum tube design as a major part of current engineering programs. They seemed upset by the current trend moving away from discrete components and towards programming micro-controllers and single chip computers.

I found myself thinking "I hope I never get that way", but in 20 years I can see myself becoming like that.



posted on Jul, 17 2016 @ 08:48 AM
link   

originally posted by: nOraKat
Incredible how they accomplished that. You probably had to be really innovative to work with the limited memory and processing power, and writing everything in low-level code.

Yes, the more limitations the hardware has the more creative the programmers need to be.
Many years ago I made a cooking recipes program for the ZX Spectrum, in assembly language, and when I saw that I didn't had enough memory to load all the program and the database I created a compression scheme to compress the data that later I found out it was a simpler version of the Lempel/Ziv algorithm.

I miss assembly programming, much challenging than the high-level languages used by most programmers (including me) on their day to day work.



posted on Jul, 17 2016 @ 09:22 AM
link   
a reply to: Dreamwatcher

I flip flop between my grouchy judgmental side to the "wow that's awesome" side when I see the creativity unleashed by all this international sharing enabled by the internet and instant communications (all built on that foundation of code). I think it's relevant that kids learn about the history and underlying technology that actually makes their world work. Hey it would also be good for young brains to have to learn a little basic programming (like in elementary school)

So, despite my inner curmudgeon, my hope is the bigger winner - that in the greater measure, all this technology can serve to advance civilization. Though there is good reason for concern that some people may be susceptible to loosing personal and natural world interaction in lieu of virtual reality. I've seen how my teenager finds musicians and artists from far flung places as well as stimulating conversations via Reddit with people she would otherwise never connect.

I am encouraged to see postings like this one -- look what cool stuff we are capable of accomplishing! (I acknowledge that many conspiracies swirl around NASA -- but IMHO, having worked with some of their engineers, NASA is an organization that brings our best minds together (men, women, all races) -- and yes, Go Trekkies - live long and prosper.....



posted on Jul, 17 2016 @ 09:41 AM
link   

originally posted by: Maxatoria
a reply to: Tjoran

if you looked at them they'll probably have loads of pen marks where programmers worked it out first.


I will admit to still doing that.


If I get stuck on a block of code or how various functions are interacting with each other or a data set, I will print out the code and data sets and sit down and starting marking up the code.

Something about looking at it from a different perspective or perhaps going back to my programming roots seems to help me solve some problems.



posted on Jul, 17 2016 @ 01:13 PM
link   

originally posted by: ArMaP
I miss assembly programming, much challenging than the high-level languages used by most programmers (including me) on their day to day work.


My university program made us write an OS in assembly during my previous fall semester, I was so burnt out on it after that, that I skipped the followup class in spring.

This year during my optimization class im going to have to write a game in assembly at some point.



new topics

top topics



 
6
<<   2 >>

log in

join