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.

060310,000002:                                                                                                 #  Copyright:     Public domain.
060311,000003:                                                                                                 #  Filename:      RESTARTS_ROUTINE.agc
060312,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
060313,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
060314,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
060315,000007:                                                                                                 #                 Apollo 15-17.
060316,000008:                                                                                                 #  Assembler:     yaYUL
060317,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
060318,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
060319,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
060320,000012:                                                                                                 #  Mod history:   2009-08-18 JL   Adapted from corresponding Comanche 055 file.
060321,000013:                                                                                                 #                 2010-02-02 JL   Fixed page numbers.
060322,000014:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
060323,000015:                                                                                                 #                 2010-04-04 JL   Added a missing # comment delimiter.
060324,000016: 
060325,000017:                                                                                                 # # Page 1411
060326,000018: 01,2000                                          SETLOC   RESTART                               
060327,000019: 01,2000                                          BANK                                           
060328,000020: 
060329,000021: 01,3467  E3,1436                                 EBANK=   PHSNAME1                              #  GOPROG MUST SWITCH TO THIS EBANK
060330,000022: 
060331,000023: 01,3467                                          COUNT*   $$/RSROU                              
060332,000024: 01,3467           30161        RESTARTS          CA       MPAC       +5                         #  GET GROUP NUMBER -1
060333,000025: 01,3470           60000                          DOUBLE                                         #  SAVE FOR INDEXING
060334,000026: 01,3471           54155                          TS       TEMP2G                                
060335,000027: 
060336,000028: 01,3472           33127                          CA       PHS2CADR                              #  SET UP EXIT IN CASE IT IS AN EVEN
060337,000029: 01,3473           54157                          TS       TEMPSWCH                              #  TABLE PHASE
060338,000030: 
060339,000031: 01,3474           33526                          CA       RTRNCADR                              #  TO SAVE TIME ASSUME IT WILL GET NEXT
060340,000032: 01,3475           54707                          TS       GOLOC      +2                         #  GROUP AFTER THIS
060341,000033: 
060342,000034: 01,3476           30154                          CA       TEMPPHS                               
060343,000035: 01,3477           75024                          MASK     OCT1400                               
060344,000036: 01,3500           10000                          CCS      A                                     #  IS IT A VARIABLE OR TABLE RESTART
060345,000037: 01,3501           13512                          TCF      ITSAVAR                               #  IT'S A VARIABLE RESTART
060346,000038: 
060347,000039: 01,3502           10154        GETPART2          CCS      TEMPPHS                               #  IS IT AN X.1 RESTART
060348,000040: 01,3503           10000                          CCS      A                                     
060349,000041: 01,3504           13612                          TCF      ITSATBL                               #  NO, IT'S A TABLE RESTART
060350,000042: 
060351,000043: 01,3505           35053                          CA       PRIO14                                #  IT IS AN X.1 RESTART, THEREFORE START
060352,000044: 01,3506           05135        FVACCADR          TC       FINDVAC                               #  THE DISPLAY RESTART ROUTINE (=GENADR)
060353,000045: 01,3507  E3,1400                                 EBANK=   LST1                                  
060354,000046: 01,3507           03263 20063                    2CADR    INITDSP                               
060355,000047: 
060356,000048: 
060357,000049: 01,3511           03526                          TC       RTRNCADR                              #  FINISHED WITH THIS GROUP, GET NEXT ONE
060358,000050: 
060359,000051: 01,3512           75024        ITSAVAR           MASK     OCT1400                               #  IS IT TYPE B ?
060360,000052: 01,3513           10000                          CCS      A                                     
060361,000053: 01,3514           13563                          TCF      ITSLIKEB                              #  YES, IT IS TYPE B
060362,000054: 
060363,000055: 01,3515           00006                          EXTEND                                         #  STORES THE JOB (OR TASK) 2CADR FOR EXIT
060364,000056: 01,3516           50155                          NDX      TEMP2G                                
060365,000057: 01,3517           31437                          DCA      PHSNAME1                              
060366,000058: 01,3520           52706                          DXCH     GOLOC                                 
060367,000059: 
060368,000060: 01,3521           30154                          CA       TEMPPHS                               #  SEE IF THIS IS A JOB, TASK, OR A LONGCALL
060369,000061: 01,3522           74774                          MASK     OCT7                                  
060370,000062: 01,3523           67701                          AD       MINUS2                                
060371,000063: 01,3524           10000                          CCS      A                                     
060372,000064: 01,3525           13675                          TCF      ITSLNGCL                              #  IT'S A LONGCALL
060373,000065: 
060374,000066: 01,3526           04651        RTRNCADR          TC       SWRETURN                              #  CANT GET HERE.
060375,000067: 01,3527           13531                          TCF      ITSAWAIT                              
060376,000068:                                                                                                 # # Page 1412
060377,000069: 01,3530           13576                          TCF      ITSAJOB                               #  ITS A JOB
060378,000070: 
060379,000071: 01,3531           33463        ITSAWAIT          CA       WTLTCADR                              #  SET UP WAITLIST CALL
060380,000072: 01,3532           54704                          TS       GOLOC      -1                         
060381,000073: 
060382,000074: 01,3533           50155                          NDX      TEMP2G                                #  DIRECTLY STORED
060383,000075: 01,3534           31260                          CA       PHSPRDT1                              
060384,000076: 01,3535           10000        TIMETEST          CCS      A                                     #  IS IT AN IMMEDIATE RESTART
060385,000077: 01,3536           24000                          INCR     A                                     #  NO.
060386,000078: 01,3537           13542                          TCF      FINDTIME                              #  FIND OUT WHEN IT SHOULD BEGIN
060387,000079: 
060388,000080: 01,3540           15470                          TCF      ITSINDIR                              #  STORED INDIRECTLY
060389,000081: 
060390,000082: 01,3541           13561                          TCF      IMEDIATE                              #  IT WANTS AN IMMEDIATE RESTART
060391,000083: 
060392,000084:                                                                                                 #  ***** THIS MUST BE IN FIXED FIXED *****
060393,000085: 
060394,000086:    4000                                          SETLOC   FFTAG2                                
060395,000087:    4000                                          BANK                                           
060396,000088: 
060397,000089:    5470                                          COUNT*   $$/RSROU                              
060398,000090:    5470           22706        ITSINDIR          LXCH     GOLOC      +1                         #  GET THE CORRECT E BANK IN CASE THIS IS
060399,000091:    5471           22006                          LXCH     BB                                    #  SWITCHED ERASABLE
060400,000092: 
060401,000093:    5472           50000                          NDX      A                                     #  GET THE TIME INDIRECTLY
060402,000094:    5473           30001                          CA       1                                     
060403,000095: 
060404,000096:    5474           22006                          LXCH     BB                                    #  RESTORE THE BB AND GOLOC
060405,000097:    5475           22706                          LXCH     GOLOC      +1                         
060406,000098: 
060407,000099:    5476           13542                          TCF      FINDTIME                              #  FIND OUT WHEN IT SHOULD BEGIN
060408,000100: 
060409,000101:                                                                                                 #  ***** YOU MAY RETURN TO  SWITCHED FIXED *****
060410,000102: 
060411,000103: 01,2000                                          SETLOC   RESTART                               
060412,000104: 01,2000                                          BANK                                           
060413,000105: 
060414,000106: 01,3542                                          COUNT*   $$/RSROU                              
060415,000107: 01,3542           40000        FINDTIME          COM                                            #  MAKE NEGITIVE SINCE IT WILL BE SUBTRACTED
060416,000108: 01,3543           54001                          TS       L                                     #  AND SAVE
060417,000109: 01,3544           50155                          NDX      TEMP2G                                
060418,000110: 01,3545           41257                          CS       TBASE1                                
060419,000111: 01,3546           00006                          EXTEND                                         
060420,000112: 01,3547           60025                          SU       TIME1                                 
060421,000113: 01,3550           10000                          CCS      A                                     
060422,000114: 01,3551           40000                          COM                                            
060423,000115: 01,3552           67663                          AD       OCT37776                              
060424,000116: 01,3553           64770                          AD       ONE                                   
060425,000117: 01,3554           60001                          AD       L                                     
060426,000118: 01,3555           10000                          CCS      A                                     
060427,000119:                                                                                                 # # Page 1413
060428,000120: 01,3556           34772                 -3       CAF      ZERO                                  
060429,000121: 01,3557           13561                          TCF      +2                                    
060430,000122: 01,3560           13561                          TCF      +1                                    
060431,000123: 01,3561           64770        IMEDIATE          AD       ONE                                   
060432,000124: 01,3562           00704                          TC       GOLOC      -1                         
060433,000125: 01,3563           33526        ITSLIKEB          CA       RTRNCADR                              #  TYPE B, SO STORE RETURN IN
060434,000126: 01,3564           54157                          TS       TEMPSWCH                              #  TEMPSWCH IN CASE OF AN EVEN PHASE
060435,000127: 
060436,000128: 01,3565           33133                          CA       PRT2CADR                              #  SET UP EXIT TO GET TABLE PART OF THIS
060437,000129: 01,3566           54707                          TS       GOLOC      +2                         #  VARIABLE TYPE OF PHASE
060438,000130: 
060439,000131: 01,3567           30154                          CA       TEMPPHS                               #  MAKE THE PHASE LOOK RIGHT FOR THE TABLE
060440,000132: 01,3570           76043                          MASK     OCT177                                #  PART OF THIS VARIABLE PHASE
060441,000133: 01,3571           54154                          TS       TEMPPHS                               
060442,000134: 
060443,000135: 01,3572           00006                          EXTEND                                         
060444,000136: 01,3573           50155                          NDX      TEMP2G                                #  OBTAIN THE JOB'S 2CADR
060445,000137: 01,3574           31437                          DCA      PHSNAME1                              
060446,000138: 01,3575           52706                          DXCH     GOLOC                                 
060447,000139: 
060448,000140: 01,3576           50155        ITSAJOB           NDX      TEMP2G                                #  NOW ADD THE PRIORITY AND LET'S GO
060449,000141: 01,3577           31260                          CA       PHSPRDT1                              
060450,000142: 01,3600           54704        CHKNOVAC          TS       GOLOC      -1                         #  SAVE PRIO UNTIL WE SEE IF ITS
060451,000143: 01,3601           00006                          EXTEND                                         #  A FINDVAC OR A NOVAC
060452,000144: 01,3602           63606                          BZMF     ITSNOVAC                              
060453,000145: 
060454,000146: 01,3603           33506                          CAF      FVACCADR                              #  POSITIVE, SET UP FINDVAC CALL.
060455,000147: 01,3604           56704                          XCH      GOLOC      -1                         #  PICK UP PRIO
060456,000148: 01,3605           00704                          TC       GOLOC      -1                         #  AND GO
060457,000149: 
060458,000150: 01,3606           35310        ITSNOVAC          CAF      NOVACADR                              #  NEGATIVE,
060459,000151: 01,3607           56704                          XCH      GOLOC      -1                         #  SET UP NOVAC CALL,
060460,000152: 01,3610           40000                          COM                                            #  CORRECT PRIO,
060461,000153: 01,3611           00704                          TC       GOLOC      -1                         #  AND GO
060462,000154: 
060463,000155: 01,3612           54020        ITSATBL           TS       CYR                                   #  FIND OUT IF THE PHASE IS ODD OR EVEN
060464,000156: 01,3613           10020                          CCS      CYR                                   
060465,000157: 01,3614           13615                          TCF      +1                                    #  IT'S EVEN
060466,000158: 01,3615           13713                          TCF      ITSEVEN                               
060467,000159: 
060468,000160: 01,3616           33526                          CA       RTRNCADR                              #  IN CASE THIS IS THE SECOND PART OF A
060469,000161: 01,3617           54707                          TS       GOLOC      +2                         #  TYPE B RESTART, WE NEED PROPER EXIT
060470,000162: 
060471,000163: 01,3620           30154                          CA       TEMPPHS                               #  SET UP POINTER FOR FINDING OUR PLACE IN
060472,000164: 01,3621           54021                          TS       SR                                    #  THE RESTART TABLES
060473,000165: 01,3622           60021                          AD       SR                                    
060474,000166: 01,3623           50155                          NDX      TEMP2G                                
060475,000167: 01,3624           62001                          AD       SIZETAB    +1                         
060476,000168: 01,3625           54156                          TS       POINTER                               
060477,000169:                                                                                                 # # Page 1414
060478,000170: 
060479,000171: 01,3626           00006        CONTBL2           EXTEND                                         #  FIND OUT WHAT'S IN THE TABLE
060480,000172: 01,3627           50156                          NDX      POINTER                               
060481,000173: 01,3630           32002                          DCA      CADRTAB                               #  GET THE 2CADR
060482,000174: 
060483,000175: 01,3631           22706                          LXCH     GOLOC      +1                         #  STORE THE BB INFORMATION
060484,000176: 
060485,000177: 01,3632           10000                          CCS      A                                     #  IS IT A JOB OR IT IT TIMED
060486,000178: 01,3633           24000                          INCR     A                                     #  POSITIVE, MUST BE A JOB
060487,000179: 01,3634           13707                          TCF      ITSAJOB2                              
060488,000180: 
060489,000181: 01,3635           24000                          INCR     A                                     #  MUST BE EITHER A WAITLIST OR LONGCALL
060490,000182: 01,3636           54705                          TS       GOLOC                                 #  LET'S STORE THE CORRECT CADR
060491,000183: 
060492,000184: 01,3637           33463                          CA       WTLTCADR                              #  SET UP OUR EXIT TO WAITLIST
060493,000185: 01,3640           54704                          TS       GOLOC      -1                         
060494,000186: 
060495,000187: 01,3641           30706                          CA       GOLOC      +1                         #  NOW FIND OUT IF IT IS A WAITLIST CALL
060496,000188: 01,3642           74757                          MASK     BIT10                                 #  THIS SHOULD BE ONE IF WE HAVE -BB
060497,000189: 01,3643           10000                          CCS      A                                     #  FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
060498,000190:                                                                                                 #  6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
060499,000191:                                                                                                 #  IN IMPORTANCE ANYWAY. BIT 4
060500,000192: 01,3644           13702                          TCF      ITSWTLST                              #  IT IS A WAITLIST CALL
060501,000193: 
060502,000194: 01,3645           50156                          NDX      POINTER                               #  OBTAIN THE ORIGINAL DELTA T
060503,000195: 01,3646           32000                          CA       PRDTTAB                               #  ADDRESS FOR THIS LONGCALL
060504,000196: 
060505,000197: 01,3647           15477                          TCF      ITSLGCL1                              #  NOW GO GET THE DELTA TIME
060506,000198: 
060507,000199:                                                                                                 #  ***** THIS MUST BE IN FIXED FIXED *****
060508,000200: 
060509,000201:    4000                                          SETLOC   FFTAG2                                
060510,000202:    4000                                          BANK                                           
060511,000203: 
060512,000204:    5477                                          COUNT*   $$/RSROU                              
060513,000205:    5477           22706        ITSLGCL1          LXCH     GOLOC      +1                         #  OBTAIN THE CORRECT E BANK
060514,000206:    5500           22006                          LXCH     BB                                    
060515,000207:    5501           22706                          LXCH     GOLOC      +1                         #  AND PRESERVE OUR E AND F BANKS
060516,000208: 
060517,000209:    5502           00006                          EXTEND                                         #  GET THE DELTA TIME
060518,000210:    5503           50000                          NDX      A                                     
060519,000211:    5504           30001                          DCA      0                                     
060520,000212:    5505           22706                          LXCH     GOLOC      +1                         #  RESTORE OUR E AND F BANK
060521,000213:    5506           22006                          LXCH     BB                                    #  RESTORE THE TASKS E AND F BANKS
060522,000214:    5507           22706                          LXCH     GOLOC      +1                         #  AND PRESERVE OUR L
060523,000215: 
060524,000216:    5510           13650                          TCF      ITSLGCL2                              #  NOT LET'S PROCESS THIS LONGCALL
060525,000217: 
060526,000218:                                                                                                 #  ***** YOU MAY RETURN TO  SWITCHED FIXED *****
060527,000219: 
060528,000220:                                                                                                 # # Page 1415
060529,000221: 01,2000                                          SETLOC   RESTART                               
060530,000222: 01,2000                                          BANK                                           
060531,000223: 
060532,000224: 01,3650                                          COUNT*   $$/RSROU                              
060533,000225: 01,3650           53305        ITSLGCL2          DXCH     LONGTIME                              
060534,000226: 
060535,000227: 01,3651           00006                          EXTEND                                         #  CALCULATE TIME LEFT
060536,000228: 01,3652           40025                          DCS      TIME2                                 
060537,000229: 01,3653           21305                          DAS      LONGTIME                              
060538,000230: 01,3654           00006                          EXTEND                                         
060539,000231: 01,3655           31303                          DCA      LONGBASE                              
060540,000232: 01,3656           21305                          DAS      LONGTIME                              
060541,000233: 
060542,000234: 01,3657           11304                          CCS      LONGTIME                              #  FIND OUT HOW THIS SHOULD BE RESTARTED
060543,000235: 01,3660           13670                          TCF      LONGCLCL                              
060544,000236: 01,3661           13663                          TCF      +2                                    
060545,000237: 01,3662           13556                          TCF      IMEDIATE   -3                         
060546,000238: 01,3663           11305                          CCS      LONGTIME   +1                         
060547,000239: 01,3664           13670                          TCF      LONGCLCL                              
060548,000240: 01,3665           13666                          NOOP                                           #  CAN'T GET HERE    *********
060549,000241: 01,3666           13556                          TCF      IMEDIATE   -3                         
060550,000242: 01,3667           13561                          TCF      IMEDIATE                              
060551,000243: 
060552,000244: 01,3670           33137        LONGCLCL          CA       LGCLCADR                              #  WE WILL GO TO LONGCALL
060553,000245: 01,3671           54704                          TS       GOLOC      -1                         
060554,000246: 
060555,000247: 01,3672           00006                          EXTEND                                         #  PREPARE OUR ENTRY TO LONGCALL
060556,000248: 01,3673           31305                          DCA      LONGTIME                              
060557,000249: 01,3674           00704                          TC       GOLOC      -1                         
060558,000250: 
060559,000251: 01,3675           33463        ITSLNGCL          CA       WTLTCADR                              #  ASSUME IT WILL GO TO WAITLIST
060560,000252: 01,3676           54704                          TS       GOLOC      -1                         
060561,000253: 
060562,000254: 01,3677           50155                          NDX      TEMP2G                                
060563,000255: 01,3700           41260                          CS       PHSPRDT1                              #  GET THE DELTA T ADDRESS
060564,000256: 
060565,000257: 01,3701           15477                          TCF      ITSLGCL1                              #  NOW GET THE DELTA TIME
060566,000258: 
060567,000259: 01,3702           40706        ITSWTLST          CS       GOLOC      +1                         #  CORRECT THE BBCON INFORMATION
060568,000260: 01,3703           54706                          TS       GOLOC      +1                         
060569,000261: 
060570,000262: 01,3704           50156                          NDX      POINTER                               #  GET THE DT AND FIND OUT IF IT WAS STORED
060571,000263: 01,3705           32000                          CA       PRDTTAB                               #  DIRECTLY OR INDIRECTLY
060572,000264: 
060573,000265: 01,3706           13535                          TCF      TIMETEST                              #  FIND OUT HOW THE TIME IS STORED
060574,000266: 
060575,000267: 01,3707           56705        ITSAJOB2          XCH      GOLOC                                 #  STORE THE CADR
060576,000268: 
060577,000269: 01,3710           50156                          NDX      POINTER                               #  ADD THE PRIORITY AND LET'S GO
060578,000270: 01,3711           32000                          CA       PRDTTAB                               
060579,000271: 
060580,000272:                                                                                                 # # Page 1416
060581,000273: 01,3712           13600                          TCF      CHKNOVAC                              
060582,000274: 
060583,000275: 01,3713           30157        ITSEVEN           CA       TEMPSWCH                              #  SET FOR EITHER THE SECOND PART OF THE
060584,000276: 01,3714           54707                          TS       GOLOC      +2                         #  TABLE, OR A RETURN FOR THE NEXT GROUP
060585,000277: 
060586,000278: 01,3715           50155                          NDX      TEMP2G                                #  SET UP POINTER FOR OUR LOCATION WITHIN
060587,000279: 01,3716           32000                          CA       SIZETAB                               #  THE TABLE
060588,000280: 01,3717           60154                          AD       TEMPPHS                               #  THIS MAY LOOK BAD BUT LET'S SEE YOU DO
060589,000281: 01,3720           60154                          AD       TEMPPHS                               #  BETTER IN TIME OR NUMBER OF LOCATIONS
060590,000282: 01,3721           60154                          AD       TEMPPHS                               
060591,000283: 01,3722           54156                          TS       POINTER                               
060592,000284: 
060593,000285: 01,3723           13626                          TCF      CONTBL2                               #  NO PROCESS WHAT IS IN THE TABLE
060594,000286: 
060595,000287: 01,3724           36214        PHSPART2          CA       THREE                                 #  SET THE POINTER FOR THE SECOND HALF OF
060596,000288: 01,3725           26156                          ADS      POINTER                               #  THE TABLE
060597,000289: 
060598,000290: 01,3726           33526                          CA       RTRNCADR                              #  THIS WILL BE OUR LAST TIME THROUGH THE
060599,000291: 01,3727           54707                          TS       GOLOC      +2                         #  EVEN TABLE, SO AFTER IT GET THE NEXT
060600,000292:                                                                                                 #  GROUP
060601,000293: 01,3730           13626                          TCF      CONTBL2                               #  SO LET'S GET THE SECOND ENTRY IN THE TBL
060602,000294: 
060603,000295: 01,3731     0154               TEMPPHS           EQUALS   MPAC                                  
060604,000296: 01,3731     0155               TEMP2G            EQUALS   MPAC       +1                         
060605,000297: 01,3731     0156               POINTER           EQUALS   MPAC       +2                         
060606,000298: 01,3731     0157               TEMPSWCH          EQUALS   MPAC       +3                         
060607,000299: 01,3731     7701               MINUS2            EQUALS   NEG2                                  
060608,000300: 01,3731     6043               OCT177            EQUALS   LOW7                                  
060609,000301: 

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