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. |
010089,000002: ## Copyright: Public domain.
010090,000003: ## Filename: KEYRUPT,_UPRUPT.agc
010091,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
010092,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
010093,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
010094,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
010095,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
010096,000009: ## Validation.
010097,000010: ## Assembler: yaYUL
010098,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
010099,000012: ## Website: www.ibiblio.org/apollo/index.html
010100,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
010101,000014:
010102,000015: 07,2362 BANK 7
010103,000016:
010104,000017: 07,2362 54016 KEYRUPT1 TS BANKRUPT
010105,000018: 07,2363 56002 XCH Q
010106,000019: 07,2364 54012 TS QRUPT
010107,000020: 07,2365 05251 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
010108,000021: 07,2366 35216 CAF LOW5
010109,000022: 07,2367 00006 EXTEND
010110,000023: 07,2370 02015 RAND MNKEYIN
010111,000024: 07,2371 54077 KEYCOM TS RUPTREG4
010112,000025: 07,2372 35225 CAF CHRPRIO
010113,000026: 07,2373 04344 TC NOVAC
010114,000027: 07,2374 0264 EBANK= DSPCOUNT
010115,000028: 07,2374 02002 10000 2CADR CHARIN
010116,000029: 07,2376 30077 CA RUPTREG4
010117,000030: 07,2377 50071 INDEX LOCCTR
010118,000031: 07,2400 54140 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010119,000032: 07,2401 04567 TC RESUME
010120,000033:
010121,000034: # UPRUPT PROGRAM
010122,000035:
010123,000036: 07,2402 54016 UPRUPT TS BANKRUPT
010124,000037: 07,2403 56002 XCH Q
010125,000038: 07,2404 54012 TS QRUPT
010126,000039: 07,2405 05251 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
010127,000040: 07,2406 37665 CAF ZERO
010128,000041: 07,2407 56045 XCH INLINK
010129,000042: 07,2410 54077 TS KEYTEMP1
010130,000043: 07,2411 37655 CAF BIT3 # TURN ON UPACT LIGHT
010131,000044: 07,2412 00006 EXTEND # (BIT 3 OF CHANNEL 11)
010132,000045: 07,2413 05011 WOR DSALMOUT
010133,000046: 07,2414 35216 UPRUPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
010134,000047: 07,2415 70077 MASK KEYTEMP1 # LOW5 OF WORD
010135,000048: 07,2416 56077 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
010136,000049: 07,2417 56021 XCH SR # WHOLE WORD INTO SR
010137,000050: 07,2420 55070 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
010138,000051: 07,2421 02465 TC SRGHT5
010139,000052: 07,2422 75216 MASK LOW5 # MID 5
010140,000053: 07,2423 62477 AD HI10
010141,000054: 07,2424 02474 TC UPTEST
010142,000055: 07,2425 02465 TC SRGHT5
010143,000056: 07,2426 75216 MASK LOW5 # HIGH 5
010144,000057: 07,2427 40000 COM
010145,000058: 07,2430 02474 TC UPTEST
010146,000059: 07,2431 02461 UPOK TC RESTORSR # CODE IS GOOD
010147,000060: 07,2432 42436 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
010148,000061: 07,2433 60077 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
010149,000062: 07,2434 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
010150,000063: 07,2435 02444 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
010151,000064: 07,2436 00022 ELRCODE OCT 22
010152,000065: 07,2437 02444 TC TSTUPLOK
010153,000066: 07,2440 47657 CS BIT1 # PUT 0 INTO BIT1 OF UPLOCK
010154,000067: 07,2441 70342 MASK UPLOCK
010155,000068: 07,2442 54342 TS UPLOCK
010156,000069: 07,2443 02450 TC ACCEPTUP
010157,000070: 07,2444 37657 TSTUPLOK CAF BIT1
010158,000071: 07,2445 70342 MASK UPLOCK
010159,000072: 07,2446 10000 CCS A
010160,000073: 07,2447 04567 TC RESUME # BIT1 OF UPLOCK = 1.
010161,000074: 07,2450 56077 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
010162,000075: 07,2451 02371 TC KEYCOM
010163,000076:
010164,000077: 07,2452 02461 TMFAIL2 TC RESTORSR # CODE IS BAD
010165,000078: 07,2453 47657 CS BIT1 # LOCK OUT FURTHER UPLINK ACTIVITY (BY
010166,000079: 07,2454 70342 MASK UPLOCK # PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
010167,000080: 07,2455 67657 AD BIT1 # IS SENT UP UPLINK.
010168,000081: 07,2456 54342 TS UPLOCK
010169,000082: 07,2457 04567 TMFAIL1 TC TMALM
010170,000083: 07,2460 04567 TC RESUME
010171,000084: 07,2461 57070 RESTORSR XCH KEYTEMP2
010172,000085: 07,2462 60000 DOUBLE
010173,000086: 07,2463 54021 TS SR
010174,000087: 07,2464 00002 TC Q
010175,000088:
010176,000089: 07,2465 4567 TMALM = RESUME # FOR NOW
010177,000090:
010178,000091: 07,2465 40021 SRGHT5 CS SR
010179,000092: 07,2466 40021 CS SR
010180,000093: 07,2467 40021 CS SR
010181,000094: 07,2470 40021 CS SR
010182,000095: 07,2471 40021 CS SR
010183,000096: 07,2472 40000 CS A
010184,000097: 07,2473 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
010185,000098:
010186,000099: 07,2474 60077 UPTEST AD KEYTEMP1
010187,000100: 07,2475 10000 CCS A
010188,000101: 07,2476 02452 TC TMFAIL2
010189,000102: 07,2477 77740 HI10 OCT 77740
010190,000103: 07,2500 02452 TC TMFAIL2
010191,000104: 07,2501 00002 TC Q
010192,000105:
010193,000106: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
010194,000107: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
010195,000108: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
010196,000109: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010197,000110: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010198,000111: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010199,000112:
010200,000113: 07,2502 EQUALS
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc