Source Code

   YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS       BY MSTEWART JUN. 28,2017
This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations.

013907,000002:                                                                                                  ## Copyright:   Public domain.
013908,000003:                                                                                                  ## Filename:    DOWN-TELEMETRY_PROGRAM.agc
013909,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
013910,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
013911,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
013912,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
013913,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
013914,000009:                                                                                                  ##              Validation.
013915,000010:                                                                                                  ## Assembler:   yaYUL
013916,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
013917,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
013918,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
013919,000014: 
013920,000015: 15,2000                                           BANK     15                                    
013921,000016: 15,2000  E7,1403                                  EBANK=   DNTMBUFF                              
013922,000017: 15,2000           00437        LOWIDCOD           OCT      00437                                 #  FOD'S CHOICE.
013923,000018:                                                                                                  #        SPECIAL DOWNLINK LIST FOR AGS INITIALIZATION, MUST BE IN LOCATION 2001 OF DOWNLINK FBANK,
013924,000019: 15,2001           00342        AGSLIST            ECADR    UPLOCK                                
013925,000020: 15,2002           00025                           ECADR    TIME1                                 
013926,000021: 15,2003           00024                           ECADR    TIME2                                 
013927,000022: 15,2004           00412                           ECADR    AGSWORD                               
013928,000023: 15,2005           03602                           ECADR    AGSBUFF    +27D                       
013929,000024: 15,2006           03601                           ECADR    AGSBUFF    +26D                       
013930,000025: 15,2007           03600                           ECADR    AGSBUFF    +25D                       
013931,000026: 15,2010           03577                           ECADR    AGSBUFF    +24D                       
013932,000027: 15,2011           00412                           ECADR    AGSWORD                               
013933,000028: 15,2012           03576                           ECADR    AGSBUFF    +23D                       
013934,000029: 15,2013           03575                           ECADR    AGSBUFF    +22D                       
013935,000030: 15,2014           03574                           ECADR    AGSBUFF    +21D                       
013936,000031: 15,2015           03573                           ECADR    AGSBUFF    +20D                       
013937,000032: 15,2016           00412                           ECADR    AGSWORD                               
013938,000033: 15,2017           03572                           ECADR    AGSBUFF    +19D                       
013939,000034: 15,2020           03571                           ECADR    AGSBUFF    +18D                       
013940,000035: 15,2021           03570                           ECADR    AGSBUFF    +17D                       
013941,000036: 15,2022           03567                           ECADR    AGSBUFF    +16D                       
013942,000037: 15,2023           00412                           ECADR    AGSWORD                               
013943,000038: 15,2024           03566                           ECADR    AGSBUFF    +15D                       
013944,000039: 15,2025           03565                           ECADR    AGSBUFF    +14D                       
013945,000040: 15,2026           03564                           ECADR    AGSBUFF    +13D                       
013946,000041: 15,2027           03563                           ECADR    AGSBUFF    +12D                       
013947,000042: 15,2030           00412                           ECADR    AGSWORD                               
013948,000043: 15,2031           03562                           ECADR    AGSBUFF    +11D                       
013949,000044: 15,2032           03561                           ECADR    AGSBUFF    +10D                       
013950,000045: 15,2033           01560                           ADRES    AGSBUFF    +9D                        
013951,000046: 15,2034           01557                           ADRES    AGSBUFF    +8D                        
013952,000047: 15,2035           00412                           ADRES    AGSWORD                               
013953,000048: 15,2036           01556                           ADRES    AGSBUFF    +7                         
013954,000049: 15,2037           01555                           ADRES    AGSBUFF    +6                         
013955,000050: 15,2040           01554                           ADRES    AGSBUFF    +5                         
013956,000051: 15,2041           01553                           ADRES    AGSBUFF    +4                         
013957,000052: 15,2042           00412                           ADRES    AGSWORD                               
013958,000053: 15,2043           01552                           ADRES    AGSBUFF    +3                         
013959,000054: 15,2044           01551                           ADRES    AGSBUFF    +2                         
013960,000055: 15,2045           01550                           ADRES    AGSBUFF    +1                         
013961,000056: 15,2046           01547                           ADRES    AGSBUFF                               
013962,000057:                                                                                                  #        THIS ROUTINE IS INITITATED EVERY 20MS BY AN INTERRUPT TRIGGERED
013963,000058:                                                                                                  #  BY THE RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
013964,000059: 
013965,000060: 15,2047           54016        DODOWNTM           TS       BANKRUPT                              #  DO APPROPRIATE TM PHASE.
013966,000061: 15,2050           51401                           INDEX    DNTMGOTO                              
013967,000062: 15,2051           10000                           TCF      0                                     
013968,000063: 
013969,000064: 15,2052           30411        DNPHASE1           CA       DNLSTADR                              #  ONCE PER CYCLE (1 SECOND), AN ID IS SENT
013970,000065: 15,2053           55400                           TS       LDATALST                              #  AND THE DATA LIST SWITCHED TO THAT
013971,000066: 15,2054           77701                           MASK     LOW10                                 #  SELECTED BY A MISSION OR TEST PROGRAM.
013972,000067: 15,2055           00006                           EXTEND                                         
013973,000068: 15,2056           01034                           WRITE    DNTM1                                 
013974,000069: 15,2057           47663                           CS       BIT7                                  #  WORD ORDER BIT IS 0 FOR ID OWRD ONLY.
013975,000070: 15,2060           00006                           EXTEND                                         
013976,000071: 15,2061           03013                           WAND     13                                    
013977,000072: 
013978,000073: 15,2062           32212                           CAF      LDNPHAS2                              #  SWITCH TO PHASE 2.
013979,000074: 15,2063           55401                           TS       DNTMGOTO                              
013980,000075: 15,2064           32000                           CAF      LOWIDCOD                              #  SPECIAL ID CODE IN L.
013981,000076: 15,2065           12151                           TCF      TMEXITL                               
013982,000077: 
013983,000078: 15,2066           37663        DNPHASE2           CAF      BIT7                                  #  SET WORD ORDER BACK TO 1 FOR REMAINDER
013984,000079: 15,2067           00006                           EXTEND                                         #  OF CYCLE AND SET UP TO PICK UP 12 PAIRS
013985,000080: 15,2070           05013                           WOR      13                                    #  FROM ANYWHERE IN COMMON ERASABLE OR E7.
013986,000081: 
013987,000082: 15,2071           37675                           CAF      ZERO                                  
013988,000083: 15,2072           54065                           TS       ITEMP1                                #  TAKE SNAPSHOT OF 12 DP WORDS.
013989,000084: 15,2073           35234                           CAF      TEN                                   
013990,000085: 
013991,000086: 15,2074           54066        LOOP               TS       ITEMP2                                #  THESE 12 DP WORDS ARE READ INTO AN
013992,000087: 15,2075           61400                           AD       LDATALST                              #  INTERMEDIATE BUFFER SO THEY REFER TO THE
013993,000088: 15,2076           00006                           EXTEND                                         #  SAME POINT IN THE EXECUTION OF A MISSION
013994,000089: 15,2077           50000                           INDEX    A                                     #  PROGRAM. THE WORDS MAY BE IN NON-
013995,000090: 15,2100           50032                           INDEX    26D                                   
013996,000091: 15,2101           30001                           DCA      0                                     #  12 OF THE DATA LIST ARE USED AS
013997,000092: 15,2102           50065                           INDEX    ITEMP1                                #  ADDRESSES OF THE DESIRED DATA.
013998,000093: 15,2103           53404                           DXCH     DNTMBUFF                              
013999,000094: 
014000,000095: 15,2104           37670                           CAF      TWO                                   
014001,000096: 15,2105           26065                           ADS      ITEMP1                                
014002,000097: 15,2106           10066                           CCS      ITEMP2                                
014003,000098: 15,2107           12074                           TCF      LOOP                                  
014004,000099: 
014005,000100: 15,2110           32220                           CAF      DEC11                                 #  SET UP TO SEND 11 REMAINING WORDS
014006,000101: 15,2111           55402                           TS       TMINDEX                               
014007,000102: 15,2112           32213                           CAF      LDNPHASX                              
014008,000103: 15,2113           55401                           TS       DNTMGOTO                              
014009,000104: 
014010,000105: 15,2114           00006                           EXTEND                                         
014011,000106: 15,2115           51400                           INDEX    LDATALST                              
014012,000107: 15,2116           50045                           INDEX    37D                                   
014013,000108: 15,2117           30001                           DCA      0                                     
014014,000109: 15,2120           12146                           TCF      DNTMEXIT                              
014015,000110: 
014016,000111: 15,2121           55402        DNPHASXA           TS       TMINDEX                               
014017,000112: 15,2122           00006                           EXTEND                                         
014018,000113: 15,2123           50000                           INDEX    A                                     #  SENDS SNAPSHOT BUFFER.
014019,000114: 15,2124           52230                           INDEX    FIXLISTB                              
014020,000115: 15,2125           30001                           DCA      0                                     
014021,000116: 15,2126           12146                           TCF      DNTMEXIT                              
014022,000117: 
014023,000118: 15,2127           11402        DNPHASEX           CCS      TMINDEX                               #  AT END OF SNAPSHOT TRANSMISSION, SET UP
014024,000119: 15,2130           12121                           TCF      DNPHASXA                              #  TO SEND 26 PRS FROM ANY ERASABLE LOC AS
014025,000120: 
014026,000121: 15,2131           32214                           CAF      LDNPHAS3                              #  SPECIFIED BY WORDS 1 - 26 OF THE DATA
014027,000122: 15,2132           55401                           TS       DNTMGOTO                              #  LIST.
014028,000123: 15,2133           32217                           CAF      NOGENWDS                              
014029,000124: 
014030,000125: 15,2134           55402        PHASE3A            TS       TMINDEX                               #  GET DP WORD FROM ANY EBANK.
014031,000126: 15,2135           61400                           AD       LDATALST                              
014032,000127: 15,2136           00006                           EXTEND                                         
014033,000128: 15,2137           50000                           INDEX    A                                     
014034,000129: 15,2140           30001                           DCA      0                                     #  THIS GETS THE ADDRESS - MUST USE DCA
014035,000130: 15,2141           54003                           TS       EBANK                                 
014036,000131: 15,2142           75227                           MASK     LOW8                                  
014037,000132: 15,2143           00006                           EXTEND                                         
014038,000133: 15,2144           50000                           INDEX    A                                     
014039,000134: 15,2145           31401                           DCA      3400                                  #  (NOTE ASSEMBLY AS DCA 1400)
014040,000135: 15,2146           00006        DNTMEXIT           EXTEND                                         #  GENERAL DNTM EXIT LOCATION.
014041,000136: 15,2147           01034                           WRITE    DNTM1                                 
014042,000137: 15,2150           30001                           CA       L                                     
014043,000138: 15,2151           00006        TMEXITL            EXTEND                                         
014044,000139: 15,2152           01035                           WRITE    DNTM2                                 
014045,000140: 15,2153           14571                           TCF      NOQRSM                                
014046,000141: 
014047,000142: 15,2154           11402        DNPHASE3           CCS      TMINDEX                               
014048,000143: 15,2155           12134                           TCF      PHASE3A                               
014049,000144: 
014050,000145: 15,2156           32215                           CAF      LDNPHAS4                              #  SEND FIXED FORMAT LIST OF DSPTAB AND
014051,000146: 15,2157           55401                           TS       DNTMGOTO                              #  T2, T1.
014052,000147: 15,2160           36173                           CAF      SIX                                   
014053,000148: 
014054,000149: 15,2161           55402        PHASE4A            TS       TMINDEX                               
014055,000150: 15,2162           00006                           EXTEND                                         #  FIXED DATA LIST FOR DSPTAB AND TIME.
014056,000151: 15,2163           50000                           INDEX    A                                     
014057,000152: 15,2164           52221                           INDEX    FIXLIST                               
014058,000153: 15,2165           30001                           DCA      0                                     
014059,000154: 15,2166           12146                           TCF      DNTMEXIT                              
014060,000155: 15,2167           11402        DNPHASE4           CCS      TMINDEX                               
014061,000156: 15,2170           12161                           TCF      PHASE4A                               
014062,000157: 
014063,000158: 15,2171           32216                           CAF      LPHASE5                               #  SET UP FOR CHANNEL TRANSMISSION.
014064,000159: 15,2172           55401                           TS       DNTMGOTO                              
014065,000160: 15,2173           36176                           CAF      THREE                                 #  FOUR PAIRS OF CHANNELS.
014066,000161: 
014067,000162: 15,2174           55402        PHASE5A            TS       TMINDEX                               
014068,000163: 15,2175           00006                           EXTEND                                         
014069,000164: 15,2176           50000                           INDEX    A                                     
014070,000165: 15,2177           52247                           INDEX    FIXLSTCL                              
014071,000166: 15,2200           00000                           READ     0                                     
014072,000167: 15,2201           54001                           TS       L                                     
014073,000168: 15,2202           00006                           EXTEND                                         
014074,000169: 15,2203           51402                           INDEX    TMINDEX                               
014075,000170: 15,2204           52243                           INDEX    FIXLSTCA                              
014076,000171: 15,2205           00000                           READ     0                                     
014077,000172: 15,2206           12146                           TCF      DNTMEXIT                              
014078,000173: 15,2207           11402        DNPHASE5           CCS      TMINDEX                               
014079,000174: 15,2210           12174                           TCF      PHASE5A                               
014080,000175: 15,2211           12052                           TCF      DNPHASE1                              #  START NEXT CYCLE.
014081,000176:                                                                                                  #        CONSTNATS AND FIXED FORMAT DATA LIST.
014082,000177: 15,2212           02066        LDNPHAS2           ADRES    DNPHASE2                              
014083,000178: 15,2213           02127        LDNPHASX           ADRES    DNPHASEX                              
014084,000179: 15,2214           02154        LDNPHAS3           ADRES    DNPHASE3                              
014085,000180: 15,2215           02167        LDNPHAS4           ADRES    DNPHASE4                              
014086,000181: 15,2216           02207        LPHASE5            ADRES    DNPHASE5                              
014087,000182: 
014088,000183: 15,2217           00031        NOGENWDS           DEC      25         B-14                       #  26 WORDS SENT DURING PHASE 3.
014089,000184: 15,2220           00013        DEC11              DEC      11         B-14                       
014090,000185: 
014091,000186: 15,2221           00024        FIXLIST            ADRES    TIME2                                 #  FIXED-FORMAT PORTION INCLUDES BUFFER,
014092,000187: 15,2222           00321                           ADRES    DSPTAB     +10D                       #  DSPTAB, AND TIME.
014093,000188: 15,2223           00317                           ADRES    DSPTAB     +8D                        
014094,000189: 15,2224           00315                           ADRES    DSPTAB     +6                         
014095,000190: 15,2225           00313                           ADRES    DSPTAB     +4                         
014096,000191: 15,2226           00311                           ADRES    DSPTAB     +2                         
014097,000192: 15,2227           00307                           ADRES    DSPTAB                                
014098,000193: 
014099,000194: 15,2230           01427        FIXLISTB           ADRES    DNTMBUFF   +20D                       
014100,000195: 15,2231           01425                           ADRES    DNTMBUFF   +18D                       
014101,000196: 15,2232           01423                           ADRES    DNTMBUFF   +16D                       
014102,000197: 15,2233           01421                           ADRES    DNTMBUFF   +14D                       
014103,000198: 15,2234           01417                           ADRES    DNTMBUFF   +12D                       
014104,000199: 15,2235           01415                           ADRES    DNTMBUFF   +10D                       
014105,000200: 15,2236           01413                           ADRES    DNTMBUFF   +8D                        
014106,000201: 15,2237           01411                           ADRES    DNTMBUFF   +6D                        
014107,000202: 15,2240           01407                           ADRES    DNTMBUFF   +4D                        
014108,000203: 15,2241           01405                           ADRES    DNTMBUFF   +2D                        
014109,000204: 15,2242           01403                           ADRES    DNTMBUFF                              
014110,000205: 
014111,000206: 15,2243           00032        FIXLSTCA           OCT      32                                    #  CHANNEL ADDRESSES.
014112,000207: 15,2244           00030                           OCT      30                                    
014113,000208: 15,2245           00013                           OCT      13                                    
014114,000209: 15,2246           00011                           OCT      11                                    
014115,000210: 
014116,000211: 15,2247           00033        FIXLSTCL           OCT      33                                    
014117,000212: 15,2250           00031                           OCT      31                                    
014118,000213: 15,2251           00014                           OCT      14                                    
014119,000214: 15,2252           00012                           OCT      12                                    
014120,000215:                                                                                                  #        SPECIAL DATA LIST FOR HIGH SPEED RADAR SAMPLING. TELEMETERS TABLE OF 12 MEASUREMENTS OF 5 WORDS EACH -
014121,000216:                                                                                                  #  DATA IN WORDS 1 & 2, RR CDU ANGLES IN 3 & 4, AND TIME 1 IN 5.
014122,000217: 15,2253           00342        FSTRADTM           ECADR    UPLOCK                                
014123,000218: 15,2254           03436                           ECADR    RFAILCNT                              #  COUNTS BAD SAMPLES.
014124,000219: 15,2255           03545                           ECADR    RSTACK     +70D                       
014125,000220: 15,2256           03543                           ECADR    RSTACK     +68D                       
014126,000221: 15,2257           03541                           ECADR    RSTACK     +66D                       
014127,000222: 15,2260           03537                           ECADR    RSTACK     +64D                       
014128,000223: 15,2261           03535                           ECADR    RSTACK     +62D                       
014129,000224: 15,2262           03533                           ECADR    RSTACK     +60D                       
014130,000225: 15,2263           03531                           ECADR    RSTACK     +58D                       
014131,000226: 15,2264           03527                           ECADR    RSTACK     +56D                       
014132,000227: 15,2265           03525                           ECADR    RSTACK     +54D                       
014133,000228: 15,2266           03523                           ECADR    RSTACK     +52D                       
014134,000229: 15,2267           03521                           ECADR    RSTACK     +50D                       
014135,000230: 15,2270           03517                           ECADR    RSTACK     +48D                       
014136,000231: 15,2271           03515                           ECADR    RSTACK     +46D                       
014137,000232: 15,2272           03513                           ECADR    RSTACK     +44D                       
014138,000233: 15,2273           03511                           ECADR    RSTACK     +42D                       
014139,000234: 15,2274           03507                           ECADR    RSTACK     +40D                       
014140,000235: 15,2275           03505                           ECADR    RSTACK     +38D                       
014141,000236: 15,2276           03503                           ECADR    RSTACK     +36D                       
014142,000237: 15,2277           03501                           ECADR    RSTACK     +34D                       
014143,000238: 15,2300           03477                           ECADR    RSTACK     +32D                       
014144,000239: 15,2301           03475                           ECADR    RSTACK     +30D                       
014145,000240: 15,2302           03473                           ECADR    RSTACK     +28D                       
014146,000241: 15,2303           03471                           ECADR    RSTACK     +26D                       
014147,000242: 15,2304           03467                           ECADR    RSTACK     +24D                       
014148,000243: 15,2305           01465                           ADRES    RSTACK     +22D                       
014149,000244: 15,2306           01463                           ADRES    RSTACK     +20D                       
014150,000245: 15,2307           01461                           ADRES    RSTACK     +18D                       
014151,000246: 15,2310           01457                           ADRES    RSTACK     +16D                       
014152,000247: 15,2311           01455                           ADRES    RSTACK     +14D                       
014153,000248: 15,2312           01453                           ADRES    RSTACK     +12D                       
014154,000249: 15,2313           01451                           ADRES    RSTACK     +10D                       
014155,000250: 15,2314           01447                           ADRES    RSTACK     +8D                        
014156,000251: 15,2315           01445                           ADRES    RSTACK     +6                         
014157,000252: 15,2316           01443                           ADRES    RSTACK     +4                         
014158,000253: 15,2317           01441                           ADRES    RSTACK     +2                         
014159,000254: 15,2320           01437                           ADRES    RSTACK                                
014160,000255:                                                                                                  #        NOMINAL AURORA DOWNLIST.
014161,000256: 15,2321           00342        NOMDNLST           ECADR    UPLOCK                                
014162,000257: 15,2322           02634                           ECADR    DATAPL     +6                         
014163,000258: 15,2323           02632                           ECADR    DATAPL     +4                         
014164,000259: 15,2324           02630                           ECADR    DATAPL     +2                         
014165,000260: 15,2325           02626                           ECADR    DATAPL                                
014166,000261: 15,2326           02650                           ECADR    VLAUN      +4                         
014167,000262: 15,2327           02644                           ECADR    VLAUN                                 
014168,000263: 15,2330           02634                           ECADR    ANGX                                  
014169,000264: 15,2331           02632                           ECADR    ANGY                                  
014170,000265: 15,2332           02626                           ECADR    ANGZ                                  
014171,000266: 15,2333           02624                           ECADR    INTY                                  
014172,000267: 15,2334           02576                           ECADR    DRIFTT                                
014173,000268: 15,2335           02640                           ECADR    DRIFTI                                
014174,000269: 15,2336           02636                           ECADR    DRIFTO                                
014175,000270: 15,2337           00374                           ECADR    MARKSTAT                              
014176,000271: 15,2340           00402                           ECADR    THETAD     +2                         
014177,000272: 15,2341           00400                           ECADR    THETAD                                
014178,000273: 15,2342           00423                           ECADR    TANG                                  
014179,000274: 15,2343           00362                           ECADR    LASTYCMD                              
014180,000275: 15,2344           00366                           ECADR    LMPCMD                                
014181,000276: 15,2345           01362                           ECADR    REDOCTR                               #  INCLUDES FAILREG.
014182,000277: 15,2346           00063                           ECADR    STATE      +2                         
014183,000278: 15,2347           00061                           ECADR    STATE                                 
014184,000279: 15,2350           00035                           ECADR    OPTY                                  
014185,000280: 15,2351           00034                           ECADR    CDUZ                                  
014186,000281: 15,2352           00032                           ECADR    CDUX                                  
014187,000282: 15,2353           00360                           ADRES    FORVEL                                
014188,000283: 15,2354           00355                           ADRES    FINALT                                
014189,000284: 15,2355           00364                           ADRES    ALTSAVE                               
014190,000285: 15,2356           00354                           ADRES    ALTRATE                               
014191,000286: 15,2357           00352                           ADRES    ALT                                   
014192,000287: 15,2360           00421                           ADRES    TIMEHOLD                              
014193,000288: 15,2361           00417                           ADRES    OPTYHOLD                              
014194,000289: 15,2362           00415                           ADRES    SAMPLSUM                              
014195,000290: 15,2363           00427                           ADRES    OLDATAGD                              
014196,000291: 15,2364           00413                           ADRES    RADMODES                              
014197,000292: 15,2365           00041                           ADRES    PIPAZ                                 
014198,000293: 15,2366           00037                           ADRES    PIPAX                                 
014199,000294: 15,2367                        ENDDNTMS           EQUALS                                         

End of include-file DOWN-TELEMETRY_PROGRAM.agc.  Parent file is MAIN.agc