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