Source Code
![]() |
YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS BY MSTEWART JUN. 28,2017This 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