Source Code

   YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS       BY MSTEWART JUN. 28,2017
This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations.

018437,000002:                                                                                                  ## Copyright:   Public domain.
018438,000003:                                                                                                  ## Filename:    RTB_OP_CODES.agc
018439,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
018440,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
018441,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
018442,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
018443,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
018444,000009:                                                                                                  ##              Validation.
018445,000010:                                                                                                  ## Assembler:   yaYUL
018446,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
018447,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
018448,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
018449,000014: 
018450,000015: 15,3342                                           SETLOC   ENDINFSS                              
018451,000016: 
018452,000017:                                                                                                  #           LOAD TIME2, TIME1 INTO MPAC:
018453,000018: 
018454,000019: 15,3342           00006        LOADTIME           EXTEND                                         
018455,000020: 15,3343           30025                           DCA      TIME2                                 
018456,000021: 15,3344           16447                           TCF      SLOAD2                                
018457,000022: 
018458,000023:                                                                                                  #           CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
018459,000024:                                                                                                  #  DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
018460,000025: 
018461,000026: 15,3345           10140        CDULOGIC           CCS      MPAC                                  
018462,000027: 15,3346           37675                           CAF      ZERO                                  
018463,000028: 15,3347           13352                           TCF      +3                                    
018464,000029: 15,3350           13351                           NOOP                                           
018465,000030: 15,3351           47654                           CS       HALF                                  
018466,000031: 
018467,000032: 15,3352           54141                           TS       MPAC       +1                         
018468,000033: 15,3353           37675                           CAF      ZERO                                  
018469,000034: 15,3354           56140                           XCH      MPAC                                  
018470,000035: 15,3355           00006                           EXTEND                                         
018471,000036: 15,3356           77654                           MP       HALF                                  
018472,000037: 15,3357           20141                           DAS      MPAC                                  
018473,000038: 15,3360           16451                           TCF      SLOAD2     +2                         #  C(A) = +0.
018474,000039: 
018475,000040:                                                                                                  #           READ IMU CDUS INTO MPAC AS A VECTOR. ESPECIALLY USEFUL IN CONNECTION WITH SMNB, ETC.
018476,000041: 
018477,000042: 15,3361           00004        READCDUS           INHINT                                         
018478,000043: 15,3362           30033                           CA       CDUY                                  #  IN ORDER Y Z X
018479,000044: 15,3363           54140                           TS       MPAC                                  
018480,000045: 15,3364           30034                           CA       CDUZ                                  
018481,000046: 15,3365           54143                           TS       MPAC       +3                         
018482,000047: 15,3366           30032                           CA       CDUX                                  
018483,000048: 15,3367           13376                           TCF      READPIPS   +6                         #  COMMON CODING.
018484,000049: 
018485,000050:                                                                                                  #           READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
018486,000051: 
018487,000052: 15,3370           00004        READPIPS           INHINT                                         
018488,000053: 15,3371           30037                           CA       PIPAX                                 
018489,000054: 15,3372           54140                           TS       MPAC                                  
018490,000055: 15,3373           30040                           CA       PIPAY                                 
018491,000056: 15,3374           54143                           TS       MPAC       +3                         
018492,000057: 15,3375           30041                           CA       PIPAZ                                 
018493,000058: 15,3376           00003                           RELINT                                         
018494,000059: 15,3377           54145                           TS       MPAC       +5                         
018495,000060: 
018496,000061: 15,3400           37675                           CAF      ZERO                                  
018497,000062: 15,3401           54141                           TS       MPAC       +1                         
018498,000063: 15,3402           54144                           TS       MPAC       +4                         
018499,000064: 15,3403           54146                           TS       MPAC       +6                         
018500,000065: 
018501,000066: 15,3404           47671        VECMODE            CS       ONE                                   
018502,000067: 15,3405           16011                           TCF      NEWMODE                               
018503,000068: 
018504,000069:                                                                                                  #           FORCE TP SIGN AGREEMENT IN MPAC:
018505,000070: 
018506,000071: 15,3406           07234        SGNAGREE           TC       TPAGREE                               
018507,000072: 15,3407           16012                           TCF      DANZIG                                
018508,000073: 
018509,000074:                                                                                                  #           CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
018510,000075:                                                                                                  #  SCALED IN HALF-REVOLUTIONS.
018511,000076: 
018512,000077: 15,3410           03440        1STO2S             TC       1TO2SUB                               
018513,000078: 15,3411           37675                           CAF      ZERO                                  
018514,000079: 15,3412           54141                           TS       MPAC       +1                         
018515,000080: 15,3413           16011                           TCF      NEWMODE                               
018516,000081: 
018517,000082:                                                                                                  #           DO 1STO2S ON A VECTOR OF ANGLES:
018518,000083: 
018519,000084: 15,3414           03440        V1STO2S            TC       1TO2SUB                               #  ANSWER ARRIVES IN A AND MPAC.
018520,000085: 
018521,000086: 15,3415           52146                           DXCH     MPAC       +5                         
018522,000087: 15,3416           52141                           DXCH     MPAC                                  
018523,000088: 15,3417           03440                           TC       1TO2SUB                               
018524,000089: 15,3420           54142                           TS       MPAC       +2                         
018525,000090: 
018526,000091: 15,3421           52144                           DXCH     MPAC       +3                         
018527,000092: 15,3422           52141                           DXCH     MPAC                                  
018528,000093: 15,3423           03440                           TC       1TO2SUB                               
018529,000094: 15,3424           54141                           TS       MPAC       +1                         
018530,000095: 
018531,000096: 15,3425           30145                           CA       MPAC       +5                         
018532,000097: 15,3426           54140                           TS       MPAC                                  
018533,000098: 
018534,000099: 15,3427           37671                           CAF      ONE                                   #  MODE IS TP.
018535,000100: 15,3430           16011                           TCF      NEWMODE                               
018536,000101: 
018537,000102:                                                                                                  #           V1STO2S FOR 2 COMPONENT VECTOR, USED BY RR.
018538,000103: 
018539,000104: 15,3431           03440        2V1STO2S           TC       1TO2SUB                               
018540,000105: 15,3432           52144                           DXCH     MPAC       +3                         
018541,000106: 15,3433           52141                           DXCH     MPAC                                  
018542,000107: 15,3434           03440                           TC       1TO2SUB                               
018543,000108: 15,3435           54001                           TS       L                                     
018544,000109: 15,3436           30143                           CA       MPAC       +3                         
018545,000110: 15,3437           16447                           TCF      SLOAD2                                
018546,000111: 
018547,000112:                                                                                                  #           SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S COMVERSION:
018548,000113: 
018549,000114: 15,3440           52141        1TO2SUB            DXCH     MPAC                                  #  FINAL MPAC +1 UNSPECIFIED.
018550,000115: 15,3441           20001                           DDOUBL                                         
018551,000116: 15,3442           10000                           CCS      A                                     
018552,000117: 15,3443           67671                           AD       ONE                                   
018553,000118: 15,3444           13446                           TCF      +2                                    
018554,000119: 15,3445           40000                           COM                                            #  THIS WAS REVERSE OF MSU.
018555,000120: 
018556,000121: 15,3446           54140                           TS       MPAC                                  #  AND SKIP ON OVERFLOW.
018557,000122: 15,3447           00002                           TC       Q                                     
018558,000123: 
018559,000124: 15,3450           50000                           INDEX    A                                     #  OVERFLOW UNCORRECT AND IN MSU.
018560,000125: 15,3451           37652                           CAF      LIMITS                                
018561,000126: 15,3452           26140                           ADS      MPAC                                  
018562,000127: 15,3453           00002                           TC       Q                                     
018563,000128: 
018564,000129:                                                                                                  #           SUBROUTINE TO INCREMENT CDUS
018565,000130: 15,3454           33467        INCRCDUS           CAF      LOCTHETA                              
018566,000131: 15,3455           54114                           TS       BUF                                   #  PLACE ADRES(THETA) IN BUF.
018567,000132: 15,3456           30140                           CAE      MPAC                                  #  INCREMENT IN 1S COMPL.
018568,000133: 15,3457           03470                           TC       CDUINC                                
018569,000134: 
018570,000135: 15,3460           24114                           INCR     BUF                                   
018571,000136: 15,3461           30143                           CAE      MPAC       +3                         
018572,000137: 15,3462           03470                           TC       CDUINC                                
018573,000138: 
018574,000139: 15,3463           24114                           INCR     BUF                                   
018575,000140: 15,3464           30145                           CAE      MPAC       +5                         
018576,000141: 15,3465           03470                           TC       CDUINC                                
018577,000142: 
018578,000143: 15,3466           13404                           TCF      VECMODE                               
018579,000144: 
018580,000145: 15,3467           00400        LOCTHETA           ADRES    THETAD                                
018581,000146: 
018582,000147:                                                                                                  #           THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
018583,000148:                                                                                                  #  QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
018584,000149:                                                                                                  #  (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
018585,000150: 
018586,000151: 15,3470           54126        CDUINC             TS       TEM2                                  #  1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
018587,000152: 15,3471           50114                           INDEX    BUF                                   
018588,000153: 15,3472           10000                           CCS      0                                     #  CHANGE 2S COMPL. ANGLE(IN BUF)INTO 1S
018589,000154: 15,3473           67671                           AD       ONE                                   
018590,000155: 15,3474           13500                           TCF      +4                                    
018591,000156: 15,3475           67671                           AD       ONE                                   
018592,000157: 15,3476           67671                           AD       ONE                                   #  OVERFLOW HERE IF 2S COMPL. IS 180 DEG.
018593,000158: 15,3477           40000                           COM                                            
018594,000159: 
018595,000160: 15,3500           60126                           AD       TEM2                                  #  ADD IN INCREMENT. WILL OVERFLOW IF RE-
018596,000161:                                                                                                  #  SULT MOVES FROM 2ND TO 3D QUAD.(OR BACK)
018597,000162: 15,3501           10000                           CCS      A                                     #  BACK TO 2S COMPL.
018598,000163: 15,3502           67671                           AD       ONE                                   
018599,000164: 15,3503           13505                           TCF      +2                                    
018600,000165: 15,3504           40000                           COM                                            
018601,000166: 15,3505           54126                           TS       TEM2                                  #  STORE 14BIT QUANTITY WITH PRESENT SIGN
018602,000167: 15,3506           13512                           TCF      +4                                    
018603,000168: 15,3507           50000                           INDEX    A                                     #  OVERFLOW MEANS CORRECT 14BIT VALUE,WRONG
018604,000169:                                                                                                  #   SIGN.
018605,000170: 15,3510           37652                           CAF      LIMITS                                #  FIX IT,BY ADDING IN 37777 OR 40000
018606,000171: 15,3511           60126                           AD       TEM2                                  
018607,000172: 
018608,000173: 15,3512           50114                           INDEX    BUF                                   
018609,000174: 15,3513           54000                           TS       0                                     #  STORE NEW ANGLE IN 2S COMPLEMENT.
018610,000175: 15,3514           00002                           TC       Q                                     
018611,000176: 
018612,000177:                                                                                                  #           RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
018613,000178: 
018614,000179: 15,3515           50104        PULSEIMU           INDEX    FIXLOC                                #  ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
018615,000180: 15,3516           30046                           CA       X1                                    
018616,000181: 15,3517           04065                           TC       BANKCALL                              
018617,000182: 15,3520           26317                           CADR     IMUPULSE                              
018618,000183: 15,3521           16012                           TCF      DANZIG                                
018619,000184: 
018620,000185:                                                                                                  #           THE FOLLOWING ROUTINE IS USED ONLY IN BENCH TESTING THE RR.
018621,000186: 
018622,000187: 15,3522           04535        RRSIM              TC       FIXDELAY                              
018623,000188: 15,3523           00062                           DEC      50         B-14                       
018624,000189: 
018625,000190: 15,3524           37670        RRSIM2             CAF      BIT2                                  #  SEE IF RR ECTR ENABLED.
018626,000191: 15,3525           00006                           EXTEND                                         
018627,000192: 15,3526           02012                           RAND     12                                    
018628,000193: 15,3527           00006                           EXTEND                                         
018629,000194: 15,3530           13522                           BZF      RRSIM                                 
018630,000195: 
018631,000196: 15,3531           30126                           CA       TEM2                                  #  SAVE EXEC TEMPS SINCE IN RUPT.
018632,000197: 15,3532           54074                           TS       RUPTREG1                              
018633,000198: 15,3533           33573                           CAF      LOPTY                                 
018634,000199: 15,3534           56114                           XCH      BUF                                   
018635,000200: 15,3535           54075                           TS       RUPTREG2                              
018636,000201: 15,3536           30362                           CA       LASTYCMD                              #  ECTR.
018637,000202: 15,3537           60000                           DOUBLE                                         
018638,000203: 15,3540           00006                           EXTEND                                         
018639,000204: 15,3541           73574                           MP       RRSIMG                                
018640,000205: 15,3542           03470                           TC       CDUINC                                
018641,000206: 15,3543           24114                           INCR     BUF                                   
018642,000207: 15,3544           30035                           CA       OPTY                                  #  SHAFT CMD IS DIVIDED BY THE ABS VALUE OF
018643,000208: 15,3545           00006                           EXTEND                                         #  THE COS OF THE TRUNNION ANGLE.
018644,000209: 15,3546           20007                           MSU      7                                     #  TO 1S COMPLEMENT.
018645,000210: 15,3547           04213                           TC       SPCOS                                 #                                  *
018646,000211: 15,3550           00006                           EXTEND                                         #  SPCOS NOW GIVES COS SCALED AT 1 *
018647,000212: 15,3551           77654                           MP       BIT14                                 #      (A DAP GROUP FIX)           *
018648,000213: 15,3552           10000                           CCS      A                                     
018649,000214: 15,3553           13556                           TCF      +3                                    
018650,000215: 15,3554           13556                           TCF      +2                                    
018651,000216: 15,3555           13556                           TCF      +1                                    
018652,000217: 15,3556           67671                           AD       ONE                                   
018653,000218: 15,3557           54065                           TS       ITEMP1                                
018654,000219: 
018655,000220: 15,3560           30363                           CA       LASTXCMD                              #  SHAFT RATE DEPENDS ON TRUNNION.
018656,000221: 15,3561           00006                           EXTEND                                         
018657,000222: 15,3562           73574                           MP       RRSIMG                                
018658,000223: 15,3563           00006                           EXTEND                                         
018659,000224: 15,3564           10065                           DV       ITEMP1                                
018660,000225: 15,3565           03470                           TC       CDUINC                                
018661,000226: 15,3566           30074                           CA       RUPTREG1                              
018662,000227: 15,3567           54126                           TS       TEM2                                  
018663,000228: 15,3570           30075                           CA       RUPTREG2                              
018664,000229: 15,3571           54114                           TS       BUF                                   
018665,000230: 15,3572           13522                           TCF      RRSIM                                 
018666,000231: 
018667,000232: 15,3573           00035        LOPTY              ADRES    OPTY                                  
018668,000233: 15,3574           22755        RRSIMG             DEC      .59259                                
018669,000234: 15,3575                        ENDRTBSS           EQUALS                                         

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