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.

048024,000002:                                                                                                 #  Copyright:     Public domain.
048025,000003:                                                                                                 #  Filename:      INTER-BANK_COMMUNICATION.agc
048026,000004:                                                                                                 #  Purpose:       Part of the source code for Artemis (i.e., Colossus 3),
048027,000005:                                                                                                 #                 build 072.  This is for the Command Module's (CM)
048028,000006:                                                                                                 #                 Apollo Guidance Computer (AGC), we believe for
048029,000007:                                                                                                 #                 Apollo 15-17.
048030,000008:                                                                                                 #  Assembler:     yaYUL
048031,000009:                                                                                                 #  Contact:       Jim Lawton <jim DOT lawton AT gmail DOT com>
048032,000010:                                                                                                 #  Website:       www.ibiblio.org/apollo/index.html
048033,000011:                                                                                                 #  Page scans:    www.ibiblio.org/apollo/ScansForConversion/Artemis072/
048034,000012:                                                                                                 #  Mod history:   2009-08-22 JL   Adapted from corresponding Comanche 055 file.
048035,000013:                                                                                                 #                 2009-08-29 JL   Merged changes from Sergio Navarro.
048036,000014:                                                                                                 #                 2010-02-20 RSB  Un-##'d this header.
048037,000015:                                                                                                 #                 2011-05-07 JL   Removed workaround.
048038,000016: 
048039,000017:                                                                                                 # # Page 1104
048040,000018: 
048041,000019:                                                                                                 #  THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
048042,000020:                                                                                                 #  CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE  TC BANKCALL  INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
048043,000021: 
048044,000022:    4000                                          SETLOC   FFTAG1                                
048045,000023:    4000                                          BANK                                           
048046,000024: 
048047,000025:    4636                                          COUNT*   $$/BANK                               
048048,000026:    4636           52134        BANKCALL          DXCH     BUF2                                  #  SAVE INCOMING A,L.
048049,000027:    4637           50002                          INDEX    Q                                     #  PICK UP CADR.
048050,000028:    4640           30000                          CA       0                                     
048051,000029:    4641           24002                 -1       INCR     Q                                     #  SO WE RETURN TO THE LOC. AFTER THE CADR.
048052,000030: 
048053,000031:                                                                                                 #  SWCALL IS  IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
048054,000032: 
048055,000033:    4642           54001        SWCALL            TS       L                                     
048056,000034:    4643           22004                          LXCH     FBANK                                 #  SWITCH BANKS, SAVING RETURN.
048057,000035:    4644           75041                          MASK     LOW10                                 #  GET SUB-ADDRESS OF CADR.
048058,000036:    4645           56002                          XCH      Q                                     #  A,L NOW CONTAINS DP RETURN.
048059,000037:    4646           52134                          DXCH     BUF2                                  #  RESTORING INPUTS IF THIS IS A BANKCALL.
048060,000038:    4647           50002                          INDEX    Q                                     
048061,000039:    4650           02000                          TC       10000                                 #  SETTING Q TO SWRETURN.
048062,000040: 
048063,000041:    4651           56134        SWRETURN          XCH      BUF2       +1                         #  COMES HERE TO RETURN TO CALLER. C(A,L)
048064,000042:    4652           56004                          XCH      FBANK                                 #  ARE PRESERVED FOR RETURN.
048065,000043:    4653           56134                          XCH      BUF2       +1                         
048066,000044:    4654           00133                          TC       BUF2                                  
048067,000045: 
048068,000046:                                                                                                 #  THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
048069,000047:                                                                                                 #  FOLLOWING THE TC POSTJUMP INSTRUCTION.
048070,000048: 
048071,000049:    4655           56002        POSTJUMP          XCH      Q                                     #  SAVE INCOMING C(A).
048072,000050:    4656           50000                          INDEX    A                                     #  GET CADR.
048073,000051:    4657           30000                          CA       0                                     
048074,000052: 
048075,000053:                                                                                                 #  BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
048076,000054: 
048077,000055:    4660           54004        BANKJUMP          TS       FBANK                                 
048078,000056:    4661           75041                          MASK     LOW10                                 
048079,000057:    4662           56002                          XCH      Q                                     #  RESTORING INPUT C(A) IF THIS WAS A
048080,000058:    4663           50002        Q+10000           INDEX    Q                                     #  POSTJUMP.
048081,000059:    4664           12000        PRIO12            TCF      10000                                 #  PRIO12 = TCF   10000 = 12000
048082,000060: 
048083,000061:                                                                                                 # # Page 1105
048084,000062: 
048085,000063:                                                                                                 #  THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
048086,000064: 
048087,000065:    4665           35041        MAKECADR          CAF      LOW10                                 
048088,000066:    4666           70133                          MASK     BUF2                                  
048089,000067:    4667           60134                          AD       BUF2       +1                         
048090,000068:    4670           00002                          TC       Q                                     
048091,000069: 
048092,000070:    4671           54135        SUPDACAL          TS       MPTEMP                                
048093,000071:    4672           56004                          XCH      FBANK                                 #  SET FBANK FOR DATA.
048094,000072:    4673           00006                          EXTEND                                         
048095,000073:    4674           04007                          ROR      SUPERBNK                              #  SAVE FBANK IN BITS 15-11, AND
048096,000074:    4675           56135                          XCH      MPTEMP                                #  SUPERBANK IN BITS 7-5.
048097,000075:    4676           75041                          MASK     LOW10                                 
048098,000076:    4677           56001                          XCH      L                                     #  SAVE REL. ADR. IN BANK, FETCH SUPERBITS
048099,000077:    4700           00004                          INHINT                                         #  BECAUSE RUPT DOES NOT SAVE SUPERBANK.
048100,000078:    4701           00006                          EXTEND                                         
048101,000079:    4702           01007                          WRITE    SUPERBNK                              #  SET SUPERBANK FOR DATA.
048102,000080:    4703           50001                          INDEX    L                                     
048103,000081:    4704           32000                          CA       10000                                 #  PINBALL (FIX MEM DISP) PREVENTS DCA HERE
048104,000082:    4705           56135                          XCH      MPTEMP                                #  SAVE 1ST WD, FETCH OLD FBANK AND SBANK.
048105,000083:    4706           00006                          EXTEND                                         
048106,000084:    4707           01007                          WRITE    SUPERBNK                              #  RESTORE SUPERBANK.
048107,000085:    4710           00003                          RELINT                                         
048108,000086:    4711           54004                          TS       FBANK                                 #  RESTORE FBANK.
048109,000087:    4712           30135                          CA       MPTEMP                                #  RECOVER FIRST WORD OF DATA.
048110,000088:    4713           00002                          RETURN                                         #  24 WDS. DATACALL 516 MU, SUPDACAL 432 MU
048111,000089: 
048112,000090:                                                                                                 # # Page 1106
048113,000091: 
048114,000092:                                                                                                 #  THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
048115,000093: 
048116,000094:    4714           52073        IBNKCALL          DXCH     RUPTREG3                              #  USES RUPTREG3,4 FOR DP RETURN ADDRESS.
048117,000095:    4715           50002                          INDEX    Q                                     
048118,000096:    4716           30000                          CAF      0                                     
048119,000097:    4717           24002                          INCR     Q                                     
048120,000098: 
048121,000099:    4720           54001        ISWCALL           TS       L                                     
048122,000100:    4721           22004                          LXCH     FBANK                                 
048123,000101:    4722           75041                          MASK     LOW10                                 
048124,000102:    4723           56002                          XCH      Q                                     
048125,000103:    4724           52073                          DXCH     RUPTREG3                              
048126,000104:    4725           50002                          INDEX    Q                                     
048127,000105:    4726           02000                          TC       10000                                 
048128,000106: 
048129,000107:    4727           56073        ISWRETRN          XCH      RUPTREG4                              
048130,000108:    4730           56004                          XCH      FBANK                                 
048131,000109:    4731           56073                          XCH      RUPTREG4                              
048132,000110:    4732           00072                          TC       RUPTREG3                              
048133,000111: 
048134,000112:                                                                                                 #  2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK. THE CALLING SEQUENCE IS AS FOLLOWS:
048135,000113: 
048136,000114:                                                                                                 #         L       TC      USPRCADR
048137,000115:                                                                                                 #         L+1     CADR    INTPRETX        # INTPRETX IS THE INTERPRETIVE CODING
048138,000116:                                                                                                 #                                         # RETURN IS TO L+2
048139,000117: 
048140,000118:    4733           54164        USPRCADR          TS       LOC                                   #  SAVE A
048141,000119:    4734           34761                          CA       BIT8                                  
048142,000120:    4735           54023                          TS       EDOP                                  #  EXIT INSTRUCTION TO EDOP
048143,000121:    4736           30006                          CA       BBANK                                 
048144,000122:    4737           54165                          TS       BANKSET                               #  USER'S BBANK TO BANKSET
048145,000123:    4740           50002                          INDEX    Q                                     
048146,000124:    4741           30000                          CA       0                                     
048147,000125:    4742           54004                          TS       FBANK                                 #  INTERPRETIVE BANK TO FBANK
048148,000126:    4743           75041                          MASK     LOW10                                 #  YIELDS INTERPRETIVE RELATIVE ADDRESS
048149,000127:    4744           56002                          XCH      Q                                     #  INTERPRETIVE ADDRESS TO Q, FETCHING L+1
048150,000128:    4745           56164                          XCH      LOC                                   #  L+1 TO LOC, RETRIEVING ORIGINAL A
048151,000129:    4746           14663                          TCF      Q+10000                               
048152,000130: 
048153,000131:                                                                                                 # # Page 1107
048154,000132: 
048155,000133:                                                                                                 #  THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07.  (CHANNEL 07 CONTAINS SUPERBANK SETTING.)
048156,000134: 
048157,000135:                                                                                                 #                                                 PSEUDO-FIXED     OCTAL PSEUDO
048158,000136:                                                                                                 #  SUPERBANK      SETTING         S-REG. VALUE    BANK NUMBERS       ADDRESSES
048159,000137:                                                                                                 #  ---------      -------         ------------    ------------       ---------
048160,000138:                                                                                                 #  SUPERBANK 3      OXX            2000 - 3777       30 - 37       70000 - 107777         (WHERE XX CAN BE ANYTHING AND
048161,000139:                                                                                                 #                                                                                         WILL USUALLY BE SEEN AS 11)
048162,000140:                                                                                                 #  SUPERBANK 4      100            2000 - 3777       40 - 47      110000 - 127777         (AS FAR AS IT CAN BE SEEN,
048163,000141:                                                                                                 #                                                                                         ONLY BANKS 40-43 WILL EVER BE
048164,000142:                                                                                                 #                                                                                         AND ARE PRESENTLY AVAILABLE)
048165,000143:                                                                                                 #  SUPERBANK 5      101            2000 - 3777       50 - 57      130000 - 147777         (PRESENTLY NOT AVAILABLE TO
048166,000144:                                                                                                 #                                                                                         THE USER)
048167,000145:                                                                                                 #  SUPERBANK 6      110            2000 - 3777       60 - 67      150000 - 167777         (PRESENTLY NOT AVAILABLE TO
048168,000146:                                                                                                 #                                                                                         THE USER)
048169,000147: 

End of include-file INTER-BANK_COMMUNICATION.agc.  Parent file is MAIN.agc