START 46000 46000 11 46001 00000 Store jump instr. in F1 46001 45 00000 46002 Jump to 46002 46002 75 30667 01000 \ Block Transfer from MD Storage to High 46003 11 46004 01000 / Speed Storage START 46004 01000 61 00000 01046 Carriage return 01001 61 00000 01027 Shift up 01002 61 00000 01036 C 01003 61 00000 01241 O 01004 61 00000 01200 M 01005 61 00000 01200 M 01006 61 00000 01020 A 01007 61 00000 01217 N 01010 61 00000 01052 D 01011 61 00000 01160 Space 01012 61 00000 01370 T 01013 61 00000 01061 E 01014 61 00000 01335 S 01015 61 00000 01370 T 01016 61 00000 01160 Space 01017 23 31000 31000 Clear Q and A Test A (A = 0, Q = 0) 01020 11 31000 32030 Transmit 36 zeros to A 01021 47 01022 01024 Check A 01022 61 00000 01020 \ Error termination 01023 45 00000 01577 / 01024 56 10000 01025 \ No-error termination 01025 45 10000 01020 / Test B (A = 0, Q = 0) 01026 13 32000 31023 Transmit 36 ones to Q 01027 11 31000 32047 Transmit (Q) to A 01030 47 01031 01033 Check A 01031 61 00000 01026 \ Error termination 01032 45 00000 01577 / 01033 56 10000 01034 \ No-error termination 01034 45 10000 01027 / Test C (A = 0) 01035 41 32000 01044 Subtract 1 from A 01036 13 32000 31016 Set Q to +1 01037 11 01042 01047 Transmit MSO instr. into 01047 01040 37 01047 01046 Jump to 01046-10147, return to 01041 01041 43 31000 01043 Check A, if A = +1 jump to 01043 01042 45 00000 01044 Jump to error termination 01043 41 32000 01050 Subtract 1 from A, jump to 01050 01044 61 00000 01036 \ Error termination 01045 45 00000 01577 / 01046 13 32000 32045 Complement A 01047 45 00000 01041 Jumpt o 01041 01050 56 10000 01051 \ No-error termination 01051 45 10000 01035 / Test D (A = 0, Q = +1) 01052 35 31000 32022 \ Add 36 ones to A 01053 44 01054 01052 / 01054 47 01055 01057 Check for A = 0 01055 61 00000 01052 \ Error termination 01056 45 00000 01577 / 01057 56 10000 01060 \ No-error termination 01060 45 10000 01052 / Test E (A = 0, Q = +1) 01061 13 31000 31020 Set Q to -1 01062 36 31000 32014 \ Subtract 36 ones from A 01063 44 01062 01064 / 01064 47 01065 01067 Check A 01065 61 00000 01061 \ Error termination 01066 45 00000 01577 / 01067 56 10000 01070 \ No-error termination 01070 45 10000 01062 / Test F (A = 0, Q = 1) 01071 35 31000 32026 \ Add 36 zeros to A 01072 44 01071 01073 / 01073 47 01074 01076 Check A 01074 61 00000 01071 \ Error termination 01075 45 00000 01577 / 01076 56 10000 01077 \ No-error termination 01077 45 10000 01071 Test G (A = 0, Q = -1) 01100 13 31000 31013 Set Q = +1 01101 36 31000 32005 \ Subtract 36 ones from A 01102 44 01103 01101 / 01103 47 01104 01106 Check A 01104 61 00000 01100 \ Error termination 01105 45 00000 01577 / 01106 56 10000 01107 \ No-error termination 01107 45 10000 01101 / Test H (A = 0, Q = +1) 01110 32 31000 00001 \ Split-add 71 ones to A 01111 46 01112 01110 / 01112 32 31000 00000 Add +1 to A 01113 47 01114 01116 Check A 01114 61 00000 01101 \ Error termination 01115 45 00000 01577 / 01116 56 10000 01117 \ No-error termination 01117 45 10000 01110 Test I (A = 0, Q = +1) 01120 34 31000 00001 \ Split-subtract 71 ones from A 01121 46 01120 01122 / 01122 34 31000 00000 Subtract 1 from A 01123 47 01124 01126 Check A 01124 61 00000 01062 \ Error termination 01125 45 00000 01577 / 01126 56 10000 01127 \ No-error termination 01127 45 10000 01120 / Test J (A = 0, Q = +1) 01130 13 32000 31032 Set Q to all ones 01131 32 31000 00022 Insert 18 ones in AL 01132 31 31000 00044 Clear A, form 36 ones in AL 01133 32 31000 00000 Add 36 ones to AR 01134 47 01135 01137 Check A 01135 61 00000 01130 \ Error termination 01136 45 00000 01577 / 01137 56 10000 01140 \ No-error termination 01140 45 10000 01130 / Test K (A = 0, Q = -0) 01141 32 31000 00022 Enter 18 ones in AL 01142 33 31000 00044 Clear A, enter 36 ones in AL 01143 34 31000 00000 Subtract 36 ones from AR 01144 47 01145 01147 Check A 01145 61 00000 01152 \ Error termination 01146 45 00000 01577 / 01147 56 10000 01150 \ No-error termination 01150 45 10000 01141 / Test L (A = 0) 01151 11 01171 01172 Set n (index) to 4096 01152 11 01172 31036 Store n in Q 01153 54 31000 00111 \ 01154 54 32000 00107 | Form -n in A 01155 36 31000 32011 / 01156 55 32000 00045 \ 01157 55 31000 00043 | Form -n in A 01160 36 31000 31004 / 01161 54 31000 00111 \ 01162 54 32000 00107 | Form +n in A 01163 36 31000 32000 / 01164 55 32000 00045 \ 01165 55 31000 00043 | Form +n in A 01166 36 31000 31000 / 01167 34 01172 00000 Subtract +n from A (to clear A) 01170 47 01173 01175 Check A, jump to 01175 if OK 01171 00 00000 10000 Constant = 4096 dec. 01172 00 00000 00000 Stores index value = n 01173 61 00000 01155 \ Error termination 01174 45 00000 01577 / 01175 41 01172 01152 Index n, jump to 01152 01176 56 10000 01177 \ No-error termination 01177 45 10000 01151 / Tert M (A = 0) 01200 11 01212 31007 Set Q to 4096 01201 12 31000 32000 Transmit Q (=n) to A 01202 43 31000 01205 Check A, jump to 01205 if A = Q 01203 61 00000 01200 \ Error termination 01204 45 00000 01577 / 01205 13 32000 32000 Set A to -n 01206 43 31000 01203 Check A, jump to 01203 if A = Q 01207 12 32000 32000 Set A to +n 01210 43 31000 01213 Check A, jump to 01213 if A = Q 01211 45 00000 01203 Jump to error termination 01212 00 00000 10000 Constant = 4096 01213 41 31000 01214 Subract 1 from Q 01214 41 32000 01201 Jump (4096 times) to 01201 01215 56 10000 01216 \ No-error termination 01216 45 10000 01200 / Test N (A = -1, Q = -1) 01217 13 32000 31006 Set Q to +1 01220 11 01224 01225 Set index to 4096 01221 23 32000 32000 Clear A 01222 75 00014 01226 \ Form sum (see text) in A 01223 32 01225 00006 / 01224 00 00000 10000 Constant = 4096 01225 00 00000 00000 Stores index 01226 35 31000 32000 \ 01227 36 31000 32000 | Alternately add and subtract A 01230 44 01231 01226 / 01231 75 00014 01233 \ Subtract sum (see text) from A 01232 34 01225 00006 / 01233 47 01234 01236 Check A 01234 61 00000 01217 \ Error termination 01235 45 00000 01577 / 01236 41 01225 01221 Jump 4096 times to 01221 01237 56 10000 01240 \ No-error termination 01240 45 10000 01220 / Test O (A = 0) 01241 11 01252 31003 Set Q (=n) to 4096 01242 11 31000 01253 Store n 01243 13 31000 01254 Store -n 01244 23 01253 01255 Store n-1 01245 21 01254 01255 Store 1-n 01246 13 01254 32000 Set A to n-1 01247 43 01253 01256 Check A against (01253) 01250 61 00000 01241 \ Error termination 01251 45 00000 01577 / 01252 00 00000 10000 Constant, = 4096 01253 77 77777 77776 Constant = -1 01254 00 00000 00001 Constant = 1 01255 00 00000 00001 Constant = 1 01256 41 31000 01242 Jump (4096 times) to 01242 01257 56 10000 01260 \ No-error termination 01260 45 10000 01241 / Test P 01261 23 31000 31015 Clear A and Q 01262 27 31000 31000 form bit-by-bit sum of Q + Q in A 01263 35 31000 32000 Add Q to A 01264 47 01265 01267 Check A 01265 61 00000 01261 \ Error termination 01266 45 00000 01577 / 01267 13 31000 31000 Set Q to 36 ones 01270 27 32000 31000 Form bit-by-bit sum of A + Q in A 01271 54 32000 00044 Shift A left 36 01272 32 31000 00000 Add Q to A 01273 47 01265 01274 Check A 01274 31 31000 00044 Enter 36 ones in AL 01275 27 32000 31000 Form 72 ones in A 01276 47 01277 01265 Check A, clear A to 72 zeros 01277 47 01265 01300 Check A 01300 56 10000 01301 \ No-error termination 01301 45 10000 01261 / Test Q 01302 11 01311 01312 Set index to 33 01303 11 01310 31035 Set Q to test value 01304 23 32000 32000 Clear A 01305 42 31000 01313 Check A <= Q 01306 61 00000 01303 \ Error termination 01307 45 00000 01577 / 01310 20 00000 00000 Test value, = 2 x 8^11 01311 00 00000 00041 Constant, = 33 01312 00 00000 00000 Storage for index 01313 47 01306 01314 Check A != 0 01314 55 31000 00043 Alter test value in Q 01315 41 01312 01304 Jump (33 times) to 01304 01316 56 10000 01317 \ No-error termination 01317 45 10000 01302 / Test R 01320 11 01311 01312 Set index to 33 01321 11 01310 31012 Set Q to test value 01322 31 01310 00045 Shift A left 37 01323 42 31000 01326 Check A 01324 54 32000 00043 Restore A to test value 01325 43 01310 01330 Check A 01326 61 00000 01321 \ Error termination 01327 45 00000 01577 / 01330 55 31000 00043 Shift Q left 35 01331 41 01312 01322 Jump to 01322 (33 times) 01332 56 10000 01333 \ No-error termination 01333 45 10000 01320 / 01334 11 01347 01350 Set index to 35 01335 11 01351 31024 Set Q to test word 01336 55 31000 00001 Shift Q left 1 01337 16 31000 01352 \ Store u and v of test word 01340 15 31000 01352 / 01341 51 01353 32000 Isolate operation code in A 01342 35 01352 32000 Reconstruct test word in A (AR = Q) 01343 11 32000 32000 Convert test word into 72 bit extension 01344 43 31000 01354 Check A against (01351) 01345 61 00000 01335 \ Error termination 01346 45 00000 01577 / 01347 00 00000 00043 Constant, = 35 01350 00 00000 00000 Storage for index 01351 77 77565 20000 Test word 01352 00 77565 32000 Temporary storage 01353 77 00000 00000 Operation code mask 01354 41 01350 01336 Jump (35 times) to 01336 01355 56 10000 01356 \ No-error termination 01356 45 10000 01334 / Test T 01357 11 01361 01362 Set main cycle index to 36 01360 45 00000 01405 Jump to 01405 01361 00 00000 00044 Constant, = 36 01362 00 00000 00000 Storage for main cycle index 01363 00 00000 00044 Sub-cycle index storage 01364 00 07777 52520 Test word 01365 00 01777 60000 Test word 01366 00 03777 65250 Test word 01367 51 01364 01365 Form bit-by-bit product #1 01370 13 31000 31001 Complement Q 01371 51 01364 01366 Form bit-by-bit product #2 01372 13 31000 31000 Complement Q 01373 52 01365 32000 Form bit-by-bit product #3 in A 01374 11 32000 32000 Convert AL to 72-bit extension 01375 43 01364 01400 Check A 01376 61 00000 01370 \ Error termination 01377 45 00000 01577 / 01400 53 01365 01366 Form bit-by-bit product #4 01401 34 01364 00000 Subtract test word from A 01402 47 01376 01403 Check A 01403 55 31000 00001 Alter test word in Q 01404 41 01363 01367 Jump 36 times to 01367 01405 11 01361 01363 Set sub-cycle index to 36 01406 55 01364 00001 Shift test word left 1 to Q 01407 41 01362 01404 Jump 36 times to 01404 01410 56 10000 01411 \ No-error termination 01411 45 10000 01357 / Test U 01412 11 01415 01416 Set main index to 36 01413 45 00000 01430 Jump to 01430 01414 12 77774 00013 Test word 01415 00 00000 00044 Constant, = 36 01416 00 00000 00000 Store main index 01417 00 00000 00044 Store sub-cycle index 01420 71 31000 01414 Form product #1 01421 13 31000 31034 Complement Q 01422 72 31000 01414 Form neg. of prod. #1, subtr. from A 01423 47 01424 01426 Check A 01424 61 00000 01421 \ Error termination 01425 45 00000 01577 / 01426 55 31000 00001 Shift Q left 1 01427 41 01417 01420 Jump (36 times) to 01420 01430 11 10415 01417 Set sub-cycle index to 36 01431 55 01414 00001 Alter test word in Q 01432 41 01416 01427 Jump (36 times) to 01427 01433 56 10000 01434 \ No-error termination 01434 45 10000 01412 / Test V 01435 11 01437 01440 Set main index to 36 01436 45 00000 01457 Jump to 01457 01437 00 00000 00044 Constant, = 36 01440 00 00000 00000 Main index 01441 00 00000 00044 Sub index 01442 37 77600 00525 Test word T1 01443 67 60210 14176 Test word T2 01444 00 00000 00000 Quotient 01445 11 01437 32017 Set A to 36 01446 72 01442 01443 (T1T2 + 36) A 01447 73 01443 01444 (T1T2 + 36) / T2 (01444) 01450 43 01437 01453 Check remainder 01451 61 00000 01445 \ Error termination 01452 45 00000 01577 / 01453 23 01444 01442 Subtract T1 from quotient 01454 47 01451 01455 Check for A = 0 01455 55 01443 00001 Alter T2, shift 1 place 01456 41 01441 01445 Jump (36 times) to 01445 01457 11 01437 01441 Set sub-cycle index to 36 01460 55 01442 00001 Shift T1 left 1 in Q 01461 41 01440 01456 Jump to sub-cycle 36 times 01462 56 10000 01463 \ No-error termination 01463 45 10000 01435 / Test W 01464 11 01504 31031 Set main index to 71 01465 45 00000 01507 Jump to 01507 01466 16 31000 01467 Insert index n in NI 01467 31 01503 00000 A + 1 01470 54 32000 00044 Store 71-bit test value 01471 11 32000 01505 \ 01472 54 32000 00044 | Store 71-bit test value 01473 11 32000 01506 / 01474 74 32000 01475 Scale factor A, insert k in NI 01475 54 32000 00046 Shift A left 38 places 01476 34 01506 00044 \ Subract 71-bit value from A 01477 34 01505 00000 / 01500 47 01501 01507 Check A = 0 01501 61 00000 01464 \ Error termination 01502 45 00000 01577 / 01503 00 00000 00001 Constant, = 1 01504 00 00000 00107 Constant, = 71 01505 77 77777 77777 \ Storage for 72 bit test value 01506 77 77777 77776 / 01507 41 31000 01466 Jump (71 times) to 01466 01510 56 10000 01511 \ No-error termination 01511 45 10000 01464 / Test X 01512 11 01504 31027 Set Q to 71 01513 45 00000 01531 Jump to 01531 01514 16 32000 01515 Insert index n in NI 01515 33 01503 00000 A-1 01516 54 32000 00044 \ Store 72-bit test value 01517 11 32000 01505 / 01520 54 32000 00044 \ Store 72 bit test value 01521 11 32000 01506 / 01522 74 32000 01523 Scale-factor A, insert k in NI 01523 54 32000 00046 Shift A left k 01524 34 01506 00044 \ Subtract 72-bit value from A 01525 34 01505 00000 / 01526 47 01527 01531 Check for A = 0 01527 61 00000 01512 \ Error termination 01530 45 00000 01577 / 01531 41 31000 01514 Jump (71 times) to 01514 01532 56 10000 01533 \ No-error termination 01533 45 10000 01512 / Test Y (Q = 0) 01534 74 31002 01537 Scale-factor Q, store k 01535 47 01542 01540 Check for A = 0 01536 00 00000 00045 Constant, = 37 01537 00 00000 00045 Scale factor shift count 01540 11 01536 32025 Set A to 37 01541 43 01537 01544 Check for k = 37 01542 61 00000 01540 \ Error termination 01543 45 00000 01577 / 01544 56 10000 01545 \ No-error termination 01545 45 10000 01534 / Test Z 01546 11 01550 32021 Set A to test word 01547 75 21551 01553 \ Search contents of MC for test word 01550 43 00000 01551 / 01551 11 31000 32000 Q -> A 01552 43 01563 01556 Check A = 32000 (octal) 01553 45 00000 01565 MJ0 jumpt o "Z FAILED" sequence 01554 16 01564 01562 Constant: inserted in F2 01555 45 00000 00000 MJ0 jump to F1 01556 11 01554 00001 Set up F2 01557 11 01555 00002 Set up 00002 01560 11 01553 01562 Alter v-portion of 01562 01561 14 01565 01565 Set up F1 01562 45 00000 01570 MJ0 jump to 01570 01563 00 00000 20000 Constant 01564 00 00000 01570 Constant 01565 61 00000 01546 \ Error termination 01566 45 00000 01577 / 01567 45 00000 01565 MJ0 jump to "Z FAILED" if pAK does not clear on MP1 01570 56 10000 01571 \ No-error termination 01571 45 00000 01607 / Conclude Test 01572 56 20000 01573 MS2 01573 45 20000 01017 MJ2, restart at Test A 01574 61 00000 01241 0 01575 61 00000 01152 k 01576 56 00000 01000 Stop, restart entire routine Type failure 01577 61 00000 01160 space 01600 61 00000 01071 F 01601 61 00000 01020 A 01602 61 00000 01062 I 01603 61 00000 01155 L 01604 61 00000 01061 E 01605 61 00000 01052 D 01606 56 30000 01000 MS3, restart entire routine 01607 45 10000 01546 No-error termination (Test Z) Test 22 01610 45 00000 01621 Jump to start 01611 25 25252 52525 Test word 01612 00 10002 00000 \ 01613 00 00001 01641 | Altering addresses 01614 00 10000 01643 / 01615 00 00000 00001 Constant 01616 00 00000 00023 Index 01617 00 00000 00000 Store for index 01620 25 25252 52525 Test word 01621 11 01616 01617 Set index 01622 54 01611 00000 Form test word 01623 11 01611 32000 Test word -> A 01624 22 00044 32074 AR -> AL, AL -> A 01625 43 01611 01627 Check if A = Q 01626 45 00000 01662 Error jump 01627 75 00044 01631 \ AR -> AL -> Q (AR -> AR -> Q) 01630 22 00001 31057 / 01631 22 00000 01667 AL -> M.C. (AR -> M.C.) 01632 11 01667 32047 M.C. -> A 01633 43 31000 01635 Check if A = Q 01634 45 00000 01662 Error jump 01635 43 01611 01637 Check if A = test word 01636 45 00000 01662 Error jump 01637 13 01611 01611 Complement test word 01640 45 00000 01641 Jump around 1st RJ every second time through 01641 37 01640 01623 Repeat test with complement test word 01642 45 00000 01643 Jump around 2nd RJ every 4th time through 01643 15 01612 01630 Alter j and k of repeated 22 instruction 01644 15 01614 01631 Alter j of no shift 222 instruction 01645 16 01613 01640 Restore jump to 1st RJ 01646 37 01642 01623 Repeat test for new j and k 01647 15 01613 01630 Restore j and k in repeated 22 instruction 01650 15 01615 01631 Restore j in no shift 22 instruction 01651 16 01613 01640 Restore jump to 1st RJ 01652 16 01614 01642 Repeat test with new test word (20 times) 01653 21 01622 01615 Add 1 to shift of test word Former 01654 41 01617 01622 Repeat est with new test word (20 times) 01655 11 01620 01611 Restore test word 01656 16 01612 01622 Restore test ford Former 01657 56 10000 01660 \ 01660 45 10000 01621 | No-error termination 01661 45 00000 01572 / 01662 61 00000 01630 \ 01663 61 00000 01624 | 01664 61 00000 01624 | Error termination 01665 61 00000 01632 | 01666 45 00000 01577 / START 46700 46700 11 46001 00000 Store jump instruction in F1 46701 75 30647 46710 \ Block transfer test from M.D. to High 46702 11 46023 01017 / speed storage START 46703 01017 45 00000 01017 \ 01020 00 00000 00100 | 01021 00 00000 00010 | Constants and Modifying instructions 01022 56 20000 01017 | 01023 56 30000 01017 / 01024 11 46703 01000 Modify starting address 01025 11 46706 01661 Modify end jumpout 01026 11 46707 01577 Modify error jumpout 01027 11 46704 01171 \ 01030 11 46704 01212 | 01031 11 46704 01224 | 01032 11 46704 01252 | Modify constants 01033 11 46705 01361 | 01034 11 46705 01415 | 01035 11 46705 01437 / 01036 45 00000 01017 Jump to start test