Source Code

These source-code files are part of a reconstructed copy of Corona 261, the final, flown release of the Block I Command Module (CM) Apollo Guidance Computer (AGC) software for the AS-202 mission.

They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on the mission, part numbers 1003733-171, 1003733-241, 1003733-191, 1003733-211, 1003733-221, and 1003733-241. The source code for the Apollo 4 and 6 software, Solarium 55, was used as a starting point, since it was directly derived from Corona and (at least in theory) only minimally modified.

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

030359,000002:                                                                                                  ## Copyright:   Public domain.
030360,000003:                                                                                                  ## Filename:    VERIFICATION_ASSISTANCE_PROGRAMS.agc
030361,000004:                                                                                                  ## Purpose:     A section of Corona revision 261.
030362,000005:                                                                                                  ##              It is part of the source code for the Apollo Guidance Computer
030363,000006:                                                                                                  ##              (AGC) for AS-202. No original listings of this software are
030364,000007:                                                                                                  ##              available; instead, this file was created via disassembly of
030365,000008:                                                                                                  ##              the core rope modules actually flown on the mission.
030366,000009:                                                                                                  ## Assembler:   yaYUL
030367,000010:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
030368,000011:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
030369,000012:                                                                                                  ## Mod history: 2023-05-27 MAS  Created from Solarium 55.
030370,000013: 
030371,000014: 
030372,000015:                                                                                                  #        WAITLIST EXERCISE PROGRAM. TIMES ARE GIVEN IN THE FORM NN + NN/32 + YY, WHERE THE NS REFER TO TIME
030373,000016:                                                                                                  #  SINCE THE BEGINNING OF THE TEST, AND YS ADDITIONAL MCT.
030374,000017: 
030375,000018: 13,7155                                           BANK     13                                    
030376,000019: 13,7155           30006        WLTEST             XCH      IN2                                   
030377,000020: 13,7156           10006                           CCS      IN2                                   #  GET IN PHASE WITH T3 INCREMENTS.
030378,000021: 13,7157           07161                           TC       +2                                    
030379,000022: 13,7160           07156                           TC       -2                                    
030380,000023: 
030381,000024: 13,7161           10006                           CCS      IN2                                   
030382,000025: 13,7162           07161                           TC       -1                                    
030383,000026: 13,7163           50042                           TS       OUTCR1                                #  TO INITIALIZE.
030384,000027: 
030385,000028:                                                                                                  #        THE FIRST TASK IS ENTERED INTO SLOT 1 WITH A T3 INCREMENT BETWEEN THE TWO T3 REFERENCES. CALL AT
030386,000029:                                                                                                  #  10 +00/32 -25. SPECIFY WAIT TO 30/32.
030387,000030: 
030388,000031: 13,7164           07260                           TC       OUTCR1WT                              
030389,000032: 13,7165           00035                           DEC      29         B-14                       
030390,000033: 
030391,000034: 13,7166           07260                           TC       OUTCR1WT                              #  GO WAIT FOR THIS AND SPECIFY RESET TO
030392,000035: 13,7167           00052                           DEC      42         B-14                       #  20 +8/32.
030393,000036: 
030394,000037:                                                                                                  #        AT 30/32 +16, WAIT 12 MCT BEFORE ENTERING TASK 1.
030395,000038: 
030396,000039: 13,7170           35501                           CAF      ZERO                                  #  TUNING CONSTANT.
030397,000040: 13,7171           10000                           CCS      A                                     
030398,000041: 13,7172           07171                           TC       -1                                    
030399,000042: 13,7173           34516                           CAF      ONE                                   #  TASK ENTRY WITH T3 INC BETWEEN TWO T3
030400,000043: 13,7174           02173                           TC       WAITLIST                              #  REFERENCES.
030401,000044: 13,7175           42240                           CADR     NOPLWAIT   +2                         #  TASK IN HIGH SWITCHED BANK.
030402,000045: 
030403,000046: 13,7176           07260                           TC       OUTCR1WT                              #  WAIT FOR 20 +8/32. CALL FOR RESET TO
030404,000047: 13,7177           00027                           DEC      23         B-14                       #  20 +31/32.
030405,000048: 
030406,000049: 13,7200           34516                           CAF      ONE                                   #  AT 20 +8/32 + 16, ENTER TASK 2 DUE AT
030407,000050: 13,7201           02173                           TC       WAITLIST                              #  30.
030408,000051: 13,7202           27302                           CADR     QTSK2                                 
030409,000052: 
030410,000053: 
030411,000054:                                                                                                  #        WAIT FOR 20 +31/32 +16 AND AT THAT TIME WAIT FOR T3 TO OVERFLOW BEFORE ENTERING TASK 3. REQUIRES RESET
030412,000055:                                                                                                  #  TO 30 +10/32.
030413,000056: 
030414,000057: 13,7203           07260                           TC       OUTCR1WT                              
030415,000058: 13,7204           00013                           DEC      11         B-14                       
030416,000059: 13,7205           10037                           CCS      TIME3                                 
030417,000060: 13,7206           07205                           TC       -1                                    
030418,000061: 13,7207           34516                           CAF      ONE                                   #  ENTER TASK 3 AFTER T3 OVF.
030419,000062: 13,7210           02173                           TC       WAITLIST                              
030420,000063: 13,7211           27303                           CADR     QTSK3                                 
030421,000064: 
030422,000065: 13,7212           07260                           TC       OUTCR1WT                              #  TASK 3 IS DUE AT 40. WAIT FOR 30 +10/32
030423,000066: 13,7213           00065                           DEC      53         B-14                       #  CALLING FOR RESET TO 40 +31/32.
030424,000067: 
030425,000068:                                                                                                  #        AT 30 +10/32 +16, ENTER TASKS 4 AND 5 DUE SAME RUPT AT 50. THEY WILL BE INHIBITED FOR 6 MS SO THAT T3
030426,000069:                                                                                                  #  WILL TICK WHILE IT IS BEING RESET IN THE DISPATCH OF 5.
030427,000070: 
030428,000071: 13,7214           35503                           CAF      TWO                                   #  ENTERED INTO SLOTS 2 AND 3.
030429,000072: 13,7215           02173                           TC       WAITLIST                              
030430,000073: 13,7216           27304                           CADR     QTSK4                                 
030431,000074: 13,7217           35503                           CAF      TWO                                   
030432,000075: 13,7220           02173                           TC       WAITLIST                              
030433,000076: 13,7221           03233                           CADR     TCTSKOVR                              #  TASK IN FIXED-FIXED.
030434,000077: 
030435,000078: 13,7222           07260                           TC       OUTCR1WT                              #  WAIT FOR 40 +31/32 +16, CALLING FOR
030436,000079: 13,7223           00023                           DEC      19         B-14                       #  RESET TO 50 +18/32.
030437,000080: 
030438,000081: 13,7224           07261                           TC       OUTCR1WT   +1                         #  AT 40 +31/32 +16, INHIBIT UNTIL
030439,000082: 13,7225           00030                           DEC      24         B-14                       #  50 +18/32 +16 AND RESET TO 60 +10/32.
030440,000083: 
030441,000084: 13,7226           07260                           TC       OUTCR1WT                              #  AT 50 +18/32 +16, WAIT UNTIL 60 10/32,
030442,000085: 13,7227           00025                           DEC      21         B-14                       #  RESETTING TO 60 +31/32.
030443,000086: 
030444,000087: 
030445,000088:                                                                                                  #        AT 60 +10/32 +16, ENTER TASKS 6 AND 7 DUE AT 70 AND 8 DUE AT 80. T3 WILL INCREMENT DURING TASK 7
030446,000089:                                                                                                  #  DISPATCH, MAKING TASK 8 DUE THAT INTERRUPT. 
030447,000090: 
030448,000091: 13,7230           34516                           CAF      ONE                                   
030449,000092: 13,7231           02173                           TC       WAITLIST                              #  ENTER TWO TASKS DUE SAME T3 RUPT AND
030450,000093: 13,7232           27310                           CADR     QTSK6                                 #  ANOTHER DUE THE FOLLOWING RUPT.
030451,000094: 13,7233           34516                           CAF      ONE                                   
030452,000095: 13,7234           02173                           TC       WAITLIST                              
030453,000096: 13,7235           27312                           CADR     QTSK7                                 
030454,000097: 13,7236           35503                           CAF      TWO                                   #  A T3 INC WILL OCCUR WHILE TASK 7 IS
030455,000098: 13,7237           02173                           TC       WAITLIST                              #  SETTING T3 FOR THIS TASK AND CAUSE IT TO
030456,000099: 13,7240           27313                           CADR     QTSK8                                 #  BE THE THIRD TASK DUE THAT RUPT.
030457,000100: 
030458,000101: 13,7241           07260                           TC       OUTCR1WT                              #  WAIT UNTIL 60 +31/32 +16, INHINTING
030459,000102: 13,7242           00023                           DEC      19         B-14                       #  70 +18/32 +16.
030460,000103: 13,7243           07261                           TC       OUTCR1WT   +1                         
030461,000104: 13,7244           00001                           DEC      1          B-14                       
030462,000105: 
030463,000106: 13,7245           34477                           CAF      FIVE                                  #  SYSTEMMATICALLY ENTER TASKS IN ALL 6
030464,000107: 13,7246           50115                           TS       MPAC                                  #  SLOTS.
030465,000108: 
030466,000109: 13,7247           20016        QTSKLOOP           RELINT                                         
030467,000110: 13,7250           20017                           INHINT                                         
030468,000111: 13,7251           40115                           CS       MPAC                                  
030469,000112: 13,7252           65362                           AD       SEVEN                                 
030470,000113: 13,7253           02173                           TC       WAITLIST                              
030471,000114: 13,7254           27314                           CADR     QTSK10                                
030472,000115: 13,7255           10115                           CCS      MPAC                                  
030473,000116: 13,7256           07246                           TC       QTSKLOOP   -1                         
030474,000117: 
030475,000118: 13,7257           07257        QENDTEST           TC       -0                                    
030476,000119: 
030477,000120: 
030478,000121:                                                                                                  #        THE FOLLOWING SUBROUTINE USES OUTCR1 AS A FINE TIMER DURING THE WAITLIST TEST.
030479,000122: 
030480,000123: 13,7260           20016        OUTCR1WT           RELINT                                         
030481,000124: 13,7261           30001                           XCH      Q                                     
030482,000125: 13,7262           50115                           TS       MPAC                                  
030483,000126: 13,7263           20000                           INDEX    A                                     
030484,000127: 13,7264           40000                           CS       0                                     #  NUMBER OF THIRTY-SECONDS OF 10MS TO WAIT
030485,000128: 13,7265           64522                           AD       HALF                                  
030486,000129: 13,7266           64522                           AD       HALF                                  
030487,000130: 13,7267           50116                           TS       MPAC       +1                         #  NEW OUTCR SETTING.
030488,000131: 
030489,000132: 13,7270           10042                           CCS      OUTCR1                                
030490,000133: 13,7271           07270                           TC       -1                                    
030491,000134: 
030492,000135: 13,7272           30116        OUTCR1W2           XCH      MPAC       +1                         
030493,000136: 13,7273           50042                           TS       OUTCR1                                
030494,000137: 13,7274           37301                           CAF      1WTCODE                               
030495,000138: 13,7275           50012                           TS       OUT2                                  
030496,000139: 13,7276           20017                           INHINT                                         
030497,000140: 13,7277           20115                           INDEX    MPAC                                  
030498,000141: 13,7300           00001                           TC       1                                     
030499,000142: 
030500,000143: 13,7301           26000        1WTCODE            OCT      26000                                 
030501,000144: 
030502,000145: 
030503,000146:                                                                                                  #        TASKS FOR WAITLIST TESTER.
030504,000147: 
030505,000148: 13,7302           02256        QTSK2              TC       TASKOVER                              
030506,000149: 13,7303           02256        QTSK3              TC       TASKOVER                              
030507,000150: 13,7304           37315        QTSK4              CAF      QTSK4DEL                              #  WAIT SO THAT T3 WILL TICK DURING DISPTCH
030508,000151: 13,7305           10000                           CCS      A                                     
030509,000152: 13,7306           07305                           TC       -1                                    
030510,000153: 13,7307           02256                           TC       TASKOVER                              
030511,000154: 
030512,000155: 13,7310           37316        QTSK6              CAF      QTSK6DEL                              
030513,000156: 13,7311           07305                           TC       QTSK4      +1                         
030514,000157: 
030515,000158: 13,7312           02256        QTSK7              TC       TASKOVER                              
030516,000159: 13,7313           02256        QTSK8              TC       TASKOVER                              
030517,000160: 13,7314           02256        QTSK10             TC       TASKOVER                              
030518,000161: 
030519,000162: 13,7315           00115        QTSK4DEL           DEC      77         B-14                       #  TUNING CONSTANTS.
030520,000163: 13,7316           00116        QTSK6DEL           DEC      78         B-14                       

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