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. |
013716,000002: ## Copyright: Public domain.
013717,000003: ## Filename: ALARM_AND_ABORT.agc
013718,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
013719,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
013720,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
013721,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
013722,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
013723,000009: ## Validation.
013724,000010: ## Assembler: yaYUL
013725,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
013726,000012: ## Website: www.ibiblio.org/apollo/index.html
013727,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
013728,000014:
013729,000015: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
013730,000016: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
013731,000017:
013732,000018: # CALLING SEQUENCE IS AS FOLLOWS:
013733,000019:
013734,000020: # TC ALARM
013735,000021: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
013736,000022: # (RETURNS HERE)
013737,000023:
013738,000024: 5405 SETLOC ENDPINBF
013739,000025: 5405 1363 EBANK= FAILREG
013740,000026:
013741,000027: 5405 00004 ALARM INHINT
013742,000028: 5406 56002 XCH Q
013743,000029: 5407 54077 TS RUPTREG4
013744,000030:
013745,000031: 5410 11363 CCS FAILREG # SEE IF ONE FAILURE HAS OCCURRED SINCE
013746,000032: # THE LAST ERROR RESET.
013747,000033: 5411 05417 TC MULTFAIL # YES - INDICATE MULTIPLE FAILURES.
013748,000034: 5412 05422 TC NEWALARM # FIRST SINCE RESET.
013749,000035:
013750,000036: 5413 30077 MULTEXIT CA RUPTREG4 # FREE RUPTREG4 BEFORE RELINT.
013751,000037: 5414 00003 RELINT
013752,000038: 5415 50000 INDEX A
013753,000039: 5416 00001 TC 1 # RETURN TO CALLER.
013754,000040:
013755,000041: 5417 66042 MULTFAIL AD OCT40001 # BIT 15 = 1 INDICATES MULTIPLE FAILURES.
013756,000042: 5420 55363 TS FAILREG
013757,000043: 5421 05413 TC MULTEXIT
013758,000044:
013759,000045: 5422 05432 NEWALARM TC PROGLARM # TURN ON THE PROGRAM ALARM LIGHT.
013760,000046:
013761,000047: 5423 34516 CAF PRIO37
013762,000048: 5424 04344 TC NOVAC
013763,000049: 5425 02775 02002 2CADR DOALARM # CALL (SEPARATE) JOB FOR DISPLAY.
013764,000050:
013765,000051: 5427 50077 INDEX RUPTREG4
013766,000052: 5430 30000 CAF 0
013767,000053: 5431 05420 TC MULTFAIL +1
013768,000054:
013769,000055: 5432 45437 PROGLARM CS OCT40400 # TURN ON PROGRAM ALARM LIGHT VIA OUT0.
013770,000056: 5433 70322 MASK DSPTAB +11D
013771,000057: 5434 65437 AD OCT40400
013772,000058: 5435 54322 TS DSPTAB +11D
013773,000059: 5436 00002 TC Q
013774,000060:
013775,000061: 5437 40400 OCT40400 OCT 40400
013776,000062:
013777,000063: # THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
013778,000064: # FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
013779,000065:
013780,000066: 5440 00004 ABORT INHINT # MAY BE CALLED IN INTERRUPT OR UNDER EXEC
013781,000067: 5441 50002 INDEX Q # PICK UP FAILURE CODE.
013782,000068: 5442 30000 CAF 0
013783,000069: 5443 54065 TS ITEMP1
013784,000070:
013785,000071: 5444 11363 CCS FAILREG # SEE IF THIS IS A MULTIPLE FAILURE.
013786,000072: 5445 05450 TC SETMULTF # SET BIT 15 TO INDICATE YES.
013787,000073: 5446 05452 TC NEWABORT # FIRST FAILURE.
013788,000074:
013789,000075: 5447 05447 WHIMPER TC WHIMPER # NOT WITH A BANG...
013790,000076:
013791,000077: 5450 66042 SETMULTF AD OCT40001 # RESTORE AND SET BIT 15.
013792,000078: 5451 05454 TC +3
013793,000079:
013794,000080: 5452 05432 NEWABORT TC PROGLARM # FIRST FAILURE - TURN ON ALARM LIGHT.
013795,000081: 5453 56065 XCH ITEMP1
013796,000082: 5454 55363 +3 TS FAILREG
013797,000083: 5455 05447 TC WHIMPER # UNIVERSAL ABORT LOCATION.
013798,000084:
013799,000085: 5456 56002 CCSHOLE XCH Q
013800,000086: 5457 55364 TS SFAIL
013801,000087:
013802,000088: 5460 05440 TC ABORT
013803,000089: 5461 01103 OCT 1103
013804,000090:
013805,000091: 5462 ENDFAILF EQUALS
013806,000092:
013807,000093: # JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
013808,000094:
013809,000095: 01,2775 SETLOC ENDWAITS
013810,000096:
013811,000097: 01,2775 05311 DOALARM TC GRABWAIT # DISPLAY FAILREG.
013812,000098: 01,2776 33001 CAF FAILDISP
013813,000099: 01,2777 05324 TC NVSBWAIT
013814,000100:
013815,000101: 01,3000 04420 TC EJFREE # FREE DISPLAY AND END JOB.
013816,000102:
013817,000103: 01,3001 00531 FAILDISP OCT 00531
013818,000104:
013819,000105: 01,3002 ENDFAILS EQUALS
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc