Source Code
These source-code files are part of a reconstructed copy of Sundial E, the
final release of the Block II Command Module (CM) Apollo Guidance Computer
(AGC) system test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003053-121, 2003053-151, and 2003972-211, belonging to the MIT Museum. Since only binary dumps (rather than listings) of Sundial are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
011765,000002: ## Copyright: Public domain.
011766,000003: ## Filename: ALARM_AND_ABORT.agc
011767,000004: ## Purpose: A section of Sundial E.
011768,000005: ## It is part of the reconstructed source code for the final
011769,000006: ## release of the Block II Command Module system test software. No
011770,000007: ## original listings of this program are available; instead, this
011771,000008: ## file was created via disassembly of dumps of Sundial core rope
011772,000009: ## modules and comparison with other AGC programs.
011773,000010: ## Assembler: yaYUL
011774,000011: ## Contact: Ron Burkey <info@sandroid.org>.
011775,000012: ## Website: www.ibiblio.org/apollo/index.html
011776,000013: ## Mod history: 2023-06-22 MAS Created from Aurora 12.
011777,000014: ## 2023-06-30 MAS Updated for Sundial E.
011778,000015:
011779,000016:
011780,000017: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
011781,000018: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
011782,000019:
011783,000020: # CALLING SEQUENCE IS AS FOLLOWS:
011784,000021:
011785,000022: # TC ALARM
011786,000023: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
011787,000024: # (RETURNS HERE)
011788,000025:
011789,000026: 5644 SETLOC ENDPINBF
011790,000027: 5644 1363 EBANK= FAILREG
011791,000028:
011792,000029: 5644 00004 ALARM INHINT
011793,000030: 5645 56002 XCH Q
011794,000031: 5646 54077 TS RUPTREG4
011795,000032:
011796,000033: 5647 11363 CCS FAILREG # SEE IF ONE FAILURE HAS OCCURRED SINCE
011797,000034: # THE LAST ERROR RESET.
011798,000035: 5650 05656 TC MULTFAIL # YES - INDICATE MULTIPLE FAILURES.
011799,000036: 5651 05661 TC NEWALARM # FIRST SINCE RESET.
011800,000037:
011801,000038: 5652 30077 MULTEXIT CA RUPTREG4 # FREE RUPTREG4 BEFORE RELINT.
011802,000039: 5653 00003 RELINT
011803,000040: 5654 50000 INDEX A
011804,000041: 5655 00001 TC 1 # RETURN TO CALLER.
011805,000042:
011806,000043: 5656 66042 MULTFAIL AD OCT40001 # BIT 15 = 1 INDICATES MULTIPLE FAILURES.
011807,000044: 5657 55363 TS FAILREG
011808,000045: 5660 05652 TC MULTEXIT
011809,000046:
011810,000047: 5661 05671 NEWALARM TC PROGLARM # TURN ON THE PROGRAM ALARM LIGHT.
011811,000048:
011812,000049: 5662 34450 CAF PRIO37
011813,000050: 5663 04276 TC NOVAC
011814,000051: 5664 03113 02002 2CADR DOALARM # CALL (SEPARATE) JOB FOR DISPLAY.
011815,000052:
011816,000053: 5666 50077 INDEX RUPTREG4
011817,000054: 5667 30000 CAF 0
011818,000055: 5670 05657 TC MULTFAIL +1
011819,000056:
011820,000057: 5671 45676 PROGLARM CS OCT40400 # TURN ON PROGRAM ALARM LIGHT VIA OUT0.
011821,000058: 5672 70322 MASK DSPTAB +11D
011822,000059: 5673 65676 AD OCT40400
011823,000060: 5674 54322 TS DSPTAB +11D
011824,000061: 5675 00002 TC Q
011825,000062:
011826,000063: 5676 40400 OCT40400 OCT 40400
011827,000064:
011828,000065: # THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
011829,000066: # FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
011830,000067:
011831,000068: 5677 00004 ABORT INHINT # MAY BE CALLED IN INTERRUPT OR UNDER EXEC
011832,000069: 5700 50002 INDEX Q # PICK UP FAILURE CODE.
011833,000070: 5701 30000 CAF 0
011834,000071: 5702 54065 TS ITEMP1
011835,000072:
011836,000073: 5703 11363 CCS FAILREG # SEE IF THIS IS A MULTIPLE FAILURE.
011837,000074: 5704 05707 TC SETMULTF # SET BIT 15 TO INDICATE YES.
011838,000075: 5705 05711 TC NEWABORT # FIRST FAILURE.
011839,000076:
011840,000077: 5706 05706 WHIMPER TC WHIMPER # NOT WITH A BANG...
011841,000078:
011842,000079: 5707 66042 SETMULTF AD OCT40001 # RESTORE AND SET BIT 15.
011843,000080: 5710 05713 TC +3
011844,000081:
011845,000082: 5711 05671 NEWABORT TC PROGLARM # FIRST FAILURE - TURN ON ALARM LIGHT.
011846,000083: 5712 56065 XCH ITEMP1
011847,000084: 5713 55363 +3 TS FAILREG
011848,000085: 5714 05706 TC WHIMPER # UNIVERSAL ABORT LOCATION.
011849,000086:
011850,000087: 5715 56002 CCSHOLE XCH Q
011851,000088: 5716 55364 TS SFAIL
011852,000089:
011853,000090: 5717 05677 TC ABORT
011854,000091: 5720 01103 OCT 1103
011855,000092:
011856,000093: 5721 ENDFAILF EQUALS
011857,000094:
011858,000095: # JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
011859,000096:
011860,000097: 01,3113 SETLOC ENDKRURS
011861,000098:
011862,000099: 01,3113 05550 DOALARM TC GRABWAIT # DISPLAY FAILREG.
011863,000100: 01,3114 33117 CAF FAILDISP
011864,000101: 01,3115 05563 TC NVSBWAIT
011865,000102:
011866,000103: 01,3116 04352 TC EJFREE # FREE DISPLAY AND END JOB.
011867,000104:
011868,000105: 01,3117 00531 FAILDISP OCT 00531
011869,000106:
011870,000107: 01,3120 ENDFAILS EQUALS
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc