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