Source Code

These source code files are an attempted reconstruction of Sundance revision 306, 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
These dumps were then modified using memos, checklists, observed address changes, and the Sundance GSOPs to get the entire program to match Sundance revision 306 as closely as possible. Without more information, it is not possible to say how close it actually is; however, this code should be quite close. It is capable of flying the whole Apollo 9 mission using the original checklists and padload. 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.

054465,000002:                                                                                                  ## Copyright:   Public domain.
054466,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
054467,000004:                                                                                                  ## Purpose:     A section of an attempt to reconstruct Sundance revision 306
054468,000005:                                                                                                  ##              as closely as possible with available information. Sundance
054469,000006:                                                                                                  ##              306 is the source code for the Lunar Module's (LM) Apollo
054470,000007:                                                                                                  ##              Guidance Computer (AGC) for Apollo 9. This program was created
054471,000008:                                                                                                  ##              using the mixed-revision SundanceXXX as a starting point, and
054472,000009:                                                                                                  ##              pulling back features from Luminary 69 believed to have been
054473,000010:                                                                                                  ##              added based on memos, checklists, observed address changes,
054474,000011:                                                                                                  ##              or the Sundance GSOPs.
054475,000012:                                                                                                  ## Assembler:   yaYUL
054476,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
054477,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
054478,000015:                                                                                                  ## Mod history: 2020-07-24 MAS  Created from SundanceXXX.
054479,000016: 
054480,000017: 
054481,000018: 
054482,000019:                                                                                                  #           THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
054483,000020:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
054484,000021: 
054485,000022:                                                                                                  #  CALLING SEQUENCE IS AS FOLLOWS:
054486,000023:                                                                                                  #                TC      ALARM
054487,000024:                                                                                                  #                OCT     AAANN           ALARM NO. NN IN GENERAL AREA AAA.
054488,000025:                                                                                                  #                                        (RETURNS HERE)
054489,000026: 
054490,000027:    5651                                           BLOCK    02                                    
054491,000028:    4000                                           SETLOC   FFTAG7                                
054492,000029:    4000                                           BANK                                           
054493,000030: 
054494,000031:    5651     0375                                  EBANK=   FAILREG                               
054495,000032: 
054496,000033:    5651                                           COUNT*   $$/ALARM                              
054497,000034:                                                                                                  #  ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
054498,000035: 
054499,000036:    5651           00004        ALARM              INHINT                                         
054500,000037: 
054501,000038:    5652           30002                           CA       Q                                     
054502,000039:    5653           55363                           TS       ALMCADR                               
054503,000040:    5654           50002        ALARM2             INDEX    Q                                     
054504,000041:    5655           30000                           CA       0                                     
054505,000042:    5656           54001        BORTENT            TS       L                                     
054506,000043: 
054507,000044:    5657           30006        PRIOENT            CA       BBANK                                 
054508,000045:    5660           00006                 +1        EXTEND                                         
054509,000046:    5661           04007                           ROR      SUPERBNK                              #  ADD SUPER BITS.
054510,000047:    5662           55364                           TS       ALMCADR    +1                         
054511,000048: 
054512,000049:    5663           30002        LARMENT            CA       Q                                     #  STORE RETURN FOR ALARM
054513,000050:    5664           54061                           TS       ITEMP1                                
054514,000051: 
054515,000052:    5665           10375        CHKFAIL1           CCS      FAILREG                               #  IS ANYTHING IN FAILREG
054516,000053:    5666           15671                           TCF      CHKFAIL2                              #  YES TRY NEXT REG
054517,000054:    5667           22375                           LXCH     FAILREG                               
054518,000055:    5670           15703                           TCF      PROGLARM                              #  TURN ALARM LIGHT ON FOR FIRST ALARM
054519,000056: 
054520,000057:    5671           10376        CHKFAIL2           CCS      FAILREG    +1                         
054521,000058:    5672           15675                           TCF      FAIL3                                 
054522,000059:    5673           22376                           LXCH     FAILREG    +1                         
054523,000060:    5674           15706                           TCF      MULTEXIT                              
054524,000061: 
054525,000062:    5675           30377        FAIL3              CA       FAILREG    +2                         
054526,000063:    5676           75006                           MASK     POSMAX                                
054527,000064:    5677           10000                           CCS      A                                     
054528,000065:    5700           15712                           TCF      MULTFAIL                              
054529,000066:    5701           22377                           LXCH     FAILREG    +2                         
054530,000067:    5702           15706                           TCF      MULTEXIT                              
054531,000068: 
054532,000069: 
054533,000070:    5703           41037        PROGLARM           CS       DSPTAB     +11D                       
054534,000071:    5704           75724                           MASK     OCT40400                              
054535,000072:    5705           27037                           ADS      DSPTAB     +11D                       
054536,000073: 
054537,000074:    5706           56061        MULTEXIT           XCH      ITEMP1                                #  OBTAIN RETURN ADDRESS IN A
054538,000075:    5707           00003                           RELINT                                         
054539,000076:    5710           50000                           INDEX    A                                     
054540,000077:    5711           00001                           TC       1                                     
054541,000078: 
054542,000079:    5712           30001        MULTFAIL           CA       L                                     
054543,000080:    5713           65010                           AD       BIT15                                 
054544,000081:    5714           54377                           TS       FAILREG    +2                         
054545,000082: 
054546,000083:    5715           15706                           TCF      MULTEXIT                              
054547,000084: 
054548,000085: 
054549,000086:                                                                                                  #  PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
054550,000087:                                                                                                  #  AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4.  EXAMPLE FOLLOWS,
054551,000088:                                                                                                  #                CAF     OCTXX           ALARM CODE
054552,000089:                                                                                                  #                TC      BANKCALL
054553,000090:                                                                                                  #                CADR    PRIOLARM
054554,000091: 
054555,000092:                                                                                                  #                ...     ...
054556,000093:                                                                                                  #                ...     ...
054557,000094:                                                                                                  #                ...     ...             ASTRONAUT RETURN
054558,000095:                                                                                                  #                TC      PHASCHNG        IMMEDIATE RETURN TO USER.  RESTART
054559,000096:                                                                                                  #                OCT     X.1             PHASE CHANGE FOR PRIO DISPLAY
054560,000097: 
054561,000098: 10,3443                                           BANK     10                                    
054562,000099: 10,2000                                           SETLOC   DISPLAYS                              
054563,000100: 10,2000                                           BANK                                           
054564,000101: 
054565,000102: 10,3443                                           COUNT*   $$/DSPLA                              
054566,000103: 10,3443           00004        PRIOLARM           INHINT                                         #  * * * KEEP IN DISPLAY ROUTINES BANK
054567,000104: 10,3444           54001                           TS       L                                     #  SAVE ALARM CODE
054568,000105: 
054569,000106: 10,3445           30133                           CA       BUF2                                  #  2 CADR OF PRIOLARM USER
054570,000107: 10,3446           55363                           TS       ALMCADR                               
054571,000108: 10,3447           30134                           CA       BUF2       +1                         
054572,000109: 10,3450           05660                           TC       PRIOENT    +1                         #  * LEAVE L ALONE
054573,000110: 10,3451           77013        -5SEC              DEC      -500       B-14                       #  *** DONT MOVE
054574,000111: 10,3452           35056                           CAF      V05N09                                
054575,000112: 10,3453           12414                           TCF      PRIODSPR                              
054576,000113: 
054577,000114: 
054578,000115:    5716                                           BLOCK    02                                    
054579,000116:    4000                                           SETLOC   FFTAG7                                
054580,000117:    4000                                           BANK                                           
054581,000118: 
054582,000119:    5716                                           COUNT*   $$/ALARM                              
054583,000120:    5716           00004        ABORT              INHINT                                         
054584,000121:    5717           30002                           CA       Q                                     
054585,000122:    5720           55363                           TS       ALMCADR                               
054586,000123: 
054587,000124:    5721           50002        ABORT2             INDEX    Q                                     
054588,000125:    5722           30000                           CAF      0                                     
054589,000126:    5723           05656                           TC       BORTENT                               
054590,000127:    5724           40400        OCT40400           OCT      40400                                 
054591,000128:    5725           05725        WHIMPER            TC       WHIMPER                               
054592,000129: 
054593,000130:    5726           00004        CCSHOLE            INHINT                                         
054594,000131:    5727           30002                           CA       Q                                     
054595,000132:    5730           55363                           TS       ALMCADR                               
054596,000133: 
054597,000134:    5731           05721                           TC       ABORT2                                
054598,000135:    5732           01103                           OCT      1103                                  
054599,000136: 
054600,000137:    5733           00004        CURTAINS           INHINT                                         
054601,000138:    5734           30002                           CA       Q                                     
054602,000139:    5735           55363                           TS       ALMCADR                               
054603,000140:    5736           05654                           TC       ALARM2                                
054604,000141:    5737           00217        OCT217             OCT      00217                                 
054605,000142:    5740           01363                           TC       ALMCADR                               #  RETURN TO USER
054606,000143: 
054607,000144:                                                                                                  #  CALLING SEQUENCE FOR VARALARM
054608,000145:                                                                                                  #                CAF     (ALARM)
054609,000146:                                                                                                  #                TC      VARALARM
054610,000147: 
054611,000148:                                                                                                  #  VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
054612,000149: 
054613,000150:    5741           00004        VARALARM           INHINT                                         
054614,000151: 
054615,000152:    5742           54001                           TS       L                                     #  SAVE USERS ALARM CODE
054616,000153: 
054617,000154:    5743           30002                           CA       Q                                     #  SAVE USERS Q
054618,000155:    5744           55363                           TS       ALMCADR                               
054619,000156: 
054620,000157:    5745           05657                           TC       PRIOENT                               
054621,000158:    5746           00014        OCT14              OCT      14                                    #  DONT MOVE
054622,000159: 
054623,000160:    5747           01363                           TC       ALMCADR                               #  RETURN TO USER

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