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