Source Code

These source code files are a reconstruction of Sundance, the Apollo 9 LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of original core rope program modules, as follows:
  • B1 — Revision 292
  • B2 — Revision 302
  • B3 — Revision 302
  • B4 — Revision 302
  • B5 — Revision 292
  • B6 — Revision 306
This means that source code does not represent a specific historical revision of Sundance, but rather a mixture of the three released versions. Nonetheless, it is capable of flying the whole Apollo 9 mission. This source code matches the binary dumps, as closely as feasible, but 100% match is not possible, due mostly to changes in memory addresses at which code and variables were allocated in different revisions of Sundance. Refer to this list of explanations for each binary mismatch.

Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

019555,000002:                                                                                                  ## Copyright:   Public domain.
019556,000003:                                                                                                  ## Filename:    RADAR_LEADIN_ROUTINES.agc
019557,000004:                                                                                                  ## Purpose:     A section of a reconstructed, mixed version of Sundance
019558,000005:                                                                                                  ##              It is part of the reconstructed source code for the Lunar
019559,000006:                                                                                                  ##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
019560,000007:                                                                                                  ##              No original listings of this program are available;
019561,000008:                                                                                                  ##              instead, this file was created via disassembly of dumps
019562,000009:                                                                                                  ##              of various revisions of Sundance core rope modules.
019563,000010:                                                                                                  ## Assembler:   yaYUL
019564,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
019565,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
019566,000013:                                                                                                  ## Mod history: 2020-06-17 MAS  Created from Luminary 69.
019567,000014: 
019568,000015:                                                                                                  ## Sundance 302
019569,000016: 
019570,000017: 25,2000                                           BANK     25                                    
019571,000018: 25,2000                                           SETLOC   RRLEADIN                              
019572,000019: 25,2000                                           BANK                                           
019573,000020: 
019574,000021: 25,2000  E4,1606                                  EBANK=   RSTACK                                
019575,000022: 
019576,000023:                                                                                                  #  RADAR SAMPLING LOOP.
019577,000024: 
019578,000025: 25,2000                                           COUNT*   $$/RLEAD                              
019579,000026: 25,2000           11525        RADSAMP            CCS      RSAMPDT                               #  TIMES NORMAL ONCE-PER-SECOND SAMPLING.
019580,000027: 25,2001           12003                           TCF      +2                                    
019581,000028: 25,2002           15321                           TCF      TASKOVER                              #  +0 INSERTED MANUALLY TERMINATES TEST.
019582,000029: 
019583,000030: 25,2003           05252                           TC       WAITLIST                              
019584,000031: 25,2004  E4,1606                                  EBANK=   RSTACK                                
019585,000032: 25,2004           02000 52064                     2CADR    RADSAMP                               
019586,000033: 
019587,000034: 25,2006           37665                           CAF      PRIO25                                
019588,000035: 25,2007           05142                           TC       NOVAC                                 
019589,000036: 25,2010  E4,1606                                  EBANK=   RSTACK                                
019590,000037: 25,2010           02020 52064                     2CADR    DORSAMP                               
019591,000038: 
019592,000039: 25,2012           35011                           CAF      BIT14                                 #  FOR CYCLIC SAMPLING, RTSTDEX=
019593,000040: 25,2013           00006                           EXTEND                                         #  RTSTLOC/2 + RTSTBASE
019594,000041: 25,2014           71524                           MP       RTSTLOC                               
019595,000042: 25,2015           61523                           AD       RTSTBASE                              #  0 FOR RR, 2 FOR LR.
019596,000043: 25,2016           55521                           TS       RTSTDEX                               
019597,000044: 25,2017           15321                           TCF      TASKOVER                              
019598,000045: 
019599,000046:                                                                                                  #  DO THE ACTUAL RADAR SAMPLE.
019600,000047: 
019601,000048: 25,2020           02040        DORSAMP            TC       VARADAR                               #  SELECTS VARIABLE RADAR CHANNEL.
019602,000049: 25,2021           04655                           TC       BANKCALL                              
019603,000050: 25,2022           17623                           CADR     RADSTALL                              
019604,000051: 
019605,000052: 25,2023           25526                           INCR     RFAILCNT                              #  ADVANCE FAIL COUNTER BUT ACCEPT BAD DATA
019606,000053: 
019607,000054: 25,2024           00004        DORSAMP2           INHINT                                         
019608,000055: 25,2025           53105                           DXCH     SAMPLSUM                              
019609,000056: 25,2026           51524                           INDEX    RTSTLOC                               
019610,000057: 25,2027           53607                           DXCH     RSTACK                                
019611,000058: 
019612,000059: 25,2030           41524                           CS       RTSTLOC                               #  CYCLE RTSTLOC.
019613,000060: 25,2031           61522                           AD       RTSTMAX                               
019614,000061: 25,2032           00006                           EXTEND                                         
019615,000062: 
019616,000063: 25,2033           12036                           BZF      +3                                    
019617,000064: 25,2034           31524                           CA       RTSTLOC                               
019618,000065: 25,2035           65025                           AD       TWO                                   #  STORAGE IS DP
019619,000066: 25,2036           55524                           TS       RTSTLOC                               
019620,000067: 25,2037           15225                           TCF      ENDOFJOB                              #  CONTINUOUS SAMPLING AND 2N TRIES - GONE.
019621,000068: 
019622,000069:                                                                                                  #  VARIABLE RADAR DATA CALLER FOR ONE MEASUREMENT ONLY.
019623,000070: 
019624,000071: 25,2040           35026        VARADAR            CAF      ONE                                   #  WILL BE SENT TO RADAR ROUTINE IN A BY
019625,000072: 25,2041           54133                           TS       BUF2                                  #  SWCALL.
019626,000073: 25,2042           51521                           INDEX    RTSTDEX                               
019627,000074: 25,2043           32045                           CAF      RDRLOCS                               
019628,000075: 25,2044           14661                           TCF      SWCALL                                #  NOT TOUCHING Q.
019629,000076: 
019630,000077: 25,2045           53057        RDRLOCS            CADR     RRRANGE                               #  = 0
019631,000078: 25,2046           53055                           CADR     RRRDOT                                #  = 1
019632,000079: 25,2047           53053                           CADR     LRVELX                                #  = 2
019633,000080: 25,2050           53051                           CADR     LRVELY                                #  = 3
019634,000081: 25,2051           53047                           CADR     LRVELZ                                #  = 4
019635,000082: 25,2052           53045                           CADR     LRALT                                 #  = 5
019636,000083: 
019637,000084: 

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