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. |
015943,000002: ## Copyright: Public domain.
015944,000003: ## Filename: AGC_BLK2_INSTRUCTION_CHECK.agc
015945,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
015946,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
015947,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
015948,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
015949,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
015950,000009: ## Validation.
015951,000010: ## Assembler: yaYUL
015952,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
015953,000012: ## Website: www.ibiblio.org/apollo/index.html
015954,000013: ## Mod history: 2016-12-20 MAS Imported from Retread 44 into banks 22 and 23. Tweaked
015955,000014: ## to share memory with Aurora's SELF-CHECK in the process.
015956,000015: ## Some labels also had an "R" attached to denote the Retread
015957,000016: ## version of tests that had the same name in Aurora.
015958,000017:
015959,000018:
015960,000019: 01,3415 E3,1400 EBANK= LST1
015961,000020:
015962,000021: 5577 SETLOC ENDSELFF
015963,000022: # Constants for retread instruction check. Some are shared between both banks.
015964,000023:
015965,000024: # ADDRESSES OF ERASABLE REGISTERS
015966,000025: 5577 01372 ADRS2 ADRES SKEEP2
015967,000026: 5600 01373 ADRS3 ADRES SKEEP3
015968,000027: 5601 02406 ADRS4 ADRES SELF1
015969,000028: 5602 02414 ADRS5 ADRES SELF2
015970,000029: 5603 05516 ADRS6 ADRES S+MAX
015971,000030: 5604 02470 ADRS7 ADRES SELF3
015972,000031:
015973,000032: # CONSTANTS USED THROUGHOUT THE INSTRUCTIONS CHECK
015974,000033:
015975,000034: 5605 00077 S6BITS OCTAL 00077
015976,000035: 5606 00177 S7BITS OCTAL 00177
015977,000036: 5607 25252 SODD OCTAL 25252 # SEVEN ONE BITS
015978,000037: 5610 40400 ALARMCON OCTAL 40400
015979,000038: 5611 52500 SINOUT1 OCTAL 52500
015980,000039: 5612 52525 SEVENS OCTAL 52525 # EIGHT ONE BITS
015981,000040: 5613 52552 SINOUT2 OCTAL 52552
015982,000041: 5614 57761 CYRCON OCTAL 57761
015983,000042: 5615 77725 SINOUT3 OCTAL 77725
015984,000043: 5616 77760 S-15 OCTAL 77760
015985,000044: 5617 77761 S-14 OCTAL 77761
015986,000045: 5620 77771 S-6 OCTAL 77771
015987,000046: 5621 77772 S-5 OCTAL 77772
015988,000047:
015989,000048: # NEXT TWO CONSTANTS ARE USED IN THE DEVIDE SUBROUTINE
015990,000049: 5622 14000 DV1CON OCTAL 14000
015991,000050: 5623 37776 DV2CON OCTAL 37776
015992,000051:
015993,000052: # NEXT TWO CONSTANTS ARE ADDRESSESS USED BY EXTRACODE INDEX INSTRUCTIONS
015994,000053: 5624 05504 ADRS+1R ADRES S+1
015995,000054: 5625 05622 ADRSDV1 ADRES DV1CON
015996,000055:
015997,000056: 5626 ENDRTRDF EQUALS
015998,000057:
015999,000058: 22,2000 BANK 22
016000,000059:
016001,000060: # NORMAL USE OF TC AND TCF
016002,000061: 22,2000 02002 TCCHK TC +2
016003,000062: 22,2001 02006 TC RCCSCHK
016004,000063: 22,2002 12004 TCF +2
016005,000064: 22,2003 05546 TC ERRORS
016006,000065: 22,2004 00002 TC Q
016007,000066: 22,2005 05546 TC ERRORS
016008,000067:
016009,000068: # NORMAL USE OF CA, CS, AND CCS
016010,000069: 22,2006 37702 RCCSCHK CA S-3
016011,000070: 22,2007 55371 TS SKEEP1
016012,000071: 22,2010 11371 CCS SKEEP1
016013,000072: 22,2011 05546 TC ERRORS
016014,000073: 22,2012 05546 TC ERRORS
016015,000074: 22,2013 02015 TC +2
016016,000075: 22,2014 05546 TC ERRORS
016017,000076: 22,2015 10000 CCS A # C(A) =+2, RESULT OF CCS -NUMBER
016018,000077: 22,2016 02022 TC +4
016019,000078: 22,2017 05546 TC ERRORS
016020,000079: 22,2020 05546 TC ERRORS
016021,000080: 22,2021 05546 TC ERRORS
016022,000081: 22,2022 10000 CCS A # C(A) = +1, RESULT OF CCS + NUMBER
016023,000082: 22,2023 02027 TC +4
016024,000083: 22,2024 05546 TC ERRORS
016025,000084: 22,2025 05546 TC ERRORS
016026,000085: 22,2026 05546 TC ERRORS
016027,000086: 22,2027 10000 CCS A # C(A) = +0, RESULT OF CCS + NUMBER
016028,000087: 22,2030 05546 TC ERRORS
016029,000088: 22,2031 02034 TC +3
016030,000089: 22,2032 05546 TC ERRORS
016031,000090: 22,2033 05546 TC ERRORS
016032,000091: 22,2034 40000 CS A
016033,000092: 22,2035 10000 CCS A # C(A) = -0, RESULT OF CCS +0
016034,000093: 22,2036 05546 TC ERRORS
016035,000094: 22,2037 05546 TC ERRORS
016036,000095: 22,2040 05546 TC ERRORS
016037,000096: 22,2041 10000 CCS A # RESULT OF CCS -0
016038,000097: 22,2042 05546 TC ERRORS
016039,000098: 22,2043 02046 TC +3
016040,000099: 22,2044 05546 TC ERRORS
016041,000100: 22,2045 05546 TC ERRORS
016042,000101:
016043,000102: # NORMAL USE OF MASK
016044,000103: 22,2046 47676 MSKCHK CS S-ZERO
016045,000104: 22,2047 77676 MASK S-ZERO # 00000, 77777
016046,000105: 22,2050 05562 TC -0CHK -1
016047,000106: 22,2051 47675 CS S+ZERO
016048,000107: 22,2052 77675 MASK S+ZERO # 77777, 00000
016049,000108: 22,2053 05562 TC -0CHK -1
016050,000109: 22,2054 37675 CA S+ZERO
016051,000110: 22,2055 77675 MASK S+ZERO # 00000, 00000
016052,000111: 22,2056 05562 TC -0CHK -1
016053,000112: 22,2057 37676 CA S-ZERO
016054,000113: 22,2060 77676 MASK S-ZERO # 77777, 77777
016055,000114: 22,2061 05563 TC -0CHK
016056,000115: # NO EDIT FEATURE OF MASK IS CHECKED
016057,000116: # BITS 9-14 OF WRITE LINES GO TO BITS 1-7 OF EDOP
016058,000117: 22,2062 37676 CA S-ZERO # 77777
016059,000118: 22,2063 54023 TS EDOP # 00177
016060,000119: 22,2064 70023 MASK EDOP # 00177
016061,000120: 22,2065 55371 TS SKEEP1 # 00177
016062,000121: 22,2066 70023 MASK EDOP # 00177
016063,000122: 22,2067 40000 CS A # 77600
016064,000123: 22,2070 61371 AD SKEEP1 # 77777
016065,000124: 22,2071 05563 TC -0CHK
016066,000125: # CHECK MASK OF AN SC REGISTER
016067,000126: 22,2072 35504 CA S+1
016068,000127: 22,2073 54001 TS L
016069,000128: 22,2074 37676 CA S-ZERO
016070,000129: 22,2075 70001 MASK L
016071,000130: 22,2076 05570 TC -1CHK -1
016072,000131:
016073,000132: # NORMAL USE OF XCH, AD, AND TS
016074,000133: 22,2077 35516 CA S+MAX # 37777
016075,000134: 22,2100 55371 TS SKEEP1
016076,000135: 22,2101 61371 AD SKEEP1 # 01 - 37776
016077,000136: 22,2102 55372 TS SKEEP2 # 37776
016078,000137: 22,2103 05546 TC ERRORS
016079,000138: 22,2104 05570 TC -1CHK -1
016080,000139: 22,2105 57371 XCH SKEEP1 # SSKEEP1 NOW +0
016081,000140: 22,2106 40000 CS A # 40000
016082,000141: 22,2107 60000 AD A # 10 - 00001
016083,000142: 22,2110 55373 TS SKEEP3 # 40001, C(A) = -1
016084,000143: 22,2111 05546 TC ERRORS
016085,000144: 22,2112 61373 AD SKEEP3 # C(A) = 40000
016086,000145: 22,2113 61372 AD SKEEP2 # C(A) = -1
016087,000146: 22,2114 61371 AD SKEEP1 # C(A) = -1
016088,000147: 22,2115 55374 TS SKEEP4 # -1
016089,000148: 22,2116 41374 CS SKEEP4 # +1
016090,000149: 22,2117 05570 TC -1CHK -1
016091,000150:
016092,000151: # NORMAL USE OF INCR
016093,000152: # NOT CHECKING COUNTER INTERRUPT
016094,000153: 22,2120 35516 CA S+MAX # 37777
016095,000154: 22,2121 55371 TS SKEEP1
016096,000155: 22,2122 25371 INCR SKEEP1 # +0
016097,000156: 22,2123 25371 INCR SKEEP1 # +1
016098,000157: 22,2124 25371 INCR SKEEP1 # +2
016099,000158: 22,2125 65517 AD S-MAX
016100,000159: 22,2126 05563 TC -0CHK # CHECK C(A) HAS NOT CHANGED
016101,000160: 22,2127 41371 CS SKEEP1
016102,000161: 22,2130 55371 TS SKEEP1 # -2
016103,000162: 22,2131 25371 INCR SKEEP1 # -1
016104,000163: 22,2132 31371 CA SKEEP1
016105,000164: 22,2133 05571 TC -1CHK
016106,000165: # CHECK INCREMENT OF AN SC REGISTER
016107,000166: 22,2134 37700 CA S-2
016108,000167: 22,2135 54001 TS L
016109,000168: 22,2136 24001 INCR L
016110,000169: 22,2137 30001 CA L
016111,000170: 22,2140 05571 TC -1CHK
016112,000171:
016113,000172: # NORMAL USE OF ADS
016114,000173: 22,2141 37655 CA SBIT13
016115,000174: 22,2142 55371 TS SKEEP1 # 10000
016116,000175: 22,2143 27371 ADS SKEEP1 # 20000
016117,000176: 22,2144 27371 ADS SKEEP1 # OV WITH +0
016118,000177: 22,2145 55372 TS SKEEP2
016119,000178: 22,2146 05546 TC ERRORS
016120,000179: 22,2147 41371 CS SKEEP1
016121,000180: 22,2150 05563 TC -0CHK
016122,000181: # CHECKS ADS OF AN SC REGISTER
016123,000182: 22,2151 35520 CA S13BITS # 17777
016124,000183: 22,2152 54001 TS L
016125,000184: 22,2153 65504 AD S+1 # C(A) = 20000
016126,000185: 22,2154 26001 ADS L
016127,000186: 22,2155 65517 AD S-MAX
016128,000187: 22,2156 05563 TC -0CHK
016129,000188: 22,2157 40001 CS L
016130,000189: 22,2160 65516 AD S+MAX
016131,000190: 22,2161 05563 TC -0CHK
016132,000191:
016133,000192: # NORMAL USE OF LXCH
016134,000193: 22,2162 35504 CA S+1
016135,000194: 22,2163 55371 TS SKEEP1 # +1
016136,000195: 22,2164 23371 LXCH SKEEP1 # +1 IN L
016137,000196: 22,2165 40000 CS A
016138,000197: 22,2166 55372 TS SKEEP2 # -1 IN SKEEP2
016139,000198: 22,2167 23372 LXCH SKEEP2 # L = -1, SKEEP2 = +1
016140,000199: 22,2170 41372 CS SKEEP2
016141,000200: 22,2171 05571 TC -1CHK
016142,000201: 22,2172 30001 CA L
016143,000202: 22,2173 05571 TC -1CHK
016144,000203:
016145,000204: # UNDERFLOW AND OVERFLOW IS LOST IN L REGISTER
016146,000205: 22,2174 35516 CA S+MAX
016147,000206: 22,2175 60000 AD A
016148,000207: 22,2176 54001 TS L # OV WITH 37776
016149,000208: 22,2177 05546 TC ERRORS
016150,000209: 22,2200 45516 CS S+MAX
016151,000210: 22,2201 60000 AD A # UV WITH 40001
016152,000211: 22,2202 22000 LXCH A # C(A) = 37776, C(L) = 40001
016153,000212: 22,2203 55371 TS SKEEP1 # 37776
016154,000213: 22,2204 02206 TC +2
016155,000214: 22,2205 05546 TC ERRORS
016156,000215: 22,2206 30001 CA L
016157,000216: 22,2207 55372 TS SKEEP2 # 40001
016158,000217: 22,2210 02212 TC +2
016159,000218: 22,2211 05546 TC ERRORS
016160,000219: 22,2212 61371 AD SKEEP1 # -0
016161,000220: 22,2213 05563 TC -0CHK
016162,000221:
016163,000222: # NORMAL USE OF DXCH
016164,000223: 22,2214 35516 CA S+MAX
016165,000224: 22,2215 55372 TS SKEEP2 # 37777, K+1
016166,000225: 22,2216 40000 CS A
016167,000226: 22,2217 54001 TS L # 40000
016168,000227: 22,2220 65504 AD S+1
016169,000228: 22,2221 55371 TS SKEEP1 # 40001, K
016170,000229: 22,2222 40000 CS A # 37776
016171,000230: 22,2223 53372 DXCH SKEEP1
016172,000231: # A = 40001, L = 37777 ....... SKEEP1 = 37776, SKEEP2 = 40000
016173,000232: 22,2224 60001 AD L
016174,000233: 22,2225 05570 TC -1CHK -1
016175,000234: 22,2226 31371 CA SKEEP1
016176,000235: 22,2227 61372 AD SKEEP2
016177,000236: 22,2230 05571 TC -1CHK
016178,000237:
016179,000238: # NORMAL USE OF DAS (6 CHECKS)
016180,000239: # IF ADDRESS OF K DOES NOT = ZERO, C(L) = +0 AND C(A) = NET OVERFLOW
016181,000240: # C(A) = +0 IF NO OVERFLOW OR UNDERFLOW
016182,000241: # DAD++ WITH NO OVERFLOW
016183,000242: 22,2231 35520 RDAS++ CAF S13BITS
016184,000243: 22,2232 55371 TS SKEEP1 # 17777
016185,000244: 22,2233 55372 TS SKEEP2 # 17777
016186,000245: 22,2234 54001 TS L # 17777
016187,000246: 22,2235 65504 AD S+1 # 20000
016188,000247: 22,2236 21372 DAS SKEEP1
016189,000248: # C(SKEEP1) = 37777, C(SKEEP2) = 377776
016190,000249: 22,2237 05562 TC -0CHK -1
016191,000250: 22,2240 56001 XCH L
016192,000251: 22,2241 05562 TC -0CHK -1
016193,000252: 22,2242 41371 CS SKEEP1
016194,000253: 22,2243 61372 AD SKEEP2
016195,000254: 22,2244 05571 TC -1CHK
016196,000255: # DAS++ WITH OVERFLOW
016197,000256: 22,2245 35516 DAS++OV CA S+MAX
016198,000257: 22,2246 55371 TS SKEEP1 # 37777
016199,000258: 22,2247 55372 TS SKEEP2 # 37777
016200,000259: 22,2250 54001 TS L # 37777
016201,000260: 22,2251 35504 CA S+1 # +1
016202,000261: 22,2252 21372 DAS SKEEP1
016203,000262: # C(SKEEP1) = +1, C(SKEEP2) = 37776, C(A) = +1,
016204,000263: 22,2253 05570 TC -1CHK -1
016205,000264: 22,2254 56001 XCH L
016206,000265: 22,2255 05562 TC -0CHK -1
016207,000266: 22,2256 41371 CS SKEEP1
016208,000267: 22,2257 05571 TC -1CHK
016209,000268: 22,2260 35517 CA S-MAX
016210,000269: 22,2261 61372 AD SKEEP2
016211,000270: 22,2262 05571 TC -1CHK
016212,000271: # DAS MIXED SIGNS
016213,000272: 22,2263 35516 DAS+--+ CA S+MAX
016214,000273: 22,2264 55371 TS SKEEP1 # 37777
016215,000274: 22,2265 40000 CS A
016216,000275: 22,2266 55372 TS SKEEP2 # 40000
016217,000276: 22,2267 40000 CS A
016218,000277: 22,2270 67677 AD S-1
016219,000278: 22,2271 54001 TS L # 37776
016220,000279: 22,2272 40000 CS A # 40001
016221,000280: 22,2273 21372 DAS SKEEP1
016222,000281: # C(SKEEP1) = +1, C(SKEEP2) = -1
016223,000282: 22,2274 05562 TC -0CHK -1
016224,000283: 22,2275 56001 XCH L
016225,000284: 22,2276 05562 TC -0CHK -1
016226,000285: 22,2277 31371 CA SKEEP1
016227,000286: 22,2300 05570 TC -1CHK -1
016228,000287: 22,2301 31372 CA SKEEP2
016229,000288: 22,2302 05571 TC -1CHK
016230,000289: # DAS-- WITH NO UNDERFLOW
016231,000290: 22,2303 45520 DAS-- CS S13BITS
016232,000291: 22,2304 55371 TS SKEEP1 # 60000
016233,000292: 22,2305 55372 TS SKEEP2 # 60000
016234,000293: 22,2306 54001 TS L # 60000
016235,000294: 22,2307 67677 AD S-1 # 57777
016236,000295: 22,2310 21372 DAS SKEEP1
016237,000296: # C(SKEEP1) = 40000, C(SKEEP2) = 40001
016238,000297: 22,2311 05562 TC -0CHK -1
016239,000298: 22,2312 56001 XCH L
016240,000299: 22,2313 05562 TC -0CHK -1
016241,000300: 22,2314 41372 CS SKEEP2
016242,000301: 22,2315 61371 AD SKEEP1
016243,000302: 22,2316 05571 TC -1CHK
016244,000303: # DAS-- WITH UNDERFLOW
016245,000304: 22,2317 35517 DAS--UV CA S-MAX
016246,000305: 22,2320 55371 TS SKEEP1 # 40000
016247,000306: 22,2321 55372 TS SKEEP2 # 40000
016248,000307: 22,2322 54001 TS L # 40000
016249,000308: 22,2323 37677 CA S-1 # -1
016250,000309: 22,2324 21372 DAS SKEEP1
016251,000310: # C:SKEEP1) = -1, C(SKEEP2) = 40001, C(A) = -1
016252,000311: 22,2325 05571 TC -1CHK
016253,000312: 22,2326 56001 XCH L
016254,000313: 22,2327 05562 TC -0CHK -1
016255,000314: 22,2330 31371 CA SKEEP1
016256,000315: 22,2331 05571 TC -1CHK
016257,000316: 22,2332 35516 CA S+MAX
016258,000317: 22,2333 61372 AD SKEEP2
016259,000318: 22,2334 05570 TC -1CHK -1
016260,000319: # DAS A. DOUBLES THE CONTENTS OF THE A REGISTER AND THE L REGISTER.
016261,000320: 22,2335 35517 CA S-MAX
016262,000321: 22,2336 55372 TS SKEEP2 # 40000
016263,000322: 22,2337 54001 TS L # 40000
016264,000323: 22,2340 40000 CS A
016265,000324: 22,2341 55371 TS SKEEP1 # 37777
016266,000325: 22,2342 20001 DAS A
016267,000326: # C(A) = OV 37775, C(L) = 40001
016268,000327: 22,2343 55373 TS SKEEP3
016269,000328: 22,2344 05546 TC ERRORS
016270,000329: 22,2345 30001 CA L
016271,000330: 22,2346 61373 AD SKEEP3
016272,000331: 22,2347 05571 TC -1CHK
016273,000332:
016274,000333: # NORMAL USE OF INDEX WITHOUT EXTRACODE.
016275,000334: # INSTRUCTIONS CHECKED WITH INDEX UP TO FIRST SPACE SKIPPED
016276,000335: # ARE CA, TS, XCH, CCS, AD, TC, TCF, TS WITH OVERFLOW, AND MASK
016277,000336: # FIRST INITIALIZE ERASABLE REGISTERS USED FOR INDEX INSTRUCTION
016278,000337: 22,2350 37675 CA S+ZERO
016279,000338: 22,2351 55114 TS NDX+0
016280,000339: 22,2352 35603 CA ADRS6 # ADDRESS OF S+MAX
016281,000340: 22,2353 55115 TS NDX+MAX
016282,000341: 22,2354 35527 CA ADRS1
016283,000342: 22,2355 55116 TS NDXKEEP1
016284,000343: 22,2356 35577 CA ADRS2
016285,000344: 22,2357 55117 TS NDXKEEP2
016286,000345: 22,2360 35600 CA ADRS3
016287,000346: 22,2361 55120 TS NDXKEEP3
016288,000347: 22,2362 35601 CA ADRS4
016289,000348: 22,2363 55121 TS NDXSELF1
016290,000349: 22,2364 35602 CA ADRS5
016291,000350: 22,2365 55122 TS NDXSELF2
016292,000351: 22,2366 51115 NDXCHK NDX NDX+MAX # CA S+MAX
016293,000352: 22,2367 30000 CA 0000 # A = 37777
016294,000353: 22,2370 51116 NDX NDXKEEP1 # TS SKEEP1
016295,000354: 22,2371 54000 TS 0000 # TS WITH NO OV, UV
016296,000355: 22,2372 51114 NDX NDX+0 # CS A
016297,000356: 22,2373 40000 CS 0000 # A = 40000
016298,000357: 22,2374 51116 NDX NDXKEEP1 # XCH SKEEP1
016299,000358: 22,2375 56000 XCH 0000 # A = +MAX, SKEEP1 = - MAX
016300,000359: 22,2376 51114 NDX NDX+0 # CCS A
016301,000360: 22,2377 10000 CCS 0000 # A = 37776
016302,000361: 22,2400 02404 TC +4
016303,000362: 22,2401 05546 TC ERRORS
016304,000363: 22,2402 05546 TC ERRORS
016305,000364: 22,2403 05546 TC ERRORS
016306,000365: 22,2404 51116 NDX NDXKEEP1 # AD SKEEP1
016307,000366: 22,2405 60000 AD 0000 # A = -1
016308,000367: 22,2406 51121 SELF1 NDX NDXSELF1 # TC +2
016309,000368: 22,2407 00003 TC 0003
016310,000369: 22,2410 05546 TC ERRORS # DID NOT PERFORM A TC
016311,000370: 22,2411 51121 NDX NDXSELF1 # TC +2
016312,000371: 22,2412 00006 TC 0006
016313,000372: 22,2413 02420 TC CNTINU # CHECK C(Q)
016314,000373: 22,2414 51122 SELF2 NDX NDXSELF2 # TCF +2
016315,000374: 22,2415 10003 TCF 003
016316,000375: 22,2416 05546 TC ERRORS
016317,000376: 22,2417 00002 TC Q # SHOULD GO TO SELF1 +2
016318,000377: 22,2420 05571 CNTINU TC -1CHK
016319,000378: 22,2421 35516 CA S+MAX
016320,000379: 22,2422 65504 AD S+1
016321,000380: 22,2423 51116 NDX NDXKEEP1 # TS SKEEP1 WITH OV
016322,000381: 22,2424 54000 TS 0000 # A = +1, SKEEP1 = +0
016323,000382: 22,2425 05546 TC ERRORS
016324,000383: 22,2426 61371 AD SKEEP1 # A = +1
016325,000384: 22,2427 51115 NDX NDX+MAX # MASK S+MAX
016326,000385: 22,2430 70000 MASK 0000 # A = +1
016327,000386: 22,2431 05570 TC -1CHK -1
016328,000387:
016329,000388: # INDEX USED WITH ADS, NDX, AND INCR
016330,000389: 22,2432 35520 CA S13BITS
016331,000390: 22,2433 55371 TS SKEEP1
016332,000391: 22,2434 51114 NDX NDX+0 # INDEX +0
016333,000392: 22,2435 51116 NDX NDXKEEP1 # ADS SKEEP1
016334,000393: 22,2436 26000 ADS 0000 # C(A) AND C(SKEEP1) = 377776
016335,000394: 22,2437 51116 NDX NDXKEEP1 # INCR SKEEP1
016336,000395: 22,2440 24000 INCR 0000 # C(SKEEP1) = 37777
016337,000396: 22,2441 40000 CS A # 40001
016338,000397: 22,2442 61371 AD SKEEP1 # A = +1
016339,000398: 22,2443 05570 TC -1CHK -1
016340,000399: # INDEX USED WITH LXCH, DAS, AND DXCH
016341,000400: 22,2444 35517 CA S-MAX
016342,000401: 22,2445 55372 TS SKEEP2 # SKEEP2 HOLDS 40000, SKEEP1 HOLDS 37777
016343,000402: 22,2446 35504 CA S+1
016344,000403: 22,2447 55373 TS SKEEP3 # +1
016345,000404: 22,2450 51120 NDX NDXKEEP3 # LXCH SKEEP3
016346,000405: 22,2451 22000 LXCH 0000 # C(L) = +1
016347,000406: 22,2452 37700 CA S-2
016348,000407: 22,2453 51116 NDX NDXKEEP1 # DAS SKEEP1
016349,000408: 22,2454 20001 DAS 0000
016350,000409: # BEFORE DAS, K = 37777 K+1 = 40000
016351,000410: # A = -1 L = +1
016352,000411: # AFTER DAS, K = 37775 K+1 = 40001
016353,000412: # A = +0 L = +0
016354,000413: 22,2455 51116 NDX NDXKEEP1 # DXCH SKEEP1
016355,000414: 22,2456 52001 DXCH 0000
016356,000415: 22,2457 60001 AD L
016357,000416: 22,2460 05571 TC -1CHK
016358,000417: 22,2461 41371 CS SKEEP1
016359,000418: 22,2462 05563 TC -0CHK
016360,000419: 22,2463 31372 CA SKEEP2
016361,000420: 22,2464 05562 TC -0CHK -1
016362,000421: # INDEX INSTRUCTION USED WITH OVERFLOW
016363,000422: 22,2465 35604 CA ADRS7 # ADDRESS OF SELF3
016364,000423: 22,2466 67654 AD SBIT14
016365,000424: 22,2467 55377 TS SKEEP7
016366,000425: 22,2470 51377 SELF3 NDX SKEEP7
016367,000426: 22,2471 20003 2 0002
016368,000427: 22,2472 05546 TC ERRORS
016369,000428: # CHECK INDEX OF AN SC REGISTER
016370,000429: 22,2473 35527 CA ADRS1 # 01371, ADDRESS OF SKEEP1
016371,000430: 22,2474 50000 NDX A
016372,000431: 22,2475 54000 TS 0000 # PUT 01371 IN SKEEP1
016373,000432: 22,2476 40000 CS A
016374,000433: 22,2477 61371 AD SKEEP1
016375,000434: 22,2500 05563 TC -0CHK
016376,000435:
016377,000436: # START CHECKING EXTRACODE INSTRUCTIONS
016378,000437: # NORMAL USE OF DCA, DCS, AND SU
016379,000438: 22,2501 00006 STRTXTRA EXTEND
016380,000439: 22,2502 35505 DCA SBIT1
016381,000440: # C(A) = +1, C(L) = +2
016382,000441: 22,2503 55372 TS SKEEP2 # +1
016383,000442: 22,2504 56001 XCH L
016384,000443: 22,2505 55371 TS SKEEP1 # +2
016385,000444: 22,2506 00006 EXTEND
016386,000445: 22,2507 61372 SU SKEEP2 # C(SKEEP2) = +1
016387,000446: 22,2510 05570 TC -1CHK -1
016388,000447: 22,2511 00006 EXTEND
016389,000448: 22,2512 41372 DCS SKEEP1
016390,000449: # C(A) = -2, C(L) = -1
016391,000450: 22,2513 00006 EXTEND
016392,000451: 22,2514 60001 SU L
016393,000452: 22,2515 05571 TC -1CHK
016394,000453: # COMPLEMENTING OF THE DOUBLE PRECISION ACCUMULATOR
016395,000454: 22,2516 35516 CA S+MAX
016396,000455: 22,2517 54001 TS L # 37777
016397,000456: 22,2520 60000 AD A # OV37776
016398,000457: 22,2521 00006 EXTEND
016399,000458: 22,2522 40001 DCS A
016400,000459: 22,2523 55371 TS SKEEP1
016401,000460: 22,2524 05546 TC ERRORS
016402,000461: 22,2525 31371 CA SKEEP1
016403,000462: 22,2526 00006 EXTEND
016404,000463: 22,2527 60001 SU L
016405,000464: 22,2530 05570 TC -1CHK -1
016406,000465:
016407,000466: # CHECKS DCA OF AN SC REGISTER
016408,000467: 22,2531 37700 CA S-2 # -2
016409,000468: 22,2532 54002 TS Q
016410,000469: 22,2533 35504 CA S+1
016411,000470: 22,2534 54001 TS L # +1
016412,000471: 22,2535 37662 CA SBIT8
016413,000472: 22,2536 00006 EXTEND
016414,000473: 22,2537 30002 DCA L
016415,000474: 22,2540 40000 CS A # +2
016416,000475: 22,2541 60001 AD L # -0
016417,000476: 22,2542 05563 TC -0CHK
016418,000477:
016419,000478: # NORMAL USE OF QXCH
016420,000479: 22,2543 32553 CA QXCHCON1
016421,000480: 22,2544 55371 TS SKEEP1 # STORE ADDRESS OF AUGCHK IN SKEEP1
016422,000481: 22,2545 02547 TC +2 # Q NOW HOLDS ADDRESS OF QNMBR
016423,000482: 22,2546 05546 QNMBR TC ERRORS
016424,000483: 22,2547 00006 EXTEND
016425,000484: 22,2550 23371 QXCH SKEEP1 # Q NOW HOLDS ADDRESS OF AUGCHK
016426,000485: 22,2551 00002 TC Q # SHOULD GO TO QXCHCON2 +1, NOT QNMBR
016427,000486: 22,2552 05546 TC ERRORS
016428,000487: 22,2553 02555 QXCHCON1 ADRES QXCHCON2 +1
016429,000488: 22,2554 02546 QXCHCON2 ADRES QNMBR
016430,000489: 22,2555 41371 CS SKEEP1 # CHECK THAT SKEEP HOLDS B(Q)
016431,000490: 22,2556 62554 AD QXCHCON2
016432,000491: 22,2557 05563 TC -0CHK
016433,000492: # CHECKS QXCH OF AN SC REGISTER
016434,000493: 22,2560 37675 CA S+ZERO
016435,000494: 22,2561 02563 TC +2
016436,000495: 22,2562 12567 TCF +5
016437,000496: 22,2563 00006 EXTEND
016438,000497: 22,2564 22000 QXCH A
016439,000498: 22,2565 22002 LXCH Q
016440,000499: 22,2566 00000 TC A
016441,000500: 22,2567 30001 CA L
016442,000501: 22,2570 05562 TC -0CHK -1
016443,000502:
016444,000503: # NORMAL USE OF AUG
016445,000504: 22,2571 37675 AUGCHK CA S+ZERO
016446,000505: 22,2572 55371 TS SKEEP1 # +0
016447,000506: 22,2573 40000 CS A
016448,000507: 22,2574 55372 TS SKEEP2 # -0
016449,000508: 22,2575 00006 EXTEND
016450,000509: 22,2576 25371 AUG SKEEP1 # +1
016451,000510: 22,2577 00006 EXTEND
016452,000511: 22,2600 25371 AUG SKEEP1 # +2
016453,000512: 22,2601 05563 TC -0CHK # CHECK C(A) HAS NOT CHANGED
016454,000513: 22,2602 00006 EXTEND
016455,000514: 22,2603 25372 AUG SKEEP2 # -1
016456,000515: 22,2604 00006 EXTEND
016457,000516: 22,2605 25372 AUG SKEEP2 # -2
016458,000517: 22,2606 00006 EXTEND
016459,000518: 22,2607 25372 AUG SKEEP2 # -3
016460,000519: 22,2610 05562 TC -0CHK -1
016461,000520: 22,2611 31372 CA SKEEP2
016462,000521: 22,2612 61371 AD SKEEP1
016463,000522: 22,2613 05571 TC -1CHK
016464,000523: # CHECKS AUG OF AN SC REGISTER
016465,000524: 22,2614 37676 CA S-ZERO
016466,000525: 22,2615 00006 EXTEND
016467,000526: 22,2616 24000 AUG A
016468,000527: 22,2617 05571 TC -1CHK
016469,000528:
016470,000529: # NORMAL USE OF DIM
016471,000530: 22,2620 37675 DIMCHK CA S+ZERO
016472,000531: 22,2621 55371 TS SKEEP1 # +0
016473,000532: 22,2622 00006 EXTEND
016474,000533: 22,2623 27371 DIM SKEEP1
016475,000534: 22,2624 31371 CA SKEEP1
016476,000535: 22,2625 05562 TC -0CHK -1
016477,000536: 22,2626 40000 CS A
016478,000537: 22,2627 55371 TS SKEEP1 # -0
016479,000538: 22,2630 00006 EXTEND
016480,000539: 22,2631 27371 DIM SKEEP1
016481,000540: 22,2632 31371 CA SKEEP1
016482,000541: 22,2633 05563 TC -0CHK
016483,000542: 22,2634 35505 CA S+2
016484,000543: 22,2635 55371 TS SKEEP1 # +2
016485,000544: 22,2636 00006 EXTEND
016486,000545: 22,2637 27371 DIM SKEEP1 # +1
016487,000546: 22,2640 67677 AD S-1
016488,000547: 22,2641 05570 TC -1CHK -1 # CHECK C(A) HAS NOT CHANGED
016489,000548: 22,2642 31371 CA SKEEP1
016490,000549: 22,2643 05570 TC -1CHK -1
016491,000550: 22,2644 00006 EXTEND
016492,000551: 22,2645 27371 DIM SKEEP1
016493,000552: 22,2646 05562 TC -0CHK -1
016494,000553: 22,2647 31371 CA SKEEP1
016495,000554: 22,2650 05563 TC -0CHK
016496,000555: 22,2651 45505 CS S+2
016497,000556: 22,2652 55372 TS SKEEP2 # -2
016498,000557: 22,2653 00006 EXTEND
016499,000558: 22,2654 27372 DIM SKEEP2 # -1
016500,000559: 22,2655 31372 CA SKEEP2
016501,000560: 22,2656 05571 TC -1CHK
016502,000561: 22,2657 00006 EXTEND
016503,000562: 22,2660 27372 DIM SKEEP2 # -0
016504,000563: 22,2661 05562 TC -0CHK -1
016505,000564: 22,2662 31372 CA SKEEP2
016506,000565: 22,2663 05563 TC -0CHK
016507,000566: # CHECKS DIM OF AN SC REGISTER
016508,000567: 22,2664 37700 CA S-2
016509,000568: 22,2665 00006 EXTEND
016510,000569: 22,2666 26000 DIM A
016511,000570: 22,2667 05571 TC -1CHK
016512,000571:
016513,000572: # NORMAL USE OF MSU
016514,000573: # MSU SAME (S+MAX AND S+MAX), RESULT +0
016515,000574: 22,2670 35516 CA S+MAX
016516,000575: 22,2671 55371 TS SKEEP1
016517,000576: 22,2672 00006 EXTEND
016518,000577: 22,2673 21371 MSU SKEEP1
016519,000578: 22,2674 05562 TC -0CHK -1
016520,000579: # MSU SAME (+0 AND +0), RESULT +0
016521,000580: 22,2675 55372 TS SKEEP2
016522,000581: 22,2676 00006 EXTEND
016523,000582: 22,2677 21372 MSU SKEEP2
016524,000583: 22,2700 05562 TC -0CHK -1
016525,000584: # MSU SAME (-0 AND -0), RESULT +0
016526,000585: 22,2701 37676 CA S-ZERO
016527,000586: 22,2702 55373 TS SKEEP3
016528,000587: 22,2703 00006 EXTEND
016529,000588: 22,2704 21373 MSU SKEEP3
016530,000589: 22,2705 05562 TC -0CHK -1
016531,000590: # MSU +0 AND 77777, RESULT = +1
016532,000591: 22,2706 00006 EXTEND
016533,000592: 22,2707 21373 MSU SKEEP3
016534,000593: 22,2710 05570 TC -1CHK -1
016535,000594: # MSU 77777 AND +0, RESULT = -1
016536,000595: 22,2711 40000 CS A
016537,000596: 22,2712 00006 EXTEND
016538,000597: 22,2713 21372 MSU SKEEP2
016539,000598: 22,2714 05571 TC -1CHK
016540,000599: # MSU +6 AND +7, RESULT = -1
016541,000600: 22,2715 37673 CA S+7
016542,000601: 22,2716 55374 TS SKEEP4
016543,000602: 22,2717 36173 CA S+6
016544,000603: 22,2720 55375 TS SKEEP5
016545,000604: 22,2721 00006 EXTEND
016546,000605: 22,2722 21374 MSU SKEEP4
016547,000606: 22,2723 05571 TC -1CHK
016548,000607: # MSU +7 AND +6, RESULT = +1
016549,000608: 22,2724 37673 CA S+7
016550,000609: 22,2725 00006 EXTEND
016551,000610: 22,2726 21375 MSU SKEEP5
016552,000611: 22,2727 05570 TC -1CHK -1
016553,000612: # MSU 77770 AND 77771, RESULT = -1
016554,000613: 22,2730 35620 CA S-6
016555,000614: 22,2731 55376 TS SKEEP6
016556,000615: 22,2732 35526 CA S-7
016557,000616: 22,2733 55377 TS SKEEP7
016558,000617: 22,2734 00006 EXTEND
016559,000618: 22,2735 21376 MSU SKEEP6
016560,000619: 22,2736 05571 TC -1CHK
016561,000620: # MSU 77771 AND 77770, RESULT = +1
016562,000621: 22,2737 35620 CA S-6
016563,000622: 22,2740 00006 EXTEND
016564,000623: 22,2741 21377 MSU SKEEP7
016565,000624: 22,2742 05570 TC -1CHK -1
016566,000625: # CHECKS MSU OF AN SC REGISTER ( -0 AND -0 = +0)
016567,000626: 22,2743 37676 CA S-ZERO
016568,000627: 22,2744 54001 TS L
016569,000628: 22,2745 00006 EXTEND
016570,000629: 22,2746 20001 MSU L
016571,000630: 22,2747 05562 TC -0CHK -1
016572,000631:
016573,000632: # NORMAL USE OF BZF
016574,000633: 22,2750 02752 RBZFCHK TC +2
016575,000634: 22,2751 02772 TC RBZMFCHK # CORRECT ADDRESS IN Q
016576,000635: 22,2752 37674 CAF S+5
016577,000636: 22,2753 00006 EXTEND
016578,000637: 22,2754 15546 BZF ERRORS
016579,000638:
016580,000639: 22,2755 40000 CS A
016581,000640: 22,2756 00006 EXTEND
016582,000641: 22,2757 15546 BZF ERRORS
016583,000642: 22,2760 37675 CAF S+ZERO
016584,000643: 22,2761 00006 EXTEND
016585,000644: 22,2762 12764 BZF +2
016586,000645: 22,2763 05546 TC ERRORS
016587,000646: 22,2764 40000 CS A
016588,000647: 22,2765 00006 EXTEND
016589,000648: 22,2766 12770 BZF +2
016590,000649: 22,2767 05546 TC ERRORS
016591,000650: 22,2770 00002 TC Q # SHOULD GO TO RBZFCHK +1
016592,000651: 22,2771 05546 TC ERRORS
016593,000652:
016594,000653: 22,2772 02774 RBZMFCHK TC +2
016595,000654: 22,2773 03015 TC MP1++ # CORRECT ADDRESS IN Q
016596,000655: 22,2774 37661 CAF SBIT9
016597,000656: 22,2775 00006 EXTEND
016598,000657: 22,2776 65546 BZMF ERRORS
016599,000658: 22,2777 40000 CS A
016600,000659: 22,3000 00006 EXTEND
016601,000660: 22,3001 63003 BZMF +2
016602,000661: 22,3002 05546 TC ERRORS
016603,000662: 22,3003 37675 CA S+ZERO
016604,000663: 22,3004 00006 EXTEND
016605,000664: 22,3005 63007 BZMF +2
016606,000665: 22,3006 05546 TC ERRORS
016607,000666: 22,3007 40000 CS A
016608,000667: 22,3010 00006 EXTEND
016609,000668: 22,3011 63013 BZMF +2
016610,000669: 22,3012 05546 TC ERRORS
016611,000670: 22,3013 00002 TC Q # SHOULD GO TO RBZMFCHK +1
016612,000671: 22,3014 05546 TC ERRORS
016613,000672:
016614,000673: # NORMAL USE OF MP
016615,000674: # 37777 X 2
016616,000675: 22,3015 35516 MP1++ CA S+MAX # 37777
016617,000676: 22,3016 00006 EXTEND
016618,000677: 22,3017 75505 MP S+2 # C(A) = +1, C(L. = 37776
016619,000678: 22,3020 60001 AD L
016620,000679: 22,3021 55371 TS SKEEP1 # 37777
016621,000680: 22,3022 00006 MP1+- EXTEND
016622,000681: 22,3023 77700 MP S-2 # C(A) = -1, C(L) = 40001
016623,000682: 22,3024 60001 AD L
016624,000683: 22,3025 55372 TS SKEEP2 # 40000
016625,000684: 22,3026 00006 MP1-+ EXTEND
016626,000685: 22,3027 75505 MP S+2 # C(A) = -1, C(L) = 40001
016627,000686: 22,3030 60001 AD L
016628,000687: 22,3031 55373 TS SKEEP3 # 40000
016629,000688: 22,3032 00006 MP1-- EXTEND
016630,000689: 22,3033 77700 MP S-2 # C(A) = +1, C(L) = 37776
016631,000690: 22,3034 60001 AD L # 37777
016632,000691: 22,3035 61373 AD SKEEP3 # 77777
016633,000692: 22,3036 61372 AD SKEEP2 # 40000
016634,000693: 22,3037 61371 AD SKEEP1 # 77777
016635,000694: 22,3040 05563 TC -0CHK
016636,000695: # 37777 X 37777
016637,000696: 22,3041 35516 MP2++ CA S+MAX # 37777
016638,000697: 22,3042 00006 EXTEND # CHECKS RSC PULSE
016639,000698: 22,3043 70000 MP A # C(A) = 37776, C(L) = +1
016640,000699: 22,3044 60001 AD L
016641,000700: 22,3045 55371 TS SKEEP1 # 37777
016642,000701: 22,3046 00006 MP2+- EXTEND
016643,000702: 22,3047 75517 MP S-MAX # C(A) = 40001, C(L) = -1
016644,000703: 22,3050 60001 AD L
016645,000704: 22,3051 55372 TS SKEEP2 # 40000
016646,000705: 22,3052 00006 MP2-+ EXTEND
016647,000706: 22,3053 75516 MP S+MAX # C(A) = 40001, C(L) = -1
016648,000707: 22,3054 60001 AD L
016649,000708: 22,3055 55373 TS SKEEP3 # 40000
016650,000709: 22,3056 00006 MP2-- EXTEND
016651,000710: 22,3057 75517 MP S-MAX # C(A) = 37776, C(L) = +1
016652,000711: 22,3060 60001 AD L # 37777
016653,000712: 22,3061 61373 AD SKEEP3 # 77777
016654,000713: 22,3062 61372 AD SKEEP2 # 40000
016655,000714: 22,3063 61371 AD SKEEP1 # 77777
016656,000715: 22,3064 05563 TC -0CHK
016657,000716: # C(A) = NON-ZERO, C(K) = ZERO
016658,000717: # RESULT IS ALWAYS POSITIVE ZERO
016659,000718: 22,3065 35516 MP3++ CA S+MAX # 37777
016660,000719: 22,3066 00006 EXTEND
016661,000720: 22,3067 77675 MP S+ZERO
016662,000721: 22,3070 60001 AD L
016663,000722: 22,3071 05562 TC -0CHK -1
016664,000723: 22,3072 35504 MP3+- CA S+1
016665,000724: 22,3073 00006 EXTEND
016666,000725: 22,3074 77676 MP S-ZERO
016667,000726: 22,3075 60001 AD L
016668,000727: 22,3076 05562 TC -0CHK -1
016669,000728: 22,3077 37677 MP3-+ CA S-1
016670,000729: 22,3100 00006 EXTEND
016671,000730: 22,3101 77675 MP S+ZERO
016672,000731: 22,3102 60001 AD L
016673,000732: 22,3103 05562 TC -0CHK -1
016674,000733: 22,3104 37676 MP3-- CA S-ZERO
016675,000734: 22,3105 00006 EXTEND
016676,000735: 22,3106 77676 MP S-ZERO
016677,000736: 22,3107 60001 AD L
016678,000737: 22,3110 05562 TC -0CHK -1
016679,000738: # C(A) = ZERO, C(K) = NON-ZERO,
016680,000739: # RESULT IS + ZERO FOR A POSITIVE SIGN AND NEGATIVE
016681,000740: # ZERO FOR Z NEGATIVE SIGN
016682,000741: 22,3111 37675 MP4++ CA S+ZERO
016683,000742: 22,3112 00006 EXTEND
016684,000743: 22,3113 75516 MP S+MAX
016685,000744: 22,3114 60001 AD L
016686,000745: 22,3115 05562 TC -0CHK -1
016687,000746: 22,3116 00006 MP4+- EXTEND
016688,000747: 22,3117 77677 MP S-1
016689,000748: 22,3120 60001 AD L
016690,000749: 22,3121 05563 TC -0CHK
016691,000750: 22,3122 40000 MP4-+ CS A
016692,000751: 22,3123 00006 EXTEND
016693,000752: 22,3124 77674 MP S+5
016694,000753: 22,3125 60001 AD L
016695,000754: 22,3126 05563 TC -0CHK
016696,000755: 22,3127 40000 MP4-- CS A
016697,000756: 22,3130 00006 EXTEND
016698,000757: 22,3131 77676 MP S-ZERO
016699,000758: 22,3132 60001 AD L
016700,000759: 22,3133 05562 TC -0CHK -1
016701,000760: # MULTIPLY ZERO X ZERO
016702,000761: # RESULT IS ALWAYS PLUS ZERO
016703,000762: 22,3134 37675 MP5++ CA S+ZERO
016704,000763: 22,3135 55371 TS SKEEP1
016705,000764: 22,3136 00006 EXTEND
016706,000765: 22,3137 71371 MP SKEEP1
016707,000766: 22,3140 60001 AD L
016708,000767: 22,3141 05562 TC -0CHK -1
016709,000768: 22,3142 00006 MP5+- EXTEND
016710,000769: 22,3143 77676 MP S-ZERO
016711,000770: 22,3144 60001 AD L
016712,000771: 22,3145 05562 TC -0CHK -1
016713,000772: 22,3146 37676 MP5-+ CA S-ZERO
016714,000773: 22,3147 00006 EXTEND
016715,000774: 22,3150 77675 MP S+ZERO
016716,000775: 22,3151 60001 AD L
016717,000776: 22,3152 05562 TC -0CHK -1
016718,000777: 22,3153 37676 MP5-- CA S-ZERO
016719,000778: 22,3154 00006 EXTEND
016720,000779: 22,3155 77676 MP S-ZERO
016721,000780: 22,3156 05562 TC -0CHK -1
016722,000781:
016723,000782: 22,3157 33161 CA RCONTINU
016724,000783: 22,3160 04107 TC BANKJUMP
016725,000784: 22,3161 46000 RCONTINU CADR RDV1++ # CONTINUE WITH INSTRUCTION CHECK
016726,000785:
016727,000786: 22,3162 ENDINST1 EQUALS
016728,000787:
016729,000788: 23,2000 BANK 23
016730,000789:
016731,000790: # This is dangerous; see the other commented-out CHECKNJ above.
016732,000791: # TC CHECKNJ # CHECK FOR NEW JOB
016733,000792:
016734,000793: # NORMAL USE OF DV ... REMAINDER HAS SIGN OF DIVIDEND
016735,000794: # 1/4 DIVIDED BY 3/8
016736,000795: # C(A) = 25252 WITH A + QUOTIENT AND 52525 WITH A - QUOTIENT.
016737,000796: # C(L) = REMAINDER = /100000/ WITH SIGN OF DIVIDEND.
016738,000797: 23,2000 35622 RDV1++ CA DV1CON # 14000
016739,000798: 23,2001 55377 TS SKEEP7 # 14000, +3/8
016740,000799: 23,2002 54002 TS Q
016741,000800: 23,2003 40000 CS A
016742,000801: 23,2004 55376 TS SKEEP6 # 63000, -3/8
016743,000802: 23,2005 37675 CA S+ZERO
016744,000803: 23,2006 54001 TS L
016745,000804: 23,2007 37655 CA SBIT13 # 10000
016746,000805: 23,2010 00006 EXTEND
016747,000806: 23,2011 10002 DV Q # CHECKS RSC PULSE
016748,000807: 23,2012 55371 TS SKEEP1 # 25252
016749,000808: 23,2013 37675 CA S+ZERO
016750,000809: 23,2014 22000 RDV1+- LXCH A
016751,000810: 23,2015 00006 EXTEND
016752,000811: 23,2016 11376 DV SKEEP6
016753,000812: 23,2017 61371 AD SKEEP1
016754,000813: 23,2020 05563 TC -0CHK
016755,000814: 23,2021 37676 CA S-ZERO
016756,000815: 23,2022 22000 LXCH A
016757,000816: 23,2023 40000 RDV1-+ CS A
016758,000817: 23,2024 00006 EXTEND
016759,000818: 23,2025 11377 DV SKEEP7
016760,000819: 23,2026 55371 TS SKEEP1 # 52525
016761,000820: 23,2027 37676 CA S-ZERO
016762,000821: 23,2030 22000 RDV1-- LXCH A
016763,000822: 23,2031 00006 EXTEND
016764,000823: 23,2032 11376 DV SKEEP6
016765,000824: 23,2033 61371 AD SKEEP1
016766,000825: 23,2034 05563 TC -0CHK
016767,000826: 23,2035 30001 CA L
016768,000827: 23,2036 67655 AD SBIT13
016769,000828: 23,2037 05563 TC -0CHK
016770,000829: # 1/2 TO 15TH DIVIDED BY 1/2 TO 14TH
016771,000830: # C(A) SHOULD BE 1/D AND CONTENTS OF L SHOULD BE ZERO
016772,000831: 23,2040 35504 DV2++ CA S+1
016773,000832: 23,2041 55377 TS SKEEP7 # 00001, DIVISOR
016774,000833: 23,2042 40000 CS A
016775,000834: 23,2043 55376 TS SKEEP6 # 77776, DIVISOR
016776,000835: 23,2044 37675 CA S+ZERO
016777,000836: 23,2045 37654 CA SBIT14 # 20000
016778,000837: 23,2046 54001 TS L
016779,000838: 23,2047 37675 CA S+ZERO
016780,000839: 23,2050 00006 EXTEND
016781,000840: 23,2051 11377 DV SKEEP7 # C(A) = 1/2, C(L) = +0
016782,000841: 23,2052 55371 TS SKEEP1
016783,000842: 23,2053 22000 DV2+- LXCH A
016784,000843: 23,2054 00006 EXTEND
016785,000844: 23,2055 11376 DV SKEEP6
016786,000845: 23,2056 55372 TS SKEEP2 # -1/2
016787,000846: 23,2057 61371 AD SKEEP1
016788,000847: 23,2060 05563 TC -0CHK
016789,000848: 23,2061 31372 CA SKEEP2
016790,000849: 23,2062 22000 LXCH A
016791,000850: 23,2063 40000 DV2-+ CS A
016792,000851: 23,2064 00006 EXTEND
016793,000852: 23,2065 11377 DV SKEEP7
016794,000853: 23,2066 55372 TS SKEEP2
016795,000854: 23,2067 22000 DV2-- LXCH A
016796,000855: 23,2070 00006 EXTEND
016797,000856: 23,2071 11376 DV SKEEP6
016798,000857: 23,2072 55371 TS SKEEP1
016799,000858: 23,2073 61372 AD SKEEP2
016800,000859: 23,2074 05563 TC -0CHK
016801,000860: 23,2075 41371 CS SKEEP1 # MAKE SURE QUOTIENT IS 1/2
016802,000861: 23,2076 67654 AD SBIT14
016803,000862: 23,2077 05563 TC -0CHK
016804,000863: 23,2100 30001 CA L
016805,000864: 23,2101 05563 TC -0CHK
016806,000865: # SAME AS PREVIOUS DIVISION EXCEPT A AND L WILL HAVE OPPOSITE SIGNS
016807,000866: # BEFORE DIVISION. SINCE A WILL ALWAYS BE ZERO, THE SIGN OF THE QUOTIENT
016808,000867: # WILL DEPEND ON THE SIGN OF L AND THE SIGN OF THE DIVISOR.
016809,000868: 23,2102 37654 DV3++ CA SBIT14 # 20000
016810,000869: 23,2103 54001 TS L
016811,000870: 23,2104 37676 CA S-ZERO
016812,000871: 23,2105 00006 EXTEND
016813,000872: 23,2106 11377 DV SKEEP7
016814,000873: 23,2107 55371 TS SKEEP1 # 20000
016815,000874: 23,2110 22000 DV3+- LXCH A
016816,000875: 23,2111 40000 CS A # A = -0
016817,000876: 23,2112 00006 EXTEND
016818,000877: 23,2113 11376 DV SKEEP6
016819,000878: 23,2114 61371 AD SKEEP1
016820,000879: 23,2115 05563 TC -0CHK
016821,000880: 23,2116 47654 CS SBIT14 # -1/2
016822,000881: 23,2117 22000 DV3-+ LXCH A
016823,000882: 23,2120 00006 EXTEND
016824,000883: 23,2121 11377 DV SKEEP7
016825,000884: 23,2122 55371 TS SKEEP1
016826,000885: 23,2123 22000 DV3-- LXCH A
016827,000886: 23,2124 40000 CS A # A = +0
016828,000887: 23,2125 00006 EXTEND
016829,000888: 23,2126 11376 DV SKEEP6
016830,000889: 23,2127 61371 AD SKEEP1
016831,000890: 23,2130 05563 TC -0CHK
016832,000891: 23,2131 40001 CS L
016833,000892: 23,2132 05562 TC -0CHK -1
016834,000893:
016835,000894: # C(A) = 17777 AND C(L) = 37777. THIS IS DIVIDED BY 20000. THE RESULT
016836,000895: # SHOULD BE +-/37777/ AND THE REMAINDER +-/17777/
016837,000896: 23,2133 35516 DV4++ CA S+MAX
016838,000897: 23,2134 54001 TS L
016839,000898: 23,2135 37654 CA SBIT14
016840,000899: 23,2136 55377 TS SKEEP7 # 20000
016841,000900: 23,2137 40000 CS A
016842,000901: 23,2140 55376 TS SKEEP6 # 57777
016843,000902: 23,2141 35520 CA S13BITS # 17777
016844,000903: 23,2142 00006 EXTEND
016845,000904: 23,2143 11377 DV SKEEP7
016846,000905: 23,2144 55371 TS SKEEP1
016847,000906: 23,2145 22000 DV4+- LXCH A
016848,000907: 23,2146 00006 EXTEND
016849,000908: 23,2147 11376 DV SKEEP6
016850,000909: 23,2150 55372 TS SKEEP2
016851,000910: 23,2151 61371 AD SKEEP1
016852,000911: 23,2152 05563 TC -0CHK
016853,000912: 23,2153 31372 CA SKEEP2
016854,000913: 23,2154 22000 LXCH A
016855,000914: 23,2155 40000 DV4-+ CS A
016856,000915: 23,2156 00006 EXTEND
016857,000916: 23,2157 11377 DV SKEEP7
016858,000917: 23,2160 61371 AD SKEEP1
016859,000918: 23,2161 05563 TC -0CHK
016860,000919: 23,2162 31372 CA SKEEP2
016861,000920: 23,2163 22000 DV4-- LXCH A
016862,000921: 23,2164 00006 EXTEND
016863,000922: 23,2165 11376 DV SKEEP6
016864,000923: 23,2166 55373 TS SKEEP3
016865,000924: 23,2167 61372 AD SKEEP2
016866,000925: 23,2170 05563 TC -0CHK
016867,000926: 23,2171 41373 CS SKEEP3
016868,000927: 23,2172 65516 AD S+MAX
016869,000928: 23,2173 05563 TC -0CHK
016870,000929: 23,2174 30001 CA L
016871,000930: 23,2175 65520 AD S13BITS
016872,000931: 23,2176 05563 TC -0CHK
016873,000932: # C(A) = +-/17777/ AND C(L) = +-/37777/ WITH OPPOSITE SIGN BEFORE DEVISION
016874,000933: # THE QUOTIENT SHOULD BE +-/37774/ WITH THE SIGN DEPENDING ON THE SIGN OF
016875,000934: # A AND THE SIGN OF THE DEVISOR. THE C(L) = +-/1/ DEPENDING ON THE SIGN
016876,000935: # OF A.
016877,000936: 23,2177 45516 RDV5++ CS S+MAX
016878,000937: 23,2200 54001 TS L # 40000
016879,000938: 23,2201 35520 CA S13BITS # 17777
016880,000939: 23,2202 00006 EXTEND
016881,000940: 23,2203 11377 DV SKEEP7
016882,000941: 23,2204 55371 TS SKEEP1 # 37774
016883,000942: 23,2205 56001 XCH L
016884,000943: 23,2206 05570 TC -1CHK -1
016885,000944:
016886,000945: 23,2207 35517 RDV5+- CA S-MAX
016887,000946: 23,2210 54001 TS L # 40000
016888,000947: 23,2211 35520 CA S13BITS # 17777
016889,000948: 23,2212 00006 EXTEND
016890,000949: 23,2213 11376 DV SKEEP6 # C(A) = -37774, C(L) = +1
016891,000950: 23,2214 61371 AD SKEEP1
016892,000951: 23,2215 05563 TC -0CHK
016893,000952: 23,2216 56001 XCH L
016894,000953: 23,2217 05570 TC -1CHK -1
016895,000954: 23,2220 35516 RDV5-+ CA S+MAX
016896,000955: 23,2221 54001 TS L # 37777
016897,000956: 23,2222 45520 CS S13BITS # 60000
016898,000957: 23,2223 00006 EXTEND
016899,000958: 23,2224 11377 DV SKEEP7 # C(A) = -37774, C(L) = -1
016900,000959: 23,2225 55372 TS SKEEP2
016901,000960: 23,2226 61371 AD SKEEP1
016902,000961: 23,2227 05563 TC -0CHK
016903,000962: 23,2230 56001 XCH L
016904,000963: 23,2231 05571 TC -1CHK
016905,000964: 23,2232 35516 RDV5-- CA S+MAX
016906,000965: 23,2233 54001 TS L # 37777
016907,000966: 23,2234 45520 CS S13BITS # 60000
016908,000967: 23,2235 00006 EXTEND
016909,000968: 23,2236 11376 DV SKEEP6 # C(A) = 37774, C(L) = -1
016910,000969: 23,2237 61372 AD SKEEP2
016911,000970: 23,2240 05563 TC -0CHK
016912,000971: 23,2241 56001 XCH L
016913,000972: 23,2242 05571 TC -1CHK
016914,000973: 23,2243 31372 CA SKEEP2 # -37774
016915,000974: 23,2244 67700 AD S-2 # -37776
016916,000975: 23,2245 65516 AD S+MAX # +1
016917,000976: 23,2246 05570 TC -1CHK -1 # CHECK THAT QUOTIENT IS +-/37774/
016918,000977:
016919,000978: # DIVIDE SAME (37776). THE RESULT SHOULD BE MAXIMUM AND THE REMAINDER
016920,000979: # SHOULD BE THE SAME VALUE AS THE DIVISOR WITH THE SAME SIGN AS THE
016921,000980: # DIVIDEND
016922,000981: 23,2247 37675 DV6++ CA S+ZERO
016923,000982: 23,2250 54001 TS L
016924,000983: 23,2251 45623 CS DV2CON # 37776
016925,000984: 23,2252 55376 TS SKEEP6 # 40001
016926,000985: 23,2253 40000 CS A
016927,000986: 23,2254 55377 TS SKEEP7 # 37776
016928,000987: 23,2255 00006 EXTEND
016929,000988: 23,2256 11377 DV SKEEP7
016930,000989: 23,2257 40000 CS A
016931,000990: 23,2260 60001 AD L
016932,000991: 23,2261 05571 TC -1CHK
016933,000992: 23,2262 37675 CA S+ZERO
016934,000993: 23,2263 22000 DV6+- LXCH A
016935,000994: 23,2264 00006 EXTEND
016936,000995: 23,2265 11376 DV SKEEP6
016937,000996: 23,2266 60001 AD L
016938,000997: 23,2267 05571 TC -1CHK
016939,000998: 23,2270 37676 CA S-ZERO
016940,000999: 23,2271 22000 DV6-+ LXCH A
016941,001000: 23,2272 40000 CS A
016942,001001: 23,2273 00006 EXTEND
016943,001002: 23,2274 11377 DV SKEEP7
016944,001003: 23,2275 40000 CS A
016945,001004: 23,2276 60001 AD L
016946,001005: 23,2277 05570 TC -1CHK -1
016947,001006: 23,2300 37676 CA S-ZERO
016948,001007: 23,2301 22000 DV6-- LXCH A
016949,001008: 23,2302 00006 EXTEND
016950,001009: 23,2303 11376 DV SKEEP6
016951,001010: 23,2304 60001 AD L
016952,001011: 23,2305 05570 TC -1CHK -1
016953,001012: 23,2306 40001 CS L
016954,001013: 23,2307 61376 AD SKEEP6
016955,001014: 23,2310 05563 TC -0CHK
016956,001015: # DIVIDE SAME (ZERO). THE RESULT SHOULD BE MAXIMUM AND THE REMAINDER
016957,001016: # SHOULD BE THE SAME VALUE AS THE DIVISOR WITH THE SAME SIGN AS THE
016958,001017: # DIVIDEND.
016959,001018: 23,2311 47675 DV7++ CS S+ZERO
016960,001019: 23,2312 55376 TS SKEEP6 # -0
016961,001020: 23,2313 40000 CS A
016962,001021: 23,2314 55377 TS SKEEP7 # +0
016963,001022: 23,2315 54001 TS L
016964,001023: 23,2316 00006 EXTEND
016965,001024: 23,2317 11377 DV SKEEP7
016966,001025: 23,2320 65517 AD S-MAX
016967,001026: 23,2321 05563 TC -0CHK
016968,001027: 23,2322 22000 DV7+- LXCH A # C(A) = C(L) = +0
016969,001028: 23,2323 00006 EXTEND
016970,001029: 23,2324 11376 DV SKEEP6
016971,001030: 23,2325 65516 AD S+MAX
016972,001031: 23,2326 05563 TC -0CHK
016973,001032: 23,2327 40000 CS A
016974,001033: 23,2330 22000 DV7-+ LXCH A
016975,001034: 23,2331 40000 CS A # C(A) = C(L) = -0
016976,001035: 23,2332 00006 EXTEND
016977,001036: 23,2333 11377 DV SKEEP7
016978,001037: 23,2334 65516 AD S+MAX
016979,001038: 23,2335 05563 TC -0CHK
016980,001039: 23,2336 40000 CS A
016981,001040: 23,2337 22000 DV7-- LXCH A # C(A) = C(L) = -0
016982,001041: 23,2340 00006 EXTEND
016983,001042: 23,2341 11376 DV SKEEP6
016984,001043: 23,2342 65517 AD S-MAX
016985,001044: 23,2343 05563 TC -0CHK
016986,001045: 23,2344 40001 CS L
016987,001046: 23,2345 05562 TC -0CHK -1
016988,001047:
016989,001048: # DEVIDE SAME (ZERO). THE CONTENTS OF THE A REGISTER AND L REGISTER WILL
016990,001049: # HAVE OPPOSITE SIGNS BEFORE DIVISION. THE SIGN OF THE QUOTIENT WILL
016991,001050: # DEPEND ON THE SIGN OF THE L REGISTER BEFORE DEVISION AND THE SIGN OF
016992,001051: # THE DEVISOR. THE SIGN OF THE REMAINDER IS THE SAME SIGN AS THE SIGN OF
016993,001052: # THE L REGISTER BEFORE DEVISION. C(L) REMAINS SAME
016994,001053: 23,2346 37675 DV8++ CA S+ZERO
016995,001054: 23,2347 55377 TS SKEEP7 # +0
016996,001055: 23,2350 54001 TS L
016997,001056: 23,2351 40000 CS A
016998,001057: 23,2352 55376 TS SKEEP6 # -0
016999,001058: 23,2353 00006 EXTEND # A = -0, L = +0
017000,001059: 23,2354 11377 DV SKEEP7 # A = L = +0
017001,001060: 23,2355 55371 TS SKEEP1
017002,001061: 23,2356 30001 CA L # C(A) = C(L) = +0
017003,001062: 23,2357 05562 TC -0CHK -1
017004,001063: 23,2360 40000 DV8+- CS A
017005,001064: 23,2361 00006 EXTEND # A = -0, L = +0
017006,001065: 23,2362 11376 DV SKEEP6 # A = -0, L = +0
017007,001066: 23,2363 61371 AD SKEEP1
017008,001067: 23,2364 05563 TC -0CHK
017009,001068: 23,2365 40000 CS A
017010,001069: 23,2366 56001 XCH L # PUT -0 IN L
017011,001070: 23,2367 05562 TC -0CHK -1 # CHECK C(L)
017012,001071: 23,2370 00006 DV8-+ EXTEND # A = +0, L = -0
017013,001072: 23,2371 11377 DV SKEEP7 # A = L = -0
017014,001073: 23,2372 55372 TS SKEEP2
017015,001074: 23,2373 61371 AD SKEEP1
017016,001075: 23,2374 05563 TC -0CHK
017017,001076: 23,2375 40000 CS A
017018,001077: 23,2376 56001 XCH L # PUT -0 IN L
017019,001078: 23,2377 05563 TC -0CHK # CHECK C(L)
017020,001079: 23,2400 00006 DV8-- EXTEND # A = +0, L = -0
017021,001080: 23,2401 11376 DV SKEEP6 # A = +0, L = -0
017022,001081: 23,2402 61372 AD SKEEP2
017023,001082: 23,2403 05563 TC -0CHK
017024,001083: 23,2404 35516 CA S+MAX # CHECK QUOTIENT IS CORRECT
017025,001084: 23,2405 61372 AD SKEEP2
017026,001085: 23,2406 05563 TC -0CHK
017027,001086: 23,2407 56001 XCH L
017028,001087: 23,2410 05563 TC -0CHK # CHECK C(L)
017029,001088:
017030,001089: # INPUT-OUTPUT INSTRUCTIONS
017031,001090: # NORMAL USE OF READ AND WRITE
017032,001091: 23,2411 37677 IN-OUT1R CA S-1
017033,001092: 23,2412 00006 EXTEND
017034,001093: 23,2413 01001 WRITE L # 77776
017035,001094: 23,2414 40000 CS A # 00001
017036,001095: 23,2415 00006 EXTEND
017037,001096: 23,2416 00001 READ L # 77776
017038,001097: 23,2417 05571 TC -1CHK
017039,001098: 23,2420 35517 CA S-MAX
017040,001099: 23,2421 65517 AD S-MAX # C(A) = 10 - 00001
017041,001100: 23,2422 00006 EXTEND
017042,001101: 23,2423 01002 WRITE Q
017043,001102: 23,2424 40000 CS A # 01 - 37776
017044,001103: 23,2425 00006 EXTEND
017045,001104: 23,2426 00002 READ Q # 10 - 00001
017046,001105: 23,2427 55371 TS SKEEP1
017047,001106: 23,2430 05546 TC ERRORS
017048,001107: 23,2431 31371 CA SKEEP1
017049,001108: 23,2432 65516 AD S+MAX
017050,001109: 23,2433 05570 TC -1CHK -1
017051,001110:
017052,001111: # NORMAL USE OF RAND, RAND = READ AND MASK
017053,001112: 23,2434 37675 RRANDCHK CA S+ZERO
017054,001113: 23,2435 54001 TS L
017055,001114: 23,2436 00006 EXTEND
017056,001115: 23,2437 02001 RAND L # 00000, 00000
017057,001116: 23,2440 05562 TC -0CHK -1
017058,001117: 23,2441 37676 CA S-ZERO
017059,001118: 23,2442 00006 EXTEND
017060,001119: 23,2443 02001 RAND L # 77777, 00000
017061,001120: 23,2444 05562 TC -0CHK -1
017062,001121: 23,2445 40000 CS A
017063,001122: 23,2446 54001 TS L
017064,001123: 23,2447 40000 CS A
017065,001124: 23,2450 00006 EXTEND
017066,001125: 23,2451 02001 RAND L # 00000, 77777
017067,001126: 23,2452 05562 TC -0CHK -1
017068,001127: 23,2453 37676 CA S-ZERO
017069,001128: 23,2454 00006 EXTEND
017070,001129: 23,2455 02001 RAND L # 77777, 77777
017071,001130: 23,2456 05563 TC -0CHK
017072,001131: 23,2457 35516 RANDOV CA S+MAX
017073,001132: 23,2460 65505 AD S+2 # 01 - 00001
017074,001133: 23,2461 00004 INHINT
017075,001134: 23,2462 56002 XCH Q
017076,001135: 23,2463 37676 CA S-ZERO # 77777
017077,001136: 23,2464 00006 EXTEND
017078,001137: 23,2465 02002 RAND Q # 01 - 00001
017079,001138: 23,2466 00003 RELINT
017080,001139: 23,2467 55371 TS SKEEP1
017081,001140: 23,2470 05546 TC ERRORS
017082,001141: 23,2471 05570 TC -1CHK -1
017083,001142: 23,2472 41371 CS SKEEP1
017084,001143: 23,2473 05571 TC -1CHK
017085,001144:
017086,001145: # NORMAL USE OF WAND, WAND = WRITE AND MASK
017087,001146: 23,2474 37675 RWANDCHK CA S+ZERO
017088,001147: 23,2475 54001 TS L
017089,001148: 23,2476 00006 EXTEND
017090,001149: 23,2477 03001 WAND L # 00000, 00000
017091,001150: 23,2500 60001 AD L
017092,001151: 23,2501 05562 TC -0CHK -1
017093,001152: 23,2502 37676 CA S-ZERO
017094,001153: 23,2503 00006 EXTEND
017095,001154: 23,2504 03001 WAND L # 77777, 00000
017096,001155: 23,2505 60001 AD L
017097,001156: 23,2506 05562 TC -0CHK -1
017098,001157: 23,2507 40000 CS A
017099,001158: 23,2510 54001 TS L
017100,001159: 23,2511 40000 CS A
017101,001160: 23,2512 00006 EXTEND
017102,001161: 23,2513 03001 WAND L # 00000, 77777
017103,001162: 23,2514 60001 AD L
017104,001163: 23,2515 05562 TC -0CHK -1
017105,001164: 23,2516 37676 CA S-ZERO
017106,001165: 23,2517 54001 TS L
017107,001166: 23,2520 00006 EXTEND
017108,001167: 23,2521 03001 WAND L # 77777, 77777
017109,001168: 23,2522 60001 AD L
017110,001169: 23,2523 05563 TC -0CHK
017111,001170: 23,2524 35516 WANDUF CA S+MAX
017112,001171: 23,2525 65505 AD S+2 # 01 - 00001
017113,001172: 23,2526 00004 INHINT # This INHINT...RELINT was not present
017114,001173: 23,2527 56002 XCH Q # in the original RETREAD, but is needed.
017115,001174: 23,2530 37676 CA S-ZERO # 77777
017116,001175: 23,2531 00006 EXTEND
017117,001176: 23,2532 03002 WAND Q
017118,001177: 23,2533 00003 RELINT
017119,001178: 23,2534 55372 TS SKEEP2
017120,001179: 23,2535 05546 TC ERRORS
017121,001180: 23,2536 30002 CA Q
017122,001181: 23,2537 55371 TS SKEEP1
017123,001182: 23,2540 05546 TC ERRORS
017124,001183: 23,2541 41371 CS SKEEP1
017125,001184: 23,2542 05571 TC -1CHK
017126,001185: 23,2543 41372 CS SKEEP2
017127,001186: 23,2544 05571 TC -1CHK
017128,001187:
017129,001188: # NORMAL USE OF ROR, READ AND SUPERIMPOSE
017130,001189: 23,2545 37675 RRORCHK CA S+ZERO
017131,001190: 23,2546 54001 TS L
017132,001191: 23,2547 00006 EXTEND
017133,001192: 23,2550 04001 ROR L # 00000, 00000
017134,001193: 23,2551 05562 TC -0CHK -1
017135,001194: 23,2552 30001 CA L
017136,001195: 23,2553 05562 TC -0CHK -1
017137,001196: 23,2554 37676 CA S-ZERO
017138,001197: 23,2555 00006 EXTEND
017139,001198: 23,2556 04001 ROR L # 77777, 00000
017140,001199: 23,2557 05563 TC -0CHK
017141,001200: 23,2560 30001 CA L
017142,001201: 23,2561 05562 TC -0CHK -1
017143,001202: 23,2562 40000 CS A
017144,001203: 23,2563 54001 TS L
017145,001204: 23,2564 40000 CS A
017146,001205: 23,2565 00006 EXTEND
017147,001206: 23,2566 04001 ROR L # 00000, 77777
017148,001207: 23,2567 05563 TC -0CHK
017149,001208: 23,2570 30001 CA L
017150,001209: 23,2571 05563 TC -0CHK
017151,001210: 23,2572 37676 CA S-ZERO
017152,001211: 23,2573 00006 EXTEND
017153,001212: 23,2574 04001 ROR L # 77777, 77777
017154,001213: 23,2575 05563 TC -0CHK
017155,001214: 23,2576 35517 ROROV CA S-MAX
017156,001215: 23,2577 67700 AD S-2 # 10 - 37776
017157,001216: 23,2600 00004 INHINT
017158,001217: 23,2601 56002 XCH Q
017159,001218: 23,2602 35516 CA S+MAX
017160,001219: 23,2603 65504 AD S+1 # 01 - 00000
017161,001220: 23,2604 00006 EXTEND
017162,001221: 23,2605 04002 ROR Q # 11 - 37776
017163,001222: 23,2606 00003 RELINT
017164,001223: 23,2607 55371 TS SKEEP1
017165,001224: 23,2610 02612 TC +2
017166,001225: 23,2611 05546 TC ERRORS
017167,001226: 23,2612 31371 CA SKEEP1
017168,001227: 23,2613 05571 TC -1CHK
017169,001228:
017170,001229: # NORMAL USE OF WOR, WOR = WRITE AND SUPERIMPOSE
017171,001230: 23,2614 37675 RWORCHK CA S+ZERO
017172,001231: 23,2615 54001 TS L
017173,001232: 23,2616 00006 EXTEND
017174,001233: 23,2617 05001 WOR L # 00000, 00000
017175,001234: 23,2620 05562 TC -0CHK -1
017176,001235: 23,2621 30001 CA L
017177,001236: 23,2622 05562 TC -0CHK -1
017178,001237: 23,2623 37676 CA S-ZERO
017179,001238: 23,2624 00006 EXTEND
017180,001239: 23,2625 05001 WOR L # 77777, 00000
017181,001240: 23,2626 05563 TC -0CHK
017182,001241: 23,2627 30001 CA L
017183,001242: 23,2630 05563 TC -0CHK
017184,001243: 23,2631 40000 CS A
017185,001244: 23,2632 54001 TS L
017186,001245: 23,2633 40000 CS A
017187,001246: 23,2634 00006 EXTEND
017188,001247: 23,2635 05001 WOR L # 00000, 77777
017189,001248: 23,2636 05563 TC -0CHK
017190,001249: 23,2637 30001 CA L
017191,001250: 23,2640 05563 TC -0CHK
017192,001251: 23,2641 35517 CA S-MAX
017193,001252: 23,2642 00006 EXTEND
017194,001253: 23,2643 05001 WOR L # 77777, 77777
017195,001254: 23,2644 05563 TC -0CHK
017196,001255: 23,2645 30001 CA L
017197,001256: 23,2646 05563 TC -0CHK
017198,001257: 23,2647 35517 WOROV CA S-MAX
017199,001258: 23,2650 67700 AD S-2 # 10 - 37776
017200,001259: 23,2651 00004 INHINT
017201,001260: 23,2652 56002 XCH Q
017202,001261: 23,2653 35516 CA S+MAX
017203,001262: 23,2654 65504 AD S+1 # 01 - 00000
017204,001263: 23,2655 00006 EXTEND
017205,001264: 23,2656 05002 WOR Q # 11 - 37776
017206,001265: 23,2657 00003 RELINT
017207,001266: 23,2660 55372 TS SKEEP2 # SHOULD NOT SKIP
017208,001267: 23,2661 12663 TCF +2
017209,001268: 23,2662 05546 TC ERRORS
017210,001269: 23,2663 56002 XCH Q
017211,001270: 23,2664 55373 TS SKEEP3
017212,001271: 23,2665 02667 TC +2
017213,001272: 23,2666 05546 TC ERRORS
017214,001273: 23,2667 31373 CA SKEEP3 # CHECK C(Q)
017215,001274: 23,2670 05571 TC -1CHK
017216,001275: 23,2671 31372 CA SKEEP2
017217,001276: 23,2672 05571 TC -1CHK # CHECK C(A)
017218,001277:
017219,001278: # NORMAL USE OF RXOR
017220,001279: 23,2673 37675 RRXORCHK CA S+ZERO
017221,001280: 23,2674 54001 TS L
017222,001281: 23,2675 00006 EXTEND
017223,001282: 23,2676 06001 RXOR L # 00000, 00000
017224,001283: 23,2677 05562 TC -0CHK -1
017225,001284: 23,2700 37676 CA S-ZERO
017226,001285: 23,2701 00006 EXTEND
017227,001286: 23,2702 06001 RXOR L # 77777, 00000
017228,001287: 23,2703 05563 TC -0CHK
017229,001288: 23,2704 30001 CA L
017230,001289: 23,2705 05562 TC -0CHK -1
017231,001290: 23,2706 40000 CS A
017232,001291: 23,2707 54001 TS L
017233,001292: 23,2710 40000 CS A
017234,001293: 23,2711 00006 EXTEND
017235,001294: 23,2712 06001 RXOR L # 00000, 77777
017236,001295: 23,2713 05563 TC -0CHK
017237,001296: 23,2714 37676 CA S-ZERO
017238,001297: 23,2715 00006 EXTEND
017239,001298: 23,2716 06001 RXOR L # 77777, 77777
017240,001299: 23,2717 05562 TC -0CHK -1
017241,001300: 23,2720 30001 CA L
017242,001301: 23,2721 05563 TC -0CHK
017243,001302: 23,2722 40000 CS A
017244,001303: 23,2723 54002 TS Q
017245,001304: 23,2724 35516 RXORUV CA S+MAX
017246,001305: 23,2725 65505 AD S+2 # 01 - 00001
017247,001306: 23,2726 00006 EXTEND
017248,001307: 23,2727 06002 RXOR Q # 10 - 37776, C(Q) = -0
017249,001308: 23,2730 55371 TS SKEEP1
017250,001309: 23,2731 05546 TC ERRORS
017251,001310: 23,2732 31371 CA SKEEP1
017252,001311: 23,2733 05571 TC -1CHK
017253,001312:
017254,001313: # Retread checked for a new job / fed the night watchman here. This is dangerous in Aurora;
017255,001314: # if a new job is found, the EXECUTIVE coding assumes that the address it returns to
017256,001315: # afterwards must be in the same bank as SELFCHECK, which means we'd end up jumping
017257,001316: # somewhere in the middle of that. It appears that the Retread instrution check executes
017258,001317: # quickly enough for this to be unnecessary, though, so I've simply commented it out for now.
017259,001318:
017260,001319: # TC CHECKNJ # CHECK FOR NEW JOB
017261,001320: 23,2734 02740 TC XTRANDX
017262,001321:
017263,001322: # NEXT THREE CONSTANTS ARE ADDRESSESS USED BY EXTRACODE INSTRUCTIONS
017264,001323: 23,2735 02746 ADRSBZMF ADRES NDXBZMF
017265,001324: 23,2736 02752 ADRSDCA ADRES NDXDCA
017266,001325: 23,2737 03041 ADRSQXCH ADRES NDXAUG
017267,001326:
017268,001327: # NORMAL USE OF INDEX WITH EXTRACODE INSTRUCTIONS
017269,001328: # INDEX INSTRUCTION USED WITH INDEX AND BZF
017270,001329: 23,2740 37675 XTRANDX CA S+ZERO
017271,001330: 23,2741 00006 EXTEND
017272,001331: 23,2742 57675 NDX S+ZERO
017273,001332: 23,2743 52735 NDX ADRSBZMF
017274,001333: 23,2744 10000 BZF 00000 # BZF +2
017275,001334: 23,2745 05546 TC ERRORS
017276,001335: # INDEX INSTRUCTION USED WITH BZMF
017277,001336: 23,2746 00006 NDXBZMF EXTEND
017278,001337: 23,2747 52736 NDX ADRSDCA
017279,001338: 23,2750 60000 BZMF 0000 # BZMF+2
017280,001339: 23,2751 05546 TC ERRORS
017281,001340: # INDEX INSTRUCTION USED WITH DCA
017282,001341: 23,2752 00006 NDXDCA EXTEND
017283,001342: 23,2753 55624 INDEX ADRS+1R # DCA S+1
017284,001343: 23,2754 30001 DCA 0000 # C(A) = +1, C(L) = +2
017285,001344: 23,2755 40000 CS A
017286,001345: 23,2756 60001 AD L
017287,001346: 23,2757 05570 TC -1CHK -1
017288,001347: # INDEX INSTRUCTION USED WITH DCS
017289,001348: 23,2760 00006 EXTEND
017290,001349: 23,2761 55624 INDEX ADRS+1R # DCS S+1
017291,001350: 23,2762 40001 DCS 0000 # C(A) = -1, C(L) = -2
017292,001351: 23,2763 40000 CS A
017293,001352: 23,2764 60001 AD L
017294,001353: 23,2765 05571 TC -1CHK
017295,001354: # INDEX INSTRUCTION USED WITH MP AND SU
017296,001355: 23,2766 35516 CA S+MAX # 37777
017297,001356: 23,2767 00006 EXTEND
017298,001357: 23,2770 55624 NDX ADRS+1R
017299,001358: 23,2771 70001 MP 0001 # C(A) = 1, C(L) = 37776
017300,001359: 23,2772 05570 TC -1CHK -1
017301,001360: 23,2773 35516 CA S+MAX # 37777
017302,001361: 23,2774 00006 EXTEND
017303,001362: 23,2775 55504 NDX S+1
017304,001363: 23,2776 60000 SU 0000
017305,001364: 23,2777 05570 TC -1CHK -1
017306,001365: # INDEX INSTRUCTION USED WITH DV
017307,001366: 23,3000 35622 NDXDV CA DV1CON # PUT 14000 (3/8) IN SKEEP3
017308,001367: 23,3001 55373 TS SKEEP3
017309,001368: 23,3002 37675 CA S+ZERO
017310,001369: 23,3003 54001 TS L
017311,001370: 23,3004 37655 CA SBIT13 # 10000
017312,001371: 23,3005 00006 EXTEND
017313,001372: 23,3006 55600 NDX ADRS3
017314,001373: 23,3007 10000 DV 0000 # C(A) = 25252, C(L) = 10000
017315,001374: 23,3010 55371 TS SKEEP1
017316,001375: 23,3011 37676 CA S-ZERO
017317,001376: 23,3012 56001 XCH L
017318,001377: 23,3013 40000 CS A
017319,001378: 23,3014 00006 EXTEND
017320,001379: 23,3015 55600 NDX ADRS3
017321,001380: 23,3016 10000 DV 0000
017322,001381: 23,3017 61371 AD SKEEP1
017323,001382: 23,3020 05563 TC -0CHK
017324,001383: # INDEX USED WITH MSU (C(A) = +0, C(K) = -0) (RESULT = -1)
017325,001384: 23,3021 37675 NDXMSU CA S+ZERO
017326,001385: 23,3022 55371 TS SKEEP1
017327,001386: 23,3023 40000 CS A
017328,001387: 23,3024 00006 EXTEND
017329,001388: 23,3025 55527 NDX ADRS1 # MSU SKEEP1
017330,001389: 23,3026 20000 MSU 0000 # C(A) = -1
017331,001390: 23,3027 05571 TC -1CHK
017332,001391: # INDEX USED WITH QXCH
017333,001392: 23,3030 32737 NDXQXCH CA ADRSQXCH
017334,001393: 23,3031 55371 TS SKEEP1
017335,001394: 23,3032 03034 TC +2
017336,001395: 23,3033 05546 TC ERRORS
017337,001396: 23,3034 00006 EXTEND
017338,001397: 23,3035 55527 NDX ADRS1 # QCH SKEEP1
017339,001398: 23,3036 22000 QXCH 0000
017340,001399: 23,3037 00002 TC Q
017341,001400: 23,3040 05546 TC ERRORS
017342,001401: # INDEX USED WITH AUG
017343,001402: 23,3041 47675 NDXAUG CS S+ZERO
017344,001403: 23,3042 55371 TS SKEEP1 # 00000
017345,001404: 23,3043 00006 EXTEND
017346,001405: 23,3044 55527 NDX ADRS1 # AUG SKEEP1
017347,001406: 23,3045 24000 AUG 0000
017348,001407: 23,3046 31371 CA SKEEP1
017349,001408: 23,3047 05571 TC -1CHK
017350,001409:
017351,001410: # INDEX USED WITH DIM
017352,001411: 23,3050 35505 NDXDIM CA S+2
017353,001412: 23,3051 55371 TS SKEEP1
017354,001413: 23,3052 00006 EXTEND
017355,001414: 23,3053 55527 NDX ADRS1 # DIM SKEEP1
017356,001415: 23,3054 26000 DIM 0000
017357,001416: 23,3055 41371 CS SKEEP1
017358,001417: 23,3056 05571 TC -1CHK
017359,001418:
017360,001419: # NORMAL USE OF INDEX WITH IN-OUT INSTRUCTIONS
017361,001420: # INDEX USED WITH WRITE AND READ
017362,001421: 23,3057 37677 NDXINOUT CA S-1
017363,001422: 23,3060 00006 EXTEND
017364,001423: 23,3061 55504 NDX S+1 # WRITE L
017365,001424: 23,3062 01000 WRITE 0000
017366,001425: 23,3063 40000 CS A
017367,001426: 23,3064 00006 EXTEND
017368,001427: 23,3065 55504 NDX S+1 # READ L
017369,001428: 23,3066 00000 READ 0000
017370,001429: 23,3067 05571 TC -1CHK
017371,001430: # INDEX USED WITH RAND
017372,001431: 23,3070 35504 CA S+1 # 00001
017373,001432: 23,3071 54001 TS L
017374,001433: 23,3072 37676 CA S-ZERO # 77777
017375,001434: 23,3073 00006 EXTEND
017376,001435: 23,3074 55504 NDX S+1 # RAND L
017377,001436: 23,3075 02000 RAND 00000
017378,001437: 23,3076 05570 TC -1CHK -1
017379,001438: # INDEX USED WITH WAND
017380,001439: 23,3077 35517 CA S-MAX # 40000
017381,001440: 23,3100 65504 AD S+1 # 40001
017382,001441: 23,3101 54001 TS L
017383,001442: 23,3102 35516 CA S+MAX # 37777
017384,001443: 23,3103 00006 EXTEND
017385,001444: 23,3104 55504 NDX S+1 # WAND L
017386,001445: 23,3105 03000 WAND 0000 # C(A) = C(L) = +1
017387,001446: 23,3106 05570 TC -1CHK -1
017388,001447: 23,3107 40001 CS L
017389,001448: 23,3110 05571 TC -1CHK
017390,001449: # INDEX USED WITH ROR
017391,001450: 23,3111 35504 CA S+1
017392,001451: 23,3112 54002 TS Q
017393,001452: 23,3113 37675 CA S+ZERO
017394,001453: 23,3114 00006 EXTEND
017395,001454: 23,3115 55505 NDX S+2 # ROR Q
017396,001455: 23,3116 04000 ROR 0000
017397,001456: 23,3117 05570 TC -1CHK -1
017398,001457: # INDEX USED WITH WOR
017399,001458: 23,3120 35526 CA S-7
017400,001459: 23,3121 54001 TS L # 77770
017401,001460: 23,3122 35516 CA S+MAX
017402,001461: 23,3123 67677 AD S-1 # 37776
017403,001462: 23,3124 00006 EXTEND
017404,001463: 23,3125 55504 NDX S+1 # WOR L
017405,001464: 23,3126 05000 WOR 0000 # C(A) = C(L) = -1
017406,001465: 23,3127 05571 TC -1CHK
017407,001466: 23,3130 30001 CA L
017408,001467: 23,3131 05571 TC -1CHK
017409,001468: # INDEX USED WITH RXOR
017410,001469: 23,3132 37677 CA S-1
017411,001470: 23,3133 54001 TS L # 77776
017412,001471: 23,3134 35516 CA S+MAX # 37777
017413,001472: 23,3135 00006 EXTEND
017414,001473: 23,3136 55504 NDX S+1 # RXOR L
017415,001474: 23,3137 06000 RXOR 0000 # C(A) = 40001
017416,001475: 23,3140 65516 AD S+MAX
017417,001476: 23,3141 05570 TC -1CHK -1
017418,001477: # CHECKS EXTRACODE OF AN SC REGISTER
017419,001478: 23,3142 35505 CA S+2
017420,001479: 23,3143 55371 TS SKEEP1
017421,001480: 23,3144 35527 CA ADRS1 # ADDRESS OF SKEEP1
017422,001481: 23,3145 54001 TS L
017423,001482: 23,3146 35504 CA S+1
017424,001483: 23,3147 00006 EXTEND
017425,001484: 23,3150 50001 NDX L
017426,001485: 23,3151 60000 SU 0000
017427,001486: 23,3152 05571 TC -1CHK
017428,001487:
017429,001488: # CHECK OF SPECIAL AND CENTRAL REGISTERS
017430,001489: # CHANGE OF SIGN BY ADDING SAME NUMBER (ADDER)
017431,001490: 23,3153 37654 ADDCHK CA SBIT14 # 20000
017432,001491: 23,3154 60000 AD A # 01 -00000
017433,001492: 23,3155 54000 TS A
017434,001493: 23,3156 05546 TC ERRORS
017435,001494: 23,3157 60000 AD A # 10 - 00000
017436,001495: 23,3160 54000 TS A
017437,001496: 23,3161 05546 TC ERRORS
017438,001497: 23,3162 60000 AD A # 00001
017439,001498: 23,3163 54000 TS A
017440,001499: 23,3164 03166 TC +2
017441,001500: 23,3165 05546 TC ERRORS
017442,001501: 23,3166 05570 TC -1CHK -1
017443,001502:
017444,001503: # NORMAL OPERATION OF CYCLE RIGHT REGISTER
017445,001504: 23,3167 35614 CYRCHK CA CYRCON # 57761
017446,001505: 23,3170 55375 TS SKEEP5 # COUNTDOWN REGISTER
017447,001506: 23,3171 35517 CA S-MAX # 40000
017448,001507: 23,3172 54020 TS CYR
017449,001508: 23,3173 10020 CYRLOOP CCS CYR
017450,001509: 23,3174 03200 TC CYRCNTDN
017451,001510: 23,3175 05546 TC ERRORS
017452,001511: 23,3176 03202 TC ENDCYR
017453,001512: 23,3177 05546 TC ERRORS
017454,001513: 23,3200 25375 CYRCNTDN INCR SKEEP5
017455,001514: 23,3201 03173 TC CYRLOOP
017456,001515: 23,3202 31375 ENDCYR CA SKEEP5 # 57777
017457,001516: 23,3203 60020 AD CYR # C(CYR) = 20000
017458,001517: 23,3204 10000 CCS A # -0 = END OF CYCLE RIGHT CHECK
017459,001518: 23,3205 05546 TC ERRORS
017460,001519: 23,3206 05546 TC ERRORS
017461,001520: 23,3207 05546 TC ERRORS
017462,001521:
017463,001522: # NORMAL OPERATION OF CYCLE LEFT REGISTER
017464,001523: 23,3210 35616 CYLCHK CA S-15 # 77760, -15
017465,001524: 23,3211 55375 TS SKEEP5 # COUNT REGISTER
017466,001525: 23,3212 35517 CA S-MAX # 40000
017467,001526: 23,3213 54022 TS CYL
017468,001527: 23,3214 10022 CYLLOOP CCS CYL
017469,001528: 23,3215 03221 TC CYLCNTDN
017470,001529: 23,3216 05546 TC ERRORS
017471,001530: 23,3217 03223 TC ENDCYL
017472,001531: 23,3220 05546 TC ERRORS
017473,001532: 23,3221 25375 CYLCNTDN INCR SKEEP5
017474,001533: 23,3222 03214 TC CYLLOOP
017475,001534: 23,3223 30022 ENDCYL CA CYL # C(CYL) SHOULD = +1
017476,001535: 23,3224 05570 TC -1CHK -1
017477,001536: 23,3225 31375 CA SKEEP5
017478,001537: 23,3226 05571 TC -1CHK
017479,001538:
017480,001539: # NORMAL OPERATION OF SHIFT RIGHT REGISTER
017481,001540: 23,3227 35617 SRCHK CA S-14 # 77761, -14
017482,001541: 23,3230 55375 TS SKEEP5 # COUNT REGISTER
017483,001542: 23,3231 35517 CA S-MAX # 40000
017484,001543: 23,3232 54021 TS SR
017485,001544: 23,3233 10021 SRLOOP CCS SR
017486,001545: 23,3234 05546 TC ERRORS
017487,001546: 23,3235 05546 TC ERRORS
017488,001547: 23,3236 03242 TC SRCNTDN
017489,001548: 23,3237 31375 CA SKEEP5 # HAS SHIFTED 14 TIMES
017490,001549: 23,3240 05571 TC -1CHK
017491,001550: 23,3241 03244 TC EDOPCHK # NEXT SUBROUTINE
017492,001551: 23,3242 25375 SRCNTDN INCR SKEEP5 # INCREMENT COUNT REGISTER
017493,001552: 23,3243 03233 TC SRLOOP
017494,001553:
017495,001554: # NORMAL OPERATION OF EDOP REGISTER. BITS 8 - 14 OF G REGISTER GO TO
017496,001555: # BITS 1 - 7 OF EDOP.
017497,001556: 23,3244 35616 EDOPCHK CA S-15 # 77760, -15
017498,001557: 23,3245 55375 TS SKEEP5 # COUNT REGISTER
017499,001558: 23,3246 35606 CA S7BITS # 00177
017500,001559: 23,3247 54022 TS CYL
017501,001560: 23,3250 30022 EDOPLOOP CA CYL
017502,001561: 23,3251 54023 TS EDOP
017503,001562: 23,3252 54020 TS CYR # SHIFT LEFT 7 TIMES
017504,001563: 23,3253 30020 CA CYR
017505,001564: 23,3254 30020 CA CYR
017506,001565: 23,3255 30020 CA CYR
017507,001566: 23,3256 30020 CA CYR
017508,001567: 23,3257 30020 CA CYR
017509,001568: 23,3260 30020 CA CYR
017510,001569: 23,3261 30020 CA CYR
017511,001570: 23,3262 75606 MASK S7BITS
017512,001571: 23,3263 40000 CS A
017513,001572: 23,3264 55371 TS SKEEP1 # COMPLEMENT OF C(EDOP)
017514,001573: 23,3265 37676 CA S-ZERO
017515,001574: 23,3266 70023 MASK EDOP
017516,001575: 23,3267 61371 AD SKEEP1
017517,001576: 23,3270 05563 TC -0CHK
017518,001577: 23,3271 25375 INCR SKEEP5 # INCREMENT COUNT REGISTER
017519,001578: 23,3272 10023 CCS EDOP
017520,001579: 23,3273 03250 TC EDOPLOOP
017521,001580: 23,3274 03277 TC ENDEDOP
017522,001581: 23,3275 05546 TC ERRORS
017523,001582: 23,3276 05546 TC ERRORS
017524,001583: 23,3277 31375 ENDEDOP CA SKEEP5 # SHOULD HAVE PERFORMED EDOPLOOP 14 TIMES
017525,001584: 23,3300 05571 TC -1CHK
017526,001585:
017527,001586: 23,3301 04104 TC POSTJUMP
017528,001587: 23,3302 40724 CADR INSTDONE
017529,001588:
017530,001589: 23,3303 ENDINST2 EQUALS
End of include-file AGC_BLK2_INSTRUCTION_CHECK.agc. Parent file is MAIN.agc