Source Code
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Mike Higgins.
A team of volunteers performed the transcription and proof-reading. Note
that the scanned page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's section on archive.org. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR BLK2: REVISION 0 OF PROGRAM RETRED44 BY NASA 2021100 JUL 9, 1965Note that the date is the date of the printout, not the date of the program revision. |
008327,000002: ## Copyright: Public domain.
008328,000003: ## Filename: AGC_BLK2_INSTRUCTION_CHECK.agc
008329,000004: ## Purpose: Part of the source code for Retread 44 (revision 0). It was
008330,000005: ## the very first program for the Block II AGC, created as an
008331,000006: ## extensive rewrite of the Block I program Sunrise.
008332,000007: ## This file is intended to be a faithful transcription, except
008333,000008: ## that the code format has been changed to conform to the
008334,000009: ## requirements of the yaYUL assembler rather than the
008335,000010: ## original YUL assembler.
008336,000011: ## Reference: pp. 210-242
008337,000012: ## Assembler: yaYUL
008338,000013: ## Contact: Ron Burkey <info@sandroid.org>.
008339,000014: ## Website: www.ibiblio.org/apollo/index.html
008340,000015: ## Mod history: 2016-12-13 MAS Created from Aurora 12 version.
008341,000016: ## 2016-12-16 MAS Began.
008342,000017: ## 2016-12-17 MAS Completed transcription.
008343,000018: ## 2016-12-18 MAS Typos.
008344,000019: ## 2016-12-18 MAS Added notes about bugs discovered in the
008345,000020: ## tests present here.
008346,000021: ## 2016-12-20 MAS Fixed a typo in a program label.
008347,000022: ## 2016-12-27 RSB Proofed comment text using octopus/ProoferComments,
008348,000023: ## and fixed errors found.
008349,000024:
Page 210 |
008351,000026: 4663 SETLOC ABORT +1
008352,000027:
008353,000028: # ADDRESSES OF ERASABLE REGISTERS
008354,000029: 4663 01034 ADRS1 ADRES KEEP1
008355,000030: 4664 01035 ADRS2 ADRES KEEP2
008356,000031: 4665 01036 ADRS3 ADRES KEEP3
008357,000032: 4666 02411 ADRS4 ADRES SELF1
008358,000033: 4667 02417 ADRS5 ADRES SELF2
008359,000034: 4670 04725 ADRS6 ADRES S+MAX
008360,000035: 4671 02473 ADRS7 ADRES SELF3
008361,000036:
008362,000037: # CONSTANTS USED THROUGHOUT THE INSTRUCTIONS CHECK
008363,000038: 4672 00001 SBIT1 OCTAL 00001
008364,000039: 4673 00002 SBIT2 OCTAL 00002
008365,000040: 4674 00004 SBIT3 OCTAL 00004
008366,000041: 4675 00010 SBIT4 OCTAL 00010
008367,000042: 4676 00020 SBIT5 OCTAL 00020
008368,000043: 4677 00040 SBIT6 OCTAL 00040
008369,000044: 4700 00100 SBIT7 OCTAL 00100
008370,000045: 4701 00200 SBIT8 OCTAL 00200
008371,000046: 4702 00400 SBIT9 OCTAL 00400
008372,000047: 4703 01000 SBIT10 OCTAL 01000
008373,000048: 4704 02000 SBIT11 OCTAL 02000
008374,000049: 4705 04000 SBIT12 OCTAL 04000
008375,000050: 4706 10000 SBIT13 OCTAL 10000
008376,000051: 4707 20000 SBIT14 OCTAL 20000
008377,000052: 4710 40000 SBIT15 OCTAL 40000
008378,000053:
The 00000 below is lightly circled. |
008380,000055: 4711 00000 S+ZERO OCTAL 00000
008381,000056: 4712 00001 S+1 OCTAL 00001
008382,000057: 4713 00002 S+2 OCTAL 00002
008383,000058: 4714 00003 S+3 OCTAL 00003
008384,000059: 4715 00004 S+4 OCTAL 00004
008385,000060: 4716 00005 S+5 OCTAL 00005
008386,000061: 4717 00006 S+6 OCTAL 00006
008387,000062: 4720 00007 S+7 OCTAL 00007
008388,000063: 4721 00077 S6BITS OCTAL 00077
008389,000064: 4722 00177 S7BITS OCTAL 00177
008390,000065: 4723 17777 S13BITS OCTAL 17777
008391,000066: 4724 25252 SODD OCTAL 25252 # SEVEN ONE BITS
008392,000067: 4725 37777 S+MAX OCTAL 37777
008393,000068: 4726 40000 S-MAX OCTAL 40000
008394,000069: 4727 40400 ALARMCON OCTAL 40400
008395,000070: 4730 52500 SINOUT1 OCTAL 52500
008396,000071: 4731 52525 SEVENS OCTAL 52525 # EIGHT ONE BITS
008397,000072: 4732 52552 SINOUT2 OCTAL 52552
008398,000073: 4733 57761 CYRCON OCTAL 57761
008399,000074: 4734 77725 SINOUT3 OCTAL 77725
008400,000075: 4735 77760 S-15 OCTAL 77760
008401,000076: 4736 77761 S-14 OCTAL 77761
008402,000077: 4737 77770 S-7 OCTAL 77770
Page 211 |
008404,000079: 4740 77771 S-6 OCTAL 77771
008405,000080: 4741 77772 S-5 OCTAL 77772
008406,000081: 4742 77773 S-4 OCTAL 77773
008407,000082: 4743 77774 S-3 OCTAL 77774
008408,000083: 4744 77775 S-2 OCTAL 77775
008409,000084: 4745 77776 S-1 OCTAL 77776
008410,000085: 4746 77777 S-ZERO OCTAL 77777
008411,000086:
008412,000087: # NEXT TWO CONSTANTS ARE USED IN THE DEVIDE SUBROUTINE
008413,000088: 4747 14000 DV1CON OCTAL 14000
008414,000089: 4750 37776 DV2CON OCTAL 37776
008415,000090:
008416,000091: # NEXT TWO CONSTANTS ARE ADDRESSESS USED BY EXTRACODE INDEX INSTRUCTIONS
008417,000092: 4751 04712 ADRS+1 ADRES S+1
008418,000093: 4752 04747 ADRSDV1 ADRES DV1CON
008419,000094:
008420,000095: 4753 40000 CS A
008421,000096: 4754 10000 -0CHK CCS A
008422,000097: 4755 14770 TCF ERRORS
008423,000098: 4756 14770 TCF ERRORS
008424,000099: 4757 14770 TCF ERRORS
008425,000100: 4760 00002 TC Q
008426,000101:
008427,000102: 4761 40000 CS A
008428,000103: 4762 10000 -1CHK CCS A
008429,000104: 4763 14770 TCF ERRORS
008430,000105: 4764 14770 TCF ERRORS
008431,000106: 4765 10000 CCS A
008432,000107: 4766 14770 TCF ERRORS
008433,000108: 4767 00002 TC Q
008434,000109:
008435,000110:
008436,000111: 4770 56002 ERRORS XCH Q
008437,000112: 4771 55044 TS SFAIL # SAVE Q FOR FAILURE LOCATION
008438,000113: 4772 25045 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS
008439,000114: 4773 00004 INHINT # TURN ON PROGRAM ALARM LIGHT
008440,000115: 4774 44727 CS ALARMCON
008441,000116: 4775 70675 MASK DSPTAB +11D
008442,000117: 4776 64727 AD ALARMCON
008443,000118: 4777 54675 TS DSPTAB +11D
008444,000119: 5000 00003 RELINT
008445,000120:
008446,000121: # IF C(SMODE) IS +NON-ZERO START CHECKING AGAIN AT TCCHK
008447,000122: # IF C(SMODE) IS + PUT +0 IN SMODE AND IDLE
"CA SMODE" below is marked with a line drawn to a +, and "BZMF STOPCHK" is underlined and marked with a - |
008449,000124: 5001 31047 CA SMODE
008450,000125: 5002 00006 EXTEND
008451,000126: 5003 65005 BZMF STOPCHK
008452,000127: 5004 05010 TC SMODECHK
008453,000128: 5005 34711 STOPCHK CA S+ZERO
008454,000129: 5006 55047 TS SMODE
Page 212 |
008456,000131: 5007 04224 TC CHECKNJ
The following CCS has its branch conditions written in: +>0, +0, -<0, and -0. |
008458,000133: 5010 11047 SMODECHK CCS SMODE
008459,000134: 5011 05014 TC +3
008460,000135: 5012 05007 TC SMODECHK -1
008461,000136: 5013 05014 TC +1
008462,000137: 5014 04224 TC CHECKNJ
008463,000138: 5015 35017 CAF STRTCHK
008464,000139: 5016 04105 TC BANKJUMP # TO START OF CHECKING ROUTINES
008465,000140: 5017 16003 STRTCHK CADR TCCHK
008466,000141:
008467,000142: 07,2000 SETLOC 26000
008468,000143:
008469,000144: 07,2000 34711 CA S+ZERO # INITIALIZE COUNT REGISTER
008470,000145: 07,2001 55045 TS ERCOUNT
008471,000146: 07,2002 55046 TS SCOUNT
008472,000147:
008473,000148: # NORMAL USE OF TC AND TCF
008474,000149: 07,2003 02005 TCCHK TC +2
008475,000150: 07,2004 02011 TC CCSCHK
008476,000151: 07,2005 12007 TCF +2
008477,000152: 07,2006 04770 TC ERRORS
008478,000153: 07,2007 00002 TC Q
008479,000154: 07,2010 04770 TC ERRORS
008480,000155:
Written to the right of the next few lines is "Written for comp self test and in Gyro S.F. test", signed G&S. |
008482,000157: # NORMAL USE OF CA, CS, AND CCS
008483,000158: 07,2011 34743 CCSCHK CA S-3
008484,000159: 07,2012 55034 TS KEEP1
008485,000160: 07,2013 11034 CCS KEEP1
008486,000161: 07,2014 04770 TC ERRORS
008487,000162: 07,2015 04770 TC ERRORS
008488,000163: 07,2016 02020 TC +2
008489,000164: 07,2017 04770 TC ERRORS
008490,000165: 07,2020 10000 CCS A # C(A) =+2, RESULT OF CCS -NUMBER
008491,000166: 07,2021 02025 TC +4
008492,000167: 07,2022 04770 TC ERRORS
008493,000168: 07,2023 04770 TC ERRORS
008494,000169: 07,2024 04770 TC ERRORS
008495,000170: 07,2025 10000 CCS A # C(A) = +1, RESULT OF CCS + NUMBER
008496,000171: 07,2026 02032 TC +4
008497,000172: 07,2027 04770 TC ERRORS
008498,000173: 07,2030 04770 TC ERRORS
008499,000174: 07,2031 04770 TC ERRORS
008500,000175: 07,2032 10000 CCS A # C(A) = +0, RESULT OF CCS + NUMBER
008501,000176: 07,2033 04770 TC ERRORS
008502,000177: 07,2034 02037 TC +3
008503,000178: 07,2035 04770 TC ERRORS
008504,000179: 07,2036 04770 TC ERRORS
008505,000180: 07,2037 40000 CS A
008506,000181: 07,2040 10000 CCS A # C(A) = -0, RESULT OF CCS +0
008507,000182: 07,2041 04770 TC ERRORS
Page 213 |
008509,000184: 07,2042 04770 TC ERRORS
008510,000185: 07,2043 04770 TC ERRORS
008511,000186: 07,2044 10000 CCS A # RESULT OF CCS -0
008512,000187: 07,2045 04770 TC ERRORS
008513,000188: 07,2046 02051 TC +3
008514,000189: 07,2047 04770 TC ERRORS
008515,000190: 07,2050 04770 TC ERRORS
008516,000191:
008517,000192: # NORMAL USE OF MASK
008518,000193: 07,2051 44746 MSKCHK CS S-ZERO
008519,000194: 07,2052 74746 MASK S-ZERO # 00000, 77777
008520,000195: 07,2053 04753 TC -0CHK -1
008521,000196: 07,2054 44711 CS S+ZERO
008522,000197: 07,2055 74711 MASK S+ZERO # 77777, 00000
008523,000198: 07,2056 04753 TC -0CHK -1
008524,000199: 07,2057 34711 CA S+ZERO
008525,000200: 07,2060 74711 MASK S+ZERO # 00000, 00000
008526,000201: 07,2061 04753 TC -0CHK -1
008527,000202: 07,2062 34746 CA S-ZERO
008528,000203: 07,2063 74746 MASK S-ZERO # 77777, 77777
008529,000204: 07,2064 04754 TC -0CHK
008530,000205: # NO EDIT FEATURE OF MASK IS CHECKED
008531,000206: # BITS 9-14 OF WRITE LINES GO TO BITS 1-7 OF EDOP
008532,000207: 07,2065 34746 CA S-ZERO # 77777
008533,000208: 07,2066 54023 TS EDOP # 00177
008534,000209: 07,2067 70023 MASK EDOP # 00177
008535,000210: 07,2070 55034 TS KEEP1 # 00177
008536,000211: 07,2071 70023 MASK EDOP # 00177
008537,000212: 07,2072 40000 CS A # 77600
008538,000213: 07,2073 61034 AD KEEP1 # 77777
008539,000214: 07,2074 04754 TC -0CHK
008540,000215: # CHECK MASK OF AN SC REGISTER
008541,000216: 07,2075 34712 CA S+1
008542,000217: 07,2076 54001 TS L
008543,000218: 07,2077 34746 CA S-ZERO
008544,000219: 07,2100 70001 MASK L
008545,000220: 07,2101 04761 TC -1CHK -1
008546,000221:
008547,000222: # NORMAL USE OF XCH, AD, AND TS
008548,000223: 07,2102 34725 CA S+MAX # 37777
008549,000224: 07,2103 55034 TS KEEP1
008550,000225: 07,2104 61034 AD KEEP1 # 01 - 37776
008551,000226: 07,2105 55035 TS KEEP2 # 37776
008552,000227: 07,2106 04770 TC ERRORS
008553,000228: 07,2107 04761 TC -1CHK -1
008554,000229: 07,2110 57034 XCH KEEP1 # SKEEP1 NOW +0
008555,000230: 07,2111 40000 CS A # 40000
008556,000231: 07,2112 60000 AD A # 10 - 00001
008557,000232: 07,2113 55036 TS KEEP3 # 40001, C(A) = -1
008558,000233: 07,2114 04770 TC ERRORS
Page 214 |
008560,000235: 07,2115 61036 AD KEEP3 # C(A) = 40000
008561,000236: 07,2116 61035 AD KEEP2 # C(A) = -1
008562,000237: 07,2117 61034 AD KEEP1 # C(A) = -1
008563,000238: 07,2120 55037 TS KEEP4 # -1
008564,000239: 07,2121 41037 CS KEEP4 # +1
008565,000240: 07,2122 04761 TC -1CHK -1
008566,000241:
008567,000242: # NORMAL USE OF INCR
008568,000243: # NOT CHECKING COUNTER INTERRUPT
008569,000244: 07,2123 34725 CA S+MAX # 37777
008570,000245: 07,2124 55034 TS KEEP1
008571,000246: 07,2125 25034 INCR KEEP1 # +0
008572,000247: 07,2126 25034 INCR KEEP1 # +1
008573,000248: 07,2127 25034 INCR KEEP1 # +2
008574,000249: 07,2130 64726 AD S-MAX
008575,000250: 07,2131 04754 TC -0CHK # CHECK C(A) HAS NOT CHANGED
008576,000251: 07,2132 41034 CS KEEP1
008577,000252: 07,2133 55034 TS KEEP1 # -2
008578,000253: 07,2134 25034 INCR KEEP1 # -1
008579,000254: 07,2135 31034 CA KEEP1
008580,000255: 07,2136 04762 TC -1CHK
008581,000256: # CHECK INCREMENT OF AN SC REGISTER
008582,000257: 07,2137 34744 CA S-2
008583,000258: 07,2140 54001 TS L
008584,000259: 07,2141 24001 INCR L
008585,000260: 07,2142 30001 CA L
008586,000261: 07,2143 04762 TC -1CHK
008587,000262:
008588,000263: # NORMAL USE OF ADS
008589,000264: 07,2144 34706 CA SBIT13
008590,000265: 07,2145 55034 TS KEEP1 # 10000
008591,000266: 07,2146 27034 ADS KEEP1 # 20000
008592,000267: 07,2147 27034 ADS KEEP1 # OV WITH +0
008593,000268: 07,2150 55035 TS KEEP2
008594,000269: 07,2151 04770 TC ERRORS
008595,000270: 07,2152 41034 CS KEEP1
008596,000271: 07,2153 04754 TC -0CHK
008597,000272: # CHECKS ADS OF AN SC REGISTER
008598,000273: 07,2154 34723 CA S13BITS # 17777
008599,000274: 07,2155 54001 TS L
008600,000275: 07,2156 64712 AD S+1 # C(A) = 20000
008601,000276: 07,2157 26001 ADS L
008602,000277: 07,2160 64726 AD S-MAX
008603,000278: 07,2161 04754 TC -0CHK
008604,000279: 07,2162 40001 CS L
008605,000280: 07,2163 64725 AD S+MAX
008606,000281: 07,2164 04754 TC -0CHK
008607,000282:
008608,000283: # NORMAL USE OF LXCH
008609,000284: 07,2165 34712 CA S+1
Page 215 |
008611,000286: 07,2166 55034 TS KEEP1 # +1
008612,000287: 07,2167 23034 LXCH KEEP1 # +1 IN L
008613,000288: 07,2170 40000 CS A
008614,000289: 07,2171 55035 TS KEEP2 # -1 IN KEEP2
008615,000290: 07,2172 23035 LXCH KEEP2 # L = -1, KEEP2 = +1
008616,000291: 07,2173 41035 CS KEEP2
008617,000292: 07,2174 04762 TC -1CHK
008618,000293: 07,2175 30001 CA L
008619,000294: 07,2176 04762 TC -1CHK
008620,000295:
008621,000296: # UNDERFLOW AND OVERFLOW IS LOST IN L REGISTER
008622,000297: 07,2177 34725 CA S+MAX
008623,000298: 07,2200 60000 AD A
008624,000299: 07,2201 54001 TS L # OV WITH 37776
008625,000300: 07,2202 04770 TC ERRORS
008626,000301: 07,2203 44725 CS S+MAX
008627,000302: 07,2204 60000 AD A # UV WITH 40001
008628,000303: 07,2205 22000 LXCH A # C(A) = 37776, C(L) = 40001
008629,000304: 07,2206 55034 TS KEEP1 # 37776
008630,000305: 07,2207 02211 TC +2
008631,000306: 07,2210 04770 TC ERRORS
008632,000307: 07,2211 30001 CA L
008633,000308: 07,2212 55035 TS KEEP2 # 40001
008634,000309: 07,2213 02215 TC +2
008635,000310: 07,2214 04770 TC ERRORS
008636,000311: 07,2215 61034 AD KEEP1 # -0
008637,000312: 07,2216 04754 TC -0CHK
008638,000313:
008639,000314: # NORMAL USE OF DXCH
008640,000315: 07,2217 34725 CA S+MAX
008641,000316: 07,2220 55035 TS KEEP2 # 37777, K+1
008642,000317: 07,2221 40000 CS A
008643,000318: 07,2222 54001 TS L # 40000
008644,000319: 07,2223 64712 AD S+1
008645,000320: 07,2224 55034 TS KEEP1 # 40001, K
008646,000321: 07,2225 40000 CS A # 37776
008647,000322: 07,2226 53035 DXCH KEEP1
008648,000323: # A = 40001, L = 37777 ....... KEEP1 = 37776, KEEP2 = 40000
008649,000324: 07,2227 60001 AD L
008650,000325: 07,2230 04761 TC -1CHK -1
008651,000326: 07,2231 31034 CA KEEP1
008652,000327: 07,2232 61035 AD KEEP2
008653,000328: 07,2233 04762 TC -1CHK
008654,000329:
008655,000330: # NORMAL USE OF DAS (6 CHECKS)
008656,000331: # IF ADDRESS OF K DOES NOT = ZERO, C(L) = +0 AND C(A) = NET OVERFLOW
008657,000332: # C(A) = +0 IF NO OVERFLOW OR UNDERFLOW
008658,000333: # DAD++ WITH NO OVERFLOW
008659,000334: 07,2234 34723 DAS++ CAF S13BITS
008660,000335: 07,2235 55034 TS KEEP1 # 17777
Page 216 |
008662,000337: 07,2236 55035 TS KEEP2 # 17777
008663,000338: 07,2237 54001 TS L # 17777
008664,000339: 07,2240 64712 AD S+1 # 20000
008665,000340: 07,2241 21035 DAS KEEP1
008666,000341: # C(KEEP1) = 37777, C(KEEP2) = 377776
008667,000342: 07,2242 04753 TC -0CHK -1
008668,000343: 07,2243 56001 XCH L
008669,000344: 07,2244 04753 TC -0CHK -1
008670,000345: 07,2245 41034 CS KEEP1
008671,000346: 07,2246 61035 AD KEEP2
008672,000347: 07,2247 04762 TC -1CHK
008673,000348: # DAS++ WITH OVERFLOW
008674,000349: 07,2250 34725 DAS++OV CA S+MAX
008675,000350: 07,2251 55034 TS KEEP1 # 37777
008676,000351: 07,2252 55035 TS KEEP2 # 37777
008677,000352: 07,2253 54001 TS L # 37777
008678,000353: 07,2254 34712 CA S+1 # +1
008679,000354: 07,2255 21035 DAS KEEP1
008680,000355: # C(KEEP1) = +1, C(KEEP2) = 37776, C(A) = +1,
008681,000356: 07,2256 04761 TC -1CHK -1
008682,000357: 07,2257 56001 XCH L
008683,000358: 07,2260 04753 TC -0CHK -1
008684,000359: 07,2261 41034 CS KEEP1
008685,000360: 07,2262 04762 TC -1CHK
008686,000361: 07,2263 34726 CA S-MAX
008687,000362: 07,2264 61035 AD KEEP2
008688,000363: 07,2265 04762 TC -1CHK
008689,000364: # DAS MIXED SIGNS
008690,000365: 07,2266 34725 DAS+--+ CA S+MAX
008691,000366: 07,2267 55034 TS KEEP1 # 37777
008692,000367: 07,2270 40000 CS A
008693,000368: 07,2271 55035 TS KEEP2 # 40000
008694,000369: 07,2272 40000 CS A
008695,000370: 07,2273 64745 AD S-1
008696,000371: 07,2274 54001 TS L # 37776
008697,000372: 07,2275 40000 CS A # 40001
008698,000373: 07,2276 21035 DAS KEEP1
008699,000374: # C(KEEP1) = +1, C(KEEP2) = -1
008700,000375: 07,2277 04753 TC -0CHK -1
008701,000376: 07,2300 56001 XCH L
008702,000377: 07,2301 04753 TC -0CHK -1
008703,000378: 07,2302 31034 CA KEEP1
008704,000379: 07,2303 04761 TC -1CHK -1
008705,000380: 07,2304 31035 CA KEEP2
008706,000381: 07,2305 04762 TC -1CHK
008707,000382: # DAS-- WITH NO UNDERFLOW
008708,000383: 07,2306 44723 DAS-- CS S13BITS
008709,000384: 07,2307 55034 TS KEEP1 # 60000
008710,000385: 07,2310 55035 TS KEEP2 # 60000
008711,000386: 07,2311 54001 TS L # 60000
Page 217 |
008713,000388: 07,2312 64745 AD S-1 # 57777
008714,000389: 07,2313 21035 DAS KEEP1
008715,000390: # C(KEEP1) = 40000, C(KEEP2) = 40001
008716,000391: 07,2314 04753 TC -0CHK -1
008717,000392: 07,2315 56001 XCH L
008718,000393: 07,2316 04753 TC -0CHK -1
008719,000394: 07,2317 41035 CS KEEP2
008720,000395: 07,2320 61034 AD KEEP1
008721,000396: 07,2321 04762 TC -1CHK
008722,000397: # DAS-- WITH UNDERFLOW
008723,000398: 07,2322 34726 DAS--UV CA S-MAX
008724,000399: 07,2323 55034 TS KEEP1 # 40000
008725,000400: 07,2324 55035 TS KEEP2 # 40000
008726,000401: 07,2325 54001 TS L # 40000
008727,000402: 07,2326 34745 CA S-1 # -1
008728,000403: 07,2327 21035 DAS KEEP1
008729,000404: # C:KEEP1) = -1, C(KEEP2) = 40001, C(A) = -1
008730,000405: 07,2330 04762 TC -1CHK
008731,000406: 07,2331 56001 XCH L
008732,000407: 07,2332 04753 TC -0CHK -1
008733,000408: 07,2333 31034 CA KEEP1
008734,000409: 07,2334 04762 TC -1CHK
008735,000410: 07,2335 34725 CA S+MAX
008736,000411: 07,2336 61035 AD KEEP2
008737,000412: 07,2337 04761 TC -1CHK -1
008738,000413: # DAS A. DOUBLES THE CONTENTS OF THE A REGISTER AND THE L REGISTER.
008739,000414: 07,2340 34726 CA S-MAX
008740,000415: 07,2341 55035 TS KEEP2 # 40000
008741,000416: 07,2342 54001 TS L # 40000
008742,000417: 07,2343 40000 CS A
008743,000418: 07,2344 55034 TS KEEP1 # 37777
008744,000419: 07,2345 20001 DAS A
008745,000420: # C(A) = OV 37775, C(L) = 40001
008746,000421: 07,2346 55036 TS KEEP3
008747,000422: 07,2347 04770 TC ERRORS
008748,000423: 07,2350 30001 CA L
008749,000424: 07,2351 61036 AD KEEP3
008750,000425: 07,2352 04762 TC -1CHK
008751,000426:
008752,000427: # NORMAL USE OF INDEX WITHOUT EXTRACODE.
008753,000428: # INSTRUCTIONS CHECKED WITH INDEX UP TO FIRST SPACE SKIPPED
008754,000429: # ARE CA, TS, XCH, CCS, AD, TC, TCF, TS WITH OVERFLOW, AND MASK
008755,000430: # FIRST INITIALIZE ERASABLE REGISTERS USED FOR INDEX INSTRUCTION
008756,000431: 07,2353 34711 CA S+ZERO
008757,000432: 07,2354 55025 TS NDX+0
008758,000433: 07,2355 34670 CA ADRS6 # ADDRESS OF S+MAX
008759,000434: 07,2356 55026 TS NDX+MAX
008760,000435: 07,2357 34663 CA ADRS1
008761,000436: 07,2360 55027 TS NDXKEEP1
008762,000437: 07,2361 34664 CA ADRS2
Page 218 |
008764,000439: 07,2362 55030 TS NDXKEEP2
008765,000440: 07,2363 34665 CA ADRS3
008766,000441: 07,2364 55031 TS NDXKEEP3
008767,000442: 07,2365 34666 CA ADRS4
008768,000443: 07,2366 55032 TS NDXSELF1
008769,000444: 07,2367 34667 CA ADRS5
008770,000445: 07,2370 55033 TS NDXSELF2
008771,000446: 07,2371 51026 NDXCHK NDX NDX+MAX # CA S+MAX
008772,000447: 07,2372 30000 CA 0000 # A = 37777
008773,000448: 07,2373 51027 NDX NDXKEEP1 # TS KEEP1
008774,000449: 07,2374 54000 TS 0000 # TS WITH NO OV, UV
008775,000450: 07,2375 51025 NDX NDX+0 # CS A
008776,000451: 07,2376 40000 CS 0000 # A = 40000
008777,000452: 07,2377 51027 NDX NDXKEEP1 # XCH KEEP1
008778,000453: 07,2400 56000 XCH 0000 # A = +MAX, KEEP1 = - MAX
008779,000454: 07,2401 51025 NDX NDX+0 # CCS A
008780,000455: 07,2402 10000 CCS 0000 # A = 37776
008781,000456: 07,2403 02407 TC +4
008782,000457: 07,2404 04770 TC ERRORS
008783,000458: 07,2405 04770 TC ERRORS
008784,000459: 07,2406 04770 TC ERRORS
008785,000460: 07,2407 51027 NDX NDXKEEP1 # AD KEEP1
008786,000461: 07,2410 60000 AD 0000 # A = -1
008787,000462: 07,2411 51032 SELF1 NDX NDXSELF1 # TC +2
008788,000463: 07,2412 00003 TC 0003
008789,000464: 07,2413 04770 TC ERRORS # DID NOT PERFORM A TC
008790,000465: 07,2414 51032 NDX NDXSELF1 # TC +2
008791,000466: 07,2415 00006 TC 0006
008792,000467: 07,2416 02423 TC CNTINU # CHECK C(Q)
008793,000468: 07,2417 51033 SELF2 NDX NDXSELF2 # TCF +2
008794,000469: 07,2420 10003 TCF 003
008795,000470: 07,2421 04770 TC ERRORS
008796,000471: 07,2422 00002 TC Q # SHOULD GO TO SELF1 +2
008797,000472: 07,2423 04762 CNTINU TC -1CHK
008798,000473: 07,2424 34725 CA S+MAX
008799,000474: 07,2425 64712 AD S+1
008800,000475: 07,2426 51027 NDX NDXKEEP1 # TS KEEP1 WITH OV
008801,000476: 07,2427 54000 TS 0000 # A = +1, KEEP1 = +0
008802,000477: 07,2430 04770 TC ERRORS
008803,000478: 07,2431 61034 AD KEEP1 # A = +1
008804,000479: 07,2432 51026 NDX NDX+MAX # MASK S+MAX
008805,000480: 07,2433 70000 MASK 0000 # A = +1
008806,000481: 07,2434 04761 TC -1CHK -1
008807,000482:
008808,000483: # INDEX USED WITH ADS, NDX, AND INCR
008809,000484: 07,2435 34723 CA S13BITS
008810,000485: 07,2436 55034 TS KEEP1
008811,000486: 07,2437 51025 NDX NDX+0 # INDEX +0
008812,000487: 07,2440 51027 NDX NDXKEEP1 # ADS KEEP1
008813,000488: 07,2441 26000 ADS 0000 # C(A) AND C(KEEP1) = 377776
Page 219 |
008815,000490: 07,2442 51027 NDX NDXKEEP1 # INCR KEEP1
008816,000491: 07,2443 24000 INCR 0000 # C(KEEP1) = 37777
008817,000492: 07,2444 40000 CS A # 40001
008818,000493: 07,2445 61034 AD KEEP1 # A = +1
008819,000494: 07,2446 04761 TC -1CHK -1
008820,000495: # INDEX USED WITH LXCH, DAS, AND DXCH
008821,000496: 07,2447 34726 CA S-MAX
008822,000497: 07,2450 55035 TS KEEP2 # KEEP2 HOLDS 40000, KEEP1 HOLDS 37777
008823,000498: 07,2451 34712 CA S+1
008824,000499: 07,2452 55036 TS KEEP3 # +1
008825,000500: 07,2453 51031 NDX NDXKEEP3 # LXCH KEEP3
008826,000501: 07,2454 22000 LXCH 0000 # C(L) = +1
008827,000502: 07,2455 34744 CA S-2
008828,000503: 07,2456 51027 NDX NDXKEEP1 # DAS KEEP1
008829,000504: 07,2457 20001 DAS 0000
008830,000505: # BEFORE DAS, K = 37777 K+1 = 40000
008831,000506: # A = -2 L = +1
008832,000507: # AFTER DAS, K = 37775 K+1 = 40001
008833,000508: # A = +0 L = +0
008834,000509: 07,2460 51027 NDX NDXKEEP1 # DXCH KEEP1
008835,000510: 07,2461 52001 DXCH 0000
008836,000511: 07,2462 60001 AD L
008837,000512: 07,2463 04762 TC -1CHK
008838,000513: 07,2464 41034 CS KEEP1
008839,000514: 07,2465 04754 TC -0CHK
008840,000515: 07,2466 31035 CA KEEP2
008841,000516: 07,2467 04753 TC -0CHK -1
008842,000517: # INDEX INSTRUCTION USED WITH OVERFLOW
008843,000518: 07,2470 34671 CA ADRS7 # ADDRESS OF SELF3
008844,000519: 07,2471 64707 AD SBIT14
008845,000520: 07,2472 55042 TS KEEP7
008846,000521: 07,2473 51042 SELF3 NDX KEEP7
008847,000522: 07,2474 20003 2 0002
008848,000523: 07,2475 04770 TC ERRORS
008849,000524: # CHECK INDEX OF AN SC REGISTER
008850,000525: 07,2476 34663 CA ADRS1 # 01371, ADDRESS OF KEEP1
008851,000526: 07,2477 50000 NDX A
008852,000527: 07,2500 54000 TS 0000 # PUT 01371 IN KEEP1
008853,000528: 07,2501 40000 CS A
008854,000529: 07,2502 61034 AD KEEP1
008855,000530: 07,2503 04754 TC -0CHK
008856,000531:
Page 220 |
008858,000533: # START CHECKING EXTRACODE INSTRUCTIONS
008859,000534: # NORMAL USE OF DCA, DCS, AND SU
008860,000535: 07,2504 00006 STRTXTRA EXTEND
008861,000536: 07,2505 34673 DCA SBIT1
008862,000537: # C(A) = +1, C(L) = +2
008863,000538: 07,2506 55035 TS KEEP2 # +1
008864,000539: 07,2507 56001 XCH L
008865,000540: 07,2510 55034 TS KEEP1 # +2
008866,000541: 07,2511 00006 EXTEND
008867,000542: 07,2512 61035 SU KEEP2 # C(KEEP2) = +1
008868,000543: 07,2513 04761 TC -1CHK -1
008869,000544: 07,2514 00006 EXTEND
008870,000545: 07,2515 41035 DCS KEEP1
008871,000546: # C(A) = -2, C(L) = -1
008872,000547: 07,2516 00006 EXTEND
008873,000548: 07,2517 60001 SU L
008874,000549: 07,2520 04762 TC -1CHK
008875,000550: # COMPLEMENTING OF THE DOUBLE PRECISION ACCUMULATOR
008876,000551: 07,2521 34725 CA S+MAX
008877,000552: 07,2522 54001 TS L # 37777
008878,000553: 07,2523 60000 AD A # OV37776
008879,000554: 07,2524 00006 EXTEND
008880,000555: 07,2525 40001 DCS A
008881,000556: 07,2526 55034 TS KEEP1
008882,000557: 07,2527 04770 TC ERRORS
008883,000558: 07,2530 31034 CA KEEP1
008884,000559: 07,2531 00006 EXTEND
008885,000560: 07,2532 60001 SU L
008886,000561: 07,2533 04761 TC -1CHK -1
008887,000562:
The following test is, in the words of AGC developer Hugh Blair-Smith, "wrong wrong wrong". The code appears to be assuming that the result of DCA L is A <-- L and L <-- Q. However, in reality, the L <-- Q happens bfore L is copied into A, so the net result is A <-- Q and L <-- Q. Hugh's theory is that Retread made it up to revision 44 mostly before hardware was available to run it on. And the self-check code, which was tied to the hardware, was likely not exercised as part of its development. Moreover, it's possible that the digital simulator itself had an incorrect implementation of DCA based on a misunderstanding of the hareware design. There's a couple of ways to fix this test, but the most "correct" would probably be: DCA L # A = L = -2 CS A # A = 2 AD L # A = -2 + 2 = -0 TC -0CHK |
008902,000577:
008903,000578: # CHECKS DCA OF AN SC REGISTER
008904,000579: 07,2534 34744 CA S-2 # -2
008905,000580: 07,2535 54002 TS Q
008906,000581: 07,2536 34712 CA S+1
008907,000582: 07,2537 54001 TS L # +1
008908,000583: 07,2540 34701 CA SBIT8
008909,000584: 07,2541 00006 EXTEND
008910,000585: 07,2542 30002 DCA L
008911,000586: 07,2543 60001 AD L # -1
008912,000587: 07,2544 04762 TC -1CHK
008913,000588:
008914,000589: # NORMAL USE OF QXCH
008915,000590: 07,2545 32555 CA QXCHCON1
008916,000591: 07,2546 55034 TS KEEP1 # STORE ADDRESS OF AUGCHK IN KEEP1
008917,000592: 07,2547 02551 TC +2 # Q NOW HOLDS ADDRESS OF QNMBR
008918,000593: 07,2550 04770 QNMBR TC ERRORS
008919,000594: 07,2551 00006 EXTEND
008920,000595: 07,2552 23034 QXCH KEEP1 # Q NOW HOLDS ADDRESS OF AUGCHK
008921,000596: 07,2553 00002 TC Q # SHOULD GO TO QXCHCON2 +1, NOT QNMBR
008922,000597: 07,2554 04770 TC ERRORS
008923,000598: 07,2555 02557 QXCHCON1 ADRES QXCHCON2 +1
Page 221 |
008925,000600: 07,2556 02550 QXCHCON2 ADRES QNMBR
008926,000601: 07,2557 41034 CS KEEP1 # CHECK THAT KEEP1 HOLDS B(Q)
008927,000602: 07,2560 62556 AD QXCHCON2
008928,000603: 07,2561 04754 TC -0CHK
008929,000604: # CHECKS QXCH OF AN SC REGISTER
008930,000605: 07,2562 34711 CA S+ZERO
008931,000606: 07,2563 02565 TC +2
008932,000607: 07,2564 12571 TCF +5
008933,000608: 07,2565 00006 EXTEND
008934,000609: 07,2566 22000 QXCH A
008935,000610: 07,2567 22002 LXCH Q
008936,000611: 07,2570 00000 TC A
008937,000612: 07,2571 30001 CA L
008938,000613: 07,2572 04753 TC -0CHK -1
008939,000614:
008940,000615: # NORMAL USE OF AUG
008941,000616: 07,2573 34711 AUGCHK CA S+ZERO
008942,000617: 07,2574 55034 TS KEEP1 # +0
008943,000618: 07,2575 40000 CS A
008944,000619: 07,2576 55035 TS KEEP2 # -0
008945,000620: 07,2577 00006 EXTEND
008946,000621: 07,2600 25034 AUG KEEP1 # +1
008947,000622: 07,2601 00006 EXTEND
008948,000623: 07,2602 25034 AUG KEEP1 # +2
008949,000624: 07,2603 04754 TC -0CHK # CHECK C(A) HAS NOT CHANGED
008950,000625: 07,2604 00006 EXTEND
008951,000626: 07,2605 25035 AUG KEEP2 # -1
008952,000627: 07,2606 00006 EXTEND
008953,000628: 07,2607 25035 AUG KEEP2 # -2
008954,000629: 07,2610 00006 EXTEND
008955,000630: 07,2611 25035 AUG KEEP2 # -3
008956,000631: 07,2612 04753 TC -0CHK -1
008957,000632: 07,2613 31035 CA KEEP2
008958,000633: 07,2614 61034 AD KEEP1
008959,000634: 07,2615 04762 TC -1CHK
008960,000635: # CHECKS AUG OF AN SC REGISTER
008961,000636: 07,2616 34746 CA S-ZERO
008962,000637: 07,2617 00006 EXTEND
008963,000638: 07,2620 24000 AUG A
008964,000639: 07,2621 04762 TC -1CHK
008965,000640:
008966,000641: # NORMAL USE OF DIM
008967,000642: 07,2622 34711 DIMCHK CA S+ZERO
008968,000643: 07,2623 55034 TS KEEP1 # +0
008969,000644: 07,2624 00006 EXTEND
008970,000645: 07,2625 27034 DIM KEEP1
008971,000646: 07,2626 31034 CA KEEP1
008972,000647: 07,2627 04753 TC -0CHK -1
008973,000648: 07,2630 40000 CS A
008974,000649: 07,2631 55034 TS KEEP1 # -0
Page 222 There is a physical page break here, but the next page does not have a header or its own number. |
008977,000652: 07,2632 00006 EXTEND
008978,000653: 07,2633 27034 DIM KEEP1
008979,000654: 07,2634 31034 CA KEEP1
008980,000655: 07,2635 04754 TC -0CHK
008981,000656: 07,2636 34713 CA S+2
008982,000657: 07,2637 55034 TS KEEP1 # +2
008983,000658: 07,2640 00006 EXTEND
008984,000659: 07,2641 27034 DIM KEEP1 # +1
008985,000660: 07,2642 64745 AD S-1
008986,000661: 07,2643 04761 TC -1CHK -1 # CHECK C(A) HAS NOT CHANGED
008987,000662: 07,2644 31034 CA KEEP1
008988,000663: 07,2645 04761 TC -1CHK -1
008989,000664: 07,2646 00006 EXTEND
008990,000665: 07,2647 27034 DIM KEEP1
008991,000666: 07,2650 04753 TC -0CHK -1
008992,000667: 07,2651 31034 CA KEEP1
008993,000668: 07,2652 04754 TC -0CHK
008994,000669: 07,2653 44713 CS S+2
008995,000670: 07,2654 55035 TS KEEP2 # -2
008996,000671: 07,2655 00006 EXTEND
008997,000672: 07,2656 27035 DIM KEEP2 # -1
008998,000673: 07,2657 31035 CA KEEP2
008999,000674: 07,2660 04762 TC -1CHK
009000,000675: 07,2661 00006 EXTEND
009001,000676: 07,2662 27035 DIM KEEP2 # -0
009002,000677: 07,2663 04753 TC -0CHK -1
009003,000678: 07,2664 31035 CA KEEP2
009004,000679: 07,2665 04754 TC -0CHK
009005,000680: # CHECKS DIM OF AN SC REGISTER
009006,000681: 07,2666 34744 CA S-2
009007,000682: 07,2667 00006 EXTEND
009008,000683: 07,2670 26000 DIM A
009009,000684: 07,2671 04762 TC -1CHK
009010,000685:
009011,000686: # NORMAL USE OF MSU
009012,000687: # MSU SAME (S+MAX AND S+MAX), RESULT +0
009013,000688: 07,2672 34725 CA S+MAX
009014,000689: 07,2673 55034 TS KEEP1
009015,000690: 07,2674 00006 EXTEND
009016,000691: 07,2675 21034 MSU KEEP1
009017,000692: 07,2676 04753 TC -0CHK -1
009018,000693: # MSU SAME (+0 AND +0), RESULT +0
009019,000694: 07,2677 55035 TS KEEP2
009020,000695: 07,2700 00006 EXTEND
009021,000696: 07,2701 21035 MSU KEEP2
009022,000697: 07,2702 04753 TC -0CHK -1
009023,000698: # MSU SAME (-0 AND -0), RESULT +0
009024,000699: 07,2703 34746 CA S-ZERO
009025,000700: 07,2704 55036 TS KEEP3
009026,000701: 07,2705 00006 EXTEND
Page 223 |
009028,000703: 07,2706 21036 MSU KEEP3
009029,000704: 07,2707 04753 TC -0CHK -1
009030,000705: # MSU +0 AND 77777, RESULT = +1
009031,000706: 07,2710 00006 EXTEND
009032,000707: 07,2711 21036 MSU KEEP3
009033,000708: 07,2712 04761 TC -1CHK -1
009034,000709: # MSU 77777 AND +0, RESULT = -1
009035,000710: 07,2713 40000 CS A
009036,000711: 07,2714 00006 EXTEND
009037,000712: 07,2715 21035 MSU KEEP2
009038,000713: 07,2716 04762 TC -1CHK
009039,000714: # MSU +6 AND +7, RESULT = -1
009040,000715: 07,2717 34720 CA S+7
009041,000716: 07,2720 55037 TS KEEP4
009042,000717: 07,2721 34717 CA S+6
009043,000718: 07,2722 55040 TS KEEP5
009044,000719: 07,2723 00006 EXTEND
009045,000720: 07,2724 21037 MSU KEEP4
009046,000721: 07,2725 04762 TC -1CHK
009047,000722: # MSU +7 AND +6, RESULT = +1
009048,000723: 07,2726 34720 CA S+7
009049,000724: 07,2727 00006 EXTEND
009050,000725: 07,2730 21040 MSU KEEP5
009051,000726: 07,2731 04761 TC -1CHK -1
009052,000727: # MSU 77770 AND 77771, RESULT = -1
009053,000728: 07,2732 34740 CA S-6
009054,000729: 07,2733 55041 TS KEEP6
009055,000730: 07,2734 34737 CA S-7
009056,000731: 07,2735 55042 TS KEEP7
009057,000732: 07,2736 00006 EXTEND
009058,000733: 07,2737 21041 MSU KEEP6
009059,000734: 07,2740 04762 TC -1CHK
009060,000735: # MSU 77771 AND 77770, RESULT = +1
009061,000736: 07,2741 34740 CA S-6
009062,000737: 07,2742 00006 EXTEND
009063,000738: 07,2743 21042 MSU KEEP7
009064,000739: 07,2744 04761 TC -1CHK -1
009065,000740: # CHECKS MSU OF AN SC REGISTER ( -0 AND -0 = +0)
009066,000741: 07,2745 34746 CA S-ZERO
009067,000742: 07,2746 54001 TS L
009068,000743: 07,2747 00006 EXTEND
009069,000744: 07,2750 20001 MSU L
009070,000745: 07,2751 04753 TC -0CHK -1
009071,000746:
009072,000747: # NORMAL USE OF BZF
009073,000748: 07,2752 02754 BZFCHK TC +2
009074,000749: 07,2753 02774 TC BZMFCHK # CORRECT ADDRESS IN Q
009075,000750: 07,2754 34716 CAF S+5
009076,000751: 07,2755 00006 EXTEND
009077,000752: 07,2756 14770 BZF ERRORS
009078,000753:
Page 224 |
009080,000755: 07,2757 40000 CS A
009081,000756: 07,2760 00006 EXTEND
009082,000757: 07,2761 14770 BZF ERRORS
009083,000758: 07,2762 34711 CAF S+ZERO
009084,000759: 07,2763 00006 EXTEND
009085,000760: 07,2764 12766 BZF +2
009086,000761: 07,2765 04770 TC ERRORS
009087,000762: 07,2766 40000 CS A
009088,000763: 07,2767 00006 EXTEND
009089,000764: 07,2770 12772 BZF +2
009090,000765: 07,2771 04770 TC ERRORS
009091,000766: 07,2772 00002 TC Q # SHOULD GO TO BZFCHK +1
009092,000767: 07,2773 04770 TC ERRORS
009093,000768:
009094,000769: 07,2774 02776 BZMFCHK TC +2
009095,000770: 07,2775 03017 TC MP1++ # CORRECT ADDRESS IN Q
009096,000771: 07,2776 34702 CAF SBIT9
009097,000772: 07,2777 00006 EXTEND
009098,000773: 07,3000 64770 BZMF ERRORS
009099,000774: 07,3001 40000 CS A
009100,000775: 07,3002 00006 EXTEND
009101,000776: 07,3003 63005 BZMF +2
009102,000777: 07,3004 04770 TC ERRORS
009103,000778: 07,3005 34711 CA S+ZERO
009104,000779: 07,3006 00006 EXTEND
009105,000780: 07,3007 63011 BZMF +2
009106,000781: 07,3010 04770 TC ERRORS
009107,000782: 07,3011 40000 CS A
009108,000783: 07,3012 00006 EXTEND
009109,000784: 07,3013 63015 BZMF +2
009110,000785: 07,3014 04770 TC ERRORS
009111,000786: 07,3015 00002 TC Q # SHOULD GO TO BZMFCHK +1
009112,000787: 07,3016 04770 TC ERRORS
009113,000788:
009114,000789: # NORMAL USE OF MP
009115,000790: # 37777 X 2
009116,000791: 07,3017 34725 MP1++ CA S+MAX # 37777
009117,000792: 07,3020 00006 EXTEND
009118,000793: 07,3021 74713 MP S+2 # C(A) = +1, C(L. = 37776
009119,000794: 07,3022 60001 AD L
009120,000795: 07,3023 55034 TS KEEP1 # 37777
009121,000796: 07,3024 00006 MP1+- EXTEND
009122,000797: 07,3025 74744 MP S-2 # C(A) = -1, C(L) = 40001
009123,000798: 07,3026 60001 AD L
009124,000799: 07,3027 55035 TS KEEP2 # 40000
009125,000800: 07,3030 00006 MP1-+ EXTEND
009126,000801: 07,3031 74713 MP S+2 # C(A) = -1, C(L) = 40001
009127,000802: 07,3032 60001 AD L
009128,000803: 07,3033 55036 TS KEEP3 # 40000
009129,000804: 07,3034 00006 MP1-- EXTEND
Page 225 |
009131,000806: 07,3035 74744 MP S-2 # C(A) = +1, C(L) = 37776
009132,000807: 07,3036 60001 AD L # 37777
009133,000808: 07,3037 61036 AD KEEP3 # 77777
009134,000809: 07,3040 61035 AD KEEP2 # 40000
009135,000810: 07,3041 61034 AD KEEP1 # 77777
009136,000811: 07,3042 04754 TC -0CHK
009137,000812: # 37777 X 37777
009138,000813: 07,3043 34725 MP2++ CA S+MAX # 37777
009139,000814: 07,3044 00006 EXTEND # CHECKS RSC PULSE
009140,000815: 07,3045 70000 MP A # C(A) = 37776, C(L) = +1
009141,000816: 07,3046 60001 AD L
009142,000817: 07,3047 55034 TS KEEP1 # 37777
009143,000818: 07,3050 00006 MP2+- EXTEND
009144,000819: 07,3051 74726 MP S-MAX # C(A) = 40001, C(L) = -1
009145,000820: 07,3052 60001 AD L
009146,000821: 07,3053 55035 TS KEEP2 # 40000
009147,000822: 07,3054 00006 MP2-+ EXTEND
009148,000823: 07,3055 74725 MP S+MAX # C(A) = 40001, C(L) = -1
009149,000824: 07,3056 60001 AD L
009150,000825: 07,3057 55036 TS KEEP3 # 40000
009151,000826: 07,3060 00006 MP2-- EXTEND
009152,000827: 07,3061 74726 MP S-MAX # C(A) = 37776, C(L) = +1
009153,000828: 07,3062 60001 AD L # 37777
009154,000829: 07,3063 61036 AD KEEP3 # 77777
009155,000830: 07,3064 61035 AD KEEP2 # 40000
009156,000831: 07,3065 61034 AD KEEP1 # 77777
009157,000832: 07,3066 04754 TC -0CHK
009158,000833: # C(A) = NON-ZERO, C(K) = ZERO
009159,000834: # RESULT IS ALWAYS POSITIVE ZERO
009160,000835: 07,3067 34725 MP3++ CA S+MAX # 37777
009161,000836: 07,3070 00006 EXTEND
009162,000837: 07,3071 74711 MP S+ZERO
009163,000838: 07,3072 60001 AD L
009164,000839: 07,3073 04753 TC -0CHK -1
009165,000840: 07,3074 34712 MP3+- CA S+1
009166,000841: 07,3075 00006 EXTEND
009167,000842: 07,3076 74746 MP S-ZERO
009168,000843: 07,3077 60001 AD L
009169,000844: 07,3100 04753 TC -0CHK -1
009170,000845: 07,3101 34745 MP3-+ CA S-1
009171,000846: 07,3102 00006 EXTEND
009172,000847: 07,3103 74711 MP S+ZERO
009173,000848: 07,3104 60001 AD L
009174,000849: 07,3105 04753 TC -0CHK -1
009175,000850: 07,3106 34746 MP3-- CA S-ZERO
009176,000851: 07,3107 00006 EXTEND
009177,000852: 07,3110 74746 MP S-ZERO
009178,000853: 07,3111 60001 AD L
009179,000854: 07,3112 04753 TC -0CHK -1
009180,000855: # C(A) = ZERO, C(K) = NON-ZERO,
Page 226 |
009182,000857: # RESULT IS + ZERO FOR A POSITIVE SIGN AND NEGATIVE
009183,000858: # ZERO FOR Z NEGATIVE SIGN
009184,000859: 07,3113 34711 MP4++ CA S+ZERO
009185,000860: 07,3114 00006 EXTEND
009186,000861: 07,3115 74725 MP S+MAX
009187,000862: 07,3116 60001 AD L
009188,000863: 07,3117 04753 TC -0CHK -1
009189,000864: 07,3120 00006 MP4+- EXTEND
009190,000865: 07,3121 74745 MP S-1
009191,000866: 07,3122 60001 AD L
009192,000867: 07,3123 04754 TC -0CHK
009193,000868: 07,3124 40000 MP4-+ CS A
009194,000869: 07,3125 00006 EXTEND
009195,000870: 07,3126 74716 MP S+5
009196,000871: 07,3127 60001 AD L
009197,000872: 07,3130 04754 TC -0CHK
009198,000873: 07,3131 40000 MP4-- CS A
009199,000874: 07,3132 00006 EXTEND
009200,000875: 07,3133 74746 MP S-ZERO
009201,000876: 07,3134 60001 AD L
009202,000877: 07,3135 04753 TC -0CHK -1
009203,000878: # MULTIPLY ZERO X ZERO
009204,000879: # RESULT IS ALWAYS PLUS ZERO
009205,000880: 07,3136 34711 MP5++ CA S+ZERO
009206,000881: 07,3137 55034 TS KEEP1
009207,000882: 07,3140 00006 EXTEND
009208,000883: 07,3141 71034 MP KEEP1
009209,000884: 07,3142 60001 AD L
009210,000885: 07,3143 04753 TC -0CHK -1
009211,000886: 07,3144 00006 MP5+- EXTEND
009212,000887: 07,3145 74746 MP S-ZERO
009213,000888: 07,3146 60001 AD L
009214,000889: 07,3147 04753 TC -0CHK -1
009215,000890: 07,3150 34746 MP5-+ CA S-ZERO
009216,000891: 07,3151 00006 EXTEND
009217,000892: 07,3152 74711 MP S+ZERO
009218,000893: 07,3153 60001 AD L
009219,000894: 07,3154 04753 TC -0CHK -1
009220,000895: 07,3155 34746 MP5-- CA S-ZERO
009221,000896: 07,3156 00006 EXTEND
009222,000897: 07,3157 74746 MP S-ZERO
009223,000898: 07,3160 04753 TC -0CHK -1
009224,000899:
009225,000900: 07,3161 33163 CA CONTINU
009226,000901: 07,3162 04105 TC BANKJUMP
009227,000902: 07,3163 20000 CONTINU CADR DV1++ -1 # CONTINUE WITH INSTRUCTION CHECK
009228,000903:
009229,000904: 10,2000 SETLOC 30000
009230,000905:
009231,000906: 10,2000 04224 TC CHECKNJ # CHECK FOR NEW JOB
009232,000907:
Page 227 |
009234,000909: # NORMAL USE OF DV ... REMAINDER HAS SIGN OF DIVIDEND
009235,000910: # 1/4 DIVIDED BY 3/8
009236,000911: # C(A) = 25252 WITH A + QUOTIENT AND 52525 WITH A - QUOTIENT.
009237,000912: # C(L) = REMAINDER = /100000/ WITH SIGN OF DIVIDEND.
009238,000913: 10,2001 34747 DV1++ CA DV1CON # 14000
009239,000914: 10,2002 55042 TS KEEP7 # 14000, +3/8
009240,000915: 10,2003 54002 TS Q
009241,000916: 10,2004 40000 CS A
009242,000917: 10,2005 55041 TS KEEP6 # 63000, -3/8
009243,000918: 10,2006 34711 CA S+ZERO
009244,000919: 10,2007 54001 TS L
009245,000920: 10,2010 34706 CA SBIT13 # 10000
009246,000921: 10,2011 00006 EXTEND
009247,000922: 10,2012 10002 DV Q # CHECKS RSC PULSE
009248,000923: 10,2013 55034 TS KEEP1 # 25252
009249,000924: 10,2014 34711 CA S+ZERO
009250,000925: 10,2015 22000 DV1+- LXCH A
009251,000926: 10,2016 00006 EXTEND
009252,000927: 10,2017 11041 DV KEEP6
009253,000928: 10,2020 61034 AD KEEP1
009254,000929: 10,2021 04754 TC -0CHK
009255,000930: 10,2022 34746 CA S-ZERO
009256,000931: 10,2023 22000 LXCH A
009257,000932: 10,2024 40000 DV1-+ CS A
009258,000933: 10,2025 00006 EXTEND
009259,000934: 10,2026 11042 DV KEEP7
009260,000935: 10,2027 55034 TS KEEP1 # 52525
009261,000936: 10,2030 34746 CA S-ZERO
009262,000937: 10,2031 22000 DV1-- LXCH A
009263,000938: 10,2032 00006 EXTEND
009264,000939: 10,2033 11041 DV KEEP6
009265,000940: 10,2034 61034 AD KEEP1
009266,000941: 10,2035 04754 TC -0CHK
009267,000942: 10,2036 30001 CA L
009268,000943: 10,2037 64706 AD SBIT13
009269,000944: 10,2040 04754 TC -0CHK
009270,000945: # 1/2 TO 15TH DIVIDED BY 1/2 TO 14TH
009271,000946: # C(A) SHOULD BE 1/2 AND CONTENTS OF L SHOULD BE ZERO
009272,000947: 10,2041 34712 DV2++ CA S+1
009273,000948: 10,2042 55042 TS KEEP7 # 00001, DIVISOR
009274,000949: 10,2043 40000 CS A
009275,000950: 10,2044 55041 TS KEEP6 # 77776, DIVISOR
009276,000951: 10,2045 34711 CA S+ZERO
009277,000952: 10,2046 34707 CA SBIT14 # 20000
009278,000953: 10,2047 54001 TS L
009279,000954: 10,2050 34711 CA S+ZERO
009280,000955: 10,2051 00006 EXTEND
009281,000956: 10,2052 11042 DV KEEP7 # C(A) = 1/2, C(L) = +0
009282,000957: 10,2053 55034 TS KEEP1
009283,000958: 10,2054 22000 DV2+- LXCH A
Page 228 |
009285,000960: 10,2055 00006 EXTEND
009286,000961: 10,2056 11041 DV KEEP6
009287,000962: 10,2057 55035 TS KEEP2 # -1/2
009288,000963: 10,2060 61034 AD KEEP1
009289,000964: 10,2061 04754 TC -0CHK
009290,000965: 10,2062 31035 CA KEEP2
009291,000966: 10,2063 22000 LXCH A
009292,000967: 10,2064 40000 DV2-+ CS A
009293,000968: 10,2065 00006 EXTEND
009294,000969: 10,2066 11042 DV KEEP7
009295,000970: 10,2067 55035 TS KEEP2
009296,000971: 10,2070 22000 DV2-- LXCH A
009297,000972: 10,2071 00006 EXTEND
009298,000973: 10,2072 11041 DV KEEP6
009299,000974: 10,2073 55034 TS KEEP1
009300,000975: 10,2074 61035 AD KEEP2
009301,000976: 10,2075 04754 TC -0CHK
009302,000977: 10,2076 41034 CS KEEP1 # MAKE SURE QUOTIENT IS 1/2
009303,000978: 10,2077 64707 AD SBIT14
009304,000979: 10,2100 04754 TC -0CHK
009305,000980: 10,2101 30001 CA L
009306,000981: 10,2102 04754 TC -0CHK
009307,000982: # SAME AS PREVIOUS DIVISION EXCEPT A AND L WILL HAVE OPPOSITE SIGNS
009308,000983: # BEFORE DIVISION. SINCE A WILL ALWAYS BE ZERO, THE SIGN OF THE QUOTIENT
009309,000984: # WILL DEPEND ON THE SIGN OF L AND THE SIGN OF THE DIVISOR.
009310,000985: 10,2103 34707 DV3++ CA SBIT14 # 20000
009311,000986: 10,2104 54001 TS L
009312,000987: 10,2105 34746 CA S-ZERO
009313,000988: 10,2106 00006 EXTEND
009314,000989: 10,2107 11042 DV KEEP7
009315,000990: 10,2110 55034 TS KEEP1 # 20000
009316,000991: 10,2111 22000 DV3+- LXCH A
009317,000992: 10,2112 40000 CS A # A = -0
009318,000993: 10,2113 00006 EXTEND
009319,000994: 10,2114 11041 DV KEEP6
009320,000995: 10,2115 61034 AD KEEP1
009321,000996: 10,2116 04754 TC -0CHK
009322,000997: 10,2117 44707 CS SBIT14 # -1/2
009323,000998: 10,2120 22000 DV3-+ LXCH A
009324,000999: 10,2121 00006 EXTEND
009325,001000: 10,2122 11042 DV KEEP7
009326,001001: 10,2123 55034 TS KEEP1
009327,001002: 10,2124 22000 DV3-- LXCH A
009328,001003: 10,2125 40000 CS A # A = +0
009329,001004: 10,2126 00006 EXTEND
009330,001005: 10,2127 11041 DV KEEP6
009331,001006: 10,2130 61034 AD KEEP1
009332,001007: 10,2131 04754 TC -0CHK
009333,001008: 10,2132 40001 CS L
009334,001009: 10,2133 04753 TC -0CHK -1
009335,001010:
Page 229 |
009337,001012: # C(A) = 17777 AND C(L) = 37777. THIS IS DIVIDED BY 20000. THE RESULT
009338,001013: # SHOULD BE +-/37777/ AND THE REMAINDER +-/17777/
009339,001014: 10,2134 34725 DV4++ CA S+MAX
009340,001015: 10,2135 54001 TS L
009341,001016: 10,2136 34707 CA SBIT14
009342,001017: 10,2137 55042 TS KEEP7 # 20000
009343,001018: 10,2140 40000 CS A
009344,001019: 10,2141 55041 TS KEEP6 # 57777
009345,001020: 10,2142 34723 CA S13BITS # 17777
009346,001021: 10,2143 00006 EXTEND
009347,001022: 10,2144 11042 DV KEEP7
009348,001023: 10,2145 55034 TS KEEP1
009349,001024: 10,2146 22000 DV4+- LXCH A
009350,001025: 10,2147 00006 EXTEND
009351,001026: 10,2150 11041 DV KEEP6
009352,001027: 10,2151 55035 TS KEEP2
009353,001028: 10,2152 61034 AD KEEP1
009354,001029: 10,2153 04754 TC -0CHK
009355,001030: 10,2154 31035 CA KEEP2
009356,001031: 10,2155 22000 LXCH A
009357,001032: 10,2156 40000 DV4-+ CS A
009358,001033: 10,2157 00006 EXTEND
009359,001034: 10,2160 11042 DV KEEP7
009360,001035: 10,2161 61034 AD KEEP1
009361,001036: 10,2162 04754 TC -0CHK
009362,001037: 10,2163 31035 CA KEEP2
009363,001038: 10,2164 22000 DV4-- LXCH A
009364,001039: 10,2165 00006 EXTEND
009365,001040: 10,2166 11041 DV KEEP6
009366,001041: 10,2167 55036 TS KEEP3
009367,001042: 10,2170 61035 AD KEEP2
009368,001043: 10,2171 04754 TC -0CHK
009369,001044: 10,2172 41036 CS KEEP3
009370,001045: 10,2173 64725 AD S+MAX
009371,001046: 10,2174 04754 TC -0CHK
009372,001047: 10,2175 30001 CA L
009373,001048: 10,2176 64723 AD S13BITS
009374,001049: 10,2177 04754 TC -0CHK
009375,001050: # C(A) = +-/17777/ AND C(L) = +-/37777/ WITH OPPOSITE SIGN BEFORE DEVISION
009376,001051: # THE QUOTIENT SHOULD BE +-/37774/ WITH THE SIGN DEPENDING ON THE SIGN OF
009377,001052: # A AND THE SIGN OF THE DEVISOR. THE C(L) = +-/1/ DEPENDING ON THE SIGN
009378,001053: # OF A.
009379,001054: 10,2200 44725 DV5++ CS S+MAX
009380,001055: 10,2201 54001 TS L # 40000
009381,001056: 10,2202 34723 CA S13BITS # 17777
009382,001057: 10,2203 00006 EXTEND
009383,001058: 10,2204 11042 DV KEEP7
009384,001059: 10,2205 55034 TS KEEP1 # 37774
009385,001060: 10,2206 56001 XCH L
009386,001061: 10,2207 04761 TC -1CHK -1
009387,001062:
Page 230 |
009389,001064: 10,2210 34726 DV5+- CA S-MAX
009390,001065: 10,2211 54001 TS L # 40000
009391,001066: 10,2212 34723 CA S13BITS # 17777
009392,001067: 10,2213 00006 EXTEND
009393,001068: 10,2214 11041 DV KEEP6 # C(A) = -37774, C(L) = +1
009394,001069: 10,2215 61034 AD KEEP1
009395,001070: 10,2216 04754 TC -0CHK
009396,001071: 10,2217 56001 XCH L
009397,001072: 10,2220 04761 TC -1CHK -1
009398,001073: 10,2221 34725 DV5-+ CA S+MAX
009399,001074: 10,2222 54001 TS L # 37777
009400,001075: 10,2223 44723 CS S13BITS # 60000
009401,001076: 10,2224 00006 EXTEND
009402,001077: 10,2225 11042 DV KEEP7 # C(A) = -37774, C(L) = -1
009403,001078: 10,2226 55035 TS KEEP2
009404,001079: 10,2227 61034 AD KEEP1
009405,001080: 10,2230 04754 TC -0CHK
009406,001081: 10,2231 56001 XCH L
009407,001082: 10,2232 04762 TC -1CHK
009408,001083: 10,2233 34725 DV5-- CA S+MAX
009409,001084: 10,2234 54001 TS L # 37777
009410,001085: 10,2235 44723 CS S13BITS # 60000
009411,001086: 10,2236 00006 EXTEND
009412,001087: 10,2237 11041 DV KEEP6 # C(A) = 37774, C(L) = -1
009413,001088: 10,2240 61035 AD KEEP2
009414,001089: 10,2241 04754 TC -0CHK
009415,001090: 10,2242 56001 XCH L
009416,001091: 10,2243 04762 TC -1CHK
009417,001092: 10,2244 31035 CA KEEP2 # -37774
009418,001093: 10,2245 64744 AD S-2 # -37776
009419,001094: 10,2246 64725 AD S+MAX # +1
009420,001095: 10,2247 04761 TC -1CHK -1 # CHECK THAT QUOTIENT IS +-/37774/
009421,001096:
009422,001097: # DIVIDE SAME (37776). THE RESULT SHOULD BE MAXIMUM AND THE REMAINDER
009423,001098: # SHOULD BE THE SAME VALUE AS THE DIVISOR WITH THE SAME SIGN AS THE
009424,001099: # DIVIDEND
009425,001100: 10,2250 34711 DV6++ CA S+ZERO
009426,001101: 10,2251 54001 TS L
009427,001102: 10,2252 44750 CS DV2CON # 37776
009428,001103: 10,2253 55041 TS KEEP6 # 40001
009429,001104: 10,2254 40000 CS A
009430,001105: 10,2255 55042 TS KEEP7 # 37776
009431,001106: 10,2256 00006 EXTEND
009432,001107: 10,2257 11042 DV KEEP7
009433,001108: 10,2260 40000 CS A
009434,001109: 10,2261 60001 AD L
009435,001110: 10,2262 04762 TC -1CHK
009436,001111: 10,2263 34711 CA S+ZERO
009437,001112: 10,2264 22000 DV6+- LXCH A
009438,001113: 10,2265 00006 EXTEND
Page 231 |
009440,001115: 10,2266 11041 DV KEEP6
009441,001116: 10,2267 60001 AD L
009442,001117: 10,2270 04762 TC -1CHK
009443,001118: 10,2271 34746 CA S-ZERO
009444,001119: 10,2272 22000 DV6-+ LXCH A
009445,001120: 10,2273 40000 CS A
009446,001121: 10,2274 00006 EXTEND
009447,001122: 10,2275 11042 DV KEEP7
009448,001123: 10,2276 40000 CS A
009449,001124: 10,2277 60001 AD L
009450,001125: 10,2300 04761 TC -1CHK -1
009451,001126: 10,2301 34746 CA S-ZERO
009452,001127: 10,2302 22000 DV6-- LXCH A
009453,001128: 10,2303 00006 EXTEND
009454,001129: 10,2304 11041 DV KEEP6
009455,001130: 10,2305 60001 AD L
009456,001131: 10,2306 04761 TC -1CHK -1
009457,001132: 10,2307 40001 CS L
009458,001133: 10,2310 61041 AD KEEP6
009459,001134: 10,2311 04754 TC -0CHK
009460,001135: # DIVIDE SAME (ZERO). THE RESULT SHOULD BE MAXIMUM AND THE REMAINDER
009461,001136: # SHOULD BE THE SAME VALUE AS THE DIVISOR WITH THE SAME SIGN AS THE
009462,001137: # DIVIDEND.
009463,001138: 10,2312 44711 DV7++ CS S+ZERO
009464,001139: 10,2313 55041 TS KEEP6 # -0
009465,001140: 10,2314 40000 CS A
009466,001141: 10,2315 55042 TS KEEP7 # +0
009467,001142: 10,2316 54001 TS L
009468,001143: 10,2317 00006 EXTEND
009469,001144: 10,2320 11042 DV KEEP7
009470,001145: 10,2321 64726 AD S-MAX
009471,001146: 10,2322 04754 TC -0CHK
009472,001147: 10,2323 22000 DV7+- LXCH A # C(A) = C(L) = +0
009473,001148: 10,2324 00006 EXTEND
009474,001149: 10,2325 11041 DV KEEP6
009475,001150: 10,2326 64725 AD S+MAX
009476,001151: 10,2327 04754 TC -0CHK
009477,001152: 10,2330 40000 CS A
009478,001153: 10,2331 22000 DV7-+ LXCH A
009479,001154: 10,2332 40000 CS A # C(A) = C(L) = -0
009480,001155: 10,2333 00006 EXTEND
009481,001156: 10,2334 11042 DV KEEP7
009482,001157: 10,2335 64725 AD S+MAX
009483,001158: 10,2336 04754 TC -0CHK
009484,001159: 10,2337 40000 CS A
009485,001160: 10,2340 22000 DV7-- LXCH A # C(A) = C(L) = -0
009486,001161: 10,2341 00006 EXTEND
009487,001162: 10,2342 11041 DV KEEP6
009488,001163: 10,2343 64726 AD S-MAX
009489,001164: 10,2344 04754 TC -0CHK
Page 232 |
009491,001166: 10,2345 40001 CS L
009492,001167: 10,2346 04753 TC -0CHK -1
009493,001168:
009494,001169: # DEVIDE SAME (ZERO). THE CONTENTS OF THE A REGISTER AND L REGISTER WILL
009495,001170: # HAVE OPPOSITE SIGNS BEFORE DEVISION. THE SIGN OF THE QUOTIENT WILL
009496,001171: # DEPEND ON THE SIGN OF THE L REGISTER BEFORE DEVISION AND THE SIGN OF
009497,001172: # THE DEVISOR. THE SIGN OF THE REMAINDER IS THE SAME SIGN AS THE SIGN OF
009498,001173: # THE L REGISTER BEFORE DEVISION. C(L) REMAINS SAME
009499,001174: 10,2347 34711 DV8++ CA S+ZERO
009500,001175: 10,2350 55042 TS KEEP7 # +0
009501,001176: 10,2351 54001 TS L
009502,001177: 10,2352 40000 CS A
009503,001178: 10,2353 55041 TS KEEP6 # -0
009504,001179: 10,2354 00006 EXTEND # A = -0, L = +0
009505,001180: 10,2355 11042 DV KEEP7 # A = L = +0
009506,001181: 10,2356 55034 TS KEEP1
009507,001182: 10,2357 30001 CA L # C(A) = C(L) = +0
009508,001183: 10,2360 04753 TC -0CHK -1
009509,001184: 10,2361 40000 DV8+- CS A
009510,001185: 10,2362 00006 EXTEND # A = -0, L = +0
009511,001186: 10,2363 11041 DV KEEP6 # A = -0, L = +0
009512,001187: 10,2364 61034 AD KEEP1
009513,001188: 10,2365 04754 TC -0CHK
009514,001189: 10,2366 40000 CS A
009515,001190: 10,2367 56001 XCH L # PUT -0 IN L
009516,001191: 10,2370 04753 TC -0CHK -1 # CHECK C(L)
009517,001192: 10,2371 00006 DV8-+ EXTEND # A = +0, L = -0
009518,001193: 10,2372 11042 DV KEEP7 # A = L = -0
009519,001194: 10,2373 55035 TS KEEP2
009520,001195: 10,2374 61034 AD KEEP1
009521,001196: 10,2375 04754 TC -0CHK
009522,001197: 10,2376 40000 CS A
009523,001198: 10,2377 56001 XCH L # PUT -0 IN L
009524,001199: 10,2400 04754 TC -0CHK # CHECK C(L)
009525,001200: 10,2401 00006 DV8-- EXTEND # A = +0, L = -0
009526,001201: 10,2402 11041 DV KEEP6 # A = +0, L = -0
009527,001202: 10,2403 61035 AD KEEP2
009528,001203: 10,2404 04754 TC -0CHK
009529,001204: 10,2405 34725 CA S+MAX # CHECK QUOTIENT IS CORRECT
009530,001205: 10,2406 61035 AD KEEP2
009531,001206: 10,2407 04754 TC -0CHK
009532,001207: 10,2410 56001 XCH L
009533,001208: 10,2411 04754 TC -0CHK # CHECK C(L)
009534,001209:
009535,001210: # INPUT-OUTPUT INSTRUCTIONS
009536,001211: # NORMAL USE OF READ AND WRITE
009537,001212: 10,2412 34745 IN-OUT1 CA S-1
009538,001213: 10,2413 00006 EXTEND
009539,001214: 10,2414 01001 WRITE L # 77776
009540,001215: 10,2415 40000 CS A # 00001
Page 233 |
009542,001217: 10,2416 00006 EXTEND
009543,001218: 10,2417 00001 READ L # 77776
009544,001219: 10,2420 04762 TC -1CHK
009545,001220: 10,2421 34726 CA S-MAX
009546,001221: 10,2422 64726 AD S-MAX # C(A) = 10 - 00001
009547,001222: 10,2423 00006 EXTEND
009548,001223: 10,2424 01002 WRITE Q
009549,001224: 10,2425 40000 CS A # 01 - 37776
009550,001225: 10,2426 00006 EXTEND
009551,001226: 10,2427 00002 READ Q # 10 - 00001
009552,001227: 10,2430 55034 TS KEEP1
009553,001228: 10,2431 04770 TC ERRORS
009554,001229: 10,2432 31034 CA KEEP1
009555,001230: 10,2433 64725 AD S+MAX
009556,001231: 10,2434 04761 TC -1CHK -1
009557,001232:
009558,001233: # NORMAL USE OF RAND, RAND = READ AND MASK
009559,001234: 10,2435 34711 RANDCHK CA S+ZERO
009560,001235: 10,2436 54001 TS L
009561,001236: 10,2437 00006 EXTEND
009562,001237: 10,2440 02001 RAND L # 00000, 00000
009563,001238: 10,2441 04753 TC -0CHK -1
009564,001239: 10,2442 34746 CA S-ZERO
009565,001240: 10,2443 00006 EXTEND
009566,001241: 10,2444 02001 RAND L # 77777, 00000
009567,001242: 10,2445 04753 TC -0CHK -1
009568,001243: 10,2446 40000 CS A
009569,001244: 10,2447 54001 TS L
009570,001245: 10,2450 40000 CS A
009571,001246: 10,2451 00006 EXTEND
009572,001247: 10,2452 02001 RAND L # 00000, 77777
009573,001248: 10,2453 04753 TC -0CHK -1
009574,001249: 10,2454 34746 CA S-ZERO
009575,001250: 10,2455 00006 EXTEND
009576,001251: 10,2456 02001 RAND L # 77777, 77777
009577,001252: 10,2457 04754 TC -0CHK
The following test is slightly wrong. Its proper operation relies on the Q register storing an overflow condition. However, it is run without interrupts inhibited, so it's possible for an interrupt to occur and destroy Q's overflow (via QRUPT). The test designers were likely either unaware of this possibility, or thought that overlfow in Q would inhibit interrupts like it would in A. Or, perhaps, the digital simulator could have been wrong as discussed above for "DCA L". A correct version of the test would have an INHINT immediately prior to "XCH Q", and a RELINT sometime after "RAND Q". |
009586,001261: 10,2460 34725 RANDOV CA S+MAX
009587,001262: 10,2461 64713 AD S+2 # 01 - 00001
009588,001263: 10,2462 56002 XCH Q
009589,001264: 10,2463 34746 CA S-ZERO # 77777
009590,001265: 10,2464 00006 EXTEND
009591,001266: 10,2465 02002 RAND Q # 01 - 00001
009592,001267: 10,2466 55034 TS KEEP1
009593,001268: 10,2467 04770 TC ERRORS
009594,001269: 10,2470 04761 TC -1CHK -1
009595,001270: 10,2471 41034 CS KEEP1
009596,001271: 10,2472 04762 TC -1CHK
009597,001272:
009598,001273: # NORMAL USE OF WAND, WAND = WRITE AND MASK
009599,001274: 10,2473 34711 WANDCHK CA S+ZERO
Page 234 |
009601,001276: 10,2474 54001 TS L
009602,001277: 10,2475 00006 EXTEND
009603,001278: 10,2476 03001 WAND L # 00000, 00000
009604,001279: 10,2477 60001 AD L
009605,001280: 10,2500 04753 TC -0CHK -1
009606,001281: 10,2501 34746 CA S-ZERO
009607,001282: 10,2502 00006 EXTEND
009608,001283: 10,2503 03001 WAND L # 77777, 00000
009609,001284: 10,2504 60001 AD L
009610,001285: 10,2505 04753 TC -0CHK -1
009611,001286: 10,2506 40000 CS A
009612,001287: 10,2507 54001 TS L
009613,001288: 10,2510 40000 CS A
009614,001289: 10,2511 00006 EXTEND
009615,001290: 10,2512 03001 WAND L # 00000, 77777
009616,001291: 10,2513 60001 AD L
009617,001292: 10,2514 04753 TC -0CHK -1
009618,001293: 10,2515 34746 CA S-ZERO
009619,001294: 10,2516 54001 TS L
009620,001295: 10,2517 00006 EXTEND
009621,001296: 10,2520 03001 WAND L # 77777, 77777
009622,001297: 10,2521 60001 AD L
009623,001298: 10,2522 04754 TC -0CHK
The following test is slightly wrong. (See the discussion for RANDOV above.) |
009625,001300: 10,2523 34725 WANDUF CA S+MAX
009626,001301: 10,2524 64713 AD S+2 # 01 - 00001
009627,001302: 10,2525 56002 XCH Q
009628,001303: 10,2526 34746 CA S-ZERO # 77777
009629,001304: 10,2527 00006 EXTEND
009630,001305: 10,2530 03002 WAND Q
009631,001306: 10,2531 55035 TS KEEP2
009632,001307: 10,2532 04770 TC ERRORS
009633,001308: 10,2533 30002 CA Q
009634,001309: 10,2534 55034 TS KEEP1
009635,001310: 10,2535 04770 TC ERRORS
009636,001311: 10,2536 41034 CS KEEP1
009637,001312: 10,2537 04762 TC -1CHK
009638,001313: 10,2540 41035 CS KEEP2
009639,001314: 10,2541 04762 TC -1CHK
009640,001315:
009641,001316: # NORMAL USE OF ROR, READ AND SUPERIMPOSE
009642,001317: 10,2542 34711 RORCHK CA S+ZERO
009643,001318: 10,2543 54001 TS L
009644,001319: 10,2544 00006 EXTEND
009645,001320: 10,2545 04001 ROR L # 00000, 00000
009646,001321: 10,2546 04753 TC -0CHK -1
009647,001322: 10,2547 30001 CA L
009648,001323: 10,2550 04753 TC -0CHK -1
009649,001324: 10,2551 34746 CA S-ZERO
009650,001325: 10,2552 00006 EXTEND
009651,001326: 10,2553 04001 ROR L # 77777, 00000
009652,001327:
Page 235 |
009654,001329: 10,2554 04754 TC -0CHK
009655,001330: 10,2555 30001 CA L
009656,001331: 10,2556 04753 TC -0CHK -1
009657,001332: 10,2557 40000 CS A
009658,001333: 10,2560 54001 TS L
009659,001334: 10,2561 40000 CS A
009660,001335: 10,2562 00006 EXTEND
009661,001336: 10,2563 04001 ROR L # 00000, 77777
009662,001337: 10,2564 04754 TC -0CHK
009663,001338: 10,2565 30001 CA L
009664,001339: 10,2566 04754 TC -0CHK
009665,001340: 10,2567 34746 CA S-ZERO
009666,001341: 10,2570 00006 EXTEND
009667,001342: 10,2571 04001 ROR L # 77777, 77777
009668,001343: 10,2572 04754 TC -0CHK
The following test is slightly wrong. (See the discussion for RANDOV above.) |
009670,001345: 10,2573 34726 ROROV CA S-MAX
009671,001346: 10,2574 64744 AD S-2 # 10 - 37776
009672,001347: 10,2575 56002 XCH Q
009673,001348: 10,2576 34725 CA S+MAX
009674,001349: 10,2577 64712 AD S+1 # 01 - 00000
009675,001350: 10,2600 00006 EXTEND
009676,001351: 10,2601 04002 ROR Q # 11 - 37776
009677,001352: 10,2602 55034 TS KEEP1
009678,001353: 10,2603 02605 TC +2
009679,001354: 10,2604 04770 TC ERRORS
009680,001355: 10,2605 31034 CA KEEP1
009681,001356: 10,2606 04762 TC -1CHK
009682,001357:
009683,001358: # NORMAL USE OF WOR, WOR = WRITE AND SUPERIMPOSE
009684,001359: 10,2607 34711 WORCHK CA S+ZERO
009685,001360: 10,2610 54001 TS L
009686,001361: 10,2611 00006 EXTEND
009687,001362: 10,2612 05001 WOR L # 00000, 00000
009688,001363: 10,2613 04753 TC -0CHK -1
009689,001364: 10,2614 30001 CA L
009690,001365: 10,2615 04753 TC -0CHK -1
009691,001366: 10,2616 34746 CA S-ZERO
009692,001367: 10,2617 00006 EXTEND
009693,001368: 10,2620 05001 WOR L # 77777, 00000
009694,001369: 10,2621 04754 TC -0CHK
009695,001370: 10,2622 30001 CA L
009696,001371: 10,2623 04754 TC -0CHK
009697,001372: 10,2624 40000 CS A
009698,001373: 10,2625 54001 TS L
009699,001374: 10,2626 40000 CS A
009700,001375: 10,2627 00006 EXTEND
009701,001376: 10,2630 05001 WOR L # 00000, 77777
009702,001377: 10,2631 04754 TC -0CHK
009703,001378: 10,2632 30001 CA L
009704,001379: 10,2633 04754 TC -0CHK
Page 236 |
009706,001381: 10,2634 34726 CA S-MAX
009707,001382: 10,2635 00006 EXTEND
009708,001383: 10,2636 05001 WOR L # 77777, 77777
009709,001384: 10,2637 04754 TC -0CHK
009710,001385: 10,2640 30001 CA L
009711,001386: 10,2641 04754 TC -0CHK
The following test is slightly wrong. (See the discussion for RANDOV above.) |
009713,001388: 10,2642 34726 WOROV CA S-MAX
009714,001389: 10,2643 64744 AD S-2 # 10 - 37776
009715,001390: 10,2644 56002 XCH Q
009716,001391: 10,2645 34725 CA S+MAX
009717,001392: 10,2646 64712 AD S+1 # 01 - 00000
009718,001393: 10,2647 00006 EXTEND
009719,001394: 10,2650 05002 WOR Q # 11 - 37776
009720,001395: 10,2651 55035 TS KEEP2 # SHOULD NOT SKIP
009721,001396: 10,2652 12654 TCF +2
009722,001397: 10,2653 04770 TC ERRORS
009723,001398: 10,2654 56002 XCH Q
009724,001399: 10,2655 55036 TS KEEP3
009725,001400: 10,2656 02660 TC +2
009726,001401: 10,2657 04770 TC ERRORS
009727,001402: 10,2660 31036 CA KEEP3 # CHECK C(Q)
009728,001403: 10,2661 04762 TC -1CHK
009729,001404: 10,2662 31035 CA KEEP2
009730,001405: 10,2663 04762 TC -1CHK # CHECK C(A)
009731,001406:
009732,001407: # NORMAL USE OF RXOR
009733,001408: 10,2664 34711 RXORCHK CA S+ZERO
009734,001409: 10,2665 54001 TS L
009735,001410: 10,2666 00006 EXTEND
009736,001411: 10,2667 06001 RXOR L # 00000, 00000
009737,001412: 10,2670 04753 TC -0CHK -1
009738,001413: 10,2671 34746 CA S-ZERO
009739,001414: 10,2672 00006 EXTEND
009740,001415: 10,2673 06001 RXOR L # 77777, 00000
009741,001416: 10,2674 04754 TC -0CHK
009742,001417: 10,2675 30001 CA L
009743,001418: 10,2676 04753 TC -0CHK -1
009744,001419: 10,2677 40000 CS A
009745,001420: 10,2700 54001 TS L
009746,001421: 10,2701 40000 CS A
009747,001422: 10,2702 00006 EXTEND
009748,001423: 10,2703 06001 RXOR L # 00000, 77777
009749,001424: 10,2704 04754 TC -0CHK
009750,001425: 10,2705 34746 CA S-ZERO
009751,001426: 10,2706 00006 EXTEND
009752,001427: 10,2707 06001 RXOR L # 77777, 77777
009753,001428: 10,2710 04753 TC -0CHK -1
009754,001429: 10,2711 30001 CA L
009755,001430: 10,2712 04754 TC -0CHK
009756,001431: 10,2713 40000 CS A
Page 237 |
009758,001433: 10,2714 54002 TS Q
The following test is slightly wrong. (See the discussion for RANDOV above.) |
009760,001435: 10,2715 34725 RXORUV CA S+MAX
009761,001436: 10,2716 64713 AD S+2 # 01 - 00001
009762,001437: 10,2717 00006 EXTEND
009763,001438: 10,2720 06002 RXOR Q # 10 - 37776, C(Q) = -0
009764,001439: 10,2721 55034 TS KEEP1
009765,001440: 10,2722 04770 TC ERRORS
009766,001441: 10,2723 31034 CA KEEP1
009767,001442: 10,2724 04762 TC -1CHK
009768,001443:
009769,001444: 10,2725 04224 TC CHECKNJ # CHECK FOR NEW JOB
009770,001445: 10,2726 02732 TC XTRANDX
009771,001446:
009772,001447: # NEXT THREE CONSTANTS ARE ADDRESSESS USED BY EXTRACODE INSTRUCTIONS
009773,001448: 10,2727 02740 ADRSBZMF ADRES NDXBZMF
009774,001449: 10,2730 02744 ADRSDCA ADRES NDXDCA
009775,001450: 10,2731 03033 ADRSQXCH ADRES NDXAUG
009776,001451:
009777,001452: # NORMAL USE OF INDEX WITH EXTRACODE INSTRUCTIONS
009778,001453: # INDEX INSTRUCTION USED WITH INDEX AND BZF
009779,001454: 10,2732 34711 XTRANDX CA S+ZERO
009780,001455: 10,2733 00006 EXTEND
009781,001456: 10,2734 54711 NDX S+ZERO
009782,001457: 10,2735 52727 NDX ADRSBZMF
009783,001458: 10,2736 10000 BZF 00000 # BZF +2
009784,001459: 10,2737 04770 TC ERRORS
009785,001460: # INDEX INSTRUCTION USED WITH BZMF
009786,001461: 10,2740 00006 NDXBZMF EXTEND
009787,001462: 10,2741 52730 NDX ADRSDCA
009788,001463: 10,2742 60000 BZMF 0000 # BZMF+2
009789,001464: 10,2743 04770 TC ERRORS
009790,001465: # INDEX INSTRUCTION USED WITH DCA
009791,001466: 10,2744 00006 NDXDCA EXTEND
009792,001467: 10,2745 54751 INDEX ADRS+1 # DCA S+1
009793,001468: 10,2746 30001 DCA 0000 # C(A) = +1, C(L) = +2
009794,001469: 10,2747 40000 CS A
009795,001470: 10,2750 60001 AD L
009796,001471: 10,2751 04761 TC -1CHK -1
009797,001472: # INDEX INSTRUCTION USED WITH DCS
009798,001473: 10,2752 00006 EXTEND
009799,001474: 10,2753 54751 INDEX ADRS+1 # DCS S+1
009800,001475: 10,2754 40001 DCS 0000 # C(A) = -1, C(L) = -2
009801,001476: 10,2755 40000 CS A
009802,001477: 10,2756 60001 AD L
009803,001478: 10,2757 04762 TC -1CHK
009804,001479: # INDEX INSTRUCTION USED WITH MP AND SU
009805,001480: 10,2760 34725 CA S+MAX # 37777
009806,001481: 10,2761 00006 EXTEND
009807,001482: 10,2762 54751 NDX ADRS+1
009808,001483: 10,2763 70001 MP 0001 # C(A) = 1, C(L) = 37776
Page 238 |
009810,001485: 10,2764 04761 TC -1CHK -1
009811,001486: 10,2765 34725 CA S+MAX # 37777
009812,001487: 10,2766 00006 EXTEND
009813,001488: 10,2767 54712 NDX S+1
009814,001489: 10,2770 60000 SU 0000
009815,001490: 10,2771 04761 TC -1CHK -1
009816,001491: # INDEX INSTRUCTION USED WITH DV
009817,001492: 10,2772 34747 NDXDV CA DV1CON # PUT 14000 (3/8) IN KEEP3
009818,001493: 10,2773 55036 TS KEEP3
009819,001494: 10,2774 34711 CA S+ZERO
009820,001495: 10,2775 54001 TS L
009821,001496: 10,2776 34706 CA SBIT13 # 10000
009822,001497: 10,2777 00006 EXTEND
009823,001498: 10,3000 54665 NDX ADRS3
009824,001499: 10,3001 10000 DV 0000 # C(A) = 25252, C(L) = 10000
009825,001500: 10,3002 55034 TS KEEP1
009826,001501: 10,3003 34746 CA S-ZERO
009827,001502: 10,3004 56001 XCH L
009828,001503: 10,3005 40000 CS A
009829,001504: 10,3006 00006 EXTEND
009830,001505: 10,3007 54665 NDX ADRS3
009831,001506: 10,3010 10000 DV 0000
009832,001507: 10,3011 61034 AD KEEP1
009833,001508: 10,3012 04754 TC -0CHK
009834,001509: # INDEX USED WITH MSU (C(A) = +0, C(K) = -0) (RESULT = -1)
009835,001510: 10,3013 34711 NDXMSU CA S+ZERO
009836,001511: 10,3014 55034 TS KEEP1
009837,001512: 10,3015 40000 CS A
009838,001513: 10,3016 00006 EXTEND
009839,001514: 10,3017 54663 NDX ADRS1 # MSU KEEP1
009840,001515: 10,3020 20000 MSU 0000 # C(A) = -1
009841,001516: 10,3021 04762 TC -1CHK
009842,001517: # INDEX USED WITH QXCH
009843,001518: 10,3022 32731 NDXQXCH CA ADRSQXCH
009844,001519: 10,3023 55034 TS KEEP1
009845,001520: 10,3024 03026 TC +2
009846,001521: 10,3025 04770 TC ERRORS
009847,001522: 10,3026 00006 EXTEND
009848,001523: 10,3027 54663 NDX ADRS1 # QXCH KEEP1
009849,001524: 10,3030 22000 QXCH 0000
009850,001525: 10,3031 00002 TC Q
009851,001526: 10,3032 04770 TC ERRORS
009852,001527: # INDEX USED WITH AUG
009853,001528: 10,3033 44711 NDXAUG CS S+ZERO
009854,001529: 10,3034 55034 TS KEEP1 # 00000
009855,001530: 10,3035 00006 EXTEND
009856,001531: 10,3036 54663 NDX ADRS1 # AUG KEEP1
009857,001532: 10,3037 24000 AUG 0000
009858,001533: 10,3040 31034 CA KEEP1
009859,001534: 10,3041 04762 TC -1CHK
009860,001535:
Page 239 |
009862,001537: # INDEX USED WITH DIM
009863,001538: 10,3042 34713 NDXDIM CA S+2
009864,001539: 10,3043 55034 TS KEEP1
009865,001540: 10,3044 00006 EXTEND
009866,001541: 10,3045 54663 NDX ADRS1 # DIM KEEP1
009867,001542: 10,3046 26000 DIM 0000
009868,001543: 10,3047 41034 CS KEEP1
009869,001544: 10,3050 04762 TC -1CHK
009870,001545:
009871,001546: # NORMAL USE OF INDEX WITH IN-OUT INSTRUCTIONS
009872,001547: # INDEX USED WITH WRITE AND READ
009873,001548: 10,3051 34745 NDXINOUT CA S-1
009874,001549: 10,3052 00006 EXTEND
009875,001550: 10,3053 54712 NDX S+1 # WRITE L
009876,001551: 10,3054 01000 WRITE 0000
009877,001552: 10,3055 40000 CS A
009878,001553: 10,3056 00006 EXTEND
009879,001554: 10,3057 54712 NDX S+1 # READ L
009880,001555: 10,3060 00000 READ 0000
009881,001556: 10,3061 04762 TC -1CHK
009882,001557: # INDEX USED WITH RAND
009883,001558: 10,3062 34712 CA S+1 # 00001
009884,001559: 10,3063 54001 TS L
009885,001560: 10,3064 34746 CA S-ZERO # 77777
009886,001561: 10,3065 00006 EXTEND
009887,001562: 10,3066 54712 NDX S+1 # RAND L
009888,001563: 10,3067 02000 RAND 00000
009889,001564: 10,3070 04761 TC -1CHK -1
009890,001565: # INDEX USED WITH WAND
009891,001566: 10,3071 34726 CA S-MAX # 40000
009892,001567: 10,3072 64712 AD S+1 # 40001
009893,001568: 10,3073 54001 TS L
009894,001569: 10,3074 34725 CA S+MAX # 37777
009895,001570: 10,3075 00006 EXTEND
009896,001571: 10,3076 54712 NDX S+1 # WAND L
009897,001572: 10,3077 03000 WAND 0000 # C(A) = C(L) = +1
009898,001573: 10,3100 04761 TC -1CHK -1
009899,001574: 10,3101 40001 CS L
009900,001575: 10,3102 04762 TC -1CHK
009901,001576: # INDEX USED WITH ROR
009902,001577: 10,3103 34712 CA S+1
009903,001578: 10,3104 54002 TS Q
009904,001579: 10,3105 34711 CA S+ZERO
009905,001580: 10,3106 00006 EXTEND
009906,001581: 10,3107 54713 NDX S+2 # ROR Q
009907,001582: 10,3110 04000 ROR 0000
009908,001583: 10,3111 04761 TC -1CHK -1
009909,001584: # INDEX USED WITH WOR
009910,001585: 10,3112 34737 CA S-7
009911,001586: 10,3113 54001 TS L # 77770
Page 240 |
009913,001588: 10,3114 34725 CA S+MAX
009914,001589: 10,3115 64745 AD S-1 # 37776
009915,001590: 10,3116 00006 EXTEND
009916,001591: 10,3117 54712 NDX S+1 # WOR L
009917,001592: 10,3120 05000 WOR 0000 # C(A) = C(L) = -1
009918,001593: 10,3121 04762 TC -1CHK
009919,001594: 10,3122 30001 CA L
009920,001595: 10,3123 04762 TC -1CHK
009921,001596: # INDEX USED WITH RXOR
009922,001597: 10,3124 34745 CA S-1
009923,001598: 10,3125 54001 TS L # 77776
009924,001599: 10,3126 34725 CA S+MAX # 37777
009925,001600: 10,3127 00006 EXTEND
009926,001601: 10,3130 54712 NDX S+1 # RXOR L
009927,001602: 10,3131 06000 RXOR 0000 # C(A) = 40001
009928,001603: 10,3132 64725 AD S+MAX
009929,001604: 10,3133 04761 TC -1CHK -1
009930,001605: # CHECKS EXTRACODE INDEX OF AN SC REGISTER
009931,001606: 10,3134 34713 CA S+2
009932,001607: 10,3135 55034 TS KEEP1
009933,001608: 10,3136 34663 CA ADRS1 # ADDRESS OF KEEP1
009934,001609: 10,3137 54001 TS L
009935,001610: 10,3140 34712 CA S+1
009936,001611: 10,3141 00006 EXTEND
009937,001612: 10,3142 50001 NDX L
009938,001613: 10,3143 60000 SU 0000
009939,001614: 10,3144 04762 TC -1CHK
009940,001615:
009941,001616: # CHECK OF SPECIAL AND CENTRAL REGISTERS
009942,001617: # CHANGE OF SIGN BY ADDING SAME NUMBER (ADDER)
009943,001618: 10,3145 34707 ADDCHK CA SBIT14 # 20000
009944,001619: 10,3146 60000 AD A # 01 -00000
009945,001620: 10,3147 54000 TS A
009946,001621: 10,3150 04770 TC ERRORS
009947,001622: 10,3151 60000 AD A # 10 - 00000
009948,001623: 10,3152 54000 TS A
009949,001624: 10,3153 04770 TC ERRORS
009950,001625: 10,3154 60000 AD A # 00001
009951,001626: 10,3155 54000 TS A
009952,001627: 10,3156 03160 TC +2
009953,001628: 10,3157 04770 TC ERRORS
009954,001629: 10,3160 04761 TC -1CHK -1
009955,001630:
009956,001631: # NORMAL OPERATION OF CYCLE RIGHT REGISTER
009957,001632: 10,3161 34733 CYRCHK CA CYRCON # 57761
009958,001633: 10,3162 55040 TS KEEP5 # COUNTDOWN REGISTER
009959,001634: 10,3163 34726 CA S-MAX # 40000
009960,001635: 10,3164 54020 TS CYR
009961,001636: 10,3165 10020 CYRLOOP CCS CYR
009962,001637: 10,3166 03172 TC CYRCNTDN
Page 241 |
009964,001639: 10,3167 04770 TC ERRORS
009965,001640: 10,3170 03174 TC ENDCYR
009966,001641: 10,3171 04770 TC ERRORS
009967,001642: 10,3172 25040 CYRCNTDN INCR KEEP5
009968,001643: 10,3173 03165 TC CYRLOOP
009969,001644: 10,3174 31040 ENDCYR CA KEEP5 # 57777
009970,001645: 10,3175 60020 AD CYR # C(CYR) = 20000
009971,001646: 10,3176 10000 CCS A # -0 = END OF CYCLE RIGHT CHECK
009972,001647: 10,3177 04770 TC ERRORS
009973,001648: 10,3200 04770 TC ERRORS
009974,001649: 10,3201 04770 TC ERRORS
009975,001650:
009976,001651: # NORMAL OPERATION OF CYCLE LEFT REGISTER
009977,001652: 10,3202 34735 CYLCHK CA S-15 # 77760, -15
009978,001653: 10,3203 55040 TS KEEP5 # COUNT REGISTER
009979,001654: 10,3204 34726 CA S-MAX # 40000
009980,001655: 10,3205 54022 TS CYL
009981,001656: 10,3206 10022 CYLLOOP CCS CYL
009982,001657: 10,3207 03213 TC CYLCNTDN
009983,001658: 10,3210 04770 TC ERRORS
009984,001659: 10,3211 03215 TC ENDCYL
009985,001660: 10,3212 04770 TC ERRORS
009986,001661: 10,3213 25040 CYLCNTDN INCR KEEP5
009987,001662: 10,3214 03206 TC CYLLOOP
009988,001663: 10,3215 30022 ENDCYL CA CYL # C(CYL) SHOULD = +1
009989,001664: 10,3216 04761 TC -1CHK -1
009990,001665: 10,3217 31040 CA KEEP5
009991,001666: 10,3220 04762 TC -1CHK
009992,001667:
009993,001668: # NORMAL OPERATION OF SHIFT RIGHT REGISTER
009994,001669: 10,3221 34736 SRCHK CA S-14 # 77761, -14
009995,001670: 10,3222 55040 TS KEEP5 # COUNT REGISTER
009996,001671: 10,3223 34726 CA S-MAX # 40000
009997,001672: 10,3224 54021 TS SR
009998,001673: 10,3225 10021 SRLOOP CCS SR
009999,001674: 10,3226 04770 TC ERRORS
010000,001675: 10,3227 04770 TC ERRORS
010001,001676: 10,3230 03234 TC SRCNTDN
010002,001677: 10,3231 31040 CA KEEP5 # HAS SHIFTED 14 TIMES
010003,001678: 10,3232 04762 TC -1CHK
010004,001679: 10,3233 03236 TC EDOPCHK # NEXT SUBROUTINE
010005,001680: 10,3234 25040 SRCNTDN INCR KEEP5 # INCREMENT COUNT REGISTER
010006,001681: 10,3235 03225 TC SRLOOP
010007,001682:
010008,001683: # NORMAL OPERATION OF EDOP REGISTER. BITS 8 - 14 OF G REGISTER GO TO
010009,001684: # BITS 1 - 7 OF EDOP.
010010,001685: 10,3236 34735 EDOPCHK CA S-15 # 77760, -15
010011,001686: 10,3237 55040 TS KEEP5 # COUNT REGISTER
010012,001687: 10,3240 34722 CA S7BITS # 00177
010013,001688: 10,3241 54022 TS CYL
Page 242 |
010015,001690: 10,3242 30022 EDOPLOOP CA CYL
010016,001691: 10,3243 54023 TS EDOP
010017,001692: 10,3244 54020 TS CYR # SHIFT LEFT 7 TIMES
010018,001693: 10,3245 30020 CA CYR
010019,001694: 10,3246 30020 CA CYR
010020,001695: 10,3247 30020 CA CYR
010021,001696: 10,3250 30020 CA CYR
010022,001697: 10,3251 30020 CA CYR
010023,001698: 10,3252 30020 CA CYR
010024,001699: 10,3253 30020 CA CYR
010025,001700: 10,3254 74722 MASK S7BITS
010026,001701: 10,3255 40000 CS A
010027,001702: 10,3256 55034 TS KEEP1 # COMPLEMEMT OF C(EDOP)
010028,001703: 10,3257 34746 CA S-ZERO
010029,001704: 10,3260 70023 MASK EDOP
010030,001705: 10,3261 61034 AD KEEP1
010031,001706: 10,3262 04754 TC -0CHK
010032,001707: 10,3263 25040 INCR KEEP5 # INCREMEMT COUNT REGISTER
010033,001708: 10,3264 10023 CCS EDOP
010034,001709: 10,3265 03242 TC EDOPLOOP
010035,001710: 10,3266 03271 TC ENDEDOP
010036,001711: 10,3267 04770 TC ERRORS
010037,001712: 10,3270 04770 TC ERRORS
010038,001713: 10,3271 31040 ENDEDOP CA KEEP5 # SHOULD HAVE PERFORMED EDOPLOOP 14 TIMES
010039,001714: 10,3272 04762 TC -1CHK
010040,001715:
010041,001716: 10,3273 25046 INCR SCOUNT # INCREMENT UPON SUCCESSFUL COMLETION
010042,001717:
010043,001718: 10,3274 05010 TC SMODECHK
010044,001719:
010045,001720:
End of include-file AGC_BLK2_INSTRUCTION_CHECK.agc. Parent file is MAIN.agc