Source Code

These source-code files are part of a reconstructed copy of Skylark 048, the Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.

They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to.

The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction.

Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

059700,000002:                                                                                                  ## Copyright:   Public domain.
059701,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
059702,000004:                                                                                                  ## Purpose:     A section of Skylark revision 048.
059703,000005:                                                                                                  ##              It is part of the source code for the Apollo Guidance Computer (AGC)
059704,000006:                                                                                                  ##              for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
059705,000007:                                                                                                  ##              this software are available; instead, this file was created via
059706,000008:                                                                                                  ##              disassembly of dumps of the core rope modules actually flown on
059707,000009:                                                                                                  ##              Skylab-2. Access to these modules was provided by the New Mexico
059708,000010:                                                                                                  ##              Museum of Space History.
059709,000011:                                                                                                  ## Assembler:   yaYUL
059710,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
059711,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
059712,000014:                                                                                                  ## Mod history: 2023-09-04 MAS  Created from Artemis 072.
059713,000015: 
059714,000016: 
059715,000017:                                                                                                  #  THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
059716,000018:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
059717,000019: 
059718,000020:                                                                                                  #        CALLING SEQUENCE IS AS FOLLOWS:
059719,000021: 
059720,000022:                                                                                                  #        TC      ALARM
059721,000023:                                                                                                  #        OCT     NNNNN
059722,000024:                                                                                                  #                                (RETURNS HERE)
059723,000025: 
059724,000026:    4000                                           SETLOC   FFTAG7                                
059725,000027:    4000                                           BANK                                           
059726,000028: 
059727,000029:    5644     0374                                  EBANK=   FAILREG                               
059728,000030: 
059729,000031:    5644                                           COUNT*   $$/ALARM                              
059730,000032: 
059731,000033:                                                                                                  #  ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
059732,000034: 
059733,000035:    5644           00004        ALARM              INHINT                                         
059734,000036: 
059735,000037:    5645           30002                           CA       Q                                     
059736,000038:    5646           55363        ALARM2             TS       ALMCADR                               
059737,000039:    5647           50002                           INDEX    Q                                     
059738,000040:    5650           30000                           CA       0                                     
059739,000041:    5651           54001        BORTENT            TS       L                                     
059740,000042: 
059741,000043:    5652           30006        PRIOENT            CA       BBANK                                 
059742,000044:    5653           00006                 +1        EXTEND                                         
059743,000045:    5654           04007                           ROR      SUPERBNK                              #  ADD SUPER BITS.
059744,000046:    5655           55364                           TS       ALMCADR    +1                         
059745,000047: 
059746,000048:    5656           30002        LARMENT            CA       Q                                     #  STORE RETURN FOR ALARM
059747,000049:    5657           54061                           TS       ITEMP1                                
059748,000050: 
059749,000051:    5660           10374        CHKFAIL1           CCS      FAILREG                               #  IS ANYTHING IN FAILREG
059750,000052:    5661           15665                           TCF      CHKFAIL2                              #  YES TRY NEXT REG
059751,000053:    5662           30001                           CA       L                                     
059752,000054:    5663           54374                           TS       FAILREG                               
059753,000055:    5664           15671                           TCF      PROGLARM                              #  TURN ALARM LIGHT ON FOR FIRST ALARM
059754,000056: 
059755,000057:    5665           10375        CHKFAIL2           CCS      FAILREG    +1                         
059756,000058:    5666           15671                           TCF      PROGLARM                              
059757,000059:    5667           30001                           CA       L                                     
059758,000060:    5670           54375                           TS       FAILREG    +1                         
059759,000061: 
059760,000062:    5671           22376        PROGLARM           LXCH     FAILREG    +2                         #  STORE AS "MOST RECENT" ALARM CODE
059761,000063: 
059762,000064:    5672           41231                           CS       DSPTAB     +11D                       #  TURN ON PROGRAM ALARM IF OFF
059763,000065:    5673           77760                           MASK     BIT15+9                               
059764,000066:    5674           27231                           ADS      DSPTAB     +11D                       
059765,000067: 
059766,000068:    5675           56061        MULTEXIT           XCH      ITEMP1                                #  OBTAIN RETURN ADDRESS IN A
059767,000069:    5676           00003                           RELINT                                         
059768,000070:    5677           50000                           INDEX    A                                     
059769,000071:    5700           00001                           TC       1                                     
059770,000072: 
059771,000073:                                                                                                  #  PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
059772,000074:                                                                                                  #  AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
059773,000075:                                                                                                  #                CAF     OCTXX           ALARM CODE
059774,000076:                                                                                                  #                TC      BANKCALL
059775,000077:                                                                                                  #                CADR    PRIOLARM
059776,000078: 
059777,000079:                                                                                                  #                ...     ...
059778,000080:                                                                                                  #                ...     ...
059779,000081:                                                                                                  #                ...     ...             ASTRONAUT RETURN
059780,000082:                                                                                                  #                TC      PHASCHNG        IMMEDIATE RETURN TO USER. RESTART
059781,000083:                                                                                                  #                OCT     X.1             PHASE CHANGE FOR PRIO DISPLAY
059782,000084: 
059783,000085: 10,2000                                           SETLOC   DISPLAYS                              
059784,000086: 10,2000                                           BANK                                           
059785,000087: 
059786,000088: 10,3646                                           COUNT*   $$/DSPLA                              
059787,000089: 10,3646           00004        PRIOLARM           INHINT                                         #  * * * KEEP IN DISPLAY ROUTINES BANK
059788,000090: 10,3647           54001                           TS       L                                     #  SAVE ALARM CODE
059789,000091: 
059790,000092: 10,3650           30133                           CA       BUF2                                  #  2 CADR OF PRIOLARM USER
059791,000093: 10,3651           55363                           TS       ALMCADR                               
059792,000094: 10,3652           30134                           CA       BUF2       +1                         
059793,000095: 10,3653           05653                           TC       PRIOENT    +1                         #  * LEAVE L ALONE
059794,000096: 10,3654           77467        -2SEC              DEC      -200       B-14                       #  *** DONT MOVE
059795,000097: 10,3655           35036                           CAF      V05N09                                
059796,000098: 10,3656           12630                           TCF      PRIODSPR                              
059797,000099: 
059798,000100:    6000                                           SETLOC   FFTAG13                               
059799,000101:    6000                                           BANK                                           
059800,000102: 
059801,000103:    7750                                           COUNT*   $$/ALARM                              
059802,000104:    7750           00004        BAILOUT            INHINT                                         
059803,000105:    7751           30002                           CA       Q                                     
059804,000106:    7752           55363                           TS       ALMCADR                               
059805,000107: 
059806,000108:    7753           04647                           TC       BANKCALL                              
059807,000109:    7754           40000                           CADR     VAC5STOR                              
059808,000110: 
059809,000111:    7755           51363                           INDEX    ALMCADR                               
059810,000112:    7756           30000                           CAF      0                                     
059811,000113:    7757           05651                           TC       BORTENT                               
059812,000114:    7760           40400        BIT15+9            OCT      40400                                 
059813,000115: 
059814,000116:    7761           00004                 -1        INHINT                                         
059815,000117:    7762           35000        WHIMPER            CA       TWO                                   
059816,000118:    7763           60005                           AD       Z                                     
059817,000119:    7764           54017                           TS       BRUPT                                 
059818,000120:    7765           50017                           RESUME                                         
059819,000121:    7766           04666                           TC       POSTJUMP                              #  RESUME SENDS CONTROL HERE
059820,000122:    7767           12615                           CADR     ENEMA                                 
059821,000123: 
059822,000124:    4000                                           SETLOC   FFTAG7                                
059823,000125:    4000                                           COUNT*   $$/ALARM                              
059824,000126:    4000                                           BANK                                           
059825,000127: 
059826,000128:    5701           00004        POODOO             INHINT                                         
059827,000129:    5702           30002                           CA       Q                                     
059828,000130:    5703           55363                           TS       ALMCADR                               
059829,000131: 
059830,000132:    5704           04647                           TC       BANKCALL                              
059831,000133:    5705           40000                           CADR     VAC5STOR                              #  STORE ERASABLES FOR DEBUGGING PURPOSES.
059832,000134: 
059833,000135:    5706           51363                           INDEX    ALMCADR                               
059834,000136:    5707           30000                           CAF      0                                     
059835,000137:    5710           05651        ABORT2             TC       BORTENT                               
059836,000138: 
059837,000139:    5711           77770        OCT77770           OCT      77770                                 #  DONT MOVE
059838,000140:    5712           34774                           CA       V37FLBIT                              #  IS AVERAGE G ON
059839,000141:    5713           70103                           MASK     FLAGWRD7                              
059840,000142:    5714           10000                           CCS      A                                     
059841,000143:    5715           07761                           TC       WHIMPER    -1                         #  YES.  DONT DO POODOO.  DO BAILOUT.
059842,000144: 
059843,000145:    5716           44764                           CS       BIT14                                 #  DISREGARD ENTRY SETTING
059844,000146:    5717           71237                           MASK     EXTVBACT                              #  EXTENDED VBS ACTIVE?
059845,000147:    5720           10000                           CCS      A                                     
059846,000148:    5721           17761                           TCF      WHIMPER    -1                         #  YES  DONT DO POODOO  DO BAILOUT
059847,000149: 
059848,000150:    5722           07722                           TC       DOWNFLAG                              
059849,000151:    5723           00067                           ADRES    STATEFLG                              
059850,000152: 
059851,000153:    5724           07722                           TC       DOWNFLAG                              
059852,000154:    5725           00236                           ADRES    AUTOSEQ                               
059853,000155: 
059854,000156:    5726           07722                           TC       DOWNFLAG                              
059855,000157:    5727           00230                           ADRES    REINTFLG                              
059856,000158: 
059857,000159:    5730           07722                           TC       DOWNFLAG                              
059858,000160:    5731           00176                           ADRES    UTFLAG                                
059859,000161:    5732           07722                           TC       DOWNFLAG                              
059860,000162:    5733           00010                           ADRES    RNDVZFLG                              
059861,000163:    5734           07722                           TC       DOWNFLAG                              
059862,000164:    5735           00031                           ADRES    TRACKFLG                              #  FORCE STOPRATE
059863,000165:    5736           07722                           TC       DOWNFLAG                              
059864,000166:    5737           00054                           ADRES    NODOFLAG                              
059865,000167: 
059866,000168:    5740           04647                           TC       BANKCALL                              
059867,000169:    5741           12444                           CADR     MR.KLEAN                              
059868,000170:    5742           07762                           TC       WHIMPER                               
059869,000171: 
059870,000172:    5743     5220               DOALARM            EQUALS   ENDOFJOB                              
059871,000173: 
059872,000174:                                                                                                  #  CALLING SEQUENCE FOR VARALARM
059873,000175:                                                                                                  #                CAF     (ALARM)
059874,000176:                                                                                                  #                TC      VARALARM
059875,000177: 
059876,000178:                                                                                                  #  VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
059877,000179: 
059878,000180:    5743           00004        VARALARM           INHINT                                         
059879,000181: 
059880,000182:    5744           54001                           TS       L                                     #  SAVE USERS ALARM CODE
059881,000183: 
059882,000184:    5745           30002                           CA       Q                                     #  SAVE USERS Q
059883,000185:    5746           55363                           TS       ALMCADR                               
059884,000186: 
059885,000187:    5747           05652                           TC       PRIOENT                               
059886,000188:    5750           00014        OCT14              OCT      14                                    #  DONT MOVE
059887,000189: 
059888,000190:    5751           01363                           TC       ALMCADR                               #  RETURN TO USER
059889,000191: 
059890,000192:    5752     7750               ABORT              EQUALS   BAILOUT                               #  *** TEMPORARY UNTIL ABORT CALLS OUT

End of include-file ALARM_AND_ABORT.agc.  Parent file is MAIN.agc