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.

036026,000002:                                                                                                  ## Copyright:    Public domain.
036027,000003:                                                                                                  ## Filename:     MASS_CALCULATOR.agc
036028,000004:                                                                                                  ## Purpose:      A module for revision 0 of BURST120 (Sunburst). It 
036029,000005:                                                                                                  ##               is part of the source code for the Lunar Module's
036030,000006:                                                                                                  ##               (LM) Apollo Guidance Computer (AGC) for Apollo 5.
036031,000007:                                                                                                  ## Assembler:    yaYUL
036032,000008:                                                                                                  ## Contact:      Ron Burkey <info@sandroid.org>.
036033,000009:                                                                                                  ## Website:      www.ibiblio.org/apollo/index.html
036034,000010:                                                                                                  ## Mod history:  2016-09-30 RSB  Created draft version.
036035,000011:                                                                                                  ##               2016-10-30 MAS  Transcribed.
036036,000012:                                                                                                  ##               2016-12-06 RSB  Comment-proofing via octopus/ProoferComments;
036037,000013:                                                                                                  ##                               changes were made.
036038,000014: 

Page 844

036040,000016: 30,3206                                           BANK     30                                    
036041,000017:                                                                                                  #  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
036042,000018: 
036043,000019:                                                                                                  #      THE MASS UPDATE ROUTINE EXTENDS FROM APPROXIMATELY HERE TO THE NEXT
036044,000020:                                                                                                  #  ROW OF ASTERISKS.   COMPUTATIONS ARE AS FOLLOWS:-
036045,000021:                                                                                                  #      (1) /AF/ = MAGNITUDE DV/DT, SCALED IN UNITS OF 2(-5) M/CS/CS.
036046,000022:                                                                                                  #      (2) PREFORCE = /AF/ MASS, APPROXIMATE PRESENT THRUST, SCALED AT
036047,000023:                                                                                                  #          SOME 3.3 POUNDS PER BIT; PREFORCE LATER BECOMES PREFORCE/2FMAX.
036048,000024:                                                                                                  #      (3) NOMINAL EXHAUST VELOCITY, VEXNOM = VEXSTEP + (PREFORCE-FSTEP)
036049,000025:                                                                                                  #          SLOPE, WHERE VEXSTEP, FSTEP, AND SLOPE ARE SELECTED FROM THE
036050,000026:                                                                                                  #          'VEXTABLE' BY THE ROUTINE BEGINNING AT VEXFINDD; THE FSTEPS
036051,000027:                                                                                                  #          AND VXSTEPS DEFINE CERTAIN DISCRETE POINTS ON THE CURVE OF
036052,000028:                                                                                                  #          EXHAUST VELOCITY VERSUS THRUST; THE ASSOCIATED SLOPE IS ALWAYS
036053,000029:                                                                                                  #          THAT FOR THE SEGMENT JUST PRECEEDING THOSE POINTS.   (UNITS
036054,000030:                                                                                                  #          FOR VEXNOM, AS FOR NEGVEX, ARE 2(6) M/CS.)
036055,000031:                                                                                                  #      (4) AREARATE, A MODERATELY ABSTRUSE (NOT TO SAY ABSURD) FUNCTION
036056,000032:                                                                                                  #          OF DELAREA (EROSION) AND PREFORCE.   (THE AREA IN QUESTION IS
036057,000033:                                                                                                  #          THAT OF THE THROAT OF THE ENGINE.)
036058,000034:                                                                                                  #      (5) DELAREA = DELAREA + AREARATE DELTAT, SCALED IN UNITS OF 2(7) %
036059,000035:                                                                                                  #      (6) NEGVEX = -(VEXNOM - CVEX5 DELAREA).
036060,000036:                                                                                                  #      (7) MASS = MASS + (/DELV//NEGVEX) MASS, SCALED IN UNITS OF 2(15)
036061,000037:                                                                                                  #          KILOGRAMS.
036062,000038: 
036063,000039:                                                                                                  #      THE FOLLOWING INITIALIZATIONS MUST BE MADE BEFORE LAUNCH:
036064,000040:                                                                                                  #  C(MASS) = 0, C(LEMMASS1) = SCALED MASS OF LEM CUM DPS, C(LEMMASS2) =
036065,000041:                                                                                                  #  SCALED MASS OF LEM WITHOUT DPS.   UPON LEM-SIVB SEPARATION MASS MUST
036066,000042:                                                                                                  #  BE REINITIALIZED USING LEMMASS1 AND DELAREA MUST BE SET TO DP ZERO.
036067,000043:                                                                                                  #  LATER, WHEN THE DPS PARTS COMPANY, MASS MUST BE INITIALIZED STILL
036068,000044:                                                                                                  #  AGAIN USING LEMMASS2.
036069,000045: 
036070,000046:                                                                                                  #      THE FOLLOWING IS AN INELEGANT SUPERFLUITY:-   INPUTS: MASS, DELAREA,
036071,000047:                                                                                                  #  DELV, DELTAT, EMANATIONS FROM THE VEXTABLE, A TABLESPOON OF SALT AND
036072,000048:                                                                                                  #  SEVEN BYZANTINE DODO EGGS.   OUTPUTS: /AF/ AND MASS.   DEBRIS: PREFORCE,
036073,000049:                                                                                                  #  NEGVEX, AND AREARATE (TO LEARN MORE ABOUT THESE GEMS, SEE ABOVE).
036074,000050:                                                                                                  #  SUBROUTINES CALLED: MASSMULT (A PART OF THROTTLE CONTROL) AND THE
036075,000051:                                                                                                  #  INTERPRETER.   ERASABLES: BANK 5 AT PRESENT.   EYLES WROTE THIS STUFF;
036076,000052:                                                                                                  #  HIS LAST MODIFICATION THEREOF (NUMBER N+2) WENT INTO AGC REVISION 20.
036077,000053: 
036078,000054: 30,3206           43145        MASSMON            DLOAD    BOFF                                  
036079,000055: 30,3207           01321                                    MASS                                  
036080,000056: 30,3210           00753                                    SIVBGONE                              
036081,000057: 30,3211           61373                                    NOMASS                                
036082,000058: 30,3212           74375                           VLOAD    VXSC                                  
036083,000059: 30,3213           00404                                    DELV                                  #  DV = DELV*KPIP SCALED AT 2(+4) M/CS
036084,000060: 30,3214           21163                                    KPIP                                  
036085,000061: 30,3215           51406                           PUSH     ABVAL                                 #  DV IN PDL
036086,000062: 30,3216           03624                           STORE    ABDVCONV                              
036087,000063: 30,3217           56206                           PUSH     DDV                                   
036088,000064: 30,3220           21400                                    2SEC(9)                               
036089,000065: 30,3221           01325                           STORE    /AF/                                  #  /AF/ = MAGNITUDE DV/DT
036090,000066: 

Page 845

036092,000068: 30,3222           77776                           EXIT                                           
036093,000069: 
036094,000070: 30,3223           33444                           CA       ETHROTL                               
036095,000071: 30,3224           54003                           TS       EBANK                                 #  JUST TO INSURE HAVING THE PROPER EBANK
036096,000072: 30,3225  E5,1565                                  EBANK=   ETHROT                                
036097,000073: 
036098,000074: 30,3225           00006                           EXTEND                                         
036099,000075: 30,3226           31325                           DCA      /AF/                                  
036100,000076: 30,3227           03445                           TC       MASSMULT                              #  WHICH PRODUCES DP FORCE IN A AND L
036101,000077: 30,3230           53546                           DXCH     PREFORCE                              
036102,000078: 
036103,000079: 30,3231           41545        CHOICE1            CS       PREFORCE                              #  TEST PREFORCE TO SEE IF
036104,000080: 30,3232           63401                           AD       LOWFCRIT                              #    EITHER BIG ENGINE IS ON
036105,000081: 30,3233           00006                           EXTEND                                         
036106,000082: 30,3234           63241                           BZMF     CHOICE2                               #  BRANCH IF PREFORCE > LOWFCRIT = 720 LBS.
036107,000083: 
036108,000084: 30,3235           00006        VEXFINDR           EXTEND                                         #  OTHERWISE, USE RCSVEX
036109,000085: 30,3236           43404                           DCS      RCSVEX                                
036110,000086: 30,3237           53556                           DXCH     NEGVEX                                
036111,000087: 30,3240           13252                           TCF      MININIT                               
036112,000088: 30,3241           00006        CHOICE2            EXTEND                                         
036113,000089: 30,3242           00030                           READ     30                                    
036114,000090: 30,3243           40000                           COM                                            
036115,000091: 30,3244           77762                           MASK     BIT2                                  
036116,000092: 30,3245           00006                           EXTEND                                         
036117,000093: 30,3246           13256                           BZF      VEXFINDD                              
036118,000094: 30,3247           00006        VEXFINDA           EXTEND                                         #  OTHERWISE, USE APSVEX
036119,000095: 30,3250           43406                           DCS      APSVEX                                
036120,000096: 30,3251           53556                           DXCH     NEGVEX                                
036121,000097: 30,3252           00006        MININIT            EXTEND                                         
036122,000098: 30,3253           33415                           DCA      MINMASSA                              
036123,000099: 30,3254           53564                           DXCH     MINIMASS                              
036124,000100: 30,3255           13351                           TCF      ENDVEX                                
036125,000101: 
036126,000102: 30,3256           00006        VEXFINDD           EXTEND                                         
036127,000103: 30,3257           33417                           DCA      MINMASSD                              
036128,000104: 30,3260           53564                           DXCH     MINIMASS                              
036129,000105: 
036130,000106: 30,3261           37767                           CA       ZERO                                  
036131,000107: 30,3262           55544                           TS       VEXDEX                                
036132,000108: 30,3263           37761        VEXLOOP            CA       FOUR                                  
036133,000109: 30,3264           27544                           ADS      VEXDEX                                #  INCREMENTING VEXDEX BY FOUR
036134,000110: 30,3265           41545                           CS       PREFORCE                              
036135,000111: 30,3266           51544                           INDEX    VEXDEX                                
036136,000112: 30,3267           63414                           AD       FSTEP                                 #  FSTEP - PREFORCE IN A AND L
036137,000113: 30,3270           00006                           EXTEND                                         
036138,000114: 30,3271           63263                           BZMF     VEXLOOP                               #  BRANCH IF PREFORCE > OR = FSTEP.  EMERGE
036139,000115:                                                                                                  #    FROM LOOP WITH INDEX PROPERLY SET AS
036140,000116:                                                                                                  #    SOON AS FSTEP > PREFORCE.
036141,000117: 30,3272           40000                           COM                                            #  PREFORCE-FSTEP (ALWAYS MINUS) IN A AND L
036142,000118: 

Page 846

036144,000120: 30,3273           00006                           EXTEND                                         
036145,000121: 30,3274           51544                           INDEX    VEXDEX                                
036146,000122: 30,3275           73415                           MP       SLOPE                                 
036147,000123: 30,3276           53550                           DXCH     VEXNOM                                
036148,000124: 30,3277           00006                           EXTEND                                         
036149,000125: 30,3300           51544                           INDEX    VEXDEX                                
036150,000126: 30,3301           33417                           DCA      VEXSTEP                               
036151,000127: 30,3302           21550                           DAS      VEXNOM                                #  VEXNOM = VEXSTEP + (PREFORCE-FSTEP)SLOPE
036152,000128: 
036153,000129: 30,3303           43700                           CS       -FMAX                                 
036154,000130: 30,3304           60000                           DOUBLE                                         
036155,000131: 30,3305           56002                           XCH      Q                                     
036156,000132: 30,3306           00006                           EXTEND                                         
036157,000133: 30,3307           31546                           DCA      PREFORCE                              
036158,000134: 30,3310           00006                           EXTEND                                         
036159,000135: 30,3311           10002                           DV       Q                                     
036160,000136: 30,3312           55545                           TS       PREFORCE                              #  PREFORCE = PREFORCE/2FMAX
036161,000137: 
036162,000138: 30,3313           33412                           CA       CVEX4                                 
036163,000139: 30,3314           00006                           EXTEND                                         
036164,000140: 30,3315           71551                           MP       DELAREA                               
036165,000141: 30,3316           63411                           AD       CVEX3                                 
036166,000142: 30,3317           00006                           EXTEND                                         
036167,000143: 30,3320           71545                           MP       PREFORCE                              
036168,000144: 30,3321           00006                           EXTEND                                         #                MUMBO
036169,000145: 30,3322           71545                           MP       PREFORCE                              #                JUMBO
036170,000146: 30,3323           53554                           DXCH     AREARATE                              
036171,000147: 30,3324           33410                           CA       CVEX2                                 
036172,000148: 30,3325           00006                           EXTEND                                         
036173,000149: 30,3326           71551                           MP       DELAREA                               
036174,000150: 30,3327           63407                           AD       CVEX1                                 
036175,000151: 30,3330           00006                           EXTEND                                         
036176,000152: 30,3331           71545                           MP       PREFORCE                              
036177,000153: 30,3332           21554                           DAS      AREARATE                              #  NOW SCALED IN UNITS OF 2(-2) PERCENT/CS
036178,000154: 30,3333           31553                           CA       AREARATE                              
036179,000155: 30,3334           00006                           EXTEND                                         
036180,000156: 30,3335           73377                           MP       2SEC(9)                               
036181,000157: 30,3336           53560                           DXCH     DAREATMP                              
036182,000158: 30,3337           00006                           EXTEND                                         
036183,000159: 30,3340           31552                           DCA      DELAREA                               
036184,000160: 30,3341           21560                           DAS      DAREATMP                              #  DAREATMP NOW CONTAINS NEW DELAREA
036185,000161: 30,3342           31557                           CA       DAREATMP                              
036186,000162: 30,3343           00006                           EXTEND                                         
036187,000163: 30,3344           73413                           MP       CVEX5                                 
036188,000164: 30,3345           53556                           DXCH     NEGVEX                                #  RESULT IS SCALED IN UNITS OF 2(6) M/CS
036189,000165: 30,3346           00006                           EXTEND                                         
036190,000166: 30,3347           41550                           DCS      VEXNOM                                
036191,000167: 30,3350           21556                           DAS      NEGVEX                                #  NEGVEX NOW HOLDS THE GENUINE ARTICLE
036192,000168: 
036193,000169: 30,3351           37767        ENDVEX             CA       ZERO                                  #  PRECAUTIONARY
036194,000170: 

Page 847

036196,000172: 30,3352           54153                           TS       MODE                                  
036197,000173: 30,3353           54111                           TS       OVFIND                                
036198,000174: 
036199,000175: 30,3354           06112                           TC       INTPRET                               
036200,000176: 30,3355           60545                           DLOAD    SR2                                   #  RESCALING /DELV/ TO 2(6) M/CS
036201,000177: 30,3356           41271                           DDV      DMP                                   
036202,000178: 30,3357           02556                                    NEGVEX                                
036203,000179: 30,3360           01321                                    MASS                                  
036204,000180: 30,3361           77615                           DAD                                            
036205,000181: 30,3362           01321                                    MASS                                  
036206,000182: 30,3363           02562                           STORE    MASSTEMP                              
036207,000183: 30,3364           51025                           DSU      BPL                                   #  RETURN NOW IF MASS > MINIMASS
036208,000184: 30,3365           02564                                    MINIMASS                              
036209,000185: 30,3366           00052                                    QPRET                                 
036210,000186: 30,3367           77745                           DLOAD                                          #  OTHERWISE SET MASS = MINIMASS
036211,000187: 30,3370           02564                                    MINIMASS                              
036212,000188: 30,3371           02562                           STORE    MASSTEMP                              
036213,000189: 30,3372           77616                           RVQ                                            
036214,000190: 
036215,000191: 30,3373           16562        NOMASS             STODL    MASSTEMP                              
036216,000192: 30,3374           26643                                    DP0                                   
036217,000193: 30,3375           02560                           STORE    DAREATMP                              #  DELAREA INITIALIZED UNTIL SIVB SEPARATES
036218,000194: 30,3376           77616                           RVQ                                            
036219,000195: 
036220,000196:                                                                                                  #  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
036221,000197:                                                                                                  #  * * * * * * * * * * * * * * * * * * * *
036222,000198: 
036223,000199:                                                                                                  #  CONSTANTS FOR VEXFIND1
036224,000200: 
036225,000201: 30,3377           14400 00000  2SEC(9)            2DEC     200        B-9                        #  CONSTANT GUIDANCE PERIOD, SUP70S5DLY
036226,000202: 
036227,000203: 
036228,000204: 
036229,000205: 30,3401           00411        LOWFCRIT           OCT      411                                   #  ABOUT 720 POUNDS, SCALED
036230,000206: 30,3402           05423        MASSCRIT           DEC      .173031964                            #  MASS OF LEM WITH DPS > MASSCRIT > MASS
036231,000207:                                                                                                  #    OF LEM WITHOUT DPS
036232,000208: 
036233,000209: 30,3403           15165 30244  RCSVEX             2DEC     .4134375                              #  EXHAUST VELOCITY FOR RCS JETS
036234,000210: 
036235,000211: 30,3405           17114 33562  APSVEX             2DEC     .473441550                            #  EXHAUST VELOCITY FOR ASCENT ENGINE
036236,000212: 
036237,000213: 30,3407           00316        CVEX1              DEC      +.012558840                            
036238,000214: 30,3410           76221        CVEX2              DEC      -.053575066                            
036239,000215: 30,3411           77312        CVEX3              DEC      -.018875329                            
036240,000216: 30,3412           02447        CVEX4              DEC      +.080517427                            
036241,000217: 30,3413           01503        CVEX5              DEC      +.05099460                            
036242,000218: 

Page 848

036244,000220: 30,3414           02035 07567  MINMASSA           2DEC     2106.4833  B-15                       #  MASS OF APS EMPTY
036245,000221: 
036246,000222: 30,3416           06062 20000  MINMASSD           2DEC     6245       B-15                       #  DESCENT WITH NO DPS FUEL AND 405 RCS
036247,000223: 
036248,000224: 
036249,000225:                                                                                                  #  ADDRESSES FOR ACCESSING VEXTABLE
036250,000226: 
036251,000227: 30,3420  30,3414               FSTEP              =        FSTEP1     -4                         
036252,000228: 30,3420  30,3415               SLOPE              =        SLOPE1     -4                         
036253,000229: 30,3420  30,3416               VEXSTEP            =        VXSTEP1    -4                         
036254,000230: 
036255,000231:                                                                                                  #  THE VEXTABLE
036256,000232: 
036257,000233: 30,3420           01713        FSTEP1             DEC      +.0592346907                            #   25%
036258,000234: 30,3421           11736        SLOPE1             DEC      +.3104172317                            
036259,000235: 30,3422           16445 06644  VXSTEP1            2DEC     +.4553963093                            #  ABOUT 2914.53 M/S
036260,000236: 
036261,000237: 
036262,000238: 
036263,000239: 30,3424           03625        FSTEP2             DEC      +.1184693815                            #   50%
036264,000240: 30,3425           76531        SLOPE2             DEC      -.0413889642                            
036265,000241: 30,3426           16375 01343  VXSTEP2            2DEC     +.4529446468                            #  ABOUT 2898.84 M/S
036266,000242: 
036267,000243: 
036268,000244: 
036269,000245: 30,3430           06275        FSTEP3             DEC      +.1990285610                            #   84%
036270,000246: 30,3431           06741        SLOPE3             DEC      +.2168355662                            
036271,000247: 30,3432           17033 07603  VXSTEP3            2DEC     +.4704127421                            #  ABOUT 3010.64 M/S
036272,000248: 
036273,000249: 
036274,000250: 
036275,000251: 30,3434           07100        FSTEP4             DEC      +.2226276618                            #   93%
036276,000252: 30,3435           76601        SLOPE4             DEC      -.0389579859                            
036277,000253: 30,3436           17014 05573  VXSTEP4            2DEC     +.4694933687                            #  ABOUT 3004.75 M/S
036278,000254: 
036279,000255: 
036280,000256: 
036281,000257: 30,3440           37777        HIFSTEP            DEC      +.9999999999                            #  JUST IN CASE, ANOMALOUSLY,
036282,000258: 30,3441           00000        HISLOPE            DEC      +.0000000000                            #    PREFORCE APPEARS TO
036283,000259: 30,3442           17014 05573  HIVXSTEP           2DEC     +.4694933687                            #    EXCEED 100%.
036284,000260:                                                                                                  #  * * * * * * * * * * * * * * * * * * * * *
036285,000261: 
036286,000262: 30,3444           02565        ETHROTL            ECADR    ETHROT                                

End of include-file MASS_CALCULATOR.agc.  Parent file is MAIN.agc