Source Code
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
034952,000002: ## Copyright: Public domain.
034953,000003: ## Filename: TUMBLE_MONITOR.agc
034954,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
034955,000005: ## It is part of an early development version of the software
034956,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
034957,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
034958,000008: ## upon which Don Eyles's offline development program Shepatin
034959,000009: ## was based; the listing herein transcribed was actually for
034960,000010: ## the equivalent revision 0 of Shepatin.
034961,000011: ## This file is intended to be a faithful transcription, except
034962,000012: ## that the code format has been changed to conform to the
034963,000013: ## requirements of the yaYUL assembler rather than the
034964,000014: ## original YUL assembler.
034965,000015: ## Reference: pp. 777-779
034966,000016: ## Assembler: yaYUL
034967,000017: ## Contact: Ron Burkey <info@sandroid.org>.
034968,000018: ## Website: www.ibiblio.org/apollo/index.html
034969,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
034970,000020: ## 2017-06-13 HG Transcribed
034971,000021: ## 2017-06-23 RSB Proofed comment text with
034972,000022: ## octopus/ProoferComments.
034973,000023:
Page 777 |
034975,000025: # PROGRAM DETECTS SPIN ABOUT NAV.AXES AND SETS BIT 13 OF FLAGWORD1 ON IF SPIN IS IN EXCESS OF 2.99 DEGREES/SEC .
034976,000026: # NO CONTROL ACTION IS EXERTED . TO DISCONTINUE MONITORING , TURN BIT 14 OF FLAGWORD1 OFF . TO INITIATE MONITOR ,
034977,000027: # SET UP WAITLIST CALL FOR TUMTASK. IT IS ASSUMED THAT THE IMU,S ARE IN FINE ALIGN .
034978,000028:
034979,000029:
034980,000030:
034981,000031: # NAME= DATE=
034982,000032: # TUMBLE MONITOR 29 AUGUST 1966
034983,000033:
034984,000034: # PROGRAMMER= REVISIONS=
034985,000035: # G.MANSBACH EXT-182 NANSTONE/2
034986,000036: # NANSTONE/7
034987,000037: # NANSTONE/15 10/27/66
034988,000038: # NANSTONE/3 11/12/66
034989,000039: # CALLING SEQUENCE= SUBROUTINES CALLED=
034990,000040: # CAF (DT) FLAG1UP
034991,000041: # TC WAITLIST FLAG1DOWN
034992,000042: # EBANK= OMEGA
034993,000043: # 2CADR TUMTASK
034994,000044:
034995,000045: # NORMAL EXIT MODES= ABORT MODE=
034996,000046: # TC TASKOVER TURN BIT 14 OF FLAGWORD1 OFF
034997,000047: # OUTPUT=
034998,000048: # SET BIT 13 OF FLAGWORD1 ON/OFF
034999,000049: # DEBRIS=
035000,000050: # PCDUY,PCDUZ,PCDUX,DCDUY,DCDUZ,OMEGA
035001,000051: 30,2402 BANK 30
035002,000052: 30,2402 E6,1423 EBANK= OMEGA
035003,000053: # INITIALIZATION ROUTINE FOR TUMBLE
035004,000054: # MONITOR
035005,000055:
035006,000056: 30,2402 04147 TUMTASK TC PHASCHNG # IMMEDIATE RECALL
035007,000057:
035008,000058: 30,2403 05013 OCT 05013 # *TUMTASK*
035009,000059: 30,2404 77777 OCT 77777
035010,000060: 30,2405 06020 TC FLAG1UP # TURN TUMBLE MONITOR ON
035011,000061: 30,2406 20000 OCT 20000
035012,000062: 30,2407 02461 TC RESET
035013,000063: 30,2410 05745 TC TASKOVER
035014,000064:
035015,000065:
035016,000066: 30,2411 37740 TMTSK CA BIT14
035017,000067: 30,2412 70075 MASK FLAGWRD1 # IS TUMBLE MONITOR STILL NEEDED
035018,000068:
035019,000069: 30,2413 00006 EXTEND
035020,000070: 30,2414 12454 BZF EOTUM # IT IS NOT. DISCONTINUE MONITORING
035021,000071:
035022,000072: 30,2415 02461 TC RESET # IT IS.
035023,000073: # COMPUTE ROTATION RATE ABOUT PILOT AXES
035024,000074: # USING OUTPUT OF *TRANSFORMATION MATRIX
035025,000075: # CALCULATION* OF *TRUPT PROGRAM*
035026,000076:
035027,000077: # COMPUTE
035028,000078: # * OMEGAX * * * * DCDUY *
035029,000079:
Page 778 |
035031,000081: # * OMEGAY * = * M * X * DCDUZ *
035032,000082:
035033,000083: # * OMEGAZ * * GP * *+DCDUX *
035034,000084:
035035,000085: 30,2416 55423 TS OMEGA # COMPUTE OMEGAX
035036,000086: 30,2417 31404 CA M11
035037,000087: 30,2420 02440 TC EVAL
035038,000088: 30,2421 31401 CA M22 # COMPUTE OMEGAY
035039,000089: 30,2422 00006 EXTEND
035040,000090: 30,2423 71421 MP DCDUZ
035041,000091: 30,2424 55423 TS OMEGA
035042,000092: 30,2425 31405 CA M21
035043,000093: 30,2426 02440 TC EVAL
035044,000094: 30,2427 31403 CA M32 # COMPUTE OMEGAZ
035045,000095:
035046,000096: 30,2430 00006 EXTEND
035047,000097: 30,2431 71421 MP DCDUZ
035048,000098: 30,2432 55423 TS OMEGA
035049,000099: 30,2433 31406 CA M31
035050,000100: 30,2434 02440 TC EVAL
035051,000101: # NO TUMBLE NOTED
035052,000102: 30,2435 06036 TC FLAG1DWN # REMOVE TUMBLE FLAG
035053,000103: 30,2436 10000 OCT 10000
035054,000104: 30,2437 05745 TC TASKOVER
035055,000105: 30,2440 00006 EVAL EXTEND # COMPLETE OMEGA CALCULATION
035056,000106:
035057,000107: 30,2441 71417 MP DCDUY
035058,000108: 30,2442 61423 AD OMEGA # SCALE FACTOR OF PI
035059,000109: # EVALUATE TUMBLE RATE
035060,000110: 30,2443 00006 EXTEND # SET ALL VALUES NEG.
035061,000111: 30,2444 62446 BZMF +2
035062,000112: 30,2445 40000 CS A
035063,000113: 30,2446 62460 AD CRIT # CAUSE UNDERFLOW IF OMEGA IS GREATER THAN
035064,000114: 30,2447 54000 OVSK # OR = TO 2.99 DEGREES/SEC
035065,000115: 30,2450 00002 RETURN # NO TUMBLE . EVALUATE NEXT AXIS
035066,000116:
035067,000117: # EXCESSIVE TUMBLE NOTED ABOUT AN AXIS
035068,000118: 30,2451 06020 TC FLAG1UP # SET TUMBLE FLAG AND DISCONTINUE CALCS.
035069,000119: 30,2452 10000 OCT 10000
035070,000120: 30,2453 05745 TC TASKOVER
035071,000121: 30,2454 04147 EOTUM TC PHASCHNG
035072,000122: 30,2455 00003 OCT 3
035073,000123: 30,2456 05745 TC TASKOVER
035074,000124: 30,2457 00144 1SECTM DEC 100 B-14 # 1 SECOND
035075,000125: 30,2460 40417 CRIT OCT 40417 # NEGMAX + 00417 421 = 2.99 DEGREES
035076,000126:
035077,000127:
035078,000128: # RECALL MONITOR IN
035079,000129: # 1 SECOND
035080,000130: 30,2461 00006 RESET EXTEND
035081,000131: 30,2462 23423 QXCH OMEGA
035082,000132: 30,2463 32457 CA 1SECTM
035083,000133: 30,2464 05701 TC WAITLIST
035084,000134:
Page 779 |
035086,000136: 30,2465 E6,1423 EBANK= OMEGA
035087,000137: 30,2465 02411 60066 2CADR TMTSK
035088,000138: # STORE PRESENT CDU(X,Y,Z) AND
035089,000139: # COMPUTE DELTA(CDU(X,Y,Z)/SEC =
035090,000140: # DCDU(X,Y,Z)
035091,000141: 30,2467 30033 CA CDUY # FOR Y-AXIS
035092,000142:
035093,000143: 30,2470 57412 XCH PCDUY # STORE PRESENT VALUE AND RECOVER PREVIOUS
035094,000144: 30,2471 00006 EXTEND
035095,000145: 30,2472 20033 MSU CDUY
035096,000146: 30,2473 55417 TS DCDUY # = CDUX(T-1)-CDUX(T)
035097,000147: 30,2474 30034 CA CDUZ # FOR Z-AXIS
035098,000148: 30,2475 57413 XCH PCDUZ
035099,000149: 30,2476 00006 EXTEND
035100,000150: 30,2477 20034 MSU CDUZ
035101,000151: 30,2500 55421 TS DCDUZ
035102,000152: 30,2501 30032 CA CDUX # FOR X-AXIS
035103,000153: 30,2502 57411 XCH PCDUX
035104,000154: 30,2503 00006 EXTEND
035105,000155:
035106,000156: 30,2504 20032 MSU CDUX
035107,000157: 30,2505 01423 TC OMEGA
End of include-file TUMBLE_MONITOR.agc. Parent file is MAIN.agc