Source Code

These source-code files are part of a reconstructed copy of Aurora 88, the final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system test software.

They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson.

Since only binary dumps (rather than listings) of Aurora 88 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.

009714,000002:                                                                                                  ## Copyright:   Public domain.
009715,000003:                                                                                                  ## Filename:    KEYRUPT,_UPRUPT.agc
009716,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
009717,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
009718,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
009719,000007:                                                                                                  ##              listings of this program are available; instead, this file
009720,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
009721,000009:                                                                                                  ##              modules and comparison with other AGC programs.
009722,000010:                                                                                                  ## Assembler:   yaYUL
009723,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
009724,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
009725,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
009726,000014:                                                                                                  ##              2023-07-12 MAS  Updated for Aurora 88.
009727,000015: 
009728,000016: 
009729,000017: 12,3602                                           SETLOC   ENDT4S                                
009730,000018: 
009731,000019: 12,3602           54016        KEYRUPT1           TS       BANKRUPT                              
009732,000020: 12,3603           56002                           XCH      Q                                     
009733,000021: 12,3604           54012                           TS       QRUPT                                 
009734,000022: 12,3605           05161                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
009735,000023: 12,3606           35126                           CAF      LOW5                                  
009736,000024: 12,3607           00006                           EXTEND                                         
009737,000025: 12,3610           02015                           RAND     MNKEYIN                               
009738,000026: 12,3611           54077        KEYCOM             TS       RUPTREG4                              
009739,000027: 12,3612           35135                           CAF      CHRPRIO                               
009740,000028: 12,3613           04276                           TC       NOVAC                                 
009741,000029: 12,3614     0264                                  EBANK=   DSPCOUNT                              
009742,000030: 12,3614           02002 10000                     2CADR    CHARIN                                
009743,000031: 12,3616           30077                           CA       RUPTREG4                              
009744,000032: 12,3617           50071                           INDEX    LOCCTR                                
009745,000033: 12,3620           54140                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
009746,000034: 12,3621           04511                           TC       RESUME                                
009747,000035: 
009748,000036:                                                                                                  #  UPRUPT PROGRAM
009749,000037: 
009750,000038: 12,3622           54016        UPRUPT             TS       BANKRUPT                              
009751,000039: 12,3623           56002                           XCH      Q                                     
009752,000040: 12,3624           54012                           TS       QRUPT                                 
009753,000041: 12,3625           05161                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
009754,000042: 12,3626           37657                           CAF      ZERO                                  
009755,000043: 12,3627           56045                           XCH      INLINK                                
009756,000044: 12,3630           54077                           TS       KEYTEMP1                              
009757,000045: 12,3631           37650                           CAF      BIT3                                  #  TURN ON UPACT LIGHT
009758,000046: 12,3632           00006                           EXTEND                                         #  (BIT 3 OF CHANNEL 11)
009759,000047: 12,3633           05011                           WOR      DSALMOUT                              
009760,000048: 12,3634           35126        UPRUPT1            CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
009761,000049: 12,3635           70077                           MASK     KEYTEMP1                              #  LOW5 OF WORD
009762,000050: 12,3636           56077                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
009763,000051: 12,3637           56021                           XCH      SR                                    #  WHOLE WORD INTO SR
009764,000052: 12,3640           55071                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
009765,000053: 12,3641           03705                           TC       SRGHT5                                
009766,000054: 12,3642           75126                           MASK     LOW5                                  #  MID 5
009767,000055: 12,3643           63717                           AD       HI10                                  
009768,000056: 12,3644           03714                           TC       UPTEST                                
009769,000057: 12,3645           03705                           TC       SRGHT5                                
009770,000058: 12,3646           75126                           MASK     LOW5                                  #  HIGH 5
009771,000059: 12,3647           40000                           COM                                            
009772,000060: 12,3650           03714                           TC       UPTEST                                
009773,000061: 12,3651           03701        UPOK               TC       RESTORSR                              #  CODE IS GOOD
009774,000062: 12,3652           43656                           CS       ELRCODE                               #  IF CODE = ERROR LIGHT RESET, PUT +0
009775,000063: 12,3653           60077                           AD       KEYTEMP1                              #  INTO BIT1 OF UPLOCK.
009776,000064: 12,3654           10000                           CCS      A                                     #  IF CODE NOT= ELR, PASS CODE ONLY IF
009777,000065: 12,3655           03664                           TC       TSTUPLOK                              #  BIT1 OF UPLOCK = 0.
009778,000066: 12,3656           00022        ELRCODE            OCT      22                                    
009779,000067: 12,3657           03664                           TC       TSTUPLOK                              
009780,000068: 12,3660           47652                           CS       BIT1                                  #  PUT 0 INTO BIT1 OF UPLOCK
009781,000069: 12,3661           70342                           MASK     UPLOCK                                
009782,000070: 12,3662           54342                           TS       UPLOCK                                
009783,000071: 12,3663           03670                           TC       ACCEPTUP                              
009784,000072: 12,3664           37652        TSTUPLOK           CAF      BIT1                                  
009785,000073: 12,3665           70342                           MASK     UPLOCK                                
009786,000074: 12,3666           10000                           CCS      A                                     
009787,000075: 12,3667           04511                           TC       RESUME                                #  BIT1 OF UPLOCK = 1.
009788,000076: 12,3670           56077        ACCEPTUP           XCH      KEYTEMP1                              #  BIT1 OF UPLOCK = 0.
009789,000077: 12,3671           03611                           TC       KEYCOM                                
009790,000078: 
009791,000079: 12,3672           03701        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
009792,000080: 12,3673           47652                           CS       BIT1                                  #  LOCK OUT FURTHER UPLINK ACTIVITY (BY
009793,000081: 12,3674           70342                           MASK     UPLOCK                                #  PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
009794,000082: 12,3675           67652                           AD       BIT1                                  #  IS SENT UP UPLINK.
009795,000083: 12,3676           54342                           TS       UPLOCK                                
009796,000084: 12,3677           04511        TMFAIL1            TC       TMALM                                 
009797,000085: 12,3700           04511                           TC       RESUME                                
009798,000086: 12,3701           57071        RESTORSR           XCH      KEYTEMP2                              
009799,000087: 12,3702           60000                           DOUBLE                                         
009800,000088: 12,3703           54021                           TS       SR                                    
009801,000089: 12,3704           00002                           TC       Q                                     
009802,000090: 
009803,000091: 12,3705     4511               TMALM              =        RESUME                                #  FOR NOW
009804,000092: 
009805,000093: 12,3705           40021        SRGHT5             CS       SR                                    
009806,000094: 12,3706           40021                           CS       SR                                    
009807,000095: 12,3707           40021                           CS       SR                                    
009808,000096: 12,3710           40021                           CS       SR                                    
009809,000097: 12,3711           40021                           CS       SR                                    
009810,000098: 12,3712           40000                           CS       A                                     
009811,000099: 12,3713           00002                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
009812,000100: 
009813,000101: 12,3714           60077        UPTEST             AD       KEYTEMP1                              
009814,000102: 12,3715           10000                           CCS      A                                     
009815,000103: 12,3716           03672                           TC       TMFAIL2                               
009816,000104: 12,3717           77740        HI10               OCT      77740                                 
009817,000105: 12,3720           03672                           TC       TMFAIL2                               
009818,000106: 12,3721           00002                           TC       Q                                     
009819,000107: 
009820,000108:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.       
009821,000109:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
009822,000110:                                                                                                  #  BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
009823,000111:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
009824,000112:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
009825,000113:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
009826,000114: 
009827,000115: 
009828,000116: 

MAS 2023: The following chunks of code (down to ENDKRURS) were added as patches between Aurora 85 and Aurora 88. They were placed here at the end of the bank so as to not change addresses of existing symbols.

009832,000120: 
009833,000121: 12,3722           00620        4SECS              DEC      400        B-14                       
009834,000122: 
009835,000123: 
009836,000124: 
009837,000125: 12,3723           25362        GOPROG1            INCR     REDOCTR                               #  ADVANCE RESTART COUNTER.
009838,000126: 
009839,000127: 12,3724           31357                           CA       ERESTORE                              
009840,000128: 12,3725           00006                           EXTEND                                         
009841,000129: 12,3726           13733                           BZF      +5                                    
009842,000130: 
009843,000131: 12,3727           00006                           EXTEND                                         #  RESTORE B(X) AND B(X+1) IF RESTART
009844,000132: 12,3730           31376                           DCA      SKEEP5                                #  HAPPENED WHILE SELF-CHECK HAD REPLACED
009845,000133: 12,3731           51377                           NDX      SKEEP7                                #  THEM WITH CHECKING WORDS.
009846,000134: 12,3732           52001                           DXCH     0000                                  
009847,000135: 
009848,000136: 12,3733           02077                           TC       GOPROG     +1                         
009849,000137: 
009850,000138: 
009851,000139: 
009852,000140: 12,3734           55357        STARTSB1           TS       ERESTORE                              #       ERASCHK RESTORE FLAG
009853,000141: 12,3735           34445                           CAF      PRIO34                                #  ENABLE INTERRUPTS.
009854,000142: 12,3736           02252                           TC       STARTSB2                              
009855,000143: 
009856,000144: 
009857,000145: 
009858,000146: 12,3737           04131        ENDTNON3           TC       IBNKCALL                              #  TURN OFF NO ATT LAMP.
009859,000147: 12,3740           27503                           CADR     NOATTOFF                              
009860,000148: 
009861,000149: 12,3741           04660        UNZ2               TC       ZEROICDU                              
009862,000150: 12,3742           03063                           TC       UNZ2B                                 
009863,000151: 
009864,000152: 
009865,000153: 
009866,000154: 12,3743           37647        OPONLY1            CAF      BIT4                                  #  IF OPERATE ON ONLY, AND WE ARE IN COARSE
009867,000155: 12,3744           00006                           EXTEND                                         #  ALIGN, DONT ZERO THE CDUS BECAUSE WE
009868,000156: 12,3745           02012                           RAND     CHAN12                                #  MIGHT BE IN GIMBAL LOCK.
009869,000157: 12,3746           10000                           CCS      A                                     
009870,000158: 12,3747           13126                           TCF      C33TEST                               
009871,000159: 
009872,000160: 12,3750           37643                           CAF      IMUSEFLG                              #  OTHERWISE, ZERO THE COUNTERS
009873,000161: 12,3751           03112                           TC       OPONLY     +1                         #  UNLESS SOMEONE IS USING THE IMU.
009874,000162: 
009875,000163: 
009876,000164: 
009877,000165: 12,3752           43760        CAGESUB1           CS       OC40010                               #  TURN ON NO ATT LAMP.
009878,000166: 12,3753           70322                           MASK     DSPTAB     +11D                       
009879,000167: 12,3754           63760                           AD       OC40010                               
009880,000168: 12,3755           54322                           TS       DSPTAB     +11D                       
009881,000169: 12,3756           43452        CAGESUB2           CS       OCT75                                 #  SET FLAGS TO INDICATE CAGING OR TURN-ON,
009882,000170: 12,3757           13425                           TCF      CAGESUB3                              #  AND TO INHIBIT ALL ISS WARNING INFO.
009883,000171: 
009884,000172: 12,3760           40010        OC40010            OCT      40010                                 
009885,000173: 
009886,000174: 12,3761                        ENDKRURS           EQUALS                                         

End of include-file KEYRUPT,_UPRUPT.agc.  Parent file is MAIN.agc