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. |
010174,000002: ## Copyright: Public domain.
010175,000003: ## Filename: KEYRUPT,_UPRUPT.agc
010176,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
010177,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
010178,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
010179,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
010180,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
010181,000009: ## Validation.
010182,000010: ## Assembler: yaYUL
010183,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
010184,000012: ## Website: www.ibiblio.org/apollo/index.html
010185,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
010186,000014:
010187,000015: 07,2362 BANK 7
010188,000016:
010189,000017: 07,2362 54016 KEYRUPT1 TS BANKRUPT
010190,000018: 07,2363 56002 XCH Q
010191,000019: 07,2364 54012 TS QRUPT
010192,000020: 07,2365 05251 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
010193,000021: 07,2366 35216 CAF LOW5
010194,000022: 07,2367 00006 EXTEND
010195,000023: 07,2370 02015 RAND MNKEYIN
010196,000024: 07,2371 54077 KEYCOM TS RUPTREG4
010197,000025: 07,2372 35225 CAF CHRPRIO
010198,000026: 07,2373 04344 TC NOVAC
010199,000027: 07,2374 0264 EBANK= DSPCOUNT
010200,000028: 07,2374 02002 10000 2CADR CHARIN
010201,000029: 07,2376 30077 CA RUPTREG4
010202,000030: 07,2377 50071 INDEX LOCCTR
010203,000031: 07,2400 54140 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010204,000032: 07,2401 04567 TC RESUME
010205,000033:
010206,000034: # UPRUPT PROGRAM
010207,000035:
010208,000036: 07,2402 54016 UPRUPT TS BANKRUPT
010209,000037: 07,2403 56002 XCH Q
010210,000038: 07,2404 54012 TS QRUPT
010211,000039: 07,2405 05251 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
010212,000040: 07,2406 37675 CAF ZERO
010213,000041: 07,2407 56045 XCH INLINK
010214,000042: 07,2410 54077 TS KEYTEMP1
010215,000043: 07,2411 37667 CAF BIT3 # TURN ON UPACT LIGHT
010216,000044: 07,2412 00006 EXTEND # (BIT 3 OF CHANNEL 11)
010217,000045: 07,2413 05011 WOR DSALMOUT
010218,000046: 07,2414 35216 UPRUPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
010219,000047: 07,2415 70077 MASK KEYTEMP1 # LOW5 OF WORD
010220,000048: 07,2416 56077 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
010221,000049: 07,2417 56021 XCH SR # WHOLE WORD INTO SR
010222,000050: 07,2420 55070 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
010223,000051: 07,2421 02465 TC SRGHT5
010224,000052: 07,2422 75216 MASK LOW5 # MID 5
010225,000053: 07,2423 62477 AD HI10
010226,000054: 07,2424 02474 TC UPTEST
010227,000055: 07,2425 02465 TC SRGHT5
010228,000056: 07,2426 75216 MASK LOW5 # HIGH 5
010229,000057: 07,2427 40000 COM
010230,000058: 07,2430 02474 TC UPTEST
010231,000059: 07,2431 02461 UPOK TC RESTORSR # CODE IS GOOD
010232,000060: 07,2432 42436 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
010233,000061: 07,2433 60077 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
010234,000062: 07,2434 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
010235,000063: 07,2435 02444 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
010236,000064: 07,2436 00022 ELRCODE OCT 22
010237,000065: 07,2437 02444 TC TSTUPLOK
010238,000066: 07,2440 47671 CS BIT1 # PUT 0 INTO BIT1 OF UPLOCK
010239,000067: 07,2441 70342 MASK UPLOCK
010240,000068: 07,2442 54342 TS UPLOCK
010241,000069: 07,2443 02450 TC ACCEPTUP
010242,000070: 07,2444 37671 TSTUPLOK CAF BIT1
010243,000071: 07,2445 70342 MASK UPLOCK
010244,000072: 07,2446 10000 CCS A
010245,000073: 07,2447 04567 TC RESUME # BIT1 OF UPLOCK = 1.
010246,000074: 07,2450 56077 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
010247,000075: 07,2451 02371 TC KEYCOM
010248,000076:
010249,000077: 07,2452 02461 TMFAIL2 TC RESTORSR # CODE IS BAD
010250,000078: 07,2453 47671 CS BIT1 # LOCK OUT FURTHER UPLINK ACTIVITY (BY
010251,000079: 07,2454 70342 MASK UPLOCK # PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
010252,000080: 07,2455 67671 AD BIT1 # IS SENT UP UPLINK.
010253,000081: 07,2456 54342 TS UPLOCK
010254,000082: 07,2457 04567 TMFAIL1 TC TMALM
010255,000083: 07,2460 04567 TC RESUME
010256,000084: 07,2461 57070 RESTORSR XCH KEYTEMP2
010257,000085: 07,2462 60000 DOUBLE
010258,000086: 07,2463 54021 TS SR
010259,000087: 07,2464 00002 TC Q
010260,000088:
010261,000089: 07,2465 4567 TMALM = RESUME # FOR NOW
010262,000090:
010263,000091: 07,2465 40021 SRGHT5 CS SR
010264,000092: 07,2466 40021 CS SR
010265,000093: 07,2467 40021 CS SR
010266,000094: 07,2470 40021 CS SR
010267,000095: 07,2471 40021 CS SR
010268,000096: 07,2472 40000 CS A
010269,000097: 07,2473 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
010270,000098:
010271,000099: 07,2474 60077 UPTEST AD KEYTEMP1
010272,000100: 07,2475 10000 CCS A
010273,000101: 07,2476 02452 TC TMFAIL2
010274,000102: 07,2477 77740 HI10 OCT 77740
010275,000103: 07,2500 02452 TC TMFAIL2
010276,000104: 07,2501 00002 TC Q
010277,000105:
010278,000106: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
010279,000107: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
010280,000108: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
010281,000109: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010282,000110: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010283,000111: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010284,000112:
010285,000113: 07,2502 EQUALS
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc