Live data from Hacker News

Don Eyles Walks Us Through the Lunar Module Source Code

hackaday.com

31–40 of 52 posts

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#31

Earlier quoted context omitted.

Kids, today! You have no idea how lucky you are. At the time of writing this code, there were no 32" color monitors, IDEs, code text editors, or source code management systems. Code was first written out by hand and then typed onto punch cards or paper tape. These were fed into a mainframe computer for assembly. If you made a mistake, you had to find cards (by hand), remove and replace them with corrected cards. Get…

Yup..."back then" you would arrange all your cards in a shoebox and then take a marker and make a diagonal mark from top left to bottom right JUST IN CASE you dropped said shoebox on the way to class to turn in your homework/take home test. Without that mark there's no easy way to recreate the correct order of the punch cards. Source: dad was an engineering major in the early 70s.

And... you always kept your card decks until you graduated.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#32
post #29

Earlier quoted context omitted.

I guess that makes you R.G.?

Yes. (Note the "about" link on https://news.ycombinator.com/user?id=lisper )

Sometimes I like to see what I can figure out in 5 minutes without help or using easy search terms. Keep my Google Fu sharp. Clicking on your name would've been way too easy. Although, I probably should've looked just in case before I asked haha.

Anyway, nice to run into you. I remember your writings were some inspiration in my work on an embedded, efficient 4GL. I no longer had the tool or even remember what I read but your writings factored into it a bit I know. So, thanks for that I guess is all I can say there. :)

Btw, I recently discovered the 1802 in my high assurance and anti-subversion research in hardware. That foray was interested in chips that demonstrated extreme reliability and longevity. I looked into spaceflight given overlap in requirements. Discovered it. The Intersil datasheet had amazing amount of info compared to most chips with some impressive claims about what it could handle.

Since you had to study it, do you think it's worth using on an older process node for high-reliability today? Anything good about it you remember that's worth copying today? Or one of the bigger headaches of your career? I'm just curious as verifiable designs will likely require inspectable fabs... which require tiny CPU's. Means I can't overlook any old wisdom from a time with similar constraints.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#33
post #2

There's something amazing about carrying around your dot-matrix printed source code in a roller suitcase. The only thing that says "stable release" more than printing it out on hundreds of pages of paper is launching the computer running the code into space with no hope of doing an update.

Kids, today! You have no idea how lucky you are. At the time of writing this code, there were no 32" color monitors, IDEs, code text editors, or source code management systems. Code was first written out by hand and then typed onto punch cards or paper tape. These were fed into a mainframe computer for assembly. If you made a mistake, you had to find cards (by hand), remove and replace them with corrected cards. Get…

Since each punch card meant something, you really learned code. Watching out for memory and keeping track of registers was paramount (COMPASS was my HS and Freshman initial class). Syntax killed, but was overcome by hand writing code. The science of CPS courses had to be taught just to be able to pass the class via assignments. Writing an OS with punch cards was an entire term.

We could get same day runs if we paid more or had our own account. There were 3 tiers of cost..

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#34
post #29

Earlier quoted context omitted.

Yes. (Note the "about" link on https://news.ycombinator.com/user?id=lisper )

Sometimes I like to see what I can figure out in 5 minutes without help or using easy search terms. Keep my Google Fu sharp. Clicking on your name would've been way too easy. Although, I probably should've looked just in case before I asked haha. Anyway, nice to run into you. I remember your writings were some inspiration in my work on an embedded, efficient 4GL. I no longer had the tool or even remember what I read…

I liked the 1802 a lot. Nice orthogonal architecture, lots of registers, made writing the emulator a snap. The only problem with it was that it was dog-slow even in its day: 8 clock cycles per machine instruction. I think you could do better today with a modern FPGA.

I'm doing some work on secure hardware (and software) myself. Would love to compare notes. I sent you an email.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#35
post #9
post #5

Earlier quoted context omitted.

>with no hope of doing an update To be fair, space probes occasionally do get software updates, eg http://blogs.esa.int/rosetta/2014/03/28/software-upgrade-at-... In the case of the Curiosity Rover, it didn't even "ship" with the software of what it was supposed to do on Mars until it had landed there http://www.space.com/17034-mars-rover-curiosity-software-upg... Edit: I'm not saying this was possible in 1969. I pos…

> space probes occasionally do get software updates Sure. In 2014. Not in 1969. I once had the very interesting experience of developing an in-place update for a mid-1980s-vintage spacecraft instrument: the magnetometer on the Galileo spacecraft. It used an 1802 processor with 2k bytes of memory and was programmed in Forth. The development system ran on an Apple II. The instrument developed a bad byte of RAM and so a…

Ha! I found the old GLL mag code. Here's the actual patch as delivered to the magnetometer team:

  ;;;  Engineering offset patch:
  
  (compile-patch ": FIL! 1234 SWAP FILTF ;")
  
  44C8         00 CA 00 1F 12 34
  44D0   01 71 44 A2 00 D5
  
  
  ;;; Optimal averager sampling period patch.  (Uses 2 bytes at 46FE)
  
  (compile-patch
   ": SDSPIN DUP 15 = IF 1ST-DSPVECTOR TS! THEN DUP 28 = IF
     ADDR-BUFFER DUP @ 20 + DUP 4CF8 > IF DROP 4800 THEN
     DUP ROT 2+ 20 MOVE ADDR-BUFFER ! THEN
     1 46FE +! 46FE @ 0= IF OPTST -7 46FE ! THEN
     DUP 0= IF MAT-LOAD 4FF0 C@ 20 - 2/ CMDPTR +! THEN ;")
  
  42B8               00 CA 01 60
  42C0   00 2A 15 02 43 00 76 05
  42C8   04 3B 41 63 01 60 00 2A
  42D0   28 02 43 00 76 2C 40 50
  42D8   01 60 01 95 00 2A 20 00
  42E0   E9 01 60 00 1F 4C F8 02
  42E8   37 00 76 07 01 6C 00 1F
  42F0   48 00 01 60 02 B0 02 5D
  42F8   00 2A 20 01 03 40 50 01
  4300   A3 02 3F 00 1F 46 FE 01
  4308   AF 00 1F 46 FE 01 95 01
  4310   C0 00 76 0D 41 B8 00 1F
  4318   FF F9 00 1F 46 FE 01 A3
  4320   01 60 01 C0 00 76 14 42
  4328   54 00 1F 4F F0 00 8A 00
  4330   2A 20 00 F6 0E 3A 04 71
  4338   01 AF 00 D5
A little longer than I remembered it, so maybe NASA got its money's worth after all!

I have the complete source code for this project. If anyone is interested let me know and I'll post it somewhere.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#36

Earlier quoted context omitted.

Kids, today! You have no idea how lucky you are. At the time of writing this code, there were no 32" color monitors, IDEs, code text editors, or source code management systems. Code was first written out by hand and then typed onto punch cards or paper tape. These were fed into a mainframe computer for assembly. If you made a mistake, you had to find cards (by hand), remove and replace them with corrected cards. Get…

Yup..."back then" you would arrange all your cards in a shoebox and then take a marker and make a diagonal mark from top left to bottom right JUST IN CASE you dropped said shoebox on the way to class to turn in your homework/take home test. Without that mark there's no easy way to recreate the correct order of the punch cards. Source: dad was an engineering major in the early 70s.

The first six columns of IBM cards used for COBOL programming had sequence numbers that could be used to validate that program lines were in order.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#37
post #35
post #9

Earlier quoted context omitted.

> space probes occasionally do get software updates Sure. In 2014. Not in 1969. I once had the very interesting experience of developing an in-place update for a mid-1980s-vintage spacecraft instrument: the magnetometer on the Galileo spacecraft. It used an 1802 processor with 2k bytes of memory and was programmed in Forth. The development system ran on an Apple II. The instrument developed a bad byte of RAM and so a…

Ha! I found the old GLL mag code. Here's the actual patch as delivered to the magnetometer team: ;;; Engineering offset patch: (compile-patch ": FIL! 1234 SWAP FILTF ;") 44C8 00 CA 00 1F 12 34 44D0 01 71 44 A2 00 D5 ;;; Optimal averager sampling period patch. (Uses 2 bytes at 46FE) (compile-patch ": SDSPIN DUP 15 = IF 1ST-DSPVECTOR TS! THEN DUP 28 = IF ADDR-BUFFER DUP @ 20 + DUP 4CF8 > IF DROP 4800 THEN DUP ROT 2+ 20…

It would be beautiful if you could post this on github. Such a piece of history deserves to remain available for posterity.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#38

Earlier quoted context omitted.

Kids, today! You have no idea how lucky you are. At the time of writing this code, there were no 32" color monitors, IDEs, code text editors, or source code management systems. Code was first written out by hand and then typed onto punch cards or paper tape. These were fed into a mainframe computer for assembly. If you made a mistake, you had to find cards (by hand), remove and replace them with corrected cards. Get…

Yup..."back then" you would arrange all your cards in a shoebox and then take a marker and make a diagonal mark from top left to bottom right JUST IN CASE you dropped said shoebox on the way to class to turn in your homework/take home test. Without that mark there's no easy way to recreate the correct order of the punch cards. Source: dad was an engineering major in the early 70s.

This comment is extremely interesting to me as my first instinct would be numbering the cards w marker. But it makes far more sense to draw a line on the edge for visual sorting.

Re: Don Eyles Walks Us Through the Lunar Module Source Code

#39
post #2

There's something amazing about carrying around your dot-matrix printed source code in a roller suitcase. The only thing that says "stable release" more than printing it out on hundreds of pages of paper is launching the computer running the code into space with no hope of doing an update.

Kids, today! You have no idea how lucky you are. At the time of writing this code, there were no 32" color monitors, IDEs, code text editors, or source code management systems. Code was first written out by hand and then typed onto punch cards or paper tape. These were fed into a mainframe computer for assembly. If you made a mistake, you had to find cards (by hand), remove and replace them with corrected cards. Get…

I'm 57 and a working developer. In school, It was a beautiful feeling if your card deck compiled, ran, didn't run out of CPU time, and produced the correct print out, the very first time.
Post reply on HN