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.

016203,000002:                                                                                                  ## Copyright:   Public domain.
016204,000003:                                                                                                  ## Filename:    RTB_OP_CODES.agc
016205,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
016206,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
016207,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
016208,000007:                                                                                                  ##              listings of this program are available; instead, this file
016209,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
016210,000009:                                                                                                  ##              modules and comparison with other AGC programs.
016211,000010:                                                                                                  ## Assembler:   yaYUL
016212,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
016213,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
016214,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
016215,000014:                                                                                                  ##              2023-07-12 MAS  Updated for Aurora 88.
016216,000015: 
016217,000016: 
016218,000017: 15,3460                                           SETLOC   ENDINFSS                              
016219,000018: 
016220,000019:                                                                                                  #           LOAD TIME2, TIME1 INTO MPAC:
016221,000020: 
016222,000021: 15,3460           00006        LOADTIME           EXTEND                                         
016223,000022: 15,3461           30025                           DCA      TIME2                                 
016224,000023: 15,3462           16470                           TCF      SLOAD2                                
016225,000024: 
016226,000025:                                                                                                  #           CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
016227,000026:                                                                                                  #  DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
016228,000027: 
016229,000028: 15,3463           10140        CDULOGIC           CCS      MPAC                                  
016230,000029: 15,3464           37657                           CAF      ZERO                                  
016231,000030: 15,3465           13470                           TCF      +3                                    
016232,000031: 15,3466           13467                           NOOP                                           
016233,000032: 15,3467           47635                           CS       HALF                                  
016234,000033: 
016235,000034: 15,3470           54141                           TS       MPAC       +1                         
016236,000035: 15,3471           37657                           CAF      ZERO                                  
016237,000036: 15,3472           56140                           XCH      MPAC                                  
016238,000037: 15,3473           00006                           EXTEND                                         
016239,000038: 15,3474           77635                           MP       HALF                                  
016240,000039: 15,3475           20141                           DAS      MPAC                                  
016241,000040: 15,3476           16472                           TCF      SLOAD2     +2                         #  C(A) = +0.
016242,000041: 
016243,000042:                                                                                                  #           READ IMU CDUS INTO MPAC AS A VECTOR. ESPECIALLY USEFUL IN CONNECTION WITH SMNB, ETC.
016244,000043: 
016245,000044: 15,3477           00004        READCDUS           INHINT                                         
016246,000045: 15,3500           30033                           CA       CDUY                                  #  IN ORDER Y Z X
016247,000046: 15,3501           54140                           TS       MPAC                                  
016248,000047: 15,3502           30034                           CA       CDUZ                                  
016249,000048: 15,3503           54143                           TS       MPAC       +3                         
016250,000049: 15,3504           30032                           CA       CDUX                                  
016251,000050: 15,3505           13514                           TCF      READPIPS   +6                         #  COMMON CODING.
016252,000051: 
016253,000052:                                                                                                  #           READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
016254,000053: 
016255,000054: 15,3506           00004        READPIPS           INHINT                                         
016256,000055: 15,3507           30037                           CA       PIPAX                                 
016257,000056: 15,3510           54140                           TS       MPAC                                  
016258,000057: 15,3511           30040                           CA       PIPAY                                 
016259,000058: 15,3512           54143                           TS       MPAC       +3                         
016260,000059: 15,3513           30041                           CA       PIPAZ                                 
016261,000060: 15,3514           00003                           RELINT                                         
016262,000061: 15,3515           54145                           TS       MPAC       +5                         
016263,000062: 
016264,000063: 15,3516           37657                           CAF      ZERO                                  
016265,000064: 15,3517           54141                           TS       MPAC       +1                         
016266,000065: 15,3520           54144                           TS       MPAC       +4                         
016267,000066: 15,3521           54146                           TS       MPAC       +6                         
016268,000067: 
016269,000068: 15,3522           47652        VECMODE            CS       ONE                                   
016270,000069: 15,3523           16013                           TCF      NEWMODE                               
016271,000070: 
016272,000071:                                                                                                  #           FORCE TP SIGN AGREEMENT IN MPAC:
016273,000072: 
016274,000073: 15,3524           07230        SGNAGREE           TC       TPAGREE                               
016275,000074: 15,3525           16014                           TCF      DANZIG                                
016276,000075: 
016277,000076:                                                                                                  #           CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
016278,000077:                                                                                                  #  SCALED IN HALF-REVOLUTIONS.
016279,000078: 
016280,000079: 15,3526           03556        1STO2S             TC       1TO2SUB                               
016281,000080: 15,3527           37657                           CAF      ZERO                                  
016282,000081: 15,3530           54141                           TS       MPAC       +1                         
016283,000082: 15,3531           16013                           TCF      NEWMODE                               
016284,000083: 
016285,000084:                                                                                                  #           DO 1STO2S ON A VECTOR OF ANGLES:
016286,000085: 
016287,000086: 15,3532           03556        V1STO2S            TC       1TO2SUB                               #  ANSWER ARRIVES IN A AND MPAC.
016288,000087: 
016289,000088: 15,3533           52146                           DXCH     MPAC       +5                         
016290,000089: 15,3534           52141                           DXCH     MPAC                                  
016291,000090: 15,3535           03556                           TC       1TO2SUB                               
016292,000091: 15,3536           54142                           TS       MPAC       +2                         
016293,000092: 
016294,000093: 15,3537           52144                           DXCH     MPAC       +3                         
016295,000094: 15,3540           52141                           DXCH     MPAC                                  
016296,000095: 15,3541           03556                           TC       1TO2SUB                               
016297,000096: 15,3542           54141                           TS       MPAC       +1                         
016298,000097: 
016299,000098: 15,3543           30145                           CA       MPAC       +5                         
016300,000099: 15,3544           54140                           TS       MPAC                                  
016301,000100: 
016302,000101: 15,3545           37652                           CAF      ONE                                   #  MODE IS TP.
016303,000102: 15,3546           16013                           TCF      NEWMODE                               
016304,000103: 
016305,000104:                                                                                                  #           V1STO2S FOR 2 COMPONENT VECTOR, USED BY RR.
016306,000105: 
016307,000106: 15,3547           03556        2V1STO2S           TC       1TO2SUB                               
016308,000107: 15,3550           52144                           DXCH     MPAC       +3                         
016309,000108: 15,3551           52141                           DXCH     MPAC                                  
016310,000109: 15,3552           03556                           TC       1TO2SUB                               
016311,000110: 15,3553           54001                           TS       L                                     
016312,000111: 15,3554           30143                           CA       MPAC       +3                         
016313,000112: 15,3555           16470                           TCF      SLOAD2                                
016314,000113: 
016315,000114:                                                                                                  #           SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S COMVERSION:
016316,000115: 
016317,000116: 15,3556           52141        1TO2SUB            DXCH     MPAC                                  #  FINAL MPAC +1 UNSPECIFIED.
016318,000117: 15,3557           20001                           DDOUBL                                         
016319,000118: 15,3560           10000                           CCS      A                                     
016320,000119: 15,3561           67652                           AD       ONE                                   
016321,000120: 15,3562           13564                           TCF      +2                                    
016322,000121: 15,3563           40000                           COM                                            #  THIS WAS REVERSE OF MSU.
016323,000122: 
016324,000123: 15,3564           54140                           TS       MPAC                                  #  AND SKIP ON OVERFLOW.
016325,000124: 15,3565           00002                           TC       Q                                     
016326,000125: 
016327,000126: 15,3566           50000                           INDEX    A                                     #  OVERFLOW UNCORRECT AND IN MSU.
016328,000127: 15,3567           37633                           CAF      LIMITS                                
016329,000128: 15,3570           26140                           ADS      MPAC                                  
016330,000129: 15,3571           00002                           TC       Q                                     
016331,000130: 
016332,000131:                                                                                                  #           SUBROUTINE TO INCREMENT CDUS
016333,000132: 15,3572           33605        INCRCDUS           CAF      LOCTHETA                              
016334,000133: 15,3573           54114                           TS       BUF                                   #  PLACE ADRES(THETA) IN BUF.
016335,000134: 15,3574           30140                           CAE      MPAC                                  #  INCREMENT IN 1S COMPL.
016336,000135: 15,3575           03606                           TC       CDUINC                                
016337,000136: 
016338,000137: 15,3576           24114                           INCR     BUF                                   
016339,000138: 15,3577           30143                           CAE      MPAC       +3                         
016340,000139: 15,3600           03606                           TC       CDUINC                                
016341,000140: 
016342,000141: 15,3601           24114                           INCR     BUF                                   
016343,000142: 15,3602           30145                           CAE      MPAC       +5                         
016344,000143: 15,3603           03606                           TC       CDUINC                                
016345,000144: 
016346,000145: 15,3604           13522                           TCF      VECMODE                               
016347,000146: 
016348,000147: 15,3605           00400        LOCTHETA           ADRES    THETAD                                
016349,000148: 
016350,000149:                                                                                                  #           THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
016351,000150:                                                                                                  #  QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
016352,000151:                                                                                                  #  (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
016353,000152: 
016354,000153: 15,3606           54126        CDUINC             TS       TEM2                                  #  1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
016355,000154: 15,3607           50114                           INDEX    BUF                                   
016356,000155: 15,3610           10000                           CCS      0                                     #  CHANGE 2S COMPL. ANGLE(IN BUF)INTO 1S
016357,000156: 15,3611           67652                           AD       ONE                                   
016358,000157: 15,3612           13616                           TCF      +4                                    
016359,000158: 15,3613           67652                           AD       ONE                                   
016360,000159: 15,3614           67652                           AD       ONE                                   #  OVERFLOW HERE IF 2S COMPL. IS 180 DEG.
016361,000160: 15,3615           40000                           COM                                            
016362,000161: 
016363,000162: 15,3616           60126                           AD       TEM2                                  #  ADD IN INCREMENT. WILL OVERFLOW IF RE-
016364,000163:                                                                                                  #  SULT MOVES FROM 2ND TO 3D QUAD.(OR BACK)
016365,000164: 15,3617           10000                           CCS      A                                     #  BACK TO 2S COMPL.
016366,000165: 15,3620           67652                           AD       ONE                                   
016367,000166: 15,3621           13623                           TCF      +2                                    
016368,000167: 15,3622           40000                           COM                                            
016369,000168: 15,3623           54126                           TS       TEM2                                  #  STORE 14BIT QUANTITY WITH PRESENT SIGN
016370,000169: 15,3624           13630                           TCF      +4                                    
016371,000170: 15,3625           50000                           INDEX    A                                     #  OVERFLOW MEANS CORRECT 14BIT VALUE,WRONG
016372,000171:                                                                                                  #   SIGN.
016373,000172: 15,3626           37633                           CAF      LIMITS                                #  FIX IT,BY ADDING IN 37777 OR 40000
016374,000173: 15,3627           60126                           AD       TEM2                                  
016375,000174: 
016376,000175: 15,3630           50114                           INDEX    BUF                                   
016377,000176: 15,3631           54000                           TS       0                                     #  STORE NEW ANGLE IN 2S COMPLEMENT.
016378,000177: 15,3632           00002                           TC       Q                                     
016379,000178: 
016380,000179:                                                                                                  #           RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
016381,000180: 
016382,000181: 15,3633           50104        PULSEIMU           INDEX    FIXLOC                                #  ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
016383,000182: 15,3634           30046                           CA       X1                                    
016384,000183: 15,3635           04063                           TC       BANKCALL                              
016385,000184: 15,3636           26317                           CADR     IMUPULSE                              
016386,000185: 15,3637           16014                           TCF      DANZIG                                
016387,000186: 
016388,000187:                                                                                                  #           THE FOLLOWING ROUTINE IS USED ONLY IN BENCH TESTING THE RR.
016389,000188: 
016390,000189: 15,3640           04467        RRSIM              TC       FIXDELAY                              
016391,000190: 15,3641           00062                           DEC      50         B-14                       
016392,000191: 
016393,000192: 15,3642           37651        RRSIM2             CAF      BIT2                                  #  SEE IF RR ECTR ENABLED.
016394,000193: 15,3643           00006                           EXTEND                                         
016395,000194: 15,3644           02012                           RAND     12                                    
016396,000195: 15,3645           00006                           EXTEND                                         
016397,000196: 15,3646           13640                           BZF      RRSIM                                 
016398,000197: 
016399,000198: 15,3647           30126                           CA       TEM2                                  #  SAVE EXEC TEMPS SINCE IN RUPT.
016400,000199: 15,3650           54074                           TS       RUPTREG1                              
016401,000200: 15,3651           33707                           CAF      LOPTY                                 
016402,000201: 15,3652           56114                           XCH      BUF                                   
016403,000202: 15,3653           54075                           TS       RUPTREG2                              
016404,000203: 15,3654           30362                           CA       LASTYCMD                              #  ECTR.
016405,000204: 15,3655           60000                           DOUBLE                                         
016406,000205: 15,3656           00006                           EXTEND                                         
016407,000206: 15,3657           73710                           MP       RRSIMG                                
016408,000207: 15,3660           03606                           TC       CDUINC                                
016409,000208: 15,3661           24114                           INCR     BUF                                   
016410,000209: 15,3662           30035                           CA       OPTY                                  #  SHAFT CMD IS DIVIDED BY THE ABS VALUE OF
016411,000210: 15,3663           00006                           EXTEND                                         #  THE COS OF THE TRUNNION ANGLE.
016412,000211: 15,3664           20007                           MSU      7                                     #  TO 1S COMPLEMENT.
016413,000212: 15,3665           04150                           TC       SPCOS                                 
016414,000213: 15,3666           10000                           CCS      A                                     
016415,000214: 15,3667           13672                           TCF      +3                                    
016416,000215: 15,3670           13672                           TCF      +2                                    
016417,000216: 15,3671           13672                           TCF      +1                                    
016418,000217: 15,3672           67652                           AD       ONE                                   
016419,000218: 15,3673           54065                           TS       ITEMP1                                
016420,000219: 
016421,000220: 15,3674           30363                           CA       LASTXCMD                              #  SHAFT RATE DEPENDS ON TRUNNION.
016422,000221: 15,3675           00006                           EXTEND                                         
016423,000222: 15,3676           73710                           MP       RRSIMG                                
016424,000223: 15,3677           00006                           EXTEND                                         
016425,000224: 15,3700           10065                           DV       ITEMP1                                
016426,000225: 15,3701           03606                           TC       CDUINC                                
016427,000226: 15,3702           30074                           CA       RUPTREG1                              
016428,000227: 15,3703           54126                           TS       TEM2                                  
016429,000228: 15,3704           30075                           CA       RUPTREG2                              
016430,000229: 15,3705           54114                           TS       BUF                                   
016431,000230: 15,3706           13640                           TCF      RRSIM                                 
016432,000231: 
016433,000232: 15,3707           00035        LOPTY              ADRES    OPTY                                  
016434,000233: 15,3710           22755        RRSIMG             DEC      .59259                                
016435,000234: 
016436,000235: 

MAS 2023: The following chunk of code (down to ENDRTBSS) was added as a patch between Aurora 85 and Aurora 88. It was placed here at the end of the bank so as to not change addresses of existing symbols.

016440,000239: 
016441,000240: 15,3711           45133        AOTNB1             SLOAD*   RTB                                   
016442,000241: 15,3712           00004                                    3,1                                   
016443,000242: 15,3713           33463                                    CDULOGIC                              
016444,000243: 15,3714           77650                           GOTO                                           
016445,000244: 15,3715           33173                                    AOTNB      +4                         
016446,000245: 
016447,000246: 15,3716                        ENDRTBSS           EQUALS                                         

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