Source Code

These source-code files are part of a reconstructed copy of LUM69 Revision 2, the flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing.

Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository.

064949,000002:                                                                                                  ## Copyright:   Public domain.
064950,000003:                                                                                                  ## Filename:    SPS_BACK-UP_RCS_CONTROL.agc
064951,000004:                                                                                                  ## Purpose:     A section of LUM69 revision 2.
064952,000005:                                                                                                  ##              It is part of the reconstructed source code for the flown
064953,000006:                                                                                                  ##              version of the flight software for the Lunar Module's (LM)
064954,000007:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 10. The code has
064955,000008:                                                                                                  ##              been recreated from a copy of Luminary revsion 069, using
064956,000009:                                                                                                  ##              changes present in Luminary 099 which were described in
064957,000010:                                                                                                  ##              Luminary memos 75 and 78. The code has been adapted such
064958,000011:                                                                                                  ##              that the resulting bugger words exactly match those specified
064959,000012:                                                                                                  ##              for LUM69 revision 2 in NASA drawing 2021152B, which gives
064960,000013:                                                                                                  ##              relatively high confidence that the reconstruction is correct.
064961,000014:                                                                                                  ## Reference:   pp. 1500-1502
064962,000015:                                                                                                  ## Assembler:   yaYUL
064963,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
064964,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
064965,000018:                                                                                                  ## Mod history: 2019-07-27 MAS  Created from Luminary 69.
064966,000019: 

Page 1500

064968,000021:                                                                                                  #  PROGRAM NAME:  SPSRCS
064969,000022: 
064970,000023:                                                                                                  #  AUTHOR:  EDGAR M. OSHIKA (AC ELECTRONICS)
064971,000024: 
064972,000025:                                                                                                  #  MODIFIED:  TO RETURN TO ALL AXES VIA Q BY P. S. WEISSMAN, OCT 7, 1968
064973,000026: 
064974,000027:                                                                                                  #  FUNCTIONAL DESCRIPTION:
064975,000028: 
064976,000029:                                                                                                  #  THIS PROGRAM CONTROLS THE FIRING OF ALL RCS JETS IN THE DOCKED CONFIGURATION ACCORDING TO THE FOLLOWING PHASE
064977,000030:                                                                                                  #  PLANE LOGIC.
064978,000031: 
064979,000032:                                                                                                  #  1.  OUTER RATE LIMIT (SPSRCS)
064980,000033: 
064981,000034:                                                                                                  #  IF MAGNITUDE OF EDOT IS GREATER THAN 1.73 DEG/SEC SET JET FIRING TIME, TJ, TO REDUCE RATE AND THEN RETURN TO
064982,000035:                                                                                                  #  CALLING PROGRAM (REQUESTING 4 JETS FOR P-AXIS).
064983,000036:                                                                                                  #  OTHERWISE, CONTINUE.
064984,000037: 
064985,000038:                                                                                                  #  2.  RATE DEAD BAND TEST ( JTONTEST)
064986,000039: 
064987,000040:                                                                                                  #  IF JETS ARE FIRING NEGATIVE AND RATE IS GREATER THAN -0.101 DEG/SEC, LEAVE JETS ON AND RETURN,
064988,000041:                                                                                                  #  IF JETS ARE FIRING POSITIVE AND RATE IS LESS THAN +0.101 DEG/SEC, LEAVE JETS ON AND RETURN, OTHERWISE CONTINUE.
064989,000042: 
064990,000043:                                                                                                  #  3.  COASTING TEST (SPSSTART)
064991,000044: 
064992,000045:                                                                                                  #  IF STATE (E,EDOT) IS BELOW LINE  E + 4 X EDOT > -1.4 DEG  AND EDOT IS LESS THAN 1.30 DEG/SEC SET JET TIME POSI-
064993,000046:                                                                                                  #  TIVE AND RETURN,
064994,000047:                                                                                                  #  IF STATE IS ABOVE LINE E + 4 X EDOT > +1.4 DEG AND EDOT IS GREATER THAN -1.30 DEG/SEC, SET JET TIME NEGATIVE
064995,000048:                                                                                                  #  AND RETURN,
064996,000049:                                                                                                  #  OTHERWISE, SET JET TIME ZERO AND RETURN.
064997,000050: 
064998,000051:                                                                                                  #  THE MINIMUM PULSE WIDTH OF THIS CONTROLLER IS DETERMINED BY THE REPETITION  RATE AT WHICH THIS ROUTINE IS CALLED
064999,000052:                                                                                                  #  AND IS NOMINALLY 100 MS FOR ALL AXES IN DRIFTING FLIGHT.   DURING POWERED FLIGHT THE MINIMUM IS 100 MS FOR THE
065000,000053:                                                                                                  #  P AXIS AND 200 MS FOR THE CONTROL OF THE U AND V AXES.
065001,000054: 
065002,000055:                                                                                                  #  CALLING SEQUENCE:
065003,000056: 
065004,000057:                                                                                                  #           TC     SPSRCS          FROM Q,R AXES RCS AUTOPILOT
065005,000058:                                                                                                  #                      INHINT                  FROM P-AXIS RCS AUTOPILOT
065006,000059:                                                                                                  #                      TC      IBNKCALL
065007,000060:                                                                                                  #                      CADR    SPSRCS
065008,000061: 
065009,000062: 
065010,000063:                                                                                                  #  EXIT:
065011,000064: 
065012,000065:                                                                                                  #           TC     Q
065013,000066:                                                                                                  #  ALARM/ABORT MODE:    NONE
065014,000067: 
065015,000068:                                                                                                  #  SUBROUTINES CALLED:    NONE
065016,000069: 
065017,000070:                                                                                                  #  INPUT:      E, EDOT
065018,000071: 

Page 1501

065020,000073:                                                                                                  #             TJP, TJV, TJU           TJ MUST NOT BE NEGATIVE ZERO
065021,000074: 
065022,000075:                                                                                                  #  OUTPUT:    TJP, TJV, TJU
065023,000076:                                                                                                  #             NUMBERT = 6,            WHEN RATE LIMITING P AXIS.
065024,000077: 
065025,000078: 
065026,000079: 17,3700                                           BANK     17                                    
065027,000080: 17,2000                                           SETLOC   DAPS2                                 
065028,000081: 17,2000                                           BANK                                           
065029,000082: 
065030,000083: 17,3700                                           COUNT*   $$/DAPBU                              
065031,000084: 
065032,000085: 17,3700  E6,1525                                  EBANK=   TJU                                   
065033,000086: 17,3700           31425        SPSRCS             CA       EDOT                                  
065034,000087: 17,3701           00006                           EXTEND                                         
065035,000088: 17,3702           74766                           MP       RATELIM1                              #  OUTER RATE LIMIT = 1.73 DEG/SEC
065036,000089: 17,3703           00006                           EXTEND                                         
065037,000090: 17,3704           13717                           BZF      JTONTEST                              
065038,000091: 
065039,000092: 17,3705           54001                           TS       L                                     
065040,000093: 17,3706           36241                           CA       SIX                                   
065041,000094: 17,3707           55741                           TS       NUMBERT                               
065042,000095: 17,3710           10001                           CCS      L                                     
065043,000096: 17,3711           13753                           TCF      NEGTHRST                              
065044,000097: 17,3712           05677                           TC       CCSHOLE                               #  **TEMP ** FILL WITH A CONSTANT
065045,000098: 17,3713  17,3664               RATELIM2           =        .1AT4                                 #  = OCT 00632,  1.125 DEG/SEC
065046,000099: 17,3713           34736        POSTHRST           CA       HALF                                  
065047,000100: 
065048,000101: 17,3714           51476                           NDX      AXISCTR                               
065049,000102: 17,3715           55525                           TS       TJU                                   
065050,000103: 17,3716           00002                           TC       Q                                     
065051,000104: 
065052,000105: 17,3717           51476        JTONTEST           NDX      AXISCTR                               
065053,000106: 17,3720           11525                           CCS      TJU                                   
065054,000107: 17,3721           13725                           TCF      +4                                    
065055,000108: 17,3722           13737                           TCF      SPSSTART                              
065056,000109: 17,3723           31425                           CA       EDOT                                  
065057,000110: 17,3724           13726                           TCF      +2                                    
065058,000111: 
065059,000112: 17,3725           41425                 +4        CS       EDOT                                  
065060,000113: 17,3726           22000                           LXCH     A                                     
065061,000114: 17,3727           40111                           CS       DAPBOOLS                              #  IF DRIFTBIT = 1, USE ZERO TARGET RATE
065062,000115: 17,3730           74744                           MASK     DRIFTBIT                              #  IF DRIFTBIT = 0, USE 0.10 RATE TARGET
065063,000116: 17,3731           10000                           CCS      A                                     
065064,000117: 17,3732           34767                           CA       RATEDB1                               
065065,000118: 17,3733           60001                           AD       L                                     
065066,000119: 17,3734           00006                           EXTEND                                         
065067,000120: 17,3735           63737                           BZMF     +2                                    
065068,000121: 17,3736           13716                           TCF      POSTHRST   +3                         
065069,000122: 

Page 1502

065071,000124: 17,3737           31425        SPSSTART           CA       EDOT                                  
065072,000125: 17,3740           61750                           AD       E                                     
065073,000126: 17,3741           00006                           EXTEND                                         
065074,000127: 17,3742           71411                           MP       DKDB                                  #  PAD LOADED DEADBAND. FRESHSTART: 1.4 DEG
065075,000128: 17,3743           00006                           EXTEND                                         
065076,000129: 17,3744           13761                           BZF      TJZERO                                
065077,000130: 
065078,000131: 17,3745           00006                           EXTEND                                         
065079,000132: 17,3746           63755                           BZMF     +7                                    
065080,000133: 17,3747           31425                           CA       EDOT                                  
065081,000134: 17,3750           63664                           AD       RATELIM2                              
065082,000135: 17,3751           00006                           EXTEND                                         
065083,000136: 17,3752           63761                           BZMF     TJZERO                                
065084,000137: 17,3753           44736        NEGTHRST           CS       HALF                                  
065085,000138: 17,3754           13714                           TCF      POSTHRST   +1                         
065086,000139: 17,3755           43664                 +7        CS       RATELIM2                              
065087,000140: 17,3756           61425                           AD       EDOT                                  
065088,000141: 17,3757           00006                           EXTEND                                         
065089,000142: 17,3760           63713                           BZMF     POSTHRST                              
065090,000143: 17,3761           34755        TJZERO             CA       ZERO                                  
065091,000144: 17,3762           13714                           TCF      POSTHRST   +1                         
065092,000145: 
065093,000146: 
065094,000147: 17,3763     4766               RATELIM1           =        CALLCODE                              #  = 00032, CORRESPONDING TO 1.73 DEG/SEC
065095,000148: 17,3763     4767               RATEDB1            =        TBUILDFX                              #   = 00045, CORRESPONDS TO 0.101 DEG/SEC

End of include-file SPS_BACK-UP_RCS_CONTROL.agc.  Parent file is MAIN.agc