1 
    2 /****^  HISTORY COMMENTS:
    3   1) change(2022-03-08,GDixon), approve(2022-03-08,MCR10116),
    4      audit(2022-03-11,Swenson), install(2022-03-11,MR12.8-1028):
    5      Add tests of MVN instruction to generate expected overflow indicator when
    6      moving float dec(59) value  to  fixed dec(59, 0) target:
    7       mvn22: 1e+58  =>  1000...  (for 58 0 digits)
    8       mvn23: 1e+59  =>  0  with overflow indicator set (overflow condition has been masked)
    9       mvn24: 1e+64  =>  0  with overflow indicator set (overflow condition has been masked)
   10       mvn25: 1e+65  =>  0  with overflow indicator set (before fix, this used to set truncate indicator)
   11       mvn26: 1e+127 =>  0  with overflow indicator set (before fix, this used to set truncate indicator)
   12                                                    END HISTORY COMMENTS */
   13 
   14           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
   15           /*                                                                                                */
   16           /* The above history comment can be displayed or updated by the history_comment (hcom) command    */
   17           /* IFF the name et_scripts.ttf is temporarily added to the file.  The name should be removed      */
   18           /* before installing the changed file.  This temporary name approach is done in lieu of a more    */
   19           /* elaborate set of changes:                                                                      */
   20           /*   - Define a new suffix for et_script-like files (e.g., .ets or .eis).                         */
   21           /*   - Change eis_tester command to recognize this suffix.                                        */
   22           /*   - Change pnotice_language_info_.cds to know about the new suffix, so hcom can handle it.     */
   23           /*   - Change mbuild_info_.cds to know about the new suffix, so mbuild can handle installing      */
   24           /*     files with this suffix.                                                                    */
   25           /*                                                                                                */
   26           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
   27 
   28 
   29 /*                  cmpc1
   30 *
   31 *         Just compare two equal  8 character (9 bit) strings.
   32 *         =  =>  zero and carry  indicators will be  on.
   33 */
   34 
   35 inst      cmpc      -nt "Equal 9 bit char strings"          -io 1
   36           -ir  zr cr;
   37 
   38 desc 1    -ns 8;
   39 
   40 desc 2    -ns 8;
   41 
   42 data 1    "abcd1234";
   43 
   44 data 2    "abcd1234";
   45 
   46 page      -all;
   47 
   48 /*                  cmpc2
   49 *
   50 *         Same as cmpc1 except move data across page boundary and add modification.
   51 */
   52 
   53 inst      cmpc      -nt"Same as prev but X pg bound"        -io 2
   54           -ir       zr cr
   55           -mf1      ar reg idb
   56           -mf2      ar reg idb;
   57 
   58 desc 1    -ns 8;
   59 
   60 desc 2    -ns 8;
   61 
   62 data 1    -do -4    "abcd"  "1234";
   63 
   64 data 2    -do -2    "ab"  "cd1234";
   65 
   66 page      -all;
   67 
   68 /*                  cmpc3
   69 *
   70 *         Same as cmpc2 except first string is >  than second string.
   71 */
   72 
   73 inst      cmpc      -nt  "S1 > S2 - X pg bound"   -io 3
   74           -ir       cr
   75           -mf1      ar reg idb
   76           -mf2      ar reg idb;
   77 
   78 desc 1    -ns 8;
   79 
   80 desc 2    -ns 8;
   81 
   82 data 1    -do -5    "abcd1"  "235";
   83 
   84 data 2    -do -2    "ab"  "cd1234";
   85 
   86 page      -all;
   87 
   88 /*                  cmpc4
   89 *
   90 *         Same as cmpc2 except first string is <  than second string.
   91 */
   92 
   93 inst      cmpc      -nt  "S1 < S2 - X pg bound"   -io 1
   94           -mf1      ar reg idb
   95           -mf2      ar reg idb;
   96 
   97 desc 1    -ns 8;
   98 
   99 desc 2    -ns 8;
  100 
  101 data 1    -do -4    "abcd"  "1234";
  102 
  103 data 2    -do -2    "ab"  "cd1235";
  104 
  105 page      -all;
  106 
  107 /*                  cmpc5
  108 *
  109 *         Same as cmpc2 except we will use  cn  fields.
  110 */
  111 
  112 inst      cmpc      -nt  "Test use of CN fields"  -io 2
  113           -ir       zr cr
  114           -mf1      ar reg idb
  115           -mf2      ar reg idb;
  116 
  117 desc 1    -ns 8     -cn 1;
  118 
  119 desc 2    -cn 2     -ns 8;
  120 
  121 data 1    -do -4    " abc"  "d1234";
  122 
  123 data 2    -do -2    "**"  "abcd1234";
  124 
  125 page      -all;
  126 
  127 /*                  cmpc6
  128 *
  129 *         We will test the use of the  fill character.  In this test we will fill
  130 *         string 1.
  131 */
  132 
  133 inst      cmpc      -nt "Fill in S1"    -io 1
  134           -ir       cr  zr
  135           -fc*
  136           -mf1      idr  ar
  137           -mf2      ida  ar;
  138 
  139 desc 1    -ns  6;
  140 
  141 desc 2    -ns  10;
  142 
  143 data 1    -do -3  "123" "456";
  144 
  145 data 2    -do  -6  "123456" "****";
  146 
  147 
  148 page      -all;
  149 
  150 /*                  cmpc7
  151 *
  152 *         Same as  cmpc6  except the fill characters will be split across
  153 *         a page boundary.
  154 */
  155 
  156 inst      cmpc      -nt "Fill X pg bound"         -io 1
  157           -ir       cr  zr
  158           -fc*
  159           -mf1      idr  ar
  160           -mf2      ida  ar;
  161 
  162 desc 1    -ns  6;
  163 
  164 desc 2    -ns  10;
  165 
  166 data 1    -do -5    "12345"  "6";
  167 
  168 data 2    -do -9    "123456***" "*";
  169 
  170 
  171 page      -all;
  172 
  173 /*                  cmpc8
  174 *
  175 *         In this test we will test using the fill character of string 2.
  176 */
  177 
  178 inst      cmpc      -nt  "Fill in S2"   -io 2
  179           -ir       zr cr
  180           -fc       /* Fill character is a blank. */
  181           -mf1      idb rl 8 ar reg
  182           -mf2      idb rl 4 ar reg;
  183 
  184 /*        No desc statements needed.  */
  185 
  186 data 1    -do -4    "1234" "    ";
  187 
  188 data 2    -do -3    "123" "4";
  189 
  190 
  191 page      -all;
  192 
  193 /*                  cmpc9
  194 *
  195 *         The same as cmpc8 except  we will split the fill characters across a page boundary.
  196 */
  197 
  198 inst      cmpc      -nt "Same as prev - fill X pg bound"    -io 2
  199           -ir       zr cr
  200           -fc       /* Fill character is a blank. */
  201           -mf1      idb rl 8 ar reg
  202           -mf2      idb rl 4 ar reg;
  203 
  204 /*        No desc statements needed.  */
  205 
  206 data 1    -do  -5   "1234 "  "   ";
  207 
  208 data 2    -do -3    "123" "4";
  209 
  210 
  211 page      -all;
  212 
  213 /*                  cmpc10
  214 *
  215 *         This test will compare two strings that cross two page boundaries.
  216 */
  217 
  218 inst      cmpc      -nt "Both strings X pg bounds"          -io 3
  219           -ir       cr zr
  220           -mf1      idb reg ar  rl 4352
  221           -mf2      idb reg ar  rl 4352;
  222 
  223 data 1    -do  -128     (4352) "S";
  224 
  225 data 2    -do  -128     (4352) "S";
  226 
  227 
  228 page      -all;
  229 
  230 /*                  cmpc11
  231 *
  232 *         This test will compare 3  (6 bit) characters.  We will have them
  233 *         cross a page boundary and we will use the  cn  field of the
  234 *         descriptors to start the string at a character other than character
  235 *         zero of the effectively addressed word.
  236 */
  237 
  238 inst      cmpc      -nt "6 bit characters"        -io 2
  239           -ir       cr zr
  240           -mf1      ar reg idb  rl 3
  241           -mf2      ar reg idb;
  242 
  243 desc 1    -cn 2     -ta 6;
  244 
  245 desc 2    -ns 3     -cn 1;              /* NOTE, ta  field taken from  desc 1 statement. */
  246 
  247 
  248 data 1    -do -2    000020 /*Page Boundary*/ 2122;
  249 
  250 data 2    -do -2    002021 /*Page Boundary*/ 22;
  251 
  252 
  253 page      -all;
  254 
  255 /*                  cmpc12
  256 *
  257 *         This test is like  cmpc11 except that the character size will be 4.
  258 */
  259 
  260 inst      cmpc      -nt "4 bit characters"
  261           -ir       cr zr
  262           -mf1      idb reg ar
  263           -mf2      idb reg ar;
  264 
  265 desc 1    -ns 3     -cn 2     -ta 4;    /* This  desc  statement must be first. */
  266 
  267 desc 2    -ns 3     -cn 1;              /* This  desc  statement can NOT have a  -ta option. */
  268 
  269 
  270 data 1    -do -2    000232  260;        /* characters  "1001"b "1010"b "1011"b */
  271 
  272 data 2    -do -1    011  253;           /* The same 3 characters. */
  273 
  274 
  275 page      -all;
  276 /*                     cmpc13
  277 
  278 *         compare two strings of maximum length.
  279 *         the data is six bit data and maximum
  280 *         desc. mod. is taken
  281 *
  282 */
  283 
  284 
  285 inst       cmpc   -nt "d1,2 covers 3pp. 6bit zr cr"
  286           -ir          zr cr
  287           -mf1         idb ar reg rl 6528
  288           -mf2         idb ar reg rl 6528;
  289 
  290 desc 1    -ta 6        ;
  291 
  292 
  293 data 1    -do -128     (1088) 212121212121;
  294 
  295 data 2    -do -128     (1088) 212121212121;
  296 
  297 page      -all;
  298 
  299 
  300 /*                  cmpc14
  301 
  302 *         this is a test using 4 bit data with the
  303 *         first string covering the maximum number of words.
  304 *         the second string also is of maximum length
  305 *         and the descriptors are all direct mod.
  306 *
  307 */
  308 
  309 inst      cmpc     -nt "d1,2 covers 3pp 4bit zr cr"
  310           -ir       cr zr
  311           -mf1      rl 8704
  312           -mf2      rl 8704;
  313 
  314 desc 1    -ta 4;
  315 
  316 data 1    -do -128  (1088) 232232232232;
  317 
  318 data 2    -do -128  (1088) 232232232232;
  319 
  320 
  321 page      -all;
  322 
  323 
  324 
  325 /*                  cmpc15
  326 
  327 *         the next four tests will again use the maximum
  328 *         amount of data but will vary the desc. mod. taken.
  329 *
  330 */
  331 
  332 inst      cmpc    -io 2   -nt "d1,2 covers 3pp 6 bit zr cr"
  333           -mf1      ida reg rl 6528
  334           -mf2      idr ar rl 6528
  335           -ir       cr zr;
  336 
  337 desc 1    -ta 6;
  338 
  339 data 1    -do -128  (1088) 212223242526;
  340 
  341 data 2    -do -128  (1088) 212223242526;
  342 
  343 page      -all;
  344 
  345 
  346 
  347 /*                  cmpc16
  348 
  349 *         this is the same as test 15 but there will be not3
  350 *         match of the data (str1 < str2 : zr=0 cr=0)
  351 *
  352 */
  353 
  354 inst      cmpc      -io 1     -nt "d1,2 covers 3 pp 6 bit"
  355           -mf1      ida reg rl 6528
  356           -mf2    idr ar rl 6528;
  357 
  358 desc 1    -ta 6;
  359 
  360 data 1    -do -128 (1088) 212221222122;
  361 
  362 data 2    -do -128 (1088) 2122232422226;
  363 
  364 page      -all;
  365 
  366 
  367 
  368 /*                  cmpc17
  369 
  370 *         this test is similar to test14 only the
  371 *         maximum number of desc. mods. are taken.
  372 *         the data is still four bit.
  373 *
  374 */
  375 
  376 inst      cmpc      -io 3    -nt "d1,2 covers 3pp 4bit zr cr"
  377 -ir      zr cr
  378           -mf1      idb ar reg rl 8704
  379           -mf2      idb ar reg rl 8704;
  380 
  381 desc 1    -ta 4;
  382 
  383 data 1    -do -128  (1088)  232232232232;
  384 
  385 data 2    -do -128  (1088) 232232232232;
  386 
  387 page      -all;
  388 
  389 
  390 
  391 
  392 /*                  cmpc18
  393 
  394 *         this test will take a variety of desc. mod.
  395 *         and will force st1 > st2 (zr =0 cr = 1).
  396 *         the data is four bit.
  397 *
  398 */
  399 
  400 inst      cmpc -io 1       -nt "d1,2 covers 3pp 4 bit cr"
  401           -ir       cr
  402           -mf1     ida reg rl 8704
  403           -mf2      idr ar rl 8704;
  404 
  405 desc 1    -ta 4;
  406 
  407 data 1    -do -128  (1088) 232232232222;
  408 
  409 data 2    -do -128  (1088) 227237237237;
  410 
  411 page      -all;
  412 
  413 
  414 /*                  cmpc19
  415 
  416 *         the test exercises the fill char  option along with
  417 *         the cn option.  the test also uses 6 bit data.
  418 *
  419 */
  420 
  421 inst       cmpc     -io 1        -nt "d1 split cn 6bit zr cr"
  422           -ir       zr cr
  423           -fc^@   /* fc = 000 */
  424           -mf1      reg ar rl 8
  425           -mf2      reg rl 5;
  426 
  427 desc 1    -ta 6     -cn 2;
  428 
  429 desc 2    -cn 1;
  430 
  431 data 1    -do -2    000020  /* page bound */ 21222324000000;
  432 
  433 data 2    002021222324;
  434 
  435 page      -all;
  436 
  437 
  438 
  439 /*                  cmpc20
  440 
  441 *         this test uses 6 bit data and test a different
  442 *         variety of desc. mods. that test 19.  the
  443 *         data is the same as test 19 except str1 < str2).
  444 *
  445 */
  446 
  447 inst     cmpc      -io 2      -nt "d1 split fc 6bit"
  448           -mf1      idb ar
  449 -mf2     ar reg
  450           -fc^@   /* fc = 000 */     /*  fc = 000 */;
  451 
  452 desc 1    -ta 6     -ns 8     -cn 2;
  453 
  454 desc 2    -ns 5     -cn 2;
  455 
  456 data 1    -do -2    000020 /* paGE BOUND */ 212223220000;
  457 
  458 data 2    002021222324;
  459 
  460 page      -all;
  461 
  462 
  463 
  464 
  465 
  466 /*                  cmpc21
  467 
  468 *         the next wo tests use 4 bit data and test the use of the
  469 *         fill character.  a variety of desc. mods. are taken.
  470 *
  471 **/
  472 
  473 
  474 inst      cmpc      -io 2     -nt "fc 4bit zr cr"
  475           -fc^@   /* fc = 000 */
  476                  /*  fc = 000 */
  477           -mf1      ida ar reg rl 2
  478           -mf2      idr ar rl 4
  479           -ir       zr cr;
  480 
  481 desc 1    -ta 4;
  482 
  483 data 1    232;
  484 
  485 
  486 data 2     232000;
  487 
  488 page      -all;
  489 
  490 
  491 
  492 
  493 /*                  cmcp22
  494 
  495 *         this test results in str1 > str 2.
  496 *
  497 */
  498 
  499 inst      cmpc      -io 2     -nt " fc 4bit cr"
  500           -ir       cr
  501           -mf1      idb ar reg
  502           -mf2      rl 6
  503           -fc^@   /* fc = 000 */;
  504                        /* fc = 000  */
  505 
  506 desc 1    -ta 4     -ns 4;
  507 
  508 
  509 data 1    -do -2    237237  /* page bound */ ;
  510 
  511 data 2    232232000;
  512 
  513 page      -all;
  514 
  515 
  516 ^L
  517 
  518 
  519 
  520 /*                  scd1
  521 *
  522 *         We will split both string 1 and  string 2 across page
  523 *         boundaries.  We will use all mods and  use  a  cn
  524 *         field in descriptors  1 & 2.
  525 */
  526 
  527 inst      scd       -nt  "Strings X pg bound - all mods"    -io 2
  528           -mf1      idb ar reg  rl 8
  529           -mf2      idb ar reg
  530           -mf3      ar reg;
  531 
  532 
  533 desc 1    -cn 1;
  534 desc 2    -cn 3;
  535 
  536 data 1    -do -5
  537           " "                 /* Character skipped by  cn  field. */
  538           "123*"  "$678";
  539 
  540 data 2    -do -4    "   " "*"  "$";
  541 
  542 data 3    000 000 000 003;
  543 
  544 
  545 page      -all;
  546 /*                  scd2
  547 *
  548 
  549 *         simple test which takes no more than the minimum
  550 *         number of page faults.  assures the instruction is
  551 *         working correctly.
  552 *
  553 */
  554 
  555 inst      scd    -nt "simple test 9bit";
  556 
  557 desc 1    -ns 8;     /* 9 bit char */
  558 
  559 data 1    "abcd1234";
  560 
  561 data 2    "cd";
  562 
  563 data 3    000 000 000 002;
  564 
  565 page      -all;
  566 
  567 
  568 
  569 
  570 /*                  scd3
  571 
  572 *         this test uses the same data as test 2
  573 *         but splits the first string across a page
  574          boundary.  the maximum number of descriptor page faultd
  575 *         for the first two descriptors are also taken.
  576 *
  577 */
  578 
  579 inst      scd    -nt "d1 split 9bit; FCOs PHAFPG179 & 181 required on L68 CPU"
  580           -mf1      idb ar reg rl 8
  581           -mf2      idb ar reg;
  582 
  583 
  584 data 1    -do 2
  585           "ab" "cd1234";
  586 
  587 data 2    "cd";
  588 
  589 data 3    000 000 000 002;
  590 
  591 page      -all;
  592 
  593 
  594 
  595 /*                  scd4
  596 
  597 *         this test mixes the page faults among descriptors
  598 *         and splits data across a page boundary with a
  599 *         match on the first try.
  600 *
  601 */
  602 
  603 
  604 inst      scd    -nt "d1 split match 1st try; FCOs PHAFPG179 & 181 required on L68 CPU"
  605           -mf1      idb ar
  606           -mf2      ar reg
  607           -mf3      ar;       /* note the data word indirection */
  608 
  609 desc 1    -ns 8;
  610 
  611 data 1    -do -1  "a" "bcd1234";
  612 
  613 data 2    "ab";
  614 
  615 data 3    000 000 000 000;
  616 
  617 
  618 page      -all;
  619 
  620 
  621 
  622 
  623 /*                  scd5
  624 
  625 *         same as previous test but both strings
  626 *         are split across page boundaries. data
  627 *         word is also accessed directly.
  628 *
  629 */
  630 
  631 
  632 inst      scd       -io 2    -nt "d1,2 split 9bit"
  633           -mf1      idb ar reg
  634           -mf2      idb ar reg;
  635 
  636 desc 1    -ns 8;
  637 
  638 data 1    -do -4    "abcd" "1234";
  639 
  640 data 2    -do -1    "d" "1";
  641 
  642 data 3    000 000 000 003;
  643 
  644 
  645 page      -all;
  646 
  647 
  648 
  649 
  650 /*                  scd6
  651 
  652 *         this test takes all the page faults
  653 *         possible with the descriptors, and
  654 *         tests the -cn and -rl option.
  655 *
  656 */
  657 
  658 
  659 inst      scd       -io 2   -nt "max page fault 9bit"
  660           -mf1      idb ar reg rl 8
  661           -mf2      idb ar reg
  662           -mf3       ar reg;
  663           /* that's all pssible indirections */
  664 
  665 desc 2          -cn 2;
  666 
  667 
  668 
  669 data 1     -do -4   "abcd" "1234";
  670 
  671 data 2     -do -2   "  " "12";
  672 
  673 data 3     000 000 000 004;
  674 
  675 page          -all;
  676 
  677 
  678 
  679 
  680 /*                  scd7
  681 
  682 *         salient feature of this test is
  683 *         that there is no match on the search.
  684 *         both data strings cross page boundaries.
  685 *
  686 */
  687 
  688 
  689 inst      scd       -io 2   -nt "no match 9bit"
  690           -ir  tr
  691           /* mf1 is direct */
  692           -mf2      idb ar reg;
  693 
  694 
  695 desc 1    -ns 8;
  696 
  697 
  698 data 1    -do -4 "abcd" "1234";
  699 
  700 data 2    -do -1   "5" "6";
  701 
  702 data 3    000 000 000 007;
  703 
  704 page      -all;
  705 
  706 
  707 
  708 
  709 /*                  scd8
  710 
  711 *         all possible indirection for descriptors
  712 *         taken with the cn option for both tested.
  713 *         strings both split across page.
  714 *
  715 */
  716 
  717 inst      scd       -io 3    -nt "d1,2 split 9bit"
  718           -mf1      idb ar reg rl 5
  719           -mf2      idb ar reg;
  720 
  721 desc 1    -cn 3;
  722 
  723 desc 2    -cn 1;
  724 
  725 data 1    -do -3    "***" "abcde";
  726 
  727 data 2    -do -3    "*bc" "*";
  728 
  729 data 3    000 000 000 001;
  730 
  731 page      -all;
  732 
  733 
  734 
  735 /*                  scd9
  736 
  737 *the next three tests all use the same basic
  738 
  739 
  740 *         data but vary the type of indirection and thus
  741 *        the type of page faults that will be taken.
  742 *
  743 */
  744 
  745 inst      scd       -io 1    -nt "desc mod d1,2 split 9bit"
  746           -mf1      ar
  747           -mf2      idb ar reg
  748           -mf3      ar reg;
  749 
  750 desc 1    -ns 5     -cn 3;
  751 
  752 desc 2     -cn 1;
  753 
  754 data 1     -do -3"***" "abcde";
  755 
  756 data 2     -do -3   "*bc" "*";
  757 
  758 data 3     000 000 000 001;
  759 
  760 page       -all;
  761 
  762 
  763 
  764 /*                  scd10
  765 
  766 *         swap desc1 and desc2 mod
  767 *
  768 */
  769 
  770 inst      scd       -io 1    -nt "d1,2 split 9bit"
  771           -mf1      idb ar reg rl 8
  772           -mf2      ar
  773           -mf3      ar reg;
  774 
  775 desc 1    -cn 3;
  776 
  777 desc 2     -cn 1;
  778 
  779 data 1    -do -3    "***" "abcde";
  780 
  781 data 2    -do -3    "*bc" "*";
  782 
  783 data 3    000 000 000 001;
  784 
  785 page      -all;
  786 
  787 
  788 
  789 /*                  scd11
  790 
  791 *         mf3 is direct :  other two indirect
  792 *
  793 */
  794 
  795 inst      scd       -io 1    -nt "mf1 direct others ind. 9b"
  796           -mf1      idb ar reg rl 8
  797           -mf2      idb ar reg;
  798           /* mf3 is direct */
  799 
  800 desc 1    -cn 3;
  801 
  802 desc 2    -cn 1;
  803 
  804 data 1    -do -3    "***" "abcde";
  805 
  806 data 2    -do -3    "*bc" "*";
  807 
  808 data 3    000 000 000 001;
  809 
  810 
  811 page      -all;
  812 
  813 
  814 
  815 
  816 /*                  scd12
  817 
  818 *         the data for the next two tests spans three pages.
  819 *         this test uses all direct mod for descriptors.
  820 *
  821 */
  822 
  823 inst      scd      -io 1    -nt "d1 spans 3pp 9bit"
  824 
  825           -mf1         rl 4352;
  826 
  827 data 1    -do -128   (2175) "ab" "bc";
  828 
  829 data 2    "bc";
  830 
  831 data 3    000 000 010376;
  832 
  833 page      -all;
  834 
  835 
  836 
  837 /*                   scd13
  838 
  839 *         same data as previous test but using
  840 *         maximum indirection on the desc.
  841 *
  842 */
  843 
  844 
  845 inst      scd       -io 2     -nt "d1 spans 3pp max desc mod 9b"
  846           -mf1      idb ar reg rl 4352
  847           -mf2      idb ar reg
  848           -mf3       reg ar;
  849 
  850           /* no desc statements are needed */
  851 
  852 data 1    -do -128  (2175) "ab" "bc";
  853 
  854 data 2    "bc";
  855 
  856 data 3    000 000 010 376;
  857 
  858 page      -all;
  859 
  860 
  861 /*                  scd14
  862 
  863 *         the next two tests move the two char data 2 string
  864 *         across a page boundary using the large data field of
  865 *         the previous two tests as data 1.
  866 *
  867 */
  868 
  869 inst     scd       -io 3    -nt "3 page d1, d2 split 9b"
  870           -mf1      idb ar reg rl 4352
  871           -mf2      idb ar reg
  872           -mf3       ar reg;
  873 
  874           /* desc statements not needed */
  875 
  876 
  877 
  878 data 1    -do -128  (2175) "ab" "bc";
  879 
  880 data 2    -do -1    "b" "c";
  881 
  882 data 3    000 000 010 376;
  883 
  884 page      -all;
  885 
  886 
  887 /*                  scd15
  888 
  889 *         data 2 fully contained on page 0
  890 *
  891 */
  892 
  893 inst      scd       -io 2     -nt "3page d1, d2 split 9b"
  894           -mf1      idb ar reg rl 4352
  895           -mf2      idb ar reg
  896           -mf3       ar reg;
  897 
  898 
  899 data 1    -do -128(2175) "ab" "bc";
  900 
  901 data 2    -do -2"bc";
  902 
  903 data 3    000 000 010 376;
  904 
  905 page      -all;
  906 
  907 
  908 
  909 /*                  scd16
  910 
  911 *         this starts the 6 bit char tests.
  912 
  913 *         nothing fancy--indirect mod on desc 1 & 2
  914 *
  915 */
  916 
  917 
  918 inst      scd    -nt "mf1,2 mod 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  919           -mf1      idb ar reg rl 6
  920           -mf2      idb ar reg
  921           /* desc3 is direct */;
  922 
  923 desc 1    -ta 6 /* six bit char */;
  924 
  925 data 1    202122232425;
  926 
  927 data 2    2425;
  928 
  929 data 3    000 000 000 004;
  930 
  931 page      -all;
  932 
  933 
  934 /*                  scd17
  935 
  936 *         same data but first string offseet by
  937 *         3 char. full indirect mod on desc.
  938 *
  939 */
  940 
  941 
  942 inst       scd       -io 2    -nt "desc mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  943            -mf1      idb ar reg
  944            -mf2      idb ar reg
  945            -mf3       ar reg;
  946 
  947 desc 1     -ns 6 -ta 6;
  948 
  949 
  950 data 1     -do -2   212223 242526;
  951 
  952 data 2     2425;
  953 
  954 data 3     000 000 000 003;
  955 
  956 page       -all;
  957 
  958 
  959 
  960 /*                  scd18
  961 
  962 *this test offsets the second data string.
  963 *
  964 */
  965 
  966 inst      scd       -io 1    -nt "desc mod d2 offset 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  967 
  968           -mf1      idb ar reg rl 6
  969           -mf2      ar reg
  970           -mf3      reg
  971           /* note the variety of indirection */;
  972 
  973 desc 1     -ta 6;
  974 
  975 data 1    212223242526;
  976 
  977 data 2    -do -2    242500;
  978 
  979 data 3    000 000 000 003;
  980 
  981 page      -all;
  982 
  983 
  984 
  985 /*                  scd19
  986 
  987 *         this test specifically exercises the -cn option
  988 *         along with multiple indirection.
  989 *
  990 */
  991 
  992 inst      scd       -io 3    -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
  993           -mf1      idb ar reg rl 6
  994           -mf2      idb ar reg
  995           -mf3       ar reg;
  996 
  997 
  998 desc 1    -ta 6     -cn 3;
  999 
 1000 desc 2     -cn 3;
 1001 
 1002 data 1    -do -4    000000202122 232425000000;
 1003 
 1004 data 2    -do -2    000000 212200;
 1005 
 1006 data 3    000 000 000 001;
 1007 
 1008 page      -all;
 1009 
 1010 
 1011 
 1012 /*                  scd20
 1013 
 1014 *         data 1 covers three pages.  match
 1015 *         is on the last pair of characters.
 1016 *
 1017 */
 1018 
 1019 inst      scd   -nt "d1 spans 3pp 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1020           -mf1       idb ar reg rl 7680
 1021           -mf2      idb ar reg
 1022           -mf3       ar reg;
 1023 
 1024 desc 1     -ta 6;
 1025 
 1026 
 1027 data 1    -do -128(1087) 202124252627 202122242223;
 1028 
 1029 data 2    2223;
 1030 
 1031 data 3    000000014576 000;
 1032 
 1033 page      -all;
 1034 
 1035 
 1036 
 1037 /*                  scd21
 1038 
 1039 *the final series of tests are with 4 bit data
 1040 *         this is just a simple test of two char per string
 1041 *         crossing no page pound.
 1042 *
 1043 */
 1044 
 1045 inst      scd   -nt "d1,2 2 char 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1046           -mf1      idb ar reg
 1047           -mf2      idb ar reg
 1048           /*   mf3 is direct */;
 1049 
 1050 desc 1    -ta 4     -ns 2;
 1051 
 1052 data 1    232 000 000 000 /* "1001" "1010" */;
 1053 
 1054 data 2    232 000 000 000;
 1055 
 1056 data 3    000 000 000 000;
 1057 
 1058 page      -all;
 1059 
 1060 
 1061 /*                  scd22
 1062 
 1063 *         split the second string across page bound.
 1064 *         test -cn option for data 2.
 1065 *
 1066 */
 1067 
 1068 inst      scd       -io 2     -nt "cn,offset for d2 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1069           -mf1      idb ar reg rl 2
 1070           -mf2      idb ar reg
 1071           -mf3       ar reg;
 1072 
 1073 
 1074 desc 1    -ta 4;
 1075 
 1076 desc 2    -cn 1;
 1077 
 1078 data 1    232 000 000 000;
 1079 
 1080 
 1081 data 2    -do -1    011 240 /* "1001" "1010" */;
 1082 
 1083 data 3    000 000 000 000;
 1084 
 1085 page      -all;
 1086 
 1087 
 1088 /*                  scd23
 1089 
 1090 *         this test splits both strings and tests
 1091 *         the cn option for both strings
 1092 *
 1093 */
 1094 
 1095 inst      scd       -io 2    -nt "d1,2 offset 4bit"
 1096           -mf1      idb ar reg
 1097           -mf2      idb ar reg
 1098           -mf3       ar reg;
 1099 
 1100 desc 1    -ta 4     -ns 2          -cn 2;
 1101 
 1102 desc 2    -cn 1;
 1103 
 1104 data 1    -do -2    000 232 000;
 1105 
 1106 data 2    -do -1     011 24;
 1107 
 1108 data 3     000 000 000 000;
 1109 
 1110 page       -all;
 1111 
 1112 
 1113 
 1114 /*                scd24
 1115 
 1116 *         this test will force data to cover all
 1117 *         three pages with the first data string.
 1118 *
 1119 
 1120 */
 1121 
 1122 inst      scd       -io 3    -nt "d1 covers 3pp 4bit"
 1123           -mf1      ar rl 10240
 1124           -mf2      reg
 1125           -mf3      ar;
 1126 
 1127 desc 1    -ta 4     ;
 1128 
 1129 data 1    -do -128  (4350) 232 236;
 1130 
 1131 data 2    236;
 1132 
 1133 data 3    000 000 020 774;
 1134 
 1135 page        -all;
 1136 
 1137 
 1138 ^L
 1139 
 1140 
 1141 /*                  scdr1
 1142 *
 1143 *         Same as test for  scd.
 1144 *         We will split both string 1 and  string 2 across page
 1145 *         boundaries.  We will use all mods and  use  a  cn
 1146 *         field in descriptors  1 & 2.
 1147 */
 1148 
 1149 inst      scdr      -nt  "Same as scd test"       -io 3
 1150           -mf1      idb ar reg  rl 8
 1151           -mf2      idb ar reg
 1152           -mf3      ar reg;
 1153 
 1154 
 1155 desc 1    -cn 1;
 1156 desc 2    -cn 3;
 1157 
 1158 data 1    -do -5
 1159           " "                 /* Character skipped by  cn  field. */
 1160           "123*"  "$678";
 1161 
 1162 data 2    -do -4    "   " "*"  "$";
 1163 
 1164 data 3    000 000 000 003;
 1165 
 1166 
 1167 page      -all;
 1168 /*                  scdr2
 1169 *
 1170 
 1171 *         simple test which takes no more than the minimum
 1172 *         number of page faults.  assures the instruction is
 1173 *         working correctly.
 1174 *
 1175 */
 1176 
 1177 inst      scdr    -nt "simple test 9bit";
 1178 
 1179 desc 1    -ns 8;     /* 9 bit char */
 1180 
 1181 data 1    "abcd1234";
 1182 
 1183 data 2    "cd";
 1184 
 1185 data 3    000 000 000 004;
 1186 
 1187 page      -all;
 1188 
 1189 
 1190 
 1191 
 1192 /*                  scdr3
 1193 
 1194 *         this test mixes the page faults among descriptors
 1195 *         and splits data across a page boundary with a
 1196 *         match on the first try.
 1197 *
 1198 */
 1199 
 1200 
 1201 inst      scdr    -nt "d1 split match first time 9b"
 1202           -mf1      idb ar
 1203           -mf2      ar reg
 1204           -mf3      ar;       /* note the data word indirection */
 1205 
 1206 desc 1    -ns 8;
 1207 
 1208 data 1    -do -1  "a" "bcd1234";
 1209 
 1210 data 2    "ab";
 1211 
 1212 data 3    000 000 000 006;
 1213 
 1214 
 1215 page      -all;
 1216 
 1217 
 1218 
 1219 
 1220 /*                  scdr4
 1221 
 1222 *         same as previous test but both strings
 1223 *         are split across page boundaries. data
 1224 *         word is also accessed directly.
 1225 *
 1226 */
 1227 
 1228 
 1229 inst      scdr       -io 2   -nt "d1,2 split 9bit"
 1230           -mf1      idb ar reg
 1231           -mf2      idb ar reg;
 1232 
 1233 desc 1    -ns 8;
 1234 
 1235 data 1    -do -4    "abcd" "1234";
 1236 
 1237 data 2    -do -1    "d" "1";
 1238 
 1239 data 3    000 000 000 003;
 1240 
 1241 
 1242 page      -all;
 1243 
 1244 
 1245 
 1246 
 1247 /*                  scdr5
 1248 
 1249 *         this test takes all the page faults
 1250 *         possible with the descriptors, and
 1251 *         tests the -cn and -rl option.
 1252 *
 1253 */
 1254 
 1255 
 1256 inst      scdr       -io 2    -nt "max page fault 9bit"
 1257           -mf1      idb ar reg rl 8
 1258           -mf2      idb ar reg
 1259           -mf3       ar reg;
 1260           /* that's all pssible indirections */
 1261 
 1262 desc 2          -cn 2;
 1263 
 1264 
 1265 
 1266 data 1     -do -4   "abcd" "1234";
 1267 
 1268 data 2     -do -2   "  " "12";
 1269 
 1270 data 3     000 000 000 002;
 1271 
 1272 page          -all;
 1273 
 1274 
 1275 
 1276 
 1277 /*                  scdr6
 1278 
 1279 *         salient feature of this test is
 1280 *         that there is no match on the search.
 1281 *         both data strings cross page boundaries.
 1282 *
 1283 */
 1284 
 1285 
 1286 inst      scdr       -io 2    -nt "no match 9bit"
 1287           -ir  tr
 1288           /* mf1 is direct */
 1289           -mf2      idb ar reg;
 1290 
 1291 
 1292 desc 1    -ns 8;
 1293 
 1294 
 1295 data 1    -do -4 "abcd" "1234";
 1296 
 1297 data 2    -do -1   "5" "6";
 1298 
 1299 data 3    000 000 000 007;
 1300 
 1301 page      -all;
 1302 
 1303 
 1304 
 1305 
 1306 /*                  scdr7
 1307 
 1308 *         all possible indirection for descriptors
 1309 *         taken with the cn option for both tested.
 1310 *         strings both split across page.
 1311 *
 1312 */
 1313 
 1314 inst      scdr       -io 3    -nt "d1,2 split 9bit"
 1315           -mf1      idb ar reg rl 5
 1316           -mf2      idb ar reg;
 1317 
 1318 desc 1    -cn 3;
 1319 
 1320 desc 2    -cn 1;
 1321 
 1322 data 1    -do -3    "***" "abcde";
 1323 
 1324 data 2    -do -3    "*bc" "*";
 1325 
 1326 data 3    000 000 000 002;
 1327 
 1328 page      -all;
 1329 
 1330 
 1331 
 1332 /*                  scdr8
 1333 
 1334 *the next three tests all use the same basic
 1335 
 1336 
 1337 *         data but vary the type of indirection and thus
 1338 *        the type of page faults that will be taken.
 1339 *
 1340 */
 1341 
 1342 inst      scdr       -io 1     -nt "desc mod d1,2 split 9b"
 1343           -mf1      ar
 1344           -mf2      idb ar reg
 1345           -mf3      ar reg;
 1346 
 1347 desc 1    -ns 5     -cn 3;
 1348 
 1349 desc 2     -cn 1;
 1350 
 1351 data 1     -do -3"***" "abcde";
 1352 
 1353 data 2     -do -3   "*bc" "*";
 1354 
 1355 data 3     000 000 000 002;
 1356 
 1357 page       -all;
 1358 
 1359 
 1360 
 1361 /*                  scdr9
 1362 
 1363 *         swap desc1 and desc2 mod
 1364 *
 1365 */
 1366 
 1367 inst      scdr       -io 1     -nt "desc mod d1,2 split 9b"
 1368           -mf1      idb ar reg rl 8
 1369           -mf2      ar
 1370           -mf3      ar reg;
 1371 
 1372 desc 1    -cn 3;
 1373 
 1374 desc 2     -cn 1;
 1375 
 1376 data 1    -do -3    "***" "abcde";
 1377 
 1378 data 2    -do -3    "*bc" "*";
 1379 
 1380 data 3    000 000 000 005;
 1381 
 1382 page      -all;
 1383 
 1384 
 1385 
 1386 /*                  scdr10
 1387 
 1388 *         mf3 is direct :  other two indirect
 1389 *
 1390 */
 1391 
 1392 inst      scdr       -io 1    -nt "mf1 direct others ind 9bit"
 1393           -mf1      idb ar reg rl 8
 1394           -mf2      idb ar reg;
 1395           /* mf3 is direct */
 1396 
 1397 desc 1    -cn 3;
 1398 
 1399 desc 2    -cn 1;
 1400 
 1401 data 1    -do -3    "***" "abcde";
 1402 
 1403 data 2    -do -3    "*bc" "*";
 1404 
 1405 data 3    000 000 000 005;
 1406 
 1407 
 1408 page      -all;
 1409 
 1410 
 1411 
 1412 
 1413 /*                  scdr11
 1414 
 1415 *         the data for the next two tests spans three pages.
 1416 *         this test uses all direct mod for descriptors.
 1417 *
 1418 */
 1419 
 1420 inst      scdr      -io 1   -nt "d1 spans 3 pp 9bit"
 1421 
 1422           -mf1         rl 4352;
 1423 
 1424 data 1    -do -128   "bc"   (2175) "ab" ;
 1425 
 1426 data 2    "bc";
 1427 
 1428 data 3    000 000 010376;
 1429 
 1430 page      -all;
 1431 
 1432 
 1433 
 1434 /*                   scdr12
 1435 
 1436 *         same data as previous test but using
 1437 *         maximum indirection on the desc.
 1438 *
 1439 */
 1440 
 1441 
 1442 inst      scdr       -io 2    -nt "d1 spans 3pp max desc mod 9b"
 1443           -mf1      idb ar reg rl 4352
 1444           -mf2      idb ar reg
 1445           -mf3       reg ar;
 1446 
 1447           /* no desc statements are needed */
 1448 
 1449 data 1    -do -128  "bc"   (2175) "ab" ;
 1450 
 1451 data 2    "bc";
 1452 
 1453 data 3    000 000 010 376;
 1454 
 1455 page      -all;
 1456 
 1457 
 1458 /*                  scdr13
 1459 
 1460 *         the next two tests move the two char data 2 string
 1461 *         across a page boundary using the large data field of
 1462 *         the previous two tests as data 1.
 1463 *
 1464 */
 1465 
 1466 inst     scdr       -io 3    -nt "3 page d1, d2 split 9b"
 1467           -mf1      idb ar reg rl 4352
 1468           -mf2      idb ar reg
 1469           -mf3       ar reg;
 1470 
 1471           /* desc statements not needed */
 1472 
 1473 
 1474 
 1475 data 1    -do -128  (2175) "ab" "bc";
 1476 
 1477 data 2    -do -1    "b" "c";
 1478 
 1479 data 3    000 000 000 000;
 1480 
 1481 page      -all;
 1482 
 1483 
 1484 /*                  scdr14
 1485 
 1486 *         data 2 fully contained on page 0
 1487 *
 1488 */
 1489 
 1490 inst      scdr       -io 2     -nt "3 page d1, d2 split 9b"
 1491           -mf1      idb ar reg rl 4352
 1492           -mf2      idb ar reg
 1493           -mf3       ar reg;
 1494 
 1495 
 1496 data 1    -do -128  "bc"  (2175) "ab" ;
 1497 
 1498 data 2    -do -2"bc";
 1499 
 1500 data 3    000 000 010376;
 1501 
 1502 page      -all;
 1503 
 1504 
 1505 
 1506 /*                  scdr15
 1507 
 1508 *         this starts the 6 bit char tests.
 1509 
 1510 *         nothing fancy--indirect mod on desc 1 & 2
 1511 *
 1512 */
 1513 
 1514 
 1515 inst      scdr   -nt "desc 1,2 mod 6bit"
 1516           -mf1      idb ar reg rl 6
 1517           -mf2      idb ar reg
 1518           /* desc3 is direct */;
 1519 
 1520 desc 1    -ta 6 /* six bit char */;
 1521 
 1522 data 1    202122232425;
 1523 
 1524 data 2    2425;
 1525 
 1526 data 3    000 000 000 000;
 1527 
 1528 page      -all;
 1529 
 1530 
 1531 /*                  scdr16
 1532 
 1533 *         same data but first string offseet by
 1534 *         3 char. full indirect mod on desc.
 1535 *
 1536 */
 1537 
 1538 
 1539 inst       scdr       -io 2    -nt "mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
 1540            -mf1      idb ar reg
 1541            -mf2      idb ar reg
 1542            -mf3       ar reg;
 1543 
 1544 desc 1     -ns 6 -ta 6;
 1545 
 1546 
 1547 data 1     -do -2   212223 242526;
 1548 
 1549 data 2     2425;
 1550 
 1551 data 3     000 000 000 001;
 1552 
 1553 page       -all;
 1554 
 1555 
 1556 
 1557 /*                  scdr17
 1558 
 1559 *this test offsets the second data string.
 1560 *
 1561 */
 1562 
 1563 inst      scdr       -io 1    -nt "full desc mod d2 offset 6b"
 1564 
 1565           -mf1      idb ar reg rl 6
 1566           -mf2      ar reg
 1567           -mf3      reg
 1568           /* note the variety of indirection */;
 1569 
 1570 desc 1     -ta 6;
 1571 
 1572 data 1    212223242526;
 1573 
 1574 data 2    -do -2    242500;
 1575 
 1576 data 3    000 000 000 001;
 1577 
 1578 page      -all;
 1579 
 1580 
 1581 
 1582 /*                  scdr18
 1583 
 1584 *         this test specifically exercises the -cn option
 1585 *         along with multiple indirection.
 1586 *
 1587 */
 1588 
 1589 inst      scdr       -io 3   -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1590           -mf1      idb ar reg rl 6
 1591           -mf2      idb ar reg
 1592           -mf3       ar reg;
 1593 
 1594 
 1595 desc 1    -ta 6     -cn 3;
 1596 
 1597 desc 2     -cn 3;
 1598 
 1599 data 1    -do -4    000000202122 232425000000;
 1600 
 1601 data 2    -do -2    000000 212200;
 1602 
 1603 data 3    000 000 000 003;
 1604 
 1605 page      -all;
 1606 
 1607 
 1608 
 1609 /*                  scdr19
 1610 
 1611 *         data 1 covers three pages.  match
 1612 *         is on the last pair of characters.
 1613 *
 1614 */
 1615 
 1616 inst      scdr   -nt "no off d1 spans 3pp 6b"
 1617           -mf1       idb ar reg rl 7680
 1618           -mf2      idb ar reg
 1619           -mf3       ar reg;
 1620 
 1621 desc 1     -ta 6;
 1622 
 1623 
 1624 data 1    -do -128(1087) 202124252627 202122242223;
 1625 
 1626 data 2    2223;
 1627 
 1628 data 3    000000002200 000;
 1629 
 1630 page      -all;
 1631 
 1632 
 1633 
 1634 /*                  scdr20
 1635 
 1636 *the final series of tests are with 4 bit data
 1637 *         this is just a simple test of two char per string
 1638 *         crossing no page pound.
 1639 *
 1640 */
 1641 
 1642 inst      scdr   -nt "d1.2 2 char 4bit"
 1643           -mf1      idb ar reg
 1644           -mf2      idb ar reg
 1645           /*   mf3 is direct */;
 1646 
 1647 desc 1    -ta 4     -ns 2;
 1648 
 1649 data 1    232 000 000 000 /* "1001" "1010" */;
 1650 
 1651 data 2    232 000 000 000;
 1652 
 1653 data 3    000 000 000 000;
 1654 
 1655 page      -all;
 1656 
 1657 
 1658 /*                  scdr21
 1659 
 1660 *         split the second string across page bound.
 1661 *         test -cn option for data 2.
 1662 *
 1663 */
 1664 
 1665 inst      scdr       -io 2   -nt "cn,offset for d2 4bit"
 1666           -mf1      idb ar reg rl 2
 1667           -mf2      idb ar reg
 1668           -mf3       ar reg;
 1669 
 1670 
 1671 desc 1    -ta 4;
 1672 
 1673 desc 2    -cn 1;
 1674 
 1675 data 1    232 000 000 000;
 1676 
 1677 
 1678 data 2    -do -1    011 240 /* "1001" "1010" */;
 1679 
 1680 data 3    000 000 000 000;
 1681 
 1682 page      -all;
 1683 
 1684 
 1685 /*                  scdr22
 1686 
 1687 *         this test splits both strings and tests
 1688 *         the cn option for both strings
 1689 *
 1690 */
 1691 
 1692 inst      scdr       -io 2    -nt "d1,2 offset 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1693           -mf1      idb ar reg
 1694           -mf2      idb ar reg
 1695           -mf3       ar reg;
 1696 
 1697 desc 1    -ta 4     -ns 2          -cn 2;
 1698 
 1699 desc 2    -cn 1;
 1700 
 1701 data 1    -do -2    000 232 000;
 1702 
 1703 data 2    -do -1     011 24;
 1704 
 1705 data 3     000 000 000 000;
 1706 
 1707 page       -all;
 1708 
 1709 
 1710 
 1711 /*                scdr23
 1712 
 1713 *         this test will force data to cover all
 1714 *         three pages with the first data string.
 1715 *
 1716 
 1717 */
 1718 
 1719 inst      scdr       -io 3   -nt "d1 covers 3 pp 4bit"
 1720           -mf1      ar rl 10240
 1721           -mf2      reg
 1722           -mf3      ar;
 1723 
 1724 desc 1    -ta 4     ;
 1725 
 1726 data 1    -do -128  (4350) 232 236;
 1727 
 1728 data 2    236;
 1729 
 1730 data 3    000 000 003 002;
 1731 
 1732 page        -all;
 1733 
 1734 
 1735 ^L
 1736 
 1737 
 1738 /*                  mlr1
 1739 *
 1740 *         Just a simple test.  Move one 9 bit character to another.  */
 1741 
 1742 inst      mlr       -nt  "Move 1 (9) bit char";
 1743 
 1744 desc 1    -ns  1;             data 1    "a";
 1745 
 1746 desc 2    -ns  1;             data 2    "a";
 1747 
 1748 page      -all;
 1749 /*                  mlr2
 1750 *
 1751 *         Move two characters that cross a page boundary.  Note, we need  AR
 1752 *         modification in order to set a data offset that is not a multiple
 1753 *         of the word size.  By doing this we will move the data fields to
 1754 *         segments  etd1 and etd2.
 1755 */
 1756 
 1757 inst      mlr       -nt  "2 chars X page bound"
 1758           -mf1  ar
 1759           -mf2  ar;
 1760 
 1761 desc 1    -ns 2;              desc 2    -ns 2;
 1762 
 1763 data 1    "ab"      -do -1;
 1764 
 1765 data 2    "ab"      -do -1;
 1766 
 1767 page      -all;
 1768 /*                  mlr3
 1769 *
 1770 *         This test will move 20 characters.  The characters will start in the middle
 1771 *         of a word.  The last two characters moved will cross a page boundary.
 1772 *         The instruction word will be moved so that its descriptors cross a
 1773 *         page boundary.
 1774 */
 1775 
 1776 inst      mlr       -nt  "20 char X page bound (-io 1)"     -io 1;
 1777 
 1778 desc 1    -cn 2     /* Effective address will point to a word boundary.
 1779                     *  We will start the string at character 2.  Note, when
 1780                     *  we set up the data we have to enter the two characters
 1781                     *  that we are not using.  */
 1782           -ns 20;
 1783 
 1784 desc 2    -cn 2     -ns 20;
 1785 
 1786 data 1    -do  -20  "  "  (5) "abcd" ;
 1787 
 1788 data 2    -do  -20  000000  (5) "abcd" ;          /* Skipped data in a result field
 1789                                                   *  must be zeros since this is what
 1790                                                   *  et  initializes the test area
 1791                                                   *  to be.  */
 1792 
 1793 page      -all;
 1794 /*                  mlr4
 1795 *
 1796 *         This test is the same as  mlr3  except that the descriptors will be
 1797 *         referenced via indirect words.  These indirect words will use no
 1798 *         modification so the descriptors and the data will still be in
 1799 *         segment  etx.  Also we will move the instruction word back
 1800 *         so that the second descriptor is on the 2nd page.
 1801 */
 1802 
 1803 inst      mlr       -nt  "Same as prev - ind desc"          -io 2
 1804           -mf1  id            -mf2  id;
 1805 
 1806 desc 1    -ns 20    -cn 2;              /* Note the order of the terms. */
 1807 
 1808 desc 2    -cn 2     -ns 20;
 1809 
 1810 data 1    -do  -20  "  "  (5) "abcd" ;
 1811 
 1812 data 2    -do  -20  000 000  (5) "abcd" ;
 1813 
 1814 page      -all;
 1815 /*                  mlr5
 1816 *
 1817 /*        This test is the same as  mlr4  except that the indirect words will
 1818 *         use  index register modification.
 1819 */
 1820 
 1821 inst      mlr       -nt  "Same as prev - use indexes"       -io 2
 1822           -mf2  idr           -mf1  idr;          /* Note order of mf terms. */
 1823 
 1824 desc 1    -cn 2     -ns 20;
 1825 
 1826 desc 2    -cn 2     -ns 20;
 1827 
 1828 data 1    -do  -20  "  "  (5) "abcd" ;
 1829 
 1830 data 2    -do  -20  000 000  (5) "abcd" ;
 1831 
 1832 page      -all;
 1833 /*                  mlr6
 1834 *
 1835 /*        This test is the same as  mlr4  except that the indirect words will
 1836 *         use  AR modification.  This will force  ET to place the descriptors and
 1837 *         the data fields in segments  eti1 and eti2.
 1838 */
 1839 
 1840 inst      mlr       -nt  "Ind with AR mod"        -io 2
 1841           -mf2  ida           -mf1  ida;
 1842 
 1843 desc 1    -cn 2     -ns 20;
 1844 
 1845 desc 2    -cn 2     -ns 20;
 1846 
 1847 data 1    -do  -20  "  "  (5) "abcd" ;
 1848 
 1849 data 2    -do  -20  000 000  (5) "abcd" ;
 1850 
 1851 page      -all;
 1852 /*                  mlr7
 1853 *
 1854 *         This test is the same as the test  mlr3  except that the descriptors
 1855 *         will use  REG  and  RL  modification.
 1856 */
 1857 
 1858 inst      mlr       -nt  "Ind with REG 7. RL mod"           -io 1
 1859           -mf2  reg  rl  20
 1860           -mf1  rl  20   reg;
 1861 
 1862 desc 1    -cn 2;
 1863 
 1864 desc 2    -cn 2;
 1865 
 1866 data 1    -do  -20  "  "  (5) "abcd" ;
 1867 
 1868 data 2    -do  -20  000 000  (5) "abcd" ;
 1869 
 1870 page      -all;
 1871 
 1872 /*                  mlr8
 1873 *
 1874 *         This test is the same as the test  mlr3  except that the descriptors
 1875 *         will use  AR, REG  and  RL  modification.
 1876 */
 1877 
 1878 inst      mlr       -nt  "Desc use AR,REG,& RL mod"         -io 1
 1879           -mf1  reg  ar  rl  20
 1880           -mf2  rl  20   ar  reg;
 1881 
 1882 desc 1    -cn 2;
 1883 
 1884 desc 2    -cn 2;
 1885 
 1886 data 1    -do  -20  "  "  (5) "abcd" ;
 1887 
 1888 data 2    -do  -20  000 000  (5) "abcd" ;
 1889 
 1890 page      -all;
 1891 
 1892 /*                  mlr9
 1893 *
 1894 *         This test is the same as the test  mlr3  except that the descriptors
 1895 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 1896 *         We will not have any modification in the indirect words so the descriptors
 1897 *         will still be in segment  etx.
 1898 */
 1899 
 1900 inst      mlr       -nt  "Same as prev - use ind"           -io 1
 1901           -mf1      rl  20
 1902                     ar        /* This puts the data in  etd1. */
 1903                     reg       /* Use index register 1.. */
 1904                     id        /* This adds indirect descriptors.  */
 1905 
 1906           -mf2      id
 1907                     rl  20
 1908                     reg
 1909                     ar;
 1910 
 1911 desc 1    -cn 2;
 1912 
 1913 desc 2    -cn 2;
 1914 
 1915 data 1    -do  -20  "  "  (5) "abcd" ;
 1916 
 1917 data 2    -do  -20  000 000  (5) "abcd" ;
 1918 
 1919 page      -all;
 1920 
 1921 /*                  mlr10
 1922 *
 1923 *         This test is the same as the test  mlr3  except that the descriptors
 1924 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 1925 *         The indirect words will use both reg and ar modification.
 1926 */
 1927 
 1928 inst      mlr       -nt  "Desc: AR,RL,REG  Ind: AR,REG"     -io 1
 1929           -mf1      rl  20
 1930                     ar        /* This puts the data in  etd1. */
 1931                     reg       /* Use index register 1.. */
 1932                     idb       /* This adds indirect descriptors.  Descriptors will go in
 1933                               *  segments  eti1 and eti2.  */
 1934 
 1935           -mf2      idb
 1936                     rl  20
 1937                     reg
 1938                     ar;
 1939 
 1940 desc 1    -cn 2;
 1941 
 1942 desc 2    -cn 2;
 1943 
 1944 data 1    -do  -20  "  "  (5) "abcd" ;
 1945 
 1946 data 2    -do  -20  000 000  (5) "abcd" ;
 1947 
 1948 page      -all;
 1949 
 1950 /*                  mlr11
 1951 *
 1952 *         This test will move  6  6 bit characters.  Both strings will have  3 characters
 1953 *         on each side of the page boundary.  The descriptor 2 data will be offset 4
 1954 *         9 bit characters but will specify a  "cn" field of 3 so the effective starting
 1955 *         address will be the same as descriptor 1.   All possible modification will be
 1956 *         used.  Descriptor 1 will also use  RL  modification.
 1957 */
 1958 
 1959 inst      mlr       -nt  "6 bit chars X pg bound"
 1960 
 1961           -mf1      rl  6     idb       ar  reg
 1962 
 1963           -mf2      reg   ar   idb;
 1964 
 1965 
 1966 desc 1    -ta  6;
 1967 
 1968 desc 2    -cn 3     -ta 6     -ns  6;
 1969 
 1970 
 1971 data 1    -do  -2   212223242526;
 1972 
 1973 data 2    -do  -4
 1974           (2) 000             /* We must fill in the unused 3 six bit characters. */
 1975           212223242526;       /* The actual data result field. */
 1976 
 1977 
 1978 page      -all;
 1979 
 1980 /*                  mlr12
 1981 *
 1982 *         This test will move 3  4 bit characters.  Below is a description of what is
 1983 *         going on.  EA is the effective address of the descriptor.
 1984 *
 1985 *         string 1                    EA  1  |  2  3
 1986 *                   ---------------------------------------------------
 1987 *         char addr  0  1  2  3  4  5  6  7  |  0  1  2  3  4  5  6  7
 1988 *                   ---------------------------------------------------
 1989 *         string 2  EA                 1  2  |  3
 1990 *
 1991 *         All possible modification will be used.  Descriptor 2 will use  RL  mod.
 1992 */
 1993 
 1994 inst      mlr       -nt  "4 bit chars"
 1995 
 1996           -mf1      idb       ar  reg
 1997 
 1998           -mf2      reg   ar   idb      rl  3;
 1999 
 2000 
 2001 desc 1    -ta  4    -cn 1     -ns  3;
 2002 
 2003 desc 2    -cn 6     -ta 4;
 2004 
 2005 
 2006 data 1    011  253  -do -1;
 2007 
 2008 data 2    -do  -4   000000000 232  26;
 2009 
 2010 
 2011 page      -all;
 2012 
 2013 /*                  mlr13
 2014 *
 2015 *         This test will move  6  9 bit characters into  6  6 bit characters.
 2016 *         Both strings will be split in the middle across a page boundary.
 2017 */
 2018 
 2019 inst      mlr       -nt "9 bit chars into 6 bit chars"
 2020           -mf1  ar reg idr
 2021           -mf2  reg ar idb;
 2022 
 2023 data 1    -do -3  " te"  "st ";
 2024 
 2025 data 2    -do -2    406445 636440;
 2026 
 2027 
 2028 desc 1    -ns 6;
 2029 
 2030 desc 2    -ns 6     -ta 6;
 2031 
 2032 
 2033 page      -all;
 2034 
 2035 /*                  mlr14
 2036 *
 2037 *         This test will test the fill character function.
 2038 *         Also the  truncation bit will be turned ON but we will specify that
 2039 *         we do not expect a truncation fault.
 2040 */
 2041 
 2042 inst      mlr       -nt  "Use fill char"          -io 3
 2043 
 2044           -fc*      -tbn
 2045 
 2046           -mf1  idr  ar   rl 4
 2047           -mf2  ida  reg  rl 8;
 2048 
 2049 /*        No  desc  statements are needed because all the defaults are correct.  */
 2050 
 2051 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2052 
 2053 data 2    "abcd" "****"
 2054           -do -4;             /* The fill characters go on a different page.  */
 2055 
 2056 
 2057 page      -all;
 2058 
 2059 /*                  mlr15
 2060 *
 2061 *         This is the same test as  mlr14  except the  fill characters will start on
 2062 *         one page and end on the next page.
 2063 *         we do not expect a truncation fault.
 2064 */
 2065 
 2066 inst      mlr       -nt  "Fill X pg bound"        -io 1
 2067 
 2068           -fc*      -tbn
 2069 
 2070           -mf1  idr  ar   rl 4
 2071           -mf2  ida  reg ar   rl 8;
 2072 
 2073 /*        No  desc  statements are needed because all the defaults are correct.  */
 2074 
 2075 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2076 
 2077 data 2    "abcd**"  "**"
 2078           -do -6;             /* The fill characters are split across a  page boundary.  */
 2079 
 2080 
 2081 page      -all;
 2082 
 2083 /*                  mlr16
 2084 *
 2085 *         This test is designed to test truncation.  We will expect the truncation
 2086 *         indicator to be  ON.  The truncation bit will be left OFF and so we will not
 2087 *         expect a truncation fault.
 2088 */
 2089 
 2090 
 2091 inst      mlr       -nt  "Trunc Ind ON"
 2092           -mf2 ar   -io 2     -ir tn;
 2093 
 2094 desc 1    -ns 8;              desc 2    -ns 4;
 2095 
 2096 
 2097 data 1    -do  -4   "abcd"  "1234";
 2098 
 2099 data 2    -do  -2   "abcd";
 2100 
 2101 
 2102 page      -all;
 2103 
 2104 /*                  mlr17
 2105 *
 2106 *         This test is designed to test truncation.  We will expect the truncation
 2107 *         indicator to be  ON.  This test is the same as  mlr16 except that the
 2108 *         truncation bit in the instruction word will be set  ON.  This should
 2109 *         cause a truncation fault.  We should be ready for it.
 2110 */
 2111 
 2112 
 2113 inst      mlr       -nt  "Take trunc fault"       -tby
 2114           -mf2 ar   -io 2     -ir tn;
 2115 
 2116 desc 1    -ns 8;              desc 2    -ns 4;
 2117 
 2118 
 2119 data 1    -do  -4   "abcd"  "1234";
 2120 
 2121 data 2    -do  -2   "abcd";
 2122 
 2123 
 2124 page      -all;
 2125 
 2126 /*                  mlr18
 2127 *
 2128 *         This test will try to move  over a page of data.  We will move  1088 words
 2129 *         containing the characters  "cisl".
 2130 */
 2131 
 2132 
 2133 inst      mlr       -nt  "Move over 1 page"       -io 1
 2134           -mf1  rl  4352      idb ar reg
 2135           -mf2  rl  4352      idbar reg;
 2136 
 2137 data 1    -do  -128   (1088) "cisl";
 2138 
 2139 data 2    -do  -128   (1088) "cisl";
 2140 
 2141 page      -all;
 2142 
 2143 
 2144 ^L
 2145 
 2146 
 2147 /*                  mrl1
 2148 *
 2149 *         Just a simple test.  Move one 9 bit character to another.  */
 2150 
 2151 inst      mrl       -nt  "Move 1 (9) bit char";
 2152 
 2153 desc 1    -ns  1;             data 1    "a";
 2154 
 2155 desc 2    -ns  1;             data 2    "a";
 2156 
 2157 page      -all;
 2158 
 2159 /*                  mrl2
 2160 *
 2161 *         Move two characters that cross a page boundary.  Note, we need  AR
 2162 *         modification in order to set a data offset that is not a multiple
 2163 *         of the word size.  By doing this we will move the data fields to
 2164 *         segments  etd1 and etd2.
 2165 */
 2166 
 2167 inst      mrl       -nt  "2 chars X page bound"
 2168           -mf1  ar
 2169           -mf2  ar;
 2170 
 2171 desc 1    -ns 2;              desc 2    -ns 2;
 2172 
 2173 data 1    "ab"      -do -1;
 2174 
 2175 data 2    "ab"      -do -1;
 2176 
 2177 page      -all;
 2178 
 2179 /*                  mrl3
 2180 *
 2181 *         This test will move 20 characters.  The characters will start in the middle
 2182 *         of a word.  The last two characters moved will cross a page boundary.
 2183 *         The instruction word will be moved so that its descriptors cross a
 2184 *         page boundary.
 2185 */
 2186 
 2187 inst      mrl       -nt  "20 char X page bound (-io 1)"     -io 1;
 2188 
 2189 desc 1    -cn 2     /* Effective address will point to a word boundary.
 2190                     *  We will start the string at character 2.  Note, when
 2191                     *  we set up the data we have to enter the two characters
 2192                     *  that we are not using.  */
 2193           -ns 20;
 2194 
 2195 desc 2    -cn 2     -ns 20;
 2196 
 2197 data 1    -do  -20  "  "  (5) "abcd" ;
 2198 
 2199 data 2    -do  -20  000000  (5) "abcd" ;          /* Skipped data in a result field
 2200                                                   *  must be zeros since this is what
 2201                                                   *  et  initializes the test area
 2202                                                   *  to be.  */
 2203 
 2204 page      -all;
 2205 
 2206 /*                  mrl4
 2207 *
 2208 *         This test is the same as  mrl3  except that the descriptors will be
 2209 *         referenced via indirect words.  These indirect words will use no
 2210 *         modification so the descriptors and the data will still be in
 2211 *         segment  etx.  Also we will move the instruction word back
 2212 *         so that the second descriptor is on the 2nd page.
 2213 */
 2214 
 2215 inst      mrl       -nt  "Same as prev - ind desc"          -io 2
 2216           -mf1  id            -mf2  id;
 2217 
 2218 desc 1    -ns 20    -cn 2;              /* Note the order of the terms. */
 2219 
 2220 desc 2    -cn 2     -ns 20;
 2221 
 2222 data 1    -do  -20  "  "  (5) "abcd" ;
 2223 
 2224 data 2    -do  -20  000 000  (5) "abcd" ;
 2225 
 2226 page      -all;
 2227 
 2228 /*                  mrl5
 2229 *
 2230 /*        This test is the same as  mrl4  except that the indirect words will
 2231 *         use  index register modification.
 2232 */
 2233 
 2234 inst      mrl       -nt  "Same as prev - use indexes"       -io 2
 2235           -mf2  idr           -mf1  idr;          /* Note order of mf terms. */
 2236 
 2237 desc 1    -cn 2     -ns 20;
 2238 
 2239 desc 2    -cn 2     -ns 20;
 2240 
 2241 data 1    -do  -20  "  "  (5) "abcd" ;
 2242 
 2243 data 2    -do  -20  000 000  (5) "abcd" ;
 2244 
 2245 page      -all;
 2246 
 2247 /*                  mrl6
 2248 *
 2249 /*        This test is the same as  mrl4  except that the indirect words will
 2250 *         use  AR modification.  This will force  ET to place the descriptors and
 2251 *         the data fields in segments  eti1 and eti2.
 2252 */
 2253 
 2254 inst      mrl       -nt  "Ind with AR mod"        -io 2
 2255           -mf2  ida           -mf1  ida;
 2256 
 2257 desc 1    -cn 2     -ns 20;
 2258 
 2259 desc 2    -cn 2     -ns 20;
 2260 
 2261 data 1    -do  -20  "  "  (5) "abcd" ;
 2262 
 2263 data 2    -do  -20  000 000  (5) "abcd" ;
 2264 
 2265 page      -all;
 2266 
 2267 /*                  mrl7
 2268 *
 2269 *         This test is the same as the test  mrl3  except that the descriptors
 2270 *         will use  REG  and  RL  modification.
 2271 */
 2272 
 2273 inst      mrl       -nt  "Ind with REG 7. RL mod"           -io 1
 2274           -mf2  reg  rl  20
 2275           -mf1  rl  20   reg;
 2276 
 2277 desc 1    -cn 2;
 2278 
 2279 desc 2    -cn 2;
 2280 
 2281 data 1    -do  -20  "  "  (5) "abcd" ;
 2282 
 2283 data 2    -do  -20  000 000  (5) "abcd" ;
 2284 
 2285 page      -all;
 2286 
 2287 /*                  mrl8
 2288 *
 2289 *         This test is the same as the test  mrl3  except that the descriptors
 2290 *         will use  AR, REG  and  RL  modification.
 2291 */
 2292 
 2293 inst      mrl       -nt  "Desc use AR,REG,& RL mod"         -io 1
 2294           -mf1  reg  ar  rl  20
 2295           -mf2  rl  20   ar  reg;
 2296 
 2297 desc 1    -cn 2;
 2298 
 2299 desc 2    -cn 2;
 2300 
 2301 data 1    -do  -20  "  "  (5) "abcd" ;
 2302 
 2303 data 2    -do  -20  000 000  (5) "abcd" ;
 2304 
 2305 page      -all;
 2306 
 2307 /*                  mrl9
 2308 *
 2309 *         This test is the same as the test  mrl3  except that the descriptors
 2310 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 2311 *         We will not have any modification in the indirect words so the descriptors
 2312 *         will still be in segment  etx.
 2313 */
 2314 
 2315 inst      mrl       -nt  "Same as prev - use ind"           -io 1
 2316           -mf1      rl  20
 2317                     ar        /* This puts the data in  etd1. */
 2318                     reg       /* Use index register 1.. */
 2319                     id        /* This adds indirect descriptors.  */
 2320 
 2321           -mf2      id
 2322                     rl  20
 2323                     reg
 2324                     ar;
 2325 
 2326 desc 1    -cn 2;
 2327 
 2328 desc 2    -cn 2;
 2329 
 2330 data 1    -do  -20  "  "  (5) "abcd" ;
 2331 
 2332 data 2    -do  -20  000 000  (5) "abcd" ;
 2333 
 2334 page      -all;
 2335 
 2336 /*                  mrl10
 2337 *
 2338 *         This test is the same as the test  mrl3  except that the descriptors
 2339 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 2340 *         The indirect words will use both reg and ar modification.
 2341 */
 2342 
 2343 inst      mrl       -nt  "Desc: AR,RL,REG  Ind: AR,REG"     -io 1
 2344           -mf1      rl  20
 2345                     ar        /* This puts the data in  etd1. */
 2346                     reg       /* Use index register 1.. */
 2347                     idb       /* This adds indirect descriptors.  Descriptors will go in
 2348                               *  segments  eti1 and eti2.  */
 2349 
 2350           -mf2      idb
 2351                     rl  20
 2352                     reg
 2353                     ar;
 2354 
 2355 desc 1    -cn 2;
 2356 
 2357 desc 2    -cn 2;
 2358 
 2359 data 1    -do  -20  "  "  (5) "abcd" ;
 2360 
 2361 data 2    -do  -20  000 000  (5) "abcd" ;
 2362 
 2363 page      -all;
 2364 
 2365 /*                  mrl11
 2366 *
 2367 *         This test will move  6  6 bit characters.  Both strings will have  3 characters
 2368 *         on each side of the page boundary.  The descriptor 2 data will be offset 4
 2369 *         9 bit characters but will specify a  "cn" field of 3 so the effective starting
 2370 *         address will be the same as descriptor 1.   All possible modification will be
 2371 *         used.  Descriptor 1 will also use  RL  modification.
 2372 */
 2373 
 2374 inst      mrl       -nt  "6 bit chars X pg bound"
 2375 
 2376           -mf1      rl  6     idb       ar  reg
 2377 
 2378           -mf2      reg   ar   idb;
 2379 
 2380 
 2381 desc 1    -ta  6;
 2382 
 2383 desc 2    -cn 3     -ta 6     -ns  6;
 2384 
 2385 
 2386 data 1    -do  -2   212223242526;
 2387 
 2388 data 2    -do  -4
 2389           (2) 000             /* We must fill in the unused 3 six bit characters. */
 2390           212223242526;       /* The actual data result field. */
 2391 
 2392 
 2393 page      -all;
 2394 
 2395 /*                  mrl12
 2396 *
 2397 *         This test will move 3  4 bit characters.  Below is a description of what is
 2398 *         going on.  EA is the effective address of the descriptor.
 2399 *
 2400 *         string 1                    EA  1  |  2  3
 2401 *                   ---------------------------------------------------
 2402 *         char addr  0  1  2  3  4  5  6  7  |  0  1  2  3  4  5  6  7
 2403 *                   ---------------------------------------------------
 2404 *         string 2  EA                 1  2  |  3
 2405 *
 2406 *         All possible modification will be used.  Descriptor 2 will use  RL  mod.
 2407 */
 2408 
 2409 inst      mrl       -nt  "4 bit chars"
 2410 
 2411           -mf1      idb       ar  reg
 2412 
 2413           -mf2      reg   ar   idb      rl  3;
 2414 
 2415 
 2416 desc 1    -ta  4    -cn 1     -ns  3;
 2417 
 2418 desc 2    -cn 6     -ta 4;
 2419 
 2420 
 2421 data 1    011  253  -do -1;
 2422 
 2423 data 2    -do  -4   000000000 232  26;
 2424 
 2425 
 2426 page      -all;
 2427 
 2428 /*                  mrl13
 2429 *
 2430 *         This test will move  6  9 bit characters into  6  6 bit characters.
 2431 *         Both strings will be split in the middle across a page boundary.
 2432 */
 2433 
 2434 inst      mrl       -nt "9 bit chars into 6 bit chars"
 2435           -mf1  ar reg idr
 2436           -mf2  reg ar idb;
 2437 
 2438 data 1    -do -3  " te"  "st ";
 2439 
 2440 data 2    -do -2    406445 636440;
 2441 
 2442 
 2443 desc 1    -ns 6;
 2444 
 2445 desc 2    -ns 6     -ta 6;
 2446 
 2447 
 2448 page      -all;
 2449 
 2450 /*                  mrl14
 2451 *
 2452 *         This test will test the fill character function.
 2453 *         Also the  truncation bit will be turned ON but we will specify that
 2454 *         we do not expect a truncation fault.
 2455 */
 2456 
 2457 inst      mrl       -nt  "Use fill char"          -io 3
 2458 
 2459           -fc*      -tbn
 2460 
 2461           -mf1  idr  ar   rl 4
 2462           -mf2  ida  reg  rl 8;
 2463 
 2464 /*        No  desc  statements are needed because all the defaults are correct.  */
 2465 
 2466 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2467 
 2468 data 2    "****" "abcd"
 2469           -do -4;             /* The fill characters go on a different page.  */
 2470 
 2471 
 2472 page      -all;
 2473 
 2474 /*                  mrl15
 2475 *
 2476 *         This is the same test as  mrl14  except the  fill characters will start on
 2477 *         one page and end on the next page.
 2478 *         we do not expect a truncation fault.
 2479 */
 2480 
 2481 inst      mrl       -nt  "Fill X pg bound"        -io 1
 2482 
 2483           -fc*      -tbn
 2484 
 2485           -mf1  idr  ar   rl 4
 2486           -mf2  ida  reg ar   rl 8;
 2487 
 2488 /*        No  desc  statements are needed because all the defaults are correct.  */
 2489 
 2490 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2491 
 2492 data 2    "**" "**abcd"
 2493           -do -2;             /* The fill characters are split across a  page boundary.  */
 2494 
 2495 
 2496 page      -all;
 2497 
 2498 /*                  mrl16
 2499 *
 2500 *         This test is designed to test truncation.  We will expect the truncation
 2501 *         indicator to be  ON.  The truncation bit will be left OFF and so we will not
 2502 *         expect a truncation fault.
 2503 */
 2504 
 2505 
 2506 inst      mrl       -nt  "Trunc Ind ON"
 2507           -mf2 ar   -io 2     -ir tn;
 2508 
 2509 desc 1    -ns 8;              desc 2    -ns 4;
 2510 
 2511 
 2512 data 1    -do  -4   "abcd"  "1234";
 2513 
 2514 data 2    -do  -2   "1234";
 2515 
 2516 
 2517 page      -all;
 2518 
 2519 /*                  mrl17
 2520 *
 2521 *         This test is designed to test truncation.  We will expect the truncation
 2522 *         indicator to be  ON.  This test is the same as  mrl16 except that the
 2523 *         truncation bit in the instruction word will be set  ON.  This should
 2524 *         cause a truncation fault.  We should be ready for it.
 2525 */
 2526 
 2527 
 2528 inst      mrl       -nt  "Take trunc fault"       -tby
 2529           -mf2 ar   -io 2     -ir tn;
 2530 
 2531 desc 1    -ns 8;              desc 2    -ns 4;
 2532 
 2533 
 2534 data 1    -do  -4   "abcd"  "1234";
 2535 
 2536 data 2    -do  -2   "1234";
 2537 
 2538 
 2539 page      -all;
 2540 
 2541 /*                  mrl18
 2542 *
 2543 *         This test will try to move  over a page of data.  We will move  1088 words
 2544 *         containing the characters  "cisl".
 2545 */
 2546 
 2547 
 2548 inst      mrl       -nt  "Move over 1 page"       -io 1
 2549           -mf1  rl  4352      idb ar reg
 2550           -mf2  rl  4352      idbar reg;
 2551 
 2552 data 1    -do  -128   (1088) "cisl";
 2553 
 2554 data 2    -do  -128   (1088) "cisl";
 2555 
 2556 page      -all;
 2557 
 2558 
 2559 ^L
 2560 
 2561 
 2562 /*                  mvt 1
 2563 *
 2564 *         Just a simple test.    Table is "0123".  result = "01233210".
 2565 */
 2566 
 2567 inst      mvt       -nt  "Simple test with 9 bit chars";
 2568 
 2569 desc 1    -ns       8;
 2570 desc 2    -ns       8;
 2571 
 2572 data 1    000 001 002 003 003 002 001 000;        /* 9 bit characters used as indexes. */
 2573 
 2574 data 2    "01233210";
 2575 
 2576 data 3    "0123";
 2577 
 2578 
 2579 page      -all;
 2580 /*                  mvt 2
 2581 *
 2582 *         Same test as  mvt 1 except that the data fields have been move across
 2583 *         a page boundary.
 2584 */
 2585 
 2586 inst      mvt       -nt  "Same as prev - fields X pg bound" -io 1;
 2587 
 2588 desc 1    -ns       8;
 2589 desc 2    -ns       8;
 2590 
 2591 data 1    -do -4    000 001 002 003   003 002 001 000;
 2592 
 2593 data 2    -do  -4   "0123"  "3210";
 2594 
 2595 data 3    "0123";
 2596 
 2597 
 2598 page      -all;
 2599 /*                  mvt 3
 2600 *
 2601 *         Same test as  mvt 2 except we will add a lot of modification  and adjust
 2602 *         that data fields so that they do not begin on WORD boundaries.
 2603 */
 2604 
 2605 inst      mvt       -nt  "Same as prev - with mod"          -io 3
 2606           -mf1      rl  8  ar reg idb
 2607           -mf2      rl  8  ar reg idb
 2608           -mf3      ar reg;
 2609 
 2610 /*        No desc statements needed since  rl  mod specified and other defaults OK. */
 2611 
 2612 data 1    -do -2    000 001   002 003 003 002 001 000;
 2613 
 2614 data 2    -do -2    "01"  "233210";
 2615 
 2616 data 3              "0123";
 2617 
 2618 
 2619 page      -all;
 2620 /*                  mvt 4
 2621 *
 2622 *         This test will use a fill character.   The table will have  110  characters
 2623 *         but we should only reference  5  of them.
 2624 */
 2625 
 2626 inst      mvt       -nt  "Use fill characters"
 2627           -io 1
 2628           -fce      /* Fill character is "e"  =  145 octal.  */
 2629           -mf1      ar
 2630           -mf2      ar
 2631           -mf3      ar;
 2632 
 2633 desc 1    -ns  3;
 2634 
 2635 desc 2    -ns 8;              /* L2 > L1  =>  use of fill character. */
 2636 
 2637 /*        There are no legal fields we can specify with a  desc 3  statement
 2638 *         for this instruction.
 2639 */
 2640 
 2641 
 2642 data 1    -do -1    "c"  "ba";
 2643 
 2644 data 2    -do  -5   "32155"  "555";
 2645 
 2646 data 3    -do -100
 2647           (97) "*"            /* These characters in table never used. */
 2648           "123"  "45"
 2649           (9)  "*";
 2650 
 2651 
 2652 page      -all;
 2653 
 2654 /*  mvt 5
 2655 *
 2656 *  Test page faults when first character of desc 1 and 2 are
 2657 *  at  the  end  of  a  page.
 2658 */
 2659 
 2660 inst mvt -nt"check special page fault 1"
 2661          -io 1;
 2662 
 2663 desc 1  -ns 9 -cn 3 ;
 2664 desc 2  -ns 9 -cn 3 ;
 2665 
 2666 data 1 -do -4  "   " 000 001 002 003 002 000 004 005 003 ;
 2667 data 2 -do -4 000 000 000  "character" ;
 2668 data 3 "charted" ;
 2669 
 2670 page   -all ;
 2671 
 2672 
 2673 /*   mvt 6
 2674 *
 2675 *  Test page faults when last character of desc 1 and 2 are on a new page.
 2676 *
 2677 */
 2678 
 2679 inst  mvt  -nt "check special page fault 2"
 2680            -io 1 ;
 2681 
 2682 desc 1  -ns 9 ;
 2683 
 2684 desc 2  -ns 9 ;
 2685 
 2686 data 1  -do -8  000 001 002 003 002 000 004 005 003 ;
 2687 
 2688 data 2  -do -8  "character" ;
 2689 
 2690 data 3  "charte" ;
 2691 
 2692 page    -all ;
 2693 
 2694 
 2695 /*   mvt 7
 2696 *
 2697 *  Test direct data movement for data 1 and 2 .
 2698 *  Also test moving data across 3 pages.  To move more than
 2699 *  4096 characters of data register length modification must be used.
 2700 */
 2701 
 2702 inst  mvt  -nt  "dir desc. 3 page move; FCOs PHAFPG179 & 181 required on L68 CPU"
 2703          -mf1 rl 4112
 2704          -mf2 rl 4112 ;
 2705 
 2706 desc 1  -cn 1 ;
 2707 
 2708 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2709 
 2710 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2711 
 2712 data 3    "abcdefghijklmnop" ;
 2713 
 2714 page    -all ;
 2715 
 2716 /*   mvt 8
 2717 *
 2718 * Test address register usage for data 1 and 2.  Also test moving data across
 2719 * 3 pages.  All descriptors are direct.
 2720 * Also use register length modification.
 2721 */
 2722 
 2723 inst mvt -nt "tst ar1&ar2. 3 pg move;FCOs PHAFPG179 & 181 required on L68 CPU"
 2724          -io 2
 2725          -mf1 ar rl 4112
 2726          -mf2 ar rl 4112 ;
 2727 
 2728 desc 1  -cn 1 ;
 2729 
 2730 
 2731 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2732 
 2733 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2734 
 2735 data 3    "abcdefghijklmnop" ;
 2736 
 2737 page    -all ;
 2738 
 2739 
 2740 /* mvt  9
 2741 * Test ar, reg, and register length modification for data 1 and 2.
 2742 * Also test data movement of three pages.
 2743 */
 2744 
 2745 inst mvt  -nt "tst ar,rg,rl. 3 pg mv; FCOs PHAFPG179 & 181 required on L68 CPU"
 2746          -io 2
 2747          -mf1 ar reg rl 4112
 2748          -mf2 ar reg rl 4112 ;
 2749 
 2750 desc 1  -cn 1 ;
 2751 
 2752 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2753 
 2754 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2755 
 2756 data 3    "abcdefghijklmnop" ;
 2757 
 2758 page    -all ;
 2759 
 2760 
 2761 /*   mvt 10
 2762 *
 2763 *   Test indirect referencing of descriptors 1 and 2.
 2764 *   Test register length modification and move data from 3 pages.
 2765 */
 2766 
 2767 inst mvt -nt  "tst ind descs; FCOs PHAFPG179 & 181 required on L68 CPU"
 2768          -io 1
 2769          -mf1 id rl 4112
 2770          -mf2 id rl 4112 ;
 2771 
 2772 desc 1  -cn 1 ;
 2773 
 2774 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2775 
 2776 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2777 
 2778 data 3    "abcdefghijklmnop" ;
 2779 
 2780 page    -all ;
 2781 
 2782 /*   mvt 11
 2783 *
 2784 *  Test indirect referencing of descriptors 1 and 2 with ar modification
 2785 *  of the indirect word.  Also data is moved from 3 pages.
 2786 */
 2787 
 2788 inst mvt -nt "tst ida. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2789          -io 2
 2790          -mf1 ida rl 4112
 2791          -mf2 ida rl 4112 ;
 2792 
 2793 desc 1  -cn 1 ;
 2794 
 2795 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2796 
 2797 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2798 
 2799 data 3    "abcdefghijklmnop" ;
 2800 
 2801 page    -all ;
 2802 
 2803 
 2804 /*   mvt 12
 2805 *
 2806 *  Test indirect referencing of descriptors 1 and 2 with reg modification
 2807 *  of the indirect word.  Also data is moved from 3 pages.
 2808 */
 2809 
 2810 inst  mvt  -nt  "tst idr, 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2811          -io 1
 2812          -mf1 idr rl 4112
 2813          -mf2 idr rl 4112 ;
 2814 
 2815 desc 1  -cn 1 ;
 2816 
 2817 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2818 
 2819 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2820 
 2821 data 3    "abcdefghijklmnop" ;
 2822 
 2823 page    -all ;
 2824 
 2825 
 2826 /*   mvt 13
 2827 *
 2828 *  Test indirect referencing of descriptors 1 and 2 with both
 2829 *  ar and reg modification of the indirect word.  Also data is
 2830 *  moved from three pages.
 2831 */
 2832 
 2833 inst  mvt  -nt  "tst idb. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2834          -io 2
 2835          -mf1 idb rl 4112
 2836          -mf2 idb rl 4112 ;
 2837 
 2838 desc 1  -cn 1 ;
 2839 
 2840 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2841 
 2842 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2843 
 2844 data 3    "abcdefghijklmnop" ;
 2845 
 2846 page    -all ;
 2847 
 2848 
 2849 /*   mvt 14
 2850 *
 2851 *  Test indirect referencing of of descriptors 1 and 2 with
 2852 *  ar, reg, and reg length modification of the descriptors.
 2853 *  Data is moved from 3 pages.
 2854 */
 2855 
 2856 inst  mvt  -nt  "tst ar,reg,rl,id.; FCOs PHAFPG179 & 181 required on L68 CPU"
 2857          -mf1 id ar reg rl 4112
 2858          -mf2 id ar reg rl 4112 ;
 2859 
 2860 desc 1  -cn 1 ;
 2861 
 2862 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2863 
 2864 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2865 
 2866 data 3    "abcdefghijklmnop" ;
 2867 
 2868 page    -all ;
 2869 
 2870 
 2871 /*   mvt 15
 2872 *
 2873 *  Test indirect referencing of descriptors 1 and 2 with ar
 2874 *  and reg modification of the indirect word.  Also ar, reg,
 2875 *  and register length modification is applied to the
 2876 *  descriptors.  Three pages of data is moved.
 2877 */
 2878 
 2879 inst  mvt  -nt  "tst ar,reg,rl,idb; FCOs PHAFPG179 & 181 required on L68 CPU"
 2880          -io 2
 2881          -mf1 idb ar reg rl 4112
 2882          -mf2 idb ar reg rl 4112 ;
 2883 
 2884 desc 1  -cn 1 ;
 2885 
 2886 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2887 
 2888 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2889 
 2890 data 3    "abcdefghijklmnop" ;
 2891 
 2892 page    -all ;
 2893 
 2894 
 2895 
 2896 /*   mvt 16
 2897 *
 2898 *  Test translation of 9 bit to 6 bit characters.  Only direct descriptors
 2899 *  with no modification are used.  All forms of modification and
 2900 *  indirection have been tested in previous tests.
 2901 *  This test has no truncation.
 2902 *
 2903 */
 2904 
 2905 inst  mvt  -nt "9 to 6 bit chars"
 2906            -fc  ;
 2907 
 2908 desc 1  -ns 50
 2909         -cn 2  ;
 2910 
 2911 desc 2  -ns 50
 2912         -cn 5
 2913         -ta 6  ;
 2914 
 2915 data 1  -do 4068
 2916         "  " (6) 000001002003004005006007010 ;
 2917 
 2918 data 2  -do 20
 2919         000000000060 (5) 616263414243440060  61626341 ;
 2920 
 2921 data 3  "0123abcd"  (23) 000  020  ;
 2922 
 2923 page -all;
 2924 
 2925 
 2926 /*   mvt 17
 2927 *
 2928 *  Test translation of 9 to 6 `bit characters.
 2929 *  L1 is less than L2.  String 2 is `blank filled.
 2930 *
 2931 */
 2932 
 2933 inst  mvt  -nt "9 to 6 bit chars"
 2934            -fc  ;
 2935 
 2936 desc 1  -ns 28
 2937         -cn 2  ;
 2938 
 2939 desc 2  -ns 50
 2940         -cn 5
 2941         -ta 6  ;
 2942 
 2943 data 1  -do 4068
 2944         "  " (6) 000001002003004005006007010 ;
 2945 
 2946 data 2  -do 20
 2947         000000000060 (3) 616263414243440060  (7) 202020  20  ;
 2948 
 2949 data 3  "0123abcd"  (24) 000  020  ;
 2950 
 2951 page -all;
 2952 
 2953 
 2954 
 2955 
 2956 /*   mvt 18
 2957 *
 2958 *  Test translation of 9 to 6 bit characters.
 2959 *  L1 is greater than L2.  Truncation fault is not taken.
 2960 *
 2961 */
 2962 
 2963 inst  mvt  -nt  "truncation but no fault"
 2964            -ir tn  ;
 2965 
 2966 
 2967 desc 1  -ns 50
 2968         -cn 2  ;
 2969 
 2970 desc 2  -ns 28
 2971         -cn 5
 2972         -ta 6  ;
 2973 
 2974 data 1  -do 4068
 2975         "  " (6) 000001002003004005006007010 ;
 2976 
 2977 data 2  -do 20
 2978         000000000060 (3) 616263414243440060  ;
 2979 
 2980 data 3  "0123abcd"  (24) 000  020  ;
 2981 
 2982 page -all;
 2983 
 2984 
 2985 
 2986 
 2987 /*   mvt 19
 2988 *
 2989 *  Test translation of 6 bit to 9 bit characters.  Only direct
 2990 *  descriptors with no modification are used.
 2991 *  This test has no truncation.
 2992 *
 2993 */
 2994 
 2995 inst  mvt  -nt "6-9 bit. no truncation"
 2996            -fc   ;
 2997 
 2998 desc 1  -ns 63
 2999         -cn 3
 3000         -ta 6  ;
 3001 
 3002 desc 2  -ns 63 ;
 3003 
 3004 data 1  -do -20
 3005         000000  (7)  000102030405060710  ;
 3006 
 3007 data 2  -do -28
 3008         (7)  141142143144060061062063000  ;
 3009 
 3010 data 3  "abcd0123"  (24) 000  040  ;
 3011 
 3012 page -all;
 3013 
 3014 
 3015 
 3016 /*   mvt 20
 3017 *
 3018 *  Test translation of 6 bit to 9 bit characters.
 3019 *  L1 is less than L2.  String 2 is blank filled.
 3020 *
 3021 */
 3022 
 3023 inst  mvt  -nt "6-9 bit. blank fill"
 3024            -fc   ;
 3025 
 3026 desc 1  -ns 29
 3027         -cn 3
 3028         -ta 6  ;
 3029 
 3030 desc 2  -ns 63 ;
 3031 
 3032 data 1  -do -20
 3033         000000  (7)  000102030405060710  ;
 3034 
 3035 data 2  -do -28
 3036         (3)  141142143144060061062063000  141142  (34) 040  ;
 3037 
 3038 data 3  "abcd0123"  (24) 000  040  ;
 3039 
 3040 page -all;
 3041 
 3042 
 3043 
 3044 /*   mvt 21
 3045 *
 3046 *  Test translation of 6 bit to 9 bit characters.
 3047 *  L1 is greater than L2.  Truncation fault is not taken.
 3048 *
 3049 */
 3050 
 3051 inst  mvt  -nt "6-9 bit. truncation"
 3052            -ir tn
 3053            -fc   ;
 3054 
 3055 desc 1  -ns 63
 3056         -cn 3
 3057         -ta 6  ;
 3058 
 3059 desc 2  -ns 29 ;
 3060 
 3061 data 1  -do -20
 3062         000000  (7)  000102030405060710  ;
 3063 
 3064 data 2  -do -28
 3065         (3)  141142143144060061062063000  141142  ;
 3066 
 3067 data 3  "abcd0123"  (24) 000  040  ;
 3068 
 3069 page -all;
 3070 
 3071 
 3072 
 3073 /*   mvt 22
 3074 *
 3075 *  Test translation of 4 bit characters. The test is made
 3076 *  with full descriptor modification.  Data is placed across a
 3077 *  page boundary.
 3078 *
 3079 */
 3080 
 3081 inst  mvt  -nt "4 bit char translation"
 3082            -io 1
 3083            -mf1 idb ar reg rl 16
 3084            -mf2 idb ar reg rl 16
 3085            -mf3 ar reg  ;
 3086 
 3087 desc 1  -ta 4 ;
 3088 
 3089 desc 2  -ta 4 ;
 3090 
 3091 data 1  -do -4  (2) 002215053176  ;
 3092 
 3093 data 2  -do -4  (2) 002215053176  ;
 3094 
 3095 data 3  000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017  ;
 3096 
 3097 page -all;
 3098 
 3099 
 3100 ^L
 3101 
 3102 
 3103 /*                  mve1
 3104 *
 3105 *         Move  6  (9 bit) characters with zero -> "*" replacement.
 3106 *         All the fields including the  micro op string will take faults
 3107 *         and cross a page boundary.
 3108 */
 3109 
 3110 inst      mve       -nt  "zero rep, mod, faults"  -io 3
 3111           -mf1      idb ar reg  rl 6
 3112           -mf2      idb ar reg  rl 2
 3113           -mf3      idb ar reg  rl 6;
 3114 
 3115 /*        No desc statements needed.  */
 3116 
 3117 data 1    -do -4    "0010" "23";
 3118 
 3119 data 2    -do -1    124                 /*  mvza 4 */
 3120                     322;                /*   mvc 2 */
 3121 
 3122 data 3    -do -3    "**1" "023";
 3123 
 3124 
 3125 page      -all;
 3126 /*                  mve2
 3127 
 3128 *         this test uses a sequence of micro op strings
 3129 *         that are appropriate for alpha numeric data.
 3130 *         each string is input to et such that it is
 3131 *         explained via a comment after each mop.
 3132 *         this particular mop sequence and the sending string is
 3133 *         used for all 6 and 9 bit tests with mod done
 3134 *         on descriptor access and data placement.
 3135 *
 3136 */
 3137 
 3138 inst      mve -nt "9-9 simple test with no mod"
 3139           -mf3      rl 31;
 3140 
 3141 desc 1    -ns 27;
 3142 
 3143 desc 2    -ns 26;
 3144 
 3145 
 3146 data 1    /* arranged according mop use */
 3147           "0012"
 3148           "0012"
 3149           "0012"
 3150           "1234"
 3151           "4567"
 3152           "-123"
 3153           "123";
 3154 
 3155 data 2     /* mops arranged in order */
 3156           104       /* mvzb */
 3157           060       /* ses es reset */
 3158           124       /* mvza */
 3159           060       /* ses es reset */
 3160           050       /* enf for $ insert */
 3161           064       /* ses es reset and bz set */
 3162           164       /* mflc */
 3163           200075    /* insb with = */
 3164           060       /* ses es reset */
 3165           220076    /* insa with " not used since es=0 */
 3166           304       /* ign */
 3167           324       /* mvc */
 3168           420 "* +-    "    /* change table with string shown */
 3169           024       /* insm */
 3170           344       /* mses sn is set */
 3171           364;
 3172 
 3173 
 3174 data 3    "  12"
 3175           "**12"
 3176           "$"
 3177           "  $12"
 3178           "="
 3179           "*"
 3180           "4567"
 3181           "****"
 3182           "-123"
 3183           ";;;";
 3184 
 3185 page      -all;
 3186 /*                  mve3
 3187 
 3188 *         this test uses a sequence of micro op strings
 3189 *         that are appropriate for alpha numeric data.
 3190 *         each string is input to et such that it is
 3191 *         explained via a comment after each mop.
 3192 *         this particular mop sequence and the sending string is
 3193 *         used for all 6 and 9 bit tests with mod done
 3194 *         on descriptor access and data placement.
 3195 *
 3196 */
 3197 
 3198 inst      mve -nt "9-9offset inst. and desc mod"     -io 2
 3199           -mf1      ida ar
 3200           -mf2      reg
 3201           -mf3      rl 31;
 3202 
 3203 desc 1    -ns 27;
 3204 
 3205 desc 2    -ns 26;
 3206 
 3207 
 3208 data 1    /* arranged according mop use */
 3209           "0012"
 3210           "0012"
 3211           "0012"
 3212           "1234"
 3213           "4567"
 3214           "-123"
 3215           "123";
 3216 
 3217 data 2     /* mops arranged in order */
 3218           104       /* mvzb */
 3219           060       /* ses es reset */
 3220           124       /* mvza */
 3221           060       /* ses es reset */
 3222           050       /* enf for $ insert */
 3223           064       /* ses es reset and bz set */
 3224           164       /* mflc */
 3225           200075    /* insb with = */
 3226           060       /* ses es reset */
 3227           220076    /* insa with " not used since es=0 */
 3228           304       /* ign */
 3229           324       /* mvc */
 3230           420 "* +-    "    /* change table with string shown */
 3231           024       /* insm */
 3232           344       /* mses sn is set */
 3233           364;     /* mors */
 3234 
 3235 
 3236 data 3    "  12"
 3237           "**12"
 3238           "$"
 3239           "  $12"
 3240           "="
 3241           "*"
 3242           "4567"
 3243           "****"
 3244           "-123"
 3245           ";;;";
 3246 
 3247 page      -all;
 3248  /*                  mve4
 3249 
 3250 *         this test uses a sequence of micro op strings
 3251 *         that are appropriate for alpha numeric data.
 3252 *         each string is input to et such that it is
 3253 *         explained via a comment after each mop.
 3254 *         this particular mop sequence and the sending string is
 3255 *         used for all 6 and 9 bit tests with mod done
 3256 *         on descriptor access and data placement.
 3257 *
 3258 */
 3259 
 3260 inst      mve -nt "9-9 off inst desc mod d1 off"     -io 2
 3261           -mf1      ida ar
 3262           -mf2      idb ar
 3263           -mf3      rl 31;
 3264 
 3265 desc 1    -ns 27;
 3266 
 3267 desc 2    -ns 26;
 3268 
 3269 
 3270 data 1    /* arranged according mop use */
 3271           -do -7
 3272           "0012"
 3273           "0012"
 3274           "0012"
 3275           "1234"
 3276           "4567"
 3277           "-123"
 3278           "123";
 3279 
 3280 data 2     /* mops arranged in order */
 3281           104       /* mvzb */
 3282           060       /* ses es reset */
 3283           124       /* mvza */
 3284           060       /* ses es reset */
 3285           050       /* enf for $ insert */
 3286           064       /* ses es reset and bz set */
 3287           164       /* mflc */
 3288           200075    /* insb with = */
 3289           060       /* ses es reset */
 3290           220076    /* insa with " not used since es=0 */
 3291           304       /* ign */
 3292           324       /* mvc */
 3293           420 "* +-    "    /* change table with string shown */
 3294           024       /* insm */
 3295           344       /* mses sn is set */
 3296           364;     /* mors */
 3297 
 3298 
 3299 data 3    "  12"
 3300           "**12"
 3301           "$"
 3302           "  $12"
 3303           "="
 3304           "*"
 3305           "4567"
 3306           "****"
 3307           "-123"
 3308           ";;;";
 3309 
 3310 page      -all;
 3311 
 3312 
 3313 
 3314 
 3315 
 3316 /*                  mve5
 3317 
 3318 *         this test uses a sequence of micro op strings
 3319 *         that are appropriate for alpha numeric data.
 3320 *         each string is input to et such that it is
 3321 *         explained via a comment after each mop.
 3322 *         this particular mop sequence and the sending string is
 3323 *         used for all 6 and 9 bit tests with mod done
 3324 *         on descriptor access and data placement.
 3325 *
 3326 */
 3327 
 3328 inst      mve -nt "9-9 d2 offset d1 offset"     -io 2
 3329           -mf1      ida ar
 3330           -mf2      idb ar
 3331           -mf3      rl 31;
 3332 
 3333 desc 1    -ns 27;
 3334 
 3335 desc 2    -ns 26;
 3336 
 3337 
 3338 data 1    /* arranged according mop use */
 3339           -do -7
 3340           "0012"
 3341           "0012"
 3342           "0012"
 3343           "1234"
 3344           "4567"
 3345           "-123"
 3346           "123";
 3347 
 3348 data 2     /* mops arranged in order */
 3349           -do -13
 3350           104       /* mvzb */
 3351           060       /* ses es reset */
 3352           124       /* mvza */
 3353           060       /* ses es reset */
 3354           050       /* enf for $ insert */
 3355           064       /* ses es reset and bz set */
 3356           164       /* mflc */
 3357           200075    /* insb with = */
 3358           060       /* ses es reset */
 3359           220076    /* insa with " not used since es=0 */
 3360           304       /* ign */
 3361           324       /* mvc */
 3362           420 "* +-    "    /* change table with string shown */
 3363           024       /* insm */
 3364           344       /* mses sn is set */
 3365           364;     /* mors */
 3366 
 3367 
 3368 data 3    "  12"
 3369           "**12"
 3370           "$"
 3371           "  $12"
 3372           "="
 3373           "*"
 3374           "4567"
 3375           "****"
 3376           "-123"
 3377           ";;;";
 3378 
 3379 page      -all;
 3380  /*                  mve6
 3381 
 3382 *         this test uses a sequence of micro op strings
 3383 *         that are appropriate for alpha numeric data.
 3384 *         each string is input to et such that it is
 3385 *         explained via a comment after each mop.
 3386 *         this particular mop sequence and the sending string is
 3387 *         used for all 6 and 9 bit tests with mod done
 3388 *         on descriptor access and data placement.
 3389 *
 3390 */
 3391 
 3392 inst      mve -nt "9-9d3 offset d2 offset d1 offset"     -io 3
 3393           -mf1      ida ar reg
 3394           -mf2      idb ar
 3395           -mf3      rl 31;
 3396 
 3397 desc 1    -ns 27;
 3398 
 3399 desc 2    -ns 26;
 3400 
 3401 
 3402 data 1    /* arranged according mop use */
 3403           -do -7
 3404           "0012"
 3405           "0012"
 3406           "0012"
 3407           "1234"
 3408           "4567"
 3409           "-123"
 3410           "123";
 3411 
 3412 data 2     /* mops arranged in order */
 3413           -do -13
 3414           104       /* mvzb */
 3415           060       /* ses es reset */
 3416           124       /* mvza */
 3417           060       /* ses es reset */
 3418           050       /* enf for $ insert */
 3419           064       /* ses es reset and bz set */
 3420           164       /* mflc */
 3421           200075    /* insb with = */
 3422           060       /* ses es reset */
 3423           220076    /* insa with " not used since es=0 */
 3424           304       /* ign */
 3425           324       /* mvc */
 3426           420 "* +-    "    /* change table with string shown */
 3427           024       /* insm */
 3428           344       /* mses sn is set */
 3429           364;     /* mors */
 3430 
 3431 
 3432 data 3    -do -28
 3433           "  12"
 3434           "**12"
 3435           "$"
 3436           "  $12"
 3437           "="
 3438           "*"
 3439           "4567"
 3440           "****"
 3441           "-123"
 3442           ";;;";
 3443 
 3444 page      -all;
 3445 
 3446 /*                  mve7
 3447 
 3448 *         this test uses a sequence of micro op strings
 3449 *         that are appropriate for alpha numeric data.
 3450 *         each string is input to et such that it is
 3451 *         explained via a comment after each mop.
 3452 *         this particular mop sequence and the sending string is
 3453 *         used for all 6 and 9 bit tests with mod done
 3454 *         on descriptor access and data placement.
 3455 *
 3456 */
 3457 
 3458 inst      mve -nt "9-9data 1 totally on p0"     -io 3
 3459           -mf1      ida ar reg rl 27
 3460           -mf2      idb ar
 3461           -mf3      ar reg rl 31;
 3462 
 3463 
 3464 desc 2    -ns 26;
 3465 
 3466 
 3467 data 1    /* arranged according mop use */
 3468           -do -27
 3469           "0012"
 3470           "0012"
 3471           "0012"
 3472           "1234"
 3473           "4567"
 3474           "-123"
 3475           "123";
 3476 
 3477 data 2     /* mops arranged in order */
 3478           -do -13
 3479           104       /* mvzb */
 3480           060       /* ses es reset */
 3481           124       /* mvza */
 3482           060       /* ses es reset */
 3483           050       /* enf for $ insert */
 3484           064       /* ses es reset and bz set */
 3485           164       /* mflc */
 3486           200075    /* insb with = */
 3487           060       /* ses es reset */
 3488           220076    /* insa with " not used since es=0 */
 3489           304       /* ign */
 3490           324       /* mvc */
 3491           420 "* +-    "    /* change table with string shown */
 3492           024       /* insm */
 3493           344       /* mses sn is set */
 3494           364;     /* mors */
 3495 
 3496 
 3497 data 3    -do 30
 3498           "  12"
 3499           "**12"
 3500           "$"
 3501           "  $12"
 3502           "="
 3503           "*"
 3504           "4567"
 3505           "****"
 3506           "-123"
 3507           ";;;";
 3508 
 3509 page      -all;
 3510  /*                  mve8
 3511 
 3512 *         this test uses a sequence of micro op strings
 3513 *         that are appropriate for alpha numeric data.
 3514 *         each string is input to et such that it is
 3515 *         explained via a comment after each mop.
 3516 *         this particular mop sequence and the sending string is
 3517 *         used for all 6 and 9 bit tests with mod done
 3518 *         on descriptor access and data placement.
 3519 *
 3520 */
 3521 
 3522 inst      mve -nt "9-9data 2 totally on p0"     -io 3
 3523           -mf1      ida ar reg rl 27
 3524           -mf2      idb ar rl 26
 3525           -mf3      ar reg rl 31;
 3526 
 3527 
 3528            /* no desc needed */
 3529 
 3530 
 3531 data 1    /* arranged according mop use */
 3532           -do -27
 3533           "0012"
 3534           "0012"
 3535           "0012"
 3536           "1234"
 3537           "4567"
 3538           "-123"
 3539           "123";
 3540 
 3541 data 2     /* mops arranged in order */
 3542           -do -26
 3543           104       /* mvzb */
 3544           060       /* ses es reset */
 3545           124       /* mvza */
 3546           060       /* ses es reset */
 3547           050       /* enf for $ insert */
 3548           064       /* ses es reset and bz set */
 3549           164       /* mflc */
 3550           200075    /* insb with = */
 3551           060       /* ses es reset */
 3552           220076    /* insa with " not used since es=0 */
 3553           304       /* ign */
 3554           324       /* mvc */
 3555           420 "* +-    "    /* change table with string shown */
 3556           024       /* insm */
 3557           344       /* mses sn is set */
 3558           364;     /* mors */
 3559 
 3560 
 3561 data 3    -do 30
 3562           "  12"
 3563           "**12"
 3564           "$"
 3565           "  $12"
 3566           "="
 3567           "*"
 3568           "4567"
 3569           "****"
 3570           "-123"
 3571           ";;;";
 3572 
 3573 page      -all;
 3574  /*                  mve9
 3575 
 3576 *         this test uses a sequence of micro op strings
 3577 *         that are appropriate for alpha numeric data.
 3578 *         each string is input to et such that it is
 3579 *         explained via a comment after each mop.
 3580 *         this particular mop sequence and the sending string is
 3581 *         used for all 6 and 9 bit tests with mod done
 3582 *         on descriptor access and data placement.
 3583 *
 3584 */
 3585 
 3586 inst      mve -nt "9-9all data totally on p0"     -io 3
 3587           -mf1      ida ar reg rl 27
 3588           -mf2      idb ar rl 26
 3589           -mf3      ar reg rl 31;
 3590 
 3591 
 3592            /* no desc needed */
 3593 
 3594 
 3595 data 1    /* arranged according mop use */
 3596           -do -27
 3597           "0012"
 3598           "0012"
 3599           "0012"
 3600           "1234"
 3601           "4567"
 3602           "-123"
 3603           "123";
 3604 
 3605 data 2     /* mops arranged in order */
 3606           -do -26
 3607           104       /* mvzb */
 3608           060       /* ses es reset */
 3609           124       /* mvza */
 3610           060       /* ses es reset */
 3611           050       /* enf for $ insert */
 3612           064       /* ses es reset and bz set */
 3613           164       /* mflc */
 3614           200075    /* insb with = */
 3615           060       /* ses es reset */
 3616           220076    /* insa with " not used since es=0 */
 3617           304       /* ign */
 3618           324       /* mvc */
 3619           420 "* +-    "    /* change table with string shown */
 3620           024       /* insm */
 3621           344       /* mses sn is set */
 3622           364;     /* mors */
 3623 
 3624 
 3625 data 3    -do -31
 3626           "  12"
 3627           "**12"
 3628           "$"
 3629           "  $12"
 3630           "="
 3631           "*"
 3632           "4567"
 3633           "****"
 3634           "-123"
 3635           ";;;";
 3636 
 3637 page      -all;
 3638  /*                  mve10
 3639 
 3640 *         this test uses a sequence of micro op strings
 3641 *         that are appropriate for alpha numeric data.
 3642 *         each string is input to et such that it is
 3643 *         explained via a comment after each mop.
 3644 *         this particular mop sequence and the sending string is
 3645 *         used for all 6 and 9 bit tests with mod done
 3646 *         on descriptor access and data placement.
 3647 *
 3648 */
 3649 
 3650 inst      mve -nt "9-9 all data  on p0 all mod"     -io 3
 3651           -mf1      idb ar reg rl 27
 3652           -mf2      idb ar reg rl 26
 3653           -mf3      ar reg rl 31;
 3654 
 3655 
 3656            /* no desc needed */
 3657 
 3658 
 3659 data 1    /* arranged according mop use */
 3660           -do -27
 3661           "0012"
 3662           "0012"
 3663           "0012"
 3664           "1234"
 3665           "4567"
 3666           "-123"
 3667           "123";
 3668 
 3669 data 2     /* mops arranged in order */
 3670           -do -26
 3671           104       /* mvzb */
 3672           060       /* ses es reset */
 3673           124       /* mvza */
 3674           060       /* ses es reset */
 3675           050       /* enf for $ insert */
 3676           064       /* ses es reset and bz set */
 3677           164       /* mflc */
 3678           200075    /* insb with = */
 3679           060       /* ses es reset */
 3680           220076    /* insa with " not used since es=0 */
 3681           304       /* ign */
 3682           324       /* mvc */
 3683           420 "* +-    "    /* change table with string shown */
 3684           024       /* insm */
 3685           344       /* mses sn is set */
 3686           364;     /* mors */
 3687 
 3688 
 3689 data 3    -do -31
 3690           "  12"
 3691           "**12"
 3692           "$"
 3693           "  $12"
 3694           "="
 3695           "*"
 3696           "4567"
 3697           "****"
 3698           "-123"
 3699           ";;;";
 3700 
 3701 page      -all;
 3702  /*                  mve11
 3703 
 3704 *         this test uses a sequence of micro op strings
 3705 *         that are appropriate for alpha numeric data.
 3706 *         each string is input to et such that it is
 3707 *         explained via a comment after each mop.
 3708 *         this particular mop sequence and the sending string is
 3709 *         used for all 6 and 9 bit tests with mod done
 3710 *         on descriptor access and data placement.
 3711 *
 3712 */
 3713 
 3714 inst      mve -nt "6-9  simple test with no mod"
 3715           -mf3      rl 31;
 3716 
 3717 desc 1    -ta 6    -ns 27;
 3718 
 3719 desc 2    -ns 26;
 3720 
 3721 desc 3    -ta 9;
 3722 
 3723 
 3724 
 3725 data 1    /* arranged according mop use */
 3726           606061626060616260606162616263646465666752616263616263;
 3727 
 3728 data 2     /* mops arranged in order */
 3729           104       /* mvzb */
 3730           060       /* ses es reset */
 3731           124       /* mvza */
 3732           060       /* ses es reset */
 3733           050       /* enf for $ insert */
 3734           064       /* ses es reset and bz set */
 3735           164       /* mflc */
 3736           200075    /* insb with = */
 3737           060       /* ses es reset */
 3738           220076    /* insa with " not used since es=0 */
 3739           304       /* ign */
 3740           324       /* mvc */
 3741           420 "* +-    "    /* change table with string shown */
 3742           024       /* insm */
 3743           344       /* mses sn is set */
 3744           364;
 3745 
 3746 
 3747 data 3    "  12"
 3748           "**12"
 3749           "$"
 3750           "  $12"
 3751           "="
 3752           "*"
 3753           "4567"
 3754           "****"
 3755           "*123"
 3756           ";;;";
 3757 
 3758 page      -all;
 3759 /*                  mve12
 3760 
 3761 *         this test uses a sequence of micro op strings
 3762 *         that are appropriate for alpha numeric data.
 3763 *         each string is input to et such that it is
 3764 *         explained via a comment after each mop.
 3765 *         this particular mop sequence and the sending string is
 3766 *         used for all 6 and 9 bit tests with mod done
 3767 *         on descriptor access and data placement.
 3768 *
 3769 */
 3770 
 3771 inst      mve -nt "6-9 offset inst. and desc mod"     -io 2
 3772           -mf1      ida ar
 3773           -mf2      reg
 3774           -mf3      rl 31;
 3775 
 3776 desc 1    -ta 6    -ns 27;
 3777 
 3778 desc 2    -ns 26;
 3779 
 3780 
 3781 data 1    /* arranged according mop use */
 3782           606061626060616260606162616263646465666752616263616263;
 3783 
 3784 data 2     /* mops arranged in order */
 3785           104       /* mvzb */
 3786           060       /* ses es reset */
 3787           124       /* mvza */
 3788           060       /* ses es reset */
 3789           050       /* enf for $ insert */
 3790           064       /* ses es reset and bz set */
 3791           164       /* mflc */
 3792           200075    /* insb with = */
 3793           060       /* ses es reset */
 3794           220076    /* insa with " not used since es=0 */
 3795           304       /* ign */
 3796           324       /* mvc */
 3797           420 "* +-    "    /* change table with string shown */
 3798           024       /* insm */
 3799           344       /* mses sn is set */
 3800           364;     /* mors */
 3801 
 3802 
 3803 data 3    "  12"
 3804           "**12"
 3805           "$"
 3806           "  $12"
 3807           "="
 3808           "*"
 3809           "4567"
 3810           "****"
 3811           "*123"
 3812           ";;;";
 3813 
 3814 page      -all;
 3815  /*                  mve13
 3816 
 3817 *         this test uses a sequence of micro op strings
 3818 *         that are appropriate for alpha numeric data.
 3819 *         each string is input to et such that it is
 3820 *         explained via a comment after each mop.
 3821 *         this particular mop sequence and the sending string is
 3822 *         used for all 6 and 9 bit tests with mod done
 3823 *         on descriptor access and data placement.
 3824 *
 3825 */
 3826 
 3827 inst      mve -nt "6-9  desc mod d1 offset"     -io 2
 3828           -mf1      ida ar
 3829           -mf2      idb ar
 3830           -mf3      rl 31;
 3831 
 3832 desc 1    -ta 6    -ns 27;
 3833 
 3834 desc 2    -ns 26;
 3835 
 3836 
 3837 data 1    /* arranged according mop use */
 3838           -do -6
 3839           606061626060616260606162616263646465666752616263616263;
 3840 
 3841 data 2     /* mops arranged in order */
 3842           104       /* mvzb */
 3843           060       /* ses es reset */
 3844           124       /* mvza */
 3845           060       /* ses es reset */
 3846           050       /* enf for $ insert */
 3847           064       /* ses es reset and bz set */
 3848           164       /* mflc */
 3849           200075    /* insb with = */
 3850           060       /* ses es reset */
 3851           220076    /* insa with " not used since es=0 */
 3852           304       /* ign */
 3853           324       /* mvc */
 3854           420 "* +-    "    /* change table with string shown */
 3855           024       /* insm */
 3856           344       /* mses sn is set */
 3857           364;     /* mors */
 3858 
 3859 
 3860 data 3    "  12"
 3861           "**12"
 3862           "$"
 3863           "  $12"
 3864           "="
 3865           "*"
 3866           "4567"
 3867           "****"
 3868           "*123"
 3869           ";;;";
 3870 
 3871 page      -all;
 3872 
 3873 
 3874 
 3875 
 3876 
 3877 /*                  mve14
 3878 
 3879 *         this test uses a sequence of micro op strings
 3880 *         that are appropriate for alpha numeric data.
 3881 *         each string is input to et such that it is
 3882 *         explained via a comment after each mop.
 3883 *         this particular mop sequence and the sending string is
 3884 *         used for all 6 and 9 bit tests with mod done
 3885 *         on descriptor access and data placement.
 3886 *
 3887 */
 3888 
 3889 inst      mve -nt "6-9  d2 offset d1 offset"     -io 2
 3890           -mf1      ida ar
 3891           -mf2      idb ar
 3892           -mf3      rl 31;
 3893 
 3894 desc 1    -ta 6    -ns 27;
 3895 
 3896 desc 2    -ns 26;
 3897 
 3898 
 3899 data 1    /* arranged according mop use */
 3900           -do -6
 3901           606061626060616260606162616263646465666752616263616263;
 3902 
 3903 data 2     /* mops arranged in order */
 3904           -do -13
 3905           104       /* mvzb */
 3906           060       /* ses es reset */
 3907           124       /* mvza */
 3908           060       /* ses es reset */
 3909           050       /* enf for $ insert */
 3910           064       /* ses es reset and bz set */
 3911           164       /* mflc */
 3912           200075    /* insb with = */
 3913           060       /* ses es reset */
 3914           220076    /* insa with " not used since es=0 */
 3915           304       /* ign */
 3916           324       /* mvc */
 3917           420 "* +-    "    /* change table with string shown */
 3918           024       /* insm */
 3919           344       /* mses sn is set */
 3920           364;     /* mors */
 3921 
 3922 
 3923 data 3    "  12"
 3924           "**12"
 3925           "$"
 3926           "  $12"
 3927           "="
 3928           "*"
 3929           "4567"
 3930           "****"
 3931           "*123"
 3932           ";;;";
 3933 
 3934 page      -all;
 3935  /*                  mve15
 3936 
 3937 *         this test uses a sequence of micro op strings
 3938 *         that are appropriate for alpha numeric data.
 3939 *         each string is input to et such that it is
 3940 *         explained via a comment after each mop.
 3941 *         this particular mop sequence and the sending string is
 3942 *         used for all 6 and 9 bit tests with mod done
 3943 *         on descriptor access and data placement.
 3944 *
 3945 */
 3946 
 3947 inst      mve -nt "6-9 d3 offset and d2 and d1"     -io 3
 3948           -mf1      ida ar reg
 3949           -mf2      idb ar
 3950           -mf3      rl 31;
 3951 
 3952 desc 1    -ta 6    -ns 27;
 3953 
 3954 desc 2    -ns 26;
 3955 
 3956 
 3957 data 1    /* arranged according mop use */
 3958           -do -6
 3959           606061626060616260606162616263646465666752616263616263;
 3960 
 3961 data 2     /* mops arranged in order */
 3962           -do -13
 3963           104       /* mvzb */
 3964           060       /* ses es reset */
 3965           124       /* mvza */
 3966           060       /* ses es reset */
 3967           050       /* enf for $ insert */
 3968           064       /* ses es reset and bz set */
 3969           164       /* mflc */
 3970           200075    /* insb with = */
 3971           060       /* ses es reset */
 3972           220076    /* insa with " not used since es=0 */
 3973           304       /* ign */
 3974           324       /* mvc */
 3975           420 "* +-    "    /* change table with string shown */
 3976           024       /* insm */
 3977           344       /* mses sn is set */
 3978           364;     /* mors */
 3979 
 3980 
 3981 data 3    -do -28
 3982           "  12"
 3983           "**12"
 3984           "$"
 3985           "  $12"
 3986           "="
 3987           "*"
 3988           "4567"
 3989           "****"
 3990           "*123"
 3991           ";;;";
 3992 
 3993 page      -all;
 3994 
 3995 /*                  mve16
 3996 
 3997 *         this test uses a sequence of micro op strings
 3998 *         that are appropriate for alpha numeric data.
 3999 *         each string is input to et such that it is
 4000 *         explained via a comment after each mop.
 4001 *         this particular mop sequence and the sending string is
 4002 *         used for all 6 and 9 bit tests with mod done
 4003 *         on descriptor access and data placement.
 4004 *
 4005 */
 4006 
 4007 inst      mve -nt "6-9 data 1 totally on p0"     -io 3
 4008           -mf1      ida ar reg rl 27
 4009           -mf2      idb ar
 4010           -mf3      ar reg rl 31;
 4011 
 4012 
 4013 desc 1    -ta 6;
 4014 
 4015 desc 2    -ns 26;
 4016 
 4017 
 4018 data 1    /* arranged according mop use */
 4019           -do -28
 4020           606061626060616260606162616263646465666752616263616263;
 4021 
 4022 data 2     /* mops arranged in order */
 4023           -do -13
 4024           104       /* mvzb */
 4025           060       /* ses es reset */
 4026           124       /* mvza */
 4027           060       /* ses es reset */
 4028           050       /* enf for $ insert */
 4029           064       /* ses es reset and bz set */
 4030           164       /* mflc */
 4031           200075    /* insb with = */
 4032           060       /* ses es reset */
 4033           220076    /* insa with " not used since es=0 */
 4034           304       /* ign */
 4035           324       /* mvc */
 4036           420 "* +-    "    /* change table with string shown */
 4037           024       /* insm */
 4038           344       /* mses sn is set */
 4039           364;     /* mors */
 4040 
 4041 
 4042 data 3    -do 30
 4043           "  12"
 4044           "**12"
 4045           "$"
 4046           "  $12"
 4047           "="
 4048           "*"
 4049           "4567"
 4050           "****"
 4051           "*123"
 4052           ";;;";
 4053 
 4054 page      -all;
 4055   /*                  mve17
 4056 
 4057 *         this test uses a sequence of micro op strings
 4058 *         that are appropriate for alpha numeric data.
 4059 *         each string is input to et such that it is
 4060 *         explained via a comment after each mop.
 4061 *         this particular mop sequence and the sending string is
 4062 *         used for all 6 and 9 bit tests with mod done
 4063 *         on descriptor access and data placement.
 4064 *
 4065 */
 4066 
 4067 inst      mve -nt "6-9 data 2 totally on p0"     -io 3
 4068           -mf1      ida ar reg rl 27
 4069           -mf2      idb ar rl 26
 4070           -mf3      ar reg rl 31;
 4071 
 4072 
 4073 desc 1    -ta 6;
 4074 
 4075 
 4076 data 1    /* arranged according mop use */
 4077           606061626060616260606162616263646465666752616263616263;
 4078 
 4079 data 2     /* mops arranged in order */
 4080           -do -26
 4081           104       /* mvzb */
 4082           060       /* ses es reset */
 4083           124       /* mvza */
 4084           060       /* ses es reset */
 4085           050       /* enf for $ insert */
 4086           064       /* ses es reset and bz set */
 4087           164       /* mflc */
 4088           200075    /* insb with = */
 4089           060       /* ses es reset */
 4090           220076    /* insa with " not used since es=0 */
 4091           304       /* ign */
 4092           324       /* mvc */
 4093           420 "* +-    "    /* change table with string shown */
 4094           024       /* insm */
 4095           344       /* mses sn is set */
 4096           364;     /* mors */
 4097 
 4098 
 4099 data 3    -do 30
 4100           "  12"
 4101           "**12"
 4102           "$"
 4103           "  $12"
 4104           "="
 4105           "*"
 4106           "4567"
 4107           "****"
 4108           "*123"
 4109           ";;;";
 4110 
 4111 page      -all;
 4112  /*                  mve18
 4113 
 4114 *         this test uses a sequence of micro op strings
 4115 *         that are appropriate for alpha numeric data.
 4116 *         each string is input to et such that it is
 4117 *         explained via a comment after each mop.
 4118 *         this particular mop sequence and the sending string is
 4119 *         used for all 6 and 9 bit tests with mod done
 4120 *         on descriptor access and data placement.
 4121 *
 4122 */
 4123 
 4124 inst      mve -nt "6-9 all data totally on p0"     -io 3
 4125           -mf1      ida ar reg rl 27
 4126           -mf2      idb ar rl 26
 4127           -mf3      ar reg rl 31;
 4128 
 4129 
 4130 desc 1    -ta 6;
 4131 
 4132 
 4133 data 1    /* arranged according mop use */
 4134           -do -28
 4135           606061626060616260606162616263646465666752616263616263;
 4136 
 4137 data 2     /* mops arranged in order */
 4138           -do -26
 4139           104       /* mvzb */
 4140           060       /* ses es reset */
 4141           124       /* mvza */
 4142           060       /* ses es reset */
 4143           050       /* enf for $ insert */
 4144           064       /* ses es reset and bz set */
 4145           164       /* mflc */
 4146           200075    /* insb with = */
 4147           060       /* ses es reset */
 4148           220076    /* insa with " not used since es=0 */
 4149           304       /* ign */
 4150           324       /* mvc */
 4151           420 "* +-    "    /* change table with string shown */
 4152           024       /* insm */
 4153           344       /* mses sn is set */
 4154           364;     /* mors */
 4155 
 4156 
 4157 data 3    -do -31
 4158           "  12"
 4159           "**12"
 4160           "$"
 4161           "  $12"
 4162           "="
 4163           "*"
 4164           "4567"
 4165           "****"
 4166           "*123"
 4167           ";;;";
 4168 
 4169 page      -all;
 4170  /*                  mve19
 4171 
 4172 *         this test uses a sequence of micro op strings
 4173 *         that are appropriate for alpha numeric data.
 4174 *         each string is input to et such that it is
 4175 *         explained via a comment after each mop.
 4176 *         this particular mop sequence and the sending string is
 4177 *         used for all 6 and 9 bit tests with mod done
 4178 *         on descriptor access and data placement.
 4179 *
 4180 */
 4181 
 4182 inst      mve -nt "6-9 all data  on p0 all mod"     -io 3
 4183           -mf1      idb ar reg rl 27
 4184           -mf2      idb ar reg rl 26
 4185           -mf3      ar reg rl 31;
 4186 
 4187 
 4188 desc 1    -ta 6;
 4189 
 4190 
 4191 data 1    /* arranged according mop use */
 4192           -do -28
 4193           606061626060616260606162616263646465666752616263616263;
 4194 
 4195 data 2     /* mops arranged in order */
 4196           -do -26
 4197           104       /* mvzb */
 4198           060       /* ses es reset */
 4199           124       /* mvza */
 4200           060       /* ses es reset */
 4201           050       /* enf for $ insert */
 4202           064       /* ses es reset and bz set */
 4203           164       /* mflc */
 4204           200075    /* insb with = */
 4205           060       /* ses es reset */
 4206           220076    /* insa with " not used since es=0 */
 4207           304       /* ign */
 4208           324       /* mvc */
 4209           420 "* +-    "    /* change table with string shown */
 4210           024       /* insm */
 4211           344       /* mses sn is set */
 4212           364;     /* mors */
 4213 
 4214 
 4215 data 3    -do -31
 4216           "  12"
 4217           "**12"
 4218           "$"
 4219           "  $12"
 4220           "="
 4221           "*"
 4222           "4567"
 4223           "****"
 4224           "*123"
 4225           ";;;";
 4226 
 4227 page      -all;
 4228  /*                  mve20
 4229 
 4230 *         this test uses a sequence of micro op strings
 4231 *         that are appropriate for alpha numeric data.
 4232 *         each string is input to et such that it is
 4233 *         explained via a comment after each mop.
 4234 *         this particular mop sequence and the sending string is
 4235 *         used for all 6 and 9 bit tests with mod done
 4236 *         on descriptor access and data placement.
 4237 *
 4238 */
 4239 
 4240 inst      mve -nt "9-6  simple test with no mod"
 4241           -mf3      rl 31;
 4242 
 4243 desc 1    -ns 27;
 4244 
 4245 desc 2         -ns 26;
 4246 
 4247 desc 3    -ta 6;
 4248 
 4249 
 4250 
 4251 data 1    /* arranged according mop use */
 4252           "0012"
 4253           "0012"
 4254           "0012"
 4255           "1234"
 4256           "4567"
 4257           "-123"
 4258           "123";
 4259 
 4260 data 2     /* mops arranged in order */
 4261           /* change table and mvzb */ 420020054060052053073033000 104
 4262           060       /* ses es reset */
 4263           124       /* mvza */
 4264           060       /* ses es reset */
 4265           050       /* enf for $ insert */
 4266           064       /* ses es reset and bz set */
 4267           164       /* mflc */
 4268           200075    /* insb with = */
 4269           060       /* ses es reset */
 4270           220076    /* insa with " not used since es=0 */
 4271           304       /* ign */
 4272           324       /* mvc */
 4273           024       /* insm */
 4274           344       /* mses sn is set */
 4275           364;
 4276 
 4277 
 4278 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4279 
 4280 page      -all;
 4281 /*                  mve21
 4282 
 4283 *         this test uses a sequence of micro op strings
 4284 *         that are appropriate for alpha numeric data.
 4285 *         each string is input to et such that it is
 4286 *         explained via a comment after each mop.
 4287 *         this particular mop sequence and the sending string is
 4288 *         used for all 6 and 9 bit tests with mod done
 4289 *         on descriptor access and data placement.
 4290 *
 4291 */
 4292 
 4293 inst      mve -nt "9-6 offset inst. and desc mod"     -io 2
 4294           -mf1      ida ar
 4295           -mf2      reg
 4296           -mf3      rl 31;
 4297 
 4298 desc 1    -ns 27;
 4299 
 4300 desc 2         -ns 26;
 4301 
 4302 desc 3    -ta 6;
 4303 
 4304 data 1    /* arranged according mop use */
 4305           "0012"
 4306           "0012"
 4307           "0012"
 4308           "1234"
 4309           "4567"
 4310           "-123"
 4311           "123";
 4312 
 4313 data 2     /* mops arranged in order */
 4314           /* change table and mvzb */ 420020054060052053073033000 104
 4315           060       /* ses es reset */
 4316           124       /* mvza */
 4317           060       /* ses es reset */
 4318           050       /* enf for $ insert */
 4319           064       /* ses es reset and bz set */
 4320           164       /* mflc */
 4321           200075    /* insb with = */
 4322           060       /* ses es reset */
 4323           220076    /* insa with " not used since es=0 */
 4324           304       /* ign */
 4325           324       /* mvc */
 4326           024       /* insm */
 4327           344       /* mses sn is set */
 4328           364;     /* mors */
 4329 
 4330 
 4331 
 4332 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4333 page      -all;
 4334 
 4335  /*                  mve22
 4336 
 4337 *         this test uses a sequence of micro op strings
 4338 *         that are appropriate for alpha numeric data.
 4339 *         each string is input to et such that it is
 4340 *         explained via a comment after each mop.
 4341 *         this particular mop sequence and the sending string is
 4342 *         used for all 6 and 9 bit tests with mod done
 4343 *         on descriptor access and data placement.
 4344 *
 4345 */
 4346 
 4347 inst      mve -nt "9-6  desc mod d1 offset"     -io 2
 4348           -mf1      ida ar
 4349           -mf2      idb ar
 4350           -mf3      rl 31;
 4351 
 4352 desc 1    -ns 27;
 4353 
 4354 desc 2         -ns 26;
 4355 
 4356 desc 3    -ta 6;
 4357 
 4358 
 4359 data 1    /* arranged according mop use */
 4360           -do -7
 4361           "0012"
 4362           "0012"
 4363           "0012"
 4364           "1234"
 4365           "4567"
 4366           "-123"
 4367           "123";
 4368 
 4369 data 2     /* mops arranged in order */
 4370           /* change table and mvzb */ 420020054060052053073033000 104
 4371           060       /* ses es reset */
 4372           124       /* mvza */
 4373           060       /* ses es reset */
 4374           050       /* enf for $ insert */
 4375           064       /* ses es reset and bz set */
 4376           164       /* mflc */
 4377           200075    /* insb with = */
 4378           060       /* ses es reset */
 4379           220076    /* insa with " not used since es=0 */
 4380           304       /* ign */
 4381           324       /* mvc */
 4382           024       /* insm */
 4383           344       /* mses sn is set */
 4384           364;     /* mors */
 4385 
 4386 
 4387 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4388 
 4389 page      -all;
 4390 
 4391 
 4392 
 4393 
 4394 
 4395 /*                  mve23
 4396 
 4397 *         this test uses a sequence of micro op strings
 4398 *         that are appropriate for alpha numeric data.
 4399 *         each string is input to et such that it is
 4400 *         explained via a comment after each mop.
 4401 *         this particular mop sequence and the sending string is
 4402 *         used for all 6 and 9 bit tests with mod done
 4403 *         on descriptor access and data placement.
 4404 *
 4405 */
 4406 
 4407 inst      mve -nt "9-6  d2 offset d1 offset"     -io 2
 4408           -mf1      ida ar
 4409           -mf2      idb ar
 4410           -mf3      rl 31;
 4411 
 4412 desc 1    -ns 27;
 4413 
 4414 desc 2         -ns 26;
 4415 
 4416 desc 3    -ta 6;
 4417 
 4418 
 4419 data 1    /* arranged according mop use */
 4420           -do -7
 4421           "0012"
 4422           "0012"
 4423           "0012"
 4424           "1234"
 4425           "4567"
 4426           "-123"
 4427           "123";
 4428 
 4429 data 2     /* mops arranged in order */
 4430           -do -13
 4431           /* change table and mvzb */ 420020054060052053073033000 104
 4432           060       /* ses es reset */
 4433           124       /* mvza */
 4434           060       /* ses es reset */
 4435           050       /* enf for $ insert */
 4436           064       /* ses es reset and bz set */
 4437           164       /* mflc */
 4438           200075    /* insb with = */
 4439           060       /* ses es reset */
 4440           220076    /* insa with " not used since es=0 */
 4441           304       /* ign */
 4442           324       /* mvc */
 4443           024       /* insm */
 4444           344       /* mses sn is set */
 4445           364;     /* mors */
 4446 
 4447 
 4448 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4449 
 4450 page      -all;
 4451  /*                  mve24
 4452 
 4453 *         this test uses a sequence of micro op strings
 4454 *         that are appropriate for alpha numeric data.
 4455 *         each string is input to et such that it is
 4456 *         explained via a comment after each mop.
 4457 *         this particular mop sequence and the sending string is
 4458 *         used for all 6 and 9 bit tests with mod done
 4459 *         on descriptor access and data placement.
 4460 *
 4461 */
 4462 
 4463 inst      mve -nt "9-6 d3 offset d2 and d1"     -io 3
 4464           -mf1      ida ar reg
 4465           -mf2      idb ar
 4466           -mf3      rl 31;
 4467 
 4468 desc 1    -ns 27;
 4469 
 4470 desc 2         -ns 26;
 4471 
 4472 desc 3    -ta 6;
 4473 
 4474 
 4475 data 1    /* arranged according mop use */
 4476           -do -7
 4477           "0012"
 4478           "0012"
 4479           "0012"
 4480           "1234"
 4481           "4567"
 4482           "-123"
 4483           "123";
 4484 
 4485 data 2     /* mops arranged in order */
 4486           -do -13
 4487           /* change table and mvzb */ 420020054060052053073033000 104
 4488           060       /* ses es reset */
 4489           124       /* mvza */
 4490           060       /* ses es reset */
 4491           050       /* enf for $ insert */
 4492           064       /* ses es reset and bz set */
 4493           164       /* mflc */
 4494           200075    /* insb with = */
 4495           060       /* ses es reset */
 4496           220076    /* insa with " not used since es=0 */
 4497           304       /* ign */
 4498           324       /* mvc */
 4499           024       /* insm */
 4500           344       /* mses sn is set */
 4501           364;     /* mors */
 4502 
 4503 
 4504 data 3    -do -28
 4505           20206162545461625320205361627554646566672020202055616263616263;
 4506 
 4507 page      -all;
 4508 
 4509 /*                  mve25
 4510 
 4511 *         this test uses a sequence of micro op strings
 4512 *         that are appropriate for alpha numeric data.
 4513 *         each string is input to et such that it is
 4514 *         explained via a comment after each mop.
 4515 *         this particular mop sequence and the sending string is
 4516 *         used for all 6 and 9 bit tests with mod done
 4517 *         on descriptor access and data placement.
 4518 *
 4519 */
 4520 
 4521 inst      mve -nt "9-6 data 1 totally on p0"     -io 3
 4522           -mf1      ida ar reg rl 27
 4523           -mf2      idb ar
 4524           -mf3      ar reg rl 31;
 4525 
 4526 
 4527 desc 2         -ns 26;
 4528 
 4529 desc 3    -ta 6;
 4530 
 4531 
 4532 data 1    /* arranged according mop use */
 4533           -do -27
 4534           "0012"
 4535           "0012"
 4536           "0012"
 4537           "1234"
 4538           "4567"
 4539           "-123"
 4540           "123";
 4541 
 4542 data 2     /* mops arranged in order */
 4543           -do -13
 4544           /* change table and mvzb */ 420020054060052053073033000 104
 4545           060       /* ses es reset */
 4546           124       /* mvza */
 4547           060       /* ses es reset */
 4548           050       /* enf for $ insert */
 4549           064       /* ses es reset and bz set */
 4550           164       /* mflc */
 4551           200075    /* insb with = */
 4552           060       /* ses es reset */
 4553           220076    /* insa with " not used since es=0 */
 4554           304       /* ign */
 4555           324       /* mvc */
 4556           024       /* insm */
 4557           344       /* mses sn is set */
 4558           364;     /* mors */
 4559 
 4560 
 4561 data 3    -do 30
 4562           20206162545461625320205361627554646566672020202055616263616263;
 4563 
 4564 page      -all;
 4565  /*                  mve26
 4566 
 4567 *         this test uses a sequence of micro op strings
 4568 *         that are appropriate for alpha numeric data.
 4569 *         each string is input to et such that it is
 4570 *         explained via a comment after each mop.
 4571 *         this particular mop sequence and the sending string is
 4572 *         used for all 6 and 9 bit tests with mod done
 4573 *         on descriptor access and data placement.
 4574 *
 4575 */
 4576 
 4577 inst      mve -nt "9-6 data 2 totally on p0"     -io 3
 4578           -mf1      ida ar reg rl 27
 4579           -mf2      idb ar rl 26
 4580           -mf3      ar reg rl 31;
 4581 
 4582 
 4583 desc 3    -ta 6;
 4584 
 4585 
 4586 
 4587 
 4588 
 4589 
 4590 data 1    /* arranged according mop use */
 4591           -do -27
 4592           "0012"
 4593           "0012"
 4594           "0012"
 4595           "1234"
 4596           "4567"
 4597           "-123"
 4598           "123";
 4599 
 4600 data 2     /* mops arranged in order */
 4601           -do -26
 4602           /* change table and mvzb */ 420020054060052053073033000 104
 4603           060       /* ses es reset */
 4604           124       /* mvza */
 4605           060       /* ses es reset */
 4606           050       /* enf for $ insert */
 4607           064       /* ses es reset and bz set */
 4608           164       /* mflc */
 4609           200075    /* insb with = */
 4610           060       /* ses es reset */
 4611           220076    /* insa with " not used since es=0 */
 4612           304       /* ign */
 4613           324       /* mvc */
 4614           024       /* insm */
 4615           344       /* mses sn is set */
 4616           364;     /* mors */
 4617 
 4618 
 4619 data 3    -do -12
 4620           20206162545461625320205361627554646566672020202055616263616263;
 4621 
 4622 page      -all;
 4623  /*                  mve27
 4624 
 4625 *         this test uses a sequence of micro op strings
 4626 *         that are appropriate for alpha numeric data.
 4627 *         each string is input to et such that it is
 4628 *         explained via a comment after each mop.
 4629 *         this particular mop sequence and the sending string is
 4630 *         used for all 6 and 9 bit tests with mod done
 4631 *         on descriptor access and data placement.
 4632 *
 4633 */
 4634 
 4635 inst      mve -nt "9-6 all data totally on p0"
 4636           -mf1      ida ar reg rl 27
 4637           -mf2      idb ar rl 26
 4638           -mf3      ar reg rl 31;
 4639 
 4640 desc 3    -ta 6;
 4641 
 4642 
 4643 
 4644 
 4645 
 4646 
 4647 data 1    /* arranged according mop use */
 4648           -do -27
 4649           "0012"
 4650           "0012"
 4651           "0012"
 4652           "1234"
 4653           "4567"
 4654           "-123"
 4655           "123";
 4656 
 4657 data 2     /* mops arranged in order */
 4658           -do -26
 4659           /* change table and mvzb */ 420020054060052053073033000 104
 4660           060       /* ses es reset */
 4661           124       /* mvza */
 4662           060       /* ses es reset */
 4663           050       /* enf for $ insert */
 4664           064       /* ses es reset and bz set */
 4665           164       /* mflc */
 4666           200075    /* insb with = */
 4667           060       /* ses es reset */
 4668           220076    /* insa with " not used since es=0 */
 4669           304       /* ign */
 4670           324       /* mvc */
 4671           024       /* insm */
 4672           344       /* mses sn is set */
 4673           364;     /* mors */
 4674 
 4675 
 4676 data 3    -do -32
 4677           20206162545461625320205361627554646566672020202055616263616263;
 4678 
 4679 page      -all;
 4680  /*                  mve28
 4681 
 4682 *         this test uses a sequence of micro op strings
 4683 *         that are appropriate for alpha numeric data.
 4684 *         each string is input to et such that it is
 4685 *         explained via a comment after each mop.
 4686 *         this particular mop sequence and the sending string is
 4687 *         used for all 6 and 9 bit tests with mod done
 4688 *         on descriptor access and data placement.
 4689 *
 4690 */
 4691 
 4692 inst      mve -nt "9-6 all data  on p0 all mod"     -io 3
 4693           -mf1      idb ar reg rl 27
 4694           -mf2      idb ar reg rl 26
 4695           -mf3      ar reg rl 31;
 4696 
 4697 desc 3    -ta 6;
 4698 
 4699 
 4700 
 4701 
 4702 
 4703 
 4704 data 1    /* arranged according mop use */
 4705           -do -27
 4706           "0012"
 4707           "0012"
 4708           "0012"
 4709           "1234"
 4710           "4567"
 4711           "-123"
 4712           "123";
 4713 
 4714 data 2     /* mops arranged in order */
 4715           -do -26
 4716           /* change table and mvzb */ 420020054060052053073033000 104
 4717           060       /* ses es reset */
 4718           124       /* mvza */
 4719           060       /* ses es reset */
 4720           050       /* enf for $ insert */
 4721           064       /* ses es reset and bz set */
 4722           164       /* mflc */
 4723           200075    /* insb with = */
 4724           060       /* ses es reset */
 4725           220076    /* insa with " not used since es=0 */
 4726           304       /* ign */
 4727           324       /* mvc */
 4728           024       /* insm */
 4729           344       /* mses sn is set */
 4730           364;     /* mors */
 4731 
 4732 
 4733 data 3    -do -32
 4734           20206162545461625320205361627554646566672020202055616263616263;
 4735 
 4736 page      -all;
 4737  /*                  mve29
 4738 
 4739 *         this test uses a sequence of micro op strings
 4740 *         that are appropriate for alpha numeric data.
 4741 *         each string is input to et such that it is
 4742 *         explained via a comment after each mop.
 4743 *         this particular mop sequence and the sending string is
 4744 *         used for all 6 and 9 bit tests with mod done
 4745 *         on descriptor access and data placement.
 4746 *
 4747 */
 4748 
 4749 inst      mve -nt "6-6  simple test with no mod"
 4750           -mf3      rl 31;
 4751 
 4752 desc 1    -ta 6    -ns 27;
 4753 
 4754 desc 2         -ns 26;
 4755 
 4756 desc 3    -ta 6;
 4757 
 4758 
 4759 
 4760 data 1    /* arranged according mop use */
 4761      000001020000010200000102010203040405060752010203010203;
 4762 data 2     /* mops arranged in order */
 4763           /* change table and mvzb */ 420020054060052053073033000 104
 4764           060       /* ses es reset */
 4765           124       /* mvza */
 4766           060       /* ses es reset */
 4767           050       /* enf for $ insert */
 4768           064       /* ses es reset and bz set */
 4769           164       /* mflc */
 4770           200075    /* insb with = */
 4771           060       /* ses es reset */
 4772           220076    /* insa with " not used since es=0 */
 4773           304       /* ign */
 4774           324       /* mvc */
 4775           024       /* insm */
 4776           344       /* mses sn is set */
 4777           364;
 4778 
 4779 
 4780 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4781 
 4782 page      -all;
 4783 /*                  mve30
 4784 
 4785 *         this test uses a sequence of micro op strings
 4786 *         that are appropriate for alpha numeric data.
 4787 *         each string is input to et such that it is
 4788 *         explained via a comment after each mop.
 4789 *         this particular mop sequence and the sending string is
 4790 *         used for all 6 and 9 bit tests with mod done
 4791 *         on descriptor access and data placement.
 4792 *
 4793 */
 4794 
 4795 inst      mve -nt "6-6 offset inst. and desc mod"     -io 2
 4796           -mf1      ida ar
 4797           -mf2      reg
 4798           -mf3      rl 31;
 4799 
 4800 desc 1      -ta 6    -ns 27;
 4801 
 4802 desc 2         -ns 26;
 4803 
 4804 desc 3    -ta 6;
 4805 
 4806 data 1    /* arranged according mop use */
 4807      000001020000010200000102010203040405060752010203010203;
 4808 data 2     /* mops arranged in order */
 4809           /* change table and mvzb */ 420020054060052053073033000 104
 4810           060       /* ses es reset */
 4811           124       /* mvza */
 4812           060       /* ses es reset */
 4813           050       /* enf for $ insert */
 4814           064       /* ses es reset and bz set */
 4815           164       /* mflc */
 4816           200075    /* insb with = */
 4817           060       /* ses es reset */
 4818           220076    /* insa with " not used since es=0 */
 4819           304       /* ign */
 4820           324       /* mvc */
 4821           024       /* insm */
 4822           344       /* mses sn is set */
 4823           364;     /* mors */
 4824 
 4825 
 4826 
 4827 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4828 page      -all;
 4829 
 4830  /*                  mve31
 4831 
 4832 *         this test uses a sequence of micro op strings
 4833 *         that are appropriate for alpha numeric data.
 4834 *         each string is input to et such that it is
 4835 *         explained via a comment after each mop.
 4836 *         this particular mop sequence and the sending string is
 4837 *         used for all 6 and 9 bit tests with mod done
 4838 *         on descriptor access and data placement.
 4839 *
 4840 */
 4841 
 4842 inst      mve -nt "6-6  desc mod d1 offset"     -io 2
 4843           -mf1      ida ar
 4844           -mf2      idb ar
 4845           -mf3      rl 31;
 4846 
 4847 desc 1      -ta 6    -ns 27;
 4848 
 4849 desc 2         -ns 26;
 4850 
 4851 desc 3    -ta 6;
 4852 
 4853 
 4854 data 1    /* arranged according mop use */
 4855           -do -6
 4856      000001020000010200000102010203040405060752010203010203;
 4857 data 2     /* mops arranged in order */
 4858           /* change table and mvzb */ 420020054060052053073033000 104
 4859           060       /* ses es reset */
 4860           124       /* mvza */
 4861           060       /* ses es reset */
 4862           050       /* enf for $ insert */
 4863           064       /* ses es reset and bz set */
 4864           164       /* mflc */
 4865           200075    /* insb with = */
 4866           060       /* ses es reset */
 4867           220076    /* insa with " not used since es=0 */
 4868           304       /* ign */
 4869           324       /* mvc */
 4870           024       /* insm */
 4871           344       /* mses sn is set */
 4872           364;     /* mors */
 4873 
 4874 
 4875 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4876 
 4877 page      -all;
 4878 
 4879 
 4880 
 4881 
 4882 
 4883 /*                  mve32
 4884 
 4885 *         this test uses a sequence of micro op strings
 4886 *         that are appropriate for alpha numeric data.
 4887 *         each string is input to et such that it is
 4888 *         explained via a comment after each mop.
 4889 *         this particular mop sequence and the sending string is
 4890 *         used for all 6 and 9 bit tests with mod done
 4891 *         on descriptor access and data placement.
 4892 *
 4893 */
 4894 
 4895 inst      mve -nt "6-6  d2 offset d1 offset"     -io 2
 4896           -mf1      ida ar
 4897           -mf2      idb ar
 4898           -mf3      rl 31;
 4899 
 4900 desc 1      -ta 6    -ns 27;
 4901 
 4902 desc 2         -ns 26;
 4903 
 4904 desc 3    -ta 6;
 4905 
 4906 
 4907 data 1    /* arranged according mop use */
 4908           -do -6
 4909      000001020000010200000102010203040405060752010203010203;
 4910 data 2     /* mops arranged in order */
 4911           -do -13
 4912           /* change table and mvzb */ 420020054060052053073033000 104
 4913           060       /* ses es reset */
 4914           124       /* mvza */
 4915           060       /* ses es reset */
 4916           050       /* enf for $ insert */
 4917           064       /* ses es reset and bz set */
 4918           164       /* mflc */
 4919           200075    /* insb with = */
 4920           060       /* ses es reset */
 4921           220076    /* insa with " not used since es=0 */
 4922           304       /* ign */
 4923           324       /* mvc */
 4924           024       /* insm */
 4925           344       /* mses sn is set */
 4926           364;     /* mors */
 4927 
 4928 
 4929 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4930 
 4931 page      -all;
 4932  /*                  mve33
 4933 
 4934 *         this test uses a sequence of micro op strings
 4935 *         that are appropriate for alpha numeric data.
 4936 *         each string is input to et such that it is
 4937 *         explained via a comment after each mop.
 4938 *         this particular mop sequence and the sending string is
 4939 *         used for all 6 and 9 bit tests with mod done
 4940 *         on descriptor access and data placement.
 4941 *
 4942 */
 4943 
 4944 inst      mve -nt "6-6 d3 offset and d1 and d2"     -io 3
 4945           -mf1      ida ar reg
 4946           -mf2      idb ar
 4947           -mf3      rl 31;
 4948 
 4949 desc 1      -ta 6    -ns 27;
 4950 
 4951 desc 2         -ns 26;
 4952 
 4953 desc 3    -ta 6;
 4954 
 4955 
 4956 data 1    /* arranged according mop use */
 4957           -do -6
 4958      000001020000010200000102010203040405060752010203010203;
 4959 data 2     /* mops arranged in order */
 4960           -do -13
 4961           /* change table and mvzb */ 420020054060052053073033000 104
 4962           060       /* ses es reset */
 4963           124       /* mvza */
 4964           060       /* ses es reset */
 4965           050       /* enf for $ insert */
 4966           064       /* ses es reset and bz set */
 4967           164       /* mflc */
 4968           200075    /* insb with = */
 4969           060       /* ses es reset */
 4970           220076    /* insa with " not used since es=0 */
 4971           304       /* ign */
 4972           324       /* mvc */
 4973           024       /* insm */
 4974           344       /* mses sn is set */
 4975           364;     /* mors */
 4976 
 4977 
 4978 data 3    -do -28
 4979           20200102545401025320205301027554040506072020202052010203616263;
 4980 
 4981 page      -all;
 4982 
 4983 /*                  mve34
 4984 
 4985 *         this test uses a sequence of micro op strings
 4986 *         that are appropriate for alpha numeric data.
 4987 *         each string is input to et such that it is
 4988 *         explained via a comment after each mop.
 4989 *         this particular mop sequence and the sending string is
 4990 *         used for all 6 and 9 bit tests with mod done
 4991 *         on descriptor access and data placement.
 4992 *
 4993 */
 4994 
 4995 inst      mve -nt "6-6 data 1 totally on p0"     -io 3
 4996           -mf1      ida ar reg rl 27
 4997           -mf2      idb ar
 4998           -mf3      ar reg rl 31;
 4999 
 5000 
 5001 desc 1    -ta 6;
 5002 desc 2         -ns 26;
 5003 
 5004 desc 3    -ta 6;
 5005 
 5006 
 5007 data 1    /* arranged according mop use */
 5008           -do -28
 5009      000001020000010200000102010203040405060752010203010203;
 5010 data 2     /* mops arranged in order */
 5011           -do -13
 5012           /* change table and mvzb */ 420020054060052053073033000 104
 5013           060       /* ses es reset */
 5014           124       /* mvza */
 5015           060       /* ses es reset */
 5016           050       /* enf for $ insert */
 5017           064       /* ses es reset and bz set */
 5018           164       /* mflc */
 5019           200075    /* insb with = */
 5020           060       /* ses es reset */
 5021           220076    /* insa with " not used since es=0 */
 5022           304       /* ign */
 5023           324       /* mvc */
 5024           024       /* insm */
 5025           344       /* mses sn is set */
 5026           364;     /* mors */
 5027 
 5028 
 5029 data 3    -do 30
 5030           20200102545401025320205301027554040506072020202052010203616263;
 5031 
 5032 page      -all;
 5033  /*                  mve35
 5034 
 5035 *         this test uses a sequence of micro op strings
 5036 *         that are appropriate for alpha numeric data.
 5037 *         each string is input to et such that it is
 5038 *         explained via a comment after each mop.
 5039 *         this particular mop sequence and the sending string is
 5040 *         used for all 6 and 9 bit tests with mod done
 5041 *         on descriptor access and data placement.
 5042 *
 5043 */
 5044 
 5045 inst      mve -nt "6-6 data 2 totally on p0"     -io 3
 5046           -mf1      ida ar reg rl 27
 5047           -mf2      idb ar rl 26
 5048           -mf3      ar reg rl 31;
 5049 
 5050 
 5051 desc 1    -ta 6;
 5052 
 5053 desc 3    -ta 6;
 5054 
 5055 
 5056 
 5057 
 5058 
 5059 
 5060 data 1    /* arranged according mop use */
 5061           -do -28
 5062      000001020000010200000102010203040405060752010203010203;
 5063 data 2     /* mops arranged in order */
 5064           -do -26
 5065           /* change table and mvzb */ 420020054060052053073033000 104
 5066           060       /* ses es reset */
 5067           124       /* mvza */
 5068           060       /* ses es reset */
 5069           050       /* enf for $ insert */
 5070           064       /* ses es reset and bz set */
 5071           164       /* mflc */
 5072           200075    /* insb with = */
 5073           060       /* ses es reset */
 5074           220076    /* insa with " not used since es=0 */
 5075           304       /* ign */
 5076           324       /* mvc */
 5077           024       /* insm */
 5078           344       /* mses sn is set */
 5079           364;     /* mors */
 5080 
 5081 
 5082 data 3    -do -12
 5083           20200102545401025320205301027554040506072020202052010203616263;
 5084 
 5085 page      -all;
 5086  /*                  mve36
 5087 
 5088 *         this test uses a sequence of micro op strings
 5089 *         that are appropriate for alpha numeric data.
 5090 *         each string is input to et such that it is
 5091 *         explained via a comment after each mop.
 5092 *         this particular mop sequence and the sending string is
 5093 *         used for all 6 and 9 bit tests with mod done
 5094 *         on descriptor access and data placement.
 5095 *
 5096 */
 5097 
 5098 inst      mve -nt "6-6 all data totally on p0"
 5099           -mf1      ida ar reg rl 27
 5100           -mf2      idb ar rl 26
 5101           -mf3      ar reg rl 31;
 5102 
 5103 desc 1    -ta 6;
 5104 
 5105 desc 3    -ta 6;
 5106 
 5107 
 5108 
 5109 
 5110 
 5111 
 5112 data 1    /* arranged according mop use */
 5113           -do -28
 5114      000001020000010200000102010203040405060752010203010203;
 5115 data 2     /* mops arranged in order */
 5116           -do -26
 5117           /* change table and mvzb */ 420020054060052053073033000 104
 5118           060       /* ses es reset */
 5119           124       /* mvza */
 5120           060       /* ses es reset */
 5121           050       /* enf for $ insert */
 5122           064       /* ses es reset and bz set */
 5123           164       /* mflc */
 5124           200075    /* insb with = */
 5125           060       /* ses es reset */
 5126           220076    /* insa with " not used since es=0 */
 5127           304       /* ign */
 5128           324       /* mvc */
 5129           024       /* insm */
 5130           344       /* mses sn is set */
 5131           364;     /* mors */
 5132 
 5133 
 5134 data 3    -do -32
 5135           20200102545401025320205301027554040506072020202052010203616263;
 5136 
 5137 page      -all;
 5138  /*                  mve37
 5139 
 5140 *         this test uses a sequence of micro op strings
 5141 *         that are appropriate for alpha numeric data.
 5142 *         each string is input to et such that it is
 5143 *         explained via a comment after each mop.
 5144 *         this particular mop sequence and the sending string is
 5145 *         used for all 6 and 9 bit tests with mod done
 5146 *         on descriptor access and data placement.
 5147 *
 5148 */
 5149 
 5150 inst      mve -nt "6-6 all data  on p0 all mod"     -io 3
 5151           -mf1      idb ar reg rl 27
 5152           -mf2      idb ar reg rl 26
 5153           -mf3      ar reg rl 31;
 5154 
 5155 desc 1     -ta 6;
 5156 
 5157 desc 3    -ta 6;
 5158 
 5159 
 5160 
 5161 
 5162 
 5163 
 5164 data 1    /* arranged according mop use */
 5165           -do -28
 5166      000001020000010200000102010203040405060752010203010203;
 5167 data 2     /* mops arranged in order */
 5168           -do -26
 5169           /* change table and mvzb */ 420020054060052053073033000 104
 5170           060       /* ses es reset */
 5171           124       /* mvza */
 5172           060       /* ses es reset */
 5173           050       /* enf for $ insert */
 5174           064       /* ses es reset and bz set */
 5175           164       /* mflc */
 5176           200075    /* insb with = */
 5177           060       /* ses es reset */
 5178           220076    /* insa with " not used since es=0 */
 5179           304       /* ign */
 5180           324       /* mvc */
 5181           024       /* insm */
 5182           344       /* mses sn is set */
 5183           364;     /* mors */
 5184 
 5185 
 5186 data 3    -do -32
 5187           20200102545401025320205301027554040506072020202052010203616263;
 5188 
 5189 page      -all;
 5190 
 5191 
 5192 ^L
 5193 
 5194 /*                  tct1
 5195 *
 5196 *         Out table will be indexed by the characters  "abcde".   "b" & "e" are the two
 5197 *         non zero entries.  Start off with a simple test
 5198 */
 5199 
 5200 inst      tct       -nt "Simple test";
 5201 
 5202 desc 1    -ns 4;
 5203 
 5204 data 1    "aceb";
 5205 
 5206 data 2    (97) "*"            /* These characters should never be referenced. */
 5207           000                 /* "a" */
 5208           "b"
 5209           000                 /* "c" */
 5210           "d"
 5211           000 ;               /* "e" */
 5212 
 5213 data 3    "b" 000 000 003;
 5214 
 5215 page      -all;
 5216 /*                  tct2
 5217 *
 5218 *         Same as  tct1  only we will move the data fields across page boundaries and
 5219 *         add modification.
 5220 */
 5221 
 5222 inst      tct       -nt  "Same as prev - fields X pg bound" -io 3
 5223           -mf1      rl  4     ar reg idb
 5224           -mf2      ar reg              /* RL and ID mod NOT allowed for descriptors 2 & 3. */
 5225 
 5226           -mf3      reg ar;
 5227 
 5228 data 1    -do -3    "aceb";
 5229 
 5230 data 2    -do -100  (97) "*"            /* These characters should never be referenced. */
 5231           000                 /* "a" */
 5232           "b"
 5233           000                 /* "c" */
 5234           "d"
 5235           000 ;               /* "e" */
 5236 
 5237 data 3    "b" 000 000 003;
 5238 
 5239 page      -all;
 5240 /*                  tct3
 5241 *
 5242 *         Same as  tct2  except  string 1 will be changed  so we will have a
 5243 *         tally runout.
 5244 */
 5245 
 5246 
 5247 inst      tct       -nt  "Test tally runout"      -io 2
 5248           -ir       tr
 5249           -mf1      ar idb reg rl 18
 5250           -mf2      ar reg
 5251           -mf3      ar reg;
 5252 
 5253 data 1    -do -9    (6) "ace";
 5254 
 5255 data 2    -do -100
 5256           (97) "*" 000 "b" 000 "d" 000;
 5257 
 5258 data 3    000 000 000 022;
 5259 
 5260 
 5261 page      -all;
 5262 /*                  tct4
 5263 *
 5264 *         Test using  6  bit characters.  The  -cn  field will specify that the string
 5265 *         starts at the  5th  character of the word (last character).
 5266 */
 5267 
 5268 inst      tct       -nt  "Use 6 bit characters"   -io 1
 5269           -mf1      idb reg ar
 5270           -mf2      reg ar
 5271           -mf3      ar reg;
 5272 
 5273 desc 1    -ns  10   -cn 5     -ta 6;
 5274 
 5275 data 1    -do  -6             /* Test string is  0 1 2 3 4 5 6 7 10 11  */
 5276           0606060606          /* Filler, not part of string, 1st 5 characters of word. */
 5277           010203              /* Page boundary. */
 5278           040506 071011;
 5279 
 5280 data 2    -do -4
 5281           000 000 000 000
 5282           000 000 006 000 000 000;
 5283 
 5284 data 3    -do 4     006 000000 006;
 5285 
 5286 
 5287 page      -all;
 5288 /*                  tct5
 5289 *
 5290 *         The indexes in string 1 will be  4  bit characters.
 5291 */
 5292 
 5293 inst      tct       -nt  "Use 4 bit characters"   -io 2
 5294           -mf1      idb ar reg
 5295           -mf2      ar reg
 5296           -mf3      ar reg;
 5297 
 5298 
 5299 desc 1    -ns 8
 5300           -ta 4     /* 4 bit characters. */
 5301           -cn 2;    /* First 2 characters of word not used.
 5302                     *  This is the first 9 bit character.  */
 5303 
 5304 data 1    -do -2
 5305           000                 /* The first two characters of the word - skipped. */
 5306           001                 /* Characters "0" and "1".  In page 1. */
 5307           043 105 147;        /* "234567" (4 bit)  in page 2. */
 5308 
 5309 data 2    -do -4
 5310           000 000 000 000     /* All in page 1.  Represent index values 0,1,2,3 */
 5311           000 "*" 000 000;    /* In page 2. Correspond to index values 4,5,6,7  */
 5312 
 5313 data 3    "*" 000 000 005;
 5314 
 5315 
 5316 page      -all;
 5317 
 5318 
 5319 
 5320 /*   tct 6
 5321 *
 5322 *  Test loading across three pages.  One character loaded from
 5323 *  page 1 and 3.  Test 6146 characters.  Tally runout indicator
 5324 *  is set.
 5325 */
 5326 
 5327 inst  tct  -nt  "(6 bit)no modif. tally is set"
 5328            -io 1
 5329            -ir tr
 5330            -mf1 rl 6146 ;
 5331 
 5332 desc 1  -cn 5 -ta 6 ;
 5333 
 5334 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5335                 000102030405
 5336                 (128) 000102030405060710111213141516172021222324252627 ;
 5337 
 5338 data 2  -do -4  (24) 000 000 141 ;
 5339 
 5340 data 3          000 000 014 002 ;
 5341 
 5342 page    -all ;
 5343 
 5344 /*   tct 7
 5345 *
 5346 *  Test loading data across three pages.  One character is loaded
 5347 *  from page 1 and 3 with 6146 characters tested.  A nonzero
 5348 *  character is found in the test table.
 5349 */
 5350 
 5351 inst  tct  -nt  "(6 bit)no mod. a nonzero entry"
 5352            -mf1 rl 6146 ;
 5353 
 5354 desc 1  -cn 5 -ta 6 ;
 5355 
 5356 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5357                310102030405
 5358                 (128) 000102030405060710111213141516172021222324252627 ;
 5359 
 5360 data 2  -do -4  (24) 000 000 141 ;
 5361 
 5362 data 3          141 000 006 001 ;
 5363 
 5364 page    -all ;
 5365 
 5366 
 5367 
 5368 /*   tct 8
 5369 *
 5370 *  Test similiar to tct 6.  Test ar, reg, and rl for descriptor 1.
 5371 *
 5372 */
 5373 
 5374 inst  tct  -nt  "(6 bit)ar,reg,rl. tally runout"
 5375            -io 2
 5376            -ir tr
 5377            -mf1 ar reg rl 6146 ;
 5378 
 5379 desc 1  -cn 5 -ta 6 ;
 5380 
 5381 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5382                 000102030405
 5383                 (128) 000102030405060710111213141516172021222324252627 ;
 5384 
 5385 data 2  -do -4  (24) 000 000 141 ;
 5386 
 5387 data 3          000 000 014 002 ;
 5388 
 5389 page    -all ;
 5390 
 5391 
 5392 
 5393 /*   tct 9
 5394 *
 5395 *  Test similiar to tct 7.  Test ar, reg, and rl modification
 5396 *  for descriptor 1.  Test ar and reg modification for descriptor 1 and 2.
 5397 *
 5398 */
 5399 
 5400 inst  tct  -nt  "(6 bit)ar,reg,rl.no tally runout"
 5401            -io 1
 5402            -mf1 ar reg rl 6146
 5403            -mf2 ar reg
 5404            -mf3 ar reg ;
 5405 
 5406 desc 1  -cn 5 -ta 6 ;
 5407 
 5408 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5409                310102030405
 5410                (128) 000102030405060710111213141516172021222324252627 ;
 5411 
 5412 data 2  -do -4  (24) 000 000 141 ;
 5413 
 5414 data 3          141 000 006 001 ;
 5415 
 5416 page    -all ;
 5417 
 5418 
 5419 
 5420 /*   tct 10
 5421 *
 5422 *  Test similiar to tct 6.  Test indirect referencing
 5423 *  of descriptor 1.  Test ar and reg modification for descriptors 2 and 3.
 5424 */
 5425 
 5426 inst  tct  -nt  "(6 bit)test id. tally runout"
 5427            -ir tr
 5428            -mf1 id rl 6146
 5429            -mf2 ar reg
 5430            -mf3 ar reg ;
 5431 
 5432 desc 1  -cn 5 -ta 6 ;
 5433 
 5434 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5435                 000102030405
 5436                 (128) 000102030405060710111213141516172021222324252627 ;
 5437 
 5438 data 2  -do -4  (24) 000 000 141 ;
 5439 
 5440 data 3          000 000 014 002 ;
 5441 
 5442 page    -all ;
 5443 
 5444 
 5445 
 5446 
 5447 /*   tct 11
 5448 *
 5449 *  Test similiar to tct 7.  Test indirect referencing of
 5450 *  descriptor 1.
 5451 *
 5452 */
 5453 
 5454 inst  tct  -nt  "(6 bit)test id. no tally runout"
 5455            -io 2
 5456            -mf1 id rl 6146 ;
 5457 
 5458 desc 1  -cn 5 -ta 6 ;
 5459 
 5460 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5461                310102030405
 5462                (128) 000102030405060710111213141516172021222324252627 ;
 5463 
 5464 data 2  -do -4  (24) 000 000 141 ;
 5465 
 5466 data 3          141 000 006 001 ;
 5467 
 5468 page    -all ;
 5469 
 5470 
 5471 /*   tct 12
 5472 *
 5473 *  Test similiar to tct 6.  Test indirect referencing of descriptor 1
 5474 *  with ar modification of the indirect word.  Also test reg
 5475 *  modification of descriptors 2 and 3.
 5476 *
 5477 */
 5478 
 5479 inst  tct  -nt  "(6 bit)test ida. tally runout"
 5480            -io 1
 5481            -ir tr
 5482            -mf1 ida rl 6146
 5483            -mf2 reg
 5484            -mf3 reg ;
 5485 
 5486 desc 1  -cn 5 -ta 6 ;
 5487 
 5488 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5489                 000102030405
 5490                 (128) 000102030405060710111213141516172021222324252627 ;
 5491 
 5492 data 2  -do -4  (24) 000 000 141 ;
 5493 
 5494 data 3          000 000 014 002 ;
 5495 
 5496 page    -all ;
 5497 
 5498 
 5499 
 5500 /*   tct 13
 5501 *
 5502 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5503 *  with ar modification of the indirect word.  Also test ar
 5504 *  modification of descriptors 2 and 3.
 5505 *
 5506 */
 5507 
 5508 inst  tct  -nt  "(6 bit)test ida. no tally runout"
 5509            -mf1 ida rl 6146
 5510            -mf2 ar
 5511            -mf3 ar ;
 5512 
 5513 desc 1  -cn 5 -ta 6 ;
 5514 
 5515 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5516                310102030405
 5517                (128) 000102030405060710111213141516172021222324252627 ;
 5518 
 5519 data 2  -do -4  (24) 000 000 141 ;
 5520 
 5521 data 3          141 000 006 001 ;
 5522 
 5523 page    -all ;
 5524 
 5525 
 5526 
 5527 /*   tct 14
 5528 *
 5529 *  Test similiar to tct 6.  Test indirect referencing of decriptor 1
 5530 *  with ar and reg modification of the indirect word.
 5531 *
 5532 */
 5533 
 5534 inst  tct  -nt  "(6 bit)test idb. tally runout"
 5535            -io 2
 5536            -ir tr
 5537            -mf1 idb rl 6146 ;
 5538 
 5539 desc 1  -cn 5 -ta 6 ;
 5540 
 5541 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5542                 000102030405
 5543                 (128) 000102030405060710111213141516172021222324252627 ;
 5544 
 5545 data 2  -do -4  (24) 000 000 141 ;
 5546 
 5547 data 3          000 000 014 002 ;
 5548 
 5549 page    -all ;
 5550 
 5551 
 5552 
 5553 /*   tct 15
 5554 *
 5555 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5556 *  with ar and reg modification of the indirect word.
 5557 *
 5558 */
 5559 
 5560 inst  tct  -nt  "(6 bit)test idb. no tally runout"
 5561            -mf1 idb rl 6146 ;
 5562 
 5563 desc 1  -cn 5 -ta 6 ;
 5564 
 5565 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5566                310102030405
 5567                (128) 000102030405060710111213141516172021222324252627 ;
 5568 
 5569 data 2  -do -4  (24) 000 000 141 ;
 5570 
 5571 data 3          141 000 006 001 ;
 5572 
 5573 page    -all ;
 5574 
 5575 
 5576 
 5577 /*   tct 16
 5578 *
 5579 *  Test similiar to tct 6.  Test indirect referencing of descriptor 1
 5580 *  with ar and reg modification of the indirect word.  Further the
 5581 *  descriptor has ar, reg, and rl modification.
 5582 *
 5583 */
 5584 
 5585 inst  tct  -nt  "(6 bit)idb,ar,reg. tally runout"
 5586            -io 1
 5587            -ir tr
 5588            -mf1 idb ar reg rl 6146 ;
 5589 
 5590 desc 1  -cn 5 -ta 6 ;
 5591 
 5592 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5593                 000102030405
 5594                 (128) 000102030405060710111213141516172021222324252627 ;
 5595 
 5596 data 2  -do -4  (24) 000 000 141 ;
 5597 
 5598 data 3          000 000 014 002 ;
 5599 
 5600 page    -all ;
 5601 
 5602 
 5603 
 5604 /*   tct 17
 5605 *
 5606 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5607 *  with ar and reg modification of the indirect word.  Further the
 5608 *  descriptor has ar, reg, and rl modification.
 5609 *
 5610 */
 5611 
 5612 inst  tct  -nt  "(6bit)idb,ar,reg.no tally runout"
 5613            -io 2
 5614            -mf1 idb ar reg rl 6146 ;
 5615 
 5616 desc 1  -cn 5 -ta 6 ;
 5617 
 5618 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5619                310102030405
 5620                (128) 000102030405060710111213141516172021222324252627 ;
 5621 
 5622 data 2  -do -4  (24) 000 000 141 ;
 5623 
 5624 data 3          141 000 006 001 ;
 5625 
 5626 page    -all ;
 5627 
 5628 /*   tct 18
 5629 *
 5630 *  Test for character match on the first character of page 3.
 5631 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 5632 *  ar and reg modification of descriptors 2 and 3.
 5633 *
 5634 */
 5635 
 5636 inst  tct  -nt  "(6 bit)match 1st char of page 3"
 5637            -io 1
 5638            -mf1 idb ar reg rl 6146
 5639            -mf2 reg ar
 5640            -mf3 reg ar ;
 5641 
 5642 desc 1  -cn 5 -ta 6 ;
 5643 
 5644 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5645                 (128) 000102030405060710111213141516172021222324252627
 5646                 31  ;
 5647 
 5648 data 2  -do -4  (24) 000 000 141 ;
 5649 
 5650 data 3          141 000 014 001 ;
 5651 
 5652 page    -all ;
 5653 
 5654 
 5655 /*   tct 19
 5656 *
 5657 *  Test for character match on the last character of page 1.
 5658 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 5659 *  ar and reg modification of descriptors 2 and 3.
 5660 *
 5661 */
 5662 
 5663 inst  tct  -nt  "(6 bit)match last char of page 1"
 5664            -io 1
 5665            -mf1 idb ar reg rl 6146
 5666            -mf2 reg ar
 5667            -mf3 reg ar ;
 5668 
 5669 desc 1  -cn 5 -ta 6 ;
 5670 
 5671 data 1  -do -4 "   " 031 (128) 010203040506071011121314151617202122232425262700
 5672                 (128) 000102030405060710111213141516172021222324252627
 5673                 00  ;
 5674 
 5675 data 2  -do -4  (24) 000 000 141 ;
 5676 
 5677 data 3          141 000 000 000 ;
 5678 
 5679 page    -all ;
 5680 
 5681 
 5682 ^L
 5683 
 5684 
 5685 /*                  tctr1
 5686 *
 5687 *         Out table will be indexed by the characters  "abcde".   "b" & "e" are the two
 5688 *         non zero entries.  Start off with a simple test
 5689 */
 5690 
 5691 inst      tctr      -nt "Simple test";
 5692 
 5693 desc 1    -ns 4;
 5694 
 5695 data 1    "bace";
 5696 
 5697 data 2    (97) "*"            /* These characters should never be referenced. */
 5698           000                 /* "a" */
 5699           "b"
 5700           000                 /* "c" */
 5701           "d"
 5702           000 ;               /* "e" */
 5703 
 5704 data 3    "b" 000 000 003;
 5705 
 5706 page      -all;
 5707 /*                  tctr2
 5708 *
 5709 *         Same as  tctr1  only we will move the data fields across page boundaries and
 5710 *         add modification.
 5711 */
 5712 
 5713 inst      tctr      -nt  "Same as prev - fields X pg bound" -io 3
 5714           -mf1      rl  4     ar reg idb
 5715           -mf2      ar reg              /* RL and ID mod NOT allowed for descriptors 2 & 3. */
 5716 
 5717           -mf3      reg ar;
 5718 
 5719 data 1    -do -3    "bace";
 5720 
 5721 data 2    -do -100  (97) "*"            /* These characters should never be referenced. */
 5722           000                 /* "a" */
 5723           "b"
 5724           000                 /* "c" */
 5725           "d"
 5726           000 ;               /* "e" */
 5727 
 5728 data 3    "b" 000 000 003;
 5729 
 5730 page      -all;
 5731 /*                  tctr3
 5732 *
 5733 *         Same as  tctr2  except  string 1 will be changed  so we will have a
 5734 *         tally runout.
 5735 */
 5736 
 5737 
 5738 inst      tctr      -nt  "Test tally runout"      -io 2
 5739           -ir       tr
 5740           -mf1      ar idb reg rl 18
 5741           -mf2      ar reg
 5742           -mf3      ar reg;
 5743 
 5744 data 1    -do -9    (6) "ace";
 5745 
 5746 data 2    -do -100
 5747           (97) "*" 000 "b" 000 "d" 000;
 5748 
 5749 data 3    000 000 000 022;
 5750 
 5751 
 5752 page      -all;
 5753 /*                  tctr4
 5754 *
 5755 *         Test using  6  bit characters.  The  -cn  field will specify that the string
 5756 *         starts at the  5th  character of the word (last character).
 5757 */
 5758 
 5759 inst      tctr      -nt  "Use 6 bit characters"   -io 1
 5760           -mf1      idb reg ar
 5761           -mf2      reg ar
 5762           -mf3      ar reg;
 5763 
 5764 desc 1    -ns  10   -cn 5     -ta 6;
 5765 
 5766 data 1    -do  -6             /* Test string is  0 1 2 3 4 5 6 7 10 11  */
 5767           0606060606          /* Filler, not part of string, 1st 5 characters of word. */
 5768           010203              /* Page boundary. */
 5769           040506 071011;
 5770 
 5771 data 2    -do -4
 5772           000 000 000 000
 5773           000 000 006 000 000 000;
 5774 
 5775 data 3    -do 4     006 000000 003;
 5776 
 5777 
 5778 page      -all;
 5779 /*                  tctr5
 5780 *
 5781 *         The indexes in string 1 will be  4  bit characters.
 5782 */
 5783 
 5784 inst      tctr      -nt  "Use 4 bit characters"   -io 2
 5785           -mf1      idb ar reg
 5786           -mf2      ar reg
 5787           -mf3      ar reg;
 5788 
 5789 
 5790 desc 1    -ns 8
 5791           -ta 4     /* 4 bit characters. */
 5792           -cn 2;    /* First 2 characters of word not used.
 5793                     *  This is the first 9 bit character.  */
 5794 
 5795 data 1    -do -2
 5796           000                 /* The first two characters of the word - skipped. */
 5797           001                 /* Characters "0" and "1".  In page 1. */
 5798           043 105 147;        /* "234567" (4 bit)  in page 2. */
 5799 
 5800 data 2    -do -4
 5801           000 000 000 000     /* All in page 1.  Represent index values 0,1,2,3 */
 5802           000 "*" 000 000;    /* In page 2. Correspond to index values 4,5,6,7  */
 5803 
 5804 data 3    "*" 000 000 002;
 5805 
 5806 
 5807 page      -all;
 5808 
 5809 
 5810 
 5811 /*   tctr 6
 5812 *
 5813 *  Test loading across three pages.  One character loaded from
 5814 *  page 1 and 3.  Test 6146 characters.  Tally runout indicator
 5815 *  is set.
 5816 */
 5817 
 5818 inst  tctr  -nt  "(6bit)no modif. tally is set"
 5819            -io 1
 5820            -ir tr
 5821            -mf1 rl 6146 ;
 5822 
 5823 desc 1  -cn 5 -ta 6 ;
 5824 
 5825 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5826                 000102030405
 5827                 (128) 000102030405060710111213141516172021222324252627 ;
 5828 
 5829 data 2  -do -4  (24) 000 000 141 ;
 5830 
 5831 data 3          000 000 014 002 ;
 5832 
 5833 page    -all ;
 5834 
 5835 /*   tctr 7
 5836 *
 5837 *  Test loading data across three pages.  One character is loaded
 5838 *  from page 1 and 3 with 6146 characters tested.  A nonzero
 5839 *  character is found in the test table.
 5840 */
 5841 
 5842 inst  tctr  -nt  "(6bit)no modif. a nonzero entry"
 5843            -mf1 rl 6146 ;
 5844 
 5845 desc 1  -cn 5 -ta 6 ;
 5846 
 5847 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5848                310102030405
 5849                 (128) 000102030405060710111213141516172021222324252627 ;
 5850 
 5851 data 2  -do -4  (24) 000 000 141 ;
 5852 
 5853 data 3          141 000 006 000 ;
 5854 
 5855 page    -all ;
 5856 
 5857 
 5858 
 5859 /*   tctr 8
 5860 *
 5861 *  Test similiar to tctr 6.  Test ar, reg, and rl for descriptor 1.
 5862 *
 5863 */
 5864 
 5865 inst  tctr  -nt  "(6bit)ar,reg,rl. tally runout"
 5866            -io 2
 5867            -ir tr
 5868            -mf1 ar reg rl 6146 ;
 5869 
 5870 desc 1  -cn 5 -ta 6 ;
 5871 
 5872 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5873                 000102030405
 5874                 (128) 000102030405060710111213141516172021222324252627 ;
 5875 
 5876 data 2  -do -4  (24) 000 000 141 ;
 5877 
 5878 data 3          000 000 014 002 ;
 5879 
 5880 page    -all ;
 5881 
 5882 
 5883 
 5884 /*   tctr 9
 5885 *
 5886 *  Test similiar to tctr 7.  Test ar, reg, and rl modification
 5887 *  for descriptor 1.  Test ar and reg modification for descriptor 1 and 2.
 5888 *
 5889 */
 5890 
 5891 inst  tctr  -nt  "(6bit)ar,reg,rl. no tally runout"
 5892            -io 1
 5893            -mf1 ar reg rl 6146
 5894            -mf2 ar reg
 5895            -mf3 ar reg ;
 5896 
 5897 desc 1  -cn 5 -ta 6 ;
 5898 
 5899 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5900                310102030405
 5901                (128) 000102030405060710111213141516172021222324252627 ;
 5902 
 5903 data 2  -do -4  (24) 000 000 141 ;
 5904 
 5905 data 3          141 000 006 000 ;
 5906 
 5907 page    -all ;
 5908 
 5909 
 5910 
 5911 /*   tctr 10
 5912 *
 5913 *  Test similiar to tctr 6.  Test indirect referencing
 5914 *  of descriptor 1.  Test ar and reg modification for descriptors 2 and 3.
 5915 */
 5916 
 5917 inst  tctr  -nt  "(6bit)test id. tally runout"
 5918            -ir tr
 5919            -mf1 id rl 6146
 5920            -mf2 ar reg
 5921            -mf3 ar reg ;
 5922 
 5923 desc 1  -cn 5 -ta 6 ;
 5924 
 5925 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5926                 000102030405
 5927                 (128) 000102030405060710111213141516172021222324252627 ;
 5928 
 5929 data 2  -do -4  (24) 000 000 141 ;
 5930 
 5931 data 3          000 000 014 002 ;
 5932 
 5933 page    -all ;
 5934 
 5935 
 5936 
 5937 
 5938 /*   tctr 11
 5939 *
 5940 *  Test similiar to tctr 7.  Test indirect referencing of
 5941 *  descriptor 1.
 5942 *
 5943 */
 5944 
 5945 inst  tctr  -nt  "(6bit)test id. no tally runout"
 5946            -io 2
 5947            -mf1 id rl 6146 ;
 5948 
 5949 desc 1  -cn 5 -ta 6 ;
 5950 
 5951 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5952                310102030405
 5953                (128) 000102030405060710111213141516172021222324252627 ;
 5954 
 5955 data 2  -do -4  (24) 000 000 141 ;
 5956 
 5957 data 3          141 000 006 000 ;
 5958 
 5959 page    -all ;
 5960 
 5961 
 5962 /*   tctr 12
 5963 *
 5964 *  Test similiar to tctr 6.  Test indirect referencing of descriptor 1
 5965 *  with ar modification of the indirect word.  Also test reg
 5966 *  modification of descriptors 2 and 3.
 5967 *
 5968 */
 5969 
 5970 inst  tctr  -nt  "(6bit)test ida. tally runout"
 5971            -io 1
 5972            -ir tr
 5973            -mf1 ida rl 6146
 5974            -mf2 reg
 5975            -mf3 reg ;
 5976 
 5977 desc 1  -cn 5 -ta 6 ;
 5978 
 5979 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5980                 000102030405
 5981                 (128) 000102030405060710111213141516172021222324252627 ;
 5982 
 5983 data 2  -do -4  (24) 000 000 141 ;
 5984 
 5985 data 3          000 000 014 002 ;
 5986 
 5987 page    -all ;
 5988 
 5989 
 5990 
 5991 /*   tctr 13
 5992 *
 5993 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 5994 *  with ar modification of the indirect word.  Also test ar
 5995 *  modification of descriptors 2 and 3.
 5996 *
 5997 */
 5998 
 5999 inst  tctr  -nt  "(6bit)test ida. no tally runout"
 6000            -mf1 ida rl 6146
 6001            -mf2 ar
 6002            -mf3 ar ;
 6003 
 6004 desc 1  -cn 5 -ta 6 ;
 6005 
 6006 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6007                310102030405
 6008                (128) 000102030405060710111213141516172021222324252627 ;
 6009 
 6010 data 2  -do -4  (24) 000 000 141 ;
 6011 
 6012 data 3          141 000 006 000 ;
 6013 
 6014 page    -all ;
 6015 
 6016 
 6017 
 6018 /*   tctr 14
 6019 *
 6020 *  Test similiar to tctr 6.  Test indirect referencing of decriptor 1
 6021 *  with ar and reg modification of the indirect word.
 6022 *
 6023 */
 6024 
 6025 inst  tctr  -nt  "(6bit)test idb. tally runout"
 6026            -io 2
 6027            -ir tr
 6028            -mf1 idb rl 6146 ;
 6029 
 6030 desc 1  -cn 5 -ta 6 ;
 6031 
 6032 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6033                 000102030405
 6034                 (128) 000102030405060710111213141516172021222324252627 ;
 6035 
 6036 data 2  -do -4  (24) 000 000 141 ;
 6037 
 6038 data 3          000 000 014 002 ;
 6039 
 6040 page    -all ;
 6041 
 6042 
 6043 
 6044 /*   tctr 15
 6045 *
 6046 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 6047 *  with ar and reg modification of the indirect word.
 6048 *
 6049 */
 6050 
 6051 inst  tctr  -nt  "(6bit)test idb. no tally runout"
 6052            -mf1 idb rl 6146 ;
 6053 
 6054 desc 1  -cn 5 -ta 6 ;
 6055 
 6056 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6057                310102030405
 6058                (128) 000102030405060710111213141516172021222324252627 ;
 6059 
 6060 data 2  -do -4  (24) 000 000 141 ;
 6061 
 6062 data 3          141 000 006 000 ;
 6063 
 6064 page    -all ;
 6065 
 6066 
 6067 
 6068 /*   tctr 16
 6069 *
 6070 *  Test similiar to tctr 6.  Test indirect referencing of descriptor 1
 6071 *  with ar and reg modification of the indirect word.  Further the
 6072 *  descriptor has ar, reg, and rl modification.
 6073 *
 6074 */
 6075 
 6076 inst  tctr  -nt  "(6bit)idb,ar,reg. tally runout"
 6077            -io 1
 6078            -ir tr
 6079            -mf1 idb ar reg rl 6146 ;
 6080 
 6081 desc 1  -cn 5 -ta 6 ;
 6082 
 6083 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6084                 000102030405
 6085                 (128) 000102030405060710111213141516172021222324252627 ;
 6086 
 6087 data 2  -do -4  (24) 000 000 141 ;
 6088 
 6089 data 3          000 000 014 002 ;
 6090 
 6091 page    -all ;
 6092 
 6093 
 6094 
 6095 /*   tctr 17
 6096 *
 6097 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 6098 *  with ar and reg modification of the indirect word.  Further the
 6099 *  descriptor has ar, reg, and rl modification.
 6100 *
 6101 */
 6102 
 6103 inst  tctr  -nt  "(6bit)idb,ar,reg.no tally runout"
 6104            -io 2
 6105            -mf1 idb ar reg rl 6146 ;
 6106 
 6107 desc 1  -cn 5 -ta 6 ;
 6108 
 6109 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6110                310102030405
 6111                (128) 000102030405060710111213141516172021222324252627 ;
 6112 
 6113 data 2  -do -4  (24) 000 000 141 ;
 6114 
 6115 data 3          141 000 006 000 ;
 6116 
 6117 page    -all ;
 6118 
 6119 /*   tctr 18
 6120 *
 6121 *  Test for character match on the first character of page 3.
 6122 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 6123 *  ar and reg modification of descriptors 2 and 3.
 6124 *
 6125 */
 6126 
 6127 inst  tctr  -nt  "(6bit)match 1st char of page 3"
 6128            -io 1
 6129            -mf1 idb ar reg rl 6146
 6130            -mf2 reg ar
 6131            -mf3 reg ar ;
 6132 
 6133 desc 1  -cn 5 -ta 6 ;
 6134 
 6135 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6136                 (128) 000102030405060710111213141516172021222324252627
 6137                 31  ;
 6138 
 6139 data 2  -do -4  (24) 000 000 141 ;
 6140 
 6141 data 3          141 000 000 000 ;
 6142 
 6143 page    -all ;
 6144 
 6145 
 6146 /*   tctr 19
 6147 *
 6148 *  Test for character match on the last character of page 1.
 6149 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 6150 *  ar and reg modification of descriptors 2 and 3.
 6151 *
 6152 */
 6153 
 6154 inst  tctr  -nt  "(6bit)match last char of page 1"
 6155            -io 1
 6156            -mf1 idb ar reg rl 6146
 6157            -mf2 reg ar
 6158            -mf3 reg ar ;
 6159 
 6160 desc 1  -cn 5 -ta 6 ;
 6161 
 6162 data 1  -do -4 "   " 031 (128) 010203040506071011121314151617202122232425262700
 6163                 (128) 000102030405060710111213141516172021222324252627
 6164                 00  ;
 6165 
 6166 data 2  -do -4  (24) 000 000 141 ;
 6167 
 6168 data 3          141 000 014 001 ;
 6169 
 6170 page    -all ;
 6171 
 6172 
 6173 ^L
 6174 
 6175 
 6176 /*                  scm1
 6177 *
 6178 *         No match found in data 1 field so  tally runout indicator will be  ON.
 6179 *         CN field used in descriptor 1 and its data will cross a page boundary.
 6180 */
 6181 
 6182 inst      scm       -nt  "Tally runout" -io 3
 6183           -mc^G               /* Mask =  (007) octal.  */
 6184           -ir       tr
 6185           -mf1      ida
 6186           -mf2      ar
 6187           -mf3      ar reg;
 6188 
 6189 
 6190 desc 1    -ns 3     -cn 3     -ta 9;
 6191 
 6192 desc 2    -ns 4     -cn 1;
 6193 
 6194 
 6195 data 1    -do -4
 6196           000 000 000                   /* Fill due to  cn 3.  */
 6197           011                           /* Part of string on page 1. */
 6198           021 031;                      /* Part of string on page 2. */
 6199 
 6200 data 2    -do -1       000  001;
 6201 
 6202 data 3    000 000 000 003;
 6203 
 6204 page      -all;
 6205 /*                   scm2
 6206 
 6207 *         simple test to determine if instruction
 6208 *         is working correctly.  data is 9 bit
 6209 *         written in octal format to allow easy
 6210 *         comparison with the mask.  this test
 6211 *         accesses all descriptors directly.
 6212 *
 6213 */
 6214 
 6215 inst     scm     -nt "mc 8 9bit"
 6216          -mc8;
 6217 
 6218 desc 1     -ns 8          -ta 9;
 6219 
 6220 data 1    060061062063064065066067;
 6221 
 6222 data 2    047;
 6223 
 6224 data 3    000 000 000 007;
 6225 
 6226 page      -all;
 6227 
 6228 
 6229 /*                  scm3
 6230 
 6231 *         same data as test 2 but with data 1
 6232 *         split across page boundary.  indirect
 6233 *         mod on desc 1 and 2.
 6234 *
 6235 */
 6236 
 6237 inst      scm       -io 1     -nt "d1 split mc 8 9bit"
 6238           -mc8
 6239           -mf1      idb
 6240           -mf2      idb;
 6241 
 6242 desc 1    -ns 8     -ta 9;
 6243 
 6244 data 1    -do -4    060061062063 064065066067;
 6245 
 6246 data 2    047;
 6247 
 6248 data 3    000 000 000 007;
 6249 
 6250 page      -all;
 6251 
 6252 /*                  scm4
 6253 
 6254 *         same data config as test 2 but with
 6255 *         full desc mod.
 6256 *
 6257 */
 6258 
 6259 inst      scm       -io 3     -nt "d1 split mc8 9bit"
 6260           -mc8
 6261           -mf1      idb ar reg rl 8
 6262           -mf2      idb ar reg
 6263           -mf3       ar reg;
 6264 
 6265 desc 1    -ta 9;
 6266 
 6267 data 1    060061062063064065066067;
 6268 
 6269 data 2    047;
 6270 
 6271 data 3    000 000 000 007;
 6272 
 6273 page      -all;
 6274 
 6275 
 6276 
 6277 /*                  scm5
 6278 
 6279 *         test of the -cn option for desc 1 and 2
 6280 *         along with a varied of """mode of desc mod.
 6281 *         both data strings are split across page bound.
 6282 *
 6283 */
 6284 
 6285 inst      scm       -io 2       -nt "mc8 no match 9bit"
 6286        -ir     tr
 6287           -mc8
 6288           -mf1      idb ar reg rl 6
 6289           -mf2      ar
 6290           -mf3      ar;
 6291 
 6292 desc 1    -ta 9;
 6293 
 6294 desc 2    -cn 3;
 6295 
 6296 data 1    -do -2    000000 060061062063064066;
 6297 
 6298 data 2    -do -1    000 000 000 047;
 6299 
 6300 data 3    000 000 000 006  /* no match */;
 6301 
 6302 page      -all;
 6303 
 6304 
 6305 
 6306 /*                  scm6
 6307 
 6308 *         data 1 wholey contained on page 0 and
 6309 *         data  starting on word 0 of page 1; char 0.
 6310 *         all desc mod.
 6311 *
 6312 */
 6313 
 6314 inst      scm       -io 1      -nt "mc8 d1 on p0 9bit"
 6315           -mc8
 6316           -mf1      idb ar reg
 6317           -mf2      idb ar reg
 6318           -mf3       ar reg;
 6319 
 6320 desc 1    -ta 9     -ns 2          -cn 2;
 6321 
 6322 data 1    -do  -4   000000060067;
 6323 
 6324 data 2    047;
 6325 
 6326 data 3    000 000 000 001;
 6327 
 6328 page      -all;
 6329 
 6330 
 6331 
 6332 /*                  scm7
 6333 
 6334 *         a variety of desc mod are used~ and the mask
 6335 *         is set so that there is no match.  using the
 6336 *         using the same data as test 6.
 6337 *
 6338 */
 6339 
 6340 inst      scm       -io 3     -nt "mc777 no match 9 bit"
 6341           -mcÿ
 6342                 /*  mc = 777 */
 6343           -mf1      idr ar rl 2
 6344           -mf2      ar reg
 6345           -mf3      ar;
 6346 
 6347 desc 1    -ta 9     -cn 2;
 6348 
 6349 data 1    -do -4    000000060067;
 6350 
 6351 data 2    047;
 6352 
 6353 data 3    000 000 000 000;
 6354 
 6355 page      -all;
 6356 
 6357 
 6358 /*                  scm 8
 6359 
 6360 *          the next four tests use the maximum amount of
 6361 *         data for string 1 to test the paging of the data
 6362 *         strings.  this test will make sure the inst is operating
 6363 *         correctly using no desc mod.
 6364 *
 6365 */
 6366 
 6367 inst      scm     -nt "d1 covers 3pp 9bit"
 6368           -mc^A     /*    mc = 001  */
 6369                /* mc = 001 */
 6370           -mf1      rl 4352
 6371           /* no desc mod.--all direct */;
 6372 
 6373 desc 1    -ta 9          ;
 6374 
 6375 data 1    -do -128  (4351) 062 066;
 6376 
 6377 data 2    067;
 6378 
 6379 data 3    000 000 010 377;
 6380 
 6381 page      -all;
 6382 
 6383 
 6384 
 6385 /*                   scm9
 6386 
 6387 *         uses same data setup as test 8 but applies
 6388 *         maximum mod to descriptors.
 6389 *
 6390 */
 6391 
 6392 inst      scm       -io 3      -nt "d1 covers 3 pp max desc mod 9b"
 6393           -mc^A     /*    mc = 001  */
 6394           -mf1      idb ar reg rl 4352
 6395           -mf2      idb ar reg
 6396           -mf3       ar reg;
 6397 
 6398 desc 1    -ta 9;
 6399 
 6400 data 1    -do -128  (4351) 062 066;
 6401 
 6402 data 2    067;
 6403 
 6404 data 3    000 000 010 377;
 6405 
 6406 page      -all;
 6407 
 6408 
 6409 
 6410 /*                  scm10
 6411 
 6412 *         this test specifically tests the -cn option
 6413 **        for data 2 along with forcing it to cross
 6414 *         a page boundary.  all desc mods are taken.
 6415 *
 6416 */
 6417 
 6418 
 6419 inst      scm       -io 1      -nt "d1 covers 3pp d2 split 9b"
 6420           -mc^A     /*    mc = 001  */
 6421           -mf1      idb ar reg rl 4352
 6422           -mf2      idb ar reg
 6423           -mf3       ar reg;
 6424 
 6425 desc 1    -ta 9;
 6426 
 6427 desc 2    -cn 1;
 6428 
 6429 data 1     -do -128       (4351) 062 066;
 6430 
 6431 data 2    -do -2         000067 000000;
 6432 
 6433 data 3    000 000 010 377;
 6434 
 6435 page      -all;
 6436 
 6437 
 6438 /*                  scm11
 6439 
 6440 *         there will be no match on this test.  also,
 6441 *         a variety of desc mods are taken.  note
 6442 *         tr indicator will be on.
 6443 *
 6444 */
 6445 
 6446 inst      scm       -io 1      -nt "no match d1 covers 3pp 9bit"
 6447           -mc^A     /*    mc = 001  */
 6448           -ir       tr
 6449           -mf1      idb rl 4352
 6450           -mf2      ar reg
 6451           /* mf3 is direct */;
 6452 
 6453 desc 1    -ta 9;
 6454 
 6455 desc 2    -cn 1;
 6456 
 6457 data 1    -do -128  (4352) 062;
 6458 
 6459 data 2    -do -2    000067 000000;
 6460 
 6461 data 3    000 000 010 400;
 6462 
 6463 page      -all;
 6464     /*               scm12
 6465 
 6466 *          this starts the sequence of seven
 6467 *          four bit data tests.  this first
 6468 *          test makes sure that the inst is working
 6469 *          correctly without any desc. mod.
 6470 *
 6471 */
 6472 
 6473 inst       scm    -nt "simple test 4 bit"
 6474            -mc^A     /*    mc = 001  */
 6475                /* mc = 001 */
 6476            /*  all the desc. are direct */;
 6477 
 6478 desc 1     -ta 4      -ns 8;
 6479 
 6480 
 6481 data 1    237 323 070 361  /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
 6482 
 6483 data 2     360    /* 1111 */;
 6484 
 6485 
 6486 data 3     000 000 000 001;
 6487 
 6488 page       -all;
 6489 
 6490 
 6491 
 6492 /*                    scm13
 6493 
 6494 *          same as previous test but taking all of the
 6495 *          possible desc. mod.
 6496 *
 6497 */
 6498 
 6499 inst       scm        -io 1      -nt " full desc mod 4bit"
 6500            -mc^A     /*    mc = 001  */
 6501                   /* mc = 001 */
 6502            -mf1       idb ar reg rl 8
 6503            -mf2       idb ar reg
 6504            -mf3       ar reg;
 6505 
 6506 desc 1     -ta 4;
 6507 
 6508 data 1     237 323 070 361;
 6509 
 6510 data 2     360;
 6511 
 6512 data 3     000 000 000 001;
 6513 
 6514 page      -all;
 6515 
 6516 
 6517 
 6518 /*                    scm14
 6519 
 6520 *          changing the mask characters and offsetting
 6521 *          the first data string across a page boundary
 6522 *          with a variety of desc. mod.
 6523 *
 6524 */
 6525 
 6526 inst       scm        -io 3    -nt "d1 split 4 bit"
 6527            -mc?
 6528            -mf1       ar
 6529            -mf2       idb
 6530            /* mf3 is direct */;
 6531 
 6532 desc 1     -ta 4      -ns 8;
 6533 
 6534 data 1     -do -2      237 323 /* page bound */ 070 361;
 6535 
 6536 data 2                              360;
 6537 
 6538 data 3     000 000 000 000;
 6539 
 6540 page       -all;
 6541 
 6542 
 6543 
 6544 /*                     scm15
 6545 
 6546 *          again using the same data but this time splitting
 6547 *          both strings across page bound. and exercising
 6548 *          the -cn option.  all desc. mod. are taken.
 6549 *
 6550 */
 6551 
 6552 inst       scm         -io 1     -nt "d1 and d2 split 4 bit"
 6553            -mc?
 6554            -mf1        idb ar reg
 6555            -mf2        idb ar reg
 6556            -mf3       ar reg;
 6557 
 6558 desc 1     -ta 4       -ns 6         -cn 1;
 6559 
 6560 desc 2     -cn 3;
 6561 
 6562 data 1     -do -2      237 323  /* page boun. */  070 361;
 6563 
 6564 data 2     -do  -3    000 000 360  /* page bound. */  000;
 6565 
 6566 data 3       000 000 000 000;
 6567 
 6568 page       -all;
 6569 
 6570 
 6571 
 6572 /*                     scm16
 6573 
 6574 *          this time there will be no match with
 6575 *          the same parameters as test 15 with a mask of
 6576 *         777.
 6577 *
 6578 */
 6579 
 6580 inst       scm         -io 2   -nt "match on first char 4bit"
 6581          -mcÿ
 6582            -mf1        idb ar reg
 6583            -mf2        idb ar reg
 6584            -mf3       ar reg;
 6585 
 6586 desc 1     -ta 4       -ns 8        -cn 1;
 6587 
 6588 desc 2     -cn 3;
 6589 
 6590 data 1     -do -2      237 323 070 361;
 6591 
 6592 data 2     -do -3      000 000 360 000;
 6593 
 6594 data 3     000 000 000 000;
 6595 
 6596 page       -all;
 6597 
 6598 
 6599 
 6600 /*                     scm17
 6601 
 6602 *          the next three tests use the maximum amount
 6603 *          of data for string 1.  this test uses a mask
 6604 *          of 000 but searches for a char which will not
 6605 *          match ( tr ind).  no desc. mod.
 6606 *
 6607 */
 6608 
 6609 inst       scm    -nt "mc=000 no mat d1 covers 3pp 4b"
 6610            -mc^@   /*   mc = 000  */
 6611            -ir   tr
 6612            -mf1        rl 8704
 6613            /*  all desc. are direct */;
 6614 
 6615 desc 1     -ta 4;
 6616 
 6617 data 1     -do -128    (1088) 237323070361;
 6618 
 6619 data 2     000;
 6620 
 6621 data 3     000 000 021 000;
 6622 
 6623 page       -all;
 6624 
 6625 
 6626 
 6627 /*                     scm18
 6628 
 6629 *          this test will force a match on a middle
 6630 *          char.  all desc mods. are taken.
 6631 *
 6632 */
 6633 
 6634 inst       scm         -io 2     -nt "d1 covers 3pp 4bit"
 6635            -mc^A     /*    mc = 001  */
 6636            -mf1        idb ar reg rl 8704
 6637            -mf2        idb ar reg
 6638            -mf3       ar reg;
 6639 
 6640 desc 1     -ta 4;
 6641 
 6642 data 1     -do -128     (1087) 237323070361 237 323 070 000;
 6643 
 6644 data 2     000;
 6645 
 6646 data 3     000 000 000 007;
 6647 
 6648 page       -all;
 6649 
 6650 
 6651 /*                      scm19
 6652 
 6653 *          this test puts the second string on page 0
 6654 *           and tests the -cn option.
 6655 *
 6656 */
 6657 
 6658 inst       scm          -io 2     -nt "d1 covers 3pp 4bit"
 6659            -mc^A     /*    mc = 001  */
 6660            -mf1         ida ar reg rl 8704
 6661            -mf2         idr ar
 6662            /* mf3 is direct */;
 6663 
 6664 desc 1     -ta 4        ;
 6665 
 6666 desc 2     -cn 3;
 6667 
 6668 data 1     -do -128     (1087) 237323070361 237323070000;
 6669 
 6670 data 2     -do -3       000 000 000 000;
 6671 
 6672 data 3     000 000 000 007;
 6673 
 6674 
 6675 page       -all;
 6676 
 6677 
 6678 
 6679 /*                      scm20
 6680 
 6681 *          the following tests use 6 bit data.
 6682 *          this test merely makes sure the instruction
 6683 *          is working correctly.  direct mod on descriptors.
 6684 *
 6685 */
 6686 
 6687 inst       scm    -nt "6bit"
 6688            -mc
 6689            /* all desc. are direct */;
 6690 
 6691 desc 1     -ta 6        -ns 12;
 6692 
 6693 data 1     414243444546 575051525353;
 6694 
 6695 data 2     57;
 6696 
 6697 data 3     000 000 000 006;
 6698 
 6699 page       -all;
 6700 
 6701 
 6702 
 6703 
 6704 /*                     scm21
 6705 
 6706 *          same as previous test but with first string
 6707 *          split across page bound. and a variety
 6708 *          of desc. mods taken.
 6709 *
 6710 */
 6711 
 6712 inst       scm         -io 1     -nt "di split 6bit"
 6713           -mc^P    /*   mc = 020  */
 6714            -mf1        ar reg
 6715            -mf2        idb
 6716            /* mf3 is direct */;
 6717 
 6718 desc 1     -ta 6       -ns 12;
 6719 
 6720 data 1     -do -4      414243444546  /*page bound */  475051525354;
 6721 
 6722 data 2     67;
 6723 
 6724 data 3     000 000 000 006;
 6725 
 6726 page       -all;
 6727 
 6728 /*                     scm22
 6729 
 6730 *          this is the same as test 22 except the mask
 6731 *          has been set to preclude a match (tr on)
 6732           and different desc. mods. are taken.
 6733 *
 6734 */
 6735 
 6736 inst       scm         -io 2    -nt "no match 6bit"
 6737            -mc^G
 6738            -ir   tr
 6739            -mf1        idb ar
 6740            -mf2        ar reg
 6741            -mf3        ar reg;
 6742 
 6743 desc 1     -ta 6       -ns 12;
 6744 
 6745 data 1     -do -4      414243444546 475051525354;
 6746 
 6747 data 2     67;
 6748 
 6749 data 3    000 000 000 014;
 6750 
 6751 page       -all;
 6752 
 6753 
 6754 /*                     scm23
 6755 
 6756 *this test exercises all the desc. mods.
 6757 *          and tests the rl and -cn options.  it also
 6758 *          changes the mask char .
 6759 *
 6760 *
 6761 */
 6762 
 6763 inst       scm         -io 3    -nt "full desc mod 6bit"
 6764            -mc^U    /*  mc = 025  */
 6765            -mf1        idb ar reg rl 12
 6766            -mf2        idb ar reg
 6767            -mf3       ar reg;
 6768 
 6769 desc 1     -ta 6;
 6770 
 6771 desc 2     -cn 3;
 6772 
 6773 data 1     -do -6      414243444546475051 525354;
 6774 
 6775 data 2     -do -4      000000720000 /* page bound. */;
 6776 
 6777 data 3     000 000 000 011;
 6778 
 6779 page       -all;
 6780 
 6781 
 6782 /*                     scm24
 6783 
 6784 *         using the -cn option on both descriptors
 6785 *         direct mod on mf3 desc.
 6786 *
 6787 */
 6788 
 6789 inst      scm          -io 2     -nt "d1 split 6bit"
 6790           -mc^U    /*  mc = 025  */
 6791           -mf1         ar rl 5
 6792           -mf2      ar
 6793           /* mf3 is direct */;
 6794 
 6795 desc 1    -ta 6        -cn 4;
 6796 
 6797 desc 2    -cn 2;
 6798 
 6799 data 1    -do -4      000000005100  /*page bound. */  525354;
 6800 
 6801 data 2    -do -2        00007200   /* page bound.  */;
 6802 
 6803 data 3    000 000 000 002;
 6804 
 6805 page      -all;
 6806 
 6807 
 6808 /*                     scm25
 6809 
 6810 *         this test and the next one uses the maximum amount
 6811 *         of char for string 1.  this test forces a "no match"
 6812 *         condition (ir tr on) and takes the maximum mod.
 6813 *         on the desc.
 6814 *
 6815 */
 6816 
 6817 inst      scm          -io 3    -nt "d1 covers 3pp no match 6b"
 6818          -mc000
 6819           -ir  tr
 6820           -mf1         idb ar reg rl 6528
 6821           -mf2      idb ar reg
 6822           -mf3       ar reg;
 6823 
 6824 desc 1    -ta 6;
 6825 
 6826 data 1    -do -128          (1087) 515151515151 515151515153;
 6827 
 6828 data 2    52;
 6829 
 6830 data 3    000 000 014 600;
 6831 
 6832 page      -all;
 6833 
 6834 
 6835 
 6836 /*                     scm26
 6837 
 6838 *         same as previous test but a match occurs
 6839 *         on the last char.
 6840 *
 6841 */
 6842 
 6843 inst      scm          -io 2    -nt "d1 covers 3pp 6bit"
 6844           -mc^@   /*   mc = 000  */
 6845           -mf1         idb ar reg rl 6528
 6846           -mf2         idb ar reg
 6847           -mf3       ar reg;
 6848 
 6849 
 6850 desc 1    -ta 6;
 6851 
 6852 data 1    -do -128     (1087) 515151515151 515151515152;
 6853 
 6854 data 2    52;
 6855 
 6856 data 3    000 000 014 577;
 6857 
 6858 page      -all;
 6859 
 6860 
 6861 ^L
 6862 
 6863 
 6864 /*                  scmr1
 6865 *
 6866 *         Same  as  scm  only we will change the data  of string 2 so that there is
 6867 *         a match.
 6868 */
 6869 
 6870 inst      scmr      -nt  "Same as scm but strings match"    -io 2
 6871           -mc^G               /* Mask =  (007) octal.  */
 6872           -mf1      ida
 6873           -mf2      ar
 6874           -mf3      ar reg;
 6875 
 6876 
 6877 desc 1    -ns 3     -cn 3     -ta 9;
 6878 
 6879 desc 2    -cn 1;
 6880 
 6881 
 6882 data 1    -do -4
 6883           000 000 000                   /* Fill due to  cn 3.  */
 6884           011                           /* Part of string on page 1. */
 6885           021 033;                      /* Part of string on page 2. */
 6886 
 6887 data 2    -do -1       000  013;
 6888 
 6889 data 3    000 000 000 002;
 6890 
 6891 page      -all;
 6892 /*                   scmr2
 6893 
 6894 *         simple test to determine if instruction
 6895 *         is working correctly.  data is 9 bit
 6896 *         written in octal format to allow easy
 6897 *         comparison with the mask.  this test
 6898 *         accesses all descriptors directly.
 6899 *
 6900 */
 6901 
 6902 inst     scmr    -nt "mc8 simple test 9 bit"
 6903          -mc8;
 6904 
 6905 desc 1     -ns 8          -ta 9;
 6906 
 6907 data 1    060061062063064065066067;
 6908 
 6909 data 2    047;
 6910 
 6911 data 3    000 000 000 000;
 6912 
 6913 page      -all;
 6914 
 6915 
 6916 /*                  scmr3
 6917 
 6918 *         same data as test 2 but with data 1
 6919 *         split across page boundary.  indirect
 6920 *         mod on desc 1 and 2.
 6921 *
 6922 */
 6923 
 6924 inst      scmr       -io 1    -nt "d1 split 9bit"
 6925           -mc8
 6926           -mf1      idb
 6927           -mf2      idb;
 6928 
 6929 desc 1    -ns 8     -ta 9;
 6930 
 6931 data 1    -do -4    060061062063 064065066067;
 6932 
 6933 data 2    047;
 6934 
 6935 data 3    000 000 000 000;
 6936 
 6937 page      -all;
 6938 
 6939 /*                  scmr4
 6940 
 6941 *         same data config as test 2 but with
 6942 *         full desc mod.
 6943 *
 6944 */
 6945 
 6946 inst      scmr       -io 3    -nt "d1 split 9bit"
 6947           -mc8
 6948           -mf1      idb ar reg rl 8
 6949           -mf2      idb ar reg
 6950           -mf3       ar reg;
 6951 
 6952 desc 1    -ta 9;
 6953 
 6954 data 1    060061062063064065066067;
 6955 
 6956 data 2    047;
 6957 
 6958 data 3    000 000 000 000;
 6959 
 6960 page      -all;
 6961 
 6962 
 6963 
 6964 /*                  scmr5
 6965 
 6966 *         test of the -cn option for desc 1 and 2
 6967 *         along with a varied of """mode of desc mod.
 6968 *         both data strings are split across page bound.
 6969 *
 6970 */
 6971 
 6972 inst      scmr       -io 2    -nt "no match 9bit"
 6973        -ir     tr
 6974           -mc8
 6975           -mf1      idb ar reg rl 6
 6976           -mf2      ar
 6977           -mf3      ar;
 6978 
 6979 desc 1    -ta 9;
 6980 
 6981 desc 2    -cn 3;
 6982 
 6983 data 1    -do -2    000000 060061062063064066;
 6984 
 6985 data 2    -do -1    000 000 000 047;
 6986 
 6987 data 3    000 000 000 006  /* no match */;
 6988 
 6989 page      -all;
 6990 
 6991 
 6992 
 6993 /*                  scmr6
 6994 
 6995 *         data 1 wholey contained on page 0 and
 6996 *         data  starting on word 0 of page 1; char 0.
 6997 *         all desc mod.
 6998 *
 6999 */
 7000 
 7001 inst      scmr       -io 1    -nt "d1 on p0 9bit"
 7002           -mc8
 7003           -mf1      idb ar reg
 7004           -mf2      idb ar reg
 7005           -mf3       ar reg;
 7006 
 7007 desc 1    -ta 9     -ns 2          -cn 2;
 7008 
 7009 data 1    -do  -4   000000060067;
 7010 
 7011 data 2    047;
 7012 
 7013 data 3    000 000 000 000;
 7014 
 7015 page      -all;
 7016 
 7017 
 7018 
 7019 /*                  scmr7
 7020 
 7021 *         a variety of desc mod are used~ and the mask
 7022 *         is set so that there is no match.  using the
 7023 *         using the same data as test 6.
 7024 *
 7025 */
 7026 
 7027 inst      scmr       -io 3    -nt "no match 9bit"
 7028           -mcÿ
 7029              /* mc = 777 */
 7030           -mf1      idr ar rl 2
 7031           -mf2      ar reg
 7032           -mf3      ar;
 7033 
 7034 desc 1    -ta 9     -cn 2;
 7035 
 7036 data 1    -do -4    000000060067;
 7037 
 7038 data 2    047;
 7039 
 7040 data 3    000 000 000 000;
 7041 
 7042 page      -all;
 7043 
 7044 
 7045 /*                  scmr 8
 7046 
 7047 *          the next four tests use the maximum amount of
 7048 *         data for string 1 to test the paging of the data
 7049 *         strings.  this test will make sure the inst is operating
 7050 *         correctly using no desc mod.
 7051 *
 7052 */
 7053 
 7054 inst      scmr    -nt "d1 covers 3pp 9bit"
 7055           -mc^A    /*  mc = 001 */
 7056                 /* mc = 001 */
 7057           -mf1      rl 4352
 7058           /* no desc mod.--all direct */;
 7059 
 7060 desc 1    -ta 9          ;
 7061 
 7062 data 1    -do -128  066 (4351) 062;
 7063 
 7064 data 2    067;
 7065 
 7066 data 3    000 000 010 377;
 7067 
 7068 page      -all;
 7069 
 7070 
 7071 
 7072 /*                   scmr9
 7073 
 7074 *         uses same data setup as test 8 but applies
 7075 *         maximum mod to descriptors.
 7076 *
 7077 */
 7078 
 7079 inst      scmr       -io 3     -nt "d1 covers 3pp max desc mod 9b"
 7080           -mc^A    /*  mc = 001 */
 7081           -mf1      idb ar reg rl 4352
 7082           -mf2      idb ar reg
 7083           -mf3       ar reg;
 7084 
 7085 desc 1    -ta 9;
 7086 
 7087 data 1    -do -128  (4351) 062 066;
 7088 
 7089 data 2    067;
 7090 
 7091 data 3    000 000 000 000;
 7092 
 7093 page      -all;
 7094 
 7095 
 7096 
 7097 /*                  scmr10
 7098 
 7099 *         this test specifically tests the -cn option
 7100 **        for data 2 along with forcing it to cross
 7101 *         a page boundary.  all desc mods are taken.
 7102 *
 7103 */
 7104 
 7105 
 7106 inst      scmr       -io 1      -nt "d1 covers 3pp d2 split 9b"
 7107           -mc^A    /*  mc = 001 */
 7108           -mf1      idb ar reg rl 4352
 7109           -mf2      idb ar reg
 7110           -mf3       ar reg;
 7111 
 7112 desc 1    -ta 9;
 7113 
 7114 desc 2    -cn 1;
 7115 
 7116 data 1     -do -128       066    (4351) 062;
 7117 
 7118 data 2    -do -2         000067 000000;
 7119 
 7120 data 3    000 000 010 377;
 7121 
 7122 page      -all;
 7123 
 7124 
 7125 /*                  scmr11
 7126 
 7127 *         there will be no match on this test.  also,
 7128 *         a variety of desc mods are taken.  note
 7129 *         tr indicator will be on.
 7130 *
 7131 */
 7132 
 7133 inst      scmr       -io 1    -nt "no match d1 covers 3pp 9bit"
 7134           -mc^A    /*  mc = 001 */
 7135           -ir       tr
 7136           -mf1      idb rl 4352
 7137           -mf2      ar reg
 7138           /* mf3 is direct */;
 7139 
 7140 desc 1    -ta 9;
 7141 
 7142 desc 2    -cn 1;
 7143 
 7144 data 1    -do -128  (4352) 062;
 7145 
 7146 data 2    -do -2    000067 000000;
 7147 
 7148 data 3    000 000 010 400;
 7149 
 7150 page      -all;
 7151     /*               scmr12
 7152 
 7153 *          this starts the sequence of seven
 7154 *          four bit data tests.  this first
 7155 *          test makes sure that the inst is working
 7156 *          correctly without any desc. mod.
 7157 *
 7158 */
 7159 
 7160 inst       scmr    -nt "4bit simple test"
 7161            -mc^A    /*  mc = 001 */
 7162            /*  all the desc. are direct */;
 7163 
 7164 desc 1     -ta 4      -ns 8;
 7165 
 7166 
 7167 data 1    237 323 070 361  /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
 7168 
 7169 data 2     360    /* 1111 */;
 7170 
 7171 
 7172 data 3     000 000 000 001;
 7173 
 7174 page       -all;
 7175 
 7176 
 7177 
 7178 /*                    scmr13
 7179 
 7180 *          same as previous test but taking all of the
 7181 *          possible desc. mod.
 7182 *
 7183 */
 7184 
 7185 inst       scmr        -io 1     -nt "full desc mod 4bit"
 7186            -mc^A    /*  mc = 001 */
 7187            -mf1       idb ar reg rl 8
 7188            -mf2       idb ar reg
 7189            -mf3       ar reg;
 7190 
 7191 desc 1     -ta 4;
 7192 
 7193 data 1     237 323 070 361;
 7194 
 7195 data 2     360;
 7196 
 7197 data 3     000 000 000 001;
 7198 
 7199 page      -all;
 7200 
 7201 
 7202 
 7203 /*                    scmr14
 7204 
 7205 *          changing the mask characters and offsetting
 7206 *          the first data string across a page boundary
 7207 *          with a variety of desc. mod.
 7208 *
 7209 */
 7210 
 7211 inst       scmr        -io 3    -nt "d1 split 4bit"
 7212            -mc?
 7213            -mf1       ar
 7214            -mf2       idb
 7215            /* mf3 is direct */;
 7216 
 7217 desc 1     -ta 4      -ns 8;
 7218 
 7219 data 1     -do -2      237 323 /* page bound */ 070 361;
 7220 
 7221 data 2                              360;
 7222 
 7223 data 3     000 000 000 000;
 7224 
 7225 page       -all;
 7226 
 7227 
 7228 
 7229 /*                     scmr15
 7230 
 7231 *          again using the same data but this time splitting
 7232 *          both strings across page bound. and exercising
 7233 *          the -cn option.  all desc. mod. are taken.
 7234 *
 7235 */
 7236 
 7237 inst       scmr         -io 1     -nt " d1,d" split 4 bit"
 7238            -mc?
 7239            -mf1        idb ar reg
 7240            -mf2        idb ar reg
 7241            -mf3       ar reg;
 7242 
 7243 desc 1     -ta 4       -ns 6         -cn 1;
 7244 
 7245 desc 2     -cn 3;
 7246 
 7247 data 1     -do -2      237 323  /* page boun. */  070 361;
 7248 
 7249 data 2     -do  -3    000 000 360  /* page bound. */  000;
 7250 
 7251 data 3       000 000 000 000;
 7252 
 7253 page       -all;
 7254 
 7255 
 7256 
 7257 /*                     scmr16
 7258 
 7259 *          this time there will be no match with
 7260 *          the same parameters as test 15 with a mask of
 7261 *          777. the tr indicator will be on.
 7262 *
 7263 */
 7264 
 7265 inst       scmr         -io 2    -nt "match on first try 4 bit"
 7266          -mcÿ
 7267            -mf1        idb ar reg
 7268            -mf2        idb ar reg
 7269            -mf3       ar reg;
 7270 
 7271 desc 1     -ta 4       -ns 8        -cn 1;
 7272 
 7273 desc 2     -cn 3;
 7274 
 7275 data 1     -do -2      237 323 070 361;
 7276 
 7277 data 2     -do -3      000 000 360 000;
 7278 
 7279 data 3     000 000 000 000;
 7280 
 7281 page       -all;
 7282 
 7283 
 7284 
 7285 /*                     scmr17
 7286 
 7287 *          the next three tests use the maximum amount
 7288 *          of data for string 1.  this test uses a mask
 7289 *          of 000 but searches for a char which will not
 7290 *          match ( tr ind).  no desc. mod.
 7291 *
 7292 */
 7293 
 7294 inst       scmr     -nt "no mat d1 covers 3pp 4b"
 7295            -mc^@   /*  mc = 000 */
 7296            -ir   tr
 7297            -mf1        rl 8704
 7298            /*  all desc. are direct */;
 7299 
 7300 desc 1     -ta 4;
 7301 
 7302 data 1     -do -128    (1088) 237323070361;
 7303 
 7304 data 2     000;
 7305 
 7306 data 3     000 000 021 000;
 7307 
 7308 page       -all;
 7309 
 7310 
 7311 
 7312 /*                     scmr18
 7313 
 7314 *          this test will force a match on a middle
 7315 *          char.  all desc mods. are taken.
 7316 *
 7317 */
 7318 
 7319 inst       scmr         -io 2    -nt "d1 covers 3 pp 4bit"
 7320            -mc^A    /*  mc = 001 */
 7321            -mf1        idb ar reg rl 8704
 7322            -mf2        idb ar reg
 7323            -mf3       ar reg;
 7324 
 7325 desc 1     -ta 4;
 7326 
 7327 data 1     -do -128     (1087) 237323070361 237 323 070 000;
 7328 
 7329 data 2     000;
 7330 
 7331 data 3     000 000 000 000;
 7332 
 7333 page       -all;
 7334 
 7335 
 7336 /*                      scmr19
 7337 
 7338 *          this test puts the second string on page 0
 7339 *           and tests the -cn option.
 7340 *
 7341 */
 7342 
 7343 inst       scmr          -io 2    -nt "d1 covers 3pp 4 bit"
 7344            -mc^A    /*  mc = 001 */
 7345            -mf1         ida ar reg rl 8704
 7346            -mf2         idr ar
 7347            /* mf3 is direct */;
 7348 
 7349 desc 1     -ta 4        ;
 7350 
 7351 desc 2     -cn 3;
 7352 
 7353 data 1     -do -128     237323070000   (1087) 237323070361 ;
 7354 
 7355 data 2     -do -3       000 000 000 000;
 7356 
 7357 data 3     000 000 000 000;
 7358 
 7359 
 7360 page       -all;
 7361 
 7362 
 7363 
 7364 /*                      scmr20
 7365 
 7366 *          the following tests use 6 bit data.
 7367 *          this test merely makes sure the instruction
 7368 *          is working correctly.  direct mod on descriptors.
 7369 *
 7370 */
 7371 
 7372 inst       scmr    -nt "simple test 6 bit"
 7373            -mc
 7374            /* all desc. are direct */;
 7375 
 7376 desc 1     -ta 6        -ns 12;
 7377 
 7378 data 1     414243444546 575051525353;
 7379 
 7380 data 2     57;
 7381 
 7382 data 3     000 000 000 005;
 7383 
 7384 page       -all;
 7385 
 7386 
 7387 
 7388 
 7389 /*                     scmr21
 7390 
 7391 *          same as previous test but with first string
 7392 *          split across page bound. and a variety
 7393 *          of desc. mods taken.
 7394 *
 7395 */
 7396 
 7397 inst       scmr         -io 1    -nt "d1 split 6bit"
 7398           -mc^P   /*  mc - 020 */
 7399            -mf1        ar reg
 7400            -mf2        idb
 7401            /* mf3 is direct */;
 7402 
 7403 desc 1     -ta 6       -ns 12;
 7404 
 7405 data 1     -do -4      414243444546  /*page bound */  475051525354;
 7406 
 7407 data 2     67;
 7408 
 7409 data 3     000 000 000 005;
 7410 
 7411 page       -all;
 7412 
 7413 /*                     scmr22
 7414 
 7415 *          this is the same as test 22 except the mask
 7416 *          has been set to preclude a match (tr on)
 7417           and different desc. mods. are taken.
 7418 *
 7419 */
 7420 
 7421 inst       scmr         -io 2      -nt "no match 6bit"
 7422            -mc^G
 7423            -ir   tr
 7424            -mf1        idb ar
 7425            -mf2        ar reg
 7426            -mf3        ar reg;
 7427 
 7428 desc 1     -ta 6       -ns 12;
 7429 
 7430 data 1     -do -4      414243444546 475051525354;
 7431 
 7432 data 2     67;
 7433 
 7434 data 3    000 000 000 014;
 7435 
 7436 page       -all;
 7437 
 7438 
 7439 /*                     scmr23
 7440 
 7441 *this test exercises all the desc. mods.
 7442 *          and tests the rl and -cn options.  it also
 7443 *          changes the mask char .
 7444 *
 7445 *
 7446 */
 7447 
 7448 inst       scmr         -io 3   -nt "full desc mod 6bit"
 7449            -mc^U   /* mc = 025  */
 7450            -mf1        idb ar reg rl 12
 7451            -mf2        idb ar reg
 7452            -mf3       ar reg;
 7453 
 7454 desc 1     -ta 6;
 7455 
 7456 desc 2     -cn 3;
 7457 
 7458 data 1     -do -6      414243444546475051 525354;
 7459 
 7460 data 2     -do -4      000000720000 /* page bound. */;
 7461 
 7462 data 3     000 000 000 001;
 7463 
 7464 page       -all;
 7465 
 7466 
 7467 /*                     scmr24
 7468 
 7469 *         using the -cn option on both descriptors
 7470 *         direct mod on mf3 desc.
 7471 *
 7472 */
 7473 
 7474 inst      scmr          -io 2    -nt "d1 split 6bit"
 7475           -mc^U   /* mc = 025  */
 7476           -mf1         ar rl 5
 7477           -mf2      ar
 7478           /* mf3 is direct */;
 7479 
 7480 desc 1    -ta 6        -cn 4;
 7481 
 7482 desc 2    -cn 2;
 7483 
 7484 data 1    -do -4      000000005100  /*page bound. */  525354;
 7485 
 7486 data 2    -do -2        00007200   /* page bound.  */;
 7487 
 7488 data 3    000 000 000 001;
 7489 
 7490 page      -all;
 7491 
 7492 
 7493 /*                     scmr25
 7494 
 7495 *         this test and the next one uses the maximum amount
 7496 *         of char for string 1.  this test forces a "no match"
 7497 *         condition (ir tr on) and takes the maximum mod.
 7498 *         on the desc.
 7499 *
 7500 */
 7501 
 7502 inst      scmr          -io 3      -nt "d1 covers 3pp no mat 6bit"
 7503          -mc000
 7504           -ir  tr
 7505           -mf1         idb ar reg rl 6528
 7506           -mf2      idb ar reg
 7507           -mf3       ar reg;
 7508 
 7509 desc 1    -ta 6;
 7510 
 7511 data 1    -do -128          (1087) 515151515151 515151515153;
 7512 
 7513 data 2    52;
 7514 
 7515 data 3    000 000 014 600;
 7516 
 7517 page      -all;
 7518 
 7519 
 7520 
 7521 /*                     scmr26
 7522 
 7523 *         same as previous test but a match occurs
 7524 *         on the last char.
 7525 *
 7526 */
 7527 
 7528 inst      scmr          -io 2    -nt "d1 covers 3pp 6bit"
 7529           -mc^@   /*  mc = 000 */
 7530           -mf1         idb ar reg rl 6528
 7531           -mf2         idb ar reg
 7532           -mf3       ar reg;
 7533 
 7534 
 7535 desc 1    -ta 6;
 7536 
 7537 data 1    -do -128     515151515152   (1087) 515151515151 ;
 7538 
 7539 data 2    52;
 7540 
 7541 data 3    000 000 014 572;
 7542 
 7543 page      -all;
 7544 
 7545 
 7546 ^L
 7547 
 7548 /*                  mvn1
 7549 *
 7550 *                   a simple test to see if it works
 7551 *                   9 bit scaled leading sign to 9 bit scaled trailing sign
 7552 *
 7553 */
 7554 
 7555 inst      mvn       -nt "simple"
 7556 -io 2;
 7557 
 7558 desc1 -nn 13 -sd l;
 7559 desc2 -nn 14 -sd t;
 7560 
 7561 data 1 -do 12 "+" (12) "9";
 7562 data 2 "0" (12) "9" "+";
 7563 
 7564 page -all;
 7565 
 7566 
 7567 
 7568 
 7569 
 7570 /*                  mvn2
 7571 *                   truncation fault taken
 7572 *                   all page faults taken
 7573 *                   integer to floating
 7574 */
 7575 
 7576 inst      mvn       -nt "truncation fault"
 7577 -io 1 -tby -ir tn
 7578 -mf1 ar rl 63 idb reg
 7579 -mf2 ar rl 63 idb reg;
 7580 
 7581 desc1  -cn 1 -sd l;
 7582 desc2 -cn 1 -sd f;
 7583 
 7584 data 1 -do -63 " " "+98" (15) "7435";
 7585 data 2 000 "+" "98" (14) "7435" "743" 001;
 7586 
 7587 page -all;
 7588 
 7589 
 7590 
 7591 
 7592 
 7593 /*                  mvn3
 7594 *                   this is a good test
 7595 *                   all page faults taken
 7596 *                   legal floating word developed
 7597 *                    9 bit scaled to 9 bit float
 7598 *
 7599 */
 7600 
 7601 inst      mvn       -nt "int -> float"
 7602 -io 1
 7603 
 7604 -mf1 ar rl 23 idb reg
 7605 -mf2 ar rl 28 idb reg;
 7606 
 7607 desc1 -sf 13 -sd l -cn 3;
 7608 desc2 -sd f -cn 2;
 7609 
 7610 data 1 -do 25 "   " "+" (5) "00" (12) "1";
 7611 data 2 000000 "+" (4) "000"  "00" (12) "1" 015;
 7612 
 7613 page -all;
 7614 
 7615 
 7616 
 7617 
 7618 
 7619 /*                  mvn4
 7620 *                   all page faults taken
 7621 *                   float to integer scale factor 12
 7622 *                   9 bit to 9 bit
 7623 *
 7624 */
 7625 
 7626 inst      mvn       -nt "float to int"
 7627 -io 1 -ir ng
 7628 -mf1 ar rl 28 idb reg
 7629 -mf2 ar rl 23 idb reg;
 7630 
 7631 desc1 -sd f -cn 2;
 7632 desc2 -sf 12 -sd l -cn 3;
 7633 
 7634 data 1 -do 27 "  -" (14) "0" (12) "1" 015;
 7635 data 2 000000000 "-" (9) "0" (12) "1" "0";
 7636 
 7637 page -all;
 7638 
 7639 
 7640 
 7641 
 7642 
 7643 /*                  mvn5
 7644 *                   9 bit scaled to floating 9 bit
 7645 *
 7646 */
 7647 
 7648 inst      mvn       -nt "scaled to floating"
 7649 -io 1 -rb
 7650 -mf1 ar rl 63 idb reg
 7651 -mf2 ar rl 3 idb reg;
 7652 
 7653 desc1 -sd n -sf 31;
 7654 desc2 -sd f;
 7655 
 7656 data 1 -do 62 "1" (62) "0";
 7657 data 2 "+" "1" 135;
 7658 
 7659 page -all;
 7660 
 7661 
 7662 
 7663 
 7664 
 7665 /*                  mvn6
 7666 *                   convert float 4 bit to
 7667 *                   floating 9 bit
 7668 *
 7669 */
 7670 
 7671 inst      mvn       -nt "float 9 -> float 4"
 7672 -io 2
 7673 -mf1 ar rl 3 idb reg
 7674 -mf2 ar rl 4 idb;
 7675 
 7676 desc1 -sd f;
 7677 desc2 -sd f -tn 4;
 7678 
 7679 data 1 -do -3 "+1" 135;
 7680 data 2  301135;
 7681 
 7682 page -all;
 7683 
 7684 
 7685 
 7686 
 7687 
 7688 /*                  mvn7
 7689 *                   9 bit scaled to 4 bit floating
 7690 *                    all page faults taken
 7691 *
 7692 */
 7693 inst      mvn       -nt "9 scaled to 4 float"
 7694 -io 3 -ir ng
 7695 -mf1 ar rl 25 ida reg
 7696 -mf2 ar rl 23 idb;
 7697 
 7698 desc1 -sd t ;
 7699 desc2 -sd f -cn 3 -tn 4;
 7700 
 7701 data 1 -do -1  (20) "0" (4) "3" "-";
 7702 data 2 (3) 000 320 (7) 000 003 063 0600;
 7703 
 7704 page -all;
 7705 
 7706 
 7707 
 7708 
 7709 
 7710 /*                  mvn8
 7711 *                   convert 9bit floating point to 4 bit scaled
 7712 *
 7713 */
 7714 inst      mvn       -nt "9bit float to 4bit scaled"
 7715 -io 2
 7716 -mf1 ar rl 22 idb reg
 7717 -mf2 ar rl 33 ida;
 7718 
 7719 desc1 -sd f;
 7720 desc2 -sd t -sf 5 -tn 4;
 7721 
 7722 data 1 -do -8 "+" (11) "0" (3) "123" 006;
 7723 data 2 (11) 000 022 061043022060 300;
 7724 
 7725 page -all;
 7726 
 7727 
 7728 
 7729 
 7730 
 7731 /*                  mvn9
 7732 *                    convert 9 bit floating to 4 bit scaled
 7733 *
 7734 */
 7735 inst      mvn       -nt "9bitfloat to 4 bit scaled"
 7736 -io 1
 7737 -mf1 ar rl 20 idb reg
 7738 -mf2 ar rl 63 ida;
 7739 
 7740 desc1 -sd f -cn 2;
 7741 desc2 -sd l -tn 4 -cn 1;
 7742 
 7743 data 1 "  +" (9) "0" (4) "45" 060000;
 7744 data 2 000300 (26) 000 105105105105 (8) 000;
 7745 
 7746 page -all;
 7747 
 7748 
 7749 
 7750 
 7751 /*                  mvn10
 7752 *                   9 bit scaled trailing sign to
 7753 *                   9 bit scaled leading sign
 7754 */
 7755 inst      mvn       -nt "simple"
 7756 -io 1;
 7757 desc1 -nn 14 -sd t;
 7758 desc2 -nn 13 -sd l;
 7759 
 7760 data 1 -do 12 "0" (12) "9" "+";
 7761 data 2 "+" (12) "9";
 7762 
 7763 page -all;
 7764 
 7765 
 7766 
 7767 
 7768 /*                   mvn11
 7769 *                   9 bit float to 9 bit scaled leading sign
 7770 */
 7771 
 7772 inst      mvn       -nt "float to int"
 7773 -io 1
 7774 -mf1 ar rl 63 idb reg
 7775 -mf2 ar rl 63 idb reg;
 7776 
 7777 desc1 -cn 1 -sd f;
 7778 desc2 -cn 1 -sd l;
 7779 
 7780 data 1 -do -63 " " "+98" (14) "7435" "743" 001;
 7781 data 2 000 "+98" (14) "7435" "7430";
 7782 
 7783 page -all;
 7784 
 7785 
 7786 
 7787 
 7788 /*                  mvn12
 7789 *                    9 bit float to 9 bit scaled negative indicator
 7790 */
 7791 
 7792 inst      mvn       -nt "float -> int"
 7793 -io 2
 7794 -mf1 ar rl 28 idb reg
 7795 -mf2 ar rl 23 idb reg;
 7796 
 7797 desc1 -sd f -cn 2;
 7798 desc2 -sf 13 -sd l -cn 3;
 7799 
 7800 data 1 -do 29 "  +" (4) "000" "00" (12) "1" 015;
 7801 data 2 000000000 "+" (5) "00" (12) "1";
 7802 
 7803 page -all;
 7804 
 7805 
 7806 
 7807 
 7808 /*                  mvn13
 7809 *                    9 bit scaled to 9 bit float
 7810 *                    negative indicator on
 7811 */
 7812 
 7813 inst      mvn       -nt "int to float"
 7814 -io 2 -ir ng
 7815 -mf1 ar rl 23 idb reg
 7816 -mf2 ar rl 28 idb reg;
 7817 
 7818 desc1 -sf 12 -sd l -cn 3;
 7819 desc2 -sd f -cn 2;
 7820 
 7821 data 1 -do 25 "   -" (9) "0" (12) "1" "0";
 7822 data 2 000000 "-" (13) "0" (12) "1"  "0" 014;
 7823 
 7824 page -all;
 7825 
 7826 
 7827 
 7828 
 7829 /*                  mvn14
 7830 *                   9 bit float to 9 bit scaled
 7831 *
 7832 */
 7833 
 7834 inst      mvn       -nt "float to scaled"
 7835 -io 2 -rb
 7836 -mf1 ar rl 3 idb reg
 7837 -mf2 ar rl 63 idb reg;
 7838 
 7839 desc1 -sd f;
 7840 desc2 -sd n -sf 31;
 7841 
 7842 data 1 "+1" 135;
 7843 data 2 "1" (62) "0";
 7844 
 7845 page -all;
 7846 
 7847 
 7848 
 7849 
 7850 /*                  mvn15
 7851 *                   4 bit float to 9 bit float
 7852 *
 7853 */
 7854 
 7855 inst      mvn       -nt "float 4 -> float 9"
 7856 -io 1
 7857 -mf1 ar rl 4 idb
 7858 -mf2 ar rl 3 idb reg;
 7859 
 7860 desc1 -sd f -tn 4;
 7861 desc2 -sd f;
 7862 
 7863 data 1 -do 3 301135;
 7864 data 2 "+1" 135;
 7865 
 7866 page -all;
 7867 
 7868 
 7869 
 7870 
 7871 /*                  mvn16
 7872 *                   4 bit floating to 9 bit scaled
 7873 *                   truncation and negative indicators on
 7874 *
 7875 */
 7876 
 7877 inst      mvn       -nt "4 float to 9 scaled"
 7878 -io 1 -ir ng tn
 7879 -mf1 ar rl 23 idb
 7880 -mf2 ar rl 25 ida reg;
 7881 
 7882 desc1 -sd f -cn 3 -tn 4;
 7883 desc2 -sd t -sf 2;
 7884 
 7885 data 1 -do 1 "   " 320 (7) 000 003 063060000;
 7886 data 2 (22) "0" (2) "3" "-";
 7887 
 7888 page -all;
 7889 
 7890 
 7891 
 7892 
 7893 /*                  mvn17
 7894 *                   4 bit scaled to 9 bit floating
 7895 *
 7896 */
 7897 
 7898 inst      mvn       -nt "4bit scaled to 9 bit float"
 7899 -io 3
 7900 -mf1 ar rl 33 ida
 7901 -mf2 ar rl 22 idb reg;
 7902 
 7903 desc1 -sd t -sf 5 -tn 4;
 7904 desc2 -sd f;
 7905 
 7906 data 1 (11) 000 022 061043022060 300;
 7907 data 2 "+" (10) "0" (3) "123" "0" 005;
 7908 
 7909 page -all;
 7910 
 7911 
 7912 
 7913 
 7914 /*                  mvn18
 7915 *                   4 bit scaled to 9 bit floating
 7916 :
 7917 */
 7918 inst      mvn       -nt "4bit scaled to 9 bit float"
 7919 -io 2
 7920 -mf1 ar rl 63 ida
 7921 -mf2 ar rl 20 idb reg;
 7922 
 7923 desc1 -sd l -tn 4 -cn 1;
 7924 desc2 -sd f -cn 2;
 7925 
 7926 data 1 " " 300 (26) 000 (4) 105 (8) 000;
 7927 data 2 000000 "+" (9) "0" (4) "45" "0" 000;
 7928 
 7929 page -all;
 7930 
 7931 
 7932 
 7933 
 7934 /*                  mvn19
 7935 *                   9 bit scaled to 4 bit floating
 7936 *
 7937 */
 7938 
 7939 inst      mvn        -nt "9 bit to 4 bit float"
 7940 -io 3
 7941 -mf1 ar rl 10 ida reg
 7942 -mf2 ar rl 10 ;
 7943 
 7944 desc1 -sd l -cn 1;
 7945 desc2 -sd f -tn 4;
 7946 
 7947 data 1 " +" (5) "0" (4) "1";
 7948 data 2 300 000 021 021 000;
 7949 
 7950 page -all;
 7951 
 7952 
 7953 
 7954 
 7955 /*                  mvn20
 7956 *                   9 bit scaled to 4 bit floating
 7957 *
 7958 */
 7959 
 7960 inst      mvn       -nt "9bit to 4 bit float"
 7961 -mf1 ar rl 10 idb reg
 7962 -mf2 ar rl 10;
 7963 
 7964 desc1 -sd t -cn 2;
 7965 desc2 -sd f-tn 4;
 7966 
 7967 data 1 "  " (5) "0" (4) "2" "+";
 7968 data 2 300 000 042 042 000;
 7969 
 7970 page -all;
 7971 
 7972 
 7973 
 7974 
 7975 /*                  mvn21
 7976 *
 7977 *         Move  +12.34  into  12.3400+.  Length of string 2 will be too short to handle
 7978 *         increased scaling factor so there will be significant digit overflow.
 7979 */
 7980 
 7981 inst      mvn       -nt "Sig digit overflow"  -io 1
 7982           -ir       ov
 7983           -mf1      ar  rl 5
 7984           -mf2      idr;
 7985 
 7986 
 7987 desc 1    -cn 2     -sd l     -sf -2;
 7988 
 7989 desc 2    -sd t     -sf -3    -nn 5;
 7990 
 7991 
 7992 data 1    -do -5
 7993           000 000             /* Fill for  cn.  */
 7994           053 "12"            /* Page 1. */
 7995           "34";               /* Page 2. */
 7996 
 7997 data 2    -do -4
 7998           "2340"  053;
 7999 
 8000 
 8001 page      -all;
 8002 
 8003 
 8004 
 8005 
 8006 /*                  mvn22
 8007 *
 8008 *         Move  float dec(59) = +1e+58  into  fixed dec(59,0) to
 8009 *         ensure all digits are moved with no overflow or truncation indicator.
 8010 */
 8011 
 8012 inst      mvn       -nt "float 1e+58  to  leading sign - no overflow"
 8013           -io 1
 8014           -mf1      ar id
 8015           -mf2      ar rl 60;
 8016 
 8017 
 8018 desc 1    -sd f     -nn 61;   /* float dec(59)    */
 8019 
 8020 desc 2    -sd l     -sf 0;    /* fixed dec(59,0)  */
 8021 
 8022 
 8023 data 1    "+" (58) "0" "1"    /* +00...01 */
 8024           072                 /* e+58     */
 8025           -do -5;
 8026 
 8027 data 2    "+1" (58) "0"       /* +100...0 */
 8028           -do -4;
 8029 
 8030 
 8031 page      -all;
 8032 
 8033 
 8034 
 8035 /*                  mvn23
 8036 *
 8037 *         Move  float dec(59) = +1e+59  into  fixed dec(59,0) to
 8038 *         ensure all digits are moved; expect overflow indicator.
 8039 */
 8040 
 8041 inst      mvn       -nt "float  1e+59  to  leading sign - overflow expected"
 8042           -ir       zr ov om  /* expect zero & overflow; overflow fault masked */
 8043           -io 1
 8044           -mf1      ar id
 8045           -mf2      ar rl 60;
 8046 
 8047 
 8048 desc 1    -sd f     -nn 61;   /* float dec(59)    */
 8049 
 8050 desc 2    -sd l     -sf 0;    /* fixed dec(59,0)  */
 8051 
 8052 
 8053 data 1    "+" (58) "0" "1"    /* +00...01 */
 8054           073                 /* e+59     */
 8055           -do -5;
 8056 
 8057 data 2    "+" (59) "0"        /* +000...0  because overflow occurs */
 8058           -do -4;
 8059 
 8060 
 8061 page      -all;
 8062 
 8063 
 8064 
 8065 /*                  mvn24
 8066 *
 8067 *         Move  float dec(59) = +1e+64  into  fixed dec(59,0) to
 8068 *         ensure all digits are moved; expect overflow indicator.
 8069 */
 8070 
 8071 inst      mvn       -nt "float  1e+64  to  leading sign - overflow expected"
 8072           -ir       zr ov om  /* expect zero & overflow; overflow fault masked */
 8073           -io 1
 8074           -mf1      ar id
 8075           -mf2      ar rl 60;
 8076 
 8077 
 8078 desc 1    -sd f     -nn 61;   /* float dec(59)    */
 8079 
 8080 desc 2    -sd l     -sf 0;    /* fixed dec(59,0)  */
 8081 
 8082 
 8083 data 1    "+" (58) "0" "1"    /* +00...01 */
 8084           100                 /* e+64     */
 8085           -do -5;
 8086 
 8087 data 2    "+" (59) "0"        /* +000...0  because overflow occurs */
 8088           -do -4;
 8089 
 8090 
 8091 page      -all;
 8092 
 8093 
 8094 
 8095 /*                  mvn25
 8096 *
 8097 *         Move  float dec(59) = +1e+65  into  fixed dec(59,0) to
 8098 *         ensure all digits are moved; expect overflow indicator.
 8099 *         Before MVN_overflow fix, this does not set overflow indicator.
 8100 */
 8101 
 8102 inst      mvn       -nt "float  1e+65  to  leading sign - overflow expected"
 8103           -ir       zr ov om  /* expect zero & overflow; overflow fault masked */
 8104           -io 1
 8105           -mf1      ar id
 8106           -mf2      ar rl 60;
 8107 
 8108 
 8109 desc 1    -sd f     -nn 61;   /* float dec(59)    */
 8110 
 8111 desc 2    -sd l     -sf 0;    /* fixed dec(59,0)  */
 8112 
 8113 
 8114 data 1    "+" (58) "0" "1"    /* +00...01 */
 8115           101                 /* e+65     */
 8116           -do -5;
 8117 
 8118 data 2    "+" (59) "0"        /* +000...0  because overflow occurs */
 8119           -do -4;
 8120 
 8121 
 8122 page      -all;
 8123 
 8124 
 8125 
 8126 /*                  mvn26
 8127 *
 8128 *         Move  float dec(59) = +1e+127  into  fixed dec(59,0) to
 8129 *         ensure all digits are moved; expect overflow indicator.
 8130 *         Before MVN_overflow fix, this does not set overflow indicator.
 8131 */
 8132 
 8133 inst      mvn       -nt "float  1e+127  to  leading sign - overflow expected"
 8134           -ir       zr ov om  /* expect zero & overflow; overflow fault masked */
 8135           -io 1
 8136           -mf1      ar id
 8137           -mf2      ar rl 60;
 8138 
 8139 
 8140 desc 1    -sd f     -nn 61;   /* float dec(59)    */
 8141 
 8142 desc 2    -sd l     -sf 0;    /* fixed dec(59,0)  */
 8143 
 8144 
 8145 data 1    "+" (58) "0" "1"    /* +00...01 */
 8146           177                 /* e+127    */
 8147           -do -5;
 8148 
 8149 data 2    "+" (59) "0"        /* +000...0  because overflow occurs */
 8150           -do -4;
 8151 
 8152 
 8153 page      -all;
 8154 
 8155 
 8156 ^L
 8157 
 8158 /*                           CMPN
 8159 *
 8160 *     The CMPN instruction algebtaically compares two numbers and sets the
 8161 * zero, negative, and carry indicators to indicate the results of the
 8162 * comparison.  The five possible settings of the indicators and the inputs
 8163 * which cause the settings are shown below:
 8164 *
 8165 * ZR NG CR        INPUTS          INPUT
 8166 *                              COMBINATION
 8167 *                                NUMBER
 8168 *
 8169 
 8170 *  0 0 1     neg,pos,[N1]<[N2]     1
 8171 *  0 0 1     pos,pos,[N1]<[N2]     2
 8172 *  1 0 1     neg,neg,[N1]=[N2]     3
 8173 *  1 0 1     pos,pos,[N1]=[N2]     4
 8174 *  0 1 1     neg,neg,[N1]<[N2]     5
 8175 *  0 1 1     pos,neg,[N1]<[N2]     6
 8176 *  0 1 0     pos,neg,[N1]>[N2]     7
 8177 *  0 1 0     pos,pos,[N1]>[N2]     8
 8178 *  0 0 0     neg,neg,[N1]>[N2]     9
 8179 *  0 0 0     neg,pos,[N1]>[N2]    10
 8180 *
 8181 *
 8182 * where neg,neg,[N1]<[N2] means that the 1st operand is negative,
 8183 * the second operand is negative, and the absolute value of the ist
 8184 * operand is less than the absolute value of the 2nd.
 8185 *
 8186 *
 8187 *     Each of the even numbered input combinations is tested with:
 8188 *
 8189 *  1).  both of the numbers 9-bit decimal and floating point,
 8190 *  2).  both of the numbers 9-bit decimal with leading sign,
 8191 *  3)   both of the numbers 9-bit decimal with trailing sign,
 8192 *  4).  where possible, both of the numbers 9-bit decimal and unsigned.
 8193 *
 8194 *
 8195 *     Each of the odd numbered input combinations is tested with:
 8196 *
 8197 *  1).  both of the numbers 4-bit decimal and floating point,
 8198 *  2).  both of the numbers 4-bit decimal with leading sign,
 8199 *  3).  both of the numbers 4-bit decimal with trailing sign,
 8200 *  4).  where possible, both of the numbers 4-bit decimal and unsigned.
 8201 *
 8202 *
 8203 */
 8204 
 8205 
 8206 
 8207 
 8208 
 8209 /*     cmpn1
 8210 *  The carry indicator is set.
 8211 *  Two 4-bit trailing sign operands are used.
 8212 *  The maximum number of page faults is taken.
 8213 *  Indirect descriptors are used for all operands.
 8214 *  Address register modification is used for all operands.  */
 8215 
 8216 inst cmpn
 8217 -nt "Compare 4-bit neg with 4-bit pos"
 8218 -ir cr
 8219 -mf1 idb ar
 8220 -mf2 idb ar rl 5
 8221 -io 2;
 8222 
 8223 desc 1 -tn 4 -sd t -nn 5;
 8224 desc 2 -tn 4 -sd t;
 8225 
 8226 data 1 -do -2 "76" 32;
 8227 data 2 -do -2 "98" 26;
 8228 
 8229 page -all;
 8230 
 8231 
 8232 /*     cmpn2
 8233 *  The carry indicator is set.
 8234 *  Two 4-bit leading sign operands are used.
 8235 *  The maximum number of page faults is taken.
 8236 *  Indirect descriptors are used for all operands.
 8237 *  Address register modification is used for all operands.  */
 8238 
 8239 inst cmpn
 8240 -nt "Compare 4-bit neg with 4-bit pos"
 8241 -ir cr
 8242 -mf1 idb ar rl 13
 8243 -mf2 idb ar
 8244 -io 1;
 8245 
 8246 desc 1 -tn 4 -sd l -sf -1;
 8247 desc 2 -tn 4 -sd l -sf -2 -nn 16;
 8248 
 8249 data 1 -do -2 325 "98642" 00;
 8250 data 2 -do -3 262 "3278411";
 8251 
 8252 page -all;
 8253 
 8254 
 8255 /*     cmpn3
 8256 *  The carry indicator is set.
 8257 *  Two 4-bit floating point operands are used.
 8258 *  The maximum number of page faults is taken.
 8259 *  Indirect descriptors are used for all operands.
 8260 *  Address register modification is used for all operands.  */
 8261 
 8262 inst cmpn
 8263 -nt "Compare 4-bit neg with 4-bit pos"
 8264 -ir cr
 8265 -mf1 idb ar
 8266 -mf2 idb ar
 8267 -io 2;
 8268 
 8269 desc 1 -tn 4 -sd f -nn 12;
 8270 desc 2 -tn 4 -sd f -nn 12;
 8271 
 8272 data 1 -do -2 323 "98762";
 8273 data 2 -do -1 264 "32943";
 8274 
 8275 page -all;
 8276 
 8277 
 8278 /*     cmpn4
 8279 *  The carry indicator is set.
 8280 *  Two 9-bit unsigned operands are used.
 8281 *  The maximum number of page faults is taken.
 8282 *  Indirect descriptors are used for all operands.
 8283 *  Address register modification is used for all operands.  */
 8284 
 8285 inst cmpn
 8286 -nt "Compare 9-bit pos with 9-bit pos"
 8287 -ir cr
 8288 -mf1 idb ar reg
 8289 -mf2 idb ar reg
 8290 -io 1;
 8291 
 8292 desc 1 -sd n -sf 4 -nn 63;
 8293 desc 2 -sd n -sf 5 -nn 63;
 8294 
 8295 data 1 -do -1 (15)"9834" "395";
 8296 data 2 -do -62 (15)"8765" "147";
 8297 
 8298 page -all;
 8299 
 8300 
 8301 /*     cmpn5
 8302 *  The carry indicator is set.
 8303 *  Two 9-bit trailing sign operands are used.
 8304 *  The maximum number of page faults is taken.
 8305 *  Indirect descriptors are used for all operands.
 8306 *  Address register modification is used for all operands.  */
 8307 
 8308 inst cmpn
 8309 -nt "Compare 9-bit pos with 9-bit pos"
 8310 -ir cr
 8311 -mf1 idb ar reg
 8312 -mf2 idb ar reg
 8313 -io 3;
 8314 
 8315 desc 1 -sd t -sf -2 -nn 14;
 8316 desc 2 -sd t -sf 12 -nn 14;
 8317 
 8318 data 1 -do -13 (4)"298" "3" 053;
 8319 data 2 -do -13 (4)"687" "2" 053;
 8320 
 8321 page -all;
 8322 
 8323 
 8324 /*     cmpn6
 8325 *  The carry indicator is set.
 8326 *  Two 9-bit leading sign operands are used.
 8327 *  The maximum number of page faults is taken.
 8328 *  Indirect descriptors are used for all operands.
 8329 *  Address register modification is used for all operands.  */
 8330 
 8331 inst cmpn
 8332 -nt "Compare 9-bit pos with 9-bit pos"
 8333 -ir cr
 8334 -mf1 idb ar reg
 8335 -mf2 idb ar reg
 8336 -io 2;
 8337 
 8338 desc 1 -sd l -sf 2 -nn 12;
 8339 desc 2 -sd l -sf 3 -nn 12;
 8340 
 8341 data 1 -do -4 053 (11)"3";
 8342 data 2 -do -4 053 (11)"2";
 8343 
 8344 page -all;
 8345 
 8346 
 8347 /*     cmpn7
 8348 *  The carry indicator is set.
 8349 *  Two 9-bit floating point operands are used.
 8350 *  The maximum number of page faults is taken.
 8351 *  Indirect descriptors are used for all operands.
 8352 *  Address register modification is used for all operands.  */
 8353 
 8354 inst cmpn
 8355 -nt "Compare 9-bit pos with 9-bit pos"
 8356 -ir cr
 8357 -mf1 idb ar reg rl 9
 8358 -mf2 idb ar reg
 8359 -io 1;
 8360 
 8361 desc 1 -sd f;
 8362 desc 2 -sd f -nn 8;
 8363 
 8364 data 1 -do -8 053 "7654321" 377;
 8365 data 2 -do -1 053 "987654" 002;
 8366 
 8367 page -all;
 8368 
 8369 
 8370 /*     cmpn8
 8371 *  The zero indicator is set.
 8372 *  The carry indicator is set.
 8373 *  Two 4-bit trailing sign operands are used.
 8374 *  The maximum number of page faults is taken.
 8375 *  Indirect descriptors are used for all operands.
 8376 *  Address register modification is used for all operands.  */
 8377 
 8378 inst cmpn
 8379 -nt "Compare 4-bit neg with 4-bit neg"
 8380 -ir zr cr
 8381 -mf1 idb ar
 8382 -mf2 idb ar rl 4
 8383 -io 2;
 8384 
 8385 desc 1 -tn 4 -sd t -nn 4;
 8386 desc 2 -tn 4 -sd t;
 8387 
 8388 data 1 -do -1 "7" 035;
 8389 data 2 -do -1 "7" 035;
 8390 
 8391 page -all;
 8392 
 8393 
 8394 /*     cmpn9
 8395 *  The zero indicator is set.
 8396 *  The carry indicator is set.
 8397 *  Two 4-bit leading sign operands are used.
 8398 *  The maximum number of page faults is taken.
 8399 *  Indirect descriptors are used for all operands.
 8400 *  Address register modification is used for all operands.  */
 8401 
 8402 inst cmpn
 8403 -nt "Compare 4-bit neg with 4-bit neg"
 8404 -ir zr cr
 8405 -mf1 idb ar rl 63
 8406 -mf2 idb ar rl 63
 8407 -io 1;
 8408 
 8409 desc 1 -tn 4 -sd l -sf 3;
 8410 desc 2 -tn 4 -sd l -sf 3;
 8411 
 8412 data 1 -do -31 32 (31)"5";
 8413 data 2 -do -1  32 (31)"5";
 8414 
 8415 page -all;
 8416 
 8417 
 8418 /*     cmpn10
 8419 *  The zero indicator is set.
 8420 *  The carry indicator is set.
 8421 *  Two 4-bit floating point operands are used.
 8422 *  The maximum number of page faults is taken.
 8423 *  Indirect descriptors are used for all operands.
 8424 *  Address register modification is used for all operands.  */
 8425 
 8426 inst cmpn
 8427 -nt "Compare 4-bit neg with 4-bit neg"
 8428 -ir zr cr
 8429 -mf1 idb ar
 8430 -mf2 idb ar
 8431 -io 2;
 8432 
 8433 desc 1 -tn 4 -sd f -nn 8;
 8434 desc 2 -tn 4 -sd f -nn 8;
 8435 
 8436 data 1 -do -1 325 "495";
 8437 data 2 -do -2 325 "495";
 8438 
 8439 page -all;
 8440 
 8441 
 8442 /*     cmpn11
 8443 *  The zero indicator is set.
 8444 *  The carry indicator is set.
 8445 *  Two 9-bit unsigned operands are used.
 8446 *  The maximum number of page faults is taken.
 8447 *  Indirect descriptors are used for all operands.
 8448 *  Address register modification is used for all operands.  */
 8449 
 8450 inst cmpn
 8451 -nt "Compare 9-bit pos with 9-bit pos"
 8452 -ir zr cr
 8453 -mf1 idb ar reg rl 3
 8454 -mf2 idb ar reg
 8455 -io 1;
 8456 
 8457 desc 1 -sd n -sf 1;
 8458 desc 2 -sd n -sf 1 -nn 3;
 8459 
 8460 data 1 -do -2 "432";
 8461 data 2 -do -1 "432";
 8462 
 8463 page -all;
 8464 
 8465 
 8466 /*     cmpn12
 8467 *  The zero indicator is set.
 8468 *  The carry indicator is set.
 8469 *  Two 9-bit trailing sign operands are used.
 8470 *  The maximum number of page faults is taken.
 8471 *  Indirect descriptors are used for all operands.
 8472 *  Address register modification is used for all operands.  */
 8473 
 8474 inst cmpn
 8475 -nt "Compare 9-bit pos with 9-bit pos"
 8476 -ir zr cr
 8477 -mf1 idb ar reg rl 63
 8478 -mf2 idb ar reg rl 63
 8479 -io 2;
 8480 
 8481 desc 1 -sd t;
 8482 desc 2 -sd t;
 8483 
 8484 data 1 -do -62 (12)"98765" "28" 053;
 8485 data 2 -do -61 (12)"98765" "28" 053;
 8486 
 8487 page -all;
 8488 
 8489 
 8490 
 8491 /*     cmpn13
 8492 *  The zero indicator is set.
 8493 *  The carry indicator is set.
 8494 *  Two 9-bit leading sign operands are used.
 8495 *  The maximum number of page faults is taken.
 8496 *  Indirect descriptors are used for all operands.
 8497 *  Address register modification is used for all operands.  */
 8498 
 8499 inst cmpn
 8500 -nt "Compare 9-bit pos with 9-bit pos"
 8501 -ir zr cr
 8502 -mf1 idb ar reg
 8503 -mf2 idb ar reg
 8504 -io 2;
 8505 
 8506 desc 1 -sd l -sf -8 -nn 18;
 8507 desc 2 -sd l -sf -8 -nn 18;
 8508 
 8509 data 1 -do -16 053 (5)"369" "00";
 8510 data 2 -do -15 053 (5)"369" "00";
 8511 
 8512 page -all;
 8513 
 8514 
 8515 
 8516 /*     cmpn14
 8517 *  The zero indicator is set.
 8518 *  The carry indicator is set.
 8519 *  Two 9-bit floating point operands are used.
 8520 *  The maximum number of page faults is taken.
 8521 *  Indirect descriptors are used for all operands.
 8522 *  Address register modification is used for all operands.  */
 8523 
 8524 inst cmpn
 8525 -nt "Compare 9-bit pos with 9-bit pos"
 8526 -ir zr cr
 8527 -mf1 idb ar reg
 8528 -mf2 idb ar reg
 8529 -io 1;
 8530 
 8531 desc 1 -sd f -nn 39;
 8532 desc 2 -sd f -nn 39;
 8533 
 8534 data 1 -do -30 053 (6)"125897" "4" 017;
 8535 data 2 -do -24 053 (6)"125897" "4" 017;
 8536 
 8537 page -all;
 8538 
 8539 
 8540 /*     cmpn15
 8541 *  The negative indicator is set.
 8542 *  The carry indicator is set.
 8543 *  Two 4-bit trailing sign operands are used.
 8544 *  The maximum number of page faults is taken.
 8545 *  Indirect descriptors are used for all operands.
 8546 *  Address register modification is used for all operands.  */
 8547 
 8548 inst cmpn
 8549 -nt "Compare 4-bit neg with 4-bit neg"
 8550 -ir ng cr
 8551 -mf1 idb ar
 8552 -mf2 idb ar
 8553 -io 3;
 8554 
 8555 desc 1 -tn 4 -sd t -sf -1 -nn 13;
 8556 desc 2 -tn 4 -sd t -sf 1  -nn 63;
 8557 
 8558 data 1 -do -1  "123456" 32;
 8559 data 2 -do -30 (15)"12" "9" 32;
 8560 
 8561 page -all;
 8562 
 8563 
 8564 /*     cmpn16
 8565 *  The negative indicator is set.
 8566 *  The carry indicator is set.
 8567 *  Two 4-bit leading sign operands are used.
 8568 *  The maximum number of page faults is taken.
 8569 *  Indirect descriptors are used for all operands.
 8570 *  Address register modification is used for all operands.  */
 8571 
 8572 inst cmpn
 8573 -nt "Compare 4-bit neg with 4-bit neg"
 8574 -ir ng cr
 8575 -mf1 idb ar
 8576 -mf2 idb ar
 8577 -io 2;
 8578 
 8579 desc 1 -tn 4 -sd l -sf 1 -nn 6;
 8580 desc 2 -tn 4 -sd l -sf 2 -nn 6;
 8581 
 8582 data 1 -do -2 321 "44";
 8583 data 2 -do -2 321 "44";
 8584 
 8585 page -all;
 8586 
 8587 
 8588 /*     cmpn17
 8589 *  The negative indicator is set.
 8590 *  The carry indicator is set.
 8591 *  Two 4-bit floating point operands are used.
 8592 *  The maximum number of page faults is taken.
 8593 *  Indirect descriptors are used for all operands.
 8594 *  Address register modification is used for all operands.  */
 8595 
 8596 inst cmpn
 8597 -nt "Compare 4-bit neg with 4-bit neg"
 8598 -ir ng cr
 8599 -mf1 idb ar
 8600 -mf2 idb ar
 8601 -io 2;
 8602 
 8603 desc 1 -tn 4 -sd f -nn 5;
 8604 desc 2 -tn 4 -sd f -nn 5;
 8605 
 8606 data 1 -do -1 324 "5" 00;
 8607 data 2 -do -1 327 "6" 00;
 8608 
 8609 page -all;
 8610 
 8611 
 8612 /*     cmpn18
 8613 *  The negative indicator is set.
 8614 *  The carry indicator is set.
 8615 *  Two 9-bit trailing sign operands are used.
 8616 *  The maximum number of page faults is taken.
 8617 *  Indirect descriptors are used for all operands.
 8618 *  Address register modification is used for all operands.  */
 8619 
 8620 inst cmpn
 8621 -nt "Compare 9-bit pos with 9-bit neg"
 8622 -ir ng cr
 8623 -mf1 idb ar reg
 8624 -mf2 idb ar reg
 8625 -io 1;
 8626 
 8627 desc 1 -sd t -nn 8;
 8628 desc 2 -sd t -nn 9;
 8629 
 8630 data 1 -do -4 "4567821" 053;
 8631 data 2 -do -8 "92814372" 055;
 8632 
 8633 page -all;
 8634 
 8635 
 8636 /*     cmpn19
 8637 *  The negative indicator is set.
 8638 *  The carry indicator is set.
 8639 *  Two 9-bit leading sign operands are used.
 8640 *  The maximum number of page faults is taken.
 8641 *  Indirect descriptors are used for all operands.
 8642 *  Address register modification is used for all operands.  */
 8643 
 8644 inst cmpn
 8645 -nt "Compare 9-bit pos with 9-bit neg"
 8646 -ir ng cr
 8647 -mf1 idb ar reg
 8648 -mf2 idb ar reg
 8649 -io 2;
 8650 
 8651 desc 1 -sd l -sf -5 -nn 63;
 8652 desc 2 -sd l -sf -4 -nn 63;
 8653 
 8654 data 1 -do -60 053 "92" (15)"6391";
 8655 data 2 -do -4  055 "82" (15)"7482";
 8656 
 8657 page -all;
 8658 
 8659 
 8660 
 8661 /*     cmpn20
 8662 *  The negative indicator is set.
 8663 *  The carry indicator is set.
 8664 *  Two 9-bit floating point operands are used.
 8665 *  The maximum number of page faults is taken.
 8666 *  Indirect descriptors are used for all operands.
 8667 *  Address register modification is used for all operands.  */
 8668 
 8669 inst cmpn
 8670 -nt "Compare 9-bit pos with 9-bit neg"
 8671 -ir ng cr
 8672 -mf1 idb ar reg
 8673 -mf2 idb ar reg
 8674 -io3;
 8675 
 8676 desc 1 -sd f -nn 11;
 8677 desc 2 -sd f -nn 11;
 8678 
 8679 data 1 -do -10 053  "345678901" 001;
 8680 data 2 -do -1  055  "456789012" 002;
 8681 
 8682 page -all;
 8683 
 8684 
 8685 
 8686 /*     cmpn21
 8687 *  The negative indicator is set.
 8688 *  Two 4-bit trailing sign operands are used.
 8689 *  The maximum number of page faults is taken.
 8690 *  Indirect descriptors are used for all operands.
 8691 *  Address register modification is used for all operands.  */
 8692 
 8693 inst cmpn
 8694 -nt "Compare 4-bit pos with 4-bit neg"
 8695 -ir ng
 8696 -mf1 idb ar
 8697 -mf2 idb ar
 8698 -io 1;
 8699 
 8700 desc 1 -tn 4 -sd t -nn 3;
 8701 desc 2 -tn 4 -sd t -nn 3;
 8702 
 8703 data 1 -do -1 "4" 26;
 8704 data 2 -do -1 "3" 32;
 8705 
 8706 page -all;
 8707 
 8708 
 8709 /*     cmpn22
 8710 *  The negative indicator is set.
 8711 *  Two 4-bit leading sign operands are used.
 8712 *  The maximum number of page faults is taken.
 8713 *  Indirect descriptors are used for all operands.
 8714 *  Address register modification is used for all operands.  */
 8715 
 8716 inst cmpn
 8717 -nt "Compare 9-bit pos with 9-bit neg"
 8718 -ir ng
 8719 -mf1 idb ar
 8720 -mf2 idb ar
 8721 -io 1;
 8722 
 8723 desc 1 -tn 4 -sd l -nn 5;
 8724 desc 2 -tn 4 -sd l -nn 4;
 8725 
 8726 data 1 -do -2 267 000  00;
 8727 data 2 -do -1 324 000;
 8728 
 8729 page -all;
 8730 
 8731 
 8732 /*     cmpn23
 8733 *  The negative indicator is set.
 8734 *  Two 4-bit floating point operands are used.
 8735 *  The maximum number of page faults is taken.
 8736 *  Indirect descriptors are used for all operands.
 8737 *  Address register modification is used for all operands.  */
 8738 
 8739 inst cmpn
 8740 -nt "Compare 9-bit pos with 9-bit neg"
 8741 -ir ng
 8742 -mf1 idb ar
 8743 -mf2 idb ar
 8744 -io 1;
 8745 
 8746 desc 1 -tn 4 -sd f -nn 63;
 8747 desc 2 -tn 4 -sd f -nn 63;
 8748 
 8749 data 1 -do -4 270 (14)"10" 00000000;
 8750 data 2 -do -4 321 (14)"10" 00000000;
 8751 
 8752 page -all;
 8753 
 8754 
 8755 /*     cmpn24
 8756 *  The negative indicator is set.
 8757 *  Two 9-bit unsigned operands are used.
 8758 *  The maximum number of page faults is taken.
 8759 *  Indirect descriptors are used for all operands.
 8760 *  Address register modification is used for all operands.  */
 8761 
 8762 inst cmpn
 8763 -nt "Compare 9-bit pos with 9-bit pos"
 8764 -ir ng
 8765 -mf1 idb ar reg
 8766 -mf2 idb ar reg
 8767 -io 3;
 8768 
 8769 desc 1 -sd n -sf 4 -nn 5;
 8770 desc 2 -sd n -sf 1 -nn 4;
 8771 
 8772 data 1 -do -1 "12345";
 8773 data 2 -do -3 "2345";
 8774 
 8775 page -all;
 8776 
 8777 
 8778 /*     cmpn25
 8779 *  The negative indicator is set.
 8780 *  Two 9-bit trailing sign operands are used.
 8781 *  The maximum number of page faults is taken.
 8782 *  Indirect descriptors are used for all operands.
 8783 *  Address register modification is used for all operands.  */
 8784 
 8785 inst cmpn
 8786 -nt "Compare 9-bit pos with 9-bit pos"
 8787 -ir ng
 8788 -mf1 idb ar reg
 8789 -mf2 idb ar reg
 8790 -io 1;
 8791 
 8792 desc 1 -sd t  -sf 4  -nn 37;
 8793 desc 2 -sd t  -sf 3  -nn 37;
 8794 
 8795 data 1 -do -36 (12)"965" 053;
 8796 data 2 -do -1  (12)"965" 053;
 8797 
 8798 page -all;
 8799 
 8800 
 8801 /*     cmpn26
 8802 *  The negative indicator is set.
 8803 *  Two 9-bit leading sign operands are used.
 8804 *  The maximum number of page faults is taken.
 8805 *  Indirect descriptors are used for all operands.
 8806 *  Address register modification is used for all operands.  */
 8807 
 8808 inst cmpn
 8809 -nt "Compare 9-bit pos with 9-bit pos"
 8810 -ir ng
 8811 -mf1 idb ar reg
 8812 -mf2 idb ar reg
 8813 -io 1;
 8814 
 8815 desc 1 -sd l  -sf 2  -nn 63;
 8816 desc 2 -sd l  -sf 2  -nn 63;
 8817 
 8818 data 1 -do -3  053 "95" (15)"2398";
 8819 data 2 -do -4  053 "68" (15)"4782";
 8820 
 8821 page -all;
 8822 
 8823 
 8824 /*     cmpn27
 8825 *  The negative indicator is set.
 8826 *  Two 9-bit floating point operands are used.
 8827 *  The maximum number of page faults is taken.
 8828 *  Indirect descriptors are used for all operands.
 8829 *  Address register modification is used for all operands.  */
 8830 
 8831 inst cmpn
 8832 -nt "Compare 9-bit pos with 9-bit pos"
 8833 
 8834 -ir ng
 8835 -mf1 idb ar reg
 8836 -mf2 idb ar reg
 8837 -io 2;
 8838 
 8839 desc 1 -sd f  -nn 63;
 8840 desc 2 -sd f  -nn 63;
 8841 
 8842 data 1 -do -4  053 "4"  (15)"8901"  002;
 8843 data 2 -do -3  053 "4"  (15)"8901"  001;
 8844 
 8845 page -all;
 8846 
 8847 
 8848 
 8849 /*     cmpn28
 8850 *  Two 4-bit trailing sign operands are used.
 8851 *  The maximum number of page faults is taken.
 8852 *  Indirect descriptors are used for all operands.
 8853 *  Address register modification is used for all operands.  */
 8854 
 8855 inst cmpn
 8856 -nt "Compare 4-bit neg with 4-bit neg"
 8857 -mf1 idb ar
 8858 -mf2 idb ar
 8859 -io 1;
 8860 
 8861 desc 1 -tn 4 -sd t -nn 39;
 8862 desc 2 -tn 4 -sd t -nn 39;
 8863 
 8864 data 1 -do -19 (19)"5" 32;
 8865 data 2 -do -19 (19)"4" 32;
 8866 
 8867 page -all;
 8868 
 8869 
 8870 /*     cmpn29
 8871 *  Two 4-bit leading sign operands are used.
 8872 *  The maximum number of page faults is taken.
 8873 *  Indirect descriptors are used for all operands.
 8874 *  Address register modification is used for all operands.  */
 8875 
 8876 inst cmpn
 8877 -nt "Compare 4-bit neg with 4-bit neg"
 8878 -mf1 idb ar rl 7
 8879 -mf2 idb ar
 8880 -io 2;
 8881 
 8882 desc 1 -tn 4 -sd l -sf 5 ;
 8883 desc 2 -tn 4 -sd l -sf 1 -nn 7;
 8884 
 8885 data 1 -do -3 324 "98" 00;
 8886 data 2 -do -1 323 "64" 00;
 8887 
 8888 page -all;
 8889 
 8890 
 8891 /*     cmpn30
 8892 *  Two 4-bit floating point operands are used.
 8893 *  The maximum number of page faults is taken.
 8894 *  Indirect descriptors are used for all operands.
 8895 *  Address register modification is used for all operands.  */
 8896 
 8897 inst cmpn
 8898 -nt "Compare 4-bit neg with 4-bit neg"
 8899 -mf1 idb ar
 8900 -mf2 idb ar  rl 60
 8901 -io 2;
 8902 
 8903 desc 1 -tn 4 -sd f -nn 63;
 8904 desc 2 -tn 4 -sd f;
 8905 
 8906 data 1 -do -1 321 (15)"892" 00;
 8907 data 2 -do -29 322 (14)"98" 000;
 8908 
 8909 page -all;
 8910 
 8911 
 8912 /*     cmpn31
 8913 *  Two 9-bit trailing sign operands are used.
 8914 *  The maximum number of page faults is taken.
 8915 *  Indirect descriptors are used for all operands.
 8916 *  Address register modification is used for all operands.  */
 8917 
 8918 inst cmpn
 8919 -nt "Compare 9-bit neg with 9-bit pos"
 8920 -mf1 idb ar reg rl 63
 8921 -mf2 idb ar reg
 8922 -io 2;
 8923 
 8924 desc 1 -sd t -sf 12;
 8925 desc 2 -sd t -sf -1 -nn 5;
 8926 
 8927 data 1 -do -62 (31)"98" 055;
 8928 data 2 -do -4  "5432" 053;
 8929 
 8930 page -all;
 8931 
 8932 
 8933 /*     cmpn32
 8934 *  Two 9-bit leading sign operands are used.
 8935 *  The maximum number of page faults is taken.
 8936 *  Indirect descriptors are used for all operands.
 8937 *  Address register modification is used for all operands.  */
 8938 
 8939 inst cmpn
 8940 -nt "Compare 9-bit neg with 9-bit pos"
 8941 -mf1 idb ar reg
 8942 -mf2 idb ar reg
 8943 -io 2;
 8944 
 8945 desc 1 -sd l -sf -4 -nn 6;
 8946 desc 2 -sd l -sf -6 -nn 6;
 8947 
 8948 data 1 -do -4 055 "42816";
 8949 data 2 -do -5 053 "98321";
 8950 
 8951 page -all;
 8952 
 8953 
 8954 /*     cmpn33
 8955 *  Two 9-bit floating point operands are used.
 8956 *  The maximum number of page faults is taken.
 8957 *  Indirect descriptors are used for all operands.
 8958 *  Address register modification is used for all operands.  */
 8959 
 8960 inst cmpn
 8961 
 8962 -nt "Compare 9-bit neg with 9-bit pos"
 8963 -mf1 idb ar reg rl 63
 8964 -mf2 idb ar reg rl 63
 8965 -io 1;
 8966 
 8967 desc 1 -sd f ;
 8968 desc 2 -sd f ;
 8969 
 8970 data 1 -do -8 055 (15)"9999" "8" 004;
 8971 data 2 -do -9 053 (15)"8777" "4" 002;
 8972 
 8973 page -all;
 8974 
 8975 
 8976 ^L
 8977 
 8978 
 8979 /*               mvne1
 8980 
 8981 *       these tests exercise the mvne instruction
 8982 *       using the 4 to 9 bit option and the 9 to 9
 8983 *       bit options on the data.  the same template
 8984 *       for the mop sequence will be used for all
 8985 *       tests with various desc and data mod.
 8986 *
 8987 */
 8988 
 8989 inst    mvne   -nt "simple test no mod 9-9"
 8990           -mf2 rl 29;
 8991 
 8992 desc 1    -nn 24  -sd n;
 8993 
 8994 
 8995 desc 3    -nn 33  ;
 8996 
 8997 data 1 /* the 9 bit data arranged in sequence of use */
 8998           /* the strings are 0012 0012 3456 3456 0012 3456 */
 8999 
 9000         "001200123456345600123456";
 9001 
 9002 data 2  /* ***mop sequence arranged in order *** */
 9003 
 9004        104    /* mvzb */
 9005        060    /* ses es reset */
 9006        124    /* mvza */
 9007        064    /* ses es reset bz set */
 9008        144    /* mfls */
 9009        064    /* ses */
 9010        040    /* enf for "+" insert. */
 9011        200 "="  /* insb */
 9012           220 "q"   /* insa insert "q" */
 9013        260 "q"  /* insp */
 9014        304    /* ign */
 9015        344    /* mvc */
 9016        420 "12345678"   /* change table with string shown */
 9017        024    /* insm */
 9018        401 "2"   /* load table entry 1 with "2" */
 9019        024    /* insm */
 9020        364    /* mors */
 9021       /* end of mop string */;
 9022 
 9023 data 3  /* arranged in order */
 9024 
 9025        "  12"
 9026        "**12"
 9027        "+3456"
 9028        "+"
 9029        "="
 9030        "q"
 9031        "q"
 9032        "0012"
 9033       "1111"
 9034        "2222"
 9035        "3777";
 9036 
 9037 page   -all;
 9038 
 9039 /*               mvne2
 9040 
 9041 *       these tests exercise the mvne instruction
 9042 *       using the 4 to 9 bit option and the 9 to 9
 9043 *       bit options on the data.  the same template
 9044 *       for the mop sequence will be used for all
 9045 *       tests with various desc and data mod.
 9046 *
 9047 */
 9048 
 9049 inst     mvne    -nt "offset inst and desc mod 9-9"   -io 3
 9050           -mf1 idr reg
 9051           -mf2 reg rl 29
 9052           -mf3 idb;
 9053 
 9054 desc 1    -nn 24  -sd n;
 9055 
 9056 
 9057 desc 3    -nn 33  ;
 9058 
 9059 data 1 /* the 9 bit data arranged in sequence of use */
 9060           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9061 
 9062         "001200123456345600123456";
 9063 
 9064 data 2  /* ***mop sequence arranged in order *** */
 9065 
 9066        104    /* mvzb */
 9067        060    /* ses es reset */
 9068        124    /* mvza */
 9069        064    /* ses es reset bz set */
 9070        144    /* mfls */
 9071        064    /* ses */
 9072        040    /* enf for "+" insert. */
 9073        200 "="  /* insb */
 9074           220 "q"   /* insa insert "q" */
 9075        260 "q"  /* insp */
 9076        304    /* ign */
 9077        344    /* mvc */
 9078        420 "12345678"   /* change table with string shown */
 9079        024    /* insm */
 9080        401 "2"   /* load table entry 1 with "2" */
 9081        024    /* insm */
 9082        364    /* mors */
 9083       /* end of mop string */;
 9084 
 9085 data 3  /* arranged in order */
 9086 
 9087        "  12"
 9088        "**12"
 9089        "+3456"
 9090        "+"
 9091        "="
 9092        "q"
 9093        "q"
 9094        "0012"
 9095       "1111"
 9096        "2222"
 9097        "3777";
 9098 
 9099 page   -all;
 9100 
 9101 /*               mvne3
 9102 
 9103 *       these tests exercise the mvne instruction
 9104 *       using the 4 to 9 bit option and the 9 to 9
 9105 *       bit options on the data.  the same template
 9106 *       for the mop sequence will be used for all
 9107 *       tests with various desc and data mod.
 9108 *
 9109 */
 9110 
 9111 inst     mvne    -nt "offset inst and d1 offset 9-9"   -io 3
 9112           -mf1 idr reg
 9113           -mf2 reg rl 29
 9114           -mf3 idb;
 9115 
 9116 desc 1    -nn 24  -sd n;
 9117 
 9118 
 9119 desc 3    -nn 33  ;
 9120 
 9121 
 9122 data 1 /* the 9 bit data arranged in sequence of use */
 9123           -do -16
 9124           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9125 
 9126         "001200123456345600123456";
 9127 
 9128 data 2  /* ***mop sequence arranged in order *** */
 9129 
 9130        104    /* mvzb */
 9131        060    /* ses es reset */
 9132        124    /* mvza */
 9133        064    /* ses es reset bz set */
 9134        144    /* mfls */
 9135        064    /* ses */
 9136        040    /* enf for "+" insert. */
 9137        200 "="  /* insb */
 9138           220 "q"   /* insa insert "q" */
 9139        260 "q"  /* insp */
 9140        304    /* ign */
 9141        344    /* mvc */
 9142        420 "12345678"   /* change table with string shown */
 9143        024    /* insm */
 9144        401 "2"   /* load table entry 1 with "2" */
 9145        024    /* insm */
 9146        364    /* mors */
 9147       /* end of mop string */;
 9148 
 9149 data 3  /* arranged in order */
 9150 
 9151        "  12"
 9152        "**12"
 9153        "+3456"
 9154        "+"
 9155        "="
 9156        "q"
 9157        "q"
 9158        "0012"
 9159       "1111"
 9160        "2222"
 9161        "3777";
 9162 
 9163 page   -all;
 9164 
 9165 /*               mvne4
 9166 
 9167 *       these tests exercise the mvne instruction
 9168 *       using the 4 to 9 bit option and the 9 to 9
 9169 *       bit options on the data.  the same template
 9170 *       for the mop sequence will be used for all
 9171 *       tests with various desc and data mod.
 9172 *
 9173 */
 9174 
 9175 inst     mvne    -nt "offset d2 and d1 offset 9-9"   -io 3
 9176           -mf1 idr reg
 9177           -mf2 reg rl 29
 9178           -mf3 idb;
 9179 
 9180 desc 1    -nn 24  -sd n;
 9181 
 9182 
 9183 desc 3    -nn 33  ;
 9184 
 9185 
 9186 data 1 /* the 9 bit data arranged in sequence of use */
 9187           -do -16
 9188           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9189 
 9190         "001200123456345600123456";
 9191 
 9192 data 2  /* ***mop sequence arranged in order *** */
 9193           -do -20
 9194 
 9195        104    /* mvzb */
 9196        060    /* ses es reset */
 9197        124    /* mvza */
 9198        064    /* ses es reset bz set */
 9199        144    /* mfls */
 9200        064    /* ses */
 9201        040    /* enf for "+" insert. */
 9202        200 "="  /* insb */
 9203           220 "q"   /* insa insert "q" */
 9204        260 "q"  /* insp */
 9205        304    /* ign */
 9206        344    /* mvc */
 9207        420 "12345678"   /* change table with string shown */
 9208        024    /* insm */
 9209        401 "2"   /* load table entry 1 with "2" */
 9210        024    /* insm */
 9211        364    /* mors */
 9212       /* end of mop string */;
 9213 
 9214 data 3  /* arranged in order */
 9215 
 9216        "  12"
 9217        "**12"
 9218        "+3456"
 9219        "+"
 9220        "="
 9221        "q"
 9222        "q"
 9223        "0012"
 9224       "1111"
 9225        "2222"
 9226        "3777";
 9227 
 9228 page   -all;
 9229 
 9230 /*               mvne5
 9231 
 9232 *       these tests exercise the mvne instruction
 9233 *       using the 4 to 9 bit option and the 9 to 9
 9234 *       bit options on the data.  the same template
 9235 *       for the mop sequence will be used for all
 9236 *       tests with various desc and data mod.
 9237 *
 9238 */
 9239 
 9240 inst     mvne    -nt "offset d2 and d1 and d3 9-9"   -io 3
 9241           -mf1 idr reg
 9242           -mf2 reg rl 29
 9243           -mf3 idb;
 9244 
 9245 desc 1    -nn 24  -sd n;
 9246 
 9247 
 9248 desc 3    -nn 33  ;
 9249 
 9250 
 9251 data 1 /* the 9 bit data arranged in sequence of use */
 9252           -do -16
 9253           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9254 
 9255         "001200123456345600123456";
 9256 
 9257 data 2  /* ***mop sequence arranged in order *** */
 9258           -do -20
 9259 
 9260        104    /* mvzb */
 9261        060    /* ses es reset */
 9262        124    /* mvza */
 9263        064    /* ses es reset bz set */
 9264        144    /* mfls */
 9265        064    /* ses */
 9266        040    /* enf for "+" insert. */
 9267        200 "="  /* insb */
 9268           220 "q"   /* insa insert "q" */
 9269        260 "q"  /* insp */
 9270        304    /* ign */
 9271        344    /* mvc */
 9272        420 "12345678"   /* change table with string shown */
 9273        024    /* insm */
 9274        401 "2"   /* load table entry 1 with "2" */
 9275        024    /* insm */
 9276        364    /* mors */
 9277       /* end of mop string */;
 9278 
 9279 data 3  /* arranged in order */
 9280           -do -8
 9281 
 9282        "  12"
 9283        "**12"
 9284        "+3456"
 9285        "+"
 9286        "="
 9287        "q"
 9288        "q"
 9289        "0012"
 9290       "1111"
 9291        "2222"
 9292        "3777";
 9293 
 9294 page   -all;
 9295 
 9296 /*               mvne6
 9297 
 9298 *       these tests exercise the mvne instruction
 9299 *       using the 4 to 9 bit option and the 9 to 9
 9300 *       bit options on the data.  the same template
 9301 *       for the mop sequence will be used for all
 9302 *       tests with various desc and data mod.
 9303 *
 9304 */
 9305 
 9306 inst     mvne    -nt "offset d2 and d1 and d3 9-9"   -io 3
 9307           -mf1 idr reg
 9308           -mf2 reg rl 29
 9309           -mf3 idb;
 9310 
 9311 desc 1    -cn 3     -nn 24  -sd n;
 9312 
 9313 
 9314 desc 3    -nn 33  ;
 9315 
 9316 
 9317 data 1 /* the 9 bit data arranged in sequence of use */
 9318           -do -16
 9319           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9320 
 9321         "***"  /* for cn */   "001200123456345600123456";
 9322 
 9323 data 2  /* ***mop sequence arranged in order *** */
 9324           -do -20
 9325 
 9326        104    /* mvzb */
 9327        060    /* ses es reset */
 9328        124    /* mvza */
 9329        064    /* ses es reset bz set */
 9330        144    /* mfls */
 9331        064    /* ses */
 9332        040    /* enf for "+" insert. */
 9333        200 "="  /* insb */
 9334           220 "q"   /* insa insert "q" */
 9335        260 "q"  /* insp */
 9336        304    /* ign */
 9337        344    /* mvc */
 9338        420 "12345678"   /* change table with string shown */
 9339        024    /* insm */
 9340        401 "2"   /* load table entry 1 with "2" */
 9341        024    /* insm */
 9342        364    /* mors */
 9343       /* end of mop string */;
 9344 
 9345 data 3  /* arranged in order */
 9346           -do -8
 9347 
 9348        "  12"
 9349        "**12"
 9350        "+3456"
 9351        "+"
 9352        "="
 9353        "q"
 9354        "q"
 9355        "0012"
 9356       "1111"
 9357        "2222"
 9358        "3777";
 9359 
 9360 page   -all;
 9361 
 9362 /*               mvne7
 9363 
 9364 *       these tests exercise the mvne instruction
 9365 *       using the 4 to 9 bit option and the 9 to 9
 9366 *       bit options on the data.  the same template
 9367 *       for the mop sequence will be used for all
 9368 *       tests with various desc and data mod.
 9369 *
 9370 */
 9371 
 9372 inst      mvne      -nt "d1 totally on p0 9-9"    -io 2
 9373           -mf1 idr ar
 9374           -mf2 reg rl 29
 9375           -mf3 ida ar reg;
 9376 
 9377 desc 1    -cn 3     -nn 24  -sd n;
 9378 
 9379 
 9380 desc 3    -nn 33  ;
 9381 
 9382 
 9383 data 1 /* the 9 bit data arranged in sequence of use */
 9384           -do -24
 9385           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9386 
 9387         "***"  /* for cn */   "001200123456345600123456";
 9388 
 9389 data 2  /* ***mop sequence arranged in order *** */
 9390           -do -20
 9391 
 9392        104    /* mvzb */
 9393        060    /* ses es reset */
 9394        124    /* mvza */
 9395        064    /* ses es reset bz set */
 9396        144    /* mfls */
 9397        064    /* ses */
 9398        040    /* enf for "+" insert. */
 9399        200 "="  /* insb */
 9400           220 "q"   /* insa insert "q" */
 9401        260 "q"  /* insp */
 9402        304    /* ign */
 9403        344    /* mvc */
 9404        420 "12345678"   /* change table with string shown */
 9405        024    /* insm */
 9406        401 "2"   /* load table entry 1 with "2" */
 9407        024    /* insm */
 9408        364    /* mors */
 9409       /* end of mop string */;
 9410 
 9411 data 3  /* arranged in order */
 9412           -do -8
 9413 
 9414        "  12"
 9415        "**12"
 9416        "+3456"
 9417        "+"
 9418        "="
 9419        "q"
 9420        "q"
 9421        "0012"
 9422       "1111"
 9423        "2222"
 9424        "3777";
 9425 
 9426 page   -all;
 9427 
 9428 
 9429 /*               mvne8
 9430 
 9431 *       these tests exercise the mvne instruction
 9432 *       using the 4 to 9 bit option and the 9 to 9
 9433 *       bit options on the data.  the same template
 9434 *       for the mop sequence will be used for all
 9435 *       tests with various desc and data mod.
 9436 *
 9437 */
 9438 
 9439 inst      mvne      -nt "d2 totally on p0 9-9"    -io 2
 9440           -mf1 idr ar
 9441           -mf2 ar reg rl 29
 9442           -mf3 ida ar reg;
 9443 
 9444 desc 1    -cn 3     -nn 24  -sd n;
 9445 
 9446 
 9447 desc 3    -nn 33  ;
 9448 
 9449 
 9450 data 1 /* the 9 bit data arranged in sequence of use */
 9451           -do -20
 9452           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9453 
 9454         "***"  /* for cn */   "001200123456345600123456";
 9455 
 9456 data 2  /* ***mop sequence arranged in order *** */
 9457           -do -30
 9458 
 9459        104    /* mvzb */
 9460        060    /* ses es reset */
 9461        124    /* mvza */
 9462        064    /* ses es reset bz set */
 9463        144    /* mfls */
 9464        064    /* ses */
 9465        040    /* enf for "+" insert. */
 9466        200 "="  /* insb */
 9467           220 "q"   /* insa insert "q" */
 9468        260 "q"  /* insp */
 9469        304    /* ign */
 9470        344    /* mvc */
 9471        420 "12345678"   /* change table with string shown */
 9472        024    /* insm */
 9473        401 "2"   /* load table entry 1 with "2" */
 9474        024    /* insm */
 9475        364    /* mors */
 9476       /* end of mop string */;
 9477 
 9478 data 3  /* arranged in order */
 9479           -do -8
 9480 
 9481        "  12"
 9482        "**12"
 9483        "+3456"
 9484        "+"
 9485        "="
 9486        "q"
 9487        "q"
 9488        "0012"
 9489       "1111"
 9490        "2222"
 9491        "3777";
 9492 
 9493 page   -all;
 9494 
 9495 /*               mvne9
 9496 
 9497 *       these tests exercise the mvne instruction
 9498 *       using the 4 to 9 bit option and the 9 to 9
 9499 *       bit options on the data.  the same template
 9500 *       for the mop sequence will be used for all
 9501 *       tests with various desc and data mod.
 9502 *
 9503 */
 9504 
 9505 inst      mvne      -nt "d3 totally on p0 9-9"    -io 2
 9506           -mf1 idr ar
 9507           -mf2 reg ar rl 29
 9508           -mf3 ida ar reg;
 9509 
 9510 desc 1    -cn 3     -nn 24  -sd n;
 9511 
 9512 
 9513 desc 3    -nn 33  ;
 9514 
 9515 
 9516 data 1 /* the 9 bit data arranged in sequence of use */
 9517           -do -20
 9518           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9519 
 9520         "***"  /* for cn */   "001200123456345600123456";
 9521 
 9522 data 2  /* ***mop sequence arranged in order *** */
 9523           -do -10
 9524 
 9525        104    /* mvzb */
 9526        060    /* ses es reset */
 9527        124    /* mvza */
 9528        064    /* ses es reset bz set */
 9529        144    /* mfls */
 9530        064    /* ses */
 9531        040    /* enf for "+" insert. */
 9532        200 "="  /* insb */
 9533           220 "q"   /* insa insert "q" */
 9534        260 "q"  /* insp */
 9535        304    /* ign */
 9536        344    /* mvc */
 9537        420 "12345678"   /* change table with string shown */
 9538        024    /* insm */
 9539        401 "2"   /* load table entry 1 with "2" */
 9540        024    /* insm */
 9541        364    /* mors */
 9542       /* end of mop string */;
 9543 
 9544 data 3  /* arranged in order */
 9545           -do -34
 9546 
 9547        "  12"
 9548        "**12"
 9549        "+3456"
 9550        "+"
 9551        "="
 9552        "q"
 9553        "q"
 9554        "0012"
 9555       "1111"
 9556        "2222"
 9557        "3777";
 9558 
 9559 page   -all;
 9560 
 9561 /*               mvne10
 9562 
 9563 *       these tests exercise the mvne instruction
 9564 *       using the 4 to 9 bit option and the 9 to 9
 9565 *       bit options on the data.  the same template
 9566 *       for the mop sequence will be used for all
 9567 *       tests with various desc and data mod.
 9568 *
 9569 */
 9570 
 9571 inst      mvne      -nt "all data totally on p0 9-9"    -io 2
 9572           -mf1 idr ar
 9573           -mf2 reg ar rl 29
 9574           -mf3 ida ar reg;
 9575 
 9576 desc 1    -cn 3     -nn 24  -sd n;
 9577 
 9578 
 9579 desc 3    -nn 33  ;
 9580 
 9581 
 9582 data 1 /* the 9 bit data arranged in sequence of use */
 9583           -do -30
 9584           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9585 
 9586         "***"  /* for cn */   "001200123456345600123456";
 9587 
 9588 data 2  /* ***mop sequence arranged in order *** */
 9589           -do -30
 9590 
 9591        104    /* mvzb */
 9592        060    /* ses es reset */
 9593        124    /* mvza */
 9594        064    /* ses es reset bz set */
 9595        144    /* mfls */
 9596        064    /* ses */
 9597        040    /* enf for "+" insert. */
 9598        200 "="  /* insb */
 9599           220 "q"   /* insa insert "q" */
 9600        260 "q"  /* insp */
 9601        304    /* ign */
 9602        344    /* mvc */
 9603        420 "12345678"   /* change table with string shown */
 9604        024    /* insm */
 9605        401 "2"   /* load table entry 1 with "2" */
 9606        024    /* insm */
 9607        364    /* mors */
 9608       /* end of mop string */;
 9609 
 9610 data 3  /* arranged in order */
 9611           -do -34
 9612 
 9613        "  12"
 9614        "**12"
 9615        "+3456"
 9616        "+"
 9617        "="
 9618        "q"
 9619        "q"
 9620        "0012"
 9621       "1111"
 9622        "2222"
 9623        "3777";
 9624 
 9625 page   -all;
 9626 
 9627 /*               mvne11
 9628 
 9629 *       these tests exercise the mvne instruction
 9630 *       using the 4 to 9 bit option and the 9 to 9
 9631 *       bit options on the data.  the same template
 9632 *       for the mop sequence will be used for all
 9633 *       tests with various desc and data mod.
 9634 *
 9635 */
 9636 
 9637 inst    mvne   -nt "simple test no mod 4-9"
 9638           -mf2 rl 29;
 9639 
 9640 desc 1     -tn 4    -nn 24  -sd n;
 9641 
 9642 
 9643 desc 3    -nn 33  ;
 9644 
 9645 data 1 /* the 9 bit data arranged in sequence of use */
 9646           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9647 
 9648         000022000022064126064126000022064126;
 9649 
 9650 data 2  /* ***mop sequence arranged in order *** */
 9651 
 9652        104    /* mvzb */
 9653        060    /* ses es reset */
 9654        124    /* mvza */
 9655        064    /* ses es reset bz set */
 9656        144    /* mfls */
 9657        064    /* ses */
 9658        040    /* enf for "+" insert. */
 9659        200 "="  /* insb */
 9660           220 "q"   /* insa insert "q" */
 9661        260 "q"  /* insp */
 9662        304    /* ign */
 9663        344    /* mvc */
 9664        420 "12345678"   /* change table with string shown */
 9665        024    /* insm */
 9666        401 "2"   /* load table entry 1 with "2" */
 9667        024    /* insm */
 9668        364    /* mors */
 9669       /* end of mop string */;
 9670 
 9671 data 3  /* arranged in order */
 9672 
 9673        "  12"
 9674        "**12"
 9675        "+3456"
 9676        "+"
 9677        "="
 9678        "q"
 9679        "q"
 9680        "0012"
 9681       "1111"
 9682        "2222"
 9683        "3777";
 9684 
 9685 page   -all;
 9686 
 9687 /*               mvne12
 9688 
 9689 *       these tests exercise the mvne instruction
 9690 *       using the 4 to 9 bit option and the 9 to 9
 9691 *       bit options on the data.  the same template
 9692 *       for the mop sequence will be used for all
 9693 *       tests with various desc and data mod.
 9694 *
 9695 */
 9696 
 9697 inst     mvne    -nt "offset inst and desc mod 4-9"   -io 2
 9698 
 9699           -mf2 reg rl 29
 9700           -mf3 ida;
 9701 
 9702 desc 1     -tn 4    -nn 24  -sd n;
 9703 
 9704 
 9705 desc 3    -nn 33  ;
 9706 
 9707 data 1 /* the 9 bit data arranged in sequence of use */
 9708           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9709 
 9710         000022000022064126064126000022064126;
 9711 
 9712 data 2  /* ***mop sequence arranged in order *** */
 9713 
 9714        104    /* mvzb */
 9715        060    /* ses es reset */
 9716        124    /* mvza */
 9717        064    /* ses es reset bz set */
 9718        144    /* mfls */
 9719        064    /* ses */
 9720        040    /* enf for "+" insert. */
 9721        200 "="  /* insb */
 9722           220 "q"   /* insa insert "q" */
 9723        260 "q"  /* insp */
 9724        304    /* ign */
 9725        344    /* mvc */
 9726        420 "12345678"   /* change table with string shown */
 9727        024    /* insm */
 9728        401 "2"   /* load table entry 1 with "2" */
 9729        024    /* insm */
 9730        364    /* mors */
 9731       /* end of mop string */;
 9732 
 9733 data 3  /* arranged in order */
 9734 
 9735        "  12"
 9736        "**12"
 9737        "+3456"
 9738        "+"
 9739        "="
 9740        "q"
 9741        "q"
 9742        "0012"
 9743       "1111"
 9744        "2222"
 9745        "3777";
 9746 
 9747 page   -all;
 9748 
 9749 /*               mvne13
 9750 
 9751 *       these tests exercise the mvne instruction
 9752 *       using the 4 to 9 bit option and the 9 to 9
 9753 *       bit options on the data.  the same template
 9754 *       for the mop sequence will be used for all
 9755 *       tests with various desc and data mod.
 9756 *
 9757 */
 9758 
 9759 inst     mvne    -nt "offset inst and d1 offset 4-9"   -io 3
 9760 
 9761           -mf2 reg rl 29
 9762           -mf3 ida;
 9763 
 9764 desc 1     -tn 4    -nn 24  -sd n;
 9765 
 9766 
 9767 desc 3    -nn 33  ;
 9768 
 9769 
 9770 data 1 /* the 9 bit data arranged in sequence of use */
 9771           -do -16
 9772           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9773 
 9774         000022000022064126064126000022064126;
 9775 
 9776 data 2  /* ***mop sequence arranged in order *** */
 9777 
 9778        104    /* mvzb */
 9779        060    /* ses es reset */
 9780        124    /* mvza */
 9781        064    /* ses es reset bz set */
 9782        144    /* mfls */
 9783        064    /* ses */
 9784        040    /* enf for "+" insert. */
 9785        200 "="  /* insb */
 9786           220 "q"   /* insa insert "q" */
 9787        260 "q"  /* insp */
 9788        304    /* ign */
 9789        344    /* mvc */
 9790        420 "12345678"   /* change table with string shown */
 9791        024    /* insm */
 9792        401 "2"   /* load table entry 1 with "2" */
 9793        024    /* insm */
 9794        364    /* mors */
 9795       /* end of mop string */;
 9796 
 9797 data 3  /* arranged in order */
 9798 
 9799        "  12"
 9800        "**12"
 9801        "+3456"
 9802        "+"
 9803        "="
 9804        "q"
 9805        "q"
 9806        "0012"
 9807       "1111"
 9808        "2222"
 9809        "3777";
 9810 
 9811 page   -all;
 9812 
 9813 /*               mvne14
 9814 
 9815 *       these tests exercise the mvne instruction
 9816 *       using the 4 to 9 bit option and the 9 to 9
 9817 *       bit options on the data.  the same template
 9818 *       for the mop sequence will be used for all
 9819 *       tests with various desc and data mod.
 9820 *
 9821 */
 9822 
 9823 inst     mvne    -nt "offset d2 and d1 offset 4-9"   -io 3
 9824 
 9825           -mf2 reg rl 29
 9826           -mf3 ida;
 9827 
 9828 desc 1     -tn 4    -nn 24  -sd n;
 9829 
 9830 
 9831 desc 3    -nn 33  ;
 9832 
 9833 
 9834 data 1 /* the 9 bit data arranged in sequence of use */
 9835           -do -16
 9836           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9837 
 9838         000022000022064126064126000022064126;
 9839 
 9840 data 2  /* ***mop sequence arranged in order *** */
 9841           -do -20
 9842 
 9843        104    /* mvzb */
 9844        060    /* ses es reset */
 9845        124    /* mvza */
 9846        064    /* ses es reset bz set */
 9847        144    /* mfls */
 9848        064    /* ses */
 9849        040    /* enf for "+" insert. */
 9850        200 "="  /* insb */
 9851           220 "q"   /* insa insert "q" */
 9852        260 "q"  /* insp */
 9853        304    /* ign */
 9854        344    /* mvc */
 9855        420 "12345678"   /* change table with string shown */
 9856        024    /* insm */
 9857        401 "2"   /* load table entry 1 with "2" */
 9858        024    /* insm */
 9859        364    /* mors */
 9860       /* end of mop string */;
 9861 
 9862 data 3  /* arranged in order */
 9863 
 9864        "  12"
 9865        "**12"
 9866        "+3456"
 9867        "+"
 9868        "="
 9869        "q"
 9870        "q"
 9871        "0012"
 9872       "1111"
 9873        "2222"
 9874        "3777";
 9875 
 9876 page   -all;
 9877 
 9878 /*               mvne15
 9879 
 9880 *       these tests exercise the mvne instruction
 9881 *       using the 4 to 9 bit option and the 9 to 9
 9882 *       bit options on the data.  the same template
 9883 *       for the mop sequence will be used for all
 9884 *       tests with various desc and data mod.
 9885 *
 9886 */
 9887 
 9888 inst     mvne    -nt "offset d2 and d1 and d3 4-9"   -io 3
 9889 
 9890           -mf2 reg rl 29
 9891           -mf3 ida;
 9892 
 9893 desc 1     -tn 4    -nn 24  -sd n;
 9894 
 9895 
 9896 desc 3    -nn 33  ;
 9897 
 9898 
 9899 data 1 /* the 9 bit data arranged in sequence of use */
 9900           -do -16
 9901           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9902 
 9903         000022000022064126064126000022064126;
 9904 
 9905 data 2  /* ***mop sequence arranged in order *** */
 9906           -do -20
 9907 
 9908        104    /* mvzb */
 9909        060    /* ses es reset */
 9910        124    /* mvza */
 9911        064    /* ses es reset bz set */
 9912        144    /* mfls */
 9913        064    /* ses */
 9914        040    /* enf for "+" insert. */
 9915        200 "="  /* insb */
 9916           220 "q"   /* insa insert "q" */
 9917        260 "q"  /* insp */
 9918        304    /* ign */
 9919        344    /* mvc */
 9920        420 "12345678"   /* change table with string shown */
 9921        024    /* insm */
 9922        401 "2"   /* load table entry 1 with "2" */
 9923        024    /* insm */
 9924        364    /* mors */
 9925       /* end of mop string */;
 9926 
 9927 data 3  /* arranged in order */
 9928           -do -8
 9929 
 9930        "  12"
 9931        "**12"
 9932        "+3456"
 9933        "+"
 9934        "="
 9935        "q"
 9936        "q"
 9937        "0012"
 9938       "1111"
 9939        "2222"
 9940        "3777";
 9941 
 9942 page   -all;
 9943 
 9944 /*               mvne16
 9945 
 9946 *       these tests exercise the mvne instruction
 9947 *       using the 4 to 9 bit option and the 9 to 9
 9948 *       bit options on the data.  the same template
 9949 *       for the mop sequence will be used for all
 9950 *       tests with various desc and data mod.
 9951 *
 9952 */
 9953 
 9954 inst     mvne    -nt "offset d2 and d1 and d3 4-9"   -io 3
 9955 
 9956           -mf2 reg rl 29
 9957           -mf3 ida;
 9958 
 9959 desc 1     -tn 4         -nn 24  -sd n;
 9960 
 9961 
 9962 desc 3    -nn 33  ;
 9963 
 9964 
 9965 data 1 /* the 9 bit data arranged in sequence of use */
 9966           -do -16
 9967           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9968 
 9969            000022000022064126064126000022064126;
 9970 
 9971 data 2  /* ***mop sequence arranged in order *** */
 9972           -do -20
 9973 
 9974        104    /* mvzb */
 9975        060    /* ses es reset */
 9976        124    /* mvza */
 9977        064    /* ses es reset bz set */
 9978        144    /* mfls */
 9979        064    /* ses */
 9980        040    /* enf for "+" insert. */
 9981        200 "="  /* insb */
 9982           220 "q"   /* insa insert "q" */
 9983        260 "q"  /* insp */
 9984        304    /* ign */
 9985        344    /* mvc */
 9986        420 "12345678"   /* change table with string shown */
 9987        024    /* insm */
 9988        401 "2"   /* load table entry 1 with "2" */
 9989        024    /* insm */
 9990        364    /* mors */
 9991       /* end of mop string */;
 9992 
 9993 data 3  /* arranged in order */
 9994           -do -8
 9995 
 9996        "  12"
 9997        "**12"
 9998        "+3456"
 9999        "+"
10000        "="
10001        "q"
10002        "q"
10003        "0012"
10004       "1111"
10005        "2222"
10006        "3777";
10007 
10008 page   -all;
10009 
10010 /*               mvne17
10011 
10012 *       these tests exercise the mvne instruction
10013 *       using the 4 to 9 bit option and the 9 to 9
10014 *       bit options on the data.  the same template
10015 *       for the mop sequence will be used for all
10016 *       tests with various desc and data mod.
10017 *
10018 */
10019 
10020 inst      mvne      -nt "d1 totally on p0 4-9"    -io 2
10021           -mf1 idr ar
10022           -mf2 reg rl 29
10023           -mf3 ida ar reg;
10024 
10025 desc 1     -tn 4         -nn 24  -sd n;
10026 
10027 
10028 desc 3    -nn 33  ;
10029 
10030 
10031 data 1 /* the 9 bit data arranged in sequence of use */
10032           -do -24
10033           /* the strings are 0012 0012 3456 3456 0012 3456 */
10034 
10035            000022000022064126064126000022064126;
10036 
10037 data 2  /* ***mop sequence arranged in order *** */
10038           -do -20
10039 
10040        104    /* mvzb */
10041        060    /* ses es reset */
10042        124    /* mvza */
10043        064    /* ses es reset bz set */
10044        144    /* mfls */
10045        064    /* ses */
10046        040    /* enf for "+" insert. */
10047        200 "="  /* insb */
10048           220 "q"   /* insa insert "q" */
10049        260 "q"  /* insp */
10050        304    /* ign */
10051        344    /* mvc */
10052        420 "12345678"   /* change table with string shown */
10053        024    /* insm */
10054        401 "2"   /* load table entry 1 with "2" */
10055        024    /* insm */
10056        364    /* mors */
10057       /* end of mop string */;
10058 
10059 data 3  /* arranged in order */
10060           -do -8
10061 
10062        "  12"
10063        "**12"
10064        "+3456"
10065        "+"
10066        "="
10067        "q"
10068        "q"
10069        "0012"
10070       "1111"
10071        "2222"
10072        "3777";
10073 
10074 page   -all;
10075 
10076 
10077 /*               mvne18
10078 
10079 *       these tests exercise the mvne instruction
10080 *       using the 4 to 9 bit option and the 9 to 9
10081 *       bit options on the data.  the same template
10082 *       for the mop sequence will be used for all
10083 *       tests with various desc and data mod.
10084 *
10085 */
10086 
10087 inst      mvne      -nt "d2 totally on p0 4-9"    -io 2
10088           -mf1 idr ar
10089           -mf2 ar reg rl 29
10090           -mf3 ida ar reg;
10091 
10092 desc 1     -tn 4         -nn 24  -sd n;
10093 
10094 
10095 desc 3    -nn 33  ;
10096 
10097 
10098 data 1 /* the 9 bit data arranged in sequence of use */
10099           -do -20
10100           /* the strings are 0012 0012 3456 3456 0012 3456 */
10101 
10102            000022000022064126064126000022064126;
10103 
10104 data 2  /* ***mop sequence arranged in order *** */
10105           -do -30
10106 
10107        104    /* mvzb */
10108        060    /* ses es reset */
10109        124    /* mvza */
10110        064    /* ses es reset bz set */
10111        144    /* mfls */
10112        064    /* ses */
10113        040    /* enf for "+" insert. */
10114        200 "="  /* insb */
10115           220 "q"   /* insa insert "q" */
10116        260 "q"  /* insp */
10117        304    /* ign */
10118        344    /* mvc */
10119        420 "12345678"   /* change table with string shown */
10120        024    /* insm */
10121        401 "2"   /* load table entry 1 with "2" */
10122        024    /* insm */
10123        364    /* mors */
10124       /* end of mop string */;
10125 
10126 data 3  /* arranged in order */
10127           -do -8
10128 
10129        "  12"
10130        "**12"
10131        "+3456"
10132        "+"
10133        "="
10134        "q"
10135        "q"
10136        "0012"
10137       "1111"
10138        "2222"
10139        "3777";
10140 
10141 page   -all;
10142 
10143 /*               mvne19
10144 
10145 *       these tests exercise the mvne instruction
10146 *       using the 4 to 9 bit option and the 9 to 9
10147 *       bit options on the data.  the same template
10148 *       for the mop sequence will be used for all
10149 *       tests with various desc and data mod.
10150 *
10151 */
10152 
10153 inst      mvne      -nt "d3 totally on p0 4-9"    -io 2
10154           -mf1 idr ar
10155           -mf2 reg ar rl 29
10156           -mf3 ida ar reg;
10157 
10158 desc 1     -tn 4         -nn 24  -sd n;
10159 
10160 
10161 desc 3    -nn 33  ;
10162 
10163 
10164 data 1 /* the 9 bit data arranged in sequence of use */
10165           -do -20
10166           /* the strings are 0012 0012 3456 3456 0012 3456 */
10167 
10168            000022000022064126064126000022064126;
10169 
10170 data 2  /* ***mop sequence arranged in order *** */
10171           -do -10
10172 
10173        104    /* mvzb */
10174        060    /* ses es reset */
10175        124    /* mvza */
10176        064    /* ses es reset bz set */
10177        144    /* mfls */
10178        064    /* ses */
10179        040    /* enf for "+" insert. */
10180        200 "="  /* insb */
10181           220 "q"   /* insa insert "q" */
10182        260 "q"  /* insp */
10183        304    /* ign */
10184        344    /* mvc */
10185        420 "12345678"   /* change table with string shown */
10186        024    /* insm */
10187        401 "2"   /* load table entry 1 with "2" */
10188        024    /* insm */
10189        364    /* mors */
10190       /* end of mop string */;
10191 
10192 data 3  /* arranged in order */
10193           -do -34
10194 
10195        "  12"
10196        "**12"
10197        "+3456"
10198        "+"
10199        "="
10200        "q"
10201        "q"
10202        "0012"
10203       "1111"
10204        "2222"
10205        "3777";
10206 
10207 page   -all;
10208 
10209 /*               mvne20
10210 
10211 *       these tests exercise the mvne instruction
10212 *       using the 4 to 9 bit option and the 9 to 9
10213 *       bit options on the data.  the same template
10214 *       for the mop sequence will be used for all
10215 *       tests with various desc and data mod.
10216 *
10217 */
10218 
10219 inst      mvne      -nt "all data totally on p0 4-9"    -io 2
10220           -mf1 idr ar
10221           -mf2 reg ar rl 29
10222           -mf3 ida ar reg;
10223 
10224 desc 1     -tn 4         -nn 24  -sd n;
10225 
10226 
10227 desc 3    -nn 33  ;
10228 
10229 
10230 data 1 /* the 9 bit data arranged in sequence of use */
10231           -do -30
10232           /* the strings are 0012 0012 3456 3456 0012 3456 */
10233 
10234            000022000022064126064126000022064126;
10235 
10236 data 2  /* ***mop sequence arranged in order *** */
10237           -do -30
10238 
10239        104    /* mvzb */
10240        060    /* ses es reset */
10241        124    /* mvza */
10242        064    /* ses es reset bz set */
10243        144    /* mfls */
10244        064    /* ses */
10245        040    /* enf for "+" insert. */
10246        200 "="  /* insb */
10247           220 "q"   /* insa insert "q" */
10248        260 "q"  /* insp */
10249        304    /* ign */
10250        344    /* mvc */
10251        420 "12345678"   /* change table with string shown */
10252        024    /* insm */
10253        401 "2"   /* load table entry 1 with "2" */
10254        024    /* insm */
10255        364    /* mors */
10256       /* end of mop string */;
10257 
10258 data 3  /* arranged in order */
10259           -do -34
10260 
10261        "  12"
10262        "**12"
10263        "+3456"
10264        "+"
10265        "="
10266        "q"
10267        "q"
10268        "0012"
10269       "1111"
10270        "2222"
10271        "3777";
10272 
10273 page   -all;
10274 
10275 
10276 ^L
10277 
10278 /*     ad3d1
10279 *  The zero indicator is set.
10280 *  Three 9-bit floating point operands are used.
10281 *  Indirect descriptors are used for all operands.
10282 *  Address register modification is used for all operands.  */
10283 
10284 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10285 -ir zr
10286 -mf1 idb ar reg
10287 -mf2 idb ar reg
10288 -mf3 idb ar reg
10289 -io 1;
10290 
10291 desc 1  -sd f -nn 63;
10292 desc 2 -sd f -nn 60;
10293 desc 3 -sd f -nn 63;
10294 
10295 data 1 -do -1 "+" (14)"2583" "00000" 005;
10296 data 2 -do -60 "-" (14)"2583" "00" 010;
10297 data 3 -do -8 "+" (61)"0" 177;
10298 
10299 page -all;
10300 
10301 
10302 
10303 /*     ad3d2
10304 *  The zero indicator is set.
10305 *  Three 9-bit leading sign operands are used.
10306 *  The maximum number of page faults is taken.
10307 *  Indirect descriptors are used for all operands.
10308 *  Address register modification is used for all operands.  */
10309 
10310 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10311 -ir zr tn
10312 -mf1 idb ar reg
10313 -mf2 idb ar reg
10314 -mf3 idb ar reg
10315 -io 2;
10316 
10317 desc 1 -sd l -nn 13 -sf 4;
10318 desc 2 -sd l -nn 13 -sf 4;
10319 desc 3 -sd l -nn 5 -sf 6;
10320 
10321 data 1 -do -12 "-" (2)"392457";
10322 data 2 -do -4 "+" (2)"392457";
10323 data 3 -do -4 "+" (4)"0";
10324 
10325 page -all;
10326 
10327 
10328 
10329 /*     ad3d3
10330 *  The negative indicator is set.
10331 *  Three 4-bit floating point operands are used.
10332 *  Indirect descriptors are used for all operands.
10333 *  Address register modification is used for all operands.  */
10334 
10335 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10336 -ir ng
10337 -mf1 idb ar
10338 -mf2 idb ar
10339 -mf3 idb ar
10340 -io 3;
10341 
10342 desc 1 -tn 4 -sd f -nn 22;
10343 desc 2 -tn 4 -sd f -nn 22;
10344 desc 3 -tn 4 -sd f -nn 22;
10345 
10346 data 1 -do -11 320 (5)000 "8888" 005;
10347 data 2 -do -1 260 (5) 000 "7777" 005;
10348 data 3 -do -4 320 (5)000 (4)001 005;
10349 
10350 page -all;
10351 
10352 
10353 
10354 /*     ad3d4
10355 * The negative indicator is set.
10356 *  Three 4-bit trailing sign operands are used.
10357 *  Indirect descriptors are used for all operands.
10358 *  Address register modification is used for all operands.  */
10359 
10360 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10361 -ir ng
10362 -mf1 idb ar
10363 -mf2 idb ar
10364 -mf3 idb ar
10365 -io 1;
10366 
10367 desc 1 -tn 4 -sd t -sf -1 -nn 8;
10368 desc 2 -tn 4 -sd t -sf -1 -nn 8;
10369 desc 3 -tn 4 -sd t -sf -1 -nn 8;
10370 
10371 data 1 -do -4 "555+";
10372 data 2 -do -4 "777-";
10373 data 3 -do -4 (3)002 015;
10374 
10375 page -all;
10376 
10377 
10378 /*     ad3d5
10379 *  The truncation indicator is set.
10380 *  Three 9-bit floating point operands are used.
10381 *  The maximum number of page faults is taken.
10382 *  Indirect descriptors are used for all operands.
10383 *  Address register modification is used for all operands.  */
10384 
10385 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10386 -ir tn
10387 -mf1 idb ar reg
10388 -mf2 idb ar reg
10389 -mf3 idb ar reg
10390 -io 2;
10391 
10392 desc 1  -sd f -nn 63;
10393 desc 2 -sd f -nn 63;
10394 desc 3 -sd f -nn 50;
10395 
10396 data 1 -do -1 "+" (61)"4" 003;
10397 data 2 -do -62 "+" (61)"5" 003;
10398 data 3 -do -48 "+" (48)"9" 020;
10399 
10400 page -all;
10401 
10402 
10403 
10404 /*     ad3d6
10405 *  The truncation indicator is set.
10406 *  Three 9-bit leading sign operands are used.
10407 *  The maximum number of page faults is taken.
10408 *  Indirect descriptors are used for all operands.
10409 *  Address register modification is used for all operands.  */
10410 
10411 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10412 -ir tn
10413 -mf1 idb ar reg
10414 -mf2 idb ar reg
10415 -mf3 idb ar reg
10416 -io 3;
10417 
10418 desc 1 -sd l -sf 5 -nn 37;
10419 desc 2 -sd l -sf 5 -nn 37;
10420 desc 3 -sd l -sf 10 -nn 37;
10421 
10422 data 1 -do -20 "+" (6)"121212";
10423 data 2 -do -20 "+" (6)"212121";
10424 data 3 -do -32 "+" (5)"0" (31)"3";
10425 
10426 page -all;
10427 
10428 
10429 
10430 /*     ad3d7
10431 *  Rounding is tested.
10432 *  Three 9-bit trailing sign operands are used.
10433 *  The maximum number of page faults is taken.
10434 *  Indirect descriptors are used for all operands.
10435 *  Address register modification is used for all operands.  */
10436 
10437 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10438 -rb
10439 -mf1 idb ar reg
10440 -mf2 idb ar reg
10441 -mf3 idb ar reg
10442 -io 1;
10443 
10444 desc 1 -sd t -sf 5 -nn 37;
10445 desc 2 -sd t -sf 5 -nn 37;
10446 desc 3 -sd t -sf 10 -nn 37;
10447 
10448 data 1 -do -36 (6)"121212" "+";
10449 data 2 -do -1  (6)"212121" "+";
10450 data 3 -do -35 (5)"0" (31)"3" "+";
10451 
10452 page -all;
10453 
10454 
10455 
10456 /*     ad3d8
10457 *  The overflow indicator is set.
10458 *  Three 4-bit unsigned operands are used.
10459 *  Indirect descriptors are used for all operands.
10460 *  Address register modification is used for all operands.  */
10461 
10462 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10463 -ir ov
10464 -mf1 idb ar
10465 -mf2 idb ar
10466 -mf3 idb ar
10467 -io 2;
10468 
10469 desc 1 -tn 4 -sd n -sf 8 -nn 16;
10470 desc 2 -tn 4 -sd n -sf 8 -nn 16;
10471 desc 3 -tn 4 -sd n -sf 5 -nn 16;
10472 
10473 data 1 -do -15 (8) 042;
10474 data 2 -do -1  (8) 063;
10475 data 3 -do -8 (6) 125 120 000;
10476 
10477 page -all;
10478 
10479 
10480 
10481 /*     ad3d9
10482 *  The exponent overflow indicator is set.
10483 *  Three 9-bit floating point operands are used.
10484 *  The maximum number of page faults is taken.
10485 *  Indirect descriptors are used for all operands.
10486 *  Address register modification is used for all operands.  */
10487 
10488 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10489 -ir eo tn
10490 -mf1 idb ar reg
10491 -mf2 idb ar reg
10492 -mf3 idb ar reg
10493 -io 3;
10494 
10495 desc 1 -sd f -nn 6;
10496 desc 2 -sd f -nn 6;
10497 desc 3 -sd f -nn 6;
10498 
10499 data 1 -do -1 "+" (4)"9" 177;
10500 data 2 -do -5 "+" (4)"2" 177;
10501 data 3 -do -4 "+" "1222" 200;
10502 
10503 page -all;
10504 
10505 
10506 
10507 /*     ad3d10
10508 *  A 9-bit operand is added to a 9-bit operand and stored in a 4-bit operand.
10509 *  The maximum number of page faults is taken.
10510 *  Indirect descriptors are used for all operands.
10511 *  Address register modification is used for all operands.  */
10512 
10513 inst ad3d -nt "9 bit + 9 bit -> 4 bit"
10514 -mf1 idb ar reg
10515 -mf2 idb ar reg
10516 -mf3 idb ar
10517 -io 1;
10518 
10519 desc 1 -sd l -nn 10;
10520 desc 2 -sd l -nn 10;
10521 desc 3 -sd l -tn 4 -nn 11 -cn 1;
10522 
10523 data 1 -do -1 "+" "987654321";
10524 data 2 -do -8 "+" "123456789";
10525 data 3 -do -1 00 301 (4)021 00;
10526 
10527 page -all;
10528 
10529 
10530 
10531 /*     ad3d11
10532 *  A 4-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10533 *  Indirect descriptors are used for all operands.
10534 *  Address register modification is used for all operands.  */
10535 
10536 inst ad3d -nt "4 bit + 4 bit -> 9 bit"
10537 -mf1 idb ar
10538 -mf2 idb ar
10539 -mf3 idb ar reg
10540 -io 2;
10541 
10542 desc 1 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10543 desc 2 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10544 desc 3 -sd t -sf -1 -nn 11;
10545 
10546 data 1 -do -1 00 230 166 124 062 033;
10547 data 2 -do -5 00 022 064 126 170 233;
10548 data 3 -do -10 (9)"1" "0" "+";
10549 
10550 page -all;
10551 
10552 
10553 
10554 /*     ad3d12
10555 *  A 9-bit operand is added to a 4-bit operand and stored in a 4-bit operand.
10556 *  The maximum number of page faults is taken.
10557 *  Indirect descriptors are used for all operands.
10558 *  Address register modification is used for all operands.  */
10559 
10560 inst ad3d -nt "9 bit + 4 bit -> 4 bit"
10561 -mf1 idb ar reg
10562 -mf2 idb ar
10563 -mf3 idb ar
10564 -io 3;
10565 
10566 desc 1 -sd f -nn 11;
10567 desc 2 -sd f -tn 4 -nn 12;
10568 desc 3 -sd f -tn 4 -nn 13;
10569 
10570 data 1 -do -9 "+" "987654321" 036;
10571 data 2 -do -5 261 043 105 147 211 036;
10572 data 3 -do -6 301 (4)021 001 34;
10573 
10574 page -all;
10575 
10576 
10577 
10578 /*     ad3d13
10579 *  A 9-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10580 *  The maximum number of page faults is taken.
10581 *  Indirect descriptors are used for all operands.
10582 *  Address register modification is used for all operands.  */
10583 
10584 inst ad3d -nt "9 bit + 4 bit -> 9 bit"
10585 -mf1 idb ar reg
10586 -mf2 idb ar
10587 -mf3 idb ar reg
10588 -io 1;
10589 
10590 desc 1 -sd n -sf -5 -nn 9;
10591 desc 2 -sd n -tn 4 -sf -5 -nn 9;
10592 desc 3 -sd n -sf -5 -nn 10;
10593 
10594 data 1 -do -8 "987654321";
10595 data 2 -do -1 022 064 126 170 22;
10596 data 3 -do -5 (9)"1" "0";
10597 
10598 page -all;
10599 
10600 
10601 
10602 
10603 /*     ad3d14
10604 *  Leading, trailing, and floating point operands are mixed.
10605 *  The maximum number of page faults is taken.
10606 *  Indirect descriptors are used for all operands.
10607 *  Address register modification is used for all operands.  */
10608 
10609 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10610 -mf1 idb ar reg
10611 -mf2 idb ar reg
10612 -mf3 idb ar reg
10613 -io 2;
10614 
10615 desc 1 -sd l -sf 7 -nn 10;
10616 desc 2 -sd t -sf 7 -nn 10;
10617 desc 3 -sd f -nn 12;
10618 
10619 data 1 -do -9 "+" "987654321";
10620 data 2 -do -4 "123456789" "+";
10621 data 3 -do -8 "+" (9)"1" "0" 007;
10622 
10623 page -all;
10624 
10625 
10626 
10627 /*     ad3d15
10628 *  Floating point, unsigned, and leading sign operands are mixed.
10629 *  Indirect descriptors are used for all operands.
10630 *  Address register modification is used for all operands.  */
10631 
10632 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10633 -mf1 idb ar
10634 -mf2 idb ar
10635 -mf3 idb ar
10636 -io 3;
10637 
10638 desc 1 -tn 4 -sd f -nn 12;
10639 desc 2 -tn 4 -sd n -nn 9;
10640 desc 3 -tn 4 -sd l -nn 13 -sf -2;
10641 
10642 data 1 -do -6 271 207 145 103 041 000;
10643 data 2 -do -4 022 064 126 170 22;
10644 data 3 -do -5 301 (4)021 00000;
10645 
10646 page -all;
10647 
10648 
10649 ^L
10650 
10651 /*                  ad2d1
10652 *                   Use RL mod and cn field with indirect descriptors
10653 *                   add 9 bit scaled to 9 bit scaled
10654 *                   two character offset
10655 *
10656 */
10657 
10658 
10659 inst      ad2d      -nt "9scaled+9scal->9scaled"
10660 -io 2  -ir ng
10661 -mf1 ar rl 10 idb reg
10662 -mf2 ar rl 10 idb reg;
10663 
10664 desc1 -cn 1  -sd t ;
10665 desc2 -cn 1  -sd t ;
10666 
10667 data 1 -do -9 " " (9) "2" "-";
10668 data 2 -do -9 "*" (9) "1" "+";
10669 data 3 "*" (9) "1" "-";
10670 
10671 page -all;
10672 
10673 
10674 
10675 /*                  ad2d2
10676 *                   Use RL mod and cn field with indirect descriptors
10677 *                   9 bit scaled to 9 bit scaled
10678 *                   one character offset
10679 *
10680 */
10681 
10682 
10683 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10684 -io 2  -ir ng
10685 -mf1 ar rl 10 idb reg
10686 -mf2 ar rl 10 idb reg;
10687 
10688 desc1 -cn 1  -sd t ;
10689 desc2 -cn 1  -sd t ;
10690 
10691 data 1 -do -10 " " (9) "2" "-";
10692 data 2 -do -10 "*" (9) "1" "+";
10693 data 3 "*" (9) "1" "-";
10694 
10695 page -all;
10696 
10697 
10698 
10699 /*                  ad2d3
10700 *                   Use RL mod and cn field
10701 *                   9 bit scaled to 9 bit scaled
10702 *                   no indirect descriptors
10703 *
10704 */
10705 
10706 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10707 -io 2  -ir ng
10708 -mf1 ar rl 10  reg
10709 -mf2 ar rl 10 reg;
10710 
10711 desc1 -cn 1  -sd t ;
10712 desc2 -cn 1  -sd t ;
10713 
10714 data 1 -do -9 " " (9) "2" "-";
10715 data 2 -do -9 "*" (9) "1" "+";
10716 data 3 "*" (9) "1" "-";
10717 
10718 page -all;
10719 
10720 
10721 
10722 /*                  ad2d4
10723 *                   Use no modification
10724 *                   9bit scaled added to 9 bit scaled
10725 *
10726 */
10727 
10728 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10729 -io 2  -ir ng;
10730 
10731 desc1 -cn 1  -sd t  -nn 12;
10732 desc2 -cn 1  -sd t  -nn 12;
10733 
10734 data 1 -do -12 " " (11) "2" "-";
10735 data 2 -do -12 "*" (11) "1" "+";
10736 data 3 "*" (11) "1" "-";
10737 
10738 page -all;
10739 
10740 
10741 
10742 /*                  ad2d5
10743 *                   Use ar and rl
10744 *                   9 bit scaled to 9 bit scaled
10745 *
10746 */
10747 
10748 
10749 inst      ad2d      -nt "ar and rl modification"
10750 -io 2  -ir ng
10751 -mf1 ar rl 10
10752 -mf2 ar rl 10 ;
10753 
10754 desc1 -cn 1  -sd t ;
10755 desc2 -cn 1  -sd t ;
10756 
10757 data 1 -do -9 " " (9) "2" "-";
10758 data 2 -do -9 "*" (9) "1" "+";
10759 data 3 "*" (9) "1" "-";
10760 
10761 page -all;
10762 
10763 
10764 /*                  ad2d6
10765 *                   Use ar and rl modification, desc1
10766 *                   Use ar rl idb reg on desc2
10767 *                   9 bit scaled to 9 bit scaled
10768 *
10769 */
10770 
10771 
10772 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10773 -io 2  -ir ng
10774 -mf1 ar rl 10
10775 -mf2 ar rl 10 idb reg;
10776 
10777 desc1 -cn 1  -sd t ;
10778 desc2 -cn 1  -sd t ;
10779 
10780 data 1 -do -9 " " (9) "2" "-";
10781 data 2 -do -9 "*" (9) "1" "+";
10782 data 3 "*" (9) "1" "-";
10783 
10784 page -all;
10785 
10786 
10787 
10788 /*                  ad2d7
10789 *                   maximum length add, leading sign
10790 *                   one character over next page
10791 *                   all modification taken
10792 */
10793 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10794 -io 2
10795 -mf1 ar rl 63 idb reg
10796 -mf2 ar rl 63 idb reg;
10797 
10798 desc1 -cn 1 -sd l ;
10799 desc2 -cn 1 -sd l ;
10800 
10801 data 1 -do 4033 " " "+33" (15) "8642";
10802 data 2 -do 4033 "*" "+11" (15) "2357";
10803 data 3 "*" "+45" (14) "1000" "0999";
10804 
10805 page -all;
10806 
10807 
10808 
10809 
10810 /*                  ad2d8
10811 *                   This is a simple test
10812 *                   9 bit add to 9 bit all scaled trailing sign
10813 *
10814 */
10815 
10816 inst      ad2d      -nt "simple test";
10817 
10818 desc1  -sd t -sf 10 -nn 63;
10819 desc2  -sd t -sf 10 -nn 63;
10820 
10821 data 1 "11" (15) "1111" "-";
10822 data 2 "22" (15) "2222" "+";
10823 data 3 "11" (15) "1111" "+";
10824 
10825 page -all;
10826 
10827 
10828 
10829 
10830 /*                  ad2d9
10831 *                   maximum length add resulting
10832 *                   in an overflow
10833 *                   all modification taken
10834 *                   9 bit scaled to 9 bit scaled
10835 */
10836 inst      ad2d      -nt "truncation fault"
10837 -io 1  -ir ov
10838 -mf1 ar rl 63 idb reg
10839 -mf2 ar rl 63 idb reg;
10840 
10841 desc1 -sd l -cn 1;
10842 desc2 -sd l -cn 1;
10843 
10844 data 1 -do 4033 " " "+33" (15) "8642";
10845 data 2 -do 4033 "*" "+71" (15) "2357";
10846 data 3  "*" "+" "05" (14) "1000" "0999";
10847 
10848 page -all;
10849 
10850 
10851 
10852 
10853 
10854 /*                  ad2d10
10855 *                   maximum length over two pages
10856 *                   no faults, 9 bit to 4 bit
10857 *
10858 */
10859 
10860 inst      ad2d      -nt "9 bit -> 4 bit"
10861 -io 1
10862 -mf1 ar rl 63
10863 -mf2 ar rl 63 ;
10864 
10865 desc1 -sd t ;
10866 desc2 -sd t  -tn 4;
10867 
10868 data 1 -do 4033  "33" (15) "3333" "+";
10869 data 2 -do 4064  021021 (7) 021021021021 02126;
10870 data 3   104104 (7) 104104104104 1043;
10871 
10872 page -all;
10873 
10874 
10875 
10876 
10877 
10878 /*                  ad2d11
10879 *                   9 bit to 4 bit all page faults possible
10880 *                    no reg modification on desc2
10881 *
10882 */
10883 
10884 inst      ad2d      -nt "9bit ->4bit"
10885 -io 2
10886 -mf1 ar rl 63 idb reg
10887 -mf2 ar rl 63 idb ;
10888 
10889 desc1 -cn 1 -sd l;
10890 desc2   -cn 1 -sd t -tn 4;
10891 
10892 data 1 -do 4033 " " "+33" (15) "3333";
10893 data 2 -do 4068 "*" 021021 (7) 021021021021  0213;
10894 data 3 "*" 104104 (7) 104104104104 1043;
10895 
10896 page -all;
10897 
10898 
10899 
10900 
10901 
10902 /*                  ad2d12
10903 *                   4 bit added to 4 bit
10904 *                   maximum length
10905 *                   all page faults taken
10906 *                   no reg modification
10907 */
10908 
10909 inst      ad2d      -nt "4 bit + 4bit"
10910 -io 1
10911 -mf1 ar rl 63 idb
10912 -mf2 ar rl 63 idb;
10913 
10914 desc1 -cn 1 -sd t -tn 4;
10915 desc2 -cn 1 -sd t -tn 4;
10916 
10917 data 1 -do 4065 " " 021021 (7) 021021021021 0213;
10918 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
10919 data 3 "*" 042042 (7) 042042042042 0423;
10920 
10921 page -all;
10922 
10923 
10924 
10925 
10926 
10927 /*                  ad2d13
10928 *                   floating point add
10929 *                    9 bit to 9bit
10930 *                    all page faults taken
10931 *
10932 */
10933 
10934 inst      ad2d      -nt "9bit float add"
10935 -io 1
10936 -mf1 ar rl 63 reg idb
10937 -mf2 ar rl 63 reg idb;
10938 
10939 desc1 -sd f;
10940 desc2 -sd f;
10941 
10942 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
10943 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
10944 data 3 "+" (19) "0" "1" (9) "2" "1" (29) "0" "11" 005;
10945 
10946 page -all;
10947 
10948 
10949 
10950 
10951 
10952 
10953 /*                  ad2d14
10954 *                   4 bit floating added to
10955 *                   4 bit floating
10956 *
10957 */
10958 
10959 inst      ad2d      -nt "4 float to 4 float"
10960 -io 1
10961 -mf1 ar rl 10 ida
10962 -mf2 ar rl 10 ida;
10963 
10964 desc1 -sd f -tn 4;
10965 desc2 -sd f -tn 4;
10966 
10967 data 1 -do -1 300 000 021 021 000;
10968 data 2 -do -1 300 000 021 021 000;
10969 data 3 300 000 042 042 000;
10970 
10971 page -all;
10972 
10973 
10974 
10975 
10976 
10977 /*                  ad2d15
10978 *                   test 4bit scaled to 9 bit
10979 *
10980 */
10981 
10982 inst      ad2d      -nt "4bit->9bit"
10983 -io 1
10984 -mf1 ar rl 5 idb
10985 -mf2 ar rl 5 idb reg;
10986 
10987 desc 1 -tn 4 -sd l;
10988 desc 2 -sd n;
10989 
10990 data 1 30102100;
10991 data 2 -do 4 "02222";
10992 data 3  "03332";
10993 
10994 page -all;
10995 
10996 
10997 
10998 
10999 
11000 /*                  ad2d16
11001 *                   test 9 floating to 4 floating
11002 *
11003 */
11004 
11005 inst      ad2d      -nt "9float->4 float"
11006 -io 1
11007 -mf1 ar rl 5 idb reg
11008 -mf2 ar rl 7 idb;
11009 
11010 desc 1 -sd f;
11011 desc 2 -sd f -tn 4;
11012 
11013 data 1 "+" (3) "1" 000;
11014 data 2 300 042 040 00;
11015 data 3 30006306000;
11016 
11017 page -all;
11018 
11019 
11020 
11021 
11022 
11023 
11024 /*                  ad2d17
11025 *                   4 float to 9 float
11026 *
11027 */
11028 
11029 inst      ad2d      -nt "4float -> 9float"
11030 -io 1
11031 -mf1 ar rl 7 idb
11032 -mf2 ar rl 7 idb reg;
11033 
11034 desc 1 -sd f -tn 4 ;
11035 desc 2 -sd f;
11036 
11037 data 1 300 042 040 00;
11038 data 2 "+0" (3) "1" "0" 000;
11039 data 3 "+01332" 000;
11040 
11041 page -all;
11042 
11043 
11044 
11045 
11046 
11047 
11048 /*                  ad2d18
11049 *                   9 scaled to 9 float
11050 *
11051 */
11052 
11053 inst      ad2d      -nt "9sacled to 9 float"
11054 -io 2
11055 -mf1 ar rl 5 idb reg
11056 -mf2 ar rl 6 idb reg;
11057 
11058 desc1 -sd l;
11059 desc2 -sd f;
11060 
11061 data 1 "+" (4) "3";
11062 data 2 "+" "0" (3) "2" 000;
11063 data 3 "+" "3555" 000;
11064 
11065 page -all;
11066 
11067 
11068 
11069 
11070 
11071 /*                  ad2d19
11072 *                   9 float to 9 scaled
11073 *
11074 */
11075 
11076 inst      ad2d      -nt "9 float to 9 scaled"
11077 -io 2
11078 -mf1 ar rl 6 idb reg
11079 -mf2 ar rl 5 idb reg;
11080 
11081 desc1 -sd f;
11082 desc2 -sd l;
11083 
11084 data 1 "+" "0" (3) "2" 000;
11085 data 2 "+" (4) "3";
11086 data 3 "+"  "3555";
11087 
11088 page -all;
11089 
11090 
11091 
11092 
11093 
11094 /*                  ad2d20
11095 *                   9 scaled to 4 float
11096 *
11097 */
11098 
11099 inst      ad2d      -nt "9scaled->4float"
11100 -io 2
11101 
11102 -mf1 ar rl 5 idb reg
11103 -mf2 ar rl 6 idb;
11104 
11105 desc 1 -sd l;
11106 desc 2 -sd f -tn 4;
11107 
11108 data 1 "+0" (3) "2";
11109 data 2 303063 000;
11110 data 3 305125000;
11111 
11112 page -all;
11113 
11114 
11115 
11116 
11117 
11118 /*                  ad2d21
11119 *                   9 float to 4 scaled
11120 *
11121 */
11122 
11123 inst      ad2d      -nt "9float->4scaled"
11124 -io 1
11125 -mf1 ar rl 6 idb reg
11126 -mf2 ar rl 4 idb;
11127 
11128 desc 1 -sd f;
11129 desc 2 -sd l -tn 4;
11130 
11131 data 1 -do -1 "+0" (3) "2" 000;
11132 data 2 -do -2 303 063;
11133 data 3 305125;
11134 
11135 page -all;
11136 
11137 
11138 
11139 
11140 
11141 /*                  ad2d22
11142 *                   4scaled to 9 float
11143 *
11144 */
11145 
11146 inst      ad2d      -nt "4scaled-.9float"
11147 -io 1
11148 -mf1 ar rl 4 idb
11149 -mf2 ar rl 6 idb reg;
11150 
11151 desc 1 -sd l -tn 4;
11152 desc 2 -sd f;
11153 
11154 data 1 -do -1 303063;
11155 data 2 -do -1 "+0" (3) "2" 000;
11156 data 3 "+0" (3) "5" 000;
11157 
11158 page -all;
11159 
11160 
11161 
11162 
11163 
11164 /*                  ad2d23
11165 *                   4 floating to 9 scaled
11166 *
11167 */
11168 
11169 inst      ad2d       -nt "4float->9scaled"
11170 -io 1
11171 -mf1 ar rl 6 idb
11172 -mf2 ar rl 5 idb reg;
11173 
11174 desc 1 -sd f -tn 4;
11175 desc 2 -sd n;
11176 
11177 data 1 -do -1 303 063 000;
11178 data 2 -do -2 "00" "555";
11179 data 3 "00" "888";
11180 
11181 page -all;
11182 
11183 
11184 
11185 
11186 
11187 /*                  ad2d24
11188 *                   4 scaled to 4 float
11189 *
11190 */
11191 
11192 inst      ad2d      -nt "4scaled to 4 float"
11193 -io 1
11194 -mf1 ar rl 4 idb
11195 -mf2 ar rl 6 idb;
11196 
11197 desc 1 -tn 4 -sd l;
11198 desc 2 -tn 4 -sd f;
11199 
11200 data 1 -do -1 303 063;
11201 data 2 -do -1 302042000;
11202 data 3 305125 000;
11203 
11204 page -all;
11205 
11206 
11207 
11208 
11209 
11210 /*                  ad2d25
11211 *                   4 floating to 4 scaled
11212 *
11213 */
11214 
11215 inst      ad2d      -nt "4 floating to 4 scaled"
11216 -io 2
11217 -mf1 ar rl 6 idb
11218 -mf2 ar rl 4 idb;
11219 
11220 desc 1 -tn 4 -sd f;
11221 desc 2 -tn 4 -sd l;
11222 
11223 data 1 -do -1 302042000;
11224 data 2 -do -1 303 063;
11225 data 3 305125;
11226 
11227 page -all;
11228 
11229 
11230 
11231 
11232 
11233 /*                  ad2d26
11234 *
11235 *         Use  RL  mod and strings of length 63  and  cn  fields.
11236 */
11237 
11238 
11239 inst      ad2d      -nt "63 char string"          -io 2
11240           -mf1      rl 63     idb reg ar
11241           -mf2      rl 63     idb reg ar;
11242 
11243 desc 1    -sd n     -cn 1;
11244 desc 2    -sd n     -cn 2;
11245 
11246 data 1    -do -21   " "       "234"  (15) "1234";
11247 data 2    -do -22   "**"      "345"  (15) "2345";
11248 data 3    "**"  "579"  (15) "3579";     /* This is just test data.  This is how  descriptor 2
11249                                         *  data is going to look after the  ad2d.  */
11250 
11251 
11252 page      -all;
11253 
11254 
11255 ^L
11256 
11257 /*                  sb3d1
11258 *                   a simple test
11259 *                   no modification used
11260  -                  9 bit - 9 bit to 9 bit
11261 *
11262 */
11263 
11264 inst      sb3d      -nt"9bit-9bit->9bit"
11265 -io 2;
11266 
11267 desc1 -sd l -cn 1 -nn 10;
11268 desc2 -sd l -cn 1 -nn 10;
11269 desc3 -sd l -cn 1 -nn 10;
11270 
11271 data 1 " -" (9) "1";
11272 data 2 " +" (9) "1";
11273 data 3 000 "+" (9) "2";
11274 
11275 page -all;
11276 
11277 
11278 
11279 
11280 /*                  sb3d2
11281 *                   9 bit - 9 bit to 9 bit
11282 *                   negative indicator on
11283 *                   all page faults taken
11284 *
11285 */
11286 
11287 inst      sb3d      -nt "9 bit - 9bit to 9 bit"
11288 -io 1 -ir ng
11289 -mf1 ar rl 23 idb reg
11290 -mf2 ar rl 24 idb reg
11291 -mf3 ar rl 24 idb reg;
11292 
11293 desc1 -sd t -cn 2;
11294 desc2 -sd t -cn 1;
11295 desc3 -sd l -cn 3;
11296 
11297 data 1 -do -9 "  " (5) "0" (8) "12" "1+";
11298 data 2 -do -11 " " (6) "0" (8) "23" "2-";
11299 data 3 000000000 "-"  (6) "0" (8) "35" "3";
11300 
11301 page -all;
11302 
11303 
11304 
11305 
11306 /*                  sb3d3
11307 *                   9 bit scaled to 4 bit float to
11308 *                    4 bit float
11309 *
11310 */
11311 
11312 inst      sb3d      -nt "4bit float-9bit to 4bit"
11313 -io 2 -ir ng
11314 -mf1 ar rl 10 idb reg
11315 -mf2 ar rl 10 idb
11316 -mf3 ar rl 10 idb;
11317 
11318 desc1 -sd t -cn 1;
11319 desc2 -sd f -tn 4;
11320 desc3 -sd f -tn 4;
11321 
11322 data 1 -do -10 " " (5) "0" (4) "2" "+";
11323 data 2 -do -4 300 000 021 021 000;
11324 data 3  -do -4 320 000 021 021 000;
11325 
11326 page -all;
11327 
11328 
11329 
11330 
11331 /*                  sb3d4
11332 *                   9 bit scaled - 9 bit scaled to
11333 *                   9 bit scaled
11334 *                   all page faults taken
11335 *                   truncation indicator set
11336 *
11337 */
11338 
11339 inst      sb3d      -nt "9bit-9bit to 9bit"
11340 -io 2 -ir tn
11341 -mf1 ar rl 63 idb reg
11342 -mf2 ar rl 63 idb reg
11343 -mf3 ar rl 63 idb reg;
11344 
11345 desc1 -cn 1 -sd l -sf 5;
11346 desc2 -cn 2 -sd l -sf 10;
11347 desc3 -cn 3 -sd l -sf 10;
11348 
11349 data 1 -do 4033 " -" (5) "0" (19) "543";
11350 data 2 -do 4034 "  +" (5) "0" (19) "765";
11351 data 3 -do 4035 (3) 000 "+"  (5) "0" "76577" (17) "120" "0";
11352 
11353 page -all;
11354 
11355 
11356 
11357 
11358 /*                  sb3d5
11359 *                   9 bit scaled - 9 bit scaled tp
11360 *                   9 bit scaled
11361 *                    all page faults taken
11362 *                   rounding desired, therefore no truncation
11363 *
11364 */
11365 
11366 inst      sb3d      -nt "no truncation"
11367 -io 3
11368 -mf1 ar rl 63 idb reg
11369 -mf2 ar rl 63 idb reg
11370 -mf3 ar rl 63 idb reg
11371 -rb;
11372 
11373 desc1 -cn 1 -sd l -sf 5;
11374 desc2 -cn 2 -sd l -sf 10;
11375 desc3 -cn 1 -sd l -sf 10;
11376 
11377 data 1 -do 4033 " -" (5) "0" (19) "543";
11378 data 2 -do 4034 "  +" (5) "0" (19) "765";
11379 data 3 -do 4033 000 "+" (5) "0" "76577" (17) "120" "0";
11380 
11381 page -all;
11382 
11383 
11384 
11385 
11386 /*                  sb3d6
11387 *                   all operands 4 bit scaled
11388 *                   all page faults taken
11389 *                    negative indicator set
11390 *
11391 */
11392 
11393 inst      sb3d      -nt "4 bit-4bit to 4bit scaled"
11394 -io 1 -ir ng
11395 -mf1 ar rl 63 idb
11396 -mf2 ar rl 63 idb
11397 -mf3 ar rl 63 idb;
11398 
11399 desc1 -sd l -tn 4 -cn 1;
11400 desc2 -sd l -tn 4 -cn 1;
11401 desc3 -sd l -tn 4 -cn 1;
11402 
11403 data 1 " " 300 (26) 000 (4) 105 (8) 000;
11404 data 2 " " 300 (26) 000 (3) 105 104 (7) 000;
11405 data 3 000320 (29) 000 001 (8) 000;
11406 
11407 page -all;
11408 
11409 
11410 
11411 
11412 /*                  sb3d7
11413 *                   9 bit scaled - 9 bit scaled to
11414 *                   9 bit scaled
11415 *                   all page faults taken
11416 *                    rounding desired and it occurs
11417 *
11418 */
11419 
11420 inst      sb3d      -nt "rounded result"
11421 -io 2 -rb
11422 -mf1 ar rl 63 idb reg
11423 -mf2 ar rl 63 idb reg
11424 -mf3 ar rl 63 idb reg;
11425 
11426 desc1 -cn 1 -sd l -sf 5;
11427 desc2 -cn 1 -sd l -sf 10;
11428 desc3 -sd l -cn 1 -sf 10;
11429 
11430 data 1 -do 4033 " -" (5) "0" (17) "543" "043543";
11431 data 2 -do 4033 " +" (5) "0" (19) "765";
11432 data 3 -do 4033 000 "+" (5) "0" "76577" (16) "120" "1195";
11433 
11434 page -all;
11435 
11436 
11437 
11438 
11439 /*                  sb3d8
11440 *                   all operands 9 bit float
11441 *                   all page faults taken
11442 *                   no rounding needed
11443 :
11444 */
11445 
11446 inst      sb3d      -nt "9 bit floating"
11447 -io 1
11448 -mf1 ar rl 10 idb reg
11449 -mf2 ar rl 10 idb reg
11450 -mf3 ar rl 10 idb reg;
11451 
11452 desc1 -sd f -cn 1;
11453 desc2 -sd f -cn 1;
11454 desc3 -sd f -cn 1;
11455 
11456 data 1 -do -10 " -" (8) "1" 001;
11457 data 2 -do -10 " +" (8) "2" 001;
11458 data 3 -do -10 000 "+" (8) "3" 001;
11459 
11460 page -all;
11461 
11462 
11463 
11464 
11465 /*                  sb3d9
11466 *                   all operands 9 bit floating
11467 *                   rounding not desired, but required
11468 *                   set round bit
11469 *
11470 */
11471 
11472 inst      sb3d      -nt "round floating"
11473 -io 2 -rb
11474 -mf1 ar rl 10 ida
11475 -mf2 ar rl 10 ida
11476 -mf3 ar rl 10 ida;
11477 
11478 desc1 -cn 1 -sd f;
11479 desc2 -cn 1 -sd f;
11480 desc3 -sd f;
11481 
11482 data 1 " +" (8) "3" 000;
11483 data 2 " +" (8) "9" 001;
11484 data 3 "+" "9" (7) "6" 001;
11485 
11486 page -all;
11487 
11488 
11489 
11490 
11491 /*                  sb3d10
11492 *                   all operands 9 bit floating
11493 *                   truncation will occur
11494 *
11495 */
11496 
11497 inst      sb3d      -nt "truncation"
11498 -io 3 -ir tn
11499 -mf1 ar rl 10
11500 -mf2 ar rl 10
11501 -mf3 ar rl 10;
11502 
11503 desc1 -sd f;
11504 desc2 -sd f;
11505 desc3 -sd f;
11506 
11507 data 1 "+" (8) "3" 000;
11508 data 2 "+" (8) "9" 001;
11509 data 3 "+" "9" (6) "6" "5" 001;
11510 
11511 page -all;
11512 
11513 
11514 
11515 
11516 /*                  sb3d11
11517 *                   all operands 9 bit floating
11518 *                   truncation will occur
11519 :
11520 */
11521 
11522 inst      sb3d      -nt "truncation"
11523 -ir ng tn
11524 -mf1 ar rl 10
11525 -mf2 ar rl 10
11526 -mf3 ar rl 10;
11527 
11528 desc1 -sd f;
11529 desc2 -sd f;
11530 desc3 -sd f;
11531 
11532 data 1 -do -4 "+" (8) "3" 000;
11533 data 2 -do -4 "-" (8) "9" 001;
11534 data 3 -do -4 "-" "10" (6) "3" 002;
11535 
11536 page -all;
11537 
11538 
11539 
11540 
11541 /*                  sb3d12
11542 *                   4 scaled - 4 scaled to 4 float
11543 *
11544 */
11545 
11546 inst      sb3d      -nt "4sc-4sc->4float"
11547 -io 3
11548 -mf1 ar rl 4 idb
11549 -mf2 ar rl 4 idb
11550 -mf3 ar rl 6 idb;
11551 
11552 desc 1 -tn 4 -sd l;
11553 desc 2 -tn 4 -sd l;
11554 desc 3 -tn 4 -sd f;
11555 
11556 data 1 -do -1  323 063;
11557 data 2 -do -1 302 042;
11558 data 3 -do -1  305 125 000;
11559 
11560 page -all;
11561 
11562 
11563 
11564 
11565 /*                  sb3d13
11566 *                   4 scaled -4 float to 4 scaled
11567 *
11568 */
11569 
11570 inst      sb3d      -nt "4scaled-4float to 4 scaled"
11571 -io 2
11572 -mf1 ar rl 6 idb
11573 -mf2 ar rl 4 idb
11574 -mf3 ar rl 4 idb;
11575 
11576 desc 1 -tn 4 -sd f;
11577 desc 2 -tn 4 -sd l;
11578 desc 3 -tn 4 -sd l;
11579 
11580 data 1 -do -1 323 063 000;
11581 data 2 -do -1 302 042;
11582 data 3 -do -1 305 125;
11583 
11584 page -all;
11585 
11586 
11587 
11588 
11589 /*                  sb3d14
11590 *                   4 floating - 9 scaled to 9 floating
11591 *
11592 */
11593 
11594 inst      sb3d       -nt "4float-9scaled->9float"
11595 -io 1
11596 -mf1 ar  rl 4 idb reg
11597 -mf2 ar rl 6 idb
11598 -mf3 ar rl 5 idb reg;
11599 
11600 desc 1 -sd t;
11601 desc 2 -sd f -tn 4;
11602 desc 3 -sd f;
11603 
11604 data 1 -do -3 "333-";
11605 data 2 -do -2 302 042 000;
11606 data 3 -do -4 "+555" 000;
11607 
11608 page -all;
11609 
11610 
11611 
11612 
11613 /*                  sb3d15
11614 *                   9 scaled - 4 bit to 9 scaled
11615 *
11616 */
11617 
11618 inst      sb3d      -nt "9bit-4bit->9bit"
11619 -io 1
11620 -mf1 ar rl 5 idb
11621 -mf2 ar rl 5 idb reg
11622 -mf3 ar rl 5 idb reg;
11623 
11624 desc 1 -tn 4 -sd l;
11625 desc 2 -sd n;
11626 desc 3 -sd n;
11627 
11628 data 1 -do -1 321 02100;
11629 data 2 -do 4 "02222";
11630 data 3 -do -1 "03332";
11631 
11632 page -all;
11633 
11634 
11635 
11636 
11637 /*                  sb3d16
11638 *                   4float-9float to 4 float
11639 *
11640 */
11641 
11642 inst      sb3d      -nt "4flo-9flo->4flo"
11643 -io 1
11644 -mf1 ar rl 5 idb reg
11645 -mf2 ar rl 7 idb
11646 -mf3 ar rl 7 idb;
11647 
11648 desc 1 -sd f;
11649 desc 2 -sd f -tn 4;
11650 desc 3 -sd f -tn 4;
11651 
11652 data 1 -do -1 "-" (3) "1" 000;
11653 data 2 -do -1 300 042 040 00;
11654 data 3 -do -1 30006306000;
11655 
11656 page -all;
11657 
11658 
11659 
11660 
11661 
11662 /*                  sb3d17
11663 *                   9 float - 4 float to 9 float
11664 *
11665 */
11666 
11667 inst      sb3d      -nt "9flo-4flo->9flo"
11668 -io 1
11669 -mf1 ar rl 7 idb
11670 -mf2 ar rl 7 idb reg
11671 -mf3 ar rl 7 idb reg;
11672 
11673 desc 1 -sd f -tn 4 ;
11674 desc 2 -sd f;
11675 desc 3 -sd f;
11676 
11677 data 1 -do -1 320 042 040 00;
11678 data 2 -do -1 "+0" (3) "1" "0" 000;
11679 data 3 -do -1 "+01332" 000;
11680 
11681 page -all;
11682 
11683 
11684 
11685 
11686 
11687 /*                  sb3d18
11688 *                   9 float-9 scaled to 9 float
11689 *
11690 */
11691 
11692 inst      sb3d      -nt "9flo-9sca->9flo"
11693 -io 2
11694 -mf1 ar rl 5 idb reg
11695 -mf2 ar rl 6 idb reg
11696 -mf3 ar rl 6 idb reg;
11697 
11698 desc1 -sd l;
11699 desc2 -sd f;
11700 
11701 data 1 -do -1 "-" (4) "3";
11702 data 2  -do -1 "+" "0" (3) "2" 000;
11703 data  3 -do -1 "+" "3555" 000;
11704 
11705 page -all;
11706 
11707 
11708 
11709 
11710 /*                  sb3d19
11711 *                   9scaled - 9 floating to 9 scaled
11712 *
11713 */
11714 
11715 inst      sb3d      -nt "9sca-9flo->9sca"
11716 -io 2
11717 -mf1 ar rl 6 idb reg
11718 -mf2 ar rl 5 idb reg
11719 -mf3 ar rl 5 idb reg;
11720 
11721 desc1 -sd f;
11722 desc2 -sd l;
11723 desc 3 -sd l;
11724 
11725 data 1 -do -1 "-" "0" (3) "2" 000;
11726 data 2  -do -1 "+" (4) "3";
11727 data 3  -do -1 "+"  "3555";
11728 
11729 page -all;
11730 
11731 
11732 
11733 
11734 /*                  sb3d20
11735 *                   4 float - 9 scaled to 4 float
11736 *
11737 */
11738 
11739 inst      sb3d      -nt "4flo-9sca->9sca"
11740 -io 2
11741 
11742 -mf1 ar rl 5 idb reg
11743 -mf2 ar rl 6 idb
11744 -mf3 ar rl 6 idb;
11745 
11746 desc 1 -sd l;
11747 desc 2 -sd f -tn 4;
11748 desc 3 -sd f -tn 4;
11749 
11750 data 1 -do -1 "-0" (3) "2";
11751 data 2 -do -1 303063 000;
11752 data 3 -do -1 305125000;
11753 
11754 page -all;
11755 
11756 
11757 
11758 
11759 /*                  sb3d21
11760 *                   4scaled - 9 float to 4 scaled
11761 *
11762 */
11763 
11764 inst      sb3d      -nt "4sca-9flo->4sca"
11765 -io 1
11766 -mf1 ar rl 6 idb reg
11767 -mf2 ar rl 4 idb
11768 -mf3 ar rl 4 idb;
11769 
11770 desc 1 -sd f;
11771 desc 2 -sd l -tn 4;
11772 desc 3 -sd l -tn 4;
11773 
11774 data 1 -do -1 "-0" (3) "2" 000;
11775 data 2 -do -2 303 063;
11776 data 3 305125;
11777 
11778 page -all;
11779 
11780 
11781 
11782 
11783 /*                  sb3d22
11784 *                   9 float - 4 scaled to 9 float
11785 *
11786 */
11787 
11788 inst      sb3d      -nt "9flo-4sca->9flo"
11789 -io 1
11790 -mf1 ar rl 4 idb
11791 -mf2 ar rl 6 idb reg
11792 -mf3 ar rl 6 idb reg;
11793 
11794 desc 1 -sd l -tn 4;
11795 desc 2 -sd f;
11796 desc 3 -sd f;
11797 
11798 data 1 -do -1 323063;
11799 data 2 -do -1 "+0" (3) "2" 000;
11800 data 3 "+0" (3) "5" 000;
11801 
11802 page -all;
11803 
11804 
11805 
11806 
11807 /*                  sb3d23
11808 *                   9 scaled - 4 floating to 9 scaled
11809 *
11810 */
11811 
11812 inst      sb3d       -nt "9sca-4flo->9sca"
11813 -io 1
11814 -mf1 ar rl 6 idb
11815 -mf2 ar rl 5 idb reg
11816 -mf3 ar rl 5 idb reg;
11817 
11818 desc 1 -sd f -tn 4;
11819 desc 2 -sd n;
11820 desc 3 -sd n;
11821 
11822 data 1 -do -1 323 063 000;
11823 data 2 -do -2 "00" "555";
11824 data 3 "00" "888";
11825 
11826 page -all;
11827 
11828 
11829 
11830 
11831 /*                  sb3d24
11832 *                   4 float - 4 scaled to 4 float
11833 *
11834 */
11835 
11836 inst      sb3d      -nt "4flo-4sca->4flo"
11837 -io 1
11838 -mf1 ar rl 4 idb
11839 -mf2 ar rl 6 idb
11840 -mf3 ar rl 6 idb;
11841 
11842 desc 1 -tn 4 -sd l;
11843 desc 2 -tn 4 -sd f;
11844 desc 3 -tn 4 -sd f;
11845 
11846 data 1 -do -1 323 063;
11847 data 2 -do -1 302042000;
11848 data 3 305125 000;
11849 
11850 page -all;
11851 
11852 
11853 
11854 
11855 /*                  sb3d25
11856 *                   4 scaled - 4 floatint to 4 scaled
11857 *
11858 */
11859 
11860 inst      sb3d      -nt "4sca-4flo->4flo"
11861 -io 2
11862 -mf1 ar rl 6 idb
11863 -mf2 ar rl 4 idb
11864 -mf3 ar rl 4 idb;
11865 
11866 desc 1 -tn 4 -sd f;
11867 desc 2 -tn 4 -sd l;
11868 desc 3 -tn 4 -sd l;
11869 
11870 data 1 -do -1 322042000;
11871 data 2 -do -1 303 063;
11872 data 3 305125;
11873 
11874 page -all;
11875 
11876 
11877 
11878 
11879 /*                  sb3d26
11880 *
11881 *         Subtraction yields a zero number.
11882 */
11883 
11884 inst      sb3d      -nt "Result = zero"  -io 1
11885           -ir       zr
11886           -mf1      ar
11887           -mf2      ida
11888           -mf3      ar reg idb  rl 12;
11889 
11890 desc 1    -sd l     -nn 7     -sf 2;
11891 
11892 desc 2    -sd t     -nn 6     -sf 3;
11893 
11894 desc 3    -sd n     -sf -4;
11895 
11896 
11897 data 1    -do -3    053 "55"  "5550";
11898 
11899 data 2    -do -4    "5555"  "5" 053;
11900 
11901 data 3    -do -2    "00"  "0000000000";
11902 
11903 
11904 page      -all;
11905 
11906 
11907 ^L
11908 
11909 /*     sb2d1
11910 *  The zero indicator is set.
11911 *  Two 4-bit floating point operands are used.
11912 *  The maximum number of page faults is taken.
11913 *  Indirect descriptors are used for all operands.
11914 *  Address register modification is used for all operands.  */
11915 
11916 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11917 -ir zr
11918 -mf1 idb ar
11919 -mf2 idb ar
11920 -io 1;
11921 
11922 desc 1 -tn 4 -sd f -nn 63;
11923 desc 2 -tn 4 -sd f -nn 63;
11924 
11925 data 1 -do -1 261 (30)021 00;
11926 data 2 -do -31 261 (30)021 00;
11927 data 3 300 (29)000 007 36;
11928 
11929 page -all;
11930 
11931 
11932 
11933 /*     sb2d2
11934 *  The zero indicator is set.
11935 *  Two 4-bit operands with leading sign are used.
11936 *  The maximum number of page faults is taken.
11937 *  Indirect descriptors are used for all operands.
11938 *  Address register modification is used for all operands.  */
11939 
11940 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11941 -ir zr
11942 -mf1 idb ar
11943 -mf2 idb ar
11944 -io 2;
11945 
11946 desc 1 -tn 4 -sd l -sf 5 -nn 4;
11947 desc 2 -tn 4 -sd l -sf 4 -nn 5;
11948 
11949 data 1 -do -1 263 222;
11950 data 2 -do -2 263 222;
11951 data 3 300 000 00;
11952 
11953 page -all;
11954 
11955 
11956 
11957 /*     sb2d3
11958 *  The negative indicator is set.
11959 *  Two 9-bit floating point operands are used.
11960 *  The maximum number of page faults is taken.
11961 *  Indirect descriptors are used for all operands.
11962 *  Address register modification is used for all operands.  */
11963 
11964 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11965 -ir ng
11966 -mf1 idb ar reg
11967 -mf2 idb ar reg
11968 -io 1;
11969 
11970 desc 1 -sd f -nn 18;
11971 desc 2 -sd f -nn 18;
11972 
11973 data 1 -do -14 "+" (3)"98765" "8" 007;
11974 data 2 -do -4  "+" (3)"32411" "7" 007;
11975 data 3 "-" (3)"66354" "1" 007;
11976 
11977 page -all;
11978 
11979 
11980 
11981 /*     sb2d4
11982 *  The negative indicator is set.
11983 *  Two 9-bit operands with trailing sign are used.
11984 *  The maximum number of page faults is taken.
11985 *  Indirect descriptors are used for all operands.
11986 *  Address register modification is used for all operands.  */
11987 
11988 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11989 -ir ng
11990 -mf1 idb ar reg
11991 -mf2 idb ar reg
11992 -io 2;
11993 
11994 desc 1 -sd t -sf 5 -nn 25;
11995 desc 2 -sd t -sf 5 -nn 25;
11996 
11997 data 1 -do -23 (24) "5" "+";
11998 data 2 -do -4  (24) "4" "-";
11999 data 3 (24) "9" "-";
12000 
12001 page -all;
12002 
12003 
12004 
12005 /*     sb2d5
12006 *  The truncation indicator is set.
12007 *  Two 4-bit floating point operands are used.
12008 *  The maximum number of page faults is taken.
12009 *  Indirect descriptors are used for all operands.
12010 *  Address register modification is used for all operands.  */
12011 
12012 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12013 -ir tn
12014 -mf1 idb ar
12015 -mf2 idb ar
12016 -io 2;
12017 
12018 desc 1 -tn 4 -sd f -nn 8;
12019 desc 2 -tn 4 -sd f -nn 8;
12020 
12021 data 1 -do -2 331 231 231 004;
12022 data 2 -do -2 270 166 124 003;
12023 data 3     301 010 166 005;
12024 
12025 page -all;
12026 
12027 
12028 
12029 /*     sb2d6
12030 *  The truncation indicator is set.
12031 *  Two 9-bit leading sign operands are used.
12032 *  The maximum number of page faults is taken.
12033 *  Indirect descriptors are used for all operands.
12034 *  Address register modification is used for all operands.  */
12035 
12036 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12037 -ir tn
12038 -mf1 idb ar reg
12039 -mf2 idb ar reg
12040 -io 2;
12041 
12042 desc 1 -sd l -sf 4 -nn 63;
12043 desc 2 -sd l -sf 5 -nn 62;
12044 
12045 data 1 -do -60 "+" (62)"3";
12046 data 2 -do -3 "+" (61)"9";
12047 data 3 "+" (60)"6" "5";
12048 
12049 page -all;
12050 
12051 
12052 
12053 /*     sb2d7
12054 *  Rounding is tested.
12055 *  Two 9-bit trailing sign operands are used.
12056 *  The maximum number of page faults is taken.
12057 *  Indirect descriptors are used for all operands.
12058 *  Address register modification is used for all operands.  */
12059 
12060 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12061 -rb
12062 -mf1 idb ar reg
12063 -mf2 idb ar reg
12064 -io 1;
12065 
12066 desc 1 -sd t -sf 4 -nn 63;
12067 desc 2 -sd t -sf 5 -nn 62;
12068 
12069 data 1 -do -38 (62)"3" "+";
12070 data 2 -do -36 (61)"9" "+";
12071 data 3 (61)"6" "+";
12072 
12073 page -all;
12074 
12075 
12076 
12077 /*     sb2d8
12078 * The overflow indicator is set.
12079 *  Two 4-bit trailing sign operands are used.
12080 *  Indirect descriptors are used for all operands.
12081 *  Address register modification is used for all operands.  */
12082 
12083 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12084 -ir ov
12085 -mf1 idb ar
12086 -mf2 idb ar
12087 -io 2;
12088 
12089 desc 1 -tn 4 -sd t -sf 3 -nn 7;
12090 desc 2 -tn 4 -sd t -sf 3 -nn 7;
12091 
12092 data 1 (3)163 32;
12093 data 2 (3)231 26;
12094 data 3 163 163 162 300;
12095 
12096 page -all;
12097 
12098 
12099 
12100 /*     sb2d9
12101 *  The exponent overflow indicator is set.
12102 *  Two  4-bit  floating point operands are used.
12103 *  Indirect descriptors are used for all operands.
12104 *  Address register modification is used for all operands.  */
12105 
12106 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12107 -ir eo tn
12108 -mf1 idb ar
12109 -mf2 idb ar
12110 -io 1;
12111 
12112 desc 1 -tn 4 -sd f -nn 8 -cn 1;
12113 desc 2 -tn 4 -sd f -nn 8 -cn 1;
12114 
12115 data 1 -do -1 00 330 210 210 177;
12116 data 2 -do -4 00 267 167 167 177;
12117 data 3 00 301 146 146 200;
12118 
12119 page -all;
12120 
12121 
12122 
12123 /*     sb2d10
12124 *  Leading and trailing signs are mixed.
12125 *  Two 9-bit operands are used.
12126 *  The maximum number of page faults is taken.
12127 *  Indirect descriptors are used for all operands.
12128 *  Address register modification is used for all operands.  */
12129 
12130 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12131 -mf1 idb ar reg
12132 -mf2 idb ar reg
12133 -io 2;
12134 
12135 desc 1 -sd l -sf -8 -nn 42;
12136 desc 2 -sd t -sf -8 -nn 42;
12137 
12138 data 1 -do -40 "+" (4)"1234000000" "9";
12139 data 2 -do -2 (4)"9876543210" "9" "+";
12140 data 3 (4) "8642543210" "0+";
12141 
12142 page -all;
12143 
12144 
12145 
12146 /*     sb2d11
12147 *  Leading sign and floating point operands are mixed.
12148 *  Two 4-bit operands are used.
12149 *  The maximum number of page faults is taken.
12150 *  Indirect descriptors are used for all operands.
12151 *  Address register modification is used for all operands.  */
12152 
12153 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12154 -mf1 idb ar
12155 -mf2 idb ar
12156 -io 1;
12157 
12158 desc 1 -tn 4 -sd l -nn 8;
12159 desc 2 -tn 4 -sd f -nn 10;
12160 
12161 data 1 -do -1 271 043 064 000;
12162 data 2 -do -1 271 207 145 000 000;
12163 data 3 300 144 061 000 000;
12164 
12165 page -all;
12166 
12167 
12168 
12169 
12170 /*     sb2d12
12171 *  A leading sign 9-bit and an unsigned 4-bit operand are mixed.
12172 *  The maximum number of page faults is taken.
12173 *  Indirect descriptors are used for all operands.
12174 *  Address register modification is used for all operands.  */
12175 
12176 inst sb2d -nt "9 bit - 4 bit -> 4 bit"
12177 -mf1 idb ar reg
12178 -mf2 idb ar
12179 -io 2;
12180 
12181 desc 1 -sd l -nn 8;
12182 desc 2 -sd n -tn 4 -nn 7;
12183 
12184 data 1 -do -1  "+" "1234500";
12185 data 2 -do -1 230 166 120 00;
12186 data 3 206 102 000 00;
12187 
12188 page -all;
12189 
12190 
12191 
12192 /*     sb2d13
12193 *  Unsigned 4-bit and 9-bit operands are mixed.
12194 *  The maximum number of page faults is taken.
12195 *  Indirect descriptors are used for all operands.
12196 *  Address register modification is used for all operands.  */
12197 
12198 inst sb2d -nt "4 bit - 9 bit -> 9 bit"
12199 -mf1 idb ar
12200 -mf2 idb ar reg
12201 -io 1;
12202 
12203 desc 1 -sd n -sf 31 -tn 4 -nn 7;
12204 desc 2 -sd n -sf 31 -nn 7;
12205 
12206 data 1 -do -1 022 064 120 00 ;
12207 data 2 -do -3 "9876500";
12208 data 3 "8642000";
12209 
12210 page -all;
12211 
12212 
12213 
12214 /*     sb2d14
12215 *  Floating point and trailing sign operands are mixed.
12216 *  Two 9-bit operands are used.
12217 *  The maximum number of page faults is taken.
12218 *  Indirect descriptors are used for all operands.
12219 *  Address register modification is used for all operands.  */
12220 
12221 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12222 -mf1 idb ar reg
12223 -mf2 idb ar reg
12224 -io 2;
12225 
12226 desc 1 -sd f -nn 9;
12227 desc 2 -sd t -sf 12 -nn 8;
12228 
12229 data 1 -do -7 "+" "1234500" 014;
12230 data 2 -do -3  "9876500" "+";
12231 data 3 "8642000" "+";
12232 
12233 page -all;
12234 
12235 
12236 /*     sb2d15
12237 *  The special plus sign capability for 4-bit operands is tested.
12238 *  Indirect descriptors are used for all operands.
12239 *  Address register modification is used for all operands.  */
12240 
12241 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12242 -pb
12243 -mf1 idb ar
12244 -mf2 idb ar
12245 -io 1;
12246 
12247 desc 1 -sd l -nn 7;
12248 desc 2 -sd l -tn 4 -nn 8;
12249 
12250 data 1 -do -7 "+" "1234500";
12251 data 2 -do -2  261 043 105 000;
12252 data 3 261 021 020 120;
12253 
12254 page -all;
12255 
12256 
12257 ^L
12258 
12259 /*                  mp3d1
12260 *                   9 bit scaled * 9 bit scaled to
12261 *                   9 bit scaled
12262 *                   all page faults taken
12263 *                    rounding desired and it occurs
12264 *
12265 */
12266 
12267 inst      mp3d      -nt "rounded result"
12268 -io 2 -rb
12269 -mf1 ar rl 63 idb reg
12270 -mf2 ar rl 63 idb reg
12271 -mf3 ar rl 63 idb reg;
12272 
12273 desc1 -cn 1 -sd l -sf 5;
12274 desc2 -cn 1 -sd l -sf 10;
12275 desc3 -sd l -cn 1 -sf 20;
12276 
12277 data 1 -do 4033 " +" (20) "0" (12) "543" "043543";
12278 data 2 -do 4033 " +" (47) "0" (5) "765";
12279 data 3 -do 4033 000 "+000000000041622703784865905405405405405405405"
12280           "36711707549441337";
12281 
12282 page -all;
12283 
12284 
12285 
12286 
12287 
12288 
12289 /*                  mp3d2
12290 *                   a simple test
12291 *                   no modification used
12292 *                   9 bit*9 bit to 9 bit
12293 *
12294 */
12295 
12296 inst      mp3d      -nt"9bit*9bit->9bit"
12297 -io 2 -ir ov ng;
12298 
12299 desc1 -sd l -cn 1 -nn 10;
12300 desc2 -sd l -cn 1 -nn 10;
12301 desc3 -sd l -cn 1 -nn 10;
12302 
12303 data 1 " -" (9) "1";
12304 data 2 " +" (9) "1";
12305 data 3 000 "-"  "987654321";
12306 
12307 page -all;
12308 
12309 
12310 
12311 
12312 /*                  mp3d3
12313 *                   9 bit*9 bit to 9 bit
12314 *                   negative indicator on
12315 *                   all page faults taken
12316 *
12317 */
12318 
12319 inst      mp3d      -nt "9 bit*9bit to 9 bit"
12320 -io 1 -ir ng
12321 -mf1 ar rl 23 idb reg
12322 -mf2 ar rl 24 idb reg
12323 -mf3 ar rl 24 idb reg;
12324 
12325 desc1 -sd t -cn 2;
12326 desc2 -sd t -cn 1;
12327 desc3 -sd l -cn 3;
12328 
12329 data 1 -do -9 "  " (15) "0" (3) "12" "1+";
12330 data 2 -do -11 " " (16) "0" (3) "23" "2-";
12331 data 3 (3) 000 "-" (10) "0" "2816038295072";
12332 
12333 page -all;
12334 
12335 
12336 
12337 
12338 /*                  mp3d4
12339 *                   9 bit scaled to 4 bit float to
12340 *                    4 bit float
12341 *
12342 */
12343 
12344 inst      mp3d      -nt "4bit float*9bit to 4bit"
12345 -io 2
12346 -mf1 ar rl 10 idb reg
12347 -mf2 ar rl 10 idb
12348 -mf3 ar rl 10 idb;
12349 
12350 desc1 -sd t -cn 1;
12351 desc2 -sd f -tn 4;
12352 desc3 -sd f -tn 4;
12353 
12354 data 1 -do -10 " " (5) "0" (4) "2" "+";
12355 data 2 -do -4 300 000 000 021 000;
12356 data 3 -do -4 300 002 104 102 000;
12357 
12358 page -all;
12359 
12360 
12361 
12362 
12363 /*                  mp3d5
12364 *                   9 bit scaled*9 bit scaled to
12365 *                   9 bit scaled
12366 *                   all page faults taken
12367 *                   truncation indicator set
12368 *
12369 */
12370 
12371 inst      mp3d      -nt "9bit*9bit to 9bit"
12372 -io 2
12373 -mf1 ar rl 63 idb reg
12374 -mf2 ar rl 63 idb reg
12375 -mf3 ar rl 63 idb reg;
12376 
12377 desc1 -cn 1 -sd l  ;
12378 desc2 -cn 2 -sd l -sf 1;
12379 desc3 -cn 3 -sd l -sf 1;
12380 
12381 data 1 -do 4033 " +" (5) "0" (19) "543";
12382 data 2 -do 4034 "  +" (60) "0" "11";
12383 data 3 -do 4035 (3) 000 "+" (4) "0" "5" (18) "978" "973";
12384 
12385 page -all;
12386 
12387 
12388 
12389 
12390 /*                  mp3d6
12391 *                   9 bit scaled*9 bit scaled tp
12392 *                   9 bit scaled
12393 *                    all page faults taken
12394 *                   rounding desired, therefore no truncation
12395 *
12396 */
12397 
12398 inst      mp3d      -nt "no truncation"
12399 -io 3 -ir ng
12400 -mf1 ar rl 63 idb reg
12401 -mf2 ar rl 63 idb reg
12402 -mf3 ar rl 63 idb reg
12403 -rb;
12404 
12405 desc1 -cn 1 -sd l -sf 5;
12406 desc2 -cn 2 -sd l -sf 10;
12407 desc3 -cn 1 -sd l -sf 10;
12408 
12409 data 1 -do 4033 " -" (53) "0" (3) "543";
12410 data 2 -do 4034 "  +" (53) "0" (3) "765";
12411 data 3 -do 4033 000 "-" (39) "0" "416227037016205395" (5) "0";
12412 
12413 page -all;
12414 
12415 
12416 
12417 
12418 /*                  mp3d7
12419 *                   all operands 4 bit scaled
12420 *                   all page faults taken
12421 *                    negative indicator set
12422 *
12423 */
12424 
12425 inst      mp3d      -nt "4 bit*4bit to 4bit scaled"
12426 -io 1
12427 -mf1 ar rl 63 idb
12428 -mf2 ar rl 63 idb
12429 -mf3 ar rl 63 idb;
12430 
12431 desc1 -sd l -tn 4 -cn 1;
12432 desc2 -sd l -tn 4 -cn 1;
12433 desc3 -sd l -tn 4 -cn 1;
12434 
12435 data 1 " " 300 (26) 000 (4) 105 (8) 000;
12436 data 2 " " 300 (26) 000 (3) 105 104 (7) 000;
12437 data 3 000300 (21) 000 002 006 141 025 141 127 002 110 (9) 000;
12438 
12439 page -all;
12440 
12441 
12442 
12443 
12444 /*                  mp3d8
12445 *                   all operands 9 bit float
12446 *                   all page faults taken
12447 *                   no rounding needed
12448 *
12449 */
12450 
12451 inst      mp3d      -nt "9 bit floating"
12452 -io 1
12453 -mf1 ar rl 10 idb reg
12454 -mf2 ar rl 10 idb reg
12455 -mf3 ar rl 10 idb reg;
12456 
12457 desc1 -sd f -cn 1;
12458 desc2 -sd f -cn 1;
12459 desc3 -sd f -cn 1;
12460 
12461 data 1 -do -10 " +" (4) "0" (4) "1" 001;
12462 data 2 -do -10 " +" (4) "0" (4) "2" 001;
12463 data 3 -do -10 000 "+" "02468642" 002;
12464 
12465 page -all;
12466 
12467 
12468 
12469 
12470 /*                  mp3d9
12471 *                   all operands 9 bit floating
12472 *                   rounding not desired, but required
12473 *                   set round bit
12474 *
12475 */
12476 
12477 inst      mp3d      -nt "round floating"
12478 -io 2 -rb
12479 -mf1 ar rl 10 ida
12480 -mf2 ar rl 10 ida
12481 -mf3 ar rl 10 ida;
12482 
12483 desc1 -cn 1 -sd f;
12484 desc2 -cn 1 -sd f;
12485 desc3 -sd f;
12486 
12487 data 1 " +" (4) "0" (4) "3" 002;
12488 data 2 " +" (4) "0" (4) "9" 001;
12489 data 3 "+"  (3) "3" "26667" 003;
12490 
12491 page -all;
12492 
12493 
12494 
12495 
12496 /*                  mp3d10
12497 *                   all operands 9 bit floating
12498 *                   truncation will occur
12499 *
12500 */
12501 
12502 inst      mp3d      -nt "truncation"
12503 -io 3 -ir tn
12504 -mf1 ar rl 10
12505 -mf2 ar rl 10
12506 -mf3 ar rl 10;
12507 
12508 desc1 -sd f;
12509 desc2 -sd f;
12510 desc3 -sd f;
12511 
12512 data 1 "+" (3) "0" (5) "3" 000;
12513 data 2 "+" (4) "0" (4) "9" 001;
12514 data 3 "+" (3) "3" "29666" 002;
12515 
12516 page -all;
12517 
12518 
12519 
12520 
12521 
12522 
12523 
12524 /*                  mp3d11
12525 *                    set zero indicator, use three 9-bit operands
12526 *
12527 */
12528 inst      mp3d      -nt"9sca*9sca->9sca"
12529 -ir zr
12530 -mf1 idb ar reg
12531 -mf2 idb ar reg
12532 -mf3 idb ar reg
12533 -io 1;
12534 
12535 desc 1 -sd f -nn 63;
12536 desc 2 -sd f -nn 63;
12537 desc 3 -sd f -nn 63;
12538 
12539 data 1 "+" (61)"0" 000 -do -62;
12540 data 2 "-" (61)"9" 034 -do -34;
12541 data 3 "+" (61)"0" 177;
12542 
12543 page -all;
12544 
12545 
12546 
12547 
12548 /*                  mp3d12
12549 *
12550  set zero indicator, use  three 9-bit leading sign operands
12551 *
12552 */
12553 inst      mp3d      -nt"9sca*9sca->9sca"
12554 -ir zr
12555 -mf1 idb ar
12556 -mf2 idb ar
12557 -mf3 idb ar
12558 -io 2;
12559 
12560 desc 1 -sd l -sf 10 -nn 7;
12561 desc 2 -sd l -sf 10 -nn 28;
12562 desc3 -sd l -sf 10 -nn 28;
12563 
12564 data 1 -do -4 "-" (6)"4";
12565 data 2 -do -24 "+" (27)"0";
12566 data 3 "+" (27)"0";
12567 
12568 page -all;
12569 
12570 
12571 
12572 
12573 /*                  mp3d13
12574 *
12575 *                    set negative indicator, use three 4-bit floating operands
12576 *
12577 */
12578 
12579 inst       mp3d     -nt "4float*4float->4float"
12580 -ir ng
12581 -mf1 idb ar
12582 -mf2 idb ar
12583 -mf3 idb ar
12584 -io 1;
12585 
12586 desc 1 -tn 4 -sd f -nn 6;
12587 desc 2 -tn 4 -sd f -nn 6;
12588 desc 3 -tn 4 -sd f -nn 6;
12589 
12590 data 1 260  061 004;
12591 data 2 320 050 004;
12592 data 3 330 150 010;
12593 
12594 page -all;
12595 
12596 
12597 
12598 
12599 /*                  mp3d14
12600 *
12601 *                   set negative indicator, use three  4-bit leading sign operands
12602 *
12603 */
12604 
12605 inst      mp3d      -nt "4sca*4sca->4sca"
12606 -ir ng
12607 -mf1 idb ar
12608 -mf2 idb ar
12609 -mf3 idb ar
12610 -io 2;
12611 
12612 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12613 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12614 desc 3 -tn 4 -sd l -sf 2 -nn 6;
12615 
12616 data 1 260 061;
12617 data 2 320 000 050;
12618 data 3 330 150 000;
12619 
12620 page -all;
12621 
12622 
12623 
12624 
12625 /*                  mp3d15
12626 *
12627 *                   set truncation indicator, use three 4-bit floating operands
12628 *
12629 */
12630 
12631 inst      mp3d      -nt "4float*4float->4float"
12632 -ir tn
12633 -mf1 idb ar
12634 -mf2 idb ar
12635 -mf3 idb ar
12636 -io 1;
12637 
12638 desc 1 -tn 4 -sd f -nn 6;
12639 desc 2 -tn 4 -sd f -nn 6;
12640 desc 3 -tn 4 -sd f -nn 6;
12641 
12642 data 1 266 130 012;
12643 data 2 260 022 013;
12644 data 3 307 211 026;
12645 
12646 page -all;
12647 
12648 
12649 
12650 
12651 /*                  mp3d16
12652 *
12653 *                   set truncation indicator, use three 4-bit leading sign operands
12654 *
12655 */
12656 
12657 inst      mp3d      -nt "4sca*4sca->4sca"
12658 -ir tn
12659 -mf1 idb ar
12660 -mf2 idb ar
12661 -mf3 idb ar
12662 -io 2;
12663 
12664 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12665 desc 2 -tn 4 -sd l -sf 4  -nn 5 -cn 1;
12666 desc 3 -tn 4 -sd l -sf 4 -nn 5;
12667 
12668 data 1 00 271;
12669 data 2 00 261 043 10;
12670 data 3 301 021 00;
12671 
12672 page -all;
12673 
12674 
12675 
12676 
12677 /*                  mp3d17
12678 *
12679 *                   test rounding, use three 4-bit trailing sign operands
12680 *
12681 */
12682 
12683 inst      mp3d      -nt "4sca*4sca->4sca"
12684 -rb
12685 -mf1 idb ar
12686 -mf2 idb ar
12687 -mf3 idb ar
12688 -io 1;
12689 
12690 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12691 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12692 desc 3 -tn 4 -sd t -sf 4 -nn 5;
12693 
12694 data 1 -do -1 00 233;
12695 data 2 -do -2 022 064 30;
12696 data 3 021 021 30;
12697 
12698 page -all;
12699 
12700 
12701 
12702 
12703 /*                  mp3d18
12704 *
12705 *                    set overflow indicator, use three 9-bit unsigned operands
12706 *
12707 */
12708 
12709 inst      mp3d      -nt "9sca*9sca->9sca"
12710 -ir ov
12711 -mf1 idb ar reg
12712 -mf2 idb ar reg
12713 -mf3 idb ar reg
12714 -io 2;
12715 
12716 desc 1 -sd n -nn 3;
12717 desc 2 -sd n -nn 5;
12718 desc 3 -sd n -nn 5;
12719 
12720 data 1 -do -1 "999";
12721 data 2 -do -4 "00999";
12722 data 3 "98001";
12723 
12724 page -all;
12725 
12726 
12727 
12728 
12729 /*                  mp3d19
12730 *
12731 *                   set exponent overflow indicator, use three 9-bit floating operands
12732 *
12733 */
12734 
12735 inst      mp3d      -nt "9flo*9flo->9flo"
12736 -ir eo tn
12737 -mf1 idb ar reg
12738 -mf2 idb ar reg
12739 -mf3 idb ar reg
12740 -io 1;
12741 
12742 desc 1 -sd f -nn 6;
12743 desc 2 -sd f -nn 6;
12744 desc 3 -sd f -nn 6;
12745 
12746 data 1 -do -4 "+" "0900" 100;
12747 data 2 -do -1 "+" "0756" 076;
12748 data 3  "+" "6804" 200;
12749 
12750 page -all;
12751 
12752 
12753 
12754 
12755 /*                  mp3d20
12756 *
12757 *                   set exponent underflow indicator, use three 4-bit trailing
12758 *                   sign operands
12759 *
12760 */
12761 
12762 inst      mp3d      -nt "4sca*4sca->4sca"
12763 -ir eu
12764 -mf1 idb ar
12765 -mf2 idb ar
12766 -mf3 idb ar
12767 -io 2;
12768 
12769 desc 1 -tn 4 -sd f -nn 6 -cn 1;
12770 desc 2 -tn 4 -sd f -nn 6 -cn 1;
12771 desc 3 -tn 4 -sd f -nn 6 -cn 1;
12772 
12773 data 1 -do -1 00 260 042 200;
12774 data 2 -do -2 00 260 063 300;
12775 data 3 00 307 046 100;
12776 
12777 page -all;
12778 
12779 
12780 
12781 
12782 /*                  mp3d21
12783 *
12784 *                   mix leading and traling signs with 4-bit operands
12785 *
12786 */
12787 
12788 inst      mp3d      -nt "4sca*4sca->4sca"
12789 -mf1 idb ar
12790 -mf2 idb ar
12791 -mf3 idb ar
12792 -io 1;
12793 
12794 desc 1 -tn 4 -sd l  -nn 63;
12795 desc 2 -tn 4 -sd t -sf 3 -nn 63;
12796 desc 3 -tn 4 -sd t -sf 3 -nn 63;
12797 
12798 data 1 -do -62 260 (30)000 22;
12799 data 2 -do -1 010 (30)210 26;
12800 data 3 171 (29)231 222 30;
12801 
12802 page -all;
12803 
12804 
12805 
12806 
12807 /*                  mp3d22
12808 *
12809 *                   mix floating point  and leading sign with 9-bit operands
12810 *
12811 */
12812 
12813 inst      mp3d      -nt "9flo*9sca->9sca"
12814 -mf1 idb ar reg
12815 -mf2 idb ar reg
12816 -mf3 idb ar reg
12817 -io 2;
12818 
12819 desc 1 -sd f -nn 5;
12820 desc 2 -sd l -sf -3 -nn 63;
12821 desc 3 -sd l -sf -3 -nn 63;
12822 
12823 data 1 -do -4 "+" "009" 001;
12824 data 2 -do -17 "+" "00" (60)"8";
12825 data 3 "+" "7" (59)"9" "20";
12826 
12827 page -all;
12828 
12829 
12830 
12831 
12832 /*                  mp3d23
12833 *
12834 *                   mix 9-bit and 4-bit operands, use  leading sign and unsigned scaled
12835 *                   decimals
12836 *
12837 */
12838 
12839 inst      mp3d      -nt "9sca*4sca->4sca"
12840 -mf1 idb ar reg
12841 -mf2 idb ar
12842 -mf3 idb ar
12843  -io 1;
12844 
12845 desc 1 -sd l -sf 2 -nn 11;
12846 desc 2 -sd n -sf 2 -nn 15 -tn 4;
12847 desc 3 -sd n -sf 2 -nn 15 -tn 4;
12848 
12849 data 1 -do -7 "+" "2271658432";
12850 data 2 -do -1 (6)000 124 04;
12851 data 3 022 061 043 210 160 024 100 000;
12852 
12853 page -all;
12854 
12855 
12856 
12857 /*                  mp3d24
12858 *
12859 *                   mix 4-bit and 9-bit unsigned operands
12860 *
12861 */
12862 
12863 inst      mp3d      -nt "4sca*9sca->9sca"
12864 -mf1 idb ar
12865 -mf2 idb ar reg
12866 -mf3 idb ar reg
12867 -io 2;
12868 
12869 desc 1 -sd n -tn 4 -sf 2 -nn 10;
12870 desc 2 -sd n -sf 2 -nn 15;
12871 desc 3 -sd n -sf 2 -nn 15;
12872 
12873 data 1 -do -1  042 161 145 204 142;
12874 data 2 -do -13  (12)"0" "542";
12875 data 3 "123123888640400";
12876 
12877 page -all;
12878 
12879 
12880 
12881 /*                  mp3d25
12882 *
12883 *                   mix floating point and trailing sign 9-bit operands
12884 *
12885 */
12886 
12887 inst      mp3d      -nt "9-bit f -> 4 bit trailing sign"
12888 -ir ng
12889 -mf1 idb ar reg
12890 -mf2 idb ar reg
12891 -mf3 idb ar reg
12892 -io 1;
12893 
12894 desc 1 -sd f -nn 16;
12895 desc 2 -sd t -sf 4 -nn 16;
12896 desc 3 -sd t -sf 4 -nn 16;
12897 
12898 data 1 -do -5 "+" "0000" "2271658432" 002;
12899 data 2 -do -6 (12)"0" "542" "-";
12900 data 3 "123123887014400" "-";
12901 
12902 page -all;
12903 
12904 
12905 
12906 
12907 /*                  mp3d26
12908 *
12909 *         Multiply  505.05+  by  floating +2.2  and get the  4 bit number
12910 *         +1111.11000
12911 */
12912 
12913 inst      mp3d      -nt "Result is 4 bit num"       -io 3
12914           -mf1      ida
12915           -mf2      reg ar idb
12916           -mf3      ar idb;
12917 
12918 
12919 desc 1    -nn 6     -sd t     -sf -2    -cn 1;
12920 
12921 data 1    -do -4
12922           " " "505"  "05" 053;
12923 
12924 
12925 desc 2    -nn 4     -sd f     -cn 2;
12926 
12927 data 2    -do -3
12928           "  " 053  "22" 377;           /* Exponent = -1  */
12929 
12930 
12931 desc 3    -nn 10    -sd l     -tn 4     -sf -5;
12932 
12933 data 3              301 021   021 020 000;
12934 
12935 
12936 page      -all;
12937 
12938 /*                  mp3d27
12939 *                   9 bit scaled * 9 bit scaled to
12940 *                   9 bit scaled
12941 *                   all page faults taken
12942 *
12943 */
12944 
12945 inst      mp3d      -nt "rounded result"
12946 -io 2 -rb
12947 -mf1 ar rl 63 idb reg
12948 -mf2 ar rl 63 idb reg
12949 -mf3 ar rl 63 idb reg;
12950 
12951 desc1 -cn 1 -sd l ;
12952 desc2 -cn 1 -sd l ;
12953 desc3 -sd l -cn 1 ;
12954 
12955 data 1 -do 4033 " +" (20) "0" (12) "111" "111111";
12956 data 2 -do 4033 " +" (53) "0" (9) "1";
12957 data 3 -do 4033 000 "+" (12) "0" "12345678" (34) "9" "87654321";
12958 
12959 page -all;
12960 
12961 
12962 ^L
12963 
12964 
12965 /*     mp2d1
12966 *  The zero indicator is set.
12967 *  Two 9-bit operands are used.
12968 *  Indirect descriptors are used for all operands.
12969 *  Address register modification is used for all operands.  */
12970 
12971 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12972 -ir zr
12973 -mf1 idb ar reg
12974 -mf2 idb ar reg
12975 -io 1;
12976 
12977 desc 1 -sd f -nn 63;
12978 desc 2 -sd f -nn 63;
12979 
12980 data 1 "+" (61)"0" 000 -do -62;
12981 data 2 "-" (61)"9" 034 -do -34;
12982 data 3 "+" (61)"0" 177;
12983 
12984 page -all;
12985 
12986 
12987 
12988 /*     mp2d2
12989 *  The zero indicator is set.
12990 *  Two 9-bit leading sign operands are used.
12991 *  The maximum number of page faults is taken.
12992 *  Indirect descriptors are used for all operands.
12993 *  Address register modification is used for all operands.  */
12994 
12995 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12996 -ir zr
12997 -mf1 idb ar
12998 -mf2 idb ar
12999 -io 2;
13000 
13001 desc 1 -sd l -sf 10 -nn 7;
13002 desc 2 -sd l -sf 10 -nn 28;
13003 
13004 data 1 -do -4 "-" (6)"4";
13005 data 2 -do -24 "+" (27)"0";
13006 data 3 "+" (27)"0";
13007 
13008 page -all;
13009 
13010 
13011 
13012 /*     mp2d3
13013 *  The negative indicator is set.
13014 *  Two 4-bit floating point operands are used.
13015 *  Indirect descriptors are used for all operands.
13016 *  Address register modification is used for all operands.  */
13017 
13018 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13019 -ir ng
13020 -mf1 idb ar
13021 -mf2 idb ar
13022 -io 1;
13023 
13024 desc 1 -tn 4 -sd f -nn 6;
13025 desc 2 -tn 4 -sd f -nn 6;
13026 
13027 data 1 260  061 004;
13028 data 2 320 050 004;
13029 data 3 330 150 010;
13030 
13031 page -all;
13032 
13033 
13034 
13035 /*     mp2d4
13036 *  The negative indicator is set.
13037 *  Two  4-bit leading sign operands are used.
13038 *  Indirect descriptors are used for all operands.
13039 *  Address register modification is used for all operands.  */
13040 
13041 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13042 -ir ng
13043 -mf1 idb ar
13044 -mf2 idb ar
13045 -io 2;
13046 
13047 desc 1 -tn 4 -sd l -sf 2 -nn 4;
13048 desc 2 -tn 4 -sd l -sf 2 -nn 6;
13049 
13050 data 1 260 061;
13051 data 2 320 000 050;
13052 data 3 330 150 000;
13053 
13054 page -all;
13055 
13056 
13057 
13058 /*     mp2d5
13059 *  The truncation indicator is set.
13060 *  Two 4-bit floating point operands are used.
13061 *  Indirect descriptors are used for all operands.
13062 *  Address register modification is used for all operands.  */
13063 
13064 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13065 -ir tn
13066 -mf1 idb ar
13067 -mf2 idb ar
13068 -io 1;
13069 
13070 desc 1 -tn 4 -sd f -nn 6;
13071 desc 2 -tn 4 -sd f -nn 6;
13072 
13073 data 1 266 130 012;
13074 data 2 260 022 013;
13075 data 3 307 211 026;
13076 
13077 page -all;
13078 
13079 
13080 
13081 /*     mp2d6
13082 *  The truncation indicator is set.
13083 *  Two 4-bit leading sign operands are used.
13084 *  Indirect descriptors are used for all operands.
13085 *  Address register modification is used for all operands.  */
13086 
13087 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13088 -ir tn
13089 -mf1 idb ar
13090 -mf2 idb ar
13091 -io 2;
13092 
13093 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
13094 desc 2 -tn 4 -sd l -sf 4  -nn 5 -cn 1;
13095 
13096 data 1 00 271;
13097 data 2 00 261 043 10;
13098 data 3 00 301 021 00;
13099 
13100 page -all;
13101 
13102 
13103 
13104 /*     mp2d7
13105 *  Rounding is tested.
13106 *  Two 4-bit trailing sign operands are used.
13107 *  The maximum number of page faults is taken.
13108 *  Indirect descriptors are used for all operands.
13109 *  Address register modification is used for all operands.  */
13110 
13111 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13112 -rb
13113 -mf1 idb ar
13114 -mf2 idb ar
13115 -io 1;
13116 
13117 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
13118 desc 2 -tn 4 -sd t -sf 4 -nn 5;
13119 
13120 data 1 -do -1 00 233;
13121 data 2 -do -2 022 064 30;
13122 data 3 021 021 30;
13123 
13124 page -all;
13125 
13126 
13127 
13128 /*     mp2d8
13129 *  The overflow indicator is set.
13130 *  Two 9-bit unsigned operands are used.
13131 *  The maximum number of page faults is taken.
13132 *  Indirect descriptors are used for all operands.
13133 *  Address register modification is used for all operands.  */
13134 
13135 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13136 -ir ov
13137 -mf1 idb ar reg
13138 -mf2 idb ar reg
13139 -io 2;
13140 
13141 desc 1 -sd n -nn 3;
13142 desc 2 -sd n -nn 5;
13143 
13144 data 1 -do -1 "999";
13145 data 2 -do -4 "00999";
13146 data 3 "98001";
13147 
13148 page -all;
13149 
13150 
13151 
13152 /*     mp2d9
13153 *  The exponent overflow indicator is set.
13154 *  Two 9-bit floating point operands
13155 *  The maximum number of page faults is taken.
13156 *  Indirect descriptors are used for all operands.
13157 *  Address register modification is used for all operands.  */
13158 
13159 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13160 -ir eo tn
13161 -mf1 idb ar reg
13162 -mf2 idb ar reg
13163 -io 1;
13164 
13165 desc 1 -sd f -nn 6;
13166 desc 2 -sd f -nn 6;
13167 
13168 data 1 -do -4 "+" "0900" 100;
13169 data 2 -do -1 "+" "0756" 076;
13170 data 3  "+" "6804" 200;
13171 
13172 page -all;
13173 
13174 
13175 
13176 /*     mp2d10
13177 *  The exponent underflow indicator is set.
13178 *  Two 4-bit trailing sign operands are used.
13179 *  The maximum number of page faults is taken.
13180 *  Indirect descriptors are used for all operands.
13181 *  Address register modification is used for all operands.  */
13182 
13183 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13184 -ir eu
13185 -mf1 idb ar
13186 -mf2 idb ar
13187 -io 2;
13188 
13189 desc 1 -tn 4 -sd f -nn 6 -cn 1;
13190 desc 2 -tn 4 -sd f -nn 6 -cn 1;
13191 
13192 data 1 -do -1 00 260 042 200;
13193 data 2 -do -2 00 260 063 300;
13194 data 3 00 307 046 100;
13195 
13196 page -all;
13197 
13198 
13199 
13200 /*     mp2d11
13201 *  Leading and trailing signs are mixed.
13202 *  Two 4-bit operands are used.
13203 *  Indirect descriptors are used for all operands.
13204 *  Address register modification is used for all operands.  */
13205 
13206 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13207 -mf1 idb ar
13208 -mf2 idb ar
13209 -io 1;
13210 
13211 desc 1 -tn 4 -sd l  -nn 63;
13212 desc 2 -tn 4 -sd t -sf 3 -nn 63;
13213 
13214 data 1 -do -62 260 (30)000 22;
13215 data 2 -do -1 010 (30)210 26;
13216 data 3 171 (29)231 222 30;
13217 
13218 page -all;
13219 
13220 
13221 
13222 /*     mp2d12
13223 *  A floating point operand and a leading sign operand are used.
13224 *  Two 9-bit operands are used.
13225 *  The maximum number of page faults is taken.
13226 *  Indirect descriptors are used for all operands.
13227 *  Address register modification is used for all operands.  */
13228 
13229 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13230 -mf1 idb ar reg
13231 -mf2 idb ar reg
13232 -io 2;
13233 
13234 desc 1 -sd f -nn 5;
13235 desc 2 -sd l -sf -3 -nn 63;
13236 
13237 data 1 -do -4 "+" "009" 001;
13238 data 2 -do -17 "+" "00" (60)"8";
13239 data 3 "+" "7" (59)"9" "20";
13240 
13241 page -all;
13242 
13243 
13244 
13245 /*     mp2d13
13246 *  A leading sign 9-bit operand and an unsigned 4-bit operand are used.
13247 *  The maximum number of page faults is taken.
13248 *  Indirect descriptors are used for all operands.
13249 *  Address register modification is used for all operands.  */
13250 
13251 
13252 inst mp2d -nt "9-bit x 4-bit -> 4-bit"
13253 -mf1 idb ar reg
13254 -mf2 idb ar
13255  -io 1;
13256 
13257 desc 1 -sd l -sf 2 -nn 11;
13258 desc 2 -sd n -sf 2 -nn 15 -tn 4;
13259 
13260 data 1 -do -7 "+" "2271658432";
13261 data 2 -do -1 (6)000 124 04;
13262 data 3 022 061 043 210 160 024 100 000;
13263 
13264 page -all;
13265 
13266 
13267 
13268 /*     mp2d14
13269 *  Unsigned 4-bit and 9-bit operands are used.
13270 *  The maximum number of page faults is taken.
13271 *  Indirect descriptors are used for all operands.
13272 *  Address register modification is used for all operands.  */
13273 
13274 inst mp2d -nt "4-bit x 9-bit -> 9-bit"
13275 -mf1 idb ar
13276 -mf2 idb ar reg
13277 -io 2;
13278 
13279 desc 1 -sd n -tn 4 -sf 2 -nn 10;
13280 desc 2 -sd n -sf 2 -nn 15;
13281 
13282 data 1 -do -1  042 161 145 204 142;
13283 data 2 -do -13  (12)"0" "542";
13284 data 3 "123123888640400";
13285 
13286 page -all;
13287 
13288 
13289 /*     mp2d15
13290 *  A floating point operand and a trailing sign operand are used.
13291 *  Two 9-bit operands are used.
13292 *  The maximum number of page faults is taken.
13293 *  Indirect descriptors are used for all operands.
13294 *  Address register modification is used for all operands.  */
13295 
13296 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13297 -ir ng
13298 -mf1 idb ar reg
13299 -mf2 idb ar reg
13300 -io 1;
13301 
13302 desc 1 -sd f -nn 16;
13303 desc 2 -sd t -sf 4 -nn 16;
13304 
13305 data 1 -do -5 "+" "0000" "2271658432" 002;
13306 data 2 -do -6 (12)"0" "542" "-";
13307 data 3 "123123887014400" "-";
13308 
13309 page -all;
13310 
13311 
13312 ^L
13313 
13314 /*     dv3d1
13315 *  The zero indicator is set.
13316 *  Three 9-bit floating point operands are used.
13317 *  The maximum number of page faults is taken.
13318 *  Indirect descriptors are used for all operands.
13319 *  Address register modification is used for all operands.  */
13320 
13321 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13322 -ir zr
13323 -mf1 idb ar reg
13324 -mf2 idb ar reg
13325 -mf3 idb ar reg
13326 -io 1;
13327 
13328 desc 1  -sd f -nn 6;
13329 desc 2 -sd f -nn 55;
13330 desc 3 -sd f -nn 31;
13331 
13332 data 1 -do -2 "+" "4275" 377;
13333 data 2 -do -50  "+" (53)"0" 374;
13334 data 3 -do -25  "+" (29)"0" 177;
13335 
13336 page -all;
13337 
13338 
13339 
13340 /*     dv3d2
13341 *  The negative indicator is set.
13342 *  Three 4-bit floating point operands are used.
13343 *  The maximum number of page faults is taken.
13344 *  Indirect descriptors are used for all operands.
13345 *  Address register modification is used for all operands.  */
13346 
13347 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13348 -ir ng -mf1 idb ar
13349 -mf2 idb ar
13350 -mf3 idb ar
13351 -io 2;
13352 
13353 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13354 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13355 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13356 
13357 data 1 -do -1 00 260 000 002 004;
13358 data 2 -do -4 00 320 225 120 004;
13359 data 3 -do -2 00 324 167 120 377;
13360 
13361 page -all;
13362 
13363 
13364 /*     dv3d3
13365 *  The negative indicator is set.
13366 *  Three 4-bit trailing sign operands are used.
13367 *  Indirect descriptors are used for all operands.
13368 *  Address register modification is used for all operands.  */
13369 
13370 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13371 -ir ng
13372 -mf1 idb ar
13373 -mf2 idb ar
13374 -mf3 idb ar
13375 -io 3;
13376 
13377 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13378 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13379 desc 3 -tn 4 -sd t -sf 3 -nn3;
13380 
13381 data 1 000 055;
13382 data 2 010 26;
13383 data 3 100 32;
13384 
13385 page -all;
13386 
13387 
13388 /*     dv3d4
13389 *  The overflow indicator is set.
13390 *  Three 4-bit floating point operands are used.
13391 *  The maximum number of page faults is taken.
13392 *  Indirect descriptors are used for all operands.
13393 *  Address register modification is used for all operands.  */
13394 
13395 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13396 -ir ov
13397 -mf1 idb ar
13398 -mf2 idb ar
13399 -mf3 idb ar
13400 -io 1;
13401 
13402 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13403 desc 2 -tn 4 -sd n -sf 1 -nn63;
13404 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13405 
13406 data 1 -do -12 (31)000 10;
13407 data 2 -do -15 (31)167 16;
13408 data 3 -do -18 (25)104;
13409 
13410 page -all;
13411 
13412 
13413 
13414 /*     dv3d5
13415 *  A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13416 *  All operands are unsigned.
13417 *  The maximum number of page faults is taken.
13418 *  Indirect descriptors are used for all operands.
13419 *  Address register modification is used for all operands.  */
13420 
13421 inst dv3d -nt "(9 bit / 9 bit) -> 4 bit"
13422 -mf1 idb ar reg
13423 -mf2 idb ar reg
13424 -mf3 idb ar
13425 -io 1;
13426 
13427 desc 1 -sd n -nn 8;
13428 desc 2 -sd n -nn 10;
13429 desc 3 -sd n -tn 4 -nn 8;
13430 
13431 data 1 -do -7 "30144196";
13432 data 2 -do -3 "1567498217";
13433 data 3 -do -2 (3)000 122;
13434 
13435 page -all;
13436 
13437 
13438 
13439 /*     dv3d6
13440 *  A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13441 *  All operands are floating point.
13442 *  The maximum number of page faults is taken.
13443 *  Indirect descriptors are used for all operands.
13444 *  Address register modification is used for all operands.  */
13445 
13446 inst dv3d -nt "(4 bit / 4 bit) -> 9 bit"
13447 -mf1 idb ar
13448 -mf2 idb ar
13449 -mf3 idb ar reg
13450 -io 2;
13451 
13452 desc 1 -tn 4 -sd f -nn 11;
13453 desc 2 -tn 4 -sd f -nn 13;
13454 desc 3 -sd f -nn 10;
13455 
13456 data 1 -do -4 323 001 104 031 140 00;
13457 data 2 -do -3 321 126 164 230 041 160 00;
13458 data 3 -do -1 "+" "052" (5)"0" 373;
13459 
13460 page -all;
13461 
13462 
13463 
13464 /*     dv3d7
13465 *  A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13466 *  All operands are trailing sign.
13467 *  The maximum number of page faults is taken.
13468 *  Indirect descriptors are used for all operands.
13469 *  Address register modification is used for all operands.  */
13470 
13471 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13472 -mf1 idb ar reg
13473 -mf2 idb ar
13474 -mf3 idb ar
13475 -io 3;
13476 
13477 desc 1 -sd t -nn 10;
13478 desc 2 -tn 4 -sd t -nn 11;
13479 desc 3 -tn 4 -sd t -nn 10;
13480 
13481 data 1 -do -8 "030144196" "-";
13482 data 2 -do -5 025 147 111 202 027 320;
13483 data 3 -do -3 (3)000 005 054;
13484 
13485 page -all;
13486 
13487 
13488 
13489 /*     dv3d8
13490 *  A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13491 *  All operands are leading sign.
13492 *  Indirect descriptors are used for all operands.
13493 *  Address register modification is used for all operands.  */
13494 
13495 inst dv3d -nt "(9 bit / 4 bit) -> 9 bit"
13496 -mf1 idb ar reg
13497 -mf2 idb ar
13498 -mf3 idb ar reg
13499 -io 2;
13500 
13501 desc 1  -sd l -sf 6 -nn 20;
13502 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13503 desc 3 -sd l -nn 20;
13504 
13505 data 1 "+" (11)"0" "30144196";
13506 data 2 260 (4) 000 025 147 111 202 027;
13507 data 3 "+" (17)"0" "52";
13508 
13509 page -all;
13510 
13511 
13512 
13513 /*     dv3d9
13514 *  Leading sign, trailing sign, and floating point operands are used.
13515 *  Three 9-bit operands are used.
13516 *  Indirect descriptors are used for all operands.
13517 *  Address register modification is used for all operands.  */
13518 
13519 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13520 -mf1 idb ar reg
13521 -mf2 idb ar reg
13522 -mf3 idb ar reg
13523 -io 3;
13524 
13525 desc 1 -sd l -sf 1 -nn 8;
13526 desc 2 -sd t -sf 2 -nn 8;
13527 desc 3 -sd f -nn 8;
13528 
13529 data 1 "+" (5)"0" "58";
13530 data 2 "000" "1234" "+";
13531 data 3 "+" "021275" 376;
13532 
13533 page -all;
13534 
13535 
13536 
13537 /*     dv3d10
13538 *  Floating point, unsigned, and leading sign operands are used.
13539 *  Three 4-bit operands are used.
13540 *  Indirect descriptors are  used for all operands.
13541 *  Address register modification is used for all operands.  */
13542 
13543 inst dv3d -nt "(4 bit / 4 bit -> 4 bit"
13544 -mf1 idb ar
13545 -mf2 idb ar
13546 -mf3 idb ar
13547 -io 1;
13548 
13549 desc 1 -tn 4 -sd f -nn 8;
13550 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13551 desc 3 -tn 4 -sd l -nn 8;
13552 
13553 data 1 260 002 022 000;
13554 data 2 000 000 022 064;
13555 data 3 300 000 000 130;
13556 
13557 page -all;
13558 
13559 
13560 
13561 
13562 /*                  dv3d11
13563 *                   Use RL mod and cn field with indirect descriptors
13564 *                   Use three 9-bit trailing sign operands.
13565 *
13566 */
13567 
13568 
13569 inst      dv3d      -nt "two character offset"
13570 -io 2  -ir ng
13571 -mf1 ar rl 10 idb reg
13572 -mf2 ar rl 10 idb reg
13573 -mf3 ar rl 10 idb reg;
13574 
13575 desc1 -cn 1  -sd t ;
13576 desc2 -cn 1  -sd t ;
13577 desc 3 -cn 1 -sd t;
13578 
13579 data 1 -do -9 " " (9) "1" "-";
13580 data 2 -do -9 "*" (9) "2" "+";
13581 data 3 000 (8)"0" "2" "-";
13582 
13583 page -all;
13584 
13585 /*                  dv3d12
13586 *                   Use RL mod and cn field with indirect descriptors
13587 *                   Use three 9-bit trailing sign operands.
13588 *
13589 */
13590 
13591 
13592 inst      dv3d      -nt "one character offset"
13593 -io 2  -ir ng
13594 -mf1 ar rl 10 idb reg
13595 -mf2 ar rl 10 idb reg
13596 -mf3 ar rl 10 idb reg;
13597 
13598 desc1 -cn 1  -sd t ;
13599 desc2 -cn 1  -sd t ;
13600 desc3 -cn 1 -sd t;
13601 
13602 data 1 -do -10 " " (9) "1" "-";
13603 data 2 -do -20 "*" (9) "2" "+";
13604 data 3 000 (8) "0" "2" "-";
13605 
13606 page -all;
13607 
13608 /*                  dv3d13
13609 *                   Use RL mod and cn field
13610 *                   Use three 9-bit trailing sign operands.
13611 *                   no indirect descriptors
13612 *
13613 */
13614 
13615 inst      dv3d      -nt "no indirect descriptors"
13616 -io 2  -ir ng
13617 -mf1 ar rl 10  reg
13618 -mf2 ar rl 10 reg
13619 -mf3 ar rl 10 reg;
13620 
13621 desc1 -cn 1  -sd t ;
13622 desc2 -cn 1  -sd t ;
13623 desc3 -cn 1 -sd t;
13624 
13625 data 1 -do -9 " " (9) "1" "-";
13626 data 2 -do -9 "*" (9) "2" "+";
13627 data 3 000 (8) "0" "2" "-";
13628 
13629 page -all;
13630 
13631 /*                  dv3d14
13632 *                   Use no modification
13633 *                   Use three 9 bit trailing sign operands.
13634 *
13635 */
13636 
13637 inst      dv3d      -nt "no mf modification"
13638 -io 2  -ir ng;
13639 
13640 desc1 -cn 1  -sd t  -nn 12;
13641 desc2 -cn 1  -sd t  -nn 12;
13642 desc3 -cn 1 -sd t -nn 12;
13643 
13644 data 1 -do -12 " " (11) "1" "-";
13645 data 2 -do -12 "*" (11) "2" "+";
13646 data 3 000 (10) "0" "2" "-";
13647 
13648 page -all;
13649 
13650 /*                  dv3d15
13651 *                   Use ar and rl
13652 *                   Use three 9-bit trailing sign operands.
13653 *
13654 */
13655 
13656 
13657 inst      dv3d      -nt "ar and rl modification"
13658 -io 2  -ir ng
13659 -mf1 ar rl 10
13660 -mf2 ar rl 10
13661 -mf3 ar rl 10 ;
13662 
13663 desc1 -cn 1  -sd t ;
13664 desc2 -cn 1  -sd t ;
13665 desc3 -cn 1 -sd t;
13666 
13667 data 1 -do -9 " " (9) "1" "-";
13668 data 2 -do -9 "*" (9) "2" "+";
13669 data 3 000 (8)"0" "2" "-";
13670 
13671 page -all;
13672 
13673 /*                  dv3d16
13674 *                   Use ar and rl modification on desc1
13675 *                   Use ar rl idb reg on desc2
13676 *                   Use three 9-bit trailing sign operands.
13677 *
13678 */
13679 
13680 
13681 inst      dv3d      -nt "two character offset"
13682 -io 2  -ir ng
13683 -mf1 ar rl 10
13684 -mf2 ar rl 10 idb reg
13685 -mf3 ar rl 10 idb reg;
13686 
13687 desc1 -cn 1  -sd t ;
13688 desc2 -cn 1  -sd t ;
13689 desc3 -cn 1 -sd t;
13690 
13691 data 1 -do -9 " " (9) "1" "-";
13692 data 2 -do -9 "*" (9) "2" "+";
13693 data 3 000 (8) "0" "2" "-";
13694 
13695 page -all;
13696 
13697 
13698 
13699 /*                  dv3d17
13700 *                   maximum length divide leading sign
13701 *                   one character over next page
13702 *                   all modification taken
13703 */
13704 inst      dv3d      -nt "maximum length "
13705 -io 2
13706 -mf1 ar rl 63 idb reg
13707 -mf2 ar rl 63 idb reg
13708 -mf3 ar rl 63 idb reg;
13709 
13710 desc1 -cn 1 -sd l ;
13711 desc2 -cn 1 -sd l ;
13712 desc3 -cn 1 -sd l;
13713 
13714 data 1 -do 4033 " " "+33" (15) "8642";
13715 data 2 -do 4033 "*" "+33" (15) "8642";
13716 data 3 000 "+" (61) "0" "1";
13717 
13718 page -all;
13719 
13720 
13721 
13722 
13723 /*                  dv3d18
13724 *                   This is a simple test
13725 *                   Use three 9-bit trailing sign operands.
13726 *
13727 */
13728 
13729 inst      dv3d      -nt "simple test";
13730 
13731 desc1  -sd t -nn 63;
13732 desc2  -sd t -sf 10 -nn 63;
13733 desc3 -sd t -sf 10 -nn 63;
13734 
13735 data 1 "11" (12) "1111" "11" (10) "0" "+";
13736 data 2 "22" (12) "2222" "22" (10) "0" "+";
13737 data 3 (61) "0" "2" "+";
13738 
13739 page -all;
13740 
13741 
13742 
13743 /*                  dv3d19
13744 *                   maximum length divide resulting
13745 *                   in an overflow
13746 *                   all modification taken
13747 *                   Use three 9-bit leading sign operands.
13748 */
13749 inst      dv3d      -nt "truncation fault"
13750 -io 1
13751 -mf1 ar rl 63 idb reg
13752 -mf2 ar rl 63 idb reg
13753 -mf3 ar rl 63 idb reg;
13754 
13755 desc1 -sd l -cn 1;
13756 desc2 -sd l -cn 1;
13757 desc3 -sd l -cn 1;
13758 
13759 data 1 -do 4033 " " "+33" (15) "8642";
13760 data 2 -do 4033 "*" "+71" (15) "2357";
13761 data 3 000 "+" (61) "0" "2";
13762 
13763 page -all;
13764 
13765 
13766 
13767 /*                  dv3d20
13768 *                   maximum length over two pages
13769 *                   no faults, (9 bit / 4 bit) -> 4 bit
13770 *
13771 */
13772 
13773 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13774 -io 1
13775 -mf1 ar rl 63
13776 -mf2 ar rl 63
13777 -mf3 ar rl 63 ;
13778 
13779 desc1 -sd t ;
13780 desc2 -sd t  -tn 4;
13781 desc3 -sd t -tn 4;
13782 
13783 data 1 -do 4033  "33" (15) "3333" "+";
13784 data 2 -do 4064  104104 (7) 104104104104 10426;
13785 data 3 (28) 000 000000001300;
13786 
13787 page -all;
13788 
13789 
13790 
13791 /*                  dv3d21
13792 *                   (9 bit / 4 bit) -> 4 bit  ; all page faults possible
13793 *                    no reg modification on desc2
13794 *
13795 */
13796 
13797 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13798 -io 2
13799 -mf1 ar rl 63 idb reg
13800 -mf2 ar rl 63 idb
13801 -mf3 ar rl 63 idb ;
13802 
13803 desc1 -cn 1 -sd l;
13804 desc2   -cn 1 -sd t -tn 4;
13805 desc3 -cn 1 -sd t -tn 4;
13806 
13807 data 1 -do 4033 " " "+" (15) "0000" "22";
13808 data 2 -do 4068 "*" (28) 000 104104 1043;
13809 data 3 000 (28) 000 002 002 002 300;
13810 
13811 page -all;
13812 
13813 
13814 
13815 /*                  dv3d22
13816 *                   Use three 4-bit trailing sign operands.
13817 *                   maximum length
13818 *                   all page faults taken
13819 *                   no reg modification
13820 */
13821 
13822 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13823 -io 1
13824 -mf1 ar rl 63 idb
13825 -mf2 ar rl 63 idb
13826 -mf3 ar rl 63 idb;
13827 
13828 desc1 -cn 1 -sd t -tn 4;
13829 desc2 -cn 1 -sd t -tn 4;
13830 desc3 -cn 1 -sd t -tn 4;
13831 
13832 data 1 -do 4065 " " (28) 000 000 000 0013;
13833 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
13834 data 3 000 021021 (7) 021021021021 0213;
13835 
13836 page -all;
13837 
13838 
13839 
13840 /*                  dv3d23
13841 *                   floating point divide
13842 *                    Use three 9-bit floatinf point operands.
13843 *                    all page faults taken
13844 *
13845 */
13846 
13847 inst      dv3d      -nt "9bit float divide"
13848 -io 1
13849 -mf1 ar rl 63 reg idb
13850 -mf2 ar rl 63 reg idb
13851 -mf3 ar rl 63 reg idb;
13852 
13853 desc1 -sd f;
13854 desc2 -sd f;
13855 desc3 -sd f;
13856 
13857 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
13858 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
13859 data 3 "+" "1" (60) "0" 305;
13860 
13861 page -all;
13862 
13863 
13864 
13865 
13866 /*                  dv3d24
13867 *                   Use three 4-bit floating point operands.
13868 *
13869 */
13870 
13871 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13872 -io 1
13873 -mf1 ar rl 10 ida
13874 -mf2 ar rl 10 ida
13875 -mf3 ar rl 10 ida;
13876 
13877 desc1 -sd f -tn 4;
13878 desc2 -sd f -tn 4;
13879 desc3 -sd f -tn 4;
13880 
13881 data 1 -do -1 300 000 000 001 000;
13882 data 2 -do -1 300 000 021 021 000;
13883 data 3 301 021 020 000 375;
13884 
13885 page -all;
13886 
13887 
13888 
13889 /*                  dv3d25
13890 *                   (4 bit / 9 bit) -> 9 bit
13891 *
13892 */
13893 
13894 inst dv3d -nt "(4 bit / 9 bit) -> 9 bit"
13895 -io 1
13896 -mf1 ar rl 5 idb
13897 -mf2 ar rl 5 idb reg
13898 -mf3 ar rl 5 idb reg;
13899 
13900 desc 1 -tn 4 -sd l;
13901 desc 2 -sd n;
13902 desc 3 -sd n;
13903 
13904 data 1 30102100;
13905 data 2 -do 4 "02222";
13906 data 3 "00002";
13907 
13908 page -all;
13909 
13910 
13911 
13912 /*     dv3d26
13913 *  The zero indicator is set.
13914 *  Three 9-bit floating point operands are used.
13915 *  No indirect descriptors are used.
13916 *  Address register modification is used for all operands.  */
13917 
13918 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13919 -ir zr
13920 -mf1 ar reg
13921 -mf2 ar reg
13922 -mf3 ar reg
13923 -io 1;
13924 
13925 desc 1  -sd f -nn 6;
13926 desc 2 -sd f -nn 55;
13927 desc 3 -sd f -nn 31;
13928 
13929 data 1 -do -2 "+" "4275" 377;
13930 data 2 -do -50  "+" (53)"0" 374;
13931 data 3 -do -25  "+" (29)"0" 177;
13932 
13933 page -all;
13934 
13935 
13936 
13937 /*     dv3d27
13938 *  The negative indicator is set.
13939 *  Three 4-bit floating point operands are used.
13940 *  No indirect descriptors are used.
13941 *  Address register modification is used for all operands.  */
13942 
13943 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13944 -ir ng -mf1 ar
13945 -mf2 ar
13946 -mf3 ar
13947 -io 2;
13948 
13949 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13950 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13951 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13952 
13953 data 1 -do -1 00 260 000 002 004;
13954 data 2 -do -4 00 320 225 120 004;
13955 data 3 -do -2 00 324 167 120 377;
13956 
13957 page -all;
13958 
13959 
13960 /*     dv3d28
13961 *  The negative indicator is set.
13962 *  Three 4-bit trailing sign operands are used.
13963 *  No indirect descriptors are used.
13964 *  Address register modification is used for all operands.  */
13965 
13966 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13967 -ir ng
13968 -mf1 ar
13969 -mf2 ar
13970 -mf3 ar
13971 -io 3;
13972 
13973 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13974 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13975 desc 3 -tn 4 -sd t -sf 3 -nn3;
13976 
13977 data 1 000 055;
13978 data 2 010 26;
13979 data 3 100 32;
13980 
13981 page -all;
13982 
13983 
13984 /*     dv3d29
13985 *  The overflow indicator is set.
13986 *  Three 4-bit floating point operands are used.
13987 *  No indirect descriptors are used.
13988 *  Address register modification is used for all operands.  */
13989 
13990 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13991 -ir ov
13992 -mf1 ar
13993 -mf2 ar
13994 -mf3 ar
13995 -io 1;
13996 
13997 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13998 desc 2 -tn 4 -sd n -sf 1 -nn63;
13999 desc 3 -tn 4 -sd n -sf 10 -nn 50;
14000 
14001 data 1 -do -12 (31)000 10;
14002 data 2 -do -15 (31)167 16;
14003 data 3 -do -18 (25)104;
14004 
14005 page -all;
14006 
14007 
14008 
14009 /*     dv3d30
14010 *  A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
14011 *  All operands are unsigned.
14012 *  No indirect descriptors are used.
14013 *  Address register modification is used for all operands.  */
14014 
14015 inst dv3d -nt "(9 bit / 9 bit) -> 4 bit"
14016 -mf1 ar reg
14017 -mf2 ar reg
14018 -mf3 ar
14019 -io 1;
14020 
14021 desc 1 -sd n -nn 8;
14022 desc 2 -sd n -nn 10;
14023 desc 3 -sd n -tn 4 -nn 8;
14024 
14025 data 1 -do -7 "30144196";
14026 data 2 -do -3 "1567498217";
14027 data 3 -do -2 (3)000 122;
14028 
14029 page -all;
14030 
14031 
14032 
14033 /*     dv3d31
14034 *  A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
14035 *  All operands are floating point.
14036 *  No indirect descriptors are used.
14037 *  Address register modification is used for all operands.  */
14038 
14039 inst dv3d -nt "(4 bit / 4 bit) -> 9 bit"
14040 -mf1 ar
14041 -mf2 ar
14042 -mf3 ar reg
14043 -io 2;
14044 
14045 desc 1 -tn 4 -sd f -nn 11;
14046 desc 2 -tn 4 -sd f -nn 13;
14047 desc 3 -sd f -nn 10;
14048 
14049 data 1 -do -4 323 001 104 031 140 00;
14050 data 2 -do -3 321 126 164 230 041 160 00;
14051 data 3 -do -1 "+" "052" (5)"0" 373;
14052 
14053 page -all;
14054 
14055 
14056 
14057 /*     dv3d32
14058 *  A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
14059 *  All operands are trailing sign.
14060 *  No indirect descriptors are used.
14061 *  Address register modification is used for all operands.  */
14062 
14063 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
14064 -mf1 ar reg
14065 -mf2 ar
14066 -mf3 ar
14067 -io 3;
14068 
14069 desc 1 -sd t -nn 10;
14070 desc 2 -tn 4 -sd t -nn 11;
14071 desc 3 -tn 4 -sd t -nn 10;
14072 
14073 data 1 -do -8 "030144196" "-";
14074 data 2 -do -5 025 147 111 202 027 320;
14075 data 3 -do -3 (3)000 005 054;
14076 
14077 page -all;
14078 
14079 
14080 
14081 /*     dv3d33
14082 *  A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
14083 *  All operands are leading sign.
14084 *  No indirect descriptors are used.
14085 *  Address register modification is used for all operands.  */
14086 
14087 inst dv3d -nt "(9 bit / 4 bit) -> 9 bit"
14088 -mf1 ar reg
14089 -mf2 ar
14090 -mf3 ar reg
14091 -io 2;
14092 
14093 desc 1  -sd l -sf 6 -nn 20;
14094 desc 2 -sd l -sf 6 -tn 4 -nn 20;
14095 desc 3 -sd l -nn 20;
14096 
14097 data 1 "+" (11)"0" "30144196";
14098 data 2 260 (4) 000 025 147 111 202 027;
14099 data 3 "+" (17)"0" "52";
14100 
14101 page -all;
14102 
14103 
14104 
14105 /*     dv3d34
14106 *  Leading sign, trailing sign, and floating point operands are used.
14107 *  Three 9-bit operands are used.
14108 *  No indirect descriptors are used.
14109 *  Address register modification is used for all operands.  */
14110 
14111 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
14112 -mf1 ar reg
14113 -mf2 ar reg
14114 -mf3 ar reg
14115 -io 3;
14116 
14117 desc 1 -sd l -sf 1 -nn 8;
14118 desc 2 -sd t -sf 2 -nn 8;
14119 desc 3 -sd f -nn 8;
14120 
14121 data 1 "+" (5)"0" "58";
14122 data 2 "000" "1234" "+";
14123 data 3 "+" "021275" 376;
14124 
14125 page -all;
14126 
14127 
14128 
14129 /*     dv3d35
14130 *  Floating point, unsigned, and leading sign operands are used.
14131 *  Three 4-bit operands are used.
14132 *  Indirect descriptors are  used for all operands.
14133 *  Address register modification is used for all operands.  */
14134 
14135 inst dv3d -nt "(4 bit / 4 bit -> 4 bit"
14136 -mf1 ar
14137 -mf2 ar
14138 -mf3 ar
14139 -io 1;
14140 
14141 desc 1 -tn 4 -sd f -nn 8;
14142 desc 2 -tn 4 -sd n -sf 1 -nn 8;
14143 desc 3 -tn 4 -sd l -nn 8;
14144 
14145 data 1 260 002 022 000;
14146 data 2 000 000 022 064;
14147 data 3 300 000 000 130;
14148 
14149 page -all;
14150 
14151 ^L
14152 
14153 /*                  dv2d1
14154 *                   Use RL mod and cn field with indirect descriptors
14155 *                   divide 9 bit scaled to 9 bit scaled
14156 *
14157 */
14158 
14159 
14160 inst      dv2d      -nt "two character offset"
14161 -io 2  -ir ng
14162 -mf1 ar rl 10 idb reg
14163 -mf2 ar rl 10 idb reg;
14164 
14165 desc1 -cn 1  -sd t ;
14166 desc2 -cn 1  -sd t ;
14167 
14168 data 1 -do -9 " " (9) "1" "-";
14169 data 2 -do -9 "*" (9) "2" "+";
14170 data 3 "*" (8) "0" "2" "-";
14171 
14172 page -all;
14173 
14174 
14175 /*                  dv2d2
14176 *                   Use RL mod and cn field with indirect descriptors
14177 *                   9 bit scaled to 9 bit scaled
14178 *
14179 */
14180 
14181 
14182 inst      dv2d      -nt "one character offset"
14183 -io 2  -ir ng
14184 -mf1 ar rl 10 idb reg
14185 -mf2 ar rl 10 idb reg;
14186 
14187 desc1 -cn 1  -sd t ;
14188 desc2 -cn 1  -sd t ;
14189 
14190 data 1 -do -10 " " (9) "1" "-";
14191 data 2 -do -20 "*" (9) "2" "+";
14192 data 3 "*" (8) "0" "2" "-";
14193 
14194 page -all;
14195 
14196 
14197 /*                  dv2d3
14198 *                   Use RL mod and cn field
14199 *                   9 bit scaled to 9 bit scaled
14200 *                   no indirect descriptors
14201 *
14202 */
14203 
14204 inst      dv2d      -nt "no indirect descriptors"
14205 -io 2  -ir ng
14206 -mf1 ar rl 10  reg
14207 -mf2 ar rl 10 reg;
14208 
14209 desc1 -cn 1  -sd t ;
14210 desc2 -cn 1  -sd t ;
14211 
14212 data 1 -do -9 " " (9) "1" "-";
14213 data 2 -do -9 "*" (9) "2" "+";
14214 data 3 "*" (8) "0" "2" "-";
14215 
14216 page -all;
14217 
14218 
14219 /*                  dv2d4
14220 *                   Use no modification
14221 *                   9bit scaled divideed to 9 bit scaled
14222 *
14223 */
14224 
14225 inst      dv2d      -nt "no mf modification"
14226 -io 2  -ir ng;
14227 
14228 desc1 -cn 1  -sd t  -nn 12;
14229 desc2 -cn 1  -sd t  -nn 12;
14230 
14231 data 1 -do -12 " " (11) "1" "-";
14232 data 2 -do -12 "*" (11) "2" "+";
14233 data 3 "*" (10) "0" "2" "-";
14234 
14235 page -all;
14236 
14237 
14238 /*                  dv2d5
14239 *                   Use ar and rl
14240 *                   9 bit scaled to 9 bit scaled
14241 *
14242 */
14243 
14244 
14245 inst      dv2d      -nt "ar and rl modification"
14246 -io 2  -ir ng
14247 -mf1 ar rl 10
14248 -mf2 ar rl 10 ;
14249 
14250 desc1 -cn 1  -sd t ;
14251 desc2 -cn 1  -sd t ;
14252 
14253 data 1 -do -9 " " (9) "1" "-";
14254 data 2 -do -9 "*" (9) "2" "+";
14255 data 3 "*" (8)"0" "2" "-";
14256 
14257 page -all;
14258 
14259 
14260 /*                  dv2d6
14261 *                   Use aar and rl modification, desc1
14262 *                   Use ar rl idb reg on desc2
14263 *                   9 bit scaled to 9 bit scaled
14264 *
14265 */
14266 
14267 
14268 inst      dv2d      -nt "two character offset"
14269 -io 2  -ir ng
14270 -mf1 ar rl 10
14271 -mf2 ar rl 10 idb reg;
14272 
14273 desc1 -cn 1  -sd t ;
14274 desc2 -cn 1  -sd t ;
14275 
14276 data 1 -do -9 " " (9) "1" "-";
14277 data 2 -do -9 "*" (9) "2" "+";
14278 data 3 "*" (8) "0" "2" "-";
14279 
14280 page -all;
14281 
14282 
14283 
14284 
14285 /*                  dv2d7
14286 *                   maximum length divide leading sign
14287 *                   one character over next page
14288 *                   all modification taken
14289 */
14290 inst      dv2d      -nt "maximum length "
14291 -io 2
14292 -mf1 ar rl 63 idb reg
14293 -mf2 ar rl 63 idb reg;
14294 
14295 desc1 -cn 1 -sd l ;
14296 desc2 -cn 1 -sd l ;
14297 
14298 data 1 -do 4033 " " "+33" (15) "8642";
14299 data 2 -do 4033 "*" "+33" (15) "8642";
14300 data 3 "*" "+" (61) "0" "1";
14301 
14302 page -all;
14303 
14304 
14305 
14306 
14307 
14308 /*                  dv2d8
14309 *                   This is a simple test
14310 *                   9 bit divide to 9 bit all scaled trailing sign
14311 *
14312 */
14313 
14314 inst      dv2d      -nt "simple test";
14315 
14316 desc1  -sd t -nn 63;
14317 desc2  -sd t -sf 10 -nn 63;
14318 
14319 data 1 "11" (12) "1111" "11" (10) "0" "+";
14320 data 2 "22" (12) "2222" "22" (10) "0" "+";
14321 data 3 (61) "0" "2" "+";
14322 
14323 page -all;
14324 
14325 
14326 
14327 
14328 /*                  dv2d9
14329 *                   maximum length divide resulting
14330 *                   in an overflow
14331 *                   all modification taken
14332 *                   9 bit scaled to 9 bit scaled
14333 */
14334 
14335 inst      dv2d      -nt "truncation fault"
14336 -io 1
14337 -mf1 ar rl 63 idb reg
14338 -mf2 ar rl 63 idb reg;
14339 
14340 desc1 -sd l -cn 1;
14341 desc2 -sd l -cn 1;
14342 
14343 data 1 -do 4033 " " "+33" (15) "8642";
14344 data 2 -do 4033 "*" "+71" (15) "2357";
14345 data 3 "*" "+" (61) "0" "2";
14346 
14347 page -all;
14348 
14349 
14350 
14351 
14352 /*                  dv2d10
14353 *                   maximum length over two pages
14354 *                   no faults, 9 bit to 4 bit
14355 *
14356 */
14357 
14358 inst      dv2d      -nt "9 bit -> 4 bit"
14359 -io 1
14360 -mf1 ar rl 63
14361 -mf2 ar rl 63 ;
14362 
14363 desc1 -sd t ;
14364 desc2 -sd t  -tn 4;
14365 
14366 data 1 -do 4033  "33" (15) "3333" "+";
14367 data 2 -do 4064  104104 (7) 104104104104 10426;
14368 data 3 (28) 000 000000001300;
14369 
14370 page -all;
14371 
14372 
14373 
14374 
14375 /*                  dv2d11
14376 *                   9 bit to 4 bit all page faults possible
14377 *                    no reg modification on desc2
14378 *
14379 */
14380 
14381 inst      dv2d      -nt "9bit ->4bit"
14382 -io 2
14383 -mf1 ar rl 63 idb reg
14384 -mf2 ar rl 63 idb ;
14385 
14386 desc1 -cn 1 -sd l;
14387 desc2   -cn 1 -sd t -tn 4;
14388 
14389 data 1 -do 4033 " " "+" (15) "0000" "22";
14390 data 2 -do 4068 "*" (28) 000 104104 1043;
14391 data 3 "*" (28) 000 002 002 002 300;
14392 
14393 page -all;
14394 
14395 
14396 
14397 
14398 /*                  dv2d12
14399 *                   4 bit divideed to 4 bit
14400 *                   maximum length
14401 *                   all page faults taken
14402 *                   no reg modification
14403 */
14404 
14405 inst      dv2d      -nt "4 bit + 4bit"
14406 -io 1
14407 -mf1 ar rl 63 idb
14408 -mf2 ar rl 63 idb;
14409 
14410 desc1 -cn 1 -sd t -tn 4;
14411 desc2 -cn 1 -sd t -tn 4;
14412 
14413 data 1 -do 4065 " " (28) 000 000 000 0013;
14414 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
14415 data 3 "*" 021021 (7) 021021021021 0213;
14416 
14417 page -all;
14418 
14419 
14420 
14421 
14422 /*                  dv2d13
14423 *                   floating point divide
14424 *                    9 bit to 9bit
14425 *                    all page faults taken
14426 *
14427 */
14428 
14429 inst      dv2d      -nt "9bit float divide"
14430 -io 1
14431 -mf1 ar rl 63 reg idb
14432 -mf2 ar rl 63 reg idb;
14433 
14434 desc1 -sd f;
14435 desc2 -sd f;
14436 
14437 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
14438 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
14439 data 3 "+" "1" (60) "0" 305;
14440 
14441 page -all;
14442 
14443 
14444 
14445 
14446 
14447 /*                  dv2d14
14448 *                   4 bit floating divided to
14449 *                   4 bit floating
14450 *
14451 */
14452 
14453 inst      dv2d      -nt "4 float to 4 float"
14454 -io 1
14455 -mf1 ar rl 10 ida
14456 -mf2 ar rl 10 ida;
14457 
14458 desc1 -sd f -tn 4;
14459 desc2 -sd f -tn 4;
14460 
14461 data 1 -do -1 300 000 000 001 000;
14462 data 2 -do -1 300 000 021 021 000;
14463 data 3 301 021 020 000 375;
14464 
14465 page -all;
14466 
14467 
14468 
14469 
14470 /*                  dv2d15
14471 *                   test 4bit scaled to 9 bit
14472 *
14473 */
14474 
14475 inst      dv2d      -nt "4bit->9bit"
14476 -io 1
14477 -mf1 ar rl 5 idb
14478 -mf2 ar rl 5 idb reg;
14479 
14480 desc 1 -tn 4 -sd l;
14481 desc 2 -sd n;
14482 
14483 data 1 30102100;
14484 data 2 -do 4 "02222";
14485 data 3 "00002";
14486 
14487 page -all;
14488 
14489 
14490 
14491 
14492 /*                  dv2d16
14493 *                   test 9 floating to 4 floating
14494 *
14495 */
14496 
14497 inst      dv2d      -nt "9float->4 float"
14498 -io 1
14499 -mf1 ar rl 5 idb reg
14500 -mf2 ar rl 7 idb;
14501 
14502 desc 1 -sd f;
14503 desc 2 -sd f -tn 4;
14504 
14505 data 1 "+" (3) "1" 000;
14506 data 2 300 042 040 00;
14507 data 3 302 000 017 320;
14508 
14509 page -all;
14510 
14511 
14512 
14513 
14514 
14515 /*                  dv2d17
14516 *                   4 float to 9 float
14517 *
14518 */
14519 
14520 inst      dv2d      -nt "4float -> 9float"
14521 -io 1
14522 -mf1 ar rl 7 idb
14523 -mf2 ar rl 7 idb reg;
14524 
14525 desc 1 -sd f -tn 4 ;
14526 desc 2 -sd f;
14527 
14528 data 1 300 042 040 00;
14529 data 2 "+0" (3) "1" "0" 000;
14530 data 3 "+05000" 375;
14531 
14532 page -all;
14533 
14534 
14535 
14536 
14537 
14538 /*                  dv2d18
14539 *                   9 scaled to 9 float
14540 *
14541 */
14542 
14543 inst      dv2d      -nt "9sacled to 9 float"
14544 -io 2
14545 -mf1 ar rl 5 idb reg
14546 -mf2 ar rl 6 idb reg;
14547 
14548 desc1 -sd l;
14549 desc2 -sd f;
14550 
14551 data 1 "+" (4) "3";
14552 data 2 "+" "0" (3) "2" 000;
14553 data 3 "+" "0666" 374;
14554 
14555 page -all;
14556 
14557 
14558 
14559 
14560 /*                  dv2d19
14561 *                   9 float to 9 scaled
14562 *
14563 */
14564 
14565 inst      dv2d      -nt "9 float to 9 scaled"
14566 -io 2
14567 -mf1 ar rl 6 idb reg
14568 -mf2 ar rl 5 idb reg;
14569 
14570 desc1 -sd f;
14571 desc2 -sd l;
14572 
14573 data 1 "+" "0" (3) "2" 000;
14574 data 2 "+" (4) "3";
14575 data 3 "+0015";
14576 
14577 page -all;
14578 
14579 
14580 
14581 
14582 /*                  dv2d20
14583 *                   9 scaled to 4 float
14584 *
14585 */
14586 
14587 inst      dv2d      -nt "9scaled->4float"
14588 -io 2
14589 
14590 -mf1 ar rl 5 idb reg
14591 -mf2 ar rl 6 idb;
14592 
14593 desc 1 -sd l;
14594 desc 2 -sd f -tn 4;
14595 
14596 data 1 "+0" (3) "2";
14597 data 2 303063 000;
14598 data 3 301 120 376;
14599 
14600 page -all;
14601 
14602 
14603 
14604 
14605 /*                  dv2d21
14606 *                   9 float to 4 scaled
14607 *
14608 */
14609 
14610 inst      dv2d      -nt "9float->4scaled"
14611 -io 1
14612 -mf1 ar rl 6 idb reg
14613 -mf2 ar rl 4 idb;
14614 
14615 desc 1 -sd f;
14616 desc 2 -sd l -tn 4;
14617 
14618 data 1 -do -1 "+0" (3) "2" 000;
14619 data 2 -do -2 303 063;
14620 data 3 300 001;
14621 
14622 page -all;
14623 
14624 
14625 
14626 
14627 /*                  dv2d22
14628 *                   4scaled to 9 float
14629 *
14630 */
14631 
14632 inst      dv2d      -nt "4scaled-.9float"
14633 -io 1
14634 -mf1 ar rl 4 idb
14635 -mf2 ar rl 6 idb reg;
14636 
14637 desc 1 -sd l -tn 4;
14638 desc 2 -sd f;
14639 
14640 data 1 -do -1 303063;
14641 data 2 -do -1 "+0" (3) "2" 000;
14642 data 3 "+0" (3) "6" 375;
14643 
14644 page -all;
14645 
14646 
14647 
14648 
14649 /*                  dv2d23
14650 *                   4 floating to 9 scaled
14651 *
14652 */
14653 
14654 inst      dv2d       -nt "4float->9scaled"
14655 -io 1
14656 -mf1 ar rl 6 idb
14657 -mf2 ar rl 5 idb reg;
14658 
14659 desc 1 -sd f -tn 4;
14660 desc 2 -sd n;
14661 
14662 data 1 -do -1 303 063 000;
14663 data 2 -do -2 "00" "555";
14664 data 3 (4) "0" "1";
14665 
14666 page -all;
14667 
14668 
14669 
14670 
14671 /*                  dv2d24
14672 *                   4 scaled to 4 float
14673 *
14674 */
14675 
14676 inst      dv2d      -nt "4scaled to 4 float"
14677 -io 1
14678 -mf1 ar rl 4 idb
14679 -mf2 ar rl 6 idb;
14680 
14681 desc 1 -tn 4 -sd l;
14682 desc 2 -tn 4 -sd f;
14683 
14684 data 1 -do -1 303 063;
14685 data 2 -do -1 302042000;
14686 data 3 300 146 376;
14687 
14688 page -all;
14689 
14690 
14691 
14692 
14693 /*                  dv2d25
14694 *                   4 floating to 4 scaled
14695 *
14696 */
14697 
14698 inst      dv2d      -nt "4 floating to 4 scaled"
14699 -io 2
14700 -mf1 ar rl 6 idb
14701 -mf2 ar rl 4 idb;
14702 
14703 desc 1 -tn 4 -sd f;
14704 desc 2 -tn 4 -sd l;
14705 
14706 data 1 -do -1 302042000;
14707 data 2 -do -1 303 063;
14708 data 3 300 001;
14709 
14710 page -all;
14711 
14712 
14713 
14714 /*                  dv2d26
14715 *
14716 */
14717 
14718 inst      dv2d      -nt "Simple divide"  -io 3
14719           -mf1      ar reg idb
14720           -mf2      ar reg idb;
14721 
14722 
14723 desc 1    -sd n     -nn 3;
14724 desc 2    -sd n     -nn 4;
14725 
14726 
14727 data 1    -do -1    "060";
14728 data 2    -do -3    "0120";
14729 data 3    "0002";
14730 
14731 page      -all;
14732 
14733 
14734 ^L
14735 
14736 
14737 /*   csl 1
14738 *
14739 *  Simple test of instruction to see if its functions.
14740 *  Move 72 bits, cross no boundaries, and use no modification.
14741 *
14742 */
14743 
14744 inst  csl  -nt  "simple test"
14745            -bo mov ;
14746 
14747 desc 1  -ns 72 ;
14748 
14749 desc 2  -ns 72 ;
14750 
14751 data 1  -do -8  "abcdefgh"  ;
14752 
14753 data 2  -do -8  "wwwwwwww"  ;
14754 
14755 data 3  "abcdefgh"  ;
14756 
14757 page    -all  ;
14758 
14759 
14760 
14761 /*   csl 2
14762 *
14763 *  Move two bits one on each side of a page boundary.
14764 *  No modification is used.
14765 *
14766 */
14767 
14768 inst  csl  -nt  "invert 2 bits across boundary"
14769            -bo inv  ;
14770 
14771 desc 1  -ns 2  -cp 3  -bp 8  ;
14772 
14773 desc 2  -ns 2  -cp 3  -bp 8  ;
14774 
14775 data 1  -do 4  000 000 000 001 000  ;
14776 
14777 data 2  -do 4  000 000 000 001 000  ;
14778 
14779 data 3  000 000 000 000 400  ;
14780 
14781 page    -all  ;
14782 
14783 
14784 
14785 
14786 /*   csl 3
14787 *
14788 *  Test moving data across 3 pages.  This requires register
14789 *  length modification.
14790 *
14791 */
14792 
14793 inst  csl  -nt  "move data across 3 pages"
14794            -bo mov
14795            -io 1
14796            -mf1  rl 36946
14797            -mf2  rl 36946  ;
14798 
14799 desc 1  -cp 3  -bp 4  ;
14800 
14801 desc 2  -cp 3  -bp 4  ;
14802 
14803 data 1  -do -8  000 000 000 006
14804         (513)  146531265234623214653126  760  ;
14805 
14806 data 2  -do -8  000 000 000 037
14807         (513)  254315456312465146515314  600  ;
14808 
14809 data 3  000 000 000 006
14810         (513)  146531265234623214653126  760  ;
14811 
14812 page    -all  ;
14813 
14814 
14815 
14816 /*   csl 4
14817 *
14818 *  AND bit strings using ar and reg modification in addition to
14819 *  reg length modification.  Use data across 3 pages.
14820 *
14821 */
14822 
14823 inst  csl  -nt  "ar,reg mod. AND across 3 pages"
14824            -bo and
14825            -io 2
14826            -mf1  ar  reg  rl 36946
14827            -mf2  ar  reg  rl 36946  ;
14828 
14829 desc 1  -cp 3  -bp 4  ;
14830 
14831 desc 2  -cp 3  -bp 4  ;
14832 
14833 data 1  -do -8  000 000 000 006
14834         (513)  146531265234623214653126  760  ;
14835 
14836 data 2  -do -8  000 000 000 037
14837         (513)  254315456312465146515314  600  ;
14838 
14839 data 3  000 000 000 006
14840         (513)  044111044210421004411104  600  ;
14841 
14842 page    -all  ;
14843 
14844 
14845 
14846 
14847 /*   csl 5
14848 *
14849 *  OR bit strings using indirect modification in addition to register
14850 *  length modification.  Use data across 3 pages.
14851 *
14852 */
14853 
14854 inst  csl  -nt  "id mod.  OR across 3 pages"
14855            -bo or
14856            -io 1
14857            -mf1  id  rl 36946
14858            -mf2  id  rl 36946  ;
14859 
14860 desc 1  -cp 3  -bp 4  ;
14861 
14862 desc 2  -cp 3  -bp 4  ;
14863 
14864 data 1  -do -8  000 000 000 006
14865         (513)  146531265234623214653126  760  ;
14866 
14867 data 2  -do -8  000 000 000 037
14868         (513)  254315456312465146515314  600  ;
14869 
14870 data 3  000 000 000 037
14871         (513)  356735677336667356757336  760  ;
14872 
14873 page    -all  ;
14874 
14875 
14876 
14877 
14878 /*   csl 6
14879 *
14880 *  NAND bit strings using indirect ar and reg modification and
14881 *  reg length modification.  Use data across 3 pages.
14882 *
14883 */
14884 
14885 inst  csl  -nt  "idb mod. NAND across 3 pages"
14886            -bo nan
14887            -mf1  idb  rl 36946
14888            -mf2  idb  rl 36946  ;
14889 
14890 desc 1  -cp 3  -bp 4  ;
14891 
14892 desc 2  -cp 3  -bp 4  ;
14893 
14894 data 1  -do -8  000 000 000 006
14895         (513)  146531265234623214653126  760  ;
14896 
14897 data 2  -do -8  000 000 000 037
14898         (513)  254315456312465146515314  600  ;
14899 
14900 data 3  000 000 000 031
14901         (513)  733666733567356773366673  160  ;
14902 
14903 page    -all  ;
14904 
14905 
14906 
14907 
14908 /*   csl 7
14909 *
14910 *  XOR bit strings using indirect ar and reg modification and direct
14911 *  ar, reg, and register length modification.  User data across 3 pages.
14912 *
14913 */
14914 
14915 inst  csl  -nt  "idb,ar,reg mod. XOR across 3 pgs"
14916            -bo xor
14917            -io 2
14918            -mf1  idb  ar  reg  rl 36946
14919            -mf2  idb  ar  reg  rl 36946  ;
14920 
14921 desc 1  -cp 3  -bp 4  ;
14922 
14923 desc 2  -cp 3  -bp 4  ;
14924 
14925 data 1  -do -8  000 000 000 006
14926         (513)  146531265234623214653126  760  ;
14927 
14928 data 2  -do -8  000 000 000 037
14929         (513)  254315456312465146515314  600  ;
14930 
14931 data 3  000 000 000 031
14932         (513)  312624633126246352346232  160  ;
14933 
14934 page    -all  ;
14935 
14936 /*   csl 8
14937 *
14938 *  Test bit string CLEAR operator. Data is moved across 3 pages with
14939 *  full address modification. The zero indicator will be set.
14940 *
14941 */
14942 
14943 inst  csl  -nt "CLEAR string. 3 pages moved"
14944            -bo zer
14945            -ir zr
14946            -io 3
14947            -mf1  idb  ar  reg  rl 36946
14948            -mf2  rl 36946  ;
14949 
14950 desc 1  -cp 3  -bp 4  ;
14951 
14952 desc 2  -cp 3  -bp 4  ;
14953 
14954 data 1  -do -8  000 000 000 006
14955         (513)  146531265234623214653126  760  ;
14956 
14957 data 2  -do -8  000 000 000 037
14958         (513)  254315456312465146515314  600  ;
14959 
14960 data 3  000 000 000 000
14961         (513)  000000000000000000000000
14962         000  ;
14963 
14964 page    -all  ;
14965 
14966 
14967 
14968 
14969 /*   csl 9
14970 *
14971 *  Test truncation with INVERT operator.  Use full modification
14972 *  and move data across 3 pages.
14973 *
14974 */
14975 
14976 inst  csl  -nt  "INVERT truncation is set"
14977            -bo inv
14978            -ir tn
14979            -io 1
14980            -mf1  idb  ar  reg  rl 36946
14981            -mf2  idb  ar  reg  rl 36943  ;
14982 
14983 desc 1  -cp 3  -bp 4  ;
14984 
14985 desc 2  -cp 3  -bp 4  ;
14986 
14987 data 1  -do -8  000 000 000 006
14988         (513)  146531265234623214653126  760  ;
14989 
14990 data 2  -do -8  000 000 000 037
14991         (513)  254315456312465146515314  700  ;
14992 
14993 data 3  000 000 000 031
14994         (513)  631246512543154563124651  100  ;
14995 
14996 page    -all  ;
14997 
14998 
14999 
15000 
15001 /*   csl 10
15002 *
15003 *  Test the use of bit file with the COINcidence operator.  Use full
15004 *  modification across 3 pages.  The fill bit is zero.
15005 *
15006 */
15007 
15008 inst  csl  -nt  "COIN. bit fill(0)"
15009            -bo nox
15010            -mf1  idb  ar  reg  rl 36943
15011            -mf2  idb  ar  reg  rl 36946  ;
15012 
15013 desc 1  -cp 3  -bp 4  ;
15014 
15015 desc 2  -cp 3  -bp 4  ;
15016 
15017 data 1  -do -8  000 000 000 006
15018         (513)  146531265234623214653126  760  ;
15019 
15020 data 2  -do -8  000 000 000 037
15021         (513)  254315456312465146515314  600  ;
15022 
15023 data 3  000 000 000 006
15024         (513)  465153144651531425431545  760  ;
15025 
15026 page    -all  ;
15027 
15028 
15029 ^L
15030 
15031 
15032 /*   csr 1
15033 *
15034 *  Simple test of instruction to see if its functions.
15035 *  Move 72 bits, cross no boundaries, and use no modification.
15036 *
15037 */
15038 
15039 inst  csr  -nt  "simple test"
15040            -bo mov ;
15041 
15042 desc 1  -ns 72 ;
15043 
15044 desc 2  -ns 72 ;
15045 
15046 data 1  -do -8  "abcdefgh"  ;
15047 
15048 data 2  -do -8  "wwwwwwww"  ;
15049 
15050 data 3  "abcdefgh"  ;
15051 
15052 page    -all  ;
15053 
15054 
15055 
15056 /*   csr 2
15057 *
15058 *  Move two bits one on each side of a page boundary.
15059 *  No modification is used.
15060 *
15061 */
15062 
15063 inst  csr  -nt  "invert 2 bits across boundary"
15064            -bo inv  ;
15065 
15066 desc 1  -ns 2  -cp 3  -bp 8  ;
15067 
15068 desc 2  -ns 2  -cp 3  -bp 8  ;
15069 
15070 data 1  -do 4  000 000 000 001 000  ;
15071 
15072 data 2  -do 4  000 000 000 001 000  ;
15073 
15074 data 3  000 000 000 000 400  ;
15075 
15076 page    -all  ;
15077 
15078 /*   csr 3
15079 *
15080 *  Test moving data across 3 pages.  This requires register
15081 *  length modification.
15082 *
15083 */
15084 
15085 inst  csr  -nt  "move data across 3 pages"
15086            -bo mov
15087            -io 1
15088            -mf1  rl 36946
15089            -mf2  rl 36946  ;
15090 
15091 desc 1  -cp 3  -bp 4  ;
15092 
15093 desc 2  -cp 3  -bp 4  ;
15094 
15095 data 1  -do -8  000 000 000 006
15096         (513)  146531265234623214653126  760  ;
15097 
15098 data 2  -do -8  000 000 000 037
15099         (513)  254315456312465146515314  600  ;
15100 
15101 data 3  000 000 000 006
15102         (513)  146531265234623214653126  760  ;
15103 
15104 page    -all  ;
15105 
15106 
15107 
15108 /*   csr 4
15109 *
15110 *  AND bit strings using ar and reg modification in addition to
15111 *  reg length modification.  Use data across 3 pages.
15112 *
15113 */
15114 
15115 inst  csr  -nt  "ar,reg mod. AND across 3 pages"
15116            -bo and
15117            -io 2
15118            -mf1  ar  reg  rl 36946
15119 
15120            -mf2  ar  reg  rl 36946  ;
15121 desc 1  -cp 3  -bp 4  ;
15122 
15123 desc 2  -cp 3  -bp 4  ;
15124 
15125 data 1  -do -8  000 000 000 006
15126         (513)  146531265234623214653126  760  ;
15127 
15128 data 2  -do -8  000 000 000 037
15129         (513)  254315456312465146515314  600  ;
15130 
15131 data 3  000 000 000 006
15132         (513)  044111044210421004411104  600  ;
15133 
15134 page    -all  ;
15135 
15136 
15137 
15138 
15139 /*   csr 5
15140 *
15141 *  OR bit strings using indirect modification in addition to register
15142 *  length modification.  Use data across 3 pages.
15143 *
15144 */
15145 
15146 inst  csr  -nt  "id mod.  OR across 3 pages"
15147            -bo or
15148            -io 1
15149            -mf1  id  rl 36946
15150            -mf2  id  rl 36946  ;
15151 
15152 desc 1  -cp 3  -bp 4  ;
15153 
15154 desc 2  -cp 3  -bp 4  ;
15155 
15156 data 1  -do -8  000 000 000 006
15157         (513)  146531265234623214653126  760  ;
15158 
15159 data 2  -do -8  000 000 000 037
15160         (513)  254315456312465146515314  600  ;
15161 
15162 data 3  000 000 000 037
15163         (513)  356735677336667356757336  760  ;
15164 
15165 page    -all  ;
15166 
15167 
15168 
15169 
15170 /*   csr 6
15171 *  NAND bit strings using indirect ar and reg modification and
15172 *  reg length modification.  Use data across 3 pages.
15173 *
15174 */
15175 
15176 inst  csr  -nt  "idb mod. NAND across 3 pages"
15177            -bo nan
15178            -mf1  idb  rl 36946
15179            -mf2  idb  rl 36946  ;
15180 
15181 desc 1  -cp 3  -bp 4  ;
15182 
15183 desc 2  -cp 3  -bp 4  ;
15184 
15185 data 1  -do -8  000 000 000 006
15186         (513)  146531265234623214653126  760  ;
15187 
15188 data 2  -do -8  000 000 000 037
15189         (513)  254315456312465146515314  600  ;
15190 
15191 data 3  000 000 000 031
15192         (513)  733666733567356773366673  160  ;
15193 
15194 page    -all  ;
15195 
15196 
15197 
15198 
15199 /*   csr 7
15200 *
15201 
15202 *  XOR bit strings using indirect ar and reg modification and direct
15203 *  ar, reg, and register length modification.  User data across 3 pages.
15204 *
15205 */
15206 
15207 inst  csr  -nt  "idb,ar,reg mod. XOR across 3 pgs"
15208            -bo xor
15209            -io 2
15210            -mf1  idb  ar  reg  rl 36946
15211            -mf2  idb  ar  reg  rl 36946  ;
15212 
15213 desc 1  -cp 3  -bp 4  ;
15214 
15215 desc 2  -cp 3  -bp 4  ;
15216 
15217 data 1  -do -8  000 000 000 006
15218         (513)  146531265234623214653126  760  ;
15219 
15220 data 2  -do -8  000 000 000 037
15221         (513)  254315456312465146515314  600  ;
15222 
15223 data 3  000 000 000 031
15224         (513)  312624633126246352346232  160  ;
15225 
15226 page    -all  ;
15227 
15228 /*   csr 8
15229 *
15230 *  Test bit string CLEAR operator. Data is moved across 3 pages with
15231 *  full address modification. The zero indicator will be set.
15232 *
15233 */
15234 
15235 inst  csr  -nt "CLEAR string. 3 pages moved"
15236            -bo zer
15237            -ir zr
15238            -io 3
15239            -mf1  idb  ar  reg  rl 36946
15240            -mf2  rl 36946  ;
15241 
15242 desc 1  -cp 3  -bp 4  ;
15243 
15244 desc 2  -cp 3  -bp 4  ;
15245 
15246 data 1  -do -8  000 000 000 006
15247         (513)  146531265234623214653126  760  ;
15248 
15249 data 2  -do -8  000 000 000 037
15250         (513)  254315456312465146515314  600  ;
15251 
15252 data 3  000 000 000 000
15253         (513)  000000000000000000000000
15254         000  ;
15255 
15256 page    -all  ;
15257 
15258 
15259 
15260 
15261 /*   csr 9
15262 *
15263 *  Test truncation with INVERT operator.  Use full modification
15264 *  and move data across 3 pages.
15265 *
15266 */
15267 
15268 inst  csr  -nt  "INVERT truncation is set"
15269            -bo inv
15270            -ir tn
15271            -io 1
15272            -mf1  idb  ar  reg  rl 36946
15273            -mf2  idb  ar  reg  rl 36943  ;
15274 
15275 desc 1  -cp 3  -bp 4  ;
15276 
15277 desc 2  -cp 3  -bp 7  ;
15278 
15279 data 1  -do -8  000 000 000 006
15280         (513)  146531265234623214653126  760  ;
15281 
15282 data 2  -do -8  000 000 000 037
15283         (513)  254315456312465146515314  700  ;
15284 
15285 data 3  000 000 000 035
15286         (513)  631246512543154563124651  000  ;
15287 
15288 page    -all  ;
15289 
15290 
15291 
15292 
15293 /*   csr 10
15294 *
15295 *  Test the use of bit file with the COINcidence operator.  Use full
15296 *  modification across 3 pages.  The fill bit is zero.
15297 *
15298 */
15299 
15300 inst  csr  -nt  "COIN. bit fill(0)"
15301            -bo nox
15302            -mf1  idb  ar  reg  rl 36943
15303            -mf2  idb  ar  reg  rl 36946  ;
15304 
15305 desc 1  -cp 3  -bp 7  ;
15306 
15307 desc 2  -cp 3  -bp 4  ;
15308 
15309 data 1  -do -8  000 000 000 006
15310         (513)  146531265234623214653126  760  ;
15311 
15312 data 2  -do -8  000 000 000 037
15313         (513)  254315456312465146515314  600  ;
15314 
15315 data 3  000 000 000 002
15316         (513)  465153144651531425431545  600  ;
15317 
15318 page    -all  ;
15319 
15320 
15321 ^L
15322 
15323 /*     sztl1
15324 *  Use two maximum length strings (4352 chrs or 39168 bits).
15325 *  The zero indicator will be on since a bool code of "zer"
15326 *  is used. Take maximum number of page faults.  */
15327 
15328 inst sztl -nt "Both strings are the same length"
15329 -bo zer
15330 -ir zr
15331 -mf1 idb ar reg rl 39168
15332 -mf2 idb ar reg rl 39168
15333 -io 1;
15334 
15335 data 1 -do -10 (4352)"5";
15336 data 2 -do -30 (4352)"7";
15337 
15338 page -all;
15339 
15340 
15341 
15342 /*     sztl2
15343 *  Both the truncation and the zero indicators will be turned
15344 *  on.  The 1st string will begin on the last bit of a page and
15345 *  the 2nd string will end on the 1st bit of a page.  */
15346 
15347 inst sztl -nt "Both strings cross page bounds"
15348 -bo zer
15349 -ir tn zr
15350 -mf1 ar
15351 -mf2 ar;
15352 
15353 desc 1 -bp 8 -ns 23;
15354 desc 2 -bp 1 -ns 18;
15355 
15356 data 1 -do -1 074 321 64;
15357 data 2 -do -4 023 776 4;
15358 
15359 page -all;
15360 
15361 
15362 
15363 /*     sztl3
15364 *  No indicators are turned on. The zero fill bit is used. Bit strings
15365 *  begin in the middle of a byte  */
15366 
15367 inst sztl -nt "Both strings cross page bounds"
15368 -bo and
15369 -mf1 ida ar
15370 -mf2 idb ar;
15371 
15372 desc 1 -bp 4 -ns 70;
15373 desc 2 -bp 5 -ns 80;
15374 
15375 data 1 -do -2 "3274" "1958" 0;
15376 data 2 -do -4 "4875" "7329" 326 0;
15377 
15378 page -all;
15379 
15380 
15381 
15382 /*     sztl4
15383 *  The zero indicator will be turned on. Both strings
15384 are of the same length and begin and end on word boundaries.  */
15385 
15386 inst sztl -nt "only rl modification is used"
15387 -bo and
15388 -ir zr
15389 -mf1 rl 144
15390 -mf2 rl 144
15391 -io 2;
15392 
15393 data 1 (4)123 (12)075;
15394 data 2 (4)654 (12)402;
15395 
15396 page -all;
15397 
15398 
15399 
15400 /*     sztl5
15401 *  Test the axr bool code.  Set the zero and truncation
15402 *  indicators. Bit strings begin in the middle of a byte
15403 *  straddling a page boundary.  */
15404 
15405 inst sztl -nt "1st string is longer than 2nd"
15406 -bo axr
15407 -ir zr tn
15408 -mf1 ar reg rl 40
15409 -mf2 ar idr rl 31;
15410 
15411 desc 1 -bp 5;
15412 desc 2 -bp 5;
15413 
15414 data 1 -do -1 074 321 652 403 777;
15415 data 2 -do -3 777 777 676 603;
15416 
15417 page -all;
15418 
15419 
15420 
15421 /*     sztl6
15422 *  Test the axr bool code. No indicators will be set  */
15423 
15424 inst sztl -nt "Both strings are the same length"
15425 
15426 -bo axr
15427 -mf1 rl 7866
15428 -mf2 rl 7866;
15429 
15430 data 1 (874)"321";
15431 data 2 (874) "604";
15432 
15433 page -all;
15434 
15435 
15436 
15437 /*     sztl7
15438 *  Test the mov bool code. Use a maximum length string and the
15439 *  zero fill bit.  Take the maximum number of page faults.  */
15440 
15441 inst sztl -nt "2nd string is longer than 1st"
15442 -bo mov
15443 -mf1 ida ar rl 36000
15444 -mf2 idb ar reg rl 39168
15445 -io 1;
15446 
15447 data 1 -do -40 (1000)"9874";
15448 data 2 -do -20 (1088) "0000";
15449 
15450 page -all;
15451 
15452 
15453 
15454 /*     sztl8
15455 *  Test the move bool code. Set the zero indicator.
15456 *  The first string is all zeroes.  */
15457 
15458 inst sztl -nt "2nd string is longer than 1st"
15459 -bo mov
15460 -ir zr
15461 -mf1 ar id
15462 -mf2 ar
15463 -io 2;
15464 
15465 desc 1 -bp 7 -ns 99;
15466 desc 2 -bp 1 -ns 100;
15467 
15468 data 1 -do 20 (12)000;
15469 data 2 -do 3 "abcde123456" 4;
15470 
15471 page -all;
15472 
15473 
15474 
15475 /*     sztl9
15476 *  Test xra bool code. Set zero and truncation indicators.
15477 *  Use two short bit strings which cross page boundaries.  */
15478 
15479 inst sztl -nt "1st string is longer than 2nd"
15480 -bo xra
15481 -ir tn zr
15482 -mf1 ar idr
15483 -mf2 ar idb;
15484 
15485 desc 1 -ns 3 -bp 7;
15486 desc 2 -ns 2 -bp 8;
15487 
15488 data 1 -do -1 777 4;
15489 data 2 -do -1 235 0;
15490 
15491 page -all;
15492 
15493 
15494 
15495 /*     sztl10
15496 * Test xra bool code.  Use the zero fill bit. No indicators are set */
15497 
15498 inst sztl -nt "2nd string is longer than 1st"
15499 -bo xra
15500 -mf1 idr reg
15501 -mf2 idr
15502 -io 2;
15503 
15504 desc 1 -ns 400;
15505 desc 2 -ns 500;
15506 
15507 data 1 (44)"9" 72;
15508 data 2 (55)"8" 36;
15509 
15510 page -all;
15511 
15512 
15513 
15514 /*     sztl11
15515 *  Test ra2 bool code. Set the zero indicator. This means
15516 *  that the 2nd bit string must be all zeroes.  */
15517 
15518 inst sztl -nt "2nd string is longer than 1st"
15519 -bo ra2
15520 -mf1 ar rl 36
15521 -mf2 reg
15522 -ir zr
15523 -io 1;
15524 
15525 desc 1 -bp 4;
15526 desc 2 -ns 36;
15527 
15528 data 1 -do -1 "abcd" 70;
15529 data 2 (4)000;
15530 
15531 page -all;
15532 
15533 
15534 
15535 /*     sztl12
15536 *  Test ra2 bool code. No indicators are set.  */
15537 
15538 inst sztl -nt "Both strings are the same length"
15539 -bo ra2
15540 -mf1 reg
15541 -mf2 ar rl 36
15542 -io 2;
15543 
15544 desc 1 -ns 36;
15545 desc 2 -bp 4;
15546 
15547 data 1 (4)000;
15548 data 2 -do -1 "abcd" 70;
15549 
15550 page -all;
15551 
15552 
15553 
15554 /*     sztl13
15555 *  Test xor bool code. Set the zero indicator. Use zero fill.  */
15556 
15557 inst sztl -nt "2nd string is longer than 1st"
15558 -bo xor
15559 -mf1 id reg
15560 -mf2 ar;
15561 
15562 desc 1 -ns 3600;
15563 desc 2 -ns 3672 -bp 7;
15564 
15565 data 1 -do -8 (100)3526;
15566 data 2 -do -63 000 (100)7254 (7)000;
15567 
15568 page -all;
15569 
15570 
15571 
15572 /*     sztl14
15573 *  Test xor bool code. use strings of identical length.
15574 *  No indicators are set.  */
15575 
15576 inst sztl -nt "Both strings are the same length"
15577 -bo xor;
15578 
15579 desc  1 -ns 900;
15580 desc 2 -ns 900;
15581 
15582 data 1 -do -12 (10) "abcdefghij";
15583 data 2 -do -4  (10) "1234567890";
15584 
15585 page -all;
15586 
15587 
15588 
15589 /*     sztl15
15590 *  Test the or bool code. Set zero and truncation indicators.
15591 *  This means that both bit strings must be all zeroes.  The
15592 *   first bit string must be longer than the second  */
15593 
15594 inst sztl -nt "1st string is longer than 2nd"
15595 -bo or
15596 -ir zr tn
15597 -mf1 rl 30 idb ar
15598 -mf2 rl 20 ar ida;
15599 
15600 data 1 000 000 000 0;
15601 data 2  000 000 0;
15602 
15603 page -all;
15604 
15605 
15606 
15607 /*     sztl16
15608 *  Test the or bool code. No indicators are set.
15609 *  The one fill bit is used.  */
15610 
15611 inst sztl -nt "2nd string is longer than 1st"
15612 -bo or
15613 -fb
15614 -mf1 rl 3000 ar id
15615 -mf2 rl 3900 ar idr
15616 -io 1;
15617 
15618 data 1 (1000)7;
15619 data 2 (325)"x" (325)3 ;
15620 
15621 page -all;
15622 
15623 
15624 
15625 /*     sztl17
15626 * Test the nor bool code. No indicators are set.  */
15627 
15628 inst sztl -nt "2nd string is longer than 1st"
15629 -bo nor
15630 -mf1 ida ar rl 14
15631 -mf2 id ar rl 28
15632 -io 2;
15633 
15634 data 1 342 22;
15635 data 2 234 760 621 0;
15636 
15637 page -all;
15638 
15639 
15640 
15641 /*     sztl18
15642 *  Test the nor bool code.  Set the zero indicator.
15643 *  Use the one fill bit */
15644 
15645 inst sztl -nt "2nd string is longer than 1st"
15646 -ir zr
15647 -bo nor
15648 -fb
15649 -mf1 ar
15650 -mf2 rl 19;
15651 
15652 desc 1 -ns 8 -bp 1;
15653 
15654 data 1 777;
15655 data 2 326 417 0;
15656 
15657 page -all;
15658 
15659 
15660 
15661 /*     sztl19
15662 *  Test the nox bool code.  Set the zero indicator.
15663 *  For the indicator to be set, no two bits may matc.  */
15664 
15665 inst sztl -nt "Both strings are the same length"
15666 -ir zr
15667 -bo nox
15668 -mf1 id
15669 -mf2 ida;
15670 
15671 desc 1 -ns 54;
15672 desc 2 -ns 54;
15673 
15674 data 1 124 235 647 211 000 777;
15675 data 2 -do -4 653 542 130 566 777 000;
15676 
15677 page -all;
15678 
15679 
15680 
15681 /*     sztl20
15682 *  Test the Nox bool code. Only the truncation indicator is set.  */
15683 
15684 inst sztl -nt "1st string is longer than 2nd"
15685 -bo nox -ir tn
15686 -mf1 ar rl 36000
15687 -mf2 ar id
15688 -io 1;
15689 
15690 
15691 desc 1 -bp 7;
15692 desc 2 -bp 3 -ns 3600;
15693 
15694 data 1 003 (1000)"axyr";
15695 data 2 024 (100)"rjqf";
15696 
15697 page -all;
15698 
15699 
15700 
15701 /*     sztl21
15702 *  Test the iv2 bool code. Both the zero and the truncation
15703 *  indicators will be set.  For the zero indicator to be set,
15704 *  the 2nd bit string must be all ones.  */
15705 
15706 inst sztl -nt "1st string is longer than 2nd"
15707 -bo iv2  -ir zr tn
15708 -mf1 rl 64 ar reg
15709 -mf2 ar id
15710 -io 1;
15711 
15712 desc 1 -bp 6;
15713 desc 2 -ns 32 -bp 3;
15714 
15715 data 1 -do -1  "abpstuv" 4;
15716 data 2 077 777 777 776;
15717 
15718 page -all;
15719 
15720 
15721 
15722 /*     sztl22
15723 *  Test the iv2 bool code.  Use the zero fill bit. No indicators are set.  */
15724 
15725 inst sztl -nt "2nd string is longer than 1st"
15726 -bo iv2
15727 -mf1 ar id
15728 -mf2 rl 64 ar reg
15729 -io 1;
15730 
15731 desc 1 -ns 32 -bp 3;
15732 desc 2 -bp 6;
15733 
15734 data 1 077 777 777 776;
15735 data 2 -do -1  "abpstuv" 4;
15736 
15737 page -all;
15738 
15739 
15740 
15741 /*     sztl23
15742 *  Test the xrx bool code.  The zero indicator will be set.
15743 *  This can occur only when every bit in the first string is zero
15744 * and every bit in the 2nd string is one.  */
15745 
15746 inst sztl -nt "Both strings are the same length"
15747 -bo xrx -ir zr
15748 -mf1 reg
15749 -mf2 id;
15750 
15751 desc 1 -ns 108;
15752 desc 2 -ns 108;
15753 
15754 data 1 -do -4 (12)000;
15755 data 2 -do 4  (12)777;
15756 
15757 page -all;
15758 
15759 
15760 
15761 /*     sztl24
15762 *  Test the xrx bool code.  No indicators are set.  The zero fill bit is used  */
15763 
15764 inst sztl -nt "2nd string is longer than 1st"
15765 -bo xrx
15766 -mf1 rl 720 idr ar
15767 -mf2 id
15768 -io 2;
15769 
15770 desc 2 -ns 1080  -bp 4;
15771 
15772 data 1 -do -3  (20)"ijkl";
15773 data 2 -do 8  054  (30)"9832";
15774 
15775 page -all;
15776 
15777 
15778 
15779 /*     sztl25
15780 *  Test the inv bool code.  Set the zero indicator.
15781 *  To set the indicator, the first bit string must be
15782 *  all ones.  */
15783 
15784 inst sztl -nt "Both string are the same length"
15785 -ir zr
15786 -bo inv
15787 -mf1 idb ar reg
15788 -mf2 idb ar;
15789 
15790 desc 1 -bp 5 -ns 13;
15791 desc 2 -bp 2 -ns 13;
15792 
15793 data 1 777 777;
15794 data 2 265 43;
15795 
15796 page -all;
15797 
15798 
15799 
15800 /*     sztl26
15801 *   Test the inv bool code. No indicators are set  */
15802 
15803 inst sztl -nt "Both strings are the same length"
15804 -bo inv
15805 -mf1 idb ar
15806 -mf2 idb ar reg;
15807 
15808 desc 1 -bp 2 -ns 13;
15809 desc 2 -bp 5 -ns 13;
15810 
15811 data 1 265 43;
15812 data 2 777 777;
15813 
15814 page -all;
15815 
15816 
15817 
15818 /*     sztl27
15819 *  Test the xxr bool code. This test sets the zero indicator.
15820 *  The zero indicator is set only when the 1st string is all ones and
15821 *  the second string is all zeroes.  The one fill bit is used.  */
15822 
15823 inst sztl -nt "2nd string is longer than 1st"
15824 -ir zr
15825 -fb
15826 -bo xxr
15827 -io2;
15828 
15829 desc 1 -ns 1;
15830 desc 2 -ns 2;
15831 
15832 data 1 4;
15833 data 2 0;
15834 
15835 page -all;
15836 
15837 
15838 
15839 /*     sztl28
15840 *  Test the xxr bool code. No indicators are set   */
15841 
15842 inst sztl -nt "2nd string is longer than 1st"
15843 -bo xxr
15844 -mf1 ar
15845 -mf2 reg rl 59;
15846 
15847 desc 1 -ns 43 -bp 5;
15848 
15849 data 1 -do -2 "tsrkv" 3;
15850 data 2 -do -4 "mnopqrs";
15851 
15852 page -all;
15853 
15854 
15855 
15856 /*     sztl29
15857 *  Test the nan bool code. The zero and truncation indicators
15858 *  are set.  For the zero indicator to be set, both bit strings
15859 * must be all ones.  */
15860 
15861 inst sztl -nt "1st string is longer than 2nd"
15862 -bo nan
15863 -ir zr tn
15864 -mf1 rl 39168 ar
15865 -mf2 rl 33000;
15866 
15867 data 1 (4352)777;
15868 data 2 (3667)777;
15869 
15870 page -all;
15871 
15872 
15873 
15874 /*     sztl30
15875 *  Test the nan bool code. No indicators are set.
15876 *  The one fill bit is set.  */
15877 
15878 inst sztl -nt "2nd string is longer than 1st"
15879 -fb
15880 -bo nan
15881 -mf1 ar
15882 -mf2 ar rl 436;
15883 
15884 desc 1 -bp 3 -ns 274;
15885 
15886 data 1 (7)"tack" "rgm";
15887 data 2 (12)"mike" 023;
15888 
15889 page -all;
15890 
15891 
15892 
15893 /*     sztl31
15894 *  Test the "set" bool code. The zero indicator cannot be set
15895 *  when the "set" code is used. This test sets the truncation
15896 indicator.  */
15897 
15898 inst sztl -nt "1st string is longer than 2nd"
15899 -ir tn
15900 -bo set;
15901 
15902 desc 1 -ns 50;
15903 desc 2 -ns 49;
15904 
15905 data 1 023 571 725 152 111 243;
15906 data 2 023 571 777 043 121 000;
15907 
15908 page -all;
15909 
15910 
15911 
15912 /*     sztl32
15913 *  Test the "set" bool code. No indicators are set.
15914 *  The maximum number of page faults is taken  */
15915 
15916 inst sztl -nt "2nd string is longer than 1st"
15917 -bo set
15918 -mf1 idb ar reg rl 39159
15919 -mf2 idb ar reg rl 39168
15920 -io 1
15921 -fb;
15922 
15923 data 1 (4351)000;
15924 data 2 (4352)071;
15925 
15926 page -all;
15927 
15928 ^L
15929 
15930 /*     sztr1
15931 *  Use two maximum length strings (4352 chrs or 39168 bits).
15932 *  The zero indicator will be on since a bool code of "zer"
15933 *  is used. Take maximum number of page faults.  */
15934 
15935 inst sztr -nt "Both strings are the same length"
15936 -bo zer
15937 -ir zr
15938 -mf1 idb ar reg rl 39168
15939 -mf2 idb ar reg rl 39168
15940 -io 1;
15941 
15942 data 1 -do -10 (4352)"5";
15943 data 2 -do -30 (4352)"7";
15944 
15945 page -all;
15946 
15947 
15948 
15949 /*     sztr2
15950 *  Both the truncation and the zero indicators will be turned
15951 *  on.  The 1st string will begin on the last bit of a page and
15952 *  the 2nd string will end on the 1st bit of a page.  */
15953 
15954 inst sztr -nt "Both strings cross page bounds"
15955 -bo zer
15956 -ir tn zr
15957 -mf1 ar
15958 -mf2 ar;
15959 
15960 desc 1 -bp 8 -ns 23;
15961 desc 2 -bp 1 -ns 18;
15962 
15963 data 1 -do -1 074 321 64;
15964 data 2 -do -4 023 776 4;
15965 
15966 page -all;
15967 
15968 
15969 
15970 /*     sztr3
15971 *  No indicators are turned on. The zero fill bit is used. Bit strings
15972 *  begin in the middle of a byte  */
15973 
15974 inst sztr -nt "Both strings cross page bounds"
15975 -bo and
15976 -mf1 ida ar
15977 -mf2 idb ar;
15978 
15979 desc 1 -bp 4 -ns 70;
15980 desc 2 -bp 5 -ns 80;
15981 
15982 data 1 -do -2 "3274" "1958" 0;
15983 data 2 -do -4 "4875" "7329" 326 0;
15984 
15985 page -all;
15986 
15987 
15988 
15989 /*     sztr4
15990 *  The zero indicator will be turned on. Both strings
15991 are of the same length and begin and end on word boundaries.  */
15992 
15993 inst sztr -nt "only rl modification is used"
15994 -bo and
15995 -ir zr
15996 -mf1 rl 144
15997 -mf2 rl 144
15998 -io 2;
15999 
16000 data 1 (4)123 (12)075;
16001 data 2 (4)654 (12)402;
16002 
16003 page -all;
16004 
16005 
16006 
16007 /*     sztr5
16008 *  Test the axr bool code.  Set the zero and truncation
16009 *  indicators. Bit strings begin in the middle of a byte
16010 *  straddling a page boundary.  */
16011 
16012 inst sztr -nt "1st string is longer than 2nd"
16013 -bo axr
16014 -ir tn
16015 -mf1 ar reg rl 40
16016 -mf2 ar idr rl 31;
16017 
16018 desc 1 -bp 5;
16019 desc 2 -bp 5;
16020 
16021 data 1 -do -1 074 321 652 403 777;
16022 data 2 -do -3 777 777 676 603;
16023 
16024 page -all;
16025 
16026 
16027 
16028 /*     sztr6
16029 *  Test the axr bool code. No indicators will be set  */
16030 
16031 inst sztr -nt "Both strings are the same length"
16032 
16033 -bo axr
16034 -mf1 rl 7866
16035 -mf2 rl 7866;
16036 
16037 data 1 (874)"321";
16038 data 2 (874) "604";
16039 
16040 page -all;
16041 
16042 
16043 
16044 /*     sztr7
16045 *  Test the mov bool code. Use a maximum length string and the
16046 *  zero fill bit.  Take the maximum number of page faults.  */
16047 
16048 inst sztr -nt "2nd string is longer than 1st"
16049 -bo mov
16050 -mf1 ida ar rl 36000
16051 -mf2 idb ar reg rl 39168
16052 -io 1;
16053 
16054 data 1 -do -40 (1000)"9874";
16055 data 2 -do -20 (1088) "0000";
16056 
16057 page -all;
16058 
16059 
16060 
16061 /*     sztr8
16062 *  Test the move bool code. Set the zero indicator.
16063 *  The first string is all zeroes.  */
16064 
16065 inst sztr -nt "2nd string is longer than 1st"
16066 -bo mov
16067 -ir zr
16068 -mf1 ar id
16069 -mf2 ar
16070 -io 2;
16071 
16072 desc 1 -bp 7 -ns 99;
16073 desc 2 -bp 1 -ns 100;
16074 
16075 data 1 -do 20 (12)000;
16076 data 2 -do 3 "abcde123456" 4;
16077 
16078 page -all;
16079 
16080 
16081 
16082 /*     sztr9
16083 *  Test xra bool code. Set zero and truncation indicators.
16084 *  Use two short bit strings which cross page boundaries.  */
16085 
16086 inst sztr -nt "1st string is longer than 2nd"
16087 -bo xra
16088 -ir tn zr
16089 -mf1 ar idr
16090 -mf2 ar idb;
16091 
16092 desc 1 -ns 3 -bp 7;
16093 desc 2 -ns 2 -bp 8;
16094 
16095 data 1 -do -1 777 4;
16096 data 2 -do -1 235 0;
16097 
16098 page -all;
16099 
16100 
16101 
16102 /*     sztr10
16103 * Test xra bool code.  Use the zero fill bit. No indicators are set */
16104 
16105 inst sztr -nt "2nd string is longer than 1st"
16106 -bo xra
16107 -mf1 idr reg
16108 -mf2 idr
16109 -io 2;
16110 
16111 desc 1 -ns 400;
16112 desc 2 -ns 500;
16113 
16114 data 1 (44)"9" 72;
16115 data 2 (55)"8" 36;
16116 
16117 page -all;
16118 
16119 
16120 
16121 /*     sztr11
16122 *  Test ra2 bool code. Set the zero indicator. This means
16123 *  that the 2nd bit string must be all zeroes.  */
16124 
16125 inst sztr -nt "2nd string is longer than 1st"
16126 -bo ra2
16127 -mf1 ar rl 36
16128 -mf2 reg
16129 -ir zr
16130 -io 1;
16131 
16132 desc 1 -bp 4;
16133 desc 2 -ns 36;
16134 
16135 data 1 -do -1 "abcd" 70;
16136 data 2 (4)000;
16137 
16138 page -all;
16139 
16140 
16141 
16142 /*     sztr12
16143 *  Test ra2 bool code. No indicators are set.  */
16144 
16145 inst sztr -nt "Both strings are the same length"
16146 -bo ra2
16147 -mf1 reg
16148 -mf2 ar rl 36
16149 -io 2;
16150 
16151 desc 1 -ns 36;
16152 desc 2 -bp 4;
16153 
16154 data 1 (4)000;
16155 data 2 -do -1 "abcd" 70;
16156 
16157 page -all;
16158 
16159 
16160 
16161 /*     sztr13
16162 *  Test xor bool code. Set the zero indicator. Use zero fill.  */
16163 
16164 inst sztr -nt "2nd string is longer than 1st"
16165 -bo xor
16166 -mf1 id reg
16167 -mf2 ar;
16168 
16169 desc 1 -ns 3600;
16170 desc 2 -ns 3672 -bp 7;
16171 
16172 data 1 -do -8 (100)3526;
16173 data 2 -do -63 000 (100)7254 (7)000;
16174 
16175 page -all;
16176 
16177 
16178 
16179 /*     sztr14
16180 *  Test xor bool code. use strings of identical length.
16181 *  No indicators are set.  */
16182 
16183 inst sztr -nt "Both strings are the same length"
16184 -bo xor;
16185 
16186 desc  1 -ns 900;
16187 desc 2 -ns 900;
16188 
16189 data 1 -do -12 (10) "abcdefghij";
16190 data 2 -do -4  (10) "1234567890";
16191 
16192 page -all;
16193 
16194 
16195 
16196 /*     sztr15
16197 *  Test the or bool code. Set zero and truncation indicators.
16198 *  This means that both bit strings must be all zeroes.  The
16199 *   first bit string must be longer than the second  */
16200 
16201 inst sztr -nt "1st string is longer than 2nd"
16202 -bo or
16203 -ir zr tn
16204 -mf1 rl 30 idb ar
16205 -mf2 rl 20 ar ida;
16206 
16207 data 1 000 000 000 0;
16208 data 2  000 000 0;
16209 
16210 page -all;
16211 
16212 
16213 
16214 /*     sztr16
16215 *  Test the or bool code. No indicators are set.
16216 *  The one fill bit is used.  */
16217 
16218 inst sztr -nt "2nd string is longer than 1st"
16219 -bo or
16220 -fb
16221 -mf1 rl 3000 ar id
16222 -mf2 rl 3900 ar idr
16223 -io 1;
16224 
16225 data 1 (1000)7;
16226 data 2 (325)"x" (325)3 ;
16227 
16228 page -all;
16229 
16230 
16231 
16232 /*     sztr17
16233 * Test the nor bool code. No indicators are set.  */
16234 
16235 inst sztr -nt "2nd string is longer than 1st"
16236 -bo nor
16237 -mf1 ida ar rl 14
16238 -mf2 id ar rl 28
16239 -io 2;
16240 
16241 data 1 342 22;
16242 data 2 234 760 621 0;
16243 
16244 page -all;
16245 
16246 
16247 
16248 /*     sztr18
16249 *  Test the nor bool code.  Set the zero indicator.
16250 *  Use the one fill bit */
16251 
16252 inst sztr -nt "2nd string is longer than 1st"
16253 -ir zr
16254 -bo nor
16255 -fb
16256 -mf1 ar
16257 -mf2 rl 19;
16258 
16259 desc 1 -ns 8 -bp 1;
16260 
16261 data 1 777;
16262 data 2 326 417 0;
16263 
16264 page -all;
16265 
16266 
16267 
16268 /*     sztr19
16269 *  Test the nox bool code.  Set the zero indicator.
16270 *  For the indicator to be set, no two bits may matc.  */
16271 
16272 inst sztr -nt "Both strings are the same length"
16273 -ir zr
16274 -bo nox
16275 -mf1 id
16276 -mf2 ida;
16277 
16278 desc 1 -ns 54;
16279 desc 2 -ns 54;
16280 
16281 data 1 124 235 647 211 000 777;
16282 data 2 -do -4 653 542 130 566 777 000;
16283 
16284 page -all;
16285 
16286 
16287 
16288 /*     sztr20
16289 *  Test the Nox bool code. Only the truncation indicator is set.  */
16290 
16291 inst sztr -nt "1st string is longer than 2nd"
16292 -bo nox -ir tn
16293 -mf1 ar rl 36000
16294 -mf2 ar id
16295 -io 1;
16296 
16297 
16298 desc 1 -bp 7;
16299 desc 2 -bp 3 -ns 3600;
16300 
16301 data 1 003 (1000)"axyr";
16302 data 2 024 (100)"rjqf";
16303 
16304 page -all;
16305 
16306 
16307 
16308 /*     sztr21
16309 *  Test the iv2 bool code. Both the zero and the truncation
16310 *  indicators will be set.  For the zero indicator to be set,
16311 *  the 2nd bit string must be all ones.  */
16312 
16313 inst sztr -nt "1st string is longer than 2nd"
16314 -bo iv2  -ir zr tn
16315 -mf1 rl 64 ar reg
16316 -mf2 ar id
16317 -io 1;
16318 
16319 desc 1 -bp 6;
16320 desc 2 -ns 32 -bp 3;
16321 
16322 data 1 -do -1  "abpstuv" 4;
16323 data 2 077 777 777 776;
16324 
16325 page -all;
16326 
16327 
16328 
16329 /*     sztr22
16330 *  Test the iv2 bool code.  Use the zero fill bit. No indicators are set.  */
16331 
16332 inst sztr -nt "2nd string is longer than 1st"
16333 -bo iv2
16334 -mf1 ar id
16335 -mf2 rl 64 ar reg
16336 -io 1;
16337 
16338 desc 1 -ns 32 -bp 3;
16339 desc 2 -bp 6;
16340 
16341 data 1 077 777 777 776;
16342 data 2 -do -1  "abpstuv" 4;
16343 
16344 page -all;
16345 
16346 
16347 
16348 /*     sztr23
16349 *  Test the xrx bool code.  The zero indicator will be set.
16350 *  This can occur only when every bit in the first string is zero
16351 * and every bit in the 2nd string is one.  */
16352 
16353 inst sztr -nt "Both strings are the same length"
16354 -bo xrx -ir zr
16355 -mf1 reg
16356 -mf2 id;
16357 
16358 desc 1 -ns 108;
16359 desc 2 -ns 108;
16360 
16361 data 1 -do -4 (12)000;
16362 data 2 -do 4  (12)777;
16363 
16364 page -all;
16365 
16366 
16367 
16368 /*     sztr24
16369 *  Test the xrx bool code.  No indicators are set.  The zero fill bit is used  */
16370 
16371 inst sztr -nt "2nd string is longer than 1st"
16372 -bo xrx
16373 -mf1 rl 720 idr ar
16374 -mf2 id
16375 -io 2;
16376 
16377 desc 2 -ns 1080  -bp 4;
16378 
16379 data 1 -do -3  (20)"ijkl";
16380 data 2 -do 8  054  (30)"9832";
16381 
16382 page -all;
16383 
16384 
16385 
16386 /*     sztr25
16387 *  Test the inv bool code.  Set the zero indicator.
16388 *  To set the indicator, the first bit string must be
16389 *  all ones.  */
16390 
16391 inst sztr -nt "Both string are the same length"
16392 -ir zr
16393 -bo inv
16394 -mf1 idb ar reg
16395 -mf2 idb ar;
16396 
16397 desc 1 -bp 5 -ns 13;
16398 desc 2 -bp 2 -ns 13;
16399 
16400 data 1 777 777;
16401 data 2 265 43;
16402 
16403 page -all;
16404 
16405 
16406 
16407 /*     sztr26
16408 *   Test the inv bool code. No indicators are set  */
16409 
16410 inst sztr -nt "Both strings are the same length"
16411 -bo inv
16412 -mf1 idb ar
16413 -mf2 idb ar reg;
16414 
16415 desc 1 -bp 2 -ns 13;
16416 desc 2 -bp 5 -ns 13;
16417 
16418 data 1 265 43;
16419 data 2 777 777;
16420 
16421 page -all;
16422 
16423 
16424 
16425 /*     sztr27
16426 *  Test the xxr bool code. This test sets the zero indicator.
16427 *  The zero indicator is set only when the 1st string is all ones and
16428 *  the second string is all zeroes.  The one fill bit is used.  */
16429 
16430 inst sztr -nt "2nd string is longer than 1st"
16431 -ir zr
16432 -fb
16433 -bo xxr
16434 -io2;
16435 
16436 desc 1 -ns 1;
16437 desc 2 -ns 2;
16438 
16439 data 1 4;
16440 data 2 0;
16441 
16442 page -all;
16443 
16444 
16445 
16446 /*     sztr28
16447 *  Test the xxr bool code. No indicators are set   */
16448 
16449 inst sztr -nt "2nd string is longer than 1st"
16450 -bo xxr
16451 -mf1 ar
16452 -mf2 reg rl 59;
16453 
16454 desc 1 -ns 43 -bp 5;
16455 
16456 data 1 -do -2 "tsrkv" 3;
16457 data 2 -do -4 "mnopqrs";
16458 
16459 page -all;
16460 
16461 
16462 
16463 /*     sztr29
16464 *  Test the nan bool code. The zero and truncation indicators
16465 *  are set.  For the zero indicator to be set, both bit strings
16466 * must be all ones.  */
16467 
16468 inst sztr -nt "1st string is longer than 2nd"
16469 -bo nan
16470 -ir zr tn
16471 -mf1 rl 39168 ar
16472 -mf2 rl 33000;
16473 
16474 data 1 (4352)777;
16475 data 2 (3667)777;
16476 
16477 page -all;
16478 
16479 
16480 
16481 /*     sztr30
16482 *  Test the nan bool code. No indicators are set.
16483 *  The one fill bit is set.  */
16484 
16485 inst sztr -nt "2nd string is longer than 1st"
16486 -fb
16487 -bo nan
16488 -mf1 ar
16489 -mf2 ar rl 436;
16490 
16491 desc 1 -bp 3 -ns 274;
16492 
16493 data 1 (7)"tack" "rgm";
16494 data 2 (12)"mike" 023;
16495 
16496 page -all;
16497 
16498 
16499 
16500 /*     sztr31
16501 *  Test the "set" bool code. The zero indicator cannot be set
16502 *  when the "set" code is used. This test sets the truncation
16503 indicator.  */
16504 
16505 inst sztr -nt "1st string is longer than 2nd"
16506 -ir tn
16507 -bo set;
16508 
16509 desc 1 -ns 50;
16510 desc 2 -ns 49;
16511 
16512 data 1 023 571 725 152 111 243;
16513 data 2 023 571 777 043 121 000;
16514 
16515 page -all;
16516 
16517 
16518 
16519 /*     sztr32
16520 *  Test the "set" bool code. No indicators are set.
16521 *  The maximum number of page faults is taken  */
16522 
16523 inst sztr -nt "2nd string is longer than 1st"
16524 -bo set
16525 -mf1 idb ar reg rl 39159
16526 -mf2 idb ar reg rl 39168
16527 -io 1
16528 -fb;
16529 
16530 data 1 (4351)000;
16531 data 2 (4352)071;
16532 
16533 page -all;
16534 
16535 ^L
16536 
16537 /*     cmpb1
16538 *  Use two maximum length strings (4352 chrs or 39168 bits)
16539 *  with the first string less than the 2nd. Take the maximum
16540 *  number of page faults.  */
16541 
16542 inst cmpb
16543 -nt "both strings cross page bounds"
16544 -mf1 idb ar reg rl 39168
16545 -mf2 idb ar reg rl 39168
16546 -io 1;
16547 
16548 data 1 -do -10 (4352)"5";
16549 data 2 -do -30 (4352)"7";
16550 
16551 page -all;
16552 
16553 
16554 
16555 
16556 /*     cmpb2
16557 *  The first string begins on the last bit of a page and the
16558 *  2nd string ends on the first bit of a page. The first string is
16559 *  greater than the 2nd.  */
16560 
16561 inst cmpb -nt "both strings cross page bounds"
16562 -ir cr
16563 -mf1 ar
16564 -mf2 ar;
16565 
16566 desc 1 -bp 8 -ns 23;
16567 desc 2 -bp 1 -ns 18;
16568 
16569 data 1 -do -1 074 321 64;
16570 data 2 -do -4 023 776 4;
16571 
16572 page -all;
16573 
16574 
16575 
16576 
16577 /*     cmpb3
16578 *  Both strings begin in the middle of a byte and span page boundaries.
16579 *  The first string is greater than the 2nd.  */
16580 
16581 inst cmpb -nt "both strings cross page bounds"
16582 -ir cr
16583 -mf1 ida ar
16584 -mf2 idb ar;
16585 
16586 desc 1 -bp 4 -ns 70;
16587 desc 2 -bp 5 -ns 80;
16588 
16589 data 1 -do -2 "3274" "1958" 0;
16590 data 2 -do -4 "4875" "7329" 326 0;
16591 
16592 page -all;
16593 
16594 
16595 
16596 
16597 /*     cmpb4
16598 *  Both strings are 4 words in length and neither
16599 string spans a page boundary. The first string is
16600 *  less than the 2nd.  */
16601 
16602 inst cmpb -nt "both strings are the same length"
16603 -mf1 rl 144
16604 -mf2 rl 144
16605 -io 2;
16606 
16607 data 1 (4)123 (12)075;
16608 data 2 (4)654 (12)402;
16609 
16610 page -all;
16611 
16612 
16613 
16614 
16615 /*     cmpb5
16616 *  Both strings begin in the middle of a byte and span a
16617 * page boundary. The first string is less than the 2nd.  */
16618 
16619 inst cmpb -nt "2nd string has indirect desc"
16620 -mf1 ar reg rl 40
16621 -mf2 ar idr rl 31;
16622 
16623 desc 1 -bp 5;
16624 desc 2 -bp 5;
16625 
16626 data 1 -do -1 074 321 652 403 777;
16627 data 2 -do -3 777 777 676 603;
16628 
16629 page -all;
16630 
16631 
16632 
16633 
16634 /*     cmpb6
16635 *  Both strings are 874 bytes in length and the first string
16636 *  is less than the 2nd. Only 3 page faults occur.  */
16637 
16638 inst cmpb -nt "both strings are the same length"
16639 
16640 -mf1 rl 7866
16641 -mf2 rl 7866;
16642 
16643 data 1 (874)"321";
16644 data 2 (874) "604";
16645 
16646 page -all;
16647 
16648 
16649 
16650 
16651 /*     cmpb7
16652 *  The first string is l000 words in length and the
16653 *  2nd string is 1088 words of all zeroes. The first
16654 *  string is greater than the 2nd.  */
16655 
16656 inst cmpb -nt "both strings cross page bounds"
16657 -ir cr
16658 -mf1 ida ar rl 36000
16659 -mf2 idb ar reg rl 39168
16660 -io 1;
16661 
16662 data 1 -do -40 (1000)"9874";
16663 data 2 -do -20 (1088) "0000";
16664 
16665 page -all;
16666 
16667 
16668 
16669 
16670 /*     cmpb8
16671 *  Both strings begin in the middle of a byte and
16672 * neither string spans a page boundary. The first string is less
16673 * than the 2nd.  */
16674 
16675 inst cmpb -nt "2nd string is longer than 1st"
16676 -mf1 ar id
16677 -mf2 ar
16678 -io 2;
16679 
16680 desc 1 -bp 7 -ns 99;
16681 desc 2 -bp 1 -ns 100;
16682 
16683 data 1 -do 20 (12)000;
16684 data 2 -do 3 "abcde123456" 4;
16685 
16686 page -all;
16687 
16688 
16689 
16690 
16691 /*     cmpb9
16692 *  Both strings begin in the middle of a byte and span pages.
16693 *  The first string is all ones and is greater than the 2nd.  */
16694 
16695 inst cmpb -nt "1st string is longer than 2nd"
16696 -ir cr
16697 -mf1 ar idr
16698 -mf2 ar idb;
16699 
16700 desc 1 -ns 3 -bp 7;
16701 desc 2 -ns 2 -bp 8;
16702 
16703 data 1 -do -1 777 4;
16704 data 2 -do -1 235 0;
16705 
16706 page -all;
16707 
16708 
16709 
16710 
16711 /*     cmpb10
16712 *  The first string is greater than the 2nd, although it is
16713 shorter in length.  */
16714 
16715 inst cmpb -nt "2nd string is longer than 1st"
16716 -ir cr
16717 -mf1 idr reg
16718 -mf2 idr
16719 -io 2;
16720 
16721 desc 1 -ns 400;
16722 desc 2 -ns 500;
16723 
16724 data 1 (44)"9" 72;
16725 data 2 (55)"8" 36;
16726 
16727 page -all;
16728 
16729 
16730 
16731 
16732 /*     cmpb11
16733 *  Both strings are 1 word in length and only the 1st
16734 * string spans a page boundary. The first string is greater
16735 *  than the 2nd.  */
16736 
16737 inst cmpb -nt "2nd string is longer than 1st"
16738 -mf1 ar rl 36
16739 -mf2 reg
16740 -ir cr
16741 -io 1;
16742 
16743 desc 1 -bp 4;
16744 desc 2 -ns 36;
16745 
16746 data 1 -do -1 "abcd" 70;
16747 data 2 (4)000;
16748 
16749 page -all;
16750 
16751 
16752 
16753 
16754 /*     cmpb12
16755 *  Both strings are 1 word in length and only
16756 *  the 2nd string spans a page boundary.  The 2nd string
16757 *  is greater than the first.  */
16758 
16759 inst cmpb -nt "both strings are the same length"
16760 -mf1 reg
16761 -mf2 ar rl 36
16762 -io 2;
16763 
16764 desc 1 -ns 36;
16765 desc 2 -bp 4;
16766 
16767 data 1 (4)000;
16768 data 2 -do -1 "abcd" 70;
16769 
16770 page -all;
16771 
16772 
16773 
16774 
16775 /*     cmpb13
16776 *  The first string is 100 words in length and the  2nd
16777 string is 102 words long. Both strings span a page and the
16778 first string is greater than the 2nd.  */
16779 
16780 
16781 inst cmpb -nt "2nd string is longer than 1st"
16782 -ir cr
16783 -mf1 id reg
16784 -mf2 ar;
16785 
16786 desc 1 -ns 3600;
16787 desc 2 -ns 3672 -bp 7;
16788 
16789 data 1 -do -8 (100)3526;
16790 data 2 -do -63 000 (100)7254 (7)000;
16791 
16792 page -all;
16793 
16794 
16795 
16796 
16797 /*     cmpb14
16798 *  Both strings are 100 bytes long and span a page.  The
16799 first string is larger than the 2nd.  */
16800 
16801 inst cmpb -nt "both strings are the same length"
16802 -ir cr;
16803 
16804 desc  1 -ns 900;
16805 desc 2 -ns 900;
16806 
16807 data 1 -do -12 (10) "abcdefghij";
16808 data 2 -do -4  (10) "1234567890";
16809 
16810 page -all;
16811 
16812 
16813 
16814 
16815 /*     cmpb15
16816 *  Both strings are all zeroes and thus they are equal.  */
16817 
16818 inst cmpb -nt "1st string is longer than 2nd"
16819 -ir cr zr
16820 -mf1 rl 30 idb ar
16821 -mf2 rl 20 ar ida;
16822 
16823 data 1 000 000 000 0;
16824 data 2  000 000 0;
16825 
16826 page -all;
16827 
16828 
16829 
16830 
16831 
16832 /*     cmpb16
16833 *  The first string is shorter than the 2nd and the
16834 one fill bit is used.  The first string is all ones and
16835 is greater than the 2nd.  */
16836 
16837 inst cmpb -nt "2nds string is longer than 1st"
16838 -ir cr
16839 -fb
16840 -mf1 rl 3000 ar id
16841 -mf2 rl 3900 ar idr
16842 -io 1;
16843 
16844 data 1 (1000)7;
16845 data 2 (325)"x" (325)3 ;
16846 
16847 page -all;
16848 
16849 
16850 
16851 
16852 
16853 /*     cmpb17
16854 *  The first string is greater than the 2nd although it is
16855 shorter in length.  */
16856 
16857 inst cmpb -nt "2nd string is longer than 1st"
16858 -ir cr
16859 -mf1 ida ar rl 14
16860 -mf2 id ar rl 28
16861 -io 2;
16862 
16863 data 1 342 22;
16864 data 2 234 760 621 0;
16865 
16866 page -all;
16867 
16868 
16869 
16870 
16871 
16872 /*     cmpb18
16873 *  The fill bit is used to make the first string all ones.
16874 *  The first string is greater than the second.  */
16875 
16876 inst cmpb -nt "2nd string is longer than 1st"
16877 -ir cr
16878 -fb
16879 -mf1 ar
16880 -mf2 rl 19;
16881 
16882 desc 1 -ns 8 -bp 1;
16883 
16884 data 1 777;
16885 data 2 326 417 0;
16886 
16887 page -all;
16888 
16889 
16890 
16891 
16892 
16893 /*     cmpb19
16894 *  Both strings are 6 bytes in length and the 2nd string
16895 *  spans a page boundary. The first string is less than the 2nd.  */
16896 
16897 inst cmpb -nt "both strings are the same length"
16898 -mf1 id
16899 -mf2 ida;
16900 
16901 desc 1 -ns 54;
16902 desc 2 -ns 54;
16903 
16904 data 1 124 235 647 211 000 777;
16905 data 2 -do -4 653 542 130 566 777 000;
16906 
16907 page -all;
16908 
16909 
16910 
16911 
16912 
16913 /*     cmpb20
16914 *  Both strings begin in the middle of a byte.  The first
16915 *  string is 1000 words long while the 2nd string is 100
16916 * words long. The first  string is greater than the 2nd.  */
16917 
16918 inst cmpb -nt "1st string is longer than 2nd"
16919 -ir cr
16920 -mf1 ar rl 36000
16921 -mf2 ar id
16922 -io 1;
16923 
16924 
16925 desc 1 -bp 7;
16926 desc 2 -bp 3 -ns 3600;
16927 
16928 data 1 003 (1000)"axyr";
16929 data 2 024 (100)"rjqf";
16930 
16931 page -all;
16932 
16933 
16934 
16935 
16936 
16937 /*     cmpb21
16938 *  Both strings begin in the middle of a byte and only the
16939 first string crosses a page boundary.  The 2nd string is all
16940 ones  and is greater than the first.  */
16941 
16942 inst cmpb -nt "1st string is longer than 2nd"
16943 -mf1 rl 64 ar reg
16944 -mf2 ar id
16945 -io 1;
16946 
16947 desc 1 -bp 6;
16948 desc 2 -ns 32 -bp 3;
16949 
16950 data 1 -do -1  "abpstuv" 4;
16951 data 2 077 777 777 776;
16952 
16953 page -all;
16954 
16955 
16956 
16957 
16958 
16959 /*     cmpb22
16960 *  Both strings begin in the middle of a byte and only the 2nd
16961 string crosses a page boundary.  The first string is all ones and
16962 is greater than the 2nd string.  */
16963 
16964 inst cmpb -nt "2nd string is longer than 1st"
16965 -ir cr
16966 -mf1 ar id
16967 -mf2 rl 64 ar reg
16968 -io 1;
16969 
16970 desc 1 -ns 32 -bp 3;
16971 desc 2 -bp 6;
16972 
16973 data 1 077 777 777 776;
16974 data 2 -do -1  "abpstuv" 4;
16975 
16976 page -all;
16977 
16978 
16979 
16980 
16981 
16982 /*     cmpb23
16983 *  Both strings are three words in length and the 1st string
16984 crosses a page boundary. The 2nd string is greater than the
16985 first.  */
16986 
16987 inst cmpb -nt "both strings are the same length"
16988 -mf1 reg
16989 -mf2 id;
16990 
16991 desc 1 -ns 108;
16992 desc 2 -ns 108;
16993 
16994 data 1 -do -4 (12)000;
16995 data 2 -do 4  (12)777;
16996 
16997 page -all;
16998 
16999 
17000 
17001 
17002 
17003 /*     cmpb24
17004 *  The 1st string is 20 words in length and crosses a page
17005 boundary. The 2nd string is 30 words in length and is greater
17006 than the 1st.  */
17007 
17008 inst cmpb -nt "2nd string is longer than 1st"
17009 -mf1 rl 720 idr ar
17010 -mf2 id
17011 -io 2;
17012 
17013 desc 2 -ns 1080  -bp 4;
17014 
17015 data 1 -do -3  (20)"ijkl";
17016 data 2 -do 8  054  (30)"9832";
17017 
17018 page -all;
17019 
17020 
17021 
17022 
17023 
17024 /*     cmpb25
17025 *  Both strings begin in the middle of a byte. The first string is
17026 all ones and is greater than the 2nd.  */
17027 
17028 inst cmpb -nt "both strings are the same length"
17029 -ir cr
17030 -mf1 idb ar reg
17031 -mf2 idb ar;
17032 
17033 desc 1 -bp 5 -ns 13;
17034 desc 2 -bp 2 -ns 13;
17035 
17036 data 1 777 777;
17037 data 2 265 43;
17038 
17039 page -all;
17040 
17041 
17042 
17043 
17044 
17045 /*     cmpb26
17046 *  Both strings begin in the middle of a byte. The 2nd string
17047 is all ones and is greater than the first.  */
17048 
17049 inst cmpb -nt "both strings are the same length"
17050 -mf1 idb ar
17051 -mf2 idb ar reg;
17052 
17053 desc 1 -bp 2 -ns 13;
17054 desc 2 -bp 5 -ns 13;
17055 
17056 data 1 265 43;
17057 data 2 777 777;
17058 
17059 page -all;
17060 
17061 
17062 
17063 
17064 
17065 /*     cmpb27
17066 *  The first string is one bit in length and the 2nd string
17067 is two bits long. The one fill bit is used and the first string
17068 is greater.  */
17069 
17070 inst cmpb -nt "2nd string is longer than 1st"
17071 -ir cr
17072 -fb
17073 -io2;
17074 
17075 desc 1 -ns 1;
17076 desc 2 -ns 2;
17077 
17078 data 1 4;
17079 data 2 0;
17080 
17081 page -all;
17082 
17083 
17084 
17085 
17086 
17087 /*     cmpb28
17088 *  The 1st string begins in the middle of  a byte and
17089 both strings cross page boundaries. The first string is greater
17090 than the 2nd.  */
17091 
17092 inst cmpb -nt "2nd string is longer than 1st"
17093 -ir cr
17094 -mf1 ar
17095 -mf2 reg rl 59;
17096 
17097 desc 1 -ns 43 -bp 5;
17098 
17099 data 1 -do -2 "tsrkv" 3;
17100 data 2 -do -4 "mnopqrs";
17101 
17102 page -all;
17103 
17104 
17105 
17106 
17107 
17108 /*     cmpb29
17109 *  Both strings consist of all  ones but the first string
17110 is longer and the zero fill bit is used.  Therefore, the
17111 first string is greater than the 2nd.  */
17112 
17113 inst cmpb -nt "1st string is longer than 2nd"
17114 -ir cr
17115 -mf1 rl 39168 ar
17116 -mf2 rl 33000;
17117 
17118 data 1 (4352)777;
17119 data 2 (3667)777;
17120 
17121 page -all;
17122 
17123 
17124 
17125 
17126 
17127 /*     cmpb30
17128 *  The first string starts in the middle of a byte and neither
17129 string crosses a page boundary. The first string is greater than the
17130 second.  */
17131 
17132 inst cmpb -nt "2nd string is longer than 1st"
17133 -ir cr
17134 -fb
17135 -mf1 ar
17136 -mf2 ar rl 436;
17137 
17138 desc 1 -bp 3 -ns 274;
17139 
17140 data 1 (7)"tack" "rgm";
17141 data 2 (12)"mike" 023;
17142 
17143 page -all;
17144 
17145 
17146 
17147 
17148 
17149 /*     cmpb31
17150 *  Neither string crosses a page boundary and the first
17151 string is less than the 2nd.  */
17152 
17153 inst cmpb -nt "1st string is longer than 2nd";
17154 
17155 desc 1 -ns 50;
17156 desc 2 -ns 49;
17157 
17158 data 1 023 571 725 152 111 243;
17159 data 2 023 571 777 043 121 000;
17160 
17161 page -all;
17162 
17163 
17164 
17165 
17166 
17167 /*     cmpb32
17168 *   The first string consists of all zeroes and neither
17169 string crosses a page boundary. The second string is both
17170 longer and greater.  */
17171 
17172 inst cmpb -nt "2nd string is longer than 1st"
17173 -mf1 idb ar reg rl 39159
17174 -mf2 idb ar reg rl 39168
17175 -io 1
17176 -fb;
17177 
17178 data 1 (4351)000;
17179 data 2 (4352)071;
17180 
17181 page -all;
17182 
17183 ^L
17184 
17185 
17186 /*     dtb1
17187 * Indirect descriptors are used for both operands.
17188 * Address register modification is used for both operands.
17189 * The decimal operand is split across a page boundary.
17190 */
17191 
17192 inst dtb
17193 -nt "9-bit unsigned decimal -> binary"
17194 -mf2 idb ar reg rl 1
17195 -mf1 idb ar reg rl 2
17196 -io 1;
17197 
17198 desc 1 -sd n;
17199 
17200 data 2 034;
17201 data 1 -do -1 "28";
17202 
17203 page -all;
17204 
17205 
17206 
17207 /*     dtb2
17208 * No indirect descriptors are used.
17209 * Address register modification is used for both operands.
17210 * Both operands cross a page boundary.
17211 */
17212 
17213 inst dtb
17214 -nt "9-bit leading sign -> binary"
17215 -mf2 ar
17216 -mf1 ar;
17217 
17218 desc 2 -nn 2;
17219 desc 1 -nn 6 -sd l;
17220 
17221 data 2 -do -1 127 531;
17222 data 1 -do -3 "+44889";
17223 
17224 page -all;
17225 
17226 
17227 
17228 /*     dtb3
17229 * Indirect descriptors are used by both operands.
17230 * Address register modification is used for both operands.
17231 * Both operands cross a page boundary.
17232 */
17233 
17234 inst dtb
17235 -nt "9-bit trailing sign -> binary"
17236 -mf2 ida ar
17237 -mf1 idb ar;
17238 
17239 desc 2 -nn 3;
17240 desc 1 -nn 9 -sd t;
17241 
17242 data 2 -do -2 211 664 372;
17243 data 1 -do -4 "36137210+";
17244 
17245 page -all;
17246 
17247 
17248 
17249 /*     dtb4
17250 * No indirect descriptors are used.
17251 * No address register modification is used.
17252 * The decimal operand is split across a page boundary.
17253 * Register length modification is used by both operands.
17254 */
17255 
17256 inst dtb
17257 -nt "9-bit unsigned decimal -> binary"
17258 -mf2 rl 4
17259 -mf1 rl 10;
17260 
17261 desc 1 -sd n;
17262 
17263 data 2 111 222 333 444;
17264 data 1 -do -8 "9836279588";
17265 
17266 page -all;
17267 
17268 
17269 
17270 /*     dtb5
17271 * Address register modification is used by both operands.
17272 * An indirect descriptor is used by the decimal operand.
17273 * Simple register modification is used by the binary operand.
17274 * Register length modification is used by both operands.
17275 */
17276 
17277 inst dtb
17278 -nt "9-bit leading sign -> bim"nary"
17279 -mf2 ar reg rl 5
17280 -mf1 ar idr rl 15;
17281 
17282 desc 1 -sd l;
17283 
17284 data 2 -do -4 333 444 333 222 111;
17285 data 1 -do -12 "+15088814466121";
17286 
17287 page -all;
17288 
17289 
17290 
17291 /*     dtb6
17292 * Address register modification is used by both operands.
17293 * An indirect descriptor is used by the binary operand.
17294 * Neither operand crosses a page boundary.
17295 */
17296 
17297 inst dtb
17298 -nt "9-bit trailing sign -> binary"
17299 -mf2 ar id
17300 -mf1 ar;
17301 
17302 desc 2 -nn 6;
17303 desc 1 -nn 17 -sd t;
17304 
17305 data 2 123 456 765 432 123 456;
17306 data 1 "2941123482396462+";
17307 
17308 page -all;
17309 
17310 
17311 
17312 /*     dtb7
17313 * Simple register modification is used by both operands.
17314 * An indirect descriptor is used by the decimal operand.
17315 * Both operands begin in the middle of a page.
17316 * Neither operand spans a page boundary.
17317 */
17318 
17319 inst dtb
17320 -nt "9-bit unsigned decimal -> binary"
17321 -mf2 reg
17322 -mf1 reg id;
17323 
17324 desc 2 -nn 7;
17325 desc 1 -nn 19 -sd n;
17326 
17327 data 2 -do 80 321 456 372 415 210 000 000;
17328 data 1 -do 60 "3775652184861966336";
17329 
17330 page -all;
17331 
17332 
17333 
17334 /*     dtb8
17335 * Both operands use only simple register modification.
17336 * Neither operand spans a page boundary.
17337 * Both operands begin on the 1st byte of a page.
17338 */
17339 
17340 inst dtb
17341 -nt "9-bit leading sign -> binary"
17342 -mf2 reg
17343 -mf1 reg;
17344 
17345 desc 2 -nn 8;
17346 desc 1 -nn 22 -sd l;
17347 
17348 data 2 124 570 642 000 000 375 125 743;
17349 data 1 "+781551372002965892067";
17350 
17351 page -all;
17352 
17353 
17354 
17355 /*     dtb9
17356 * An indirect descriptor is used by the binary operand.
17357 * Neither operand spans a page boundary.
17358 * Both operands begin on the 1st byte of a page.
17359 * The eis instruction itself spans a page boundary.
17360 * No modifications are made to the decimal operand.
17361 */
17362 
17363 inst dtb
17364 -nt "4-bit unsigned decimal -> binary"
17365 -mf2 id
17366 -io 1;
17367 
17368 desc 2 -nn 1;
17369 desc 1 -tn 4 -nn 2 -sd n;
17370 
17371 data 2 034;
17372 data 1 050 000;
17373 
17374 page -all;
17375 
17376 
17377 
17378 /*     dtb10
17379 * Address register modification is used for the binary operand.
17380 * No modifications are made to the decimal operand.
17381 * Both operands span a page boundary.
17382 */
17383 
17384 inst dtb
17385 -nt "4-bit leading sign -> binary"
17386 -mf2  ar
17387 -io 1;
17388 
17389 desc 2 -nn 2;
17390 desc 1 -tn 4 -nn 6 -sd l;
17391 
17392 data 2 -do -1 127 531;
17393 data 1 -do -4  304110211000 000000;
17394 
17395 page -all;
17396 
17397 
17398 
17399 /*     dtb11
17400 * Address register modification is used for the decimal operand.
17401 * No modifications are made to the binary operand.
17402 * Only the decimal operand spans a page boundary.
17403 * The eis instruction itself spans a page boundary.
17404 */
17405 
17406 inst dtb
17407 -nt "4-bit trailing sign -> binary"
17408 -mf1 ar
17409 -io2;
17410 
17411 desc 2 -nn 3;
17412 desc 1 -tn 4 -nn 9 -sd t;
17413 
17414 data 2 211 664 372;
17415 data 1 -do -8  066023162020 300000000000000;
17416 
17417 page -all;
17418 
17419 
17420 
17421 /*     dtb12
17422 * Indirect descriptors are used for both operands.
17423 * No address register modification is used.
17424 * Neither operand spans a page boundary.
17425 * Both operands begin on the 1st byte of a page.
17426 * The eis instruction itself spans a page boundary.
17427 */
17428 
17429 inst dtb
17430 -nt "4-bit unsigned decimal -> binary"
17431 -mf2 id
17432 -mf1 id
17433 -io 2;
17434 
17435 desc 2 -nn 4;
17436 desc 1 -tn 4 -nn 10 -sd n;
17437 
17438 data 2 111 222 333 444;
17439 data 1 230066047225 210000000000;
17440 
17441 page -all;
17442 
17443 
17444 
17445 /*     dtb13
17446 * No modifications are made to the binary operand.
17447 * Address register modification is used for the decimal operand.
17448 * An indirect descriptor is used by the decimal operand.
17449 * Both operands span a page boundary.
17450 */
17451 
17452 inst dtb
17453 -nt "4-bit leading sign -> binary"
17454 -mf1 ar id
17455 -io 1;
17456 
17457 desc 2 -nn 5;
17458 desc 1 -tn 4 -nn 15 -sd l;
17459 
17460 data 2 -do -4  333 444 333 222 111;
17461 data 1 -do -8  301120210201 104146022020;
17462 
17463 page -all;
17464 
17465 
17466 
17467 /*     dtb14
17468 * Indirect descriptors are used by both operands.
17469 * Both operands span a page boundary.
17470 */
17471 
17472 inst dtb
17473 -nt "4-bit trailing sign -> binary"
17474 -mf2 idr
17475 -mf1 ida;
17476 
17477 desc 2 -nn 6;
17478 desc 1 -tn 4 -nn 17 -sd t;
17479 
17480 data 2 -do -4  123 456 765 432 123 456;
17481 data 1 -do -16  051101022064 202071144142 300;
17482 
17483 page -all;
17484 
17485 
17486 
17487 /*     dtb15
17488 * Indirect descriptors are used for both operands.
17489 * Address register modification is used for both operands.
17490 * Both operands span a page boundary.
17491 * The eis instruction itself spans a page boundary.
17492 */
17493 
17494 inst dtb
17495 -nt "4-bit unsigned decimal -> binary"
17496 -mf2 id ar
17497 -mf1 id ar
17498 -io1;
17499 
17500 desc 2 -nn 7;
17501 desc 1 -tn 4 -nn 19 -sd n;
17502 
17503 data 2 -do -6  321 456 372 415 210 000 000;
17504 data 1 -do -1  067165145041 204206031146 063140;
17505 
17506 page -all;
17507 
17508 
17509 
17510 /*     dtb16
17511 * Indirect descriptors are used by both operands.
17512 * Address register modification is used by both operands.
17513 * Neither operand spans a page boundary.
17514 * Both operands begin in the middle of a page.
17515 */
17516 
17517 inst dtb
17518 -nt "4-bit leading sign -> binary"
17519 -mf2 idb ar
17520 -mf1 idb ar;
17521 
17522 desc 2 -nn 8;
17523 desc 1 -tn 4 -nn 22 -sd l;
17524 
17525 data 2 -do 14  124 570 642 000 000 375 125 743;
17526 data 1 -do 100   307201125023162000051145 211040147000;
17527 
17528 page -all;
17529 
17530 ^L
17531 
17532 /*     btd1
17533 * Indirect descriptors are used for both operands.
17534 * Address register modification is used for both operands.
17535 * The decimal operand is split across a page boundary.
17536 */
17537 
17538 inst btd
17539 -nt "binary -> 9-bit unsigned decimal"
17540 -mf1 idb ar reg rl 1
17541 -mf2 idb ar reg rl 2
17542 -io 1;
17543 
17544 desc 2 -sd n;
17545 
17546 data 1 034;
17547 data 2 -do -1 "28";
17548 
17549 page -all;
17550 
17551 
17552 
17553 /*     btd2
17554 * No indirect descriptors are used.
17555 * Address register modification is used for both operands.
17556 * Both operands cross a page boundary.
17557 */
17558 
17559 inst btd
17560 -nt "binary -> 9-bit leading sign"
17561 -mf1 ar
17562 -mf2 ar;
17563 
17564 desc 1 -nn 2;
17565 desc 2 -nn 6 -sd l;
17566 
17567 data 1 -do -1 127 531;
17568 data 2 -do -3 "+44889";
17569 
17570 page -all;
17571 
17572 
17573 
17574 /*     btd3
17575 * Indirect descriptors are used by both operands.
17576 * Address register modification is used for both operands.
17577 * Both operands cross a page boundary.
17578 */
17579 
17580 inst btd
17581 -nt "binary -> 9-bit trailing sign"
17582 -mf1 ida ar
17583 -mf2 idb ar;
17584 
17585 desc 1 -nn 3;
17586 desc 2 -nn 9 -sd t;
17587 
17588 data 1 -do -2 211 664 372;
17589 data 2 -do -4 "36137210+";
17590 
17591 page -all;
17592 
17593 
17594 
17595 /*     btd4
17596 * No indirect descriptors are used.
17597 * No address register modification is used.
17598 * The decimal operand is split across a page boundary.
17599 * Register length modification is used by both operands.
17600 */
17601 
17602 inst btd
17603 -nt "binary -> 9-bit unsigned decimal"
17604 -mf1 rl 4
17605 -mf2 rl 10;
17606 
17607 desc 2 -sd n;
17608 
17609 data 1 111 222 333 444;
17610 data 2 -do -8 "9836279588";
17611 
17612 page -all;
17613 
17614 
17615 
17616 /*     btd5
17617 * Address register modification is used by both operands.
17618 * An indirect descriptor is used by the decimal operand.
17619 * Simple register modification is used by the binary operand.
17620 * Register length modification is used by both operands.
17621 */
17622 
17623 inst btd
17624 -nt "binary -> 9-bit leading sign"
17625 -mf1 ar reg rl 5
17626 -mf2 ar idr rl 15;
17627 
17628 desc 2 -sd l;
17629 
17630 data 1 -do -4 333 444 333 222 111;
17631 data 2 -do -12 "+15088814466121";
17632 
17633 page -all;
17634 
17635 
17636 
17637 /*     btd6
17638 * Address register modification is used by both operands.
17639 * An indirect descriptor is used by the binary operand.
17640 * Neither operand crosses a page boundary.
17641 */
17642 
17643 inst btd
17644 -nt "binary -> 9-bit trailing sign"
17645 -mf1 ar id
17646 -mf2 ar;
17647 
17648 desc 1 -nn 6;
17649 desc 2 -nn 17 -sd t;
17650 
17651 data 1 123 456 765 432 123 456;
17652 data 2 "2941123482396462+";
17653 
17654 page -all;
17655 
17656 
17657 
17658 /*     btd7
17659 * Simple register modification is used by both operands.
17660 * An indirect descriptor is used by the decimal operand.
17661 * Both operands begin in the middle of a page.
17662 * Neither operand spans a page boundary.
17663 */
17664 
17665 inst btd
17666 -nt "binary -> 9-bit unsigned decimal"
17667 -mf1 reg
17668 -mf2 reg id;
17669 
17670 desc 1 -nn 7;
17671 desc 2 -nn 19 -sd n;
17672 
17673 data 1 -do 80 321 456 372 415 210 000 000;
17674 data 2 -do 60 "3775652184861966336";
17675 
17676 page -all;
17677 
17678 
17679 
17680 /*     btd8
17681 * Both operands use only simple register modification.
17682 * Neither operand spans a page boundary.
17683 * Both operands begin on the 1st byte of a page.
17684 */
17685 
17686 inst btd
17687 -nt "binary -> 9-bit leading sign"
17688 -mf1 reg
17689 -mf2 reg;
17690 
17691 desc 1 -nn 8;
17692 desc 2 -nn 22 -sd l;
17693 
17694 data 1 124 570 642 000 000 375 125 743;
17695 data 2 "+781551372002965892067";
17696 
17697 page -all;
17698 
17699 
17700 
17701 /*     btd9
17702 * An indirect descriptor is used by the binary operand.
17703 * Neither operand spans a page boundary.
17704 * Both operands begin on the 1st byte of a page.
17705 * The eis instruction itself spans a page boundary.
17706 * No modifications are made to the decimal operand.
17707 */
17708 
17709 inst btd
17710 -nt "binary -> 4-bit unsigned decimal"
17711 -mf1 id
17712 -io 1;
17713 
17714 desc 1 -nn 1;
17715 desc 2 -tn 4 -nn 2 -sd n;
17716 
17717 data 1 034;
17718 data 2 050 000;
17719 
17720 page -all;
17721 
17722 
17723 
17724 /*     btd10
17725 * Address register modification is used for the binary operand.
17726 * No modifications are made to the decimal operand.
17727 * Both operands span a page boundary.
17728 */
17729 
17730 inst btd
17731 -nt "binary to 4-bit leading sign"
17732 -mf1  ar
17733 -io 1;
17734 
17735 desc 1 -nn 2;
17736 desc 2 -tn 4 -nn 6 -sd l;
17737 
17738 data 1 -do -1 127 531;
17739 data 2 -do -4  304110211000 000000;
17740 
17741 page -all;
17742 
17743 
17744 
17745 /*     btd11
17746 * Address register modification is used for the decimal operand.
17747 * No modifications are made to the binary operand.
17748 * Only the decimal operand spans a page boundary.
17749 * The eis instruction itself spans a page boundary.
17750 */
17751 
17752 inst btd
17753 -nt "binary -> 4-bit trailing sign"
17754 -mf2 ar
17755 -io2;
17756 
17757 desc 1 -nn 3;
17758 desc 2 -tn 4 -nn 9 -sd t;
17759 
17760 data 1 211 664 372;
17761 data 2 -do -8  066023162020 300000000000000;
17762 
17763 page -all;
17764 
17765 
17766 
17767 /*     btd12
17768 * Indirect descriptors are used for both operands.
17769 * No address register modification is used.
17770 * Neither operand spans a page boundary.
17771 * Both operands begin on the 1st byte of a page.
17772 * The eis instruction itself spans a page boundary.
17773 */
17774 
17775 inst btd
17776 -nt "binary -> 4-bit unsigned decimal"
17777 -mf1 id
17778 -mf2 id
17779 -io 2;
17780 
17781 desc 1 -nn 4;
17782 desc 2 -tn 4 -nn 10 -sd n;
17783 
17784 data 1 111 222 333 444;
17785 data 2 230066047225 210000000000;
17786 
17787 page -all;
17788 
17789 
17790 
17791 /*     btd13
17792 * No modifications are made to the binary operand.
17793 * Address register modification is used for the decimal operand.
17794 * An indirect descriptor is used by the decimal operand.
17795 * Both operands span a page boundary.
17796 */
17797 
17798 inst btd
17799 -nt "binary -> 4-bit leading sign"
17800 -mf2 ar id
17801 -io 1;
17802 
17803 desc 1 -nn 5;
17804 desc 2 -tn 4 -nn 15 -sd l;
17805 
17806 data 1 -do -4  333 444 333 222 111;
17807 data 2 -do -8  301120210201 104146022020;
17808 
17809 page -all;
17810 
17811 
17812 
17813 /*     btd14
17814 * Indirect descriptors are used by both operands.
17815 * Both operands span a page boundary.
17816 */
17817 
17818 inst btd
17819 -nt "binary -> 4-bit trailing sign"
17820 -mf1 idr
17821 -mf2 ida;
17822 
17823 desc 1 -nn 6;
17824 desc 2 -tn 4 -nn 17 -sd t;
17825 
17826 data 1 -do -4  123 456 765 432 123 456;
17827 data 2 -do -16  051101022064 202071144142 300;
17828 
17829 page -all;
17830 
17831 
17832 
17833 /*     btd15
17834 * Indirect descriptors are used for both operands.
17835 * Address register modification is used for both operands.
17836 * Both operands span a page boundary.
17837 * The eis instruction itself spans a page boundary.
17838 */
17839 
17840 inst btd
17841 -nt "binary -> 4-bit unsigned decimal"
17842 -mf1 id ar
17843 -mf2 id ar
17844 -io1;
17845 
17846 desc 1 -nn 7;
17847 desc 2 -tn 4 -nn 19 -sd n;
17848 
17849 data 1 -do -6  321 456 372 415 210 000 000;
17850 data 2 -do -1  067165145041 204206031146 063140;
17851 
17852 page -all;
17853 
17854 
17855 
17856 /*     btd16
17857 * Indirect descriptors are used by both operands.
17858 * Address register modification is used by both operands.
17859 * Neither operand spans a page boundary.
17860 * Both operands begin in the middle of a page.
17861 */
17862 
17863 inst btd
17864 -nt "binary -> 4-bit leading sign"
17865 -mf1 idb ar
17866 -mf2 idb ar;
17867 
17868 desc 1 -nn 8;
17869 desc 2 -tn 4 -nn 22 -sd l;
17870 
17871 data 1 -do 14  124 570 642 000 000 375 125 743;
17872 data 2 -do 100   307201125023162000051145 211040147000;
17873 
17874 page -all;