Source Code

These source-code files were obtained by digitally photographing an Artemis 72 program listing from a private collection and then modifying pre-existing Comanche 55 (Apollo 11) source files to incorporate changes. Note that the page images presented online are of reduced quality, and that additional images may be available. Report any conversion errors or legibility problems in page images to info@sandroid.org. Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS 
	BY NASA 2021114-011 11:40 FEB. 26, 1971

	THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS
				COLOSSUS 3
	THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED
	IN REPORT R-577.  THIS PROGRAM WAS PREPARED UNDER OSR
	PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT
	CENTER OF THE NATIONAL AERONAUTICS AND SPACE
	ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE
	CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF
	TECHNOLOGY, CAMBRIDGE, MASS.

060339,000002:                                                                                                 #  Copyright:     Public domain.
060340,000003:                                                                                                 #  Filename:      RESTARTS_ROUTINE.agc
060341,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
060342,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
060343,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
060344,000007:                                                                                                 #                 Apollo 15-17.
060345,000008:                                                                                                 #  Assembler:     yaYUL
060346,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
060347,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
060348,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
060349,000012:                                                                                                 #  Mod history:   2009-08-18 JL   Adapted from corresponding Comanche 055 file.
060350,000013:                                                                                                 #                 2010-02-02 JL   Fixed page numbers.
060351,000014:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
060352,000015: 

Page 1411

060354,000017: 01,2000                                          SETLOC   RESTART                               
060355,000018: 01,2000                                          BANK                                           
060356,000019: 
060357,000020: 01,3467  E3,1436                                 EBANK=   PHSNAME1                              #  GOPROG MUST SWITCH TO THIS EBANK
060358,000021: 
060359,000022: 01,3467                                          COUNT*   $$/RSROU                              
060360,000023: 01,3467           30161        RESTARTS          CA       MPAC       +5                         #  GET GROUP NUMBER -1
060361,000024: 01,3470           60000                          DOUBLE                                         #  SAVE FOR INDEXING
060362,000025: 01,3471           54155                          TS       TEMP2G                                
060363,000026: 
060364,000027: 01,3472           33127                          CA       PHS2CADR                              #  SET UP EXIT IN CASE IT IS AN EVEN
060365,000028: 01,3473           54157                          TS       TEMPSWCH                              #  TABLE PHASE
060366,000029: 
060367,000030: 01,3474           33526                          CA       RTRNCADR                              #  TO SAVE TIME ASSUME IT WILL GET NEXT
060368,000031: 01,3475           54707                          TS       GOLOC      +2                         #  GROUP AFTER THIS
060369,000032: 
060370,000033: 01,3476           30154                          CA       TEMPPHS                               
060371,000034: 01,3477           75024                          MASK     OCT1400                               
060372,000035: 01,3500           10000                          CCS      A                                     #  IS IT A VARIABLE OR TABLE RESTART
060373,000036: 01,3501           13512                          TCF      ITSAVAR                               #  IT'S A VARIABLE RESTART
060374,000037: 
060375,000038: 01,3502           10154        GETPART2          CCS      TEMPPHS                               #  IS IT AN X.1 RESTART
060376,000039: 01,3503           10000                          CCS      A                                     
060377,000040: 01,3504           13612                          TCF      ITSATBL                               #  NO, IT'S A TABLE RESTART
060378,000041: 
060379,000042: 01,3505           35053                          CA       PRIO14                                #  IT IS AN X.1 RESTART, THEREFORE START
060380,000043: 01,3506           05135        FVACCADR          TC       FINDVAC                               #  THE DISPLAY RESTART ROUTINE (=GENADR)
060381,000044: 01,3507  E3,1400                                 EBANK=   LST1                                  
060382,000045: 01,3507           03263 20063                    2CADR    INITDSP                               
060383,000046: 
060384,000047: 
060385,000048: 01,3511           03526                          TC       RTRNCADR                              #  FINISHED WITH THIS GROUP, GET NEXT ONE
060386,000049: 
060387,000050: 01,3512           75024        ITSAVAR           MASK     OCT1400                               #  IS IT TYPE B ?
060388,000051: 01,3513           10000                          CCS      A                                     
060389,000052: 01,3514           13563                          TCF      ITSLIKEB                              #  YES, IT IS TYPE B
060390,000053: 
060391,000054: 01,3515           00006                          EXTEND                                         #  STORES THE JOB (OR TASK) 2CADR FOR EXIT
060392,000055: 01,3516           50155                          NDX      TEMP2G                                
060393,000056: 01,3517           31437                          DCA      PHSNAME1                              
060394,000057: 01,3520           52706                          DXCH     GOLOC                                 
060395,000058: 
060396,000059: 01,3521           30154                          CA       TEMPPHS                               #  SEE IF THIS IS A JOB, TASK, OR A LONGCALL
060397,000060: 01,3522           74774                          MASK     OCT7                                  
060398,000061: 01,3523           67701                          AD       MINUS2                                
060399,000062: 01,3524           10000                          CCS      A                                     
060400,000063: 01,3525           13675                          TCF      ITSLNGCL                              #  IT'S A LONGCALL
060401,000064: 
060402,000065: 01,3526           04651        RTRNCADR          TC       SWRETURN                              #  CANT GET HERE.
060403,000066: 01,3527           13531                          TCF      ITSAWAIT                              

Page 1412

060405,000068: 01,3530           13576                          TCF      ITSAJOB                               #  ITS A JOB
060406,000069: 
060407,000070: 01,3531           33463        ITSAWAIT          CA       WTLTCADR                              #  SET UP WAITLIST CALL
060408,000071: 01,3532           54704                          TS       GOLOC      -1                         
060409,000072: 
060410,000073: 01,3533           50155                          NDX      TEMP2G                                #  DIRECTLY STORED
060411,000074: 01,3534           31260                          CA       PHSPRDT1                              
060412,000075: 01,3535           10000        TIMETEST          CCS      A                                     #  IS IT AN IMMEDIATE RESTART
060413,000076: 01,3536           24000                          INCR     A                                     #  NO.
060414,000077: 01,3537           13542                          TCF      FINDTIME                              #  FIND OUT WHEN IT SHOULD BEGIN
060415,000078: 
060416,000079: 01,3540           15470                          TCF      ITSINDIR                              #  STORED INDIRECTLY
060417,000080: 
060418,000081: 01,3541           13561                          TCF      IMEDIATE                              #  IT WANTS AN IMMEDIATE RESTART
060419,000082: 
060420,000083:                                                                                                 #  ***** THIS MUST BE IN FIXED FIXED *****
060421,000084: 
060422,000085:    4000                                          SETLOC   FFTAG2                                
060423,000086:    4000                                          BANK                                           
060424,000087: 
060425,000088:    5470                                          COUNT*   $$/RSROU                              
060426,000089:    5470           22706        ITSINDIR          LXCH     GOLOC      +1                         #  GET THE CORRECT E BANK IN CASE THIS IS
060427,000090:    5471           22006                          LXCH     BB                                    #  SWITCHED ERASABLE
060428,000091: 
060429,000092:    5472           50000                          NDX      A                                     #  GET THE TIME INDIRECTLY
060430,000093:    5473           30001                          CA       1                                     
060431,000094: 
060432,000095:    5474           22006                          LXCH     BB                                    #  RESTORE THE BB AND GOLOC
060433,000096:    5475           22706                          LXCH     GOLOC      +1                         
060434,000097: 
060435,000098:    5476           13542                          TCF      FINDTIME                              #  FIND OUT WHEN IT SHOULD BEGIN
060436,000099: 
060437,000100:                                                                                                 #  ***** YOU MAY RETURN TO  SWITCHED FIXED *****
060438,000101: 
060439,000102: 01,2000                                          SETLOC   RESTART                               
060440,000103: 01,2000                                          BANK                                           
060441,000104: 
060442,000105: 01,3542                                          COUNT*   $$/RSROU                              
060443,000106: 01,3542           40000        FINDTIME          COM                                            #  MAKE NEGITIVE SINCE IT WILL BE SUBTRACTED
060444,000107: 01,3543           54001                          TS       L                                     #  AND SAVE
060445,000108: 01,3544           50155                          NDX      TEMP2G                                
060446,000109: 01,3545           41257                          CS       TBASE1                                
060447,000110: 01,3546           00006                          EXTEND                                         
060448,000111: 01,3547           60025                          SU       TIME1                                 
060449,000112: 01,3550           10000                          CCS      A                                     
060450,000113: 01,3551           40000                          COM                                            
060451,000114: 01,3552           67663                          AD       OCT37776                              
060452,000115: 01,3553           64770                          AD       ONE                                   
060453,000116: 01,3554           60001                          AD       L                                     
060454,000117: 01,3555           10000                          CCS      A                                     

Page 1413

060456,000119: 01,3556           34772                 -3       CAF      ZERO                                  
060457,000120: 01,3557           13561                          TCF      +2                                    
060458,000121: 01,3560           13561                          TCF      +1                                    
060459,000122: 01,3561           64770        IMEDIATE          AD       ONE                                   
060460,000123: 01,3562           00704                          TC       GOLOC      -1                         
060461,000124: 01,3563           33526        ITSLIKEB          CA       RTRNCADR                              #  TYPE B, SO STORE RETURN IN
060462,000125: 01,3564           54157                          TS       TEMPSWCH                              #  TEMPSWCH IN CASE OF AN EVEN PHASE
060463,000126: 
060464,000127: 01,3565           33133                          CA       PRT2CADR                              #  SET UP EXIT TO GET TABLE PART OF THIS
060465,000128: 01,3566           54707                          TS       GOLOC      +2                         #  VARIABLE TYPE OF PHASE
060466,000129: 
060467,000130: 01,3567           30154                          CA       TEMPPHS                               #  MAKE THE PHASE LOOK RIGHT FOR THE TABLE
060468,000131: 01,3570           76043                          MASK     OCT177                                #  PART OF THIS VARIABLE PHASE
060469,000132: 01,3571           54154                          TS       TEMPPHS                               
060470,000133: 
060471,000134: 01,3572           00006                          EXTEND                                         
060472,000135: 01,3573           50155                          NDX      TEMP2G                                #  OBTAIN THE JOB'S 2CADR
060473,000136: 01,3574           31437                          DCA      PHSNAME1                              
060474,000137: 01,3575           52706                          DXCH     GOLOC                                 
060475,000138: 
060476,000139: 01,3576           50155        ITSAJOB           NDX      TEMP2G                                #  NOW ADD THE PRIORITY AND LET'S GO
060477,000140: 01,3577           31260                          CA       PHSPRDT1                              
060478,000141: 01,3600           54704        CHKNOVAC          TS       GOLOC      -1                         #  SAVE PRIO UNTIL WE SEE IF ITS
060479,000142: 01,3601           00006                          EXTEND                                         #  A FINDVAC OR A NOVAC
060480,000143: 01,3602           63606                          BZMF     ITSNOVAC                              
060481,000144: 
060482,000145: 01,3603           33506                          CAF      FVACCADR                              #  POSITIVE, SET UP FINDVAC CALL.
060483,000146: 01,3604           56704                          XCH      GOLOC      -1                         #  PICK UP PRIO
060484,000147: 01,3605           00704                          TC       GOLOC      -1         AND             
060485,000148: 
060486,000149: 01,3606           35310        ITSNOVAC          CAF      NOVACADR                              #  NEGATIVE,
060487,000150: 01,3607           56704                          XCH      GOLOC      -1                         #  SET UP NOVAC CALL,
060488,000151: 01,3610           40000                          COM                                            #  CORRECT PRIO,
060489,000152: 01,3611           00704                          TC       GOLOC      -1                         #  AND GO
060490,000153: 
060491,000154: 01,3612           54020        ITSATBL           TS       CYR                                   #  FIND OUT IF THE PHASE IS ODD OR EVEN
060492,000155: 01,3613           10020                          CCS      CYR                                   
060493,000156: 01,3614           13615                          TCF      +1                                    #  IT'S EVEN
060494,000157: 01,3615           13713                          TCF      ITSEVEN                               
060495,000158: 
060496,000159: 01,3616           33526                          CA       RTRNCADR                              #  IN CASE THIS IS THE SECOND PART OF A
060497,000160: 01,3617           54707                          TS       GOLOC      +2                         #  TYPE B RESTART, WE NEED PROPER EXIT
060498,000161: 
060499,000162: 01,3620           30154                          CA       TEMPPHS                               #  SET UP POINTER FOR FINDING OUR PLACE IN
060500,000163: 01,3621           54021                          TS       SR                                    #  THE RESTART TABLES
060501,000164: 01,3622           60021                          AD       SR                                    
060502,000165: 01,3623           50155                          NDX      TEMP2G                                
060503,000166: 01,3624           62001                          AD       SIZETAB    +1                         
060504,000167: 01,3625           54156                          TS       POINTER                               

Page 1414

060506,000169: 
060507,000170: 01,3626           00006        CONTBL2           EXTEND                                         #  FIND OUT WHAT'S IN THE TABLE
060508,000171: 01,3627           50156                          NDX      POINTER                               
060509,000172: 01,3630           32002                          DCA      CADRTAB                               #  GET THE 2CADR
060510,000173: 
060511,000174: 01,3631           22706                          LXCH     GOLOC      +1                         #  STORE THE BB INFORMATION
060512,000175: 
060513,000176: 01,3632           10000                          CCS      A                                     #  IS IT A JOB OR IT IT TIMED
060514,000177: 01,3633           24000                          INCR     A                                     #  POSITIVE, MUST BE A JOB
060515,000178: 01,3634           13707                          TCF      ITSAJOB2                              
060516,000179: 
060517,000180: 01,3635           24000                          INCR     A                                     #  MUST BE EITHER A WAITLIST OR LONGCALL
060518,000181: 01,3636           54705                          TS       GOLOC                                 #  LET'S STORE THE CORRECT CADR
060519,000182: 
060520,000183: 01,3637           33463                          CA       WTLTCADR                              #  SET UP OUR EXIT TO WAITLIST
060521,000184: 01,3640           54704                          TS       GOLOC      -1                         
060522,000185: 
060523,000186: 01,3641           30706                          CA       GOLOC      +1                         #  NOW FIND OUT IF IT IS A WAITLIST CALL
060524,000187: 01,3642           74757                          MASK     BIT10                                 #  THIS SHOULD BE ONE IF WE HAVE -BB
060525,000188: 01,3643           10000                          CCS      A                                     #  FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
060526,000189:                                                                                                 #  6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
060527,000190:                                                                                                 #  IN IMPORTANCE ANYWAY. BIT 4
060528,000191: 01,3644           13702                          TCF      ITSWTLST                              #  IT IS A WAITLIST CALL
060529,000192: 
060530,000193: 01,3645           50156                          NDX      POINTER                               #  OBTAIN THE ORIGINAL DELTA T
060531,000194: 01,3646           32000                          CA       PRDTTAB                               #  ADDRESS FOR THIS LONGCALL
060532,000195: 
060533,000196: 01,3647           15477                          TCF      ITSLGCL1                              #  NOW GO GET THE DELTA TIME
060534,000197: 
060535,000198:                                                                                                 #  ***** THIS MUST BE IN FIXED FIXED *****
060536,000199: 
060537,000200:    4000                                          SETLOC   FFTAG2                                
060538,000201:    4000                                          BANK                                           
060539,000202: 
060540,000203:    5477                                          COUNT*   $$/RSROU                              
060541,000204:    5477           22706        ITSLGCL1          LXCH     GOLOC      +1                         #  OBTAIN THE CORRECT E BANK
060542,000205:    5500           22006                          LXCH     BB                                    
060543,000206:    5501           22706                          LXCH     GOLOC      +1                         #  AND PRESERVE OUR E AND F BANKS
060544,000207: 
060545,000208:    5502           00006                          EXTEND                                         #  GET THE DELTA TIME
060546,000209:    5503           50000                          NDX      A                                     
060547,000210:    5504           30001                          DCA      0                                     
060548,000211:    5505           22706                          LXCH     GOLOC      +1                         #  RESTORE OUR E AND F BANK
060549,000212:    5506           22006                          LXCH     BB                                    #  RESTORE THE TASKS E AND F BANKS
060550,000213:    5507           22706                          LXCH     GOLOC      +1                         #  AND PRESERVE OUR L
060551,000214: 
060552,000215:    5510           13650                          TCF      ITSLGCL2                              #  NOT LET'S PROCESS THIS LONGCALL
060553,000216: 
060554,000217:                                                                                                 #  ***** YOU MAY RETURN TO  SWITCHED FIXED *****
060555,000218: 

Page 1415

060557,000220: 01,2000                                          SETLOC   RESTART                               
060558,000221: 01,2000                                          BANK                                           
060559,000222: 
060560,000223: 01,3650                                          COUNT*   $$/RSROU                              
060561,000224: 01,3650           53305        ITSLGCL2          DXCH     LONGTIME                              
060562,000225: 
060563,000226: 01,3651           00006                          EXTEND                                         #  CALCULATE TIME LEFT
060564,000227: 01,3652           40025                          DCS      TIME2                                 
060565,000228: 01,3653           21305                          DAS      LONGTIME                              
060566,000229: 01,3654           00006                          EXTEND                                         
060567,000230: 01,3655           31303                          DCA      LONGBASE                              
060568,000231: 01,3656           21305                          DAS      LONGTIME                              
060569,000232: 
060570,000233: 01,3657           11304                          CCS      LONGTIME                              #  FIND OUT HOW THIS SHOULD BE RESTARTED
060571,000234: 01,3660           13670                          TCF      LONGCLCL                              
060572,000235: 01,3661           13663                          TCF      +2                                    
060573,000236: 01,3662           13556                          TCF      IMEDIATE   -3                         
060574,000237: 01,3663           11305                          CCS      LONGTIME   +1                         
060575,000238: 01,3664           13670                          TCF      LONGCLCL                              
060576,000239: 01,3665           13666                          NOOP                                           #  CAN'T GET HERE    *********
060577,000240: 01,3666           13556                          TCF      IMEDIATE   -3                         
060578,000241: 01,3667           13561                          TCF      IMEDIATE                              
060579,000242: 
060580,000243: 01,3670           33137        LONGCLCL          CA       LGCLCADR                              #  WE WILL GO TO LONGCALL
060581,000244: 01,3671           54704                          TS       GOLOC      -1                         
060582,000245: 
060583,000246: 01,3672           00006                          EXTEND                                         #  PREPARE OUR ENTRY TO LONGCALL
060584,000247: 01,3673           31305                          DCA      LONGTIME                              
060585,000248: 01,3674           00704                          TC       GOLOC      -1                         
060586,000249: 
060587,000250: 01,3675           33463        ITSLNGCL          CA       WTLTCADR                              #  ASSUME IT WILL GO TO WAITLIST
060588,000251: 01,3676           54704                          TS       GOLOC      -1                         
060589,000252: 
060590,000253: 01,3677           50155                          NDX      TEMP2G                                
060591,000254: 01,3700           41260                          CS       PHSPRDT1                              #  GET THE DELTA T ADDRESS
060592,000255: 
060593,000256: 01,3701           15477                          TCF      ITSLGCL1                              #  NOW GET THE DELTA TIME
060594,000257: 
060595,000258: 01,3702           40706        ITSWTLST          CS       GOLOC      +1                         #  CORRECT THE BBCON INFORMATION
060596,000259: 01,3703           54706                          TS       GOLOC      +1                         
060597,000260: 
060598,000261: 01,3704           50156                          NDX      POINTER                               #  GET THE DT AND FIND OUT IF IT WAS STORED
060599,000262: 01,3705           32000                          CA       PRDTTAB                               #  DIRECTLY OR INDIRECTLY
060600,000263: 
060601,000264: 01,3706           13535                          TCF      TIMETEST                              #  FIND OUT HOW THE TIME IS STORED
060602,000265: 
060603,000266: 01,3707           56705        ITSAJOB2          XCH      GOLOC                                 #  STORE THE CADR
060604,000267: 
060605,000268: 01,3710           50156                          NDX      POINTER                               #  ADD THE PRIORITY AND LET'S GO
060606,000269: 01,3711           32000                          CA       PRDTTAB                               
060607,000270: 

Page 1416

060609,000272: 01,3712           13600                          TCF      CHKNOVAC                              
060610,000273: 
060611,000274: 01,3713           30157        ITSEVEN           CA       TEMPSWCH                              #  SET FOR EITHER THE SECOND PART OF THE
060612,000275: 01,3714           54707                          TS       GOLOC      +2                         #  TABLE, OR A RETURN FOR THE NEXT GROUP
060613,000276: 
060614,000277: 01,3715           50155                          NDX      TEMP2G                                #  SET UP POINTER FOR OUR LOCATION WITHIN
060615,000278: 01,3716           32000                          CA       SIZETAB                               #  THE TABLE
060616,000279: 01,3717           60154                          AD       TEMPPHS                               #  THIS MAY LOOK BAD BUT LET'S SEE YOU DO
060617,000280: 01,3720           60154                          AD       TEMPPHS                               #  BETTER IN TIME OR NUMBER OF LOCATIONS
060618,000281: 01,3721           60154                          AD       TEMPPHS                               
060619,000282: 01,3722           54156                          TS       POINTER                               
060620,000283: 
060621,000284: 01,3723           13626                          TCF      CONTBL2                               #  NO PROCESS WHAT IS IN THE TABLE
060622,000285: 
060623,000286: 01,3724           36214        PHSPART2          CA       THREE                                 #  SET THE POINTER FOR THE SECOND HALF OF
060624,000287: 01,3725           26156                          ADS      POINTER                               #  THE TABLE
060625,000288: 
060626,000289: 01,3726           33526                          CA       RTRNCADR                              #  THIS WILL BE OUR LAST TIME THROUGH THE
060627,000290: 01,3727           54707                          TS       GOLOC      +2                         #  EVEN TABLE, SO AFTER IT GET THE NEXT
060628,000291:                                                                                                 #  GROUP
060629,000292: 01,3730           13626                          TCF      CONTBL2                               #  SO LET'S GET THE SECOND ENTRY IN THE TBL
060630,000293: 
060631,000294: 01,3731     0154               TEMPPHS           EQUALS   MPAC                                  
060632,000295: 01,3731     0155               TEMP2G            EQUALS   MPAC       +1                         
060633,000296: 01,3731     0156               POINTER           EQUALS   MPAC       +2                         
060634,000297: 01,3731     0157               TEMPSWCH          EQUALS   MPAC       +3                         
060635,000298: 01,3731     7701               MINUS2            EQUALS   NEG2                                  
060636,000299: 01,3731     6043               OCT177            EQUALS   LOW7                                  
060637,000300: 

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