For the computing history nerds
-
wrote on 9 Jun 2020, 14:24 last edited by Klaus 6 Sept 2020, 15:41
The original source code of the Apollo 11 guidance computer (or parts thereof) from 1969 are now available on Github.
https://github.com/chrislgarry/Apollo-11
Note that most of the code was written by a gal, Margaret Hamilton. Here she is, besides a printout of the source code she wrote. She is really one of the main pioneers of the field. I wish I met her or seen a talk of hers.
I also wish there would be a quick summary of the proprietary assembly language (AGC) she was using somewhere. I can't really decipher what is going on.
-
wrote on 9 Jun 2020, 15:19 last edited by
Awesome!!
-
wrote on 9 Jun 2020, 15:20 last edited by
If I open a PR will you merge it?
-
wrote on 9 Jun 2020, 15:36 last edited by
Would be even more awesome if there are ...
- a virtual machine to run the compiler/linker for yaYUL
- a virtual machine to run the compiled/linked binary
Wonder if they also published minutes from their "code review" meetings.
-
Would be even more awesome if there are ...
- a virtual machine to run the compiler/linker for yaYUL
- a virtual machine to run the compiled/linked binary
Wonder if they also published minutes from their "code review" meetings.
-
wrote on 9 Jun 2020, 19:58 last edited by
CALCSXA ITA VLOAD # PUSHDOWN 00-26D,28D,30D,32D-36D
28D
STAR
CALL
SMNB
MXV VSL1
NB2NB1
STOVL STAR
HIUNITX
STOVL XNB1
HIUNITY
STOVL YNB1
HIUNITZ
STCALL ZNB1
SXTANG1omglol what noob wrote that?
omglol
-
wrote on 9 Jun 2020, 20:01 last edited by
omg and in that same file there's this:
SXTANG1 VLOAD VXV
ZNB1
STAR
BOV
+1
UNIT BOV
ZNB=S1
STORE PDA # PDA = UNIT(ZNB X S)DOT DCOMP XNB1 STOVL SINTH # SIN(SA) = PDA . -XNB PDA DOT YNB1 STCALL COSTH # COS(SA) = PDA . YNB ARCTRIG
omglol
-
wrote on 9 Jun 2020, 20:42 last edited by
God I loved doing that, absolutely positively loved it.
-
wrote on 9 Jun 2020, 23:13 last edited by
I bet Apollo 13 was caused by some n00b forgetting a comma on line 257
-
wrote on 10 Jun 2020, 12:10 last edited by
@Copper said in For the computing history nerds:
God I loved doing that, absolutely positively loved it.
There was a time when a single programmer could know and understand an entire state-of-the-art system, every nuance, every quirk, every last bit of details.
These days, everyone just build on top of third party components and libraries, and few bother to try to understand the entirety of the components or libraries they use.
-
CALCSXA ITA VLOAD # PUSHDOWN 00-26D,28D,30D,32D-36D
28D
STAR
CALL
SMNB
MXV VSL1
NB2NB1
STOVL STAR
HIUNITX
STOVL XNB1
HIUNITY
STOVL YNB1
HIUNITZ
STCALL ZNB1
SXTANG1omglol what noob wrote that?
omglol
wrote on 10 Jun 2020, 12:13 last edited by@Horace said in For the computing history nerds:
CALCSXA ITA VLOAD # PUSHDOWN 00-26D,28D,30D,32D-36D
omglol what noob wrote that?
A noob who thought he could # and “pushdown” a virtual load on Italian women with D-cup sizes, that’s who.
-
The original source code of the Apollo 11 guidance computer (or parts thereof) from 1969 are now available on Github.
https://github.com/chrislgarry/Apollo-11
Note that most of the code was written by a gal, Margaret Hamilton. Here she is, besides a printout of the source code she wrote. She is really one of the main pioneers of the field. I wish I met her or seen a talk of hers.
I also wish there would be a quick summary of the proprietary assembly language (AGC) she was using somewhere. I can't really decipher what is going on.
wrote on 10 Jun 2020, 22:19 last edited by@Klaus said in For the computing history nerds:
Note that most of the code was written by a gal, Margaret Hamilton
-
wrote on 11 Jun 2020, 01:24 last edited by
Murphy's Law, bring your kid to work day, and the Apollo Program, excerpted from an interview with Ms. Hamilton by The Guardian's Zoë Corbyn:
Often in the evening or at weekends I would bring my young daughter, Lauren, into work with me. One day, she was with me when I was doing a simulation of a mission to the moon. She liked to imitate me – playing astronaut. She started hitting keys and all of a sudden, the simulation started. Then she pressed other keys and the simulation crashed. She had selected a program which was supposed to be run prior to launch – when she was already “on the way” to the moon. The computer had so little space, it had wiped the navigation data taking her to the moon. I thought: my God – this could inadvertently happen in a real mission. I suggested a program change to prevent a prelaunch program being selected during flight. But the higher-ups at MIT and Nasa said the astronauts were too well trained to make such a mistake. Midcourse on the very next mission – Apollo 8 – one of the astronauts on board accidentally did exactly what Lauren had done. The Lauren bug! It created much havoc and required the mission to be reconfigured. After that, they let me put the program change in, all right.
-
wrote on 11 Jun 2020, 01:49 last edited by
Wow!
-
wrote on 24 Jul 2020, 21:57 last edited by
If you are a nerd and have a Unix-ish command line (Mac OS, Linux, ...), check this out:
This will compute the greatest common divisor of two numbers.
dc -e '??[dSarLa%d0<a]dsax+p'
Want the infinite stream of prime numbers?
echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x' | dc
The dc program is one of the oldest tools in the Unix toolbox and the oldest "Unix language" that is still available today. It's a programmable calculator with a rather idiosyncratic but cool syntax.
-
If you are a nerd and have a Unix-ish command line (Mac OS, Linux, ...), check this out:
This will compute the greatest common divisor of two numbers.
dc -e '??[dSarLa%d0<a]dsax+p'
Want the infinite stream of prime numbers?
echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x' | dc
The dc program is one of the oldest tools in the Unix toolbox and the oldest "Unix language" that is still available today. It's a programmable calculator with a rather idiosyncratic but cool syntax.
wrote on 24 Jul 2020, 22:11 last edited by@Klaus said in For the computing history nerds:
If you are a nerd and have a Unix-ish command line (Mac OS, Linux, ...), check this out:
This will compute the greatest common divisor of two numbers.
dc -e '??[dSarLa%d0<a]dsax+p'
Want the infinite stream of prime numbers?
echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x' | dc
The dc program is one of the oldest tools in the Unix toolbox and the oldest "Unix language" that is still available today. It's a programmable calculator with a rather idiosyncratic but cool syntax.
To the extent that a syntax can be cool—which is to say not at all; that's like saying "this bitchin' thing we got goin' on in the hanging file folder R&D department"—that syntax is about as uncool as Billy Joel.
-
wrote on 24 Jul 2020, 22:38 last edited by
The fact that have no clue what's going on is no indication that the commands and the syntax of dc aren't cool
This is an operational piece of history, which reflects both the engineering considerations and the programming knowledge of its time. You can admire it in the same way one admires, say, the engine of a 1937 Mercedes silver arrow.
-
wrote on 24 Jul 2020, 23:17 last edited by
@Klaus said in For the computing history nerds:
echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x' | dc
infinite my ass.
-
@Klaus said in For the computing history nerds:
echo '2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l#x0<&2+l.x]ds.x' | dc
infinite my ass.
wrote on 25 Jul 2020, 01:04 last edited by@jon-nyc said in For the computing history nerds:
infinite my ass.
@jon-nyc , time to upgrade, get more RAM.
-
wrote on 25 Jul 2020, 01:05 last edited by
Oh sure, blame the victim.