Source Code

These source-code files are part of a reconstructed copy of Sunrise 69, the final release of the Block I Command Module (CM) Apollo Guidance Computer (AGC) system test software.

They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 1003133-18, 1003133-19, 1003133-20, and 1003733-071. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software.

Since only binary dumps (rather than listings) of Sunrise 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.

006958,000002:                                                                                                  ## Copyright:   Public domain.
006959,000003:                                                                                                  ## Filename:    INTER-BANK_COMMUNICATION.agc
006960,000004:                                                                                                  ## Purpose:     A section of Sunrise 69.
006961,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
006962,000006:                                                                                                  ##              release of the Block I Command Module system test software. No
006963,000007:                                                                                                  ##              original listings of this program are available; instead, this
006964,000008:                                                                                                  ##              file was created via disassembly of dumps of Sunrise core rope
006965,000009:                                                                                                  ##              memory modules and comparison with the later Block I program
006966,000010:                                                                                                  ##              Solarium 55.
006967,000011:                                                                                                  ## Assembler:   yaYUL --block1
006968,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
006969,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
006970,000014:                                                                                                  ## Mod history: 2023-06-19 MAS  Created from Sunrise 45.
006971,000015: 
006972,000016: 
006973,000017:                                                                                                  #        THE FOLLOWING SUBROUTINES ARE INTENDED TO FACILITATE INTER-BANK COMMUNICATION. ROUTINES ARE PROVIDED
006974,000018:                                                                                                  #  FOR JUMPING TO A LOCATION IN ANOTHER BANK, CALLING A SUBROUTINE IN ANOTHER BANK, AND OBTAINING DATA FROM ANOTHER
006975,000019:                                                                                                  #  BANK. IN ADDITION, A ROUTINE IS PROVIDED FOR MAKING UP A RETURN_ADDRESS CADR FOR USE BY THE CALLED SUBROUTINE.
006976,000020: 
006977,000021:    2516                                           BANK     1                                     
006978,000022:    2516           50061        BANKCALL           TS       ADDRWD                                #  SUBROUTINE CALL WITH TRANSMISSION BOTH
006979,000023:    2517           30001                           XCH      Q                                     #  WAYS IN A. THE CADR OF THE CALLED
006980,000024:    2520           64516                           AD       ONE                                   #  ROUTINE SHOULD IMMEDIATELY FOLLOW THE
006981,000025:    2521           50001                           TS       Q                                     #  TC BANKCALL.
006982,000026:    2522           20000                           INDEX    A                                     
006983,000027:    2523           27777                           CAF      0          -1                         #  PICK UP CADR AND FALL INTO SWCALL.
006984,000028: 
006985,000029:    2524           50070        SWCALL             TS       TEMQS                                 #  SWCALL IS ALOS USED TO CALL SUBROUTINES
006986,000030:    2525           30015                           XCH      BANKREG                               #  IN OTHER BANKS, BUT THE CADR ARRIVES IN
006987,000031:    2526           50071                           TS       BANKTEM                               #  A. DATA MAY BE TRANSMITTED BACK TO THE
006988,000032:    2527           30001                           XCH      Q                                     #  CALLING PROGRAM IN A, HOWEVER. 
006989,000033:    2530           30070                           XCH      TEMQS                                 #  RETURN INFORMATION NOW COMPLETE.
006990,000034:    2531           50113                           TS       ESCAPE                                
006991,000035:    2532           72201                           MASK     70K                                   #  PROVISION FOR CALLING A ROUTINE IN
006992,000036:    2533           10000                           CCS      A                                     #  FIXED-FIXED (OF QUESTIONABLE VALUE).
006993,000037:    2534           02536                           TC       +2                                    #  SPECIAL TREATMENT REQUIRED IF NON-ZERO.
006994,000038:    2535           02540                           TC       +3                                    #  INPUT CADR OK AS IS.
006995,000039: 
006996,000040:    2536           40015                           CS       BANKREG                               #  FORM PROPER 12 BIT ADDRESS.
006997,000041:    2537           64373                           AD       6K                                    
006998,000042:    2540           60113                 +3        AD       ESCAPE                                #  PROPER CADRS COME HERE WITH C(A) = 0.
006999,000043:    2541           30061                           XCH      ADDRWD                                #  SO A CAN TRANSMIT WITH BANKCALL.
007000,000044:    2542           20061                           INDEX    ADDRWD                                
007001,000045:    2543           00000                           TC       0                                     #  SETTING Q TO SWRETURN.
007002,000046: 
007003,000047:    2544           30071        SWRETURN           XCH      BANKTEM                               #  RETURN TO CALLER, TRANSMITTING THROUGH A
007004,000048:    2545           50015                           TS       BANKREG                               
007005,000049:    2546           30071                           XCH      BANKTEM                               #  RESTORE A AS UPON ARRIVAL TO SWRETURN.
007006,000050:    2547           00070                           TC       TEMQS                                 #  RETURN.
007007,000051: 
007008,000052: 
007009,000053:    2550           35500        MAKECADR           CAF      ZERO                                  #  LEAVES RETURN-ADDRESS CADR (AS SET BY
007010,000054:    2551           60070                           AD       TEMQS                                 #  SWCALL OR BANKCALL) IN ADDRWD.
007011,000055:    2552           50061                           TS       ADDRWD                                
007012,000056:    2553           62562                           AD       32K                                   #  SEE IF BANK INFORMATION NEEDED (USUAL).
007013,000057:    2554           50034                           TS       OVCTR                                 
007014,000058:    2555           00001                           TC       Q                                     #  ADDRWD SET OK IF NO OVERFLOW (IN FF).
007015,000059: 
007016,000060:    2556           30034                           XCH      OVCTR                                 #  CONTAINS LOW 10 BITS ONLY.
007017,000061:    2557           60071                           AD       BANKTEM                               
007018,000062:    2560           50061                           TS       ADDRWD                                #  RETURN CADR NOW COMPLETE.
007019,000063:    2561           00001                           TC       Q                                     
007020,000064: 
007021,000065:    2562           32000        32K                OCT      32000                                 
007022,000066:    2563           30001        POSTJUMP           XCH      Q                                     #  ONE-WAY BANK TO BANK JUMP, WITH NO
007023,000067:    2564           20000                           INDEX    A                                     #  RETURN ADDRESS. THIS VERSION TRANSMITS
007024,000068:    2565           30000                           CAF      0                                     #  THROUGH A IF DESIRED.
007025,000069: 
007026,000070:    2566           50015        BANKJUMP           TS       BANKREG                               #  SAME AS ABOVE ONLY ADDRESS ARRIVES IN A.
007027,000071:    2567           74605                           MASK     LOW10                                 #  BANKJUMP AND POSTJUMP MAY BE USED IN
007028,000072:    2570           30001                           XCH      Q                                     #  INTERRUPT OR UNDER EXEC, BUT BANKCALL
007029,000073:    2571           20001                           INDEX    Q                                     #  AND SWCALL MAY BE USED ONLY UNDER EXEC.
007030,000074:    2572           06000                           TC       6000                                  
007031,000075: 
007032,000076: 
007033,000077:    2573           50113        DATACALL           TS       ESCAPE                                #  SUBROUTINE TO RETRIEVE DATA IN ANOTHER
007034,000078:    2574           30015                           XCH      BANKREG                               #  BANK. THE CADR OF THE LOCATION OF INTER-
007035,000079:    2575           30113                           XCH      ESCAPE                                #  EST ARRIVES IN A AND ITS CONTENTS ARE IN
007036,000080:    2576           74605                           MASK     LOW10                                 #  A ON EXIT. THIS MAY BE USED ONLY UNDER
007037,000081:    2577           20000                           INDEX    A                                     #  EXECUTIVE.
007038,000082:    2600           36000                           CAF      6000                                  #  REQUESTED DATA NOW ACQUIRED.
007039,000083: 
007040,000084:    2601           30113                           XCH      ESCAPE                                
007041,000085:    2602           50015                           TS       BANKREG                               
007042,000086:    2603           30113                           XCH      ESCAPE                                
007043,000087:    2604           00001                           TC       Q                                     

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