Source Code

These source-code files are part of a reconstructed copy of Comanche 051, the original release of the Apollo 11 Command Module (CM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Comanche 055 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes related to the R-2 lunar potential model, using hints from program comments and change-indicating asterisks in the Comanche 055 listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021153D. Note that page numbers in the reconstructed code match those on the Comanche 055 printout, although the added code would likely have changed page numbers for a real Comanche 051 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.

063280,000002:                                                                                                  ## Copyright:   Public domain.
063281,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
063282,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
063283,000005:                                                                                                  ##              It is part of the reconstructed source code for the
063284,000006:                                                                                                  ##              original release of the flight software for the Command
063285,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
063286,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
063287,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
063288,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
063289,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
063290,000012:                                                                                                  ##              reconstruction is correct.
063291,000013:                                                                                                  ## Reference:   pp. 1493-1496
063292,000014:                                                                                                  ## Assembler:   yaYUL
063293,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
063294,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
063295,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
063296,000018: 

Page 1493

063298,000020:                                                                                                  #  THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION.  IT MAY BE CALLED
063299,000021:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
063300,000022: 
063301,000023:                                                                                                  #  CALLING SEQUENCE IS AS FOLLOWS:
063302,000024:                                                                                                  #                TC      ALARM
063303,000025:                                                                                                  #                OCT     NNNNN
063304,000026:                                                                                                  #                                        (RETURNS HERE)
063305,000027: 
063306,000028:    5650                                           BLOCK    02                                    
063307,000029:    4000                                           SETLOC   FFTAG7                                
063308,000030:    4000                                           BANK                                           
063309,000031: 
063310,000032:    5650     0375                                  EBANK=   FAILREG                               
063311,000033: 
063312,000034:    5650                                           COUNT    02/ALARM                              
063313,000035: 
063314,000036:                                                                                                  #  ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
063315,000037: 
063316,000038:    5650           00004        ALARM              INHINT                                         
063317,000039: 
063318,000040:    5651           30002                           CA       Q                                     
063319,000041:    5652           55363        ALARM2             TS       ALMCADR                               
063320,000042:    5653           50002                           INDEX    Q                                     
063321,000043:    5654           30000                           CA       0                                     
063322,000044:    5655           54001        BORTENT            TS       L                                     
063323,000045: 
063324,000046:    5656           30006        PRIOENT            CA       BBANK                                 
063325,000047:    5657           00006                 +1        EXTEND                                         
063326,000048:    5660           04007                           ROR      SUPERBNK                              #  ADD SUPER BITS.
063327,000049:    5661           55364                           TS       ALMCADR    +1                         
063328,000050: 
063329,000051:    5662           30002        LARMENT            CA       Q                                     #  STORE RETURN FOR ALARM
063330,000052:    5663           54061                           TS       ITEMP1                                
063331,000053: 
063332,000054:    5664           30164                           CA       LOC                                   
063333,000055:    5665           54057                           TS       LOCALARM                              
063334,000056:    5666           30165                           CA       BANKSET                               
063335,000057:    5667           54060                           TS       BANKALRM                              
063336,000058: 
063337,000059:    5670           10375        CHKFAIL1           CCS      FAILREG                               #  IS ANYTHING IN FAILREG
063338,000060:    5671           15674                           TCF      CHKFAIL2                              #  YES TRY NEXT REG
063339,000061:    5672           22375                           LXCH     FAILREG                               
063340,000062:    5673           15706                           TCF      PROGLARM                              #  TURN ALARM LIGHT ON FOR FIRST ALARM
063341,000063: 
063342,000064:    5674           10376        CHKFAIL2           CCS      FAILREG    +1                         
063343,000065:    5675           15700                           TCF      FAIL3                                 
063344,000066:    5676           22376                           LXCH     FAILREG    +1                         
063345,000067:    5677           15711                           TCF      MULTEXIT                              
063346,000068: 
063347,000069:    5700           30377        FAIL3              CA       FAILREG    +2                         

Page 1494

063349,000071:    5701           74777                           MASK     POSMAX                                
063350,000072:    5702           10000                           CCS      A                                     
063351,000073:    5703           15715                           TCF      MULTFAIL                              
063352,000074:    5704           22377                           LXCH     FAILREG    +2                         
063353,000075:    5705           15711                           TCF      MULTEXIT                              
063354,000076: 
063355,000077:    5706           41036        PROGLARM           CS       DSPTAB     +11D                       
063356,000078:    5707           77765                           MASK     OCT40400                              
063357,000079:    5710           27036                           ADS      DSPTAB     +11D                       
063358,000080: 
063359,000081:    5711           56061        MULTEXIT           XCH      ITEMP1                                #  OBTAIN RETURN ADDRESS IN A
063360,000082:    5712           00003                           RELINT                                         
063361,000083:    5713           50000                           INDEX    A                                     
063362,000084:    5714           00001                           TC       1                                     
063363,000085: 
063364,000086:    5715           30001        MULTFAIL           CA       L                                     
063365,000087:    5716           65001                           AD       BIT15                                 
063366,000088:    5717           54377                           TS       FAILREG    +2                         
063367,000089: 
063368,000090:    5720           15711                           TCF      MULTEXIT                              
063369,000091: 
063370,000092:                                                                                                  #  PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
063371,000093:                                                                                                  #  AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4.  EXAMPLE FOLLOWS,
063372,000094:                                                                                                  #                CAF     OCTXX           ALARM CODE
063373,000095:                                                                                                  #                TC      BANKCALL
063374,000096:                                                                                                  #                CADR    PRIOLARM
063375,000097: 
063376,000098:                                                                                                  #                ...     ...
063377,000099:                                                                                                  #                ...     ...
063378,000100:                                                                                                  #                ...     ...             ASTRONAUT RETURN
063379,000101:                                                                                                  #                TC      PHASCHNG        IMMEDIATE RETURN TO USER.  RESTART
063380,000102:                                                                                                  #                OCT     X.1             PHASE CHANGE FOR PRIO DISPLAY
063381,000103: 
063382,000104: 10,3766                                           BANK     10                                    
063383,000105: 10,2000                                           SETLOC   DISPLAYS                              
063384,000106: 10,2000                                           BANK                                           
063385,000107: 
063386,000108: 10,3766                                           COUNT    10/DSPLA                              
063387,000109: 10,3766           00004        PRIOLARM           INHINT                                         #  * * * KEEP IN DISPLAY ROUTINES BANK
063388,000110: 10,3767           54001                           TS       L                                     #  SAVE ALARM CODE
063389,000111: 
063390,000112: 10,3770           30133                           CA       BUF2                                  #  2 CADR OF PRIOLARM USER
063391,000113: 10,3771           55363                           TS       ALMCADR                               
063392,000114: 10,3772           30134                           CA       BUF2       +1                         
063393,000115: 10,3773           05657                           TC       PRIOENT    +1                         #  * LEAVE L ALONE
063394,000116: 10,3774           77467        -2SEC              DEC      -200       B-14                       #  *** DONT MOVE
063395,000117: 10,3775           35050                           CAF      V05N09                                
063396,000118: 10,3776           12726                           TCF      PRIODSPR                              
063397,000119: 

Page 1495

063399,000121: 
063400,000122:    5721                                           BLOCK    02                                    
063401,000123:    6000                                           SETLOC   FFTAG13                               
063402,000124:    6000                                           BANK                                           
063403,000125: 
063404,000126:    7755                                           COUNT    02/ALARM                              
063405,000127: 
063406,000128:    7755           00004        BAILOUT            INHINT                                         
063407,000129:    7756           30002                           CA       Q                                     
063408,000130:    7757           55363                           TS       ALMCADR                               
063409,000131: 
063410,000132:    7760           04662                           TC       BANKCALL                              
063411,000133:    7761           40000                           CADR     VAC5STOR                              
063412,000134: 
063413,000135:    7762           51363                           INDEX    ALMCADR                               
063414,000136:    7763           30000                           CAF      0                                     
063415,000137:    7764           05655                           TC       BORTENT                               
063416,000138:    7765           40400        OCT40400           OCT      40400                                 
063417,000139: 
063418,000140:    7766           00004                           INHINT                                         
063419,000141:    7767           35016        WHIMPER            CA       TWO                                   
063420,000142:    7770           60005                           AD       Z                                     
063421,000143:    7771           54017                           TS       BRUPT                                 
063422,000144:    7772           50017                           RESUME                                         
063423,000145:    7773           04701                           TC       POSTJUMP                              #  RESUME SENDS CONTROL HERE
063424,000146:    7774           12651                           CADR     ENEMA                                 
063425,000147: 
063426,000148:    4000                                           SETLOC   FFTAG7                                
063427,000149:    4000                                           BANK                                           
063428,000150: 
063429,000151:    5721           00004        POODOO             INHINT                                         
063430,000152:    5722           30002                           CA       Q                                     
063431,000153:    5723           55363                           TS       ALMCADR                               
063432,000154: 
063433,000155:    5724           04662                           TC       BANKCALL                              
063434,000156:    5725           40000                           CADR     VAC5STOR                              #  STORE ERASABLES FOR DEBUGGING PURPOSES.
063435,000157: 
063436,000158:    5726           51363                           INDEX    ALMCADR                               
063437,000159:    5727           30000                           CAF      0                                     
063438,000160:    5730           05655        ABORT2             TC       BORTENT                               
063439,000161:    5731           77770        OCT77770           OCT      77770                                 #  DONT MOVE
063440,000162:    5732           35012                           CA       V37FLBIT                              #  IS AVERAGE G ON
063441,000163:    5733           70103                           MASK     FLAGWRD7                              
063442,000164:    5734           10000                           CCS      A                                     
063443,000165:    5735           07766                           TC       WHIMPER    -1                         #  YES.  DONT DO POODOO.  DO BAILOUT.
063444,000166: 
063445,000167:    5736           05560                           TC       DOWNFLAG                              
063446,000168:    5737           00067                           ADRES    STATEFLG                              
063447,000169: 
063448,000170:    5740           05560                           TC       DOWNFLAG                              
063449,000171: 

Page 1496

063451,000173:    5741           00236                           ADRES    REINTFLG                              
063452,000174: 
063453,000175:    5742           05560                           TC       DOWNFLAG                              
063454,000176:    5743           00054                           ADRES    NODOFLAG                              
063455,000177: 
063456,000178:    5744           04662                           TC       BANKCALL                              
063457,000179:    5745           12501                           CADR     MR.KLEAN                              
063458,000180:    5746           07767                           TC       WHIMPER                               
063459,000181: 
063460,000182:    5747           00004        CCSHOLE            INHINT                                         
063461,000183:    5750           30002                           CA       Q                                     
063462,000184:    5751           55363                           TS       ALMCADR                               
063463,000185:    5752           04662                           TC       BANKCALL                              
063464,000186:    5753           40000                           CADR     VAC5STOR                              
063465,000187:    5754           35756                           CA       OCT1103                               
063466,000188:    5755           05730                           TC       ABORT2                                
063467,000189:    5756           01103        OCT1103            OCT      1103                                  
063468,000190:    5757           00004        CURTAINS           INHINT                                         
063469,000191:    5760           30002                           CA       Q                                     
063470,000192:    5761           05652                           TC       ALARM2                                
063471,000193:    5762           00217        OCT217             OCT      00217                                 
063472,000194:    5763           01363                           TC       ALMCADR                               #  RETURN TO USER
063473,000195: 
063474,000196:    5764     5217               DOALARM            EQUALS   ENDOFJOB                              
063475,000197: 
063476,000198:                                                                                                  #  CALLING SEQUENCE FOR VARALARM
063477,000199: 
063478,000200:                                                                                                  #                CAF     (ALARM)
063479,000201:                                                                                                  #                TC      VARALARM
063480,000202: 
063481,000203:                                                                                                  #  VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
063482,000204: 
063483,000205:    5764           00004        VARALARM           INHINT                                         
063484,000206: 
063485,000207:    5765           54001                           TS       L                                     #  SAVE USERS ALARM CODE
063486,000208: 
063487,000209:    5766           30002                           CA       Q                                     #  SAVE USERS Q
063488,000210:    5767           55363                           TS       ALMCADR                               
063489,000211: 
063490,000212:    5770           05656                           TC       PRIOENT                               
063491,000213:    5771           00014        OCT14              OCT      14                                    #  DONT MOVE
063492,000214: 
063493,000215:    5772           01363                           TC       ALMCADR                               #  RETURN TO USER
063494,000216: 
063495,000217:    5773     7755               ABORT              EQUALS   BAILOUT                               #  *** TEMPORARY UNTIL ABORT CALLS OUT

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