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