Source Code

These source-code files were obtained by digitally photographing a Solarium 55 (Apollo 6) program listing from the American Computer Museum in Bozeman, Montana. Photography was by Ron Burkey, with assistance from museum curator George Keremedjiev and Montana State University curator Kim Scott. The listing originally belonged to Eldon C. Hall, who donated it to the museum. Volunteers then manually typed in the source code or else modified similar pre-existing Colossus 249 (Apollo 9) source files to incorporate changes, although this transcription was principally done by Jim Lawton and corrected by Ron Burkey. Notations on the program listing read, in part:

        YUL SYSTEM FOR AGC4: REVISION 0 OF PROGRAM SOLRUM55
	BY NASA 1021108-021                    DEC. 4, 1966
Note that the date is the date of the printout, not the date of the program revision.

Due to statements by Jay Sampson, the original contractor from AC Electronics who created Solarium 54 (Apollo 4) from the earlier Corona (AS-202 mission) program, it is believed that Solarium 54 and Solarium 55 (Apollo 6) are actually identical programs. The change in numbering, from 54 to 55, is believed to be for some administrative purpose. Thus, it is believed that the source-code represented here is equally appropriate for both Apollo 4 and Apollo 6 missions.

011359,000002:                                                                                                  ## Copyright:   Public domain.
011360,000003:                                                                                                  ## Filename:    INTER-BANK_COMMUNICATION.agc
011361,000004:                                                                                                  ## Purpose:     Part of the source code for Solarium build 55. This
011362,000005:                                                                                                  ##              is for the Command Module's (CM) Apollo Guidance
011363,000006:                                                                                                  ##              Computer (AGC), for Apollo 6.
011364,000007:                                                                                                  ## Assembler:   yaYUL --block1
011365,000008:                                                                                                  ## Contact:     Jim Lawton <jim DOT lawton AT gmail DOT com>
011366,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
011367,000010:                                                                                                  ## Page Scans:  www.ibiblio.org/apollo/ScansForConversion/Solarium055/
011368,000011:                                                                                                  ## Mod history: 2009-09-15 JL   Created.
011369,000012:                                                                                                  ##              2016-08-19 RSB  Typos.
011370,000013:                                                                                                  ##              2016-12-28 RSB  Proofed comment text using octopus/ProoferComments,
011371,000014:                                                                                                  ##                              but no errors found.
011372,000015: 

Page 290

011374,000017: 
011375,000018:                                                                                                  #        THE FOLLOWING SUBROUTINES ARE INTENDED TO FACILITATE INTER-BANK COMMUNICATION. ROUTINES ARE PROVIDED
011376,000019:                                                                                                  #  FOR JUMPING TO A LOCATION IN ANOTHER BANK, CALLING A SUBROUTINE IN ANOTHER BANK, AND OBTAINING DATA FROM ANOTHER
011377,000020:                                                                                                  #  BANK. IN ADDITION, A ROUTINE IS PROVIDED FOR MAKING UP A RETURN_ADDRESS CADR FOR USE BY THE CALLED SUBROUTINE.
011378,000021: 
011379,000022:    5654                                           BANK     2                                     
011380,000023:    5654           50062        BANKCALL           TS       ADDRWD                                #  SUBROUTINE CALL WITH TRANSMISSION BOTH
011381,000024:    5655           30001                           XCH      Q                                     #  WAYS IN A. THE CADR OF THE CALLED
011382,000025:    5656           64516                           AD       ONE                                   #  ROUTINE SHOULD IMMEDIATELY FOLLOW THE
011383,000026:    5657           50001                           TS       Q                                     #  TC BANKCALL.
011384,000027:    5660           20000                           INDEX    A                                     
011385,000028:    5661           27777                           CAF      0          -1                         #  PICK UP CADR AND FALL INTO SWCALL.
011386,000029: 
011387,000030:    5662           50071        SWCALL             TS       TEMQS                                 #  SWCALL IS ALOS USED TO CALL SUBROUTINES
011388,000031:    5663           30015                           XCH      BANKREG                               #  IN OTHER BANKS, BUT THE CADR ARRIVES IN
011389,000032:    5664           50072                           TS       BANKTEM                               #  A. DATA MAY BE TRANSMITTED BACK TO THE
011390,000033:    5665           30001                           XCH      Q                                     #  CALLING PROGRAM IN A, HOWEVER. 
011391,000034:    5666           30071                           XCH      TEMQS                                 #  RETURN INFORMATION NOW COMPLETE.
011392,000035:    5667           50114                           TS       ESCAPE                                
011393,000036:    5670           72667                           MASK     70K                                   #  PROVISION FOR CALLING A ROUTINE IN
011394,000037:    5671           10000                           CCS      A                                     #  FIXED-FIXED (OF QUESTIONABLE VALUE).
011395,000038:    5672           05674                           TC       +2                                    #  SPECIAL TREATMENT REQUIRED IF NON-ZERO.
011396,000039:    5673           05676                           TC       +3                                    #  INPUT CADR OK AS IS.
011397,000040: 
011398,000041:    5674           40015                           CS       BANKREG                               #  FORM PROPER 12 BIT ADDRESS.
011399,000042:    5675           64373                           AD       6K                                    
011400,000043:    5676           60114                 +3        AD       ESCAPE                                #  PROPER CADRS COME HERE WITH C(A) = 0.
011401,000044:    5677           30062                           XCH      ADDRWD                                #  SO A CAN TRANSMIT WITH BANKCALL.
011402,000045:    5700           20062                           INDEX    ADDRWD                                
011403,000046:    5701           00000                           TC       0                                     #  SETTING Q TO SWRETURN.
011404,000047: 
011405,000048:    5702           30072        SWRETURN           XCH      BANKTEM                               #  RETURN TO CALLER, TRANSMITTING THROUGH A
011406,000049:    5703           50015                           TS       BANKREG                               
011407,000050:    5704           30072                           XCH      BANKTEM                               #  RESTORE A AS UPON ARRIVAL TO SWRETURN.
011408,000051:    5705           00071                           TC       TEMQS                                 #  RETURN.
011409,000052: 

Page 291

011411,000054: 
011412,000055:    5706           35501        MAKECADR           CAF      ZERO                                  #  LEAVES RETURN-ADDRESS CADR (AS SET BY
011413,000056:    5707           60071                           AD       TEMQS                                 #  SWCALL OR BANKCALL) IN ADDRWD.
011414,000057:    5710           50062                           TS       ADDRWD                                
011415,000058:    5711           62165                           AD       32K                                   #  SEE IF BANK INFORMATION NEEDED (USUAL).
011416,000059:    5712           50034                           TS       OVCTR                                 
011417,000060:    5713           00001                           TC       Q                                     #  ADDRWD SET OK IF NO OVERFLOW (IN FF).
011418,000061: 
011419,000062:    5714           30034                           XCH      OVCTR                                 #  CONTAINS LOW 10 BITS ONLY.
011420,000063:    5715           60072                           AD       BANKTEM                               
011421,000064:    5716           50062                           TS       ADDRWD                                #  RETURN CADR NOW COMPLETE.
011422,000065:    5717           00001                           TC       Q                                     
011423,000066: 
011424,000067:    5720     2165               32K                EQUALS   PRIO32                                
011425,000068:    5720           30001        POSTJUMP           XCH      Q                                     #  ONE-WAY BANK TO BANK JUMP, WITH NO
011426,000069:    5721           20000                           INDEX    A                                     #  RETURN ADDRESS. THIS VERSION TRANSMITS
011427,000070:    5722           30000                           CAF      0                                     #  THROUGH A IF DESIRED.
011428,000071: 
011429,000072:    5723           50015        BANKJUMP           TS       BANKREG                               #  SAME AS ABOVE ONLY ADDRESS ARRIVES IN A.
011430,000073:    5724           74606                           MASK     LOW10                                 #  BANKJUMP AND POSTJUMP MAY BE USED IN
011431,000074:    5725           30001                           XCH      Q                                     #  INTERRUPT OR UNDER EXEC, BUT BANKCALL
011432,000075:    5726           20001                           INDEX    Q                                     #  AND SWCALL MAY BE USED ONLY UNDER EXEC.
011433,000076:    5727           06000                           TC       6000                                  
011434,000077: 
011435,000078: 
011436,000079:    5730           50114        DATACALL           TS       ESCAPE                                #  SUBROUTINE TO RETRIEVE DATA IN ANOTHER
011437,000080:    5731           30015                           XCH      BANKREG                               #  BANK. THE CADR OF THE LOCATION OF INTER-
011438,000081:    5732           30114                           XCH      ESCAPE                                #  EST ARRIVES IN A AND ITS CONTENTS ARE IN
011439,000082:    5733           74606                           MASK     LOW10                                 #  A ON EXIT. THIS MAY BE USED ONLY UNDER
011440,000083:    5734           20000                           INDEX    A                                     #  EXECUTIVE.
011441,000084:    5735           36000                           CAF      6000                                  #  REQUESTED DATA NOW ACQUIRED.
011442,000085: 
011443,000086:    5736           30114                           XCH      ESCAPE                                
011444,000087:    5737           50015                           TS       BANKREG                               
011445,000088:    5740           30114                           XCH      ESCAPE                                
011446,000089:    5741           00001                           TC       Q                                     
011447,000090: 

Page 292

011449,000092: 
011450,000093:                                                                                                  #        THE FOLLOWING ROUTINES ARE INTERRUPT ANALOGS OF BANKCALL AND SWCALL. BANK-TO-BANK ONLY.
011451,000094: 
011452,000095:    5742           50637        IBNKCALL           TS       RUPTREG1                              
011453,000096:    5743           30001                           XCH      Q                                     
011454,000097:    5744           64516                           AD       ONE                                   
011455,000098:    5745           50001                           TS       Q                                     
011456,000099:    5746           20000                           INDEX    A                                     
011457,000100:    5747           27777                           CAF      0          -1                         
011458,000101: 
011459,000102:    5750           50641        ISWCALL            TS       RUPTREG3                              
011460,000103:    5751           30015                           XCH      BANKREG                               
011461,000104:    5752           50640                           TS       RUPTREG2                              
011462,000105:    5753           30001                           XCH      Q                                     
011463,000106:    5754           30641                           XCH      RUPTREG3                              
011464,000107:    5755           74606                           MASK     LOW10                                 
011465,000108:    5756           30637                           XCH      RUPTREG1                              
011466,000109:    5757           20637                           INDEX    RUPTREG1                              
011467,000110:    5760           06000                           TC       6000                                  
011468,000111: 
011469,000112:    5761           30640        ISWRETRN           XCH      RUPTREG2                              
011470,000113:    5762           50015                           TS       BANKREG                               
011471,000114:    5763           30640                           XCH      RUPTREG2                              
011472,000115:    5764           00641                           TC       RUPTREG3                              

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