Source Code
![]() |
YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS BY MSTEWART JUN. 28,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. |
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