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