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. |
035420,000002: ## Copyright: Public domain.
035421,000003: ## Filename: TUMBLE_MONITOR.agc
035422,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
035423,000005: ## is part of the source code for the Lunar Module's
035424,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
035425,000007: ## Assembler: yaYUL
035426,000008: ## Contact: Ron Burkey <info@sandroid.org>.
035427,000009: ## Website: www.ibiblio.org/apollo/index.html
035428,000010: ## Mod history: 2016-09-30 RSB Created draft version.
035429,000011: ## 2016-10-29 MAS Transcribed.
035430,000012: ## 2016-12-06 RSB Comment-proofing via octopus/ProoferComments;
035431,000013: ## changes were made.
035432,000014:
![]() |
Page 832 |
035434,000016: # PROGRAM DETECTS SPIN ABOUT NAV.AXES AND SETS BIT 13 OF FLAGWORD1 ON IF SPIN IS IN EXCESS OF 2.99 DEGREES/SEC .
035435,000017: # NO CONTROL ACTION IS EXERTED . TO DISCONTINUE MONITORING , TURN BIT 14 OF FLAGWORD1 OFF . TO INITIATE MONITOR ,
035436,000018: # SET UP WAITLIST CALL FOR TUMTASK. IT IS ASSUMED THAT THE IMU,S ARE IN FINE ALIGN .
035437,000019:
035438,000020:
035439,000021:
035440,000022: # NAME= DATE=
035441,000023: # TUMBLE MONITOR 29 AUGUST 1966
035442,000024: # PROGRAMMER= REVISIONS=
035443,000025: # G.MANSBACH EXT-182 NANSTONE/2
035444,000026: # NANSTONE/7
035445,000027: # NANSTONE/15 10/27/66
035446,000028: # NANSTONE/3 11/12/66
035447,000029: # CALLING SEQUENCE= SUBROUTINES CALLED=
035448,000030: # CAF (DT) FLAG1UP
035449,000031: # TC WAITLIST FLAG1DOWN
035450,000032: # EBANK= OMEGA
035451,000033: # 2CADR TUMTASK
035452,000034: # NORMAL EXIT MODES= ABORT MODE=
035453,000035: # TC TASKOVER TURN BIT 14 OF FLAGWORD1 OFF
035454,000036: # OUTPUT=
035455,000037: # SET BIT 13 OF FLAGWORD1 ON/OFF
035456,000038: # DEBRIS=
035457,000039: # PCDUY,PCDUZ,PCDUX,DCDUY,DCDUZ,OMEGA
035458,000040: 30,2470 BANK 30
035459,000041: 30,2470 E6,1422 EBANK= OMEGA
035460,000042: # INITIALIZATION ROUTINE FOR TUMBLE
035461,000043: # MONITOR
035462,000044:
035463,000045: 30,2470 04161 TUMTASK TC PHASCHNG # IMMEDIATE RECALL
035464,000046: 30,2471 05013 OCT 05013 # *TUMTASK*
035465,000047: 30,2472 77777 OCT 77777
035466,000048: 30,2473 06051 TC FLAG1UP # TURN TUMBLE MONITOR ON
035467,000049: 30,2474 20000 OCT 20000
035468,000050: 30,2475 02547 TC RESET
035469,000051: 30,2476 05727 TC TASKOVER
035470,000052:
035471,000053:
035472,000054: 30,2477 37746 TMTSK CA BIT14
035473,000055: 30,2500 70075 MASK FLAGWRD1 # IS TUMBLE MONITOR STILL NEEDED
035474,000056: 30,2501 00006 EXTEND
035475,000057: 30,2502 12542 BZF EOTUM # IT IS NOT. DISCONTINUE MONITORING
035476,000058:
035477,000059: 30,2503 02547 TC RESET # IT IS.
035478,000060: # COMPUTE ROTATION RATE ABOUT PILOT AXES
035479,000061: # USING OUTPUT OF *TRANSFORMATION MATRIX
035480,000062: # CALCULATION* OF *TRUPT PROGRAM*
035481,000063:
035482,000064: # COMPUTE
035483,000065: # * OMEGAX * * * * DCDUY *
![]() |
Page 833 |
035485,000067: # * OMEGAY * = * M * X * DCDUZ *
035486,000068: # * OMEGAZ * * GP * *+DCDUX *
035487,000069:
035488,000070: 30,2504 55422 TS OMEGA # COMPUTE OMEGAX
035489,000071: 30,2505 31404 CA M11
035490,000072: 30,2506 02526 TC EVAL
035491,000073: 30,2507 31401 CA M22 # COMPUTE OMEGAY
035492,000074: 30,2510 00006 EXTEND
035493,000075: 30,2511 71420 MP DCDUZ
035494,000076: 30,2512 55422 TS OMEGA
035495,000077: 30,2513 31405 CA M21
035496,000078: 30,2514 02526 TC EVAL
035497,000079: 30,2515 31403 CA M32 # COMPUTE OMEGAZ
035498,000080: 30,2516 00006 EXTEND
035499,000081: 30,2517 71420 MP DCDUZ
035500,000082: 30,2520 55422 TS OMEGA
035501,000083: 30,2521 31406 CA M31
035502,000084: 30,2522 02526 TC EVAL
035503,000085: # NO TUMBLE NOTED
035504,000086: 30,2523 06067 TC FLAG1DWN # REMOVE TUMBLE FLAG
035505,000087: 30,2524 10000 OCT 10000
035506,000088: 30,2525 05727 TC TASKOVER
035507,000089: 30,2526 00006 EVAL EXTEND # COMPLETE OMEGA CALCULATION
035508,000090: 30,2527 71416 MP DCDUY
035509,000091: 30,2530 61422 AD OMEGA # SCALE FACTOR OF PI
035510,000092: # EVALUATE TUMBLE RATE
035511,000093: 30,2531 00006 EXTEND # SET ALL VALUES NEG.
035512,000094: 30,2532 62534 BZMF +2
035513,000095: 30,2533 40000 CS A
035514,000096: 30,2534 62546 AD CRIT # CAUSE UNDERFLOW IF OMEGA IS GREATER THAN
035515,000097: 30,2535 54000 OVSK # OR = TO 2.99 DEGREES/SEC
035516,000098: 30,2536 00002 RETURN # NO TUMBLE . EVALUATE NEXT AXIS
035517,000099:
035518,000100: # EXCESSIVE TUMBLE NOTED ABOUT AN AXIS
035519,000101: 30,2537 06051 TC FLAG1UP # SET TUMBLE FLAG AND DISCONTINUE CALCS.
035520,000102: 30,2540 10000 OCT 10000
035521,000103: 30,2541 05727 TC TASKOVER
035522,000104: 30,2542 04161 EOTUM TC PHASCHNG
035523,000105: 30,2543 00003 OCT 3
035524,000106: 30,2544 05727 TC TASKOVER
035525,000107: 30,2545 00144 1SECTM DEC 100 B-14 # 1 SECOND
035526,000108: 30,2546 40417 CRIT OCT 40417 # NEGMAX + 00417 421 = 2.99 DEGREES
035527,000109:
035528,000110:
035529,000111: # RECALL MONITOR IN
035530,000112: # 1 SECOND
035531,000113: 30,2547 00006 RESET EXTEND
035532,000114: 30,2550 23422 QXCH OMEGA
035533,000115: 30,2551 32545 CA 1SECTM
035534,000116: 30,2552 05663 TC WAITLIST
![]() |
Page 834 |
035536,000118: 30,2553 E6,1422 EBANK= OMEGA
035537,000119: 30,2553 02477 60066 2CADR TMTSK
035538,000120: # STORE PRESENT CDU(X,Y,Z) AND
035539,000121: # COMPUTE DELTA(CDU(X,Y,Z)/SEC =
035540,000122: # DCDU(X,Y,Z)
035541,000123: 30,2555 30033 CA CDUY # FOR Y-AXIS
035542,000124: 30,2556 57412 XCH PCDUY # STORE PRESENT VALUE AND RECOVER PREVIOUS
035543,000125: 30,2557 00006 EXTEND
035544,000126: 30,2560 20033 MSU CDUY
035545,000127: 30,2561 55416 TS DCDUY # = CDUX(T-1)-CDUX(T)
035546,000128: 30,2562 30034 CA CDUZ # FOR Z-AXIS
035547,000129: 30,2563 57413 XCH PCDUZ
035548,000130: 30,2564 00006 EXTEND
035549,000131: 30,2565 20034 MSU CDUZ
035550,000132: 30,2566 55420 TS DCDUZ
035551,000133: 30,2567 30032 CA CDUX # FOR X-AXIS
035552,000134: 30,2570 57411 XCH PCDUX
035553,000135: 30,2571 00006 EXTEND
035554,000136: 30,2572 20032 MSU CDUX
035555,000137: 30,2573 01422 TC OMEGA
End of include-file TUMBLE_MONITOR.agc. Parent file is MAIN.agc