Source Code
These source-code files are part of a reconstructed copy of Sunrise 69, the
final release of the Block I 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 1003133-18, 1003133-19, 1003133-20, and 1003733-071. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software. Since only binary dumps (rather than listings) of Sunrise 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. |
007046,000002: ## Copyright: Public domain.
007047,000003: ## Filename: ALARM_AND_DISPLAY_PROCEDURES.agc
007048,000004: ## Purpose: A section of Sunrise 69.
007049,000005: ## It is part of the reconstructed source code for the final
007050,000006: ## release of the Block I Command Module system test software. No
007051,000007: ## original listings of this program are available; instead, this
007052,000008: ## file was created via disassembly of dumps of Sunrise core rope
007053,000009: ## memory modules and comparison with the later Block I program
007054,000010: ## Solarium 55.
007055,000011: ## Assembler: yaYUL --block1
007056,000012: ## Contact: Ron Burkey <info@sandroid.org>.
007057,000013: ## Website: www.ibiblio.org/apollo/index.html
007058,000014: ## Mod history: 2023-06-19 MAS Created from Sunrise 45.
007059,000015:
007060,000016:
007061,000017: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
007062,000018: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
007063,000019:
007064,000020: # CALLING SEQUENCE IS AS FOLLOWS:
007065,000021:
007066,000022: # TC ALARM
007067,000023: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
007068,000024: # (RETURNS HERE)
007069,000025:
007070,000026: 2605 BANK 1
007071,000027: 2605 20017 ALARM INHINT
007072,000028: 2606 30001 XCH Q
007073,000029: 2607 50572 TS ITEMP1
007074,000030:
007075,000031: 2610 10756 CCS FAILREG # SEE IF ONE FAILURE HAS OCCURRED SINCE
007076,000032: # THE LAST ERROR RESET.
007077,000033: 2611 02617 TC MULTFAIL # YES - INDICATE MULTIPLE FAILURES.
007078,000034: 2612 02622 TC NEWALARM # FIRST SINCE RESET.
007079,000035: 2613 30572 MULTEXIT XCH ITEMP1 # FREE ITEMP1 BEFORE RELINT.
007080,000036:
007081,000037: 2614 20016 ENDALARM RELINT
007082,000038: 2615 20000 INDEX A
007083,000039: 2616 00001 TC 1 # RETURN TO CALLER.
007084,000040:
007085,000041: 2617 64663 MULTFAIL AD CSQ # BIT 15 = 1 INDICATES MULTIPLE FAILURES.
007086,000042: 2620 50756 TS FAILREG # CSQ = BIT15 + BIT1.
007087,000043: 2621 02613 TC MULTEXIT
007088,000044:
007089,000045: 2622 30572 NEWALARM XCH ITEMP1 # SAVE RETURN ADDRESS FOR CALL TO NOVAC.
007090,000046: 2623 50756 TS FAILREG
007091,000047:
007092,000048: 2624 02643 TC PROGLARM # TURN ON THE PROGRAM ALARM LIGHT.
007093,000049:
007094,000050: 2625 32650 CAF ALARMPR
007095,000051: 2626 02043 TC NOVAC
007096,000052: 2627 02634 CADR DOALARM # CALL (SEPARATE) JOB FOR DISPLAY.
007097,000053:
007098,000054: 2630 20756 INDEX FAILREG # (RETURN ADDRESS AT THIS POINT).
007099,000055: 2631 30000 CAF 0
007100,000056: 2632 30756 XCH FAILREG # SET FAILREG AND GET BACK RETURN ADDRESS.
007101,000057: 2633 02614 TC ENDALARM
007102,000058:
007103,000059:
007104,000060: # JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
007105,000061:
007106,000062: 2634 03025 DOALARM TC GRABDSP # DISPLAY FAILREG.
007107,000063: 2635 03033 TC PREGBSY
007108,000064: 2636 32651 CAF FAILDISP
007109,000065: 2637 02670 TC NVSUB
007110,000066: 2640 03040 TC PRENVBSY
007111,000067: 2641 03107 TC FREEDSP
007112,000068: 2642 02115 TC ENDOFJOB
007113,000069:
007114,000070:
007115,000071: 2643 44516 PROGLARM CS ONE # TURNS ON PROGRAM FAIL LIGHT ON THE
007116,000072: 2644 70011 MASK OUT1 # PANEL. CALLED ONLY BY ALARM AND ABORT.
007117,000073: 2645 64516 AD ONE
007118,000074: 2646 50011 TS OUT1
007119,000075: 2647 00001 TC Q
007120,000076:
007121,000077: 2650 37000 ALARMPR OCT 37000
007122,000078: 2651 00131 FAILDISP OCT 00131
007123,000079:
007124,000080:
007125,000081: # THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
007126,000082: # FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
007127,000083:
007128,000084: 2652 20017 ABORT INHINT # MAY BE CALLED IN INTERRUPT OR UNDER EXEC
007129,000085: 2653 20001 INDEX Q # PICK UP FAILURE CODE.
007130,000086: 2654 30000 CAF 0
007131,000087: 2655 50572 TS ITEMP1
007132,000088:
007133,000089: 2656 10756 CCS FAILREG # SEE IF THIS IS A MULTIPLE FAILURE.
007134,000090: 2657 02662 TC SETMULTF # SET BIT 15 TO INDICATE YES.
007135,000091: 2660 02664 TC NEWABORT # FIRST FAILURE.
007136,000092:
007137,000093: 2661 02661 WHIMPER TC WHIMPER # NOT WITH A BANG...
007138,000094:
007139,000095: 2662 64663 SETMULTF AD CSQ # RESTORE AND SET BIT15
007140,000096: 2663 02666 TC +3
007141,000097:
007142,000098: 2664 02643 NEWABORT TC PROGLARM # FIRST FAILURE - TURN ON ALARM LIGHT.
007143,000099: 2665 30572 XCH ITEMP1
007144,000100: 2666 50756 +3 TS FAILREG
007145,000101: 2667 02661 TC WHIMPER # UNIVERSAL ABORT LOCATION.
007146,000102:
007147,000103: 2670 ENDFAILF EQUALS
007148,000104:
007149,000105: 05,7634 SETLOC 13634
007150,000106: 05,7634 03025 DOALARM2 TC GRABDSP # DISPLAY FAILREG.
007151,000107: 05,7635 03033 TC PREGBSY
007152,000108: 05,7636 32651 CAF FAILDISP
007153,000109: 05,7637 02670 TC NVSUB
007154,000110: 05,7640 03040 TC PRENVBSY
007155,000111: 05,7641 03107 ENDMKDSP TC FREEDSP
007156,000112: 05,7642 02115 TC ENDOFJOB
End of include-file ALARM_AND_DISPLAY_PROCEDURES.agc. Parent file is MAIN.agc