Source Code
![]() |
YAYUL: ASSEMBLE REVISION 5 OF PROGRAM BOREALIS BY MSTEWART MAR. 27,2017This 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