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. |
013801,000002: ## Copyright: Public domain.
013802,000003: ## Filename: ALARM_AND_ABORT.agc
013803,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
013804,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
013805,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
013806,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
013807,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
013808,000009: ## Validation.
013809,000010: ## Assembler: yaYUL
013810,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
013811,000012: ## Website: www.ibiblio.org/apollo/index.html
013812,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
013813,000014:
013814,000015: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
013815,000016: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
013816,000017:
013817,000018: # CALLING SEQUENCE IS AS FOLLOWS:
013818,000019:
013819,000020: # TC ALARM
013820,000021: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
013821,000022: # (RETURNS HERE)
013822,000023:
013823,000024: 5405 SETLOC ENDPINBF
013824,000025: 5405 1363 EBANK= FAILREG
013825,000026:
013826,000027: 5405 00004 ALARM INHINT
013827,000028: 5406 56002 XCH Q
013828,000029: 5407 54077 TS RUPTREG4
013829,000030:
013830,000031: 5410 11363 CCS FAILREG # SEE IF ONE FAILURE HAS OCCURRED SINCE
013831,000032: # THE LAST ERROR RESET.
013832,000033: 5411 05417 TC MULTFAIL # YES - INDICATE MULTIPLE FAILURES.
013833,000034: 5412 05422 TC NEWALARM # FIRST SINCE RESET.
013834,000035:
013835,000036: 5413 30077 MULTEXIT CA RUPTREG4 # FREE RUPTREG4 BEFORE RELINT.
013836,000037: 5414 00003 RELINT
013837,000038: 5415 50000 INDEX A
013838,000039: 5416 00001 TC 1 # RETURN TO CALLER.
013839,000040:
013840,000041: 5417 66040 MULTFAIL AD OCT40001 # BIT 15 = 1 INDICATES MULTIPLE FAILURES.
013841,000042: 5420 55363 TS FAILREG
013842,000043: 5421 05413 TC MULTEXIT
013843,000044:
013844,000045: 5422 05432 NEWALARM TC PROGLARM # TURN ON THE PROGRAM ALARM LIGHT.
013845,000046:
013846,000047: 5423 34516 CAF PRIO37
013847,000048: 5424 04344 TC NOVAC
013848,000049: 5425 03010 02002 2CADR DOALARM # CALL (SEPARATE) JOB FOR DISPLAY.
013849,000050:
013850,000051: 5427 50077 INDEX RUPTREG4
013851,000052: 5430 30000 CAF 0
013852,000053: 5431 05420 TC MULTFAIL +1
013853,000054:
013854,000055: 5432 45437 PROGLARM CS OCT40400 # TURN ON PROGRAM ALARM LIGHT VIA OUT0.
013855,000056: 5433 70322 MASK DSPTAB +11D
013856,000057: 5434 65437 AD OCT40400
013857,000058: 5435 54322 TS DSPTAB +11D
013858,000059: 5436 00002 TC Q
013859,000060:
013860,000061: 5437 40400 OCT40400 OCT 40400
013861,000062:
013862,000063: # THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
013863,000064: # FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
013864,000065:
013865,000066: 5440 00004 ABORT INHINT # MAY BE CALLED IN INTERRUPT OR UNDER EXEC
013866,000067: 5441 50002 INDEX Q # PICK UP FAILURE CODE.
013867,000068: 5442 30000 CAF 0
013868,000069: 5443 54065 TS ITEMP1
013869,000070:
013870,000071: 5444 11363 CCS FAILREG # SEE IF THIS IS A MULTIPLE FAILURE.
013871,000072: 5445 05450 TC SETMULTF # SET BIT 15 TO INDICATE YES.
013872,000073: 5446 05452 TC NEWABORT # FIRST FAILURE.
013873,000074:
013874,000075: 5447 05447 WHIMPER TC WHIMPER # NOT WITH A BANG...
013875,000076:
013876,000077: 5450 66040 SETMULTF AD OCT40001 # RESTORE AND SET BIT 15.
013877,000078: 5451 05454 TC +3
013878,000079:
013879,000080: 5452 05432 NEWABORT TC PROGLARM # FIRST FAILURE - TURN ON ALARM LIGHT.
013880,000081: 5453 56065 XCH ITEMP1
013881,000082: 5454 55363 +3 TS FAILREG
013882,000083: 5455 05447 TC WHIMPER # UNIVERSAL ABORT LOCATION.
013883,000084:
013884,000085: 5456 56002 CCSHOLE XCH Q
013885,000086: 5457 55364 TS SFAIL
013886,000087:
013887,000088: 5460 05440 TC ABORT
013888,000089: 5461 01103 OCT 1103
013889,000090:
013890,000091: 5462 ENDFAILF EQUALS
013891,000092:
013892,000093: # JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
013893,000094:
013894,000095: 01,3010 SETLOC ENDWAITS
013895,000096:
013896,000097: 01,3010 05311 DOALARM TC GRABWAIT # DISPLAY FAILREG.
013897,000098: 01,3011 33014 CAF FAILDISP
013898,000099: 01,3012 05324 TC NVSBWAIT
013899,000100:
013900,000101: 01,3013 04421 TC EJFREE # FREE DISPLAY AND END JOB.
013901,000102:
013902,000103: 01,3014 00531 FAILDISP OCT 00531
013903,000104:
013904,000105: 01,3015 ENDFAILS EQUALS
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc