Source Code
These source-code files are part of a reconstructed copy of Sunrise 45, the
penultimate 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, and 1003133-20. 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. |
006986,000002: ## Copyright: Public domain.
006987,000003: ## Filename: ALARM_AND_DISPLAY_PROCEDURES.agc
006988,000004: ## Purpose: A section of Sunrise 45.
006989,000005: ## It is part of the reconstructed source code for the penultimate
006990,000006: ## release of the Block I Command Module system test software. No
006991,000007: ## original listings of this program are available; instead, this
006992,000008: ## file was created via disassembly of dumps of Sunrise core rope
006993,000009: ## memory modules and comparison with the later Block I program
006994,000010: ## Solarium 55.
006995,000011: ## Assembler: yaYUL --block1
006996,000012: ## Contact: Ron Burkey <info@sandroid.org>.
006997,000013: ## Website: www.ibiblio.org/apollo/index.html
006998,000014: ## Mod history: 2022-12-09 MAS Initial reconstructed source.
006999,000015:
007000,000016:
007001,000017: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
007002,000018: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
007003,000019:
007004,000020: # CALLING SEQUENCE IS AS FOLLOWS:
007005,000021:
007006,000022: # TC ALARM
007007,000023: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
007008,000024: # (RETURNS HERE)
007009,000025:
007010,000026: 2605 BANK 1
007011,000027: 2605 20017 ALARM INHINT
007012,000028: 2606 30001 XCH Q
007013,000029: 2607 50572 TS ITEMP1
007014,000030:
007015,000031: 2610 10756 CCS FAILREG # SEE IF ONE FAILURE HAS OCCURRED SINCE
007016,000032: # THE LAST ERROR RESET.
007017,000033: 2611 02617 TC MULTFAIL # YES - INDICATE MULTIPLE FAILURES.
007018,000034: 2612 02622 TC NEWALARM # FIRST SINCE RESET.
007019,000035: 2613 30572 MULTEXIT XCH ITEMP1 # FREE ITEMP1 BEFORE RELINT.
007020,000036:
007021,000037: 2614 20016 ENDALARM RELINT
007022,000038: 2615 20000 INDEX A
007023,000039: 2616 00001 TC 1 # RETURN TO CALLER.
007024,000040:
007025,000041: 2617 64663 MULTFAIL AD CSQ # BIT 15 = 1 INDICATES MULTIPLE FAILURES.
007026,000042: 2620 50756 TS FAILREG # CSQ = BIT15 + BIT1.
007027,000043: 2621 02613 TC MULTEXIT
007028,000044:
007029,000045: 2622 30572 NEWALARM XCH ITEMP1 # SAVE RETURN ADDRESS FOR CALL TO NOVAC.
007030,000046: 2623 50756 TS FAILREG
007031,000047:
007032,000048: 2624 02643 TC PROGLARM # TURN ON THE PROGRAM ALARM LIGHT.
007033,000049:
007034,000050: 2625 32650 CAF ALARMPR
007035,000051: 2626 02043 TC NOVAC
007036,000052: 2627 02634 CADR DOALARM # CALL (SEPARATE) JOB FOR DISPLAY.
007037,000053:
007038,000054: 2630 20756 INDEX FAILREG # (RETURN ADDRESS AT THIS POINT).
007039,000055: 2631 30000 CAF 0
007040,000056: 2632 30756 XCH FAILREG # SET FAILREG AND GET BACK RETURN ADDRESS.
007041,000057: 2633 02614 TC ENDALARM
007042,000058:
007043,000059:
007044,000060: # JOB WHICH CALLS NVSUB FOR ALARM DISPLAY.
007045,000061:
007046,000062: 2634 03025 DOALARM TC GRABDSP # DISPLAY FAILREG.
007047,000063: 2635 03033 TC PREGBSY
007048,000064: 2636 32651 CAF FAILDISP
007049,000065: 2637 02670 TC NVSUB
007050,000066: 2640 03040 TC PRENVBSY
007051,000067: 2641 03107 TC FREEDSP
007052,000068: 2642 02115 TC ENDOFJOB
007053,000069:
007054,000070:
007055,000071: 2643 44516 PROGLARM CS ONE # TURNS ON PROGRAM FAIL LIGHT ON THE
007056,000072: 2644 70011 MASK OUT1 # PANEL. CALLED ONLY BY ALARM AND ABORT.
007057,000073: 2645 64516 AD ONE
007058,000074: 2646 50011 TS OUT1
007059,000075: 2647 00001 TC Q
007060,000076:
007061,000077: 2650 37000 ALARMPR OCT 37000
007062,000078: 2651 00131 FAILDISP OCT 00131
007063,000079:
007064,000080:
007065,000081: # THE FOLLOWING ROUTINE IS CALLED TO INITIATE AN ABORT. FAILREG IS SET (ACCORDING TO THE MULTIPLE
007066,000082: # FAILURES CONVENTION) AND A RE-START IS INITIATED BY TC-SELF. THIS IS CALLED ONLY UNDER RARE CIRCUMSTANCES.
007067,000083:
007068,000084: 2652 20017 ABORT INHINT # MAY BE CALLED IN INTERRUPT OR UNDER EXEC
007069,000085: 2653 20001 INDEX Q # PICK UP FAILURE CODE.
007070,000086: 2654 30000 CAF 0
007071,000087: 2655 50572 TS ITEMP1
007072,000088:
007073,000089: 2656 10756 CCS FAILREG # SEE IF THIS IS A MULTIPLE FAILURE.
007074,000090: 2657 02662 TC SETMULTF # SET BIT 15 TO INDICATE YES.
007075,000091: 2660 02664 TC NEWABORT # FIRST FAILURE.
007076,000092:
007077,000093: 2661 02661 WHIMPER TC WHIMPER # NOT WITH A BANG...
007078,000094:
007079,000095: 2662 64663 SETMULTF AD CSQ # RESTORE AND SET BIT15
007080,000096: 2663 02666 TC +3
007081,000097:
007082,000098: 2664 02643 NEWABORT TC PROGLARM # FIRST FAILURE - TURN ON ALARM LIGHT.
007083,000099: 2665 30572 XCH ITEMP1
007084,000100: 2666 50756 +3 TS FAILREG
007085,000101: 2667 02661 TC WHIMPER # UNIVERSAL ABORT LOCATION.
007086,000102:
007087,000103: 2670 ENDFAILF EQUALS
007088,000104:
007089,000105: 05,7634 SETLOC 13634
007090,000106: 05,7634 03025 DOALARM2 TC GRABDSP # DISPLAY FAILREG.
007091,000107: 05,7635 03033 TC PREGBSY
007092,000108: 05,7636 32651 CAF FAILDISP
007093,000109: 05,7637 02670 TC NVSUB
007094,000110: 05,7640 03040 TC PRENVBSY
007095,000111: 05,7641 03107 ENDMKDSP TC FREEDSP
007096,000112: 05,7642 02115 TC ENDOFJOB
End of include-file ALARM_AND_DISPLAY_PROCEDURES.agc. Parent file is MAIN.agc