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.

064221,000002:                                                                                                 #  Copyright:     Public domain.
064222,000003:                                                                                                 #  Filename:      RTB_OP_CODES.agc
064223,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
064224,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
064225,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
064226,000007:                                                                                                 #                 Apollo 15-17.
064227,000008:                                                                                                 #  Assembler:     yaYUL
064228,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
064229,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
064230,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
064231,000012:                                                                                                 #  Mod history:   2009-08-17 JL   Adapted from corresponding Comanche 055 file.
064232,000013:                                                                                                 #                 2009-09-29 JL   Fixed file name in header section.
064233,000014:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
064234,000015: 

Page 1501

064236,000017: 
064237,000018: 24,2000                                          SETLOC   RTBCODE1                              
064238,000019: 24,2000                                          BANK                                           
064239,000020: 
064240,000021: 24,3751  E5,1713                                 EBANK=   XNB                                   
064241,000022: 24,3751                                          COUNT*   $$/RTB                                
064242,000023: 
064243,000024:                                                                                                 #  LOAD TIME2, TIME1 INTO MPAC:
064244,000025: 
064245,000026: 24,3751           00006        LOADTIME          EXTEND                                         
064246,000027: 24,3752           30025                          DCA      TIME2                                 
064247,000028: 24,3753           16024                          TCF      SLOAD2                                
064248,000029: 
064249,000030:                                                                                                 #  CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
064250,000031:                                                                                                 #  DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
064251,000032: 
064252,000033: 24,3754           10154        CDULOGIC          CCS      MPAC                                  
064253,000034: 24,3755           34772                          CAF      ZERO                                  
064254,000035: 24,3756           13761                          TCF      +3                                    
064255,000036: 24,3757           13760                          NOOP                                           
064256,000037: 24,3760           44753                          CS       HALF                                  
064257,000038: 
064258,000039: 24,3761           54155                          TS       MPAC       +1                         
064259,000040: 24,3762           34772                          CAF      ZERO                                  
064260,000041: 24,3763           56154                          XCH      MPAC                                  
064261,000042: 24,3764           00006                          EXTEND                                         
064262,000043: 24,3765           74753                          MP       HALF                                  
064263,000044: 24,3766           20155                          DAS      MPAC                                  
064264,000045: 24,3767           16030                          TCF      DANZIG                                #  MODE IS ALREADY AT DOUBLE-PRECISION
064265,000046: 
064266,000047: 22,2000                                          SETLOC   RTBCODES                              
064267,000048: 22,2000                                          BANK                                           
064268,000049: 
064269,000050: 22,3621                                          COUNT*   $$/RTB                                
064270,000051: 
064271,000052:                                                                                                 #  READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
064272,000053: 
064273,000054: 22,3621           00004        READPIPS          INHINT                                         
064274,000055: 22,3622           30037                          CA       PIPAX                                 
064275,000056: 22,3623           54154                          TS       MPAC                                  
064276,000057: 22,3624           30040                          CA       PIPAY                                 
064277,000058: 22,3625           54157                          TS       MPAC       +3                         
064278,000059: 22,3626           30041                          CA       PIPAZ                                 
064279,000060: 22,3627           00003                          RELINT                                         
064280,000061: 22,3630           54161                          TS       MPAC       +5                         
064281,000062: 
064282,000063: 22,3631           34772                          CAF      ZERO                                  
064283,000064: 22,3632           54155                          TS       MPAC       +1                         
064284,000065: 22,3633           54160                          TS       MPAC       +4                         
064285,000066: 22,3634           54162                          TS       MPAC       +6                         
064286,000067: 22,3635           16470        VECMODE           TCF      VMODE                                 
064287,000068: 

Page 1502

064289,000070: 
064290,000071:                                                                                                 #  FORCE TP SIGN AGREEMENT IN MPAC:
064291,000072: 
064292,000073: 22,3636           07226        SGNAGREE          TC       TPAGREE                               
064293,000074: 22,3637           16030                          TCF      DANZIG                                
064294,000075: 
064295,000076:                                                                                                 #  CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
064296,000077:                                                                                                 #  SCALED IN HALF-REVOLUTIONS.
064297,000078: 
064298,000079: 22,3640           03661        1STO2S            TC       1TO2SUB                               
064299,000080: 22,3641           34772                          CAF      ZERO                                  
064300,000081: 22,3642           54155                          TS       MPAC       +1                         
064301,000082: 22,3643           16027                          TCF      NEWMODE                               
064302,000083: 
064303,000084:                                                                                                 #  DO 1STO2S ON A VECTOR OF ANGLES:
064304,000085: 
064305,000086: 22,3644           03661        V1STO2S           TC       1TO2SUB                               #  ANSWER ARRIVES IN A AND MPAC.
064306,000087: 
064307,000088: 22,3645           52162                          DXCH     MPAC       +5                         
064308,000089: 22,3646           52155                          DXCH     MPAC                                  
064309,000090: 22,3647           03661                          TC       1TO2SUB                               
064310,000091: 22,3650           54156                          TS       MPAC       +2                         
064311,000092: 
064312,000093: 22,3651           52160                          DXCH     MPAC       +3                         
064313,000094: 22,3652           52155                          DXCH     MPAC                                  
064314,000095: 22,3653           03661                          TC       1TO2SUB                               
064315,000096: 22,3654           54155                          TS       MPAC       +1                         
064316,000097: 
064317,000098: 22,3655           30161                          CA       MPAC       +5                         
064318,000099: 22,3656           54154                          TS       MPAC                                  
064319,000100: 
064320,000101: 22,3657           34770        TPMODE            CAF      ONE                                   #  MODE IS TP.
064321,000102: 22,3660           16027                          TCF      NEWMODE                               
064322,000103: 
064323,000104:                                                                                                 #  SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
064324,000105: 
064325,000106: 22,3661           52155        1TO2SUB           DXCH     MPAC                                  #  FINAL MPAC +1 UNSPECIFIED.
064326,000107: 22,3662           20001                          DDOUBL                                         
064327,000108: 22,3663           10000                          CCS      A                                     
064328,000109: 22,3664           64770                          AD       ONE                                   
064329,000110: 22,3665           13667                          TCF      +2                                    
064330,000111: 22,3666           40000                          COM                                            #  THIS WAS REVERSE OF MSU.
064331,000112: 
064332,000113: 22,3667           54154                          TS       MPAC                                  #  AND SKIP ON OVERFLOW.
064333,000114: 22,3670           00002                          TC       Q                                     
064334,000115: 
064335,000116: 22,3671           50000                          INDEX    A                                     #  OVERFLOW UNCORRECT AND IN MSU.
064336,000117: 22,3672           34751                          CAF      LIMITS                                
064337,000118: 22,3673           26154                          ADS      MPAC                                  
064338,000119: 22,3674           00002                          TC       Q                                     
064339,000120: 

Page 1503

064341,000122: 
064342,000123:                                                                                                 #  THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL
064343,000124:                                                                                                 #  QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCRMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL
064344,000125:                                                                                                 #  (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
064345,000126: 
064346,000127: 22,3675           54142        CDUINC            TS       TEM2                                  #  1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
064347,000128: 22,3676           50130                          INDEX    BUF                                   
064348,000129: 22,3677           10000                          CCS      0                                     #  CHANGE 2S COMPL. ANGLE (IN BUF) INTO 1S
064349,000130: 22,3700           64770                          AD       ONE                                   
064350,000131: 22,3701           13705                          TCF      +4                                    
064351,000132: 22,3702           64770                          AD       ONE                                   
064352,000133: 22,3703           64770                          AD       ONE                                   #  OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
064353,000134: 22,3704           40000                          COM                                            
064354,000135: 
064355,000136: 22,3705           60142                          AD       TEM2                                  #  SULT MOVES FROM 2ND TO 3D QUAD. (OR BACK)
064356,000137: 22,3706           10000                          CCS      A                                     #  BACK TO 2S COMPL.
064357,000138: 22,3707           64770                          AD       ONE                                   
064358,000139: 22,3710           13712                          TCF      +2                                    
064359,000140: 22,3711           40000                          COM                                            
064360,000141: 22,3712           54142                          TS       TEM2                                  #  STORE 14BIT QUANTITY WITH PRESENT SIGN
064361,000142: 22,3713           13717                          TCF      +4                                    
064362,000143: 22,3714           50000                          INDEX    A                                     #  SIGN.
064363,000144: 22,3715           34751                          CAF      LIMITS                                #  FIX IT, BY ADDING IN 37777 OR 40000
064364,000145: 22,3716           60142                          AD       TEM2                                  
064365,000146: 
064366,000147: 22,3717           50130                          INDEX    BUF                                   
064367,000148: 22,3720           54000                          TS       0                                     #  STORE NEW ANGLE IN 2S COMPLEMENT
064368,000149: 22,3721           00002                          TC       Q                                     
064369,000150: 

Page 1504

064371,000152: 
064372,000153:                                                                                                 #  RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
064373,000154: 
064374,000155: 22,3722           50120        PULSEIMU          INDEX    FIXLOC                                #  ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
064375,000156: 22,3723           30046                          CA       X1                                    
064376,000157: 22,3724           04636                          TC       BANKCALL                              
064377,000158: 22,3725           17244                          CADR     IMUPULSE                              
064378,000159: 22,3726           16030                          TCF      DANZIG                                
064379,000160: 

Page 1505

064381,000162: 
064382,000163:                                                                                                 #  EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
064383,000164:                                                                                                 #  WITH THE TRANSPOSE MATRIX. TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D,+17D AND TRANSP2 USES LOCATIONS
064384,000165:                                                                                                 #  XNB1+0,+1 THROUGH XNB1+16D, +17D. EACH MATRIX IS STORED BY ROWS.
064385,000166: 
064386,000167: 22,3727           02713        XNBEB             ECADR    XNB                                   
064387,000168: 22,3730           02554        XNB1EB            ECADR    XNB1                                  
064388,000169: 
064389,000170: 22,3731  E5,1713                                 EBANK=   XNB                                   
064390,000171: 
064391,000172: 22,3731           33727        TRANSP1           CAF      XNBEB                                 
064392,000173: 22,3732           54003                          TS       EBANK                                 
064393,000174: 22,3733           53716                          DXCH     XNB        +2                         
064394,000175: 22,3734           53722                          DXCH     XNB        +6                         
064395,000176: 22,3735           53716                          DXCH     XNB        +2                         
064396,000177: 
064397,000178: 22,3736           53720                          DXCH     XNB        +4                         
064398,000179: 22,3737           53730                          DXCH     XNB        +12D                       
064399,000180: 22,3740           53720                          DXCH     XNB        +4                         
064400,000181: 
064401,000182: 22,3741           53726                          DXCH     XNB        +10D                       
064402,000183: 22,3742           53732                          DXCH     XNB        +14D                       
064403,000184: 22,3743           53726                          DXCH     XNB        +10D                       
064404,000185: 22,3744           16030                          TCF      DANZIG                                
064405,000186: 
064406,000187: 22,3745  E5,1554                                 EBANK=   XNB1                                  
064407,000188: 
064408,000189: 22,3745           33730        TRANSP2           CAF      XNB1EB                                
064409,000190: 22,3746           54003                          TS       EBANK                                 
064410,000191: 22,3747           53557                          DXCH     XNB1       +2                         
064411,000192: 22,3750           53563                          DXCH     XNB1       +6                         
064412,000193: 22,3751           53557                          DXCH     XNB1       +2                         
064413,000194: 
064414,000195: 22,3752           53561                          DXCH     XNB1       +4                         
064415,000196: 22,3753           53571                          DXCH     XNB1       +12D                       
064416,000197: 22,3754           53561                          DXCH     XNB1       +4                         
064417,000198: 
064418,000199: 22,3755           53567                          DXCH     XNB1       +10D                       
064419,000200: 22,3756           53573                          DXCH     XNB1       +14D                       
064420,000201: 22,3757           53567                          DXCH     XNB1       +10D                       
064421,000202: 22,3760           16030                          TCF      DANZIG                                
064422,000203: 

Page 1506

064424,000205: 
064425,000206:                                                                                                 #  THE SUBROUTINE  SIGNMPAC  SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
064426,000207:                                                                                                 #  FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED. ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
064427,000208: 
064428,000209:                                                                                                 #  ENTRY MAY BE BY EITHER OF THE FOLLOWING:
064429,000210: 
064430,000211:                                                                                                 #         1.      LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
064431,000212:                                                                                                 #         ENTRY:          BOVB
064432,000213:                                                                                                 #                                 SIGNMPAC
064433,000214:                                                                                                 #         2.      GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
064434,000215:                                                                                                 #         ENTRY:          RTB
064435,000216:                                                                                                 #                                 SIGNMPAC
064436,000217: 
064437,000218:                                                                                                 #  IN EITHER CASE, RETURN IS TO THE NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
064438,000219: 
064439,000220: 22,3761           00006        SIGNMPAC          EXTEND                                         
064440,000221: 22,3762           34750                          DCA      DPOSMAX                               
064441,000222: 22,3763           52155                          DXCH     MPAC                                  
064442,000223: 22,3764           10000                          CCS      A                                     
064443,000224: 22,3765           34772        DPMODE            CAF      ZERO                                  #  SETS MPAC +2 TO ZERO IN THE PROCESS
064444,000225: 22,3766           16026                          TCF      SLOAD2     +2                         
064445,000226: 22,3767           13770                          TCF      +1                                    
064446,000227: 22,3770           00006                          EXTEND                                         
064447,000228: 22,3771           44750                          DCS      DPOSMAX                               
064448,000229: 22,3772           16024                          TCF      SLOAD2                                
064449,000230: 
064450,000231: 
064451,000232:                                                                                                 #  *** END OF ZEUS    .046 ***
064452,000233: 

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