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