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