Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

059451,000002:                                                                                                  ## Copyright:   Public domain.
059452,000003:                                                                                                  ## Filename:    ALARM_AND_ABORT.agc
059453,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
059454,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
059455,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
059456,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
059457,000008:                                                                                                  ##              that the code format has been changed to conform to the
059458,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
059459,000010:                                                                                                  ##              original YUL assembler.
059460,000011:                                                                                                  ## Reference:   pp. 1378-1382
059461,000012:                                                                                                  ## Assembler:   yaYUL
059462,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
059463,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
059464,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
059465,000016:                                                                                                  ##              2016-11-29 TB   Transcribed
059466,000017:                                                                                                  ##              2016-12-07 HG   Fix P00 -> POO
059467,000018:                                                                                                  ##              2016-12-11 HG   add missing operation MASK FLGWRD10
059468,000019:                                                                                                  ##              2016-12-12 HG   add [WORKAROUND] using SBANK=
059469,000020:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
059470,000021:                                                                                                  ##                              and corrected errors found.
059471,000022: 

Page 1378

059473,000024:                                                                                                  #  THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION.  IT MAY BE CALLED
059474,000025:                                                                                                  #  EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
059475,000026: 
059476,000027:                                                                                                  #  CALLING SEQUENCE IS AS FOLLOWS:
059477,000028:                                                                                                  #                TC      ALARM
059478,000029:                                                                                                  #                OCT     AAANN           ALARM NO. NN IN GENERAL AREA AAA.
059479,000030:                                                                                                  #                                        (RETURNS HERE)
059480,000031: 
059481,000032:    5571                                           BLOCK    02                                    
059482,000033:    4000                                           SETLOC   FFTAG7                                
059483,000034:    4000                                           BANK                                           
059484,000035: 
059485,000036:    5571     0375                                  EBANK=   FAILREG                               
059486,000037: 
059487,000038:    5571                                           COUNT*   $$/ALARM                              
059488,000039:                                                                                                  #  ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
059489,000040: 
059490,000041:    5571           00004        ALARM              INHINT                                         
059491,000042: 
059492,000043:    5572           30002                           CA       Q                                     
059493,000044:    5573           55363        ALARM2             TS       ALMCADR                               
059494,000045:    5574           50002                           INDEX    Q                                     
059495,000046:    5575           30000                           CA       0                                     
059496,000047:    5576           54001        BORTENT            TS       L                                     
059497,000048: 
059498,000049:    5577           30006        PRIOENT            CA       BBANK                                 
059499,000050:    5600           00006                 +1        EXTEND                                         
059500,000051:    5601           04007                           ROR      SUPERBNK                              #  ADD SUPER BITS.
059501,000052:    5602           55364                           TS       ALMCADR    +1                         
059502,000053: 
059503,000054:    5603           30002        LARMENT            CA       Q                                     #  STORE RETURN FOR ALARM
059504,000055:    5604           54061                           TS       ITEMP1                                
059505,000056: 
059506,000057:    5605           10375        CHKFAIL1           CCS      FAILREG                               #  IS ANYTHING IN FAILREG
059507,000058:    5606           15612                           TCF      CHKFAIL2                              #  YES TRY NEXT REG
059508,000059:    5607           30001                           CA       L                                     
059509,000060:    5610           54375                           TS       FAILREG                               
059510,000061:    5611           15616                           TCF      PROGLARM                              #  TURN ALARM LIGHT ON FOR FIRST ALARM
059511,000062: 
059512,000063:    5612           10376        CHKFAIL2           CCS      FAILREG    +1                         
059513,000064:    5613           15616                           TCF      PROGLARM                              
059514,000065:    5614           30001                           CA       L                                     
059515,000066:    5615           54376                           TS       FAILREG    +1                         
059516,000067: 
059517,000068:    5616           22377        PROGLARM           LXCH     FAILREG    +2                         #  STORE AS "MOST RECENT" ALARM CODE
059518,000069: 
059519,000070:    5617           41035                           CS       DSPTAB     +11D                       #  TURN ON PROGRAM ALARM IF OFF
059520,000071:    5620           75634                           MASK     OCT40400                              
059521,000072:    5621           27035                           ADS      DSPTAB     +11D                       
059522,000073: 

Page 1379

059524,000075:    5622           56061        MULTEXIT           XCH      ITEMP1                                #  OBTAIN RETURN ADDRESS IN A
059525,000076:    5623           00003                           RELINT                                         
059526,000077:    5624           50000                           INDEX    A                                     
059527,000078:    5625           00001                           TC       1                                     
059528,000079: 
059529,000080:                                                                                                  #  PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
059530,000081:                                                                                                  #  AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4.  EXAMPLE FOLLOWS,
059531,000082:                                                                                                  #                CAF     OCTXX           ALARM CODE
059532,000083:                                                                                                  #                TC      BANKCALL
059533,000084:                                                                                                  #                CADR    PRIOLARM
059534,000085:                                                                                                  #                ...     ...
059535,000086:                                                                                                  #                ...     ...
059536,000087:                                                                                                  #                ...     ...             ASTRONAUT RETURN
059537,000088:                                                                                                  #                TC      PHASCHNG        IMMEDIATE RETURN TO USER. RESTART
059538,000089:                                                                                                  #                OCT     X.1             PHASE CHANGE FOR PRIO DISPLAY
059539,000090: 
059540,000091: 10,3572                                           BANK     10                                    
059541,000092: 10,2000                                           SETLOC   DISPLAYS                              
059542,000093: 10,2000                                           BANK                                           
059543,000094: 
059544,000095: 10,3572                                           COUNT*   $$/DSPLA                              
059545,000096: 10,3572           00004        PRIOLARM           INHINT                                         #  * * * KEEP IN DISPLAY ROUTINES BANK
059546,000097: 10,3573           54001                           TS       L                                     #  SAVE ALARM CODE
059547,000098: 
059548,000099: 10,3574           30133                           CA       BUF2                                  #  2 CADR OF PRIOLARM USER
059549,000100: 10,3575           55363                           TS       ALMCADR                               
059550,000101: 10,3576           30134                           CA       BUF2       +1                         
059551,000102: 10,3577           05600                           TC       PRIOENT    +1                         #  * LEAVE L ALONE
059552,000103: 10,3600           77467        -2SEC              DEC      -200       B-14                       #  *** DONT MOVE
059553,000104: 10,3601           34777                           CAF      V05N09                                
059554,000105: 10,3602           12477                           TCF      PRIODSPR                              
059555,000106: 
059556,000107:    5626                                           BLOCK    02                                    
059557,000108:    4000                                           SETLOC   FFTAG7                                
059558,000109:    4000                                           BANK                                           
059559,000110: 
059560,000111:    5626                                           COUNT*   $$/ALARM                              
059561,000112:    5626           00004        BAILOUT            INHINT                                         
059562,000113:    5627           30002                           CA       Q                                     
059563,000114:    5630           55363                           TS       ALMCADR                               
059564,000115: 
059565,000116:    5631           50002                           INDEX    Q                                     
059566,000117:    5632           30000                           CAF      0                                     
059567,000118:    5633           05576                           TC       BORTENT                               
059568,000119:    5634           40400        OCT40400           OCT      40400                                 
059569,000120: 
059570,000121:    5635           00004                           INHINT                                         
059571,000122:    5636           34743        WHIMPER            CA       TWO                                   
059572,000123:    5637           60005                           AD       Z                                     

Page 1380

059574,000125:    5640           54017                           TS       BRUPT                                 
059575,000126:    5641           50017                           RESUME                                         
059576,000127:    5642           04626                           TC       POSTJUMP                              #  RESUME SENDS CONTROL HERE
059577,000128:    5643           12767                           CADR     ENEMA                                 
059578,000129:    5644           00004        POODOO             INHINT                                         
059579,000130:    5645           30002                           CA       Q                                     
059580,000131:    5646           55363        ABORT2             TS       ALMCADR                               
059581,000132:    5647           50002                           INDEX    Q                                     
059582,000133:    5650           30000                           CAF      0                                     
059583,000134:    5651           05576                           TC       BORTENT                               
059584,000135:    5652           77770        OCT77770           OCT      77770                                 #  DON'T MOVE
059585,000136: 
059586,000137:    5653           11043                           CCS      EXTVBACT                              #  DO BAILOUT NOT POODOO IF EXT. VB. ACTIVE
059587,000138:    5654           15635                           TCF      WHIMPER    -1                         
059588,000139: 
059589,000140:    5655           34756                           CAF      OCT35                                 #  4.35SPOT FOR GOPOODOO
059590,000141:    5656           54001                           TS       L                                     
059591,000142:    5657           40000                           COM                                            
059592,000143:    5660           52760                           DXCH     -PHASE4                               
059593,000144:    5661           00004        GOPOODOO           INHINT                                         
059594,000145:    5662           04607                           TC       BANKCALL                              #  RESET STATEFLG, REINTFLG, AND NODOFLAG.
059595,000146:                                                                                                  #    ALSO RNDVZFLG, P25FLAG AND TRACKFLG
059596,000147:    5663           43007                           CADR     FLAGS                                 
059597,000148:    5664           30103                           CA       FLAGWRD7                              #  IS SERVICER CURRENTLY IN OPERATION?
059598,000149:    5665           74737                           MASK     V37FLBIT                              
059599,000150:    5666           10000                           CCS      A                                     
059600,000151:    5667           15675                           TCF      STRTIDLE                              
059601,000152:    5670           04607                           TC       BANKCALL                              #  TERMINATE GRPS 1, 3, 5, AND 6
059602,000153:    5671           12654                           CADR     V37KLEAN                              
059603,000154:    5672           04607                           TC       BANKCALL                              #  TERMINATE GRPS 2, 4, 1, 3, 5, AND 6
059604,000155:    5673           12645                           CADR     MR.KLEAN                              #        (I.E., GRP 4 LAST)
059605,000156:    5674           15636                           TCF      WHIMPER                               
059606,000157:    5675           35737        STRTIDLE           CAF      BBSERVDL                              
059607,000158:    5676           04720                           TC       SUPERSW                               
059608,000159:    5677           04607                           TC       BANKCALL                              #  PUT SERVICER INTO ITS "GROUND" STATE
059609,000160:    5700           57324                           CADR     SERVIDLE                              #  AND PROCEED TO GOTOPOOH.
059610,000161:    5701           00004        CCSHOLE            INHINT                                         
059611,000162:    5702           30002                           CA       Q                                     
059612,000163:    5703           05646                           TC       ABORT2                                
059613,000164:    5704           21103        OCT21103           OCT      21103                                 
059614,000165:    5705           00004        CURTAINS           INHINT                                         
059615,000166:    5706           30002                           CA       Q                                     
059616,000167:    5707           05573                           TC       ALARM2                                
059617,000168:    5710           00217        OCT217             OCT      00217                                 
059618,000169:    5711           01363                           TC       ALMCADR                               #  RETURN TO USER
059619,000170: 
059620,000171:    5712           00004        BAILOUT1           INHINT                                         
059621,000172:    5713           53364                           DXCH     ALMCADR                               
059622,000173:    5714           35736                           CAF      ADR40400                              
059623,000174:    5715           54061        BOTHABRT           TS       ITEMP1                                
059624,000175: 

Page 1381

059626,000177:    5716           50002                           INDEX    Q                                     
059627,000178:    5717           30000                           CAF      0                                     
059628,000179:    5720           54001                           TS       L                                     
059629,000180:    5721           15605                           TCF      CHKFAIL1                              
059630,000181: 
059631,000182:    5722           00004        POODOO1            INHINT                                         
059632,000183:    5723           53364                           DXCH     ALMCADR                               
059633,000184:    5724           35735                           CAF      ADR77770                              
059634,000185:    5725           15715                           TCF      BOTHABRT                              
059635,000186: 
059636,000187:    5726           00004        ALARM1             INHINT                                         
059637,000188:    5727           53364                           DXCH     ALMCADR                               
059638,000189:    5730           00004        ALMNCADR           INHINT                                         
059639,000190:    5731           50002                           INDEX    Q                                     
059640,000191:    5732           30000                           CA       0                                     
059641,000192:    5733           54001                           TS       L                                     
059642,000193:    5734           15603                           TCF      LARMENT                               
059643,000194: 
059644,000195:    5735           15652        ADR77770           TCF      OCT77770                              
059645,000196:    5736           15634        ADR40400           TCF      OCT40400                              

[WORKAROUND] SBANK= not in original; for adjusting subsequent BBCON — HG

059647,000198:    5737  30,2000                                  SBANK=   LOWSUPER                              
059648,000199:    5737     5146               DOALARM            EQUALS   ENDOFJOB                              
059649,000200:    5737  E7,1515                                  EBANK=   DVCNTR                                
059650,000201:    5737           56067        BBSERVDL           BBCON    SERVIDLE                              
059651,000202: 
059652,000203:                                                                                                  #  CALLING SEQUENCE FOR VARALARM
059653,000204:                                                                                                  #                CAF     (ALARM)
059654,000205:                                                                                                  #                TC      VARALARM
059655,000206: 
059656,000207:                                                                                                  #  VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
059657,000208: 
059658,000209:    5740           00004        VARALARM           INHINT                                         
059659,000210: 
059660,000211:    5741           54001                           TS       L                                     #  SAVE USERS ALARM CODE
059661,000212: 
059662,000213:    5742           30002                           CA       Q                                     #  SAVE USERS Q
059663,000214:    5743           55363                           TS       ALMCADR                               
059664,000215: 
059665,000216:    5744           05577                           TC       PRIOENT                               
059666,000217:    5745           00014        OCT14              OCT      14                                    #  DONT MOVE
059667,000218: 
059668,000219:    5746           01363                           TC       ALMCADR                               #  RETURN TO USER
059669,000220: 
059670,000221:    5747     5636               ABORT              EQUALS   WHIMPER                               
059671,000222: 21,2000                                           SETLOC   ABTFLGS                               
059672,000223: 21,2000                                           BANK                                           
059673,000224: 21,3007                                           COUNT*   $$/ALARM                              
059674,000225: 
059675,000226: 21,3007           44740        FLAGS              CS       STATEBIT                              
059676,000227: 21,3010           70077                           MASK     FLAGWRD3                              
059677,000228: 21,3011           54077                           TS       FLAGWRD3                              
059678,000229: 21,3012           44736                           CS       REINTBIT                              
059679,000230: 21,3013           70106                           MASK     FLGWRD10                              
059680,000231: 

Page 1382

059682,000233: 21,3014           54106                           TS       FLGWRD10                              
059683,000234: 21,3015           44744                           CS       NODOBIT                               
059684,000235: 21,3016           70076                           MASK     FLAGWRD2                              
059685,000236: 21,3017           54076                           TS       FLAGWRD2                              
059686,000237: 21,3020           46017                           CS       BITS9+7                               
059687,000238: 21,3021  0000010               FLAGREF1           EQUALS   RNDVZFLG                              
059688,000239: 21,3021  0000006               FLAGREF2           EQUALS   P25FLAG                               
059689,000240: 21,3021           70074                           MASK     FLAGWRD0                              
059690,000241: 21,3022           54074                           TS       FLAGWRD0                              
059691,000242: 21,3023           40031                           CS       TRACKFLG                              
059692,000243: 21,3024           70075                           MASK     FLAGWRD1                              
059693,000244: 21,3025           54075                           TS       FLAGWRD1                              
059694,000245: 21,3026           00002                           TC       Q                                     
059695,000246: 
059696,000247: 

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