Source Code
![]() |
These source-code files were derived originally from the scan from MIT's Dibner Institute's
now-discontinued website titled "History of Recent Science and Technology". It is believed
that the original listing was preserved by AGC developer Don Eyles, copied/reduced by
AGC developer Hugh Blair-Smith, passed by AGC developer James Kernan to collector David Craig,
scanned by Gary Neff, and then passed to the Dibner Institute
where unfortunately the high-quality scans were reduced in legibility as part of the
online-presentation process, and the original scans discarded.
The source code was transcribed from
those images by Ron Burkey. The images from the Dibner Institute website, and unfortunately not
the discarded original high-quality scans, though with a few high-quality replacement scans
provided directly by Gary Neff, are now available
at the Virtual AGC project website.
Report any conversion errors to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091 17:53 DEC. 19, 1969Note that the date is the date of the printout, not the date of the program revision. |
027608,000002: ## Copyright: Public domain.
027609,000003: ## Filename: GROUND_TRACKING_DETERMINATION_PROGRAM.agc
027610,000004: ## Purpose: A section of Luminary 1C, revision 131.
027611,000005: ## It is part of the source code for the Lunar Module's (LM)
027612,000006: ## Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
027613,000007: ## This file is intended to be a faithful transcription, except
027614,000008: ## that the code format has been changed to conform to the
027615,000009: ## requirements of the yaYUL assembler rather than the
027616,000010: ## original YUL assembler.
027617,000011: ## Reference: pp. 661-664 of 1729.pdf.
027618,000012: ## Contact: Ron Burkey <info@sandroid.org>.
027619,000013: ## Website: www.ibiblio.org/apollo/index.html
027620,000014: ## Mod history: 05/21/03 RSB. Began transcribing.
027621,000015: ## 05/14/05 RSB Corrected website reference above.
027622,000016:
![]() |
Page 661 |
027624,000018: # GROUND TRACKING DETERMINATION PROGRAM -- P21
027625,000019:
027626,000020: # PROGRAM DESCRIPTION
027627,000021: # MOD NO -- 1
027628,000022: # MOD BY -- N. M. NEVILLE
027629,000023:
027630,000024: # FUNCTIONAL DESCRIPTION --
027631,000025: # TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
027632,000026: # THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
027633,000027:
027634,000028: # CALLING SEQUENCE --
027635,000029: # ASTRONAUT REQUEST THROUGH DSKY V37E21E
027636,000030:
027637,000031: # SUBROUTINES CALLED --
027638,000032: # GOPERF4
027639,000033: # GOFLASH
027640,000034: # THISPREC
027641,000035: # OTHPREC
027642,000036: # LAT-LONG
027643,000037:
027644,000038: # NORMAL EXIT MODES --
027645,000039: # ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V34E
027646,000040:
027647,000041: # ALARM OR ABORT EXIT MODES --
027648,000042: # NONE
027649,000043:
027650,000044: # OUTPUT --
027651,000045: # OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
027652,000046: # COMPUTED
027653,000047: # OPTION CODE 00002
027654,000048: # THIS 00001
027655,000049: # OTHER 00002
027656,000050: # DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS, MINUTES, SECONS
027657,000051: # DECIMAL DISPLAY OF LAT,LONG,ALT
027658,000052:
027659,000053: # ERASABLE INITIALIZATION REQUIRED
027660,000054: # AX0 2DEC 4.652459653 E-5 RADIANS
027661,000055: # -AY0 2DEC 2.137535898 E-5 RADIANS
027662,000056: # AZ0 2DEC .7753206164 REVOLUTIONS
027663,000057: # FOR LUNAR ORBITS 504LM VECTOR IS NEEDED:
027664,000058: # 504LM 2DEC -2.700340600 E-5 RADIANS
027665,000059: # 504LM+2 2DEC -7.514128400 E-4 RADIANS
027666,000060: # 504LM+4 2DEC -2.553198641 E-4 RADIANS
027667,000061:
027668,000062: # DEBRIS
![]() |
Page 662 |
027670,000064: # CENTRALS -- A,C,L
027671,000065: # OTHER -- THOSE USED BY THE ABOVE LISTED SUBROUTINES
027672,000066: # SEE LEMPREC, LAT-LONG
027673,000067:
027674,000068: 35,2455 30,2000 SBANK= LOWSUPER # FOR LOW 2CADR'S.
027675,000069:
027676,000070: 33,2200 BANK 33
027677,000071: 24,2000 SETLOC P20S
027678,000072: 24,2000 BANK
027679,000073:
027680,000074: 24,3506 E7,1762 EBANK= P21TIME
027681,000075: 24,3506 COUNT* $$/P21
027682,000076: 24,3506 34753 PROG21 CAF ONE
027683,000077: 24,3507 55144 TS OPTION2 # ASSUMED VEHICLE IS LM, R2 = 00001
027684,000078: 24,3510 34752 CAF BIT2 # OPTION 2
027685,000079: 24,3511 04616 TC BANKCALL
027686,000080: 24,3512 20634 CADR GOPERF4
027687,000081: 24,3513 06001 TC GOTOP00H # TERMINATE
027688,000082: 24,3514 03516 TC +2 # PROCEED VALUE OF ASSUMED VEHICLE OK
027689,000083: 24,3515 03510 TC -5 # R2 LOADED THROUGH DSKY
027690,000084: 24,3516 34755 CAF ZERO # INITIAL TIME = PRESENT TIME
027691,000085: 24,3517 55044 TS DSPTEM1
027692,000086: 24,3520 55045 TS DSPTEM1 +1
027693,000087: 24,3521 33675 P21PROG1 CAF V6N34 # LOAD DESIRED TIME OF LAT-LONG.
027694,000088: 24,3522 04616 TC BANKCALL
027695,000089: 24,3523 20477 CADR GOFLASH
027696,000090: 24,3524 06001 TC GOTOP00H # TERM
027697,000091: 24,3525 03527 TC +2 # PROCEED VALUES OK
027698,000092: 24,3526 03521 TC -5 # TIME LOADED THROUGH DSKY
027699,000093: 24,3527 06042 TC INTPRET
027700,000094: 24,3530 53145 DLOAD BZE
027701,000095: 24,3531 01045 DSPTEM1
027702,000096: 24,3532 51667 P21PRTM
027703,000097: 24,3533 34041 P21PROG2 STCALL TDEC1 # INTEG TO TIME SPECIFIED IN TDEC1
027704,000098: 24,3534 27410 INTSTALL
027705,000099: 24,3535 43014 BON CLEAR
027706,000100: 24,3536 00304 P21FLAG
027707,000101: 24,3537 51555 P21CONT # ON -- RECYCLE USING BASE VECTOR
027708,000102: 24,3540 01674 VINTFLAG # OFF -- 1ST PASS CALL BASE VECTOR
027709,000103: 24,3541 70535 SLOAD SR1
027710,000104: 24,3542 01145 OPTION2
027711,000105: 24,3543 43030 BHIZ SET
027712,000106: 24,3544 51546 +2 # ZERO -- THIS VEHICLE (LM)
027713,000107: 24,3545 01474 VINTFLAG # ONE -- OTHER VEHICLE (CM)
027714,000108: 24,3546 43014 CLEAR CLEAR
027715,000109: 24,3547 01676 DIM0FLAG
027716,000110: 24,3550 01673 INTYPFLG # PRECISION
027717,000111: 24,3551 77624 CALL
027718,000112: 24,3552 27133 INTEGRV # CALCULATE
027719,000113: 24,3553 77650 GOTO # AND
![]() |
Page 663 |
027721,000115: 24,3554 51576 P21VSAVE # SAVE BASE VECTOR
027722,000116: 24,3555 77775 P21CONT VLOAD
027723,000117: 24,3556 03676 P21BASER # RECYCLE -- INTEG FROM BASE VECTOR
027724,000118: 24,3557 25535 STOVL RCV # --POS
027725,000119: 24,3560 03704 P21BASEV
027726,000120: 24,3561 15543 STODL VCV # --VEL
027727,000121: 24,3562 03763 P21TIME
027728,000122: 24,3563 01517 STORE TET # --TIME
027729,000123: 24,3564 43014 CLEAR CLEAR
027730,000124: 24,3565 01676 DIM0FLAG
027731,000125: 24,3566 00263 MOONFLAG
027732,000126: 24,3567 53135 SLOAD BZE
027733,000127: 24,3570 01163 P21ORIG
027734,000128: 24,3571 51574 +3 # ZERO = EARTH
027735,000129: 24,3572 77614 SET # 2 = MOON
027736,000130: 24,3573 00063 MOONFLAG
027737,000131: 24,3574 77624 +3 CALL
027738,000132: 24,3575 27106 INTEGRVS
027739,000133: 24,3576 77745 P21VSAVE DLOAD # SAVE CURRENT BASE VECTOR
027740,000134: 24,3577 00015 TAT
027741,000135: 24,3600 27763 STOVL P21TIME # --TIME
027742,000136: 24,3601 00017 RATT1
027743,000137: 24,3602 27676 STOVL P21BASER # --POS B-29 OR B-27
027744,000138: 24,3603 00025 VATT1
027745,000139: 24,3604 03704 STORE P21BASEV # --VEL B-07 OR B-05
027746,000140: 24,3605 53646 ABVAL SL*
027747,000141: 24,3606 57576 0,2
027748,000142: 24,3607 27712 STOVL P21VEL # VEL/ FOR N91 DISP
027749,000143: 24,3610 00001 RATT
027750,000144: 24,3611 50256 UNIT DOT
027751,000145: 24,3612 00007 VATT # U(R).V
027752,000146: 24,3613 67471 DDV ASIN # U(R).U(V)
027753,000147: 24,3614 03712 P21VEL
027754,000148: 24,3615 03714 STORE P21GAM # SIN-1 U(R).U(V) , -90 TO +90
027755,000149: 24,3616 67334 SXA,2 SLOAD
027756,000150: 24,3617 01162 P21ORIG # 0 = EARTH
027757,000151: 24,3620 01145 OPTION2
027758,000152: 24,3621 46142 SR1 BHIZ
027759,000153: 24,3622 51625 +3
027760,000154: 24,3623 77650 GOTO
027761,000155: 24,3624 51630 +4
027762,000156: 24,3625 77614 +3 BON
027763,000157: 24,3626 04307 SURFFLAG
027764,000158: 24,3627 51632 P21DSP
027765,000159: 24,3630 77614 +4 SET
027766,000160: 24,3631 00064 P21FLAG
027767,000161: 24,3632 67214 P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
027768,000162: 24,3633 01663 LUNAFLAG
027769,000163: 24,3634 00050 X2
027770,000164: 24,3635 43054 BZE SET
![]() |
Page 664 |
027772,000166: 24,3636 51640 +2 # 0 = EARTH
027773,000167: 24,3637 01463 LUNAFLAG
027774,000168: 24,3640 77775 VLOAD
027775,000169: 24,3641 00001 RATT
027776,000170: 24,3642 16032 STODL ALPHAV
027777,000171: 24,3643 00015 TAT
027778,000172: 24,3644 45014 CLEAR CALL
027779,000173: 24,3645 00662 ERADFLAG
027780,000174: 24,3646 26347 LAT-LONG
027781,000175: 24,3647 77605 DMP # MPAC = ALT, METERS B-29
027782,000176: 24,3650 11677 K.01
027783,000177: 24,3651 03716 STORE P21ALT # ALT/100 FOR N91 DISP
027784,000178: 24,3652 77776 EXIT
027785,000179: 24,3653 33674 CAF V06N43 # DISPLAY LAT, LONG, ALT
027786,000180: 24,3654 04616 TC BANKCALL # LAT, LONG = 1/2 REVS B0
027787,000181: 24,3655 20477 CADR GOFLASH # ALT = KM B14
027788,000182: 24,3656 06001 TC GOTOP00H # TERM
027789,000183: 24,3657 06001 TC GOTOP00H
027790,000184: 24,3660 06042 TC INTPRET # V32E RECYCLE
027791,000185: 24,3661 43345 DLOAD DAD
027792,000186: 24,3662 03763 P21TIME
027793,000187: 24,3663 11673 600SEC # 600 SECONDS OR 10 MIN
027794,000188: 24,3664 01045 STORE DSPTEM1
027795,000189: 24,3665 77634 RTB
027796,000190: 24,3666 51521 P21PROG1
027797,000191: 24,3667 52034 P21PRTM RTB GOTO
027798,000192: 24,3670 21574 LOADTIME
027799,000193: 24,3671 51533 P21PROG2
027800,000194: 24,3672 00003 25140 600SEC 2DEC 60000 B-28 # 10 MIN
027801,000195:
027802,000196: 24,3674 01453 V06N43 VN 00643
027803,000197: 24,3675 01442 V6N34 VN 00634
027804,000198: 24,3676 00243 32703 K.01 2DEC .01
027805,000199:
End of include-file GROUND_TRACKING_DETERMINATION_PROGRAM.agc. Parent file is MAIN.agc