Source Code

These source-code files are part of a reconstructed copy of Aurora 88, the final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system test software.

They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson.

Since only binary dumps (rather than listings) of Aurora 88 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

001267,000002:                                                                                                  ## Copyright:   Public domain.
001268,000003:                                                                                                  ## Filename:    INTER-BANK_COMMUNICATION.agc
001269,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
001270,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
001271,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
001272,000007:                                                                                                  ##              listings of this program are available; instead, this file
001273,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
001274,000009:                                                                                                  ##              modules and comparison with other AGC programs.
001275,000010:                                                                                                  ## Assembler:   yaYUL
001276,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
001277,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
001278,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
001279,000014:                                                                                                  ##              2023-07-12 MAS  Updated for Aurora 88.
001280,000015: 
001281,000016: 
001282,000017:                                                                                                  #           THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
001283,000018:                                                                                                  #  CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE  TC BANKCALL  INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
001284,000019: 
001285,000020:    4063                                           SETLOC   ENDINTFF                              
001286,000021:    4063           52120        BANKCALL           DXCH     BUF2                                  #  SAVE INCOMING A,L.
001287,000022:    4064           50002                           INDEX    Q                                     #  PICK UP CADR.
001288,000023:    4065           30000                           CA       0                                     
001289,000024:    4066           24002                           INCR     Q                                     #  SO WE RETURN TO THE LOC. AFTER THE CADR.
001290,000025: 
001291,000026:                                                                                                  #           SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
001292,000027: 
001293,000028:    4067           54001        SWCALL             TS       L                                     
001294,000029:    4070           22004                           LXCH     FBANK                                 #  SWITCH BANKS, SAVING RETURN.
001295,000030:    4071           76426                           MASK     LOW10                                 #  GET SUB-ADDRESS OF CADR.
001296,000031:    4072           56002                           XCH      Q                                     #  A,L NOW CONTAINS DP RETURN.
001297,000032:    4073           52120                           DXCH     BUF2                                  #  RESTORING INPUTS IF THIS IS A BANKCALL.
001298,000033:    4074           50002                           INDEX    Q                                     
001299,000034:    4075           02000                           TC       10000                                 #  SETTING Q TO SWRETURN.
001300,000035: 
001301,000036:    4076           56120        SWRETURN           XCH      BUF2       +1                         #  COMES HERE TO RETURN TO CALLER. C(A,L)
001302,000037:    4077           56004                           XCH      FBANK                                 #  ARE PRESERVED FOR RETURN.
001303,000038:    4100           56120                           XCH      BUF2       +1                         
001304,000039:    4101           00117                           TC       BUF2                                  
001305,000040: 
001306,000041:                                                                                                  #           THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
001307,000042:                                                                                                  #  FOLLOWING THE TC POSTJUMP INSTRUCTION.
001308,000043: 
001309,000044:    4102           56002        POSTJUMP           XCH      Q                                     #  SAVE INCOMING C(A).
001310,000045:    4103           50000                           INDEX    A                                     #  GET CADR.
001311,000046:    4104           30000                           CA       0                                     
001312,000047: 
001313,000048:                                                                                                  #           BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
001314,000049: 
001315,000050:    4105           54004        BANKJUMP           TS       FBANK                                 
001316,000051:    4106           76426                           MASK     LOW10                                 
001317,000052:    4107           56002                           XCH      Q                                     #  RESTORING INPUT C(A) IF THIS WAS A
001318,000053:    4110           50002                           INDEX    Q                                     #  POSTJUMP.
001319,000054:    4111           12000                           TCF      10000                                 
001320,000055: 
001321,000056:                                                                                                  #  THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
001322,000057: 
001323,000058:    4112           36426        MAKECADR           CAF      LOW10                                 
001324,000059:    4113           70117                           MASK     BUF2                                  
001325,000060:    4114           60120                           AD       BUF2       +1                         
001326,000061:    4115           00002                           TC       Q                                     
001327,000062: 
001328,000063:                                                                                                  #  THE FOLLOWING ROUTINE OBTAINS THE TWO WORDS BEGINNING AT THE ADDRESS ARRIVING IN A, AND LEAVES THEM IN
001329,000064:                                                                                                  #  A,L.
001330,000065: 
001331,000066:    4116           54001        DATACALL           TS       L                                     
001332,000067:    4117           22004                           LXCH     FBANK                                 
001333,000068:    4120           22121                           LXCH     MPTEMP                                #  SAVE FORMER BANK.
001334,000069:    4121           76426                           MASK     LOW10                                 
001335,000070:    4122           00006                           EXTEND                                         
001336,000071:    4123           50000                           INDEX    A                                     
001337,000072:    4124           32001                           DCA      10000                                 
001338,000073: 
001339,000074:    4125           56121                           XCH      MPTEMP                                
001340,000075:    4126           54004                           TS       FBANK                                 #  RESTORE FBANK.
001341,000076:    4127           30121                           CA       MPTEMP                                
001342,000077:    4130           00002                           TC       Q                                     
001343,000078: 
001344,000079:                                                                                                  #  THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
001345,000080: 
001346,000081:    4131           52077        IBNKCALL           DXCH     RUPTREG3                              #  USES RUPTREG3,4 FOR DP RETURN ADDRESS.
001347,000082:    4132           50002                           INDEX    Q                                     
001348,000083:    4133           30000                           CAF      0                                     
001349,000084:    4134           24002                           INCR     Q                                     
001350,000085: 
001351,000086:    4135           54001        ISWCALL            TS       L                                     
001352,000087:    4136           22004                           LXCH     FBANK                                 
001353,000088:    4137           76426                           MASK     LOW10                                 
001354,000089:    4140           56002                           XCH      Q                                     
001355,000090:    4141           52077                           DXCH     RUPTREG3                              
001356,000091:    4142           50002                           INDEX    Q                                     
001357,000092:    4143           02000                           TC       10000                                 
001358,000093: 
001359,000094:    4144           56077        ISWRETRN           XCH      RUPTREG4                              
001360,000095:    4145           56004                           XCH      FBANK                                 
001361,000096:    4146           56077                           XCH      RUPTREG4                              
001362,000097:    4147           00076                           TC       RUPTREG3                              
001363,000098: 
001364,000099:    4150                        ENDIBNKF           EQUALS                                         

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