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