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.

064195,000002:                                                                                                 #  Copyright:     Public domain.
064196,000003:                                                                                                 #  Filename:      RTB_OP_CODES.agc
064197,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
064198,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
064199,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
064200,000007:                                                                                                 #                 Apollo 15-17.
064201,000008:                                                                                                 #  Assembler:     yaYUL
064202,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
064203,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
064204,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
064205,000012:                                                                                                 #  Mod history:   2009-08-17 JL   Adapted from corresponding Comanche 055 file.
064206,000013:                                                                                                 #                 2009-09-29 JL   Fixed file name in header section.
064207,000014:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
064208,000015: 
064209,000016:                                                                                                 # # Page 1501
064210,000017: 
064211,000018: 24,2000                                          SETLOC   RTBCODE1                              
064212,000019: 24,2000                                          BANK                                           
064213,000020: 
064214,000021: 24,3751  0002713                                 EBANK=   XNB                                   
064215,000022: 24,3751                                          COUNT*   $$/RTB                                
064216,000023: 
064217,000024:                                                                                                 #  LOAD TIME2, TIME1 INTO MPAC:
064218,000025: 
064219,000026: 24,3751           00006        LOADTIME          EXTEND                                         
064220,000027: 24,3752           30025                          DCA      TIME2                                 
064221,000028: 24,3753           16024                          TCF      SLOAD2                                
064222,000029: 
064223,000030:                                                                                                 #  CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
064224,000031:                                                                                                 #  DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
064225,000032: 
064226,000033: 24,3754           10154        CDULOGIC          CCS      MPAC                                  
064227,000034: 24,3755           34772                          CAF      ZERO                                  
064228,000035: 24,3756           13761                          TCF      +3                                    
064229,000036: 24,3757           13760                          NOOP                                           
064230,000037: 24,3760           44753                          CS       HALF                                  
064231,000038: 
064232,000039: 24,3761           54155                          TS       MPAC       +1                         
064233,000040: 24,3762           34772                          CAF      ZERO                                  
064234,000041: 24,3763           56154                          XCH      MPAC                                  
064235,000042: 24,3764           00006                          EXTEND                                         
064236,000043: 24,3765           74753                          MP       HALF                                  
064237,000044: 24,3766           20155                          DAS      MPAC                                  
064238,000045: 24,3767           16030                          TCF      DANZIG                                #  MODE IS ALREADY AT DOUBLE-PRECISION
064239,000046: 
064240,000047: 22,2000                                          SETLOC   RTBCODES                              
064241,000048: 22,2000                                          BANK                                           
064242,000049: 
064243,000050: 22,3621                                          COUNT*   $$/RTB                                
064244,000051: 
064245,000052:                                                                                                 #  READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
064246,000053: 
064247,000054: 22,3621           00004        READPIPS          INHINT                                         
064248,000055: 22,3622           30037                          CA       PIPAX                                 
064249,000056: 22,3623           54154                          TS       MPAC                                  
064250,000057: 22,3624           30040                          CA       PIPAY                                 
064251,000058: 22,3625           54157                          TS       MPAC       +3                         
064252,000059: 22,3626           30041                          CA       PIPAZ                                 
064253,000060: 22,3627           00003                          RELINT                                         
064254,000061: 22,3630           54161                          TS       MPAC       +5                         
064255,000062: 
064256,000063: 22,3631           34772                          CAF      ZERO                                  
064257,000064: 22,3632           54155                          TS       MPAC       +1                         
064258,000065: 22,3633           54160                          TS       MPAC       +4                         
064259,000066: 22,3634           54162                          TS       MPAC       +6                         
064260,000067: 22,3635           16470        VECMODE           TCF      VMODE                                 
064261,000068: 
064262,000069:                                                                                                 # # Page 1502
064263,000070: 
064264,000071:                                                                                                 #  FORCE TP SIGN AGREEMENT IN MPAC:
064265,000072: 
064266,000073: 22,3636           07226        SGNAGREE          TC       TPAGREE                               
064267,000074: 22,3637           16030                          TCF      DANZIG                                
064268,000075: 
064269,000076:                                                                                                 #  CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
064270,000077:                                                                                                 #  SCALED IN HALF-REVOLUTIONS.
064271,000078: 
064272,000079: 22,3640           03661        1STO2S            TC       1TO2SUB                               
064273,000080: 22,3641           34772                          CAF      ZERO                                  
064274,000081: 22,3642           54155                          TS       MPAC       +1                         
064275,000082: 22,3643           16027                          TCF      NEWMODE                               
064276,000083: 
064277,000084:                                                                                                 #  DO 1STO2S ON A VECTOR OF ANGLES:
064278,000085: 
064279,000086: 22,3644           03661        V1STO2S           TC       1TO2SUB                               #  ANSWER ARRIVES IN A AND MPAC.
064280,000087: 
064281,000088: 22,3645           52162                          DXCH     MPAC       +5                         
064282,000089: 22,3646           52155                          DXCH     MPAC                                  
064283,000090: 22,3647           03661                          TC       1TO2SUB                               
064284,000091: 22,3650           54156                          TS       MPAC       +2                         
064285,000092: 
064286,000093: 22,3651           52160                          DXCH     MPAC       +3                         
064287,000094: 22,3652           52155                          DXCH     MPAC                                  
064288,000095: 22,3653           03661                          TC       1TO2SUB                               
064289,000096: 22,3654           54155                          TS       MPAC       +1                         
064290,000097: 
064291,000098: 22,3655           30161                          CA       MPAC       +5                         
064292,000099: 22,3656           54154                          TS       MPAC                                  
064293,000100: 
064294,000101: 22,3657           34770        TPMODE            CAF      ONE                                   #  MODE IS TP.
064295,000102: 22,3660           16027                          TCF      NEWMODE                               
064296,000103: 
064297,000104:                                                                                                 #  SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
064298,000105: 
064299,000106: 22,3661           52155        1TO2SUB           DXCH     MPAC                                  #  FINAL MPAC +1 UNSPECIFIED.
064300,000107: 22,3662           20001                          DDOUBL                                         
064301,000108: 22,3663           10000                          CCS      A                                     
064302,000109: 22,3664           64770                          AD       ONE                                   
064303,000110: 22,3665           13667                          TCF      +2                                    
064304,000111: 22,3666           40000                          COM                                            #  THIS WAS REVERSE OF MSU.
064305,000112: 
064306,000113: 22,3667           54154                          TS       MPAC                                  #  AND SKIP ON OVERFLOW.
064307,000114: 22,3670           00002                          TC       Q                                     
064308,000115: 
064309,000116: 22,3671           50000                          INDEX    A                                     #  OVERFLOW UNCORRECT AND IN MSU.
064310,000117: 22,3672           34751                          CAF      LIMITS                                
064311,000118: 22,3673           26154                          ADS      MPAC                                  
064312,000119: 22,3674           00002                          TC       Q                                     
064313,000120: 
064314,000121:                                                                                                 # # Page 1503
064315,000122: 
064316,000123:                                                                                                 #  THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL
064317,000124:                                                                                                 #  QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCRMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL
064318,000125:                                                                                                 #  (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
064319,000126: 
064320,000127: 22,3675           54142        CDUINC            TS       TEM2                                  #  1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
064321,000128: 22,3676           50130                          INDEX    BUF                                   
064322,000129: 22,3677           10000                          CCS      0                                     #  CHANGE 2S COMPL. ANGLE (IN BUF) INTO 1S
064323,000130: 22,3700           64770                          AD       ONE                                   
064324,000131: 22,3701           13705                          TCF      +4                                    
064325,000132: 22,3702           64770                          AD       ONE                                   
064326,000133: 22,3703           64770                          AD       ONE                                   #  OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
064327,000134: 22,3704           40000                          COM                                            
064328,000135: 
064329,000136: 22,3705           60142                          AD       TEM2                                  #  SULT MOVES FROM 2ND TO 3D QUAD. (OR BACK)
064330,000137: 22,3706           10000                          CCS      A                                     #  BACK TO 2S COMPL.
064331,000138: 22,3707           64770                          AD       ONE                                   
064332,000139: 22,3710           13712                          TCF      +2                                    
064333,000140: 22,3711           40000                          COM                                            
064334,000141: 22,3712           54142                          TS       TEM2                                  #  STORE 14BIT QUANTITY WITH PRESENT SIGN
064335,000142: 22,3713           13717                          TCF      +4                                    
064336,000143: 22,3714           50000                          INDEX    A                                     #  SIGN.
064337,000144: 22,3715           34751                          CAF      LIMITS                                #  FIX IT, BY ADDING IN 37777 OR 40000
064338,000145: 22,3716           60142                          AD       TEM2                                  
064339,000146: 
064340,000147: 22,3717           50130                          INDEX    BUF                                   
064341,000148: 22,3720           54000                          TS       0                                     #  STORE NEW ANGLE IN 2S COMPLEMENT
064342,000149: 22,3721           00002                          TC       Q                                     
064343,000150: 
064344,000151:                                                                                                 # # Page 1504
064345,000152: 
064346,000153:                                                                                                 #  RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
064347,000154: 
064348,000155: 22,3722           50120        PULSEIMU          INDEX    FIXLOC                                #  ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
064349,000156: 22,3723           30046                          CA       X1                                    
064350,000157: 22,3724           04636                          TC       BANKCALL                              
064351,000158: 22,3725           17244                          CADR     IMUPULSE                              
064352,000159: 22,3726           16030                          TCF      DANZIG                                
064353,000160: 
064354,000161:                                                                                                 # # Page 1505
064355,000162: 
064356,000163:                                                                                                 #  EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
064357,000164:                                                                                                 #  WITH THE TRANSPOSE MATRIX. TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D,+17D AND TRANSP2 USES LOCATIONS
064358,000165:                                                                                                 #  XNB1+0,+1 THROUGH XNB1+16D, +17D. EACH MATRIX IS STORED BY ROWS.
064359,000166: 
064360,000167: 22,3727           02713        XNBEB             ECADR    XNB                                   
064361,000168: 22,3730           02554        XNB1EB            ECADR    XNB1                                  
064362,000169: 
064363,000170: 22,3731  0002713                                 EBANK=   XNB                                   
064364,000171: 
064365,000172: 22,3731           33727        TRANSP1           CAF      XNBEB                                 
064366,000173: 22,3732           54003                          TS       EBANK                                 
064367,000174: 22,3733           53716                          DXCH     XNB        +2                         
064368,000175: 22,3734           53722                          DXCH     XNB        +6                         
064369,000176: 22,3735           53716                          DXCH     XNB        +2                         
064370,000177: 
064371,000178: 22,3736           53720                          DXCH     XNB        +4                         
064372,000179: 22,3737           53730                          DXCH     XNB        +12D                       
064373,000180: 22,3740           53720                          DXCH     XNB        +4                         
064374,000181: 
064375,000182: 22,3741           53726                          DXCH     XNB        +10D                       
064376,000183: 22,3742           53732                          DXCH     XNB        +14D                       
064377,000184: 22,3743           53726                          DXCH     XNB        +10D                       
064378,000185: 22,3744           16030                          TCF      DANZIG                                
064379,000186: 
064380,000187: 22,3745  0002554                                 EBANK=   XNB1                                  
064381,000188: 
064382,000189: 22,3745           33730        TRANSP2           CAF      XNB1EB                                
064383,000190: 22,3746           54003                          TS       EBANK                                 
064384,000191: 22,3747           53557                          DXCH     XNB1       +2                         
064385,000192: 22,3750           53563                          DXCH     XNB1       +6                         
064386,000193: 22,3751           53557                          DXCH     XNB1       +2                         
064387,000194: 
064388,000195: 22,3752           53561                          DXCH     XNB1       +4                         
064389,000196: 22,3753           53571                          DXCH     XNB1       +12D                       
064390,000197: 22,3754           53561                          DXCH     XNB1       +4                         
064391,000198: 
064392,000199: 22,3755           53567                          DXCH     XNB1       +10D                       
064393,000200: 22,3756           53573                          DXCH     XNB1       +14D                       
064394,000201: 22,3757           53567                          DXCH     XNB1       +10D                       
064395,000202: 22,3760           16030                          TCF      DANZIG                                
064396,000203: 
064397,000204:                                                                                                 # # Page 1506
064398,000205: 
064399,000206:                                                                                                 #  THE SUBROUTINE  SIGNMPAC  SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
064400,000207:                                                                                                 #  FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED. ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
064401,000208: 
064402,000209:                                                                                                 #  ENTRY MAY BE BY EITHER OF THE FOLLOWING:
064403,000210: 
064404,000211:                                                                                                 #         1.      LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
064405,000212:                                                                                                 #         ENTRY:          BOVB
064406,000213:                                                                                                 #                                 SIGNMPAC
064407,000214:                                                                                                 #         2.      GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
064408,000215:                                                                                                 #         ENTRY:          RTB
064409,000216:                                                                                                 #                                 SIGNMPAC
064410,000217: 
064411,000218:                                                                                                 #  IN EITHER CASE, RETURN IS TO THE NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
064412,000219: 
064413,000220: 22,3761           00006        SIGNMPAC          EXTEND                                         
064414,000221: 22,3762           34750                          DCA      DPOSMAX                               
064415,000222: 22,3763           52155                          DXCH     MPAC                                  
064416,000223: 22,3764           10000                          CCS      A                                     
064417,000224: 22,3765           34772        DPMODE            CAF      ZERO                                  #  SETS MPAC +2 TO ZERO IN THE PROCESS
064418,000225: 22,3766           16026                          TCF      SLOAD2     +2                         
064419,000226: 22,3767           13770                          TCF      +1                                    
064420,000227: 22,3770           00006                          EXTEND                                         
064421,000228: 22,3771           44750                          DCS      DPOSMAX                               
064422,000229: 22,3772           16024                          TCF      SLOAD2                                
064423,000230: 
064424,000231: 
064425,000232:                                                                                                 #  *** END OF ZEUS    .046 ***
064426,000233: 

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