Source Code

   YAYUL: ASSEMBLE REVISION 5 OF PROGRAM BOREALIS       BY MSTEWART MAR. 27,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.

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

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