Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
028247,000002: ## Copyright: Public domain.
028248,000003: ## Filename: KALCMANU_STEERING.agc
028249,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
028250,000005: ## is part of the source code for the Lunar Module's
028251,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
028252,000007: ## Assembler: yaYUL
028253,000008: ## Contact: Ron Burkey <info@sandroid.org>.
028254,000009: ## Website: www.ibiblio.org/apollo/index.html
028255,000010: ## Mod history: 2016-09-30 RSB Created draft version.
028256,000011: ## 2016-10-22 MAS Transcribed.
028257,000012: ## 2016-10-31 RSB Typos.
028258,000013: ## 2016-11-01 RSB More typos.
028259,000014: ## 2016-12-06 RSB Comments proofed using octopus/ProoferComments,
028260,000015: ## no changes made.
028261,000016: ## 2017-01-28 RSB WTIH -> WITH.
028262,000017: ## 2017-03-17 RSB Comment-text fixes identified in diff'ing
028263,000018: ## Luminary 99 vs Comanche 55.
028264,000019:
Page 668 |
028266,000021: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
028267,000022:
028268,000023: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
028269,000024:
028270,000025: 34,3476 E3,1605 EBANK= TTEMP
028271,000026:
028272,000027: 34,3476 06112 NEWDELHI TC INTPRET
028273,000028: 34,3477 75160 AXC,1 AXC,2
028274,000029: 34,3500 01535 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
028275,000030: 34,3501 01557 KEL # STABLE MEMBER AXES
028276,000031: 34,3502 77624 CALL
028277,000032: 34,3503 73417 MXM3
028278,000033: 34,3504 45575 VLOAD STADR
028279,000034: 34,3505 52225 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
028280,000035: 34,3506 77626 STADR
028281,000036: 34,3507 52233 STOVL MIS +6D
028282,000037: 34,3510 77626 STADR
028283,000038: 34,3511 76241 STORE MIS
028284,000039: 34,3512 45160 AXC,1 CALL
028285,000040: 34,3513 01535 MIS
028286,000041: 34,3514 70711 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
028287,000042: 34,3515 77634 RTB
028288,000043: 34,3516 33526 V1STO2S
028289,000044: 34,3517 01602 STORE NCDU # NEW CDU ANGLES
028290,000045: 34,3520 77414 BONCLR EXIT
028291,000046: 34,3521 01202 32D
028292,000047: 34,3522 71602 MANUSTAT # TO START MANEUVER
028293,000048: 34,3523 37762 CAF TWO # +0 OTHERWISE
028294,000049: 34,3524 55653 INCRDCDU TS SPNDX
028295,000050: 34,3525 51653 INDEX SPNDX
028296,000051: 34,3526 31532 CA BCDU # INITIAL CDU ANGLES
028297,000052: 34,3527 00006 EXTEND # OR PREVIOUS DESIRED CDU ANGLES
028298,000053: 34,3530 51653 INDEX SPNDX
028299,000054: 34,3531 21601 MSU NCDU
028300,000055: 34,3532 00006 EXTEND
028301,000056: 34,3533 73601 MP DT/TAU
028302,000057: 34,3534 10000 CCS A # CONVERT TO 2S COMPLEMENT
028303,000058: 34,3535 67763 AD ONE
028304,000059: 34,3536 13540 TCF +2
028305,000060: 34,3537 40000 COM
028306,000061: 34,3540 51653 INDEX SPNDX
028307,000062: 34,3541 54771 TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO
028308,000063: 34,3542 51653 INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND
028309,000064: 34,3543 31601 CA NCDU # BY LEM DAP
028310,000065: 34,3544 51653 INDEX SPNDX
028311,000066: 34,3545 57532 XCH BCDU
028312,000067: 34,3546 51653 INDEX SPNDX
028313,000068: 34,3547 54766 TS CDUXD
028314,000069: 34,3550 11653 CCS SPNDX
028315,000070: 34,3551 13524 TCF INCRDCDU # LOOP FOR THREE AXES
028316,000071:
Page 669 |
028318,000073: # COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
028319,000074:
028320,000075: 34,3552 00006 TMANUCHK EXTEND
028321,000076: 34,3553 40025 DCS TIME2
028322,000077: 34,3554 53606 DXCH TTEMP
028323,000078: 34,3555 00006 EXTEND
028324,000079: 34,3556 31645 DCA TM
028325,000080: 34,3557 21606 DAS TTEMP # TM+T0-1-T
028326,000081: 34,3560 11605 CCS TTEMP
028327,000082: 34,3561 13642 TCF CONTMANU # (TM+T0)-T G 164 SEC
028328,000083: 34,3562 13564 TCF +2
028329,000084: 34,3563 13640 TCF OVERMANU # (TM+T0)-T L -164 SEC
028330,000085: 34,3564 11606 CCS TTEMP +1
028331,000086: 34,3565 13642 TCF CONTMANU # (TM+T0)-T G 1 SEC
028332,000087: 34,3566 13570 TCF MANUOFF # (TM+T0)-T E 1 SEC
028333,000088: 34,3567 40000 COM # (TM+T0)-T L 1 SEC
028334,000089: 34,3570 63637 MANUOFF AD ONESEK +1 # (TM+T0)-T E 1 SEC
028335,000090: 34,3571 00006 EXTEND
028336,000091: 34,3572 63640 BZMF OVERMANU # THIS IS A SAFETY PLAY
028337,000092: 34,3573 00004 MANUSTAL INHINT # PREPARE TO STOP THE MANEUVER
028338,000093: 34,3574 05663 TC WAITLIST
028339,000094: 34,3575 E3,1605 EBANK= TTEMP
028340,000095: 34,3575 03666 70063 2CADR MANUSTOP
028341,000096:
028342,000097: 34,3577 00003 RELINT
028343,000098: 34,3600 15567 TCF ENDOFJOB
028344,000099:
028345,000100: 34,3601 03146 DT/TAU DEC .1
028346,000101:
028347,000102: 34,3602 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE
028348,000103: 34,3603 00006 EXTEND # FOR AUTOMATIC MANEUVERS
028349,000104: 34,3604 30025 DCA TIME2
028350,000105: 34,3605 21645 DAS TM # TM+T0 MANEUVER COMPLETION TIME
028351,000106: 34,3606 00006 EXTEND
028352,000107: 34,3607 43637 DCS ONESEK
028353,000108: 34,3610 21645 DAS TM # (TM+T0)-1
028354,000109: 34,3611 00004 INHINT
028355,000110: 34,3612 31634 CA BRATE # X-AXIS MANEUVER RATE
028356,000111: 34,3613 54774 TS OMEGAPD
028357,000112: 34,3614 31636 CA BRATE +2 # Y-AXIS MANEUVER RATE
028358,000113: 34,3615 54775 TS OMEGAQD
028359,000114: 34,3616 31640 CA BRATE +4 # Z-AXIS MANEUVER RATE
028360,000115: 34,3617 54776 TS OMEGARD
028361,000116:
028362,000117: 34,3620 00006 EXTEND
028363,000118: 34,3621 30034 DCA CDUY
028364,000119: 34,3622 52770 DXCH CDUYD
028365,000120: 34,3623 30032 CAE CDUX
028366,000121: 34,3624 54766 TS CDUXD
028367,000122: 34,3625 05270 TC IBNKCALL
Page 670 |
028369,000124: 34,3626 40046 FCADR SETMINDB
028370,000125: 34,3627 00003 RELINT
028371,000126: 34,3630 30025 CA TIME1
028372,000127: 34,3631 63637 AD ONESEK +1
028373,000128: 34,3632 57604 XCH NEXTIME
028374,000129: 34,3633 06060 TC FLAG2UP # SET BIT 11 OF FLAGWRD2
028375,000130: 34,3634 02000 OCT 2000 # TO SIGNAL KALCMANU IN PROCESS
028376,000131: 34,3635 13523 TCF INCRDCDU -1
028377,000132:
028378,000133: 34,3636 00000 ONESEK DEC 0 B-14
028379,000134: 34,3637 00144 DEC 100 B-14
028380,000135:
028381,000136: 34,3640 37763 OVERMANU CAF ONE # SAFETY PLAY
028382,000137: 34,3641 13573 TCF MANUSTAL
028383,000138:
028384,000139: 34,3642 40025 CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE
028385,000140: 34,3643 61604 AD NEXTIME
028386,000141: 34,3644 10000 CCS A
028387,000142: 34,3645 67763 AD ONE
028388,000143: 34,3646 13651 TCF MANUCALL
028389,000144: 34,3647 67745 AD NEGMAX
028390,000145: 34,3650 40000 COM
028391,000146: 34,3651 00004 MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST
028392,000147: 34,3652 05663 TC WAITLIST
028393,000148: 34,3653 E3,1605 EBANK= TTEMP
028394,000149: 34,3653 03661 70063 2CADR UPDTCALL
028395,000150:
028396,000151: 34,3655 00003 RELINT
028397,000152: 34,3656 33637 CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE
028398,000153: 34,3657 27604 ADS NEXTIME
028399,000154: 34,3660 15567 TCF ENDOFJOB
028400,000155:
028401,000156:
028402,000157:
028403,000158: 34,3661 35655 UPDTCALL CAF PRIO34 # SATELLITE PROGRAM TO CALL FOR UPDATE
028404,000159: 34,3662 05516 TC FINDVAC # OF STEERING COMMANDS
028405,000160: 34,3663 E3,1605 EBANK= TTEMP
028406,000161: 34,3663 03476 70063 2CADR NEWDELHI
028407,000162:
028408,000163: 34,3665 05727 TC TASKOVER
028409,000164:
Page 671 |
028411,000166: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
028412,000167:
028413,000168: 34,3666 37767 MANUSTOP CAF ZERO # ZERO MANEUVER RATES
028414,000169: 34,3667 54773 TS DELDCDU2
028415,000170: 34,3670 54776 TS OMEGARD
028416,000171: 34,3671 54772 TS DELDCDU1
028417,000172: 34,3672 54775 TS OMEGAQD
028418,000173: 34,3673 31633 CA CPSI # SET DESIRED GIMBAL ANGLES TO
028419,000174: 34,3674 54770 TS CDUZD # DESIRED FINAL GIMBAL ANGLES
028420,000175: 34,3675 31632 CA CTHETA
028421,000176: 34,3676 54767 TS CDUYD
028422,000177: 34,3677 30076 CA STATE +2 # CHECK TO SEE IF A FINAL YAW NECESSARY
028423,000178: 34,3700 77746 MASK BIT14
028424,000179: 34,3701 00006 EXTEND
028425,000180: 34,3702 13714 BZF KALCROLL
028426,000181: 34,3703 31631 ENDROLL CA CPHI # NO FINAL YAW
028427,000182: 34,3704 54766 TS CDUXD
028428,000183: 34,3705 37767 CAF ZERO
028429,000184: 34,3706 54774 TS OMEGAPD # I.E. MANEUVER DID NOT GO THRU
028430,000185: 34,3707 54771 TS DELDCDU # GIMBAL LOCK ORIGINALLY
028431,000186: 34,3710 06076 GOODMANU TC FLAG2DWN # RESET BIT 11 OF FLAGWRD2 TO SIGNAL END
028432,000187: 34,3711 02000 OCT 2000 # OF KALCMANU
028433,000188: 34,3712 05225 TC POSTJUMP # RETURN UNDER WAITLIST VIA GOODEND
028434,000189: 34,3713 73520 CADR CHKAKS
028435,000190:
028436,000191: 35,3520 BANK 35
028437,000192: 35,3520 E3,1605 EBANK= TTEMP
028438,000193: 35,3520 37762 CHKAKS CAF TWO
028439,000194: 35,3521 55653 AKLOOP TS SPNDX # CHECK THE MAGNITUDE OF THE ATTITUDE
028440,000195: 35,3522 50000 INDEX A # ERROR ON COMPLETION OF A KALCMANU
028441,000196: 35,3523 30766 CA CDUXD # SUPERVISED MANEUVER
028442,000197: 35,3524 00006 EXTEND
028443,000198: 35,3525 51653 INDEX SPNDX # I.E. CDUD - CDU
028444,000199: 35,3526 20032 MSU CDUX
028445,000200: 35,3527 10000 CCS A # IF THE MAGNITUDE OF THE ERROR EXCEEDS
028446,000201: 35,3530 63545 AD =-5DEG # 5 DEGREES ON ANY AXIS DISPLAY AN ALARM
028447,000202: 35,3531 13533 TCF CHECKASG # INDICATING THAT SPACECRAFT MAY NOT HAVE
028448,000203: 35,3532 63545 AD =-5DEG # ACHIEVED THE DESIRED ATTITUDE.
028449,000204: 35,3533 00006 CHECKASG EXTEND
028450,000205: 35,3534 63540 BZMF AKOK
028451,000206: 35,3535 04755 TC ALARM
028452,000207: 35,3536 01412 OCT 01412
028453,000208: 35,3537 13542 TCF ENDKMANU
028454,000209:
028455,000210: 35,3540 11653 AKOK CCS SPNDX
028456,000211: 35,3541 13521 TCF AKLOOP
028457,000212:
028458,000213: 35,3542 36311 ENDKMANU CAF THREE # TERMINATE KALCMANU VIA GOODEND
028459,000214: 35,3543 05225 TC POSTJUMP
028460,000215: 35,3544 26720 CADR GOODEND
028461,000216:
Page 672 |
028463,000218: 35,3545 77070 =-5DEG DEC -455 B-14 # =-5 DEGREES SCALED 180 DEG
028464,000219:
028465,000220:
028466,000221:
028467,000222: 34,3714 BANK 34
028468,000223: 34,3714 E3,1605 EBANK= TTEMP
028469,000224: 34,3714 30076 KALCROLL CA STATE +2 # STATE SWITCH NO. 33
028470,000225: 34,3715 77750 MASK BIT12 # 0(OFF) = PERFORM A FINAL YAW
028471,000226: 34,3716 00006 EXTEND # IF NECESSARY
028472,000227: 34,3717 13721 BZF DOROLL # 1(ON) = IGNORE ANY FINAL YAW
028473,000228: 34,3720 13705 TCF ENDROLL +2
028474,000229: 34,3721 31631 DOROLL CA CPHI
028475,000230: 34,3722 00006 EXTEND # PERFORM A FINAL ROLL TO
028476,000231: 34,3723 20766 MSU CDUXD # COMPLETE AUTOMATIC MANEUVER
028477,000232: 34,3724 00006 EXTEND
028478,000233: 34,3725 63735 BZMF FROLLNEG
028479,000234: 34,3726 54001 FROLLPOS TS L
028480,000235: 34,3727 33754 CA ROLLRATE
028481,000236: 34,3730 54774 TS OMEGAPD
028482,000237: 34,3731 43755 CS DELFROLL
028483,000238: 34,3732 67763 AD ONE
028484,000239: 34,3733 54771 TS DELDCDU
028485,000240: 34,3734 13743 TCF ROLLSTAL
028486,000241: 34,3735 40000 FROLLNEG COM
028487,000242: 34,3736 54001 TS L
028488,000243: 34,3737 43754 CS ROLLRATE
028489,000244: 34,3740 54774 TS OMEGAPD
028490,000245: 34,3741 33755 CA DELFROLL
028491,000246: 34,3742 54771 TS DELDCDU
028492,000247: 34,3743 30001 ROLLSTAL CA L # ABS(CPHI-CDUXD)
028493,000248: 34,3744 00006 EXTEND
028494,000249: 34,3745 73756 MP INVRATE
028495,000250: 34,3746 00006 EXTEND
028496,000251: 34,3747 63703 BZMF ENDROLL
028497,000252: 34,3750 05663 TC WAITLIST
028498,000253: 34,3751 E3,1605 EBANK= TTEMP
028499,000254: 34,3751 03703 70063 2CADR ENDROLL
028500,000255:
028501,000256: 34,3753 05727 TC TASKOVER
028502,000257:
028503,000258: 34,3754 01320 ROLLRATE DEC 720 B-14 # = 1.98 DEGREES/SEC
028504,000259: 34,3755 00022 DELFROLL DEC 18 B-14 # MUST BE A WHOLE NUMBER
028505,000260: 34,3756 21616 INVRATE DEC .555555
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc