Source Code
![]() |
This is the source-code for the Apollo 9 Command Module's Guidance Computer.
These files were derived originally from the scan from MIT's Dibner Institute's
now-discontinued website titled "History of Recent Science and Technology", which
in turn was originally created by Gary Neff, though his high-quality scans were
unfortunately reduced in legibility when presented online.
The markings on the front of the
printout imply that it was the original AGC developer Norm Brodeur's copy.
A scan by Ron Burkey has superceded it, made from a more-legible copy from the collection of original
AGC developer Fred Martin. The source code was transcribed from
those images by Ron Burkey. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:ASSEMBLE REVISION 249 OF AGC PROGRAM COLOSSUS BY NASA 2021111-041 20'35 OCT. 28,1968Note that the date is the date of the printout, not the date of the program revision. |
022078,000002: ## Copyright: Public domain.
022079,000003: ## Filename: R30.agc
022080,000004: ## Purpose: Part of the source code for Colossus, build 249.
022081,000005: ## It is part of the source code for the Command Module's (CM)
022082,000006: ## Apollo Guidance Computer (AGC), for Apollo 9.
022083,000007: ## Assembler: yaYUL
022084,000008: ## Reference: pp. 505-515.
022085,000009: ## Contact: Ron Burkey <info@sandroid.org>.
022086,000010: ## Website: www.ibiblio.org/apollo.
022087,000011: ## Mod history: 08/02/04 RSB. Adapted from corresponding Luminary131 file.
022088,000012: ## 2017-01-06 RSB Page numbers now agree with those on the
022089,000013: ## original harcopy, as opposed to the PDF page
022090,000014: ## numbers in 1701.pdf.
022091,000015: ## 2017-01-18 RSB Cross-diff'd comment text (not whitespace)
022092,000016: ## vs the already-proofed corresponding Colossus
022093,000017: ## 237 and Comanche 55 source-code files
022094,000018: ## and corrected errors found.
022095,000019: ## 2017-02-08 RSB Comment-text fixes discovered while proofing Artemis 72.
022096,000020: ##
022097,000021: ## The contents of the "Colossus249" files, in general, are transcribed
022098,000022: ## from a scanned copy of the program listing. Notations on this
022099,000023: ## document read, in part:
022100,000024: ##
022101,000025: ## Assemble revision 249 of AGC program Colossus by NASA
022102,000026: ## 2021111-041. October 28, 1968.
022103,000027: ##
022104,000028: ## This AGC program shall also be referred to as
022105,000029: ## Colossus 1A
022106,000030: ##
022107,000031: ## Prepared by
022108,000032: ## Massachusetts Institute of Technology
022109,000033: ## 75 Cambridge Parkway
022110,000034: ## Cambridge, Massachusetts
022111,000035: ## under NASA contract NAS 9-4065.
022112,000036: ##
022113,000037: ## Refer directly to the online document mentioned above for further information.
022114,000038: ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
022115,000039: ##
022116,000040: ## In some cases, where the source code for Luminary 131 overlaps that of
022117,000041: ## Colossus 249, this code is instead copied from the corresponding Luminary 131
022118,000042: ## source file, and then is proofed to incorporate any changes.
022119,000043:
![]() |
Page 505 |
022121,000045: # SUBROUTINE NAME: V82CALL
022122,000046: # MOD NO: 0 DATE: 16 FEB 67
022123,000047: # MOD BY: RR BAIRNSFATHER LOG SECTION: R30
022124,000048: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
022125,000049: # MOD NO: 2 MOD BY ALONSO DATE: 11 DEC 67 VB82 PROGRAM REWRITTEN
022126,000050: # MOD NO: 3 MOD BY ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
022127,000051:
022128,000052: # NEW FUNCTIONAL DESCRIPTION: CALLED BY VERB 82 ENTER. PRIORITY 10
022129,000053: # USED THROUGHOUT. CALCULATE AND DISPLAY ORBITAL PARAMETERS
022130,000054:
022131,000055: # 1. IF AVERAGE G IS OFF:
022132,000056: # FLASH DISPLAY V04N06. R2 INDICATES WHICH SHIP'S STATE VECTOR IS
022133,000057: # TO BE UPDATED. INITIAL CHOICE IS THIS SHIP (R2=1). ASTRONAUT
022134,000058: # CAN CHANGE TO OTHER SHIP BY V22EXE, WHERE X NOT EQ 1.
022135,000059: # SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC).
022136,000060: # CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE
022137,000061: # RPER (PERIGEE RADIUS), RAPO (APOGEE RADIUS), HPER (PERIGEE
022138,000062: # HEIGHT ABOVE LAUNCH PAD OR LUNAR LANDING SITE), HAPO (APOGEE
022139,000063: # HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO
022140,000064: # INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
022141,000065: # FLASH MONITOR V16N44 (HAPO, HPER, TFF). TFF IS -59M59S IF IT WAS
022142,000066: # NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND.
022143,000067: # ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E.
022144,000068: # DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS
022145,000069: # ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S.
022146,000070: # 2. IF AVERAGE G IS ON:
022147,000071: # CALLS SR30.1 APPROX EVERY TWO SECS. STATE VECTOR IS ALWAYS
022148,000072: # FOR THIS VEHICLE. V82 DOES NOT DISTURB STATE VECTOR. RESULTS
022149,000073: # OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF.
022150,000074: # FLASH MONITOR V16N44 (HAPO, HPER, TFF).
022151,000075: # IF MODE IS P11, THEN CALL DELRSPL SO ASTRONAUT CAN MONITOR
022152,000076: # RESULTS BY N50E. SPLASH COMPUTATION DONE ONCE PER TWO SECS.
022153,000077: # ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
022154,000078: # ABOVE REMARKS.
022155,000079:
022156,000080: # CALLING SEQUENCE: VERB 82 ENTER.
022157,000081:
022158,000082: # SUBROUTINES CALLED: SR30.1, GOXDSPF
022159,000083: # MAYBE - THISPREC, OTHPREC, LOADTIME, DELRSPL
022160,000084:
022161,000085: # NORMAL EXIT MODES: TC ENDEXT
022162,000086:
022163,000087: # ALARMS: NONE
022164,000088:
022165,000089: # OUTPUT: HAPOX (-29) M
022166,000090: # HPERX (-29) M
022167,000091: # RAPO (-29) M EARTH
022168,000092: # (-27) M MOON
![]() |
Page 506 |
022170,000094: # RPER (-29) M EARTH
022171,000095: # (-27) M MOON
022172,000096: # TFF (-28) CS CONTAINS NEGATIVE QUANTITY
022173,000097: # -TPER (-28) CS CONTAINS NEGATIVE QUANTITY
022174,000098: # RSP-RREC(-29) M IF DELRSPL CALLED
022175,000099:
022176,000100: # ERASABLE INITIALIZATION REQUIRED: STATE VECTOR.
022177,000101:
022178,000102: # DEBRIS: QPRET, RONE, VONE, TFF/RTMU, HPERMIN, RPADTEM, V82EMFLG.
022179,000103: # MAYBE: TSTART82, V82FLAGS, TDEC1.
022180,000104:
022181,000105: 13,2176 E4,1751 EBANK= HAPOX
022182,000106: 31,2021 BANK 31
022183,000107: 23,2000 SETLOC R30LOC
022184,000108: 23,2000 BANK
022185,000109: 23,2332 COUNT* $$/R30
022186,000110:
022187,000111: 23,2332 06006 V82CALL TC INTPRET
022188,000112: 23,2333 52014 BON GOTO
022189,000113: 23,2334 00716 AVEGFLAG
022190,000114: 23,2335 46566 V82GON # IF AVERAGE G ON
022191,000115: 23,2336 46337 V82GOFF # IF AVERAGE G OFF
022192,000116:
022193,000117: 23,2337 77776 V82GOFF EXIT # ALLOW ASTRONAUT TO SELECT VEHICLE
022194,000118: 23,2340 34711 CAF TWO # DESIRED FOR ORBITAL PARAMETERS
022195,000119: 23,2341 55051 TS OPTIONX
022196,000120: 23,2342 34712 CAF ONE
022197,000121: 23,2343 55052 TS OPTIONX +1
022198,000122: 23,2344 32406 CAF OPTIONVN # V 04 N 06
022199,000123: 23,2345 04555 TC BANKCALL
022200,000124: 23,2346 20465 CADR GOXDSPF
022201,000125: 23,2347 05423 TC ENDEXT # TERMINATE
022202,000126: 23,2350 02352 TC +2 # PROCEED
022203,000127: 23,2351 02344 TC -5 # DATA IN. OPTIONX+1 = 1 FOR THIS VEHIC.
022204,000128: # UNEQ 1 FOR OTHER VEHICLE.
022205,000129: 23,2352 34707 CAF BIT4 # 80 MS
022206,000130: 23,2353 05140 TC WAITLIST
022207,000131: 23,2354 E4,1743 EBANK= TFF
022208,000132: 23,2354 02531 46064 2CADR TICKTEST
022209,000133:
022210,000134: 23,2356 00003 RELINT
022211,000135: 23,2357 32410 V82GOFLP CAF TFFBANK # MAJOR RECYCLE LOOP ENTRY
022212,000136: 23,2360 54003 TS EBANK
022213,000137: 23,2361 34714 CAF ZERO
022214,000138: 23,2362 55742 TS V82FLAGS # ZERO FLAGS FOR TICKTEST. INHIBITS
022215,000139: # DECREMENTING OF TFF AND -TPER.
022216,000140: 23,2363 34756 CAF PRIO7
022217,000141: 23,2364 05042 TC FINDVAC # V82GOFF1 WILL EXECUTE STATE VECTOR
![]() |
Page 507 |
022219,000143: 23,2365 E4,1743 EBANK= TFF # UPDATE AND ORBIT CALCULATIONS FOR
022220,000144: 23,2365 02411 46064 2CADR V82GOFF1 # SELECTED VEHICLE ABOUT PROPER BODY.
022221,000145:
022222,000146: 23,2367 00003 RELINT
022223,000147: 23,2370 36214 V82STALL CAF THREE # STALL IN THIS LOOP AND WITHOLD V 16 N 44
022224,000148: 23,2371 71742 MASK V82FLAGS # UNTIL STATE VECTOR UPDATE SETS ONE OF
022225,000149: 23,2372 10000 CCS A # OUR FLAG BITS.
022226,000150: 23,2373 02400 TC FLAGGON # EXIT FROM STALL LOOP.
022227,000151: 23,2374 34734 CAF 1SEC
022228,000152: 23,2375 04555 TC BANKCALL
022229,000153: 23,2376 01732 CADR DELAYJOB
022230,000154: 23,2377 02370 TC V82STALL
022231,000155:
022232,000156: 23,2400 32407 FLAGGON CAF V16N44 # MONITOR HAPO,HPER,TFF.
022233,000157: 23,2401 04555 TC BANKCALL
022234,000158: 23,2402 20465 CADR GOXDSPF
022235,000159: 23,2403 05514 TC B5OFF # TERM THIS TELLS TICKTEST TO KILL ITSELF
022236,000160: 23,2404 05514 TC B5OFF # PROCEED DITTO
022237,000161: 23,2405 02357 TC V82GOFLP # RECYCLE RECOMPUTE STATE VECT + DISPLAY
022238,000162:
022239,000163: 23,2406 01014 OPTIONVN VN 0412
022240,000164: 23,2407 04054 V16N44 VN 1644
022241,000165: 23,2410 02343 TFFBANK ECADR TFF
022242,000166:
022243,000167: 23,2411 06006 V82GOFF1 TC INTPRET
022244,000168: 23,2412 77634 RTB
022245,000169: 23,2413 45505 LOADTIME
022246,000170: 23,2414 00041 STORE TDEC1 # TIME FOR STATE VECTOR UPDATE.
022247,000171: 23,2415 02325 STORE TSTART82 # TIME FOR INTERNAL USE.
022248,000172: 23,2416 77776 EXIT
022249,000173: 23,2417 41052 CS OPTIONX +1 # 1 FOR THIS VEHICLE, NOT 1 FOR OTHER
022250,000174: 23,2420 64712 AD ONE
022251,000175: 23,2421 00006 EXTEND
022252,000176: 23,2422 12446 BZF THISSHIP
022253,000177: 23,2423 06006 OTHSHIP TC INTPRET
022254,000178: 23,2424 77624 CALL # CALL STATE VECTOR UPDATE FOR OTHER SHIP.
022255,000179: 23,2425 27036 OTHPREC
022256,000180: 23,2426 77775 BOTHSHIP VLOAD # MOVE RESULTS INTO TFFCONIC STORAGE AREAS
022257,000181: 23,2427 00001 RATT # TO BE CALLED BY SR30.1.
022258,000182: 23,2430 26327 STOVL RONE # RATT AT (-29)M FOR EARTH OR MOON
022259,000183: 23,2431 00007 VATT
022260,000184: 23,2432 02335 STORE VONE # VATT AT (-7)M/CS FOR EARTH OR MOON
022261,000185: 23,2433 77743 DLOAD*
022262,000186: 23,2434 71321 1/RTMUE,2 # X2 IS 0 FOR EARTH CENTERED STATE VEC
022263,000187: 23,2435 00037 STORE TFF/RTMU # X2 IS 2 FOR MOON
022264,000188: 23,2436 77743 DLOAD* # AS LEFT BY THISPREC OR OTHPREC.
022265,000189: 23,2437 71315 MINPERE,2
022266,000190: 23,2440 02321 STORE HPERMIN # TFFRTMU, HPERMIN AND RPADTEM ARE ALL
022267,000191: 23,2441 46135 SLOAD BHIZ # EARTH/MOON PARAMETERS AS SET HERE.
![]() |
Page 508 |
022269,000193: 23,2442 00050 X2
022270,000194: 23,2443 46463 EARTHPAD
022271,000195: 23,2444 77650 GOTO
022272,000196: 23,2445 46467 MOONPAD
022273,000197: 23,2446 06006 THISSHIP TC INTPRET
022274,000198: 23,2447 77624 CALL # CALL STATE VECTOR UPDATE FOR THIS SHIP.
022275,000199: 23,2450 27022 THISPREC
022276,000200: 23,2451 77650 GOTO
022277,000201: 23,2452 46426 BOTHSHIP
022278,000202:
022279,000203: # THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED. DO NOT SEPARATE PAIRS.
022280,000204:
022281,000205: 23,2453 27533 07571 1/RTMUM 2DEC* .45162595 E-4 B14*
022282,000206: 23,2455 25004 06702 1/RTMUE 2DEC* .50087529 E-5 B17*
022283,000207:
022284,000208: 23,2457 00001 11530 MINPERM 2DEC 10668 B-27 # 35 KFT MIN PERIGEE HEIGHT FOR MOON(-27)M
022285,000209: 23,2461 00002 31230 MINPERE 2DEC 91440 B-29 # 300 KFT (-29)M FOR EARTH
022286,000210:
022287,000211: 23,2463 43145 EARTHPAD DLOAD CLRGO # PAD 37-B RADIUS. SCALED AT (-29)M.
022288,000212: 23,2464 05311 RPAD
022289,000213: 23,2465 04622 V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
022290,000214: 23,2466 46473 BOTHPAD
022291,000215:
022292,000216: 23,2467 51575 MOONPAD VLOAD ABVAL # COMPUTE MOON PAD RADIUS FROM RLS VECTOR.
022293,000217: 23,2470 02026 RLS # SCALED AT (-27)M.
022294,000218: 23,2471 77614 SET
022295,000219: 23,2472 04462 V82EMFLG # INDICATE MOON SCALING FOR SR30.1
022296,000220: 23,2473 36323 BOTHPAD STCALL RPADTEM
022297,000221: 23,2474 46667 SR30.1 # CALCULATE ORBITAL PARAMETERS
022298,000222: 23,2475 77776 EXIT
022299,000223: 23,2476 31011 CA MODREG # ARE WE IN POO
022300,000224: 23,2477 00006 EXTEND
022301,000225: 23,2500 12645 BZF CANDEL # YES, DO DELRSPL
022302,000226: 23,2501 06006 SPLRET1 TC INTPRET
022303,000227: 23,2502 45234 RTB DSU
022304,000228: 23,2503 45505 LOADTIME
022305,000229: 23,2504 02325 TSTART82 # PRESENT TIME - TIME V82GOFF1 BEGAN
022306,000230: 23,2505 02325 STORE TSTART82 # SAVE IT
022307,000231: 23,2506 53145 DLOAD BZE # SR30.1 SETS -TPER=0 IF HPER L/
022308,000232: 23,2507 02346 -TPER # HPERMIN (300 OR 35) KFT.
022309,000233: 23,2510 46521 TICKTFF # (-TPER = 0)
022310,000234: 23,2511 43345 TICKTPER DLOAD DAD # (-TPER NON ZERO) TFF WAS NOT COMPUTED,
022311,000235: 23,2512 02346 -TPER # BUT WAS SET TO 59M59S. DONT TICK TFF, DO
022312,000236: 23,2513 02325 TSTART82 # TICK -TPER. DISPLAY BOTH.
022313,000237: 23,2514 02346 STORE -TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1
022314,000238: 23,2515 77776 EXIT # BEGAN.
022315,000239:
![]() |
Page 509 |
022317,000241: 23,2516 34712 CAF BIT1
022318,000242: 23,2517 55742 TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY -TPER
022319,000243: 23,2520 05112 TC ENDOFJOB
022320,000244:
022321,000245: 23,2521 43345 TICKTFF DLOAD DAD # (-TPER=0) TFF WAS COMPUTED. TICK TFF.
022322,000246: 23,2522 02344 TFF # DO NOT TICK -TPER. DISPLAY TFF, BUT NOT
022323,000247: 23,2523 02325 TSTART82 # -TPER.
022324,000248: 23,2524 02344 STORE TFF # TFF CORRECTED FOR TIME SINCE V82GOFF1
022325,000249: 23,2525 77776 EXIT # BEGAN.
022326,000250: 23,2526 34711 CAF BIT2
022327,000251: 23,2527 55742 TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY TFF.
022328,000252: 23,2530 05112 TC ENDOFJOB
022329,000253:
022330,000254: 23,2531 34706 TICKTEST CAF BIT5 # THIS WAITLIST PROGRAM PERPETUATES ITSELF
022331,000255: 23,2532 71044 MASK EXTVBACT # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
022332,000256: 23,2533 10000 CCS A
022333,000257: 23,2534 02542 TC DOTICK
022334,000258: 23,2535 37662 CAF PRIO25
022335,000259: 23,2536 05027 TC NOVAC # TERMINATE V 82. CANT CALL ENDEXT IN RUPT.
022336,000260: 23,2537 1044 EBANK= EXTVBACT
022337,000261: 23,2537 05423 04062 2CADR ENDEXT
022338,000262:
022339,000263: 23,2541 05213 TC TASKOVER
022340,000264: 23,2542 34734 DOTICK CAF 1SEC # RE-REQUEST TICKTEST.
022341,000265: 23,2543 05140 TC WAITLIST
022342,000266: 23,2544 E4,1743 EBANK= TFF
022343,000267: 23,2544 02531 46064 2CADR TICKTEST
022344,000268:
022345,000269: 23,2546 36214 CAF THREE
022346,000270: 23,2547 71742 MASK V82FLAGS
022347,000271: 23,2550 50000 INDEX A
022348,000272: 23,2551 02552 TC +1
022349,000273: 23,2552 05213 TC TASKOVER # IF NO FLAGBITS SET DONT CHANGE TFF OR
022350,000274: # -TPER, BUT CONTINUE LOOP.
022351,000275: 23,2553 02561 TC TPERTICK # ONLY BIT 1 SET. INCR -TPER BY 1 SEC.
022352,000276: 23,2554 34734 TFFTICK CAF 1SEC # ONLY BIT 2 SET. INCR TFF BY 1 SEC.
022353,000277: 23,2555 54001 TS L
022354,000278: 23,2556 34714 CAF ZERO
022355,000279: 23,2557 21744 DAS TFF
022356,000280: 23,2560 05213 TC TASKOVER
022357,000281: 23,2561 34734 TPERTICK CAF 1SEC
022358,000282: 23,2562 54001 TS L
022359,000283: 23,2563 34714 CAF ZERO
022360,000284: 23,2564 21746 DAS -TPER
022361,000285: 23,2565 05213 TC TASKOVER
022362,000286:
![]() |
Page 510 |
022364,000288: 23,2566 77776 V82GON EXIT # AVERAGE G ON. USE CURRENT STATE VECTOR
022365,000289: # FOR ORBITAL PARAMETER CALCULATIONS.
022366,000290: 23,2567 34756 CAF PRIO7 # LESS THAN LAMBERT
022367,000291: 23,2570 05042 TC FINDVAC # V82GON1 WILL PERFORM ORBIT CALCULATIONS
022368,000292: 23,2571 E4,1743 EBANK= TFF # ABOUT PROPER BODY APPROX ONCE PER SEC.
022369,000293: 23,2571 02604 46064 2CADR V82GON1
022370,000294:
022371,000295: 23,2573 00003 RELINT
022372,000296: 23,2574 10067 CCS NEWJOB # WITHOLD V16 N44 UNTIL FIRST ORBIT CALC
022373,000297: 23,2575 05057 TC CHANG1 # IS DONE. NOTE: V82GON1 (PRIO7, FINDVAC
022374,000298: # JOB) IS COMPLETED BEFORE V82GON (PRIO7,
022375,000299: # NOVAC JOB).
022376,000300: 23,2576 32407 V82REDSP CAF V16N44 # MONITOR HAPO, HPER, TFF
022377,000301: 23,2577 04555 TC BANKCALL
022378,000302: 23,2600 20465 CADR GOXDSPF
022379,000303: 23,2601 05514 TC B5OFF # TERM THIS TELLS V82GON1 TO KILL ITSELF.
022380,000304: 23,2602 05514 TC B5OFF # PROC DITTO.
022381,000305: 23,2603 02576 TC V82REDSP # RECYCLE
022382,000306:
022383,000307: 23,2604 06006 V82GON1 TC INTPRET # THIS EXEC PROGRAM PERPETUATES ITSELF
022384,000308: # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
022385,000309: 23,2605 52175 VLOAD GOTO # HOLDS OFF CCS NEWJOB BETWEEN RN AND
022386,000310: 23,2606 01171 RN # VN FETCH SO RN, VN ARE FROM SAME
022387,000311: 23,2607 46610 NEXTLINE # STATE VECTOR UPDATE.
022388,000312: 23,2610 26327 NEXTLINE STOVL RONE # RN AT (-29)M FOR EARTH OR MOON
022389,000313: 23,2611 01177 VN
022390,000314: 23,2612 02335 STORE VONE # VN AT (-7)M/CS FOR EARTH OR MOON
022391,000315: 23,2613 52014 BON GOTO
022392,000316: 23,2614 04303 MOONTHIS # FLAG INDICATES BODY ABOUT WHICH ORBITAL
022393,000317: 23,2615 46617 MOONGON # CALCULATIONS ARE TO BE PERFORMED.
022394,000318: 23,2616 46630 EARTHGON # IF SET - MOON, IF RESET - EARTH.
022395,000319:
022396,000320: 23,2617 71214 MOONGON SET DLOAD
022397,000321: 23,2620 04462 V82EMFLG # INDICATE MOON SCALING FOR SR30.1
022398,000322: 23,2621 06454 1/RTMUM # LUNAR PARAMETERS LOADED HERE FOR SR30.1
022399,000323: 23,2622 14037 STODL TFF/RTMU
022400,000324: 23,2623 06460 MINPERM
022401,000325: 23,2624 26321 STOVL HPERMIN
022402,000326: 23,2625 02026 RLS # SCALED AT (-27)M.
022403,000327: 23,2626 52046 ABVAL GOTO
022404,000328: 23,2627 46637 V82GON2
022405,000329: 23,2630 71214 EARTHGON CLEAR DLOAD
022406,000330: 23,2631 04662 V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
022407,000331: 23,2632 06456 1/RTMUE # EARTH PARAMETERS LOADED HERE FOR SR30.1
022408,000332: 23,2633 14037 STODL TFF/RTMU
022409,000333: 23,2634 06462 MINPERE
022410,000334: 23,2635 16321 STODL HPERMIN
022411,000335: 23,2636 05311 RPAD
022412,000336: 23,2637 36323 V82GON2 STCALL RPADTEM # COMMON CODE FOR EARTH & MOON.
022413,000337: 23,2640 46667 SR30.1
![]() |
Page 511 |
022415,000339: 23,2641 77776 EXIT
022416,000340: 23,2642 05253 TC CHECKMM
022417,000341: 23,2643 00013 DEC 11 B-14
022418,000342: 23,2644 02657 TC V82GON3 # NOT IN MODE 11.
022419,000343: 23,2645 06006 CANDEL TC INTPRET # IN MODE 11 OR 00
022420,000344: 23,2646 77624 CALL
022421,000345: 23,2647 27371 INTSTALL # DELRSPL DOES INTWAKE
022422,000346: 23,2650 45145 DLOAD CALL
022423,000347: 23,2651 02344 TFF
022424,000348: 23,2652 64017 DELRSPL # RETURN IS TO NEXT LINE (SPLRET).
022425,000349: 23,2653 77776 SPLRET EXIT
022426,000350:
022427,000351: 23,2654 31011 CA MODREG
022428,000352: 23,2655 00006 EXTEND
022429,000353: 23,2656 12501 BZF SPLRET1
022430,000354: 23,2657 34706 V82GON3 CAF BIT5
022431,000355: 23,2660 71044 MASK EXTVBACT # SEE IF ASTRONAUT HAS SIGNALLED TERMINATE
022432,000356: 23,2661 00006 EXTEND
022433,000357: 23,2662 15423 BZF ENDEXT # YES, TERMINATE VB 82 LOOP
022434,000358: 23,2663 34734 CAF 1SEC
022435,000359: 23,2664 04555 TC BANKCALL # WAIT ONE SECOND BEFORE REPEATING
022436,000360: 23,2665 01732 CADR DELAYJOB # ORBITAL PARAMETER COMPUTATION.
022437,000361: 23,2666 02604 TC V82GON1
022438,000362:
![]() |
Page 512 |
022440,000364: # SUBROUTINE NAME: SR30.1
022441,000365: # MOD NO: 0 DATE: 16 FEB 67
022442,000366: # MOD BY: RR BAIRNSFATHER LOG SECTION: R32
022443,000367: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
022444,000368: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 ADD OVFL CK FOR RAPO
022445,000369: # MOD NO: 3 MOD BY ALONSO DATE: 11 DEC 67 SUBROUTINE REWRITTEN
022446,000370: # MOD NO: 4 MOD BY ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
022447,000371: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 6 AUG 68 OVFL CK FOR HAPO & HPER. VOIDS MOD #2.
022448,000372:
022449,000373: # NEW FUNCTIONAL DESCRIPTION: ORBITAL PARAMETERS DISPLAY FOR NOUNS 32 AND 44.
022450,000374: # SR30.1 CALLS TFFCONMU AND TFFRP/RA TO CALCULATE RPER (PERIGEE RADIUS),
022451,000375: # RAPO (APOGEE RADIUS), HPER (PERIGEE HEIGHT ABOVE LAUNCH PAD OR LUNAR
022452,000376: # LANDING SITE), HAPO (APOGEE HEIGHT AS ABOVE), TPER (TIME TO PERIGEE),
022453,000377: # TFF (TIME TO INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
022454,000378: # IF HPER IS GREATER THAN OR EQUAL TO HPERMIN, CALCULATES TPER AND STORES
022455,000379: # NEGATIVE IN -TPER. OTHERWISE STORES +0 IN -TPER. WHENEVER TPER IS
022456,000380: # CALCULATED, TFF IS NOT COMPUTABLE AND DEFAULTS TO -59MIN 59SEC. IF HAPO
022457,000381: # WOULD EXCEED 9999.9 NM, IT IS LIMITED TO THAT VALUE FOR DISPLAY.
022458,000382:
022459,000383: # ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
022460,000384: # ABOVE REMARKS.
022461,000385:
022462,000386: # CALLING SEQUENCE: CALL
022463,000387: # SR30.1
022464,000388:
022465,000389: # SUBROUTINES CALLED: TFFCONMU, TFFRP/RA, CALCTPER, CALCTFF
022466,000390:
022467,000391: # NORMAL EXIT MODE: CALLING LINE +1 (STILL IN INTERPRETIVE MODE)
022468,000392:
022469,000393: # ALARMS: NONE
022470,000394:
022471,000395: # OUTPUT: RAPO (-29) M EARTH APOGEE RADIUS EARTH CENTERED COORD.
022472,000396: # (-27) M MOON MOON CENTERED COORD.
022473,000397: # RPER (-29) M EARTH PERIGEE RADIUS EARTH CENTERED COORD.
022474,000398: # (-27) M MOON MOON CENTERED COORD.
022475,000399: # HAPOX (-29) M APOGEE ALTITUDE ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
022476,000400: # HPERX (-29) M PERIGEE ALT. ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
022477,000401: # TFF (-28) CS TIME TO 300KFT OR 35KFT ALTITUDE
022478,000402: # -TPER (-28) CS TIME TO PERIGEE
022479,000403:
022480,000404: # ERASABLE INITIALIZATION REQUIRED -
022481,000405: # TFF/RTMU (+17) EARTH RECIPROCAL OF PROPER GRAV CONSTANT FOR
022482,000406: # (+14) MOON EARTH OR MOON = 1/SQRT(MU).
022483,000407: # RONE (-29) M STATE VECTOR
022484,000408: # VONE (-7) M/CS STATE VECTOR
022485,000409: # RPADTEM (-29) M EARTH RADIUS OF LAUNCH PAD OR LUNAR LANDING
022486,000410: # (-27) M MOON SITE.
022487,000411: # HPERMIN (-29) M EARTH (300 OR 35) KFT MINIMUM PERIGEE ALTITUDE
022488,000412: # (-27) M MOON ABOVE LAUNCH PAD OR LUNAR LANDING SITE.
022489,000413: # V82EMFLG (INT SW BIT) RESET FOR EARTH, SET FOR MOON.
022490,000414:
022491,000415: # DEBRIS: QPRET, PDL, S2
022492,000416:
![]() |
Page 513 |
022494,000418: 23,2667 COUNT* $$/SR30S
022495,000419:
022496,000420: 23,2667 44001 SR30.1 SETPD STQ # INITIALIZE PUSHDOWN LIST.
022497,000421: 23,2670 00001 0
022498,000422: 23,2671 00051 S2
022499,000423: # SR30.1 INPUT: RONE AT (-29)M EARTH/MOON
022500,000424: # VONE AT (-7)M/CS
022501,000425: # TFFCONMU, TFFRP/RA, CALCTPER AND CALCTFF
022502,000426: # CALLS REQUIRE:
022503,000427: # EARTH CENTERED (NO RESCALING REQUIRED)
022504,000428: # RONE SCALED TO B-29 M
022505,000429: # VONE SCALED TO B-7 M/CS
022506,000430: # MOON CENTERED (RESCALING REQUIRED)
022507,000431: # RONE SCALED TO B-27 M
022508,000432: # VONE SCALED TO B-5 M/CS
022509,000433: 23,2672 77214 BOFF VLOAD
022510,000434: 23,2673 04742 V82EMFLG # OFF FOR EARTH, ON FOR MOON.
022511,000435: 23,2674 46703 TFFCALLS
022512,000436: 23,2675 02327 RONE
022513,000437: 23,2676 77752 VSL2
022514,000438: 23,2677 26327 STOVL RONE
022515,000439: 23,2700 02335 VONE
022516,000440: 23,2701 77752 VSL2
022517,000441: 23,2702 02335 STORE VONE
022518,000442: 23,2703 77624 TFFCALLS CALL
022519,000443: 23,2704 56751 TFFCONMU
022520,000444: 23,2705 77624 CALL # TFFRP/RA COMPUTES RAPO,RPER.
022521,000445: 23,2706 57017 TFFRP/RA
022522,000446: # RETURNS WITH RAPO IN D(MPAC).
022523,000447: 23,2707 77625 DSU
022524,000448: 23,2710 02323 RPADTEM
022525,000449: 23,2711 64414 BOFF SR2R # NEED HAPO AT (-29)M FOR DISPLAY.
022526,000450: # IF MOON CENTERED, RESCALE FROM (-27)M.
022527,000451: # IF EARTH CENTERED ALREADY AT (-29)M.
022528,000452: 23,2712 04742 V82EMFLG # OFF FOR EARTH , ON FOR MOON.
022529,000453: 23,2713 46714 +1
022530,000454: 23,2714 77624 CALL # IF HAPO > MAXNM, SET HAPO =9999.9 NM.
022531,000455: 23,2715 46754 MAXCHK # OTHERWISE STORE (RAPO-RPADTEM) IN HAPO.
022532,000456: 23,2716 16352 STORHAPO STODL HAPOX
022533,000457: 23,2717 00017 RPER
022534,000458: 23,2720 77625 DSU
022535,000459: 23,2721 02323 RPADTEM # GIVES HPER AT (-29)M EARTH, (-27)M MOON.
022536,000460: 23,2722 00161 STORE MPAC +4 # SAVE THIS FOR COMPARISON TO HPERMIN.
022537,000461: 23,2723 64414 BOFF SR2R # NEED HPER AT (-29)M FOR DISPLAY.
022538,000462: # IF MOON CENTERED, RESCALE FROM (-27)M.
022539,000463: # IF EARTH CENTERED ALREADY AT (-29)M.
022540,000464: 23,2724 04742 V82EMFLG # OFF FOR EARTH, ON FOR MOON.
022541,000465: 23,2725 46726 +1
022542,000466: 23,2726 77624 CALL # IF HPER > MAXNM, SET HPER = 9999.9 NM.
022543,000467: 23,2727 46754 MAXCHK
![]() |
Page 514 |
022545,000469: 23,2730 16354 STORHPER STODL HPERX # STORE (RPER - RPADTEM) INTO HPERX.
022546,000470: 23,2731 00161 MPAC +4
022547,000471: 23,2732 51025 DSU BPL # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
022548,000472: 23,2733 02321 HPERMIN # IF HPER L/ HPERMIN (300 OR 35) KFT,
022549,000473: 23,2734 46740 DOTPER # THEN ZERO INTO -TPER.
022550,000474: 23,2735 52145 DLOAD GOTO # OTHERWISE CALCULATE TPER.
022551,000475: 23,2736 15332 HI6ZEROS
022552,000476: 23,2737 46744 SKIPTPER
022553,000477: 23,2740 45145 DOTPER DLOAD CALL
022554,000478: 23,2741 00017 RPER
022555,000479: 23,2742 57055 CALCTPER
022556,000480: 23,2743 77676 DCOMP # TPER IS PUT NEG INTO -TPER.
022557,000481: 23,2744 16346 SKIPTPER STODL -TPER
022558,000482: 23,2745 02321 HPERMIN # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
022559,000483: 23,2746 45015 DAD CALL
022560,000484: 23,2747 02323 RPADTEM # RPADTEM AT (-29)M FOR EARTH, (-27)M MOON
022561,000485: 23,2750 57060 CALCTFF # GIVES 59M59S FOR TFF IF RPER G/
022562,000486: 23,2751 77676 DCOMP # HPERMIN + RPADTEM. (TPER WAS NON ZERO)
022563,000487: 23,2752 36344 STCALL TFF # OTHERWISE COMPUTES TFF. (GOTO)
022564,000488: 23,2753 00051 S2
022565,000489:
022566,000490: 23,2754 51025 MAXCHK DSU BPL # IF C(MPAC) > 9999.9 NM, MPAC = 9999.9 NM
022567,000491: 23,2755 06764 MAXNM
022568,000492: 23,2756 46761 +3 # OTHERWISE C(MPAC) = B(MPAC).
022569,000493: 23,2757 43415 DAD RVQ
022570,000494: 23,2760 06764 MAXNM
022571,000495: 23,2761 43545 +3 DLOAD RVQ # (USED BY P30 - P37 ALSO)
022572,000496: 23,2762 06764 MAXNM
022573,000497:
022574,000498: 23,2763 01065 05603 MAXNM 2OCT 0106505603
022575,000499:
![]() |
Page 515 |
022577,000501:
![]() |
There is no source code on this page — RSB 2004 |
022579,000503:
022580,000504:
022581,000505:
022582,000506:
End of include-file R30.agc. Parent file is MAIN.agc