1 
    2 
    3 /*                  cmpc1
    4 *
    5 *         Just compare two equal  8 character (9 bit) strings.
    6 *         =  =>  zero and carry  indicators will be  on.
    7 */
    8 
    9 inst      cmpc      -nt "Equal 9 bit char strings"          -io 1
   10           -ir  zr cr;
   11 
   12 desc 1    -ns 8;
   13 
   14 desc 2    -ns 8;
   15 
   16 data 1    "abcd1234";
   17 
   18 data 2    "abcd1234";
   19 
   20 page      -all;
   21 
   22 /*                  cmpc2
   23 *
   24 *         Same as cmpc1 except move data across page boundary and add modification.
   25 */
   26 
   27 inst      cmpc      -nt"Same as prev but X pg bound"        -io 2
   28           -ir       zr cr
   29           -mf1      ar reg idb
   30           -mf2      ar reg idb;
   31 
   32 desc 1    -ns 8;
   33 
   34 desc 2    -ns 8;
   35 
   36 data 1    -do -4    "abcd"  "1234";
   37 
   38 data 2    -do -2    "ab"  "cd1234";
   39 
   40 page      -all;
   41 
   42 /*                  cmpc3
   43 *
   44 *         Same as cmpc2 except first string is >  than second string.
   45 */
   46 
   47 inst      cmpc      -nt  "S1 > S2 - X pg bound"   -io 3
   48           -ir       cr
   49           -mf1      ar reg idb
   50           -mf2      ar reg idb;
   51 
   52 desc 1    -ns 8;
   53 
   54 desc 2    -ns 8;
   55 
   56 data 1    -do -5    "abcd1"  "235";
   57 
   58 data 2    -do -2    "ab"  "cd1234";
   59 
   60 page      -all;
   61 
   62 /*                  cmpc4
   63 *
   64 *         Same as cmpc2 except first string is <  than second string.
   65 */
   66 
   67 inst      cmpc      -nt  "S1 < S2 - X pg bound"   -io 1
   68           -mf1      ar reg idb
   69           -mf2      ar reg idb;
   70 
   71 desc 1    -ns 8;
   72 
   73 desc 2    -ns 8;
   74 
   75 data 1    -do -4    "abcd"  "1234";
   76 
   77 data 2    -do -2    "ab"  "cd1235";
   78 
   79 page      -all;
   80 
   81 /*                  cmpc5
   82 *
   83 *         Same as cmpc2 except we will use  cn  fields.
   84 */
   85 
   86 inst      cmpc      -nt  "Test use of CN fields"  -io 2
   87           -ir       zr cr
   88           -mf1      ar reg idb
   89           -mf2      ar reg idb;
   90 
   91 desc 1    -ns 8     -cn 1;
   92 
   93 desc 2    -cn 2     -ns 8;
   94 
   95 data 1    -do -4    " abc"  "d1234";
   96 
   97 data 2    -do -2    "**"  "abcd1234";
   98 
   99 page      -all;
  100 
  101 /*                  cmpc6
  102 *
  103 *         We will test the use of the  fill character.  In this test we will fill
  104 *         string 1.
  105 */
  106 
  107 inst      cmpc      -nt "Fill in S1"    -io 1
  108           -ir       cr  zr
  109           -fc*
  110           -mf1      idr  ar
  111           -mf2      ida  ar;
  112 
  113 desc 1    -ns  6;
  114 
  115 desc 2    -ns  10;
  116 
  117 data 1    -do -3  "123" "456";
  118 
  119 data 2    -do  -6  "123456" "****";
  120 
  121 
  122 page      -all;
  123 
  124 /*                  cmpc7
  125 *
  126 *         Same as  cmpc6  except the fill characters will be split across
  127 *         a page boundary.
  128 */
  129 
  130 inst      cmpc      -nt "Fill X pg bound"         -io 1
  131           -ir       cr  zr
  132           -fc*
  133           -mf1      idr  ar
  134           -mf2      ida  ar;
  135 
  136 desc 1    -ns  6;
  137 
  138 desc 2    -ns  10;
  139 
  140 data 1    -do -5    "12345"  "6";
  141 
  142 data 2    -do -9    "123456***" "*";
  143 
  144 
  145 page      -all;
  146 
  147 /*                  cmpc8
  148 *
  149 *         In this test we will test using the fill character of string 2.
  150 */
  151 
  152 inst      cmpc      -nt  "Fill in S2"   -io 2
  153           -ir       zr cr
  154           -fc       /* Fill character is a blank. */
  155           -mf1      idb rl 8 ar reg
  156           -mf2      idb rl 4 ar reg;
  157 
  158 /*        No desc statements needed.  */
  159 
  160 data 1    -do -4    "1234" "    ";
  161 
  162 data 2    -do -3    "123" "4";
  163 
  164 
  165 page      -all;
  166 
  167 /*                  cmpc9
  168 *
  169 *         The same as cmpc8 except  we will split the fill characters across a page boundary.
  170 */
  171 
  172 inst      cmpc      -nt "Same as prev - fill X pg bound"    -io 2
  173           -ir       zr cr
  174           -fc       /* Fill character is a blank. */
  175           -mf1      idb rl 8 ar reg
  176           -mf2      idb rl 4 ar reg;
  177 
  178 /*        No desc statements needed.  */
  179 
  180 data 1    -do  -5   "1234 "  "   ";
  181 
  182 data 2    -do -3    "123" "4";
  183 
  184 
  185 page      -all;
  186 
  187 /*                  cmpc10
  188 *
  189 *         This test will compare two strings that cross two page boundaries.
  190 */
  191 
  192 inst      cmpc      -nt "Both strings X pg bounds"          -io 3
  193           -ir       cr zr
  194           -mf1      idb reg ar  rl 4352
  195           -mf2      idb reg ar  rl 4352;
  196 
  197 data 1    -do  -128     (4352) "S";
  198 
  199 data 2    -do  -128     (4352) "S";
  200 
  201 
  202 page      -all;
  203 
  204 /*                  cmpc11
  205 *
  206 *         This test will compare 3  (6 bit) characters.  We will have them
  207 *         cross a page boundary and we will use the  cn  field of the
  208 *         descriptors to start the string at a character other than character
  209 *         zero of the effectively addressed word.
  210 */
  211 
  212 inst      cmpc      -nt "6 bit characters"        -io 2
  213           -ir       cr zr
  214           -mf1      ar reg idb  rl 3
  215           -mf2      ar reg idb;
  216 
  217 desc 1    -cn 2     -ta 6;
  218 
  219 desc 2    -ns 3     -cn 1;              /* NOTE, ta  field taken from  desc 1 statement. */
  220 
  221 
  222 data 1    -do -2    000020 /*Page Boundary*/ 2122;
  223 
  224 data 2    -do -2    002021 /*Page Boundary*/ 22;
  225 
  226 
  227 page      -all;
  228 
  229 /*                  cmpc12
  230 *
  231 *         This test is like  cmpc11 except that the character size will be 4.
  232 */
  233 
  234 inst      cmpc      -nt "4 bit characters"
  235           -ir       cr zr
  236           -mf1      idb reg ar
  237           -mf2      idb reg ar;
  238 
  239 desc 1    -ns 3     -cn 2     -ta 4;    /* This  desc  statement must be first. */
  240 
  241 desc 2    -ns 3     -cn 1;              /* This  desc  statement can NOT have a  -ta option. */
  242 
  243 
  244 data 1    -do -2    000232  260;        /* characters  "1001"b "1010"b "1011"b */
  245 
  246 data 2    -do -1    011  253;           /* The same 3 characters. */
  247 
  248 
  249 page      -all;
  250 /*                     cmpc13
  251 
  252 *         compare two strings of maximum length.
  253 *         the data is six bit data and maximum
  254 *         desc. mod. is taken
  255 *
  256 */
  257 
  258 
  259 inst       cmpc   -nt "d1,2 covers 3pp. 6bit zr cr"
  260           -ir          zr cr
  261           -mf1         idb ar reg rl 6528
  262           -mf2         idb ar reg rl 6528;
  263 
  264 desc 1    -ta 6        ;
  265 
  266 
  267 data 1    -do -128     (1088) 212121212121;
  268 
  269 data 2    -do -128     (1088) 212121212121;
  270 
  271 page      -all;
  272 
  273 
  274 /*                  cmpc14
  275 
  276 *         this is a test using 4 bit data with the
  277 *         first string covering the maximum number of words.
  278 *         the second string also is of maximum length
  279 *         and the descriptors are all direct mod.
  280 *
  281 */
  282 
  283 inst      cmpc     -nt "d1,2 covers 3pp 4bit zr cr"
  284           -ir       cr zr
  285           -mf1      rl 8704
  286           -mf2      rl 8704;
  287 
  288 desc 1    -ta 4;
  289 
  290 data 1    -do -128  (1088) 232232232232;
  291 
  292 data 2    -do -128  (1088) 232232232232;
  293 
  294 
  295 page      -all;
  296 
  297 
  298 
  299 /*                  cmpc15
  300 
  301 *         the next four tests will again use the maximum
  302 *         amount of data but will vary the desc. mod. taken.
  303 *
  304 */
  305 
  306 inst      cmpc    -io 2   -nt "d1,2 covers 3pp 6 bit zr cr"
  307           -mf1      ida reg rl 6528
  308           -mf2      idr ar rl 6528
  309           -ir       cr zr;
  310 
  311 desc 1    -ta 6;
  312 
  313 data 1    -do -128  (1088) 212223242526;
  314 
  315 data 2    -do -128  (1088) 212223242526;
  316 
  317 page      -all;
  318 
  319 
  320 
  321 /*                  cmpc16
  322 
  323 *         this is the same as test 15 but there will be not3
  324 *         match of the data (str1 < str2 : zr=0 cr=0)
  325 *
  326 */
  327 
  328 inst      cmpc      -io 1     -nt "d1,2 covers 3 pp 6 bit"
  329           -mf1      ida reg rl 6528
  330           -mf2    idr ar rl 6528;
  331 
  332 desc 1    -ta 6;
  333 
  334 data 1    -do -128 (1088) 212221222122;
  335 
  336 data 2    -do -128 (1088) 2122232422226;
  337 
  338 page      -all;
  339 
  340 
  341 
  342 /*                  cmpc17
  343 
  344 *         this test is similar to test14 only the
  345 *         maximum number of desc. mods. are taken.
  346 *         the data is still four bit.
  347 *
  348 */
  349 
  350 inst      cmpc      -io 3    -nt "d1,2 covers 3pp 4bit zr cr"
  351 -ir      zr cr
  352           -mf1      idb ar reg rl 8704
  353           -mf2      idb ar reg rl 8704;
  354 
  355 desc 1    -ta 4;
  356 
  357 data 1    -do -128  (1088)  232232232232;
  358 
  359 data 2    -do -128  (1088) 232232232232;
  360 
  361 page      -all;
  362 
  363 
  364 
  365 
  366 /*                  cmpc18
  367 
  368 *         this test will take a variety of desc. mod.
  369 *         and will force st1 > st2 (zr =0 cr = 1).
  370 *         the data is four bit.
  371 *
  372 */
  373 
  374 inst      cmpc -io 1       -nt "d1,2 covers 3pp 4 bit cr"
  375           -ir       cr
  376           -mf1     ida reg rl 8704
  377           -mf2      idr ar rl 8704;
  378 
  379 desc 1    -ta 4;
  380 
  381 data 1    -do -128  (1088) 232232232222;
  382 
  383 data 2    -do -128  (1088) 227237237237;
  384 
  385 page      -all;
  386 
  387 
  388 /*                  cmpc19
  389 
  390 *         the test exercises the fill char  option along with
  391 *         the cn option.  the test also uses 6 bit data.
  392 *
  393 */
  394 
  395 inst       cmpc     -io 1        -nt "d1 split cn 6bit zr cr"
  396           -ir       zr cr
  397           -fc^@   /* fc = 000 */
  398           -mf1      reg ar rl 8
  399           -mf2      reg rl 5;
  400 
  401 desc 1    -ta 6     -cn 2;
  402 
  403 desc 2    -cn 1;
  404 
  405 data 1    -do -2    000020  /* page bound */ 21222324000000;
  406 
  407 data 2    002021222324;
  408 
  409 page      -all;
  410 
  411 
  412 
  413 /*                  cmpc20
  414 
  415 *         this test uses 6 bit data and test a different
  416 *         variety of desc. mods. that test 19.  the
  417 *         data is the same as test 19 except str1 < str2).
  418 *
  419 */
  420 
  421 inst     cmpc      -io 2      -nt "d1 split fc 6bit"
  422           -mf1      idb ar
  423 -mf2     ar reg
  424           -fc^@   /* fc = 000 */     /*  fc = 000 */;
  425 
  426 desc 1    -ta 6     -ns 8     -cn 2;
  427 
  428 desc 2    -ns 5     -cn 2;
  429 
  430 data 1    -do -2    000020 /* paGE BOUND */ 212223220000;
  431 
  432 data 2    002021222324;
  433 
  434 page      -all;
  435 
  436 
  437 
  438 
  439 
  440 /*                  cmpc21
  441 
  442 *         the next wo tests use 4 bit data and test the use of the
  443 *         fill character.  a variety of desc. mods. are taken.
  444 *
  445 **/
  446 
  447 
  448 inst      cmpc      -io 2     -nt "fc 4bit zr cr"
  449           -fc^@   /* fc = 000 */
  450                  /*  fc = 000 */
  451           -mf1      ida ar reg rl 2
  452           -mf2      idr ar rl 4
  453           -ir       zr cr;
  454 
  455 desc 1    -ta 4;
  456 
  457 data 1    232;
  458 
  459 
  460 data 2     232000;
  461 
  462 page      -all;
  463 
  464 
  465 
  466 
  467 /*                  cmcp22
  468 
  469 *         this test results in str1 > str 2.
  470 *
  471 */
  472 
  473 inst      cmpc      -io 2     -nt " fc 4bit cr"
  474           -ir       cr
  475           -mf1      idb ar reg
  476           -mf2      rl 6
  477           -fc^@   /* fc = 000 */;
  478                        /* fc = 000  */
  479 
  480 desc 1    -ta 4     -ns 4;
  481 
  482 
  483 data 1    -do -2    237237  /* page bound */ ;
  484 
  485 data 2    232232000;
  486 
  487 page      -all;
  488 
  489 
  490 ^L
  491 
  492 
  493 
  494 /*                  scd1
  495 *
  496 *         We will split both string 1 and  string 2 across page
  497 *         boundaries.  We will use all mods and  use  a  cn
  498 *         field in descriptors  1 & 2.
  499 */
  500 
  501 inst      scd       -nt  "Strings X pg bound - all mods"    -io 2
  502           -mf1      idb ar reg  rl 8
  503           -mf2      idb ar reg
  504           -mf3      ar reg;
  505 
  506 
  507 desc 1    -cn 1;
  508 desc 2    -cn 3;
  509 
  510 data 1    -do -5
  511           " "                 /* Character skipped by  cn  field. */
  512           "123*"  "$678";
  513 
  514 data 2    -do -4    "   " "*"  "$";
  515 
  516 data 3    000 000 000 003;
  517 
  518 
  519 page      -all;
  520 /*                  scd2
  521 *
  522 
  523 *         simple test which takes no more than the minimum
  524 *         number of page faults.  assures the instruction is
  525 *         working correctly.
  526 *
  527 */
  528 
  529 inst      scd    -nt "simple test 9bit";
  530 
  531 desc 1    -ns 8;     /* 9 bit char */
  532 
  533 data 1    "abcd1234";
  534 
  535 data 2    "cd";
  536 
  537 data 3    000 000 000 002;
  538 
  539 page      -all;
  540 
  541 
  542 
  543 
  544 /*                  scd3
  545 
  546 *         this test uses the same data as test 2
  547 *         but splits the first string across a page
  548          boundary.  the maximum number of descriptor page faultd
  549 *         for the first two descriptors are also taken.
  550 *
  551 */
  552 
  553 inst      scd    -nt "d1 split 9bit; FCOs PHAFPG179 & 181 required on L68 CPU"
  554           -mf1      idb ar reg rl 8
  555           -mf2      idb ar reg;
  556 
  557 
  558 data 1    -do 2
  559           "ab" "cd1234";
  560 
  561 data 2    "cd";
  562 
  563 data 3    000 000 000 002;
  564 
  565 page      -all;
  566 
  567 
  568 
  569 /*                  scd4
  570 
  571 *         this test mixes the page faults among descriptors
  572 *         and splits data across a page boundary with a
  573 *         match on the first try.
  574 *
  575 */
  576 
  577 
  578 inst      scd    -nt "d1 split match 1st try; FCOs PHAFPG179 & 181 required on L68 CPU"
  579           -mf1      idb ar
  580           -mf2      ar reg
  581           -mf3      ar;       /* note the data word indirection */
  582 
  583 desc 1    -ns 8;
  584 
  585 data 1    -do -1  "a" "bcd1234";
  586 
  587 data 2    "ab";
  588 
  589 data 3    000 000 000 000;
  590 
  591 
  592 page      -all;
  593 
  594 
  595 
  596 
  597 /*                  scd5
  598 
  599 *         same as previous test but both strings
  600 *         are split across page boundaries. data
  601 *         word is also accessed directly.
  602 *
  603 */
  604 
  605 
  606 inst      scd       -io 2    -nt "d1,2 split 9bit"
  607           -mf1      idb ar reg
  608           -mf2      idb ar reg;
  609 
  610 desc 1    -ns 8;
  611 
  612 data 1    -do -4    "abcd" "1234";
  613 
  614 data 2    -do -1    "d" "1";
  615 
  616 data 3    000 000 000 003;
  617 
  618 
  619 page      -all;
  620 
  621 
  622 
  623 
  624 /*                  scd6
  625 
  626 *         this test takes all the page faults
  627 *         possible with the descriptors, and
  628 *         tests the -cn and -rl option.
  629 *
  630 */
  631 
  632 
  633 inst      scd       -io 2   -nt "max page fault 9bit"
  634           -mf1      idb ar reg rl 8
  635           -mf2      idb ar reg
  636           -mf3       ar reg;
  637           /* that's all pssible indirections */
  638 
  639 desc 2          -cn 2;
  640 
  641 
  642 
  643 data 1     -do -4   "abcd" "1234";
  644 
  645 data 2     -do -2   "  " "12";
  646 
  647 data 3     000 000 000 004;
  648 
  649 page          -all;
  650 
  651 
  652 
  653 
  654 /*                  scd7
  655 
  656 *         salient feature of this test is
  657 *         that there is no match on the search.
  658 *         both data strings cross page boundaries.
  659 *
  660 */
  661 
  662 
  663 inst      scd       -io 2   -nt "no match 9bit"
  664           -ir  tr
  665           /* mf1 is direct */
  666           -mf2      idb ar reg;
  667 
  668 
  669 desc 1    -ns 8;
  670 
  671 
  672 data 1    -do -4 "abcd" "1234";
  673 
  674 data 2    -do -1   "5" "6";
  675 
  676 data 3    000 000 000 007;
  677 
  678 page      -all;
  679 
  680 
  681 
  682 
  683 /*                  scd8
  684 
  685 *         all possible indirection for descriptors
  686 *         taken with the cn option for both tested.
  687 *         strings both split across page.
  688 *
  689 */
  690 
  691 inst      scd       -io 3    -nt "d1,2 split 9bit"
  692           -mf1      idb ar reg rl 5
  693           -mf2      idb ar reg;
  694 
  695 desc 1    -cn 3;
  696 
  697 desc 2    -cn 1;
  698 
  699 data 1    -do -3    "***" "abcde";
  700 
  701 data 2    -do -3    "*bc" "*";
  702 
  703 data 3    000 000 000 001;
  704 
  705 page      -all;
  706 
  707 
  708 
  709 /*                  scd9
  710 
  711 *the next three tests all use the same basic
  712 
  713 
  714 *         data but vary the type of indirection and thus
  715 *        the type of page faults that will be taken.
  716 *
  717 */
  718 
  719 inst      scd       -io 1    -nt "desc mod d1,2 split 9bit"
  720           -mf1      ar
  721           -mf2      idb ar reg
  722           -mf3      ar reg;
  723 
  724 desc 1    -ns 5     -cn 3;
  725 
  726 desc 2     -cn 1;
  727 
  728 data 1     -do -3"***" "abcde";
  729 
  730 data 2     -do -3   "*bc" "*";
  731 
  732 data 3     000 000 000 001;
  733 
  734 page       -all;
  735 
  736 
  737 
  738 /*                  scd10
  739 
  740 *         swap desc1 and desc2 mod
  741 *
  742 */
  743 
  744 inst      scd       -io 1    -nt "d1,2 split 9bit"
  745           -mf1      idb ar reg rl 8
  746           -mf2      ar
  747           -mf3      ar reg;
  748 
  749 desc 1    -cn 3;
  750 
  751 desc 2     -cn 1;
  752 
  753 data 1    -do -3    "***" "abcde";
  754 
  755 data 2    -do -3    "*bc" "*";
  756 
  757 data 3    000 000 000 001;
  758 
  759 page      -all;
  760 
  761 
  762 
  763 /*                  scd11
  764 
  765 *         mf3 is direct :  other two indirect
  766 *
  767 */
  768 
  769 inst      scd       -io 1    -nt "mf1 direct others ind. 9b"
  770           -mf1      idb ar reg rl 8
  771           -mf2      idb ar reg;
  772           /* mf3 is direct */
  773 
  774 desc 1    -cn 3;
  775 
  776 desc 2    -cn 1;
  777 
  778 data 1    -do -3    "***" "abcde";
  779 
  780 data 2    -do -3    "*bc" "*";
  781 
  782 data 3    000 000 000 001;
  783 
  784 
  785 page      -all;
  786 
  787 
  788 
  789 
  790 /*                  scd12
  791 
  792 *         the data for the next two tests spans three pages.
  793 *         this test uses all direct mod for descriptors.
  794 *
  795 */
  796 
  797 inst      scd      -io 1    -nt "d1 spans 3pp 9bit"
  798 
  799           -mf1         rl 4352;
  800 
  801 data 1    -do -128   (2175) "ab" "bc";
  802 
  803 data 2    "bc";
  804 
  805 data 3    000 000 010376;
  806 
  807 page      -all;
  808 
  809 
  810 
  811 /*                   scd13
  812 
  813 *         same data as previous test but using
  814 *         maximum indirection on the desc.
  815 *
  816 */
  817 
  818 
  819 inst      scd       -io 2     -nt "d1 spans 3pp max desc mod 9b"
  820           -mf1      idb ar reg rl 4352
  821           -mf2      idb ar reg
  822           -mf3       reg ar;
  823 
  824           /* no desc statements are needed */
  825 
  826 data 1    -do -128  (2175) "ab" "bc";
  827 
  828 data 2    "bc";
  829 
  830 data 3    000 000 010 376;
  831 
  832 page      -all;
  833 
  834 
  835 /*                  scd14
  836 
  837 *         the next two tests move the two char data 2 string
  838 *         across a page boundary using the large data field of
  839 *         the previous two tests as data 1.
  840 *
  841 */
  842 
  843 inst     scd       -io 3    -nt "3 page d1, d2 split 9b"
  844           -mf1      idb ar reg rl 4352
  845           -mf2      idb ar reg
  846           -mf3       ar reg;
  847 
  848           /* desc statements not needed */
  849 
  850 
  851 
  852 data 1    -do -128  (2175) "ab" "bc";
  853 
  854 data 2    -do -1    "b" "c";
  855 
  856 data 3    000 000 010 376;
  857 
  858 page      -all;
  859 
  860 
  861 /*                  scd15
  862 
  863 *         data 2 fully contained on page 0
  864 *
  865 */
  866 
  867 inst      scd       -io 2     -nt "3page d1, d2 split 9b"
  868           -mf1      idb ar reg rl 4352
  869           -mf2      idb ar reg
  870           -mf3       ar reg;
  871 
  872 
  873 data 1    -do -128(2175) "ab" "bc";
  874 
  875 data 2    -do -2"bc";
  876 
  877 data 3    000 000 010 376;
  878 
  879 page      -all;
  880 
  881 
  882 
  883 /*                  scd16
  884 
  885 *         this starts the 6 bit char tests.
  886 
  887 *         nothing fancy--indirect mod on desc 1 & 2
  888 *
  889 */
  890 
  891 
  892 inst      scd    -nt "mf1,2 mod 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  893           -mf1      idb ar reg rl 6
  894           -mf2      idb ar reg
  895           /* desc3 is direct */;
  896 
  897 desc 1    -ta 6 /* six bit char */;
  898 
  899 data 1    202122232425;
  900 
  901 data 2    2425;
  902 
  903 data 3    000 000 000 004;
  904 
  905 page      -all;
  906 
  907 
  908 /*                  scd17
  909 
  910 *         same data but first string offseet by
  911 *         3 char. full indirect mod on desc.
  912 *
  913 */
  914 
  915 
  916 inst       scd       -io 2    -nt "desc mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  917            -mf1      idb ar reg
  918            -mf2      idb ar reg
  919            -mf3       ar reg;
  920 
  921 desc 1     -ns 6 -ta 6;
  922 
  923 
  924 data 1     -do -2   212223 242526;
  925 
  926 data 2     2425;
  927 
  928 data 3     000 000 000 003;
  929 
  930 page       -all;
  931 
  932 
  933 
  934 /*                  scd18
  935 
  936 *this test offsets the second data string.
  937 *
  938 */
  939 
  940 inst      scd       -io 1    -nt "desc mod d2 offset 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
  941 
  942           -mf1      idb ar reg rl 6
  943           -mf2      ar reg
  944           -mf3      reg
  945           /* note the variety of indirection */;
  946 
  947 desc 1     -ta 6;
  948 
  949 data 1    212223242526;
  950 
  951 data 2    -do -2    242500;
  952 
  953 data 3    000 000 000 003;
  954 
  955 page      -all;
  956 
  957 
  958 
  959 /*                  scd19
  960 
  961 *         this test specifically exercises the -cn option
  962 *         along with multiple indirection.
  963 *
  964 */
  965 
  966 inst      scd       -io 3    -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
  967           -mf1      idb ar reg rl 6
  968           -mf2      idb ar reg
  969           -mf3       ar reg;
  970 
  971 
  972 desc 1    -ta 6     -cn 3;
  973 
  974 desc 2     -cn 3;
  975 
  976 data 1    -do -4    000000202122 232425000000;
  977 
  978 data 2    -do -2    000000 212200;
  979 
  980 data 3    000 000 000 001;
  981 
  982 page      -all;
  983 
  984 
  985 
  986 /*                  scd20
  987 
  988 *         data 1 covers three pages.  match
  989 *         is on the last pair of characters.
  990 *
  991 */
  992 
  993 inst      scd   -nt "d1 spans 3pp 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
  994           -mf1       idb ar reg rl 7680
  995           -mf2      idb ar reg
  996           -mf3       ar reg;
  997 
  998 desc 1     -ta 6;
  999 
 1000 
 1001 data 1    -do -128(1087) 202124252627 202122242223;
 1002 
 1003 data 2    2223;
 1004 
 1005 data 3    000000014576 000;
 1006 
 1007 page      -all;
 1008 
 1009 
 1010 
 1011 /*                  scd21
 1012 
 1013 *the final series of tests are with 4 bit data
 1014 *         this is just a simple test of two char per string
 1015 *         crossing no page pound.
 1016 *
 1017 */
 1018 
 1019 inst      scd   -nt "d1,2 2 char 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1020           -mf1      idb ar reg
 1021           -mf2      idb ar reg
 1022           /*   mf3 is direct */;
 1023 
 1024 desc 1    -ta 4     -ns 2;
 1025 
 1026 data 1    232 000 000 000 /* "1001" "1010" */;
 1027 
 1028 data 2    232 000 000 000;
 1029 
 1030 data 3    000 000 000 000;
 1031 
 1032 page      -all;
 1033 
 1034 
 1035 /*                  scd22
 1036 
 1037 *         split the second string across page bound.
 1038 *         test -cn option for data 2.
 1039 *
 1040 */
 1041 
 1042 inst      scd       -io 2     -nt "cn,offset for d2 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1043           -mf1      idb ar reg rl 2
 1044           -mf2      idb ar reg
 1045           -mf3       ar reg;
 1046 
 1047 
 1048 desc 1    -ta 4;
 1049 
 1050 desc 2    -cn 1;
 1051 
 1052 data 1    232 000 000 000;
 1053 
 1054 
 1055 data 2    -do -1    011 240 /* "1001" "1010" */;
 1056 
 1057 data 3    000 000 000 000;
 1058 
 1059 page      -all;
 1060 
 1061 
 1062 /*                  scd23
 1063 
 1064 *         this test splits both strings and tests
 1065 *         the cn option for both strings
 1066 *
 1067 */
 1068 
 1069 inst      scd       -io 2    -nt "d1,2 offset 4bit"
 1070           -mf1      idb ar reg
 1071           -mf2      idb ar reg
 1072           -mf3       ar reg;
 1073 
 1074 desc 1    -ta 4     -ns 2          -cn 2;
 1075 
 1076 desc 2    -cn 1;
 1077 
 1078 data 1    -do -2    000 232 000;
 1079 
 1080 data 2    -do -1     011 24;
 1081 
 1082 data 3     000 000 000 000;
 1083 
 1084 page       -all;
 1085 
 1086 
 1087 
 1088 /*                scd24
 1089 
 1090 *         this test will force data to cover all
 1091 *         three pages with the first data string.
 1092 *
 1093 
 1094 */
 1095 
 1096 inst      scd       -io 3    -nt "d1 covers 3pp 4bit"
 1097           -mf1      ar rl 10240
 1098           -mf2      reg
 1099           -mf3      ar;
 1100 
 1101 desc 1    -ta 4     ;
 1102 
 1103 data 1    -do -128  (4350) 232 236;
 1104 
 1105 data 2    236;
 1106 
 1107 data 3    000 000 020 774;
 1108 
 1109 page        -all;
 1110 
 1111 
 1112 ^L
 1113 
 1114 
 1115 /*                  scdr1
 1116 *
 1117 *         Same as test for  scd.
 1118 *         We will split both string 1 and  string 2 across page
 1119 *         boundaries.  We will use all mods and  use  a  cn
 1120 *         field in descriptors  1 & 2.
 1121 */
 1122 
 1123 inst      scdr      -nt  "Same as scd test"       -io 3
 1124           -mf1      idb ar reg  rl 8
 1125           -mf2      idb ar reg
 1126           -mf3      ar reg;
 1127 
 1128 
 1129 desc 1    -cn 1;
 1130 desc 2    -cn 3;
 1131 
 1132 data 1    -do -5
 1133           " "                 /* Character skipped by  cn  field. */
 1134           "123*"  "$678";
 1135 
 1136 data 2    -do -4    "   " "*"  "$";
 1137 
 1138 data 3    000 000 000 003;
 1139 
 1140 
 1141 page      -all;
 1142 /*                  scdr2
 1143 *
 1144 
 1145 *         simple test which takes no more than the minimum
 1146 *         number of page faults.  assures the instruction is
 1147 *         working correctly.
 1148 *
 1149 */
 1150 
 1151 inst      scdr    -nt "simple test 9bit";
 1152 
 1153 desc 1    -ns 8;     /* 9 bit char */
 1154 
 1155 data 1    "abcd1234";
 1156 
 1157 data 2    "cd";
 1158 
 1159 data 3    000 000 000 004;
 1160 
 1161 page      -all;
 1162 
 1163 
 1164 
 1165 
 1166 /*                  scdr3
 1167 
 1168 *         this test mixes the page faults among descriptors
 1169 *         and splits data across a page boundary with a
 1170 *         match on the first try.
 1171 *
 1172 */
 1173 
 1174 
 1175 inst      scdr    -nt "d1 split match first time 9b"
 1176           -mf1      idb ar
 1177           -mf2      ar reg
 1178           -mf3      ar;       /* note the data word indirection */
 1179 
 1180 desc 1    -ns 8;
 1181 
 1182 data 1    -do -1  "a" "bcd1234";
 1183 
 1184 data 2    "ab";
 1185 
 1186 data 3    000 000 000 006;
 1187 
 1188 
 1189 page      -all;
 1190 
 1191 
 1192 
 1193 
 1194 /*                  scdr4
 1195 
 1196 *         same as previous test but both strings
 1197 *         are split across page boundaries. data
 1198 *         word is also accessed directly.
 1199 *
 1200 */
 1201 
 1202 
 1203 inst      scdr       -io 2   -nt "d1,2 split 9bit"
 1204           -mf1      idb ar reg
 1205           -mf2      idb ar reg;
 1206 
 1207 desc 1    -ns 8;
 1208 
 1209 data 1    -do -4    "abcd" "1234";
 1210 
 1211 data 2    -do -1    "d" "1";
 1212 
 1213 data 3    000 000 000 003;
 1214 
 1215 
 1216 page      -all;
 1217 
 1218 
 1219 
 1220 
 1221 /*                  scdr5
 1222 
 1223 *         this test takes all the page faults
 1224 *         possible with the descriptors, and
 1225 *         tests the -cn and -rl option.
 1226 *
 1227 */
 1228 
 1229 
 1230 inst      scdr       -io 2    -nt "max page fault 9bit"
 1231           -mf1      idb ar reg rl 8
 1232           -mf2      idb ar reg
 1233           -mf3       ar reg;
 1234           /* that's all pssible indirections */
 1235 
 1236 desc 2          -cn 2;
 1237 
 1238 
 1239 
 1240 data 1     -do -4   "abcd" "1234";
 1241 
 1242 data 2     -do -2   "  " "12";
 1243 
 1244 data 3     000 000 000 002;
 1245 
 1246 page          -all;
 1247 
 1248 
 1249 
 1250 
 1251 /*                  scdr6
 1252 
 1253 *         salient feature of this test is
 1254 *         that there is no match on the search.
 1255 *         both data strings cross page boundaries.
 1256 *
 1257 */
 1258 
 1259 
 1260 inst      scdr       -io 2    -nt "no match 9bit"
 1261           -ir  tr
 1262           /* mf1 is direct */
 1263           -mf2      idb ar reg;
 1264 
 1265 
 1266 desc 1    -ns 8;
 1267 
 1268 
 1269 data 1    -do -4 "abcd" "1234";
 1270 
 1271 data 2    -do -1   "5" "6";
 1272 
 1273 data 3    000 000 000 007;
 1274 
 1275 page      -all;
 1276 
 1277 
 1278 
 1279 
 1280 /*                  scdr7
 1281 
 1282 *         all possible indirection for descriptors
 1283 *         taken with the cn option for both tested.
 1284 *         strings both split across page.
 1285 *
 1286 */
 1287 
 1288 inst      scdr       -io 3    -nt "d1,2 split 9bit"
 1289           -mf1      idb ar reg rl 5
 1290           -mf2      idb ar reg;
 1291 
 1292 desc 1    -cn 3;
 1293 
 1294 desc 2    -cn 1;
 1295 
 1296 data 1    -do -3    "***" "abcde";
 1297 
 1298 data 2    -do -3    "*bc" "*";
 1299 
 1300 data 3    000 000 000 002;
 1301 
 1302 page      -all;
 1303 
 1304 
 1305 
 1306 /*                  scdr8
 1307 
 1308 *the next three tests all use the same basic
 1309 
 1310 
 1311 *         data but vary the type of indirection and thus
 1312 *        the type of page faults that will be taken.
 1313 *
 1314 */
 1315 
 1316 inst      scdr       -io 1     -nt "desc mod d1,2 split 9b"
 1317           -mf1      ar
 1318           -mf2      idb ar reg
 1319           -mf3      ar reg;
 1320 
 1321 desc 1    -ns 5     -cn 3;
 1322 
 1323 desc 2     -cn 1;
 1324 
 1325 data 1     -do -3"***" "abcde";
 1326 
 1327 data 2     -do -3   "*bc" "*";
 1328 
 1329 data 3     000 000 000 002;
 1330 
 1331 page       -all;
 1332 
 1333 
 1334 
 1335 /*                  scdr9
 1336 
 1337 *         swap desc1 and desc2 mod
 1338 *
 1339 */
 1340 
 1341 inst      scdr       -io 1     -nt "desc mod d1,2 split 9b"
 1342           -mf1      idb ar reg rl 8
 1343           -mf2      ar
 1344           -mf3      ar reg;
 1345 
 1346 desc 1    -cn 3;
 1347 
 1348 desc 2     -cn 1;
 1349 
 1350 data 1    -do -3    "***" "abcde";
 1351 
 1352 data 2    -do -3    "*bc" "*";
 1353 
 1354 data 3    000 000 000 005;
 1355 
 1356 page      -all;
 1357 
 1358 
 1359 
 1360 /*                  scdr10
 1361 
 1362 *         mf3 is direct :  other two indirect
 1363 *
 1364 */
 1365 
 1366 inst      scdr       -io 1    -nt "mf1 direct others ind 9bit"
 1367           -mf1      idb ar reg rl 8
 1368           -mf2      idb ar reg;
 1369           /* mf3 is direct */
 1370 
 1371 desc 1    -cn 3;
 1372 
 1373 desc 2    -cn 1;
 1374 
 1375 data 1    -do -3    "***" "abcde";
 1376 
 1377 data 2    -do -3    "*bc" "*";
 1378 
 1379 data 3    000 000 000 005;
 1380 
 1381 
 1382 page      -all;
 1383 
 1384 
 1385 
 1386 
 1387 /*                  scdr11
 1388 
 1389 *         the data for the next two tests spans three pages.
 1390 *         this test uses all direct mod for descriptors.
 1391 *
 1392 */
 1393 
 1394 inst      scdr      -io 1   -nt "d1 spans 3 pp 9bit"
 1395 
 1396           -mf1         rl 4352;
 1397 
 1398 data 1    -do -128   "bc"   (2175) "ab" ;
 1399 
 1400 data 2    "bc";
 1401 
 1402 data 3    000 000 010376;
 1403 
 1404 page      -all;
 1405 
 1406 
 1407 
 1408 /*                   scdr12
 1409 
 1410 *         same data as previous test but using
 1411 *         maximum indirection on the desc.
 1412 *
 1413 */
 1414 
 1415 
 1416 inst      scdr       -io 2    -nt "d1 spans 3pp max desc mod 9b"
 1417           -mf1      idb ar reg rl 4352
 1418           -mf2      idb ar reg
 1419           -mf3       reg ar;
 1420 
 1421           /* no desc statements are needed */
 1422 
 1423 data 1    -do -128  "bc"   (2175) "ab" ;
 1424 
 1425 data 2    "bc";
 1426 
 1427 data 3    000 000 010 376;
 1428 
 1429 page      -all;
 1430 
 1431 
 1432 /*                  scdr13
 1433 
 1434 *         the next two tests move the two char data 2 string
 1435 *         across a page boundary using the large data field of
 1436 *         the previous two tests as data 1.
 1437 *
 1438 */
 1439 
 1440 inst     scdr       -io 3    -nt "3 page d1, d2 split 9b"
 1441           -mf1      idb ar reg rl 4352
 1442           -mf2      idb ar reg
 1443           -mf3       ar reg;
 1444 
 1445           /* desc statements not needed */
 1446 
 1447 
 1448 
 1449 data 1    -do -128  (2175) "ab" "bc";
 1450 
 1451 data 2    -do -1    "b" "c";
 1452 
 1453 data 3    000 000 000 000;
 1454 
 1455 page      -all;
 1456 
 1457 
 1458 /*                  scdr14
 1459 
 1460 *         data 2 fully contained on page 0
 1461 *
 1462 */
 1463 
 1464 inst      scdr       -io 2     -nt "3 page d1, d2 split 9b"
 1465           -mf1      idb ar reg rl 4352
 1466           -mf2      idb ar reg
 1467           -mf3       ar reg;
 1468 
 1469 
 1470 data 1    -do -128  "bc"  (2175) "ab" ;
 1471 
 1472 data 2    -do -2"bc";
 1473 
 1474 data 3    000 000 010376;
 1475 
 1476 page      -all;
 1477 
 1478 
 1479 
 1480 /*                  scdr15
 1481 
 1482 *         this starts the 6 bit char tests.
 1483 
 1484 *         nothing fancy--indirect mod on desc 1 & 2
 1485 *
 1486 */
 1487 
 1488 
 1489 inst      scdr   -nt "desc 1,2 mod 6bit"
 1490           -mf1      idb ar reg rl 6
 1491           -mf2      idb ar reg
 1492           /* desc3 is direct */;
 1493 
 1494 desc 1    -ta 6 /* six bit char */;
 1495 
 1496 data 1    202122232425;
 1497 
 1498 data 2    2425;
 1499 
 1500 data 3    000 000 000 000;
 1501 
 1502 page      -all;
 1503 
 1504 
 1505 /*                  scdr16
 1506 
 1507 *         same data but first string offseet by
 1508 *         3 char. full indirect mod on desc.
 1509 *
 1510 */
 1511 
 1512 
 1513 inst       scdr       -io 2    -nt "mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
 1514            -mf1      idb ar reg
 1515            -mf2      idb ar reg
 1516            -mf3       ar reg;
 1517 
 1518 desc 1     -ns 6 -ta 6;
 1519 
 1520 
 1521 data 1     -do -2   212223 242526;
 1522 
 1523 data 2     2425;
 1524 
 1525 data 3     000 000 000 001;
 1526 
 1527 page       -all;
 1528 
 1529 
 1530 
 1531 /*                  scdr17
 1532 
 1533 *this test offsets the second data string.
 1534 *
 1535 */
 1536 
 1537 inst      scdr       -io 1    -nt "full desc mod d2 offset 6b"
 1538 
 1539           -mf1      idb ar reg rl 6
 1540           -mf2      ar reg
 1541           -mf3      reg
 1542           /* note the variety of indirection */;
 1543 
 1544 desc 1     -ta 6;
 1545 
 1546 data 1    212223242526;
 1547 
 1548 data 2    -do -2    242500;
 1549 
 1550 data 3    000 000 000 001;
 1551 
 1552 page      -all;
 1553 
 1554 
 1555 
 1556 /*                  scdr18
 1557 
 1558 *         this test specifically exercises the -cn option
 1559 *         along with multiple indirection.
 1560 *
 1561 */
 1562 
 1563 inst      scdr       -io 3   -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1564           -mf1      idb ar reg rl 6
 1565           -mf2      idb ar reg
 1566           -mf3       ar reg;
 1567 
 1568 
 1569 desc 1    -ta 6     -cn 3;
 1570 
 1571 desc 2     -cn 3;
 1572 
 1573 data 1    -do -4    000000202122 232425000000;
 1574 
 1575 data 2    -do -2    000000 212200;
 1576 
 1577 data 3    000 000 000 003;
 1578 
 1579 page      -all;
 1580 
 1581 
 1582 
 1583 /*                  scdr19
 1584 
 1585 *         data 1 covers three pages.  match
 1586 *         is on the last pair of characters.
 1587 *
 1588 */
 1589 
 1590 inst      scdr   -nt "no off d1 spans 3pp 6b"
 1591           -mf1       idb ar reg rl 7680
 1592           -mf2      idb ar reg
 1593           -mf3       ar reg;
 1594 
 1595 desc 1     -ta 6;
 1596 
 1597 
 1598 data 1    -do -128(1087) 202124252627 202122242223;
 1599 
 1600 data 2    2223;
 1601 
 1602 data 3    000000002200 000;
 1603 
 1604 page      -all;
 1605 
 1606 
 1607 
 1608 /*                  scdr20
 1609 
 1610 *the final series of tests are with 4 bit data
 1611 *         this is just a simple test of two char per string
 1612 *         crossing no page pound.
 1613 *
 1614 */
 1615 
 1616 inst      scdr   -nt "d1.2 2 char 4bit"
 1617           -mf1      idb ar reg
 1618           -mf2      idb ar reg
 1619           /*   mf3 is direct */;
 1620 
 1621 desc 1    -ta 4     -ns 2;
 1622 
 1623 data 1    232 000 000 000 /* "1001" "1010" */;
 1624 
 1625 data 2    232 000 000 000;
 1626 
 1627 data 3    000 000 000 000;
 1628 
 1629 page      -all;
 1630 
 1631 
 1632 /*                  scdr21
 1633 
 1634 *         split the second string across page bound.
 1635 *         test -cn option for data 2.
 1636 *
 1637 */
 1638 
 1639 inst      scdr       -io 2   -nt "cn,offset for d2 4bit"
 1640           -mf1      idb ar reg rl 2
 1641           -mf2      idb ar reg
 1642           -mf3       ar reg;
 1643 
 1644 
 1645 desc 1    -ta 4;
 1646 
 1647 desc 2    -cn 1;
 1648 
 1649 data 1    232 000 000 000;
 1650 
 1651 
 1652 data 2    -do -1    011 240 /* "1001" "1010" */;
 1653 
 1654 data 3    000 000 000 000;
 1655 
 1656 page      -all;
 1657 
 1658 
 1659 /*                  scdr22
 1660 
 1661 *         this test splits both strings and tests
 1662 *         the cn option for both strings
 1663 *
 1664 */
 1665 
 1666 inst      scdr       -io 2    -nt "d1,2 offset 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
 1667           -mf1      idb ar reg
 1668           -mf2      idb ar reg
 1669           -mf3       ar reg;
 1670 
 1671 desc 1    -ta 4     -ns 2          -cn 2;
 1672 
 1673 desc 2    -cn 1;
 1674 
 1675 data 1    -do -2    000 232 000;
 1676 
 1677 data 2    -do -1     011 24;
 1678 
 1679 data 3     000 000 000 000;
 1680 
 1681 page       -all;
 1682 
 1683 
 1684 
 1685 /*                scdr23
 1686 
 1687 *         this test will force data to cover all
 1688 *         three pages with the first data string.
 1689 *
 1690 
 1691 */
 1692 
 1693 inst      scdr       -io 3   -nt "d1 covers 3 pp 4bit"
 1694           -mf1      ar rl 10240
 1695           -mf2      reg
 1696           -mf3      ar;
 1697 
 1698 desc 1    -ta 4     ;
 1699 
 1700 data 1    -do -128  (4350) 232 236;
 1701 
 1702 data 2    236;
 1703 
 1704 data 3    000 000 003 002;
 1705 
 1706 page        -all;
 1707 
 1708 
 1709 ^L
 1710 
 1711 
 1712 /*                  mlr1
 1713 *
 1714 *         Just a simple test.  Move one 9 bit character to another.  */
 1715 
 1716 inst      mlr       -nt  "Move 1 (9) bit char";
 1717 
 1718 desc 1    -ns  1;             data 1    "a";
 1719 
 1720 desc 2    -ns  1;             data 2    "a";
 1721 
 1722 page      -all;
 1723 /*                  mlr2
 1724 *
 1725 *         Move two characters that cross a page boundary.  Note, we need  AR
 1726 *         modification in order to set a data offset that is not a multiple
 1727 *         of the word size.  By doing this we will move the data fields to
 1728 *         segments  etd1 and etd2.
 1729 */
 1730 
 1731 inst      mlr       -nt  "2 chars X page bound"
 1732           -mf1  ar
 1733           -mf2  ar;
 1734 
 1735 desc 1    -ns 2;              desc 2    -ns 2;
 1736 
 1737 data 1    "ab"      -do -1;
 1738 
 1739 data 2    "ab"      -do -1;
 1740 
 1741 page      -all;
 1742 /*                  mlr3
 1743 *
 1744 *         This test will move 20 characters.  The characters will start in the middle
 1745 *         of a word.  The last two characters moved will cross a page boundary.
 1746 *         The instruction word will be moved so that its descriptors cross a
 1747 *         page boundary.
 1748 */
 1749 
 1750 inst      mlr       -nt  "20 char X page bound (-io 1)"     -io 1;
 1751 
 1752 desc 1    -cn 2     /* Effective address will point to a word boundary.
 1753                     *  We will start the string at character 2.  Note, when
 1754                     *  we set up the data we have to enter the two characters
 1755                     *  that we are not using.  */
 1756           -ns 20;
 1757 
 1758 desc 2    -cn 2     -ns 20;
 1759 
 1760 data 1    -do  -20  "  "  (5) "abcd" ;
 1761 
 1762 data 2    -do  -20  000000  (5) "abcd" ;          /* Skipped data in a result field
 1763                                                   *  must be zeros since this is what
 1764                                                   *  et  initializes the test area
 1765                                                   *  to be.  */
 1766 
 1767 page      -all;
 1768 /*                  mlr4
 1769 *
 1770 *         This test is the same as  mlr3  except that the descriptors will be
 1771 *         referenced via indirect words.  These indirect words will use no
 1772 *         modification so the descriptors and the data will still be in
 1773 *         segment  etx.  Also we will move the instruction word back
 1774 *         so that the second descriptor is on the 2nd page.
 1775 */
 1776 
 1777 inst      mlr       -nt  "Same as prev - ind desc"          -io 2
 1778           -mf1  id            -mf2  id;
 1779 
 1780 desc 1    -ns 20    -cn 2;              /* Note the order of the terms. */
 1781 
 1782 desc 2    -cn 2     -ns 20;
 1783 
 1784 data 1    -do  -20  "  "  (5) "abcd" ;
 1785 
 1786 data 2    -do  -20  000 000  (5) "abcd" ;
 1787 
 1788 page      -all;
 1789 /*                  mlr5
 1790 *
 1791 /*        This test is the same as  mlr4  except that the indirect words will
 1792 *         use  index register modification.
 1793 */
 1794 
 1795 inst      mlr       -nt  "Same as prev - use indexes"       -io 2
 1796           -mf2  idr           -mf1  idr;          /* Note order of mf terms. */
 1797 
 1798 desc 1    -cn 2     -ns 20;
 1799 
 1800 desc 2    -cn 2     -ns 20;
 1801 
 1802 data 1    -do  -20  "  "  (5) "abcd" ;
 1803 
 1804 data 2    -do  -20  000 000  (5) "abcd" ;
 1805 
 1806 page      -all;
 1807 /*                  mlr6
 1808 *
 1809 /*        This test is the same as  mlr4  except that the indirect words will
 1810 *         use  AR modification.  This will force  ET to place the descriptors and
 1811 *         the data fields in segments  eti1 and eti2.
 1812 */
 1813 
 1814 inst      mlr       -nt  "Ind with AR mod"        -io 2
 1815           -mf2  ida           -mf1  ida;
 1816 
 1817 desc 1    -cn 2     -ns 20;
 1818 
 1819 desc 2    -cn 2     -ns 20;
 1820 
 1821 data 1    -do  -20  "  "  (5) "abcd" ;
 1822 
 1823 data 2    -do  -20  000 000  (5) "abcd" ;
 1824 
 1825 page      -all;
 1826 /*                  mlr7
 1827 *
 1828 *         This test is the same as the test  mlr3  except that the descriptors
 1829 *         will use  REG  and  RL  modification.
 1830 */
 1831 
 1832 inst      mlr       -nt  "Ind with REG 7. RL mod"           -io 1
 1833           -mf2  reg  rl  20
 1834           -mf1  rl  20   reg;
 1835 
 1836 desc 1    -cn 2;
 1837 
 1838 desc 2    -cn 2;
 1839 
 1840 data 1    -do  -20  "  "  (5) "abcd" ;
 1841 
 1842 data 2    -do  -20  000 000  (5) "abcd" ;
 1843 
 1844 page      -all;
 1845 
 1846 /*                  mlr8
 1847 *
 1848 *         This test is the same as the test  mlr3  except that the descriptors
 1849 *         will use  AR, REG  and  RL  modification.
 1850 */
 1851 
 1852 inst      mlr       -nt  "Desc use AR,REG,& RL mod"         -io 1
 1853           -mf1  reg  ar  rl  20
 1854           -mf2  rl  20   ar  reg;
 1855 
 1856 desc 1    -cn 2;
 1857 
 1858 desc 2    -cn 2;
 1859 
 1860 data 1    -do  -20  "  "  (5) "abcd" ;
 1861 
 1862 data 2    -do  -20  000 000  (5) "abcd" ;
 1863 
 1864 page      -all;
 1865 
 1866 /*                  mlr9
 1867 *
 1868 *         This test is the same as the test  mlr3  except that the descriptors
 1869 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 1870 *         We will not have any modification in the indirect words so the descriptors
 1871 *         will still be in segment  etx.
 1872 */
 1873 
 1874 inst      mlr       -nt  "Same as prev - use ind"           -io 1
 1875           -mf1      rl  20
 1876                     ar        /* This puts the data in  etd1. */
 1877                     reg       /* Use index register 1.. */
 1878                     id        /* This adds indirect descriptors.  */
 1879 
 1880           -mf2      id
 1881                     rl  20
 1882                     reg
 1883                     ar;
 1884 
 1885 desc 1    -cn 2;
 1886 
 1887 desc 2    -cn 2;
 1888 
 1889 data 1    -do  -20  "  "  (5) "abcd" ;
 1890 
 1891 data 2    -do  -20  000 000  (5) "abcd" ;
 1892 
 1893 page      -all;
 1894 
 1895 /*                  mlr10
 1896 *
 1897 *         This test is the same as the test  mlr3  except that the descriptors
 1898 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 1899 *         The indirect words will use both reg and ar modification.
 1900 */
 1901 
 1902 inst      mlr       -nt  "Desc: AR,RL,REG  Ind: AR,REG"     -io 1
 1903           -mf1      rl  20
 1904                     ar        /* This puts the data in  etd1. */
 1905                     reg       /* Use index register 1.. */
 1906                     idb       /* This adds indirect descriptors.  Descriptors will go in
 1907                               *  segments  eti1 and eti2.  */
 1908 
 1909           -mf2      idb
 1910                     rl  20
 1911                     reg
 1912                     ar;
 1913 
 1914 desc 1    -cn 2;
 1915 
 1916 desc 2    -cn 2;
 1917 
 1918 data 1    -do  -20  "  "  (5) "abcd" ;
 1919 
 1920 data 2    -do  -20  000 000  (5) "abcd" ;
 1921 
 1922 page      -all;
 1923 
 1924 /*                  mlr11
 1925 *
 1926 *         This test will move  6  6 bit characters.  Both strings will have  3 characters
 1927 *         on each side of the page boundary.  The descriptor 2 data will be offset 4
 1928 *         9 bit characters but will specify a  "cn" field of 3 so the effective starting
 1929 *         address will be the same as descriptor 1.   All possible modification will be
 1930 *         used.  Descriptor 1 will also use  RL  modification.
 1931 */
 1932 
 1933 inst      mlr       -nt  "6 bit chars X pg bound"
 1934 
 1935           -mf1      rl  6     idb       ar  reg
 1936 
 1937           -mf2      reg   ar   idb;
 1938 
 1939 
 1940 desc 1    -ta  6;
 1941 
 1942 desc 2    -cn 3     -ta 6     -ns  6;
 1943 
 1944 
 1945 data 1    -do  -2   212223242526;
 1946 
 1947 data 2    -do  -4
 1948           (2) 000             /* We must fill in the unused 3 six bit characters. */
 1949           212223242526;       /* The actual data result field. */
 1950 
 1951 
 1952 page      -all;
 1953 
 1954 /*                  mlr12
 1955 *
 1956 *         This test will move 3  4 bit characters.  Below is a description of what is
 1957 *         going on.  EA is the effective address of the descriptor.
 1958 *
 1959 *         string 1                    EA  1  |  2  3
 1960 *                   ---------------------------------------------------
 1961 *         char addr  0  1  2  3  4  5  6  7  |  0  1  2  3  4  5  6  7
 1962 *                   ---------------------------------------------------
 1963 *         string 2  EA                 1  2  |  3
 1964 *
 1965 *         All possible modification will be used.  Descriptor 2 will use  RL  mod.
 1966 */
 1967 
 1968 inst      mlr       -nt  "4 bit chars"
 1969 
 1970           -mf1      idb       ar  reg
 1971 
 1972           -mf2      reg   ar   idb      rl  3;
 1973 
 1974 
 1975 desc 1    -ta  4    -cn 1     -ns  3;
 1976 
 1977 desc 2    -cn 6     -ta 4;
 1978 
 1979 
 1980 data 1    011  253  -do -1;
 1981 
 1982 data 2    -do  -4   000000000 232  26;
 1983 
 1984 
 1985 page      -all;
 1986 
 1987 /*                  mlr13
 1988 *
 1989 *         This test will move  6  9 bit characters into  6  6 bit characters.
 1990 *         Both strings will be split in the middle across a page boundary.
 1991 */
 1992 
 1993 inst      mlr       -nt "9 bit chars into 6 bit chars"
 1994           -mf1  ar reg idr
 1995           -mf2  reg ar idb;
 1996 
 1997 data 1    -do -3  " te"  "st ";
 1998 
 1999 data 2    -do -2    406445 636440;
 2000 
 2001 
 2002 desc 1    -ns 6;
 2003 
 2004 desc 2    -ns 6     -ta 6;
 2005 
 2006 
 2007 page      -all;
 2008 
 2009 /*                  mlr14
 2010 *
 2011 *         This test will test the fill character function.
 2012 *         Also the  truncation bit will be turned ON but we will specify that
 2013 *         we do not expect a truncation fault.
 2014 */
 2015 
 2016 inst      mlr       -nt  "Use fill char"          -io 3
 2017 
 2018           -fc*      -tbn
 2019 
 2020           -mf1  idr  ar   rl 4
 2021           -mf2  ida  reg  rl 8;
 2022 
 2023 /*        No  desc  statements are needed because all the defaults are correct.  */
 2024 
 2025 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2026 
 2027 data 2    "abcd" "****"
 2028           -do -4;             /* The fill characters go on a different page.  */
 2029 
 2030 
 2031 page      -all;
 2032 
 2033 /*                  mlr15
 2034 *
 2035 *         This is the same test as  mlr14  except the  fill characters will start on
 2036 *         one page and end on the next page.
 2037 *         we do not expect a truncation fault.
 2038 */
 2039 
 2040 inst      mlr       -nt  "Fill X pg bound"        -io 1
 2041 
 2042           -fc*      -tbn
 2043 
 2044           -mf1  idr  ar   rl 4
 2045           -mf2  ida  reg ar   rl 8;
 2046 
 2047 /*        No  desc  statements are needed because all the defaults are correct.  */
 2048 
 2049 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2050 
 2051 data 2    "abcd**"  "**"
 2052           -do -6;             /* The fill characters are split across a  page boundary.  */
 2053 
 2054 
 2055 page      -all;
 2056 
 2057 /*                  mlr16
 2058 *
 2059 *         This test is designed to test truncation.  We will expect the truncation
 2060 *         indicator to be  ON.  The truncation bit will be left OFF and so we will not
 2061 *         expect a truncation fault.
 2062 */
 2063 
 2064 
 2065 inst      mlr       -nt  "Trunc Ind ON"
 2066           -mf2 ar   -io 2     -ir tn;
 2067 
 2068 desc 1    -ns 8;              desc 2    -ns 4;
 2069 
 2070 
 2071 data 1    -do  -4   "abcd"  "1234";
 2072 
 2073 data 2    -do  -2   "abcd";
 2074 
 2075 
 2076 page      -all;
 2077 
 2078 /*                  mlr17
 2079 *
 2080 *         This test is designed to test truncation.  We will expect the truncation
 2081 *         indicator to be  ON.  This test is the same as  mlr16 except that the
 2082 *         truncation bit in the instruction word will be set  ON.  This should
 2083 *         cause a truncation fault.  We should be ready for it.
 2084 */
 2085 
 2086 
 2087 inst      mlr       -nt  "Take trunc fault"       -tby
 2088           -mf2 ar   -io 2     -ir tn;
 2089 
 2090 desc 1    -ns 8;              desc 2    -ns 4;
 2091 
 2092 
 2093 data 1    -do  -4   "abcd"  "1234";
 2094 
 2095 data 2    -do  -2   "abcd";
 2096 
 2097 
 2098 page      -all;
 2099 
 2100 /*                  mlr18
 2101 *
 2102 *         This test will try to move  over a page of data.  We will move  1088 words
 2103 *         containing the characters  "cisl".
 2104 */
 2105 
 2106 
 2107 inst      mlr       -nt  "Move over 1 page"       -io 1
 2108           -mf1  rl  4352      idb ar reg
 2109           -mf2  rl  4352      idbar reg;
 2110 
 2111 data 1    -do  -128   (1088) "cisl";
 2112 
 2113 data 2    -do  -128   (1088) "cisl";
 2114 
 2115 page      -all;
 2116 
 2117 
 2118 ^L
 2119 
 2120 
 2121 /*                  mrl1
 2122 *
 2123 *         Just a simple test.  Move one 9 bit character to another.  */
 2124 
 2125 inst      mrl       -nt  "Move 1 (9) bit char";
 2126 
 2127 desc 1    -ns  1;             data 1    "a";
 2128 
 2129 desc 2    -ns  1;             data 2    "a";
 2130 
 2131 page      -all;
 2132 
 2133 /*                  mrl2
 2134 *
 2135 *         Move two characters that cross a page boundary.  Note, we need  AR
 2136 *         modification in order to set a data offset that is not a multiple
 2137 *         of the word size.  By doing this we will move the data fields to
 2138 *         segments  etd1 and etd2.
 2139 */
 2140 
 2141 inst      mrl       -nt  "2 chars X page bound"
 2142           -mf1  ar
 2143           -mf2  ar;
 2144 
 2145 desc 1    -ns 2;              desc 2    -ns 2;
 2146 
 2147 data 1    "ab"      -do -1;
 2148 
 2149 data 2    "ab"      -do -1;
 2150 
 2151 page      -all;
 2152 
 2153 /*                  mrl3
 2154 *
 2155 *         This test will move 20 characters.  The characters will start in the middle
 2156 *         of a word.  The last two characters moved will cross a page boundary.
 2157 *         The instruction word will be moved so that its descriptors cross a
 2158 *         page boundary.
 2159 */
 2160 
 2161 inst      mrl       -nt  "20 char X page bound (-io 1)"     -io 1;
 2162 
 2163 desc 1    -cn 2     /* Effective address will point to a word boundary.
 2164                     *  We will start the string at character 2.  Note, when
 2165                     *  we set up the data we have to enter the two characters
 2166                     *  that we are not using.  */
 2167           -ns 20;
 2168 
 2169 desc 2    -cn 2     -ns 20;
 2170 
 2171 data 1    -do  -20  "  "  (5) "abcd" ;
 2172 
 2173 data 2    -do  -20  000000  (5) "abcd" ;          /* Skipped data in a result field
 2174                                                   *  must be zeros since this is what
 2175                                                   *  et  initializes the test area
 2176                                                   *  to be.  */
 2177 
 2178 page      -all;
 2179 
 2180 /*                  mrl4
 2181 *
 2182 *         This test is the same as  mrl3  except that the descriptors will be
 2183 *         referenced via indirect words.  These indirect words will use no
 2184 *         modification so the descriptors and the data will still be in
 2185 *         segment  etx.  Also we will move the instruction word back
 2186 *         so that the second descriptor is on the 2nd page.
 2187 */
 2188 
 2189 inst      mrl       -nt  "Same as prev - ind desc"          -io 2
 2190           -mf1  id            -mf2  id;
 2191 
 2192 desc 1    -ns 20    -cn 2;              /* Note the order of the terms. */
 2193 
 2194 desc 2    -cn 2     -ns 20;
 2195 
 2196 data 1    -do  -20  "  "  (5) "abcd" ;
 2197 
 2198 data 2    -do  -20  000 000  (5) "abcd" ;
 2199 
 2200 page      -all;
 2201 
 2202 /*                  mrl5
 2203 *
 2204 /*        This test is the same as  mrl4  except that the indirect words will
 2205 *         use  index register modification.
 2206 */
 2207 
 2208 inst      mrl       -nt  "Same as prev - use indexes"       -io 2
 2209           -mf2  idr           -mf1  idr;          /* Note order of mf terms. */
 2210 
 2211 desc 1    -cn 2     -ns 20;
 2212 
 2213 desc 2    -cn 2     -ns 20;
 2214 
 2215 data 1    -do  -20  "  "  (5) "abcd" ;
 2216 
 2217 data 2    -do  -20  000 000  (5) "abcd" ;
 2218 
 2219 page      -all;
 2220 
 2221 /*                  mrl6
 2222 *
 2223 /*        This test is the same as  mrl4  except that the indirect words will
 2224 *         use  AR modification.  This will force  ET to place the descriptors and
 2225 *         the data fields in segments  eti1 and eti2.
 2226 */
 2227 
 2228 inst      mrl       -nt  "Ind with AR mod"        -io 2
 2229           -mf2  ida           -mf1  ida;
 2230 
 2231 desc 1    -cn 2     -ns 20;
 2232 
 2233 desc 2    -cn 2     -ns 20;
 2234 
 2235 data 1    -do  -20  "  "  (5) "abcd" ;
 2236 
 2237 data 2    -do  -20  000 000  (5) "abcd" ;
 2238 
 2239 page      -all;
 2240 
 2241 /*                  mrl7
 2242 *
 2243 *         This test is the same as the test  mrl3  except that the descriptors
 2244 *         will use  REG  and  RL  modification.
 2245 */
 2246 
 2247 inst      mrl       -nt  "Ind with REG 7. RL mod"           -io 1
 2248           -mf2  reg  rl  20
 2249           -mf1  rl  20   reg;
 2250 
 2251 desc 1    -cn 2;
 2252 
 2253 desc 2    -cn 2;
 2254 
 2255 data 1    -do  -20  "  "  (5) "abcd" ;
 2256 
 2257 data 2    -do  -20  000 000  (5) "abcd" ;
 2258 
 2259 page      -all;
 2260 
 2261 /*                  mrl8
 2262 *
 2263 *         This test is the same as the test  mrl3  except that the descriptors
 2264 *         will use  AR, REG  and  RL  modification.
 2265 */
 2266 
 2267 inst      mrl       -nt  "Desc use AR,REG,& RL mod"         -io 1
 2268           -mf1  reg  ar  rl  20
 2269           -mf2  rl  20   ar  reg;
 2270 
 2271 desc 1    -cn 2;
 2272 
 2273 desc 2    -cn 2;
 2274 
 2275 data 1    -do  -20  "  "  (5) "abcd" ;
 2276 
 2277 data 2    -do  -20  000 000  (5) "abcd" ;
 2278 
 2279 page      -all;
 2280 
 2281 /*                  mrl9
 2282 *
 2283 *         This test is the same as the test  mrl3  except that the descriptors
 2284 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 2285 *         We will not have any modification in the indirect words so the descriptors
 2286 *         will still be in segment  etx.
 2287 */
 2288 
 2289 inst      mrl       -nt  "Same as prev - use ind"           -io 1
 2290           -mf1      rl  20
 2291                     ar        /* This puts the data in  etd1. */
 2292                     reg       /* Use index register 1.. */
 2293                     id        /* This adds indirect descriptors.  */
 2294 
 2295           -mf2      id
 2296                     rl  20
 2297                     reg
 2298                     ar;
 2299 
 2300 desc 1    -cn 2;
 2301 
 2302 desc 2    -cn 2;
 2303 
 2304 data 1    -do  -20  "  "  (5) "abcd" ;
 2305 
 2306 data 2    -do  -20  000 000  (5) "abcd" ;
 2307 
 2308 page      -all;
 2309 
 2310 /*                  mrl10
 2311 *
 2312 *         This test is the same as the test  mrl3  except that the descriptors
 2313 *         will use  AR, REG  and  RL  modification  AND  we will use indirect descriptors.
 2314 *         The indirect words will use both reg and ar modification.
 2315 */
 2316 
 2317 inst      mrl       -nt  "Desc: AR,RL,REG  Ind: AR,REG"     -io 1
 2318           -mf1      rl  20
 2319                     ar        /* This puts the data in  etd1. */
 2320                     reg       /* Use index register 1.. */
 2321                     idb       /* This adds indirect descriptors.  Descriptors will go in
 2322                               *  segments  eti1 and eti2.  */
 2323 
 2324           -mf2      idb
 2325                     rl  20
 2326                     reg
 2327                     ar;
 2328 
 2329 desc 1    -cn 2;
 2330 
 2331 desc 2    -cn 2;
 2332 
 2333 data 1    -do  -20  "  "  (5) "abcd" ;
 2334 
 2335 data 2    -do  -20  000 000  (5) "abcd" ;
 2336 
 2337 page      -all;
 2338 
 2339 /*                  mrl11
 2340 *
 2341 *         This test will move  6  6 bit characters.  Both strings will have  3 characters
 2342 *         on each side of the page boundary.  The descriptor 2 data will be offset 4
 2343 *         9 bit characters but will specify a  "cn" field of 3 so the effective starting
 2344 *         address will be the same as descriptor 1.   All possible modification will be
 2345 *         used.  Descriptor 1 will also use  RL  modification.
 2346 */
 2347 
 2348 inst      mrl       -nt  "6 bit chars X pg bound"
 2349 
 2350           -mf1      rl  6     idb       ar  reg
 2351 
 2352           -mf2      reg   ar   idb;
 2353 
 2354 
 2355 desc 1    -ta  6;
 2356 
 2357 desc 2    -cn 3     -ta 6     -ns  6;
 2358 
 2359 
 2360 data 1    -do  -2   212223242526;
 2361 
 2362 data 2    -do  -4
 2363           (2) 000             /* We must fill in the unused 3 six bit characters. */
 2364           212223242526;       /* The actual data result field. */
 2365 
 2366 
 2367 page      -all;
 2368 
 2369 /*                  mrl12
 2370 *
 2371 *         This test will move 3  4 bit characters.  Below is a description of what is
 2372 *         going on.  EA is the effective address of the descriptor.
 2373 *
 2374 *         string 1                    EA  1  |  2  3
 2375 *                   ---------------------------------------------------
 2376 *         char addr  0  1  2  3  4  5  6  7  |  0  1  2  3  4  5  6  7
 2377 *                   ---------------------------------------------------
 2378 *         string 2  EA                 1  2  |  3
 2379 *
 2380 *         All possible modification will be used.  Descriptor 2 will use  RL  mod.
 2381 */
 2382 
 2383 inst      mrl       -nt  "4 bit chars"
 2384 
 2385           -mf1      idb       ar  reg
 2386 
 2387           -mf2      reg   ar   idb      rl  3;
 2388 
 2389 
 2390 desc 1    -ta  4    -cn 1     -ns  3;
 2391 
 2392 desc 2    -cn 6     -ta 4;
 2393 
 2394 
 2395 data 1    011  253  -do -1;
 2396 
 2397 data 2    -do  -4   000000000 232  26;
 2398 
 2399 
 2400 page      -all;
 2401 
 2402 /*                  mrl13
 2403 *
 2404 *         This test will move  6  9 bit characters into  6  6 bit characters.
 2405 *         Both strings will be split in the middle across a page boundary.
 2406 */
 2407 
 2408 inst      mrl       -nt "9 bit chars into 6 bit chars"
 2409           -mf1  ar reg idr
 2410           -mf2  reg ar idb;
 2411 
 2412 data 1    -do -3  " te"  "st ";
 2413 
 2414 data 2    -do -2    406445 636440;
 2415 
 2416 
 2417 desc 1    -ns 6;
 2418 
 2419 desc 2    -ns 6     -ta 6;
 2420 
 2421 
 2422 page      -all;
 2423 
 2424 /*                  mrl14
 2425 *
 2426 *         This test will test the fill character function.
 2427 *         Also the  truncation bit will be turned ON but we will specify that
 2428 *         we do not expect a truncation fault.
 2429 */
 2430 
 2431 inst      mrl       -nt  "Use fill char"          -io 3
 2432 
 2433           -fc*      -tbn
 2434 
 2435           -mf1  idr  ar   rl 4
 2436           -mf2  ida  reg  rl 8;
 2437 
 2438 /*        No  desc  statements are needed because all the defaults are correct.  */
 2439 
 2440 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2441 
 2442 data 2    "****" "abcd"
 2443           -do -4;             /* The fill characters go on a different page.  */
 2444 
 2445 
 2446 page      -all;
 2447 
 2448 /*                  mrl15
 2449 *
 2450 *         This is the same test as  mrl14  except the  fill characters will start on
 2451 *         one page and end on the next page.
 2452 *         we do not expect a truncation fault.
 2453 */
 2454 
 2455 inst      mrl       -nt  "Fill X pg bound"        -io 1
 2456 
 2457           -fc*      -tbn
 2458 
 2459           -mf1  idr  ar   rl 4
 2460           -mf2  ida  reg ar   rl 8;
 2461 
 2462 /*        No  desc  statements are needed because all the defaults are correct.  */
 2463 
 2464 data 1    "abcd"    -do -2;   /* Split the 4 characters across a page boundary. */
 2465 
 2466 data 2    "**" "**abcd"
 2467           -do -2;             /* The fill characters are split across a  page boundary.  */
 2468 
 2469 
 2470 page      -all;
 2471 
 2472 /*                  mrl16
 2473 *
 2474 *         This test is designed to test truncation.  We will expect the truncation
 2475 *         indicator to be  ON.  The truncation bit will be left OFF and so we will not
 2476 *         expect a truncation fault.
 2477 */
 2478 
 2479 
 2480 inst      mrl       -nt  "Trunc Ind ON"
 2481           -mf2 ar   -io 2     -ir tn;
 2482 
 2483 desc 1    -ns 8;              desc 2    -ns 4;
 2484 
 2485 
 2486 data 1    -do  -4   "abcd"  "1234";
 2487 
 2488 data 2    -do  -2   "1234";
 2489 
 2490 
 2491 page      -all;
 2492 
 2493 /*                  mrl17
 2494 *
 2495 *         This test is designed to test truncation.  We will expect the truncation
 2496 *         indicator to be  ON.  This test is the same as  mrl16 except that the
 2497 *         truncation bit in the instruction word will be set  ON.  This should
 2498 *         cause a truncation fault.  We should be ready for it.
 2499 */
 2500 
 2501 
 2502 inst      mrl       -nt  "Take trunc fault"       -tby
 2503           -mf2 ar   -io 2     -ir tn;
 2504 
 2505 desc 1    -ns 8;              desc 2    -ns 4;
 2506 
 2507 
 2508 data 1    -do  -4   "abcd"  "1234";
 2509 
 2510 data 2    -do  -2   "1234";
 2511 
 2512 
 2513 page      -all;
 2514 
 2515 /*                  mrl18
 2516 *
 2517 *         This test will try to move  over a page of data.  We will move  1088 words
 2518 *         containing the characters  "cisl".
 2519 */
 2520 
 2521 
 2522 inst      mrl       -nt  "Move over 1 page"       -io 1
 2523           -mf1  rl  4352      idb ar reg
 2524           -mf2  rl  4352      idbar reg;
 2525 
 2526 data 1    -do  -128   (1088) "cisl";
 2527 
 2528 data 2    -do  -128   (1088) "cisl";
 2529 
 2530 page      -all;
 2531 
 2532 
 2533 ^L
 2534 
 2535 
 2536 /*                  mvt 1
 2537 *
 2538 *         Just a simple test.    Table is "0123".  result = "01233210".
 2539 */
 2540 
 2541 inst      mvt       -nt  "Simple test with 9 bit chars";
 2542 
 2543 desc 1    -ns       8;
 2544 desc 2    -ns       8;
 2545 
 2546 data 1    000 001 002 003 003 002 001 000;        /* 9 bit characters used as indexes. */
 2547 
 2548 data 2    "01233210";
 2549 
 2550 data 3    "0123";
 2551 
 2552 
 2553 page      -all;
 2554 /*                  mvt 2
 2555 *
 2556 *         Same test as  mvt 1 except that the data fields have been move across
 2557 *         a page boundary.
 2558 */
 2559 
 2560 inst      mvt       -nt  "Same as prev - fields X pg bound" -io 1;
 2561 
 2562 desc 1    -ns       8;
 2563 desc 2    -ns       8;
 2564 
 2565 data 1    -do -4    000 001 002 003   003 002 001 000;
 2566 
 2567 data 2    -do  -4   "0123"  "3210";
 2568 
 2569 data 3    "0123";
 2570 
 2571 
 2572 page      -all;
 2573 /*                  mvt 3
 2574 *
 2575 *         Same test as  mvt 2 except we will add a lot of modification  and adjust
 2576 *         that data fields so that they do not begin on WORD boundaries.
 2577 */
 2578 
 2579 inst      mvt       -nt  "Same as prev - with mod"          -io 3
 2580           -mf1      rl  8  ar reg idb
 2581           -mf2      rl  8  ar reg idb
 2582           -mf3      ar reg;
 2583 
 2584 /*        No desc statements needed since  rl  mod specified and other defaults OK. */
 2585 
 2586 data 1    -do -2    000 001   002 003 003 002 001 000;
 2587 
 2588 data 2    -do -2    "01"  "233210";
 2589 
 2590 data 3              "0123";
 2591 
 2592 
 2593 page      -all;
 2594 /*                  mvt 4
 2595 *
 2596 *         This test will use a fill character.   The table will have  110  characters
 2597 *         but we should only reference  5  of them.
 2598 */
 2599 
 2600 inst      mvt       -nt  "Use fill characters"
 2601           -io 1
 2602           -fce      /* Fill character is "e"  =  145 octal.  */
 2603           -mf1      ar
 2604           -mf2      ar
 2605           -mf3      ar;
 2606 
 2607 desc 1    -ns  3;
 2608 
 2609 desc 2    -ns 8;              /* L2 > L1  =>  use of fill character. */
 2610 
 2611 /*        There are no legal fields we can specify with a  desc 3  statement
 2612 *         for this instruction.
 2613 */
 2614 
 2615 
 2616 data 1    -do -1    "c"  "ba";
 2617 
 2618 data 2    -do  -5   "32155"  "555";
 2619 
 2620 data 3    -do -100
 2621           (97) "*"            /* These characters in table never used. */
 2622           "123"  "45"
 2623           (9)  "*";
 2624 
 2625 
 2626 page      -all;
 2627 
 2628 /*  mvt 5
 2629 *
 2630 *  Test page faults when first character of desc 1 and 2 are
 2631 *  at  the  end  of  a  page.
 2632 */
 2633 
 2634 inst mvt -nt"check special page fault 1"
 2635          -io 1;
 2636 
 2637 desc 1  -ns 9 -cn 3 ;
 2638 desc 2  -ns 9 -cn 3 ;
 2639 
 2640 data 1 -do -4  "   " 000 001 002 003 002 000 004 005 003 ;
 2641 data 2 -do -4 000 000 000  "character" ;
 2642 data 3 "charted" ;
 2643 
 2644 page   -all ;
 2645 
 2646 
 2647 /*   mvt 6
 2648 *
 2649 *  Test page faults when last character of desc 1 and 2 are on a new page.
 2650 *
 2651 */
 2652 
 2653 inst  mvt  -nt "check special page fault 2"
 2654            -io 1 ;
 2655 
 2656 desc 1  -ns 9 ;
 2657 
 2658 desc 2  -ns 9 ;
 2659 
 2660 data 1  -do -8  000 001 002 003 002 000 004 005 003 ;
 2661 
 2662 data 2  -do -8  "character" ;
 2663 
 2664 data 3  "charte" ;
 2665 
 2666 page    -all ;
 2667 
 2668 
 2669 /*   mvt 7
 2670 *
 2671 *  Test direct data movement for data 1 and 2 .
 2672 *  Also test moving data across 3 pages.  To move more than
 2673 *  4096 characters of data register length modification must be used.
 2674 */
 2675 
 2676 inst  mvt  -nt  "dir desc. 3 page move; FCOs PHAFPG179 & 181 required on L68 CPU"
 2677          -mf1 rl 4112
 2678          -mf2 rl 4112 ;
 2679 
 2680 desc 1  -cn 1 ;
 2681 
 2682 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2683 
 2684 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2685 
 2686 data 3    "abcdefghijklmnop" ;
 2687 
 2688 page    -all ;
 2689 
 2690 /*   mvt 8
 2691 *
 2692 * Test address register usage for data 1 and 2.  Also test moving data across
 2693 * 3 pages.  All descriptors are direct.
 2694 * Also use register length modification.
 2695 */
 2696 
 2697 inst mvt -nt "tst ar1&ar2. 3 pg move;FCOs PHAFPG179 & 181 required on L68 CPU"
 2698          -io 2
 2699          -mf1 ar rl 4112
 2700          -mf2 ar rl 4112 ;
 2701 
 2702 desc 1  -cn 1 ;
 2703 
 2704 
 2705 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2706 
 2707 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2708 
 2709 data 3    "abcdefghijklmnop" ;
 2710 
 2711 page    -all ;
 2712 
 2713 
 2714 /* mvt  9
 2715 * Test ar, reg, and register length modification for data 1 and 2.
 2716 * Also test data movement of three pages.
 2717 */
 2718 
 2719 inst mvt  -nt "tst ar,rg,rl. 3 pg mv; FCOs PHAFPG179 & 181 required on L68 CPU"
 2720          -io 2
 2721          -mf1 ar reg rl 4112
 2722          -mf2 ar reg rl 4112 ;
 2723 
 2724 desc 1  -cn 1 ;
 2725 
 2726 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2727 
 2728 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2729 
 2730 data 3    "abcdefghijklmnop" ;
 2731 
 2732 page    -all ;
 2733 
 2734 
 2735 /*   mvt 10
 2736 *
 2737 *   Test indirect referencing of descriptors 1 and 2.
 2738 *   Test register length modification and move data from 3 pages.
 2739 */
 2740 
 2741 inst mvt -nt  "tst ind descs; FCOs PHAFPG179 & 181 required on L68 CPU"
 2742          -io 1
 2743          -mf1 id rl 4112
 2744          -mf2 id rl 4112 ;
 2745 
 2746 desc 1  -cn 1 ;
 2747 
 2748 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2749 
 2750 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2751 
 2752 data 3    "abcdefghijklmnop" ;
 2753 
 2754 page    -all ;
 2755 
 2756 /*   mvt 11
 2757 *
 2758 *  Test indirect referencing of descriptors 1 and 2 with ar modification
 2759 *  of the indirect word.  Also data is moved from 3 pages.
 2760 */
 2761 
 2762 inst mvt -nt "tst ida. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2763          -io 2
 2764          -mf1 ida rl 4112
 2765          -mf2 ida rl 4112 ;
 2766 
 2767 desc 1  -cn 1 ;
 2768 
 2769 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2770 
 2771 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2772 
 2773 data 3    "abcdefghijklmnop" ;
 2774 
 2775 page    -all ;
 2776 
 2777 
 2778 /*   mvt 12
 2779 *
 2780 *  Test indirect referencing of descriptors 1 and 2 with reg modification
 2781 *  of the indirect word.  Also data is moved from 3 pages.
 2782 */
 2783 
 2784 inst  mvt  -nt  "tst idr, 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2785          -io 1
 2786          -mf1 idr rl 4112
 2787          -mf2 idr rl 4112 ;
 2788 
 2789 desc 1  -cn 1 ;
 2790 
 2791 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2792 
 2793 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2794 
 2795 data 3    "abcdefghijklmnop" ;
 2796 
 2797 page    -all ;
 2798 
 2799 
 2800 /*   mvt 13
 2801 *
 2802 *  Test indirect referencing of descriptors 1 and 2 with both
 2803 *  ar and reg modification of the indirect word.  Also data is
 2804 *  moved from three pages.
 2805 */
 2806 
 2807 inst  mvt  -nt  "tst idb. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
 2808          -io 2
 2809          -mf1 idb rl 4112
 2810          -mf2 idb rl 4112 ;
 2811 
 2812 desc 1  -cn 1 ;
 2813 
 2814 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2815 
 2816 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2817 
 2818 data 3    "abcdefghijklmnop" ;
 2819 
 2820 page    -all ;
 2821 
 2822 
 2823 /*   mvt 14
 2824 *
 2825 *  Test indirect referencing of of descriptors 1 and 2 with
 2826 *  ar, reg, and reg length modification of the descriptors.
 2827 *  Data is moved from 3 pages.
 2828 */
 2829 
 2830 inst  mvt  -nt  "tst ar,reg,rl,id.; FCOs PHAFPG179 & 181 required on L68 CPU"
 2831          -mf1 id ar reg rl 4112
 2832          -mf2 id ar reg rl 4112 ;
 2833 
 2834 desc 1  -cn 1 ;
 2835 
 2836 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2837 
 2838 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2839 
 2840 data 3    "abcdefghijklmnop" ;
 2841 
 2842 page    -all ;
 2843 
 2844 
 2845 /*   mvt 15
 2846 *
 2847 *  Test indirect referencing of descriptors 1 and 2 with ar
 2848 *  and reg modification of the indirect word.  Also ar, reg,
 2849 *  and register length modification is applied to the
 2850 *  descriptors.  Three pages of data is moved.
 2851 */
 2852 
 2853 inst  mvt  -nt  "tst ar,reg,rl,idb; FCOs PHAFPG179 & 181 required on L68 CPU"
 2854          -io 2
 2855          -mf1 idb ar reg rl 4112
 2856          -mf2 idb ar reg rl 4112 ;
 2857 
 2858 desc 1  -cn 1 ;
 2859 
 2860 data 1  -do -4  " " (257) 000001002003004005006007010011012013014015016017 ;
 2861 
 2862 data 2  -do -4  (257) "abcdefghijklmnop" ;
 2863 
 2864 data 3    "abcdefghijklmnop" ;
 2865 
 2866 page    -all ;
 2867 
 2868 
 2869 
 2870 /*   mvt 16
 2871 *
 2872 *  Test translation of 9 bit to 6 bit characters.  Only direct descriptors
 2873 *  with no modification are used.  All forms of modification and
 2874 *  indirection have been tested in previous tests.
 2875 *  This test has no truncation.
 2876 *
 2877 */
 2878 
 2879 inst  mvt  -nt "9 to 6 bit chars"
 2880            -fc  ;
 2881 
 2882 desc 1  -ns 50
 2883         -cn 2  ;
 2884 
 2885 desc 2  -ns 50
 2886         -cn 5
 2887         -ta 6  ;
 2888 
 2889 data 1  -do 4068
 2890         "  " (6) 000001002003004005006007010 ;
 2891 
 2892 data 2  -do 20
 2893         000000000060 (5) 616263414243440060  61626341 ;
 2894 
 2895 data 3  "0123abcd"  (23) 000  020  ;
 2896 
 2897 page -all;
 2898 
 2899 
 2900 /*   mvt 17
 2901 *
 2902 *  Test translation of 9 to 6 `bit characters.
 2903 *  L1 is less than L2.  String 2 is `blank filled.
 2904 *
 2905 */
 2906 
 2907 inst  mvt  -nt "9 to 6 bit chars"
 2908            -fc  ;
 2909 
 2910 desc 1  -ns 28
 2911         -cn 2  ;
 2912 
 2913 desc 2  -ns 50
 2914         -cn 5
 2915         -ta 6  ;
 2916 
 2917 data 1  -do 4068
 2918         "  " (6) 000001002003004005006007010 ;
 2919 
 2920 data 2  -do 20
 2921         000000000060 (3) 616263414243440060  (7) 202020  20  ;
 2922 
 2923 data 3  "0123abcd"  (24) 000  020  ;
 2924 
 2925 page -all;
 2926 
 2927 
 2928 
 2929 
 2930 /*   mvt 18
 2931 *
 2932 *  Test translation of 9 to 6 bit characters.
 2933 *  L1 is greater than L2.  Truncation fault is not taken.
 2934 *
 2935 */
 2936 
 2937 inst  mvt  -nt  "truncation but no fault"
 2938            -ir tn  ;
 2939 
 2940 
 2941 desc 1  -ns 50
 2942         -cn 2  ;
 2943 
 2944 desc 2  -ns 28
 2945         -cn 5
 2946         -ta 6  ;
 2947 
 2948 data 1  -do 4068
 2949         "  " (6) 000001002003004005006007010 ;
 2950 
 2951 data 2  -do 20
 2952         000000000060 (3) 616263414243440060  ;
 2953 
 2954 data 3  "0123abcd"  (24) 000  020  ;
 2955 
 2956 page -all;
 2957 
 2958 
 2959 
 2960 
 2961 /*   mvt 19
 2962 *
 2963 *  Test translation of 6 bit to 9 bit characters.  Only direct
 2964 *  descriptors with no modification are used.
 2965 *  This test has no truncation.
 2966 *
 2967 */
 2968 
 2969 inst  mvt  -nt "6-9 bit. no truncation"
 2970            -fc   ;
 2971 
 2972 desc 1  -ns 63
 2973         -cn 3
 2974         -ta 6  ;
 2975 
 2976 desc 2  -ns 63 ;
 2977 
 2978 data 1  -do -20
 2979         000000  (7)  000102030405060710  ;
 2980 
 2981 data 2  -do -28
 2982         (7)  141142143144060061062063000  ;
 2983 
 2984 data 3  "abcd0123"  (24) 000  040  ;
 2985 
 2986 page -all;
 2987 
 2988 
 2989 
 2990 /*   mvt 20
 2991 *
 2992 *  Test translation of 6 bit to 9 bit characters.
 2993 *  L1 is less than L2.  String 2 is blank filled.
 2994 *
 2995 */
 2996 
 2997 inst  mvt  -nt "6-9 bit. blank fill"
 2998            -fc   ;
 2999 
 3000 desc 1  -ns 29
 3001         -cn 3
 3002         -ta 6  ;
 3003 
 3004 desc 2  -ns 63 ;
 3005 
 3006 data 1  -do -20
 3007         000000  (7)  000102030405060710  ;
 3008 
 3009 data 2  -do -28
 3010         (3)  141142143144060061062063000  141142  (34) 040  ;
 3011 
 3012 data 3  "abcd0123"  (24) 000  040  ;
 3013 
 3014 page -all;
 3015 
 3016 
 3017 
 3018 /*   mvt 21
 3019 *
 3020 *  Test translation of 6 bit to 9 bit characters.
 3021 *  L1 is greater than L2.  Truncation fault is not taken.
 3022 *
 3023 */
 3024 
 3025 inst  mvt  -nt "6-9 bit. truncation"
 3026            -ir tn
 3027            -fc   ;
 3028 
 3029 desc 1  -ns 63
 3030         -cn 3
 3031         -ta 6  ;
 3032 
 3033 desc 2  -ns 29 ;
 3034 
 3035 data 1  -do -20
 3036         000000  (7)  000102030405060710  ;
 3037 
 3038 data 2  -do -28
 3039         (3)  141142143144060061062063000  141142  ;
 3040 
 3041 data 3  "abcd0123"  (24) 000  040  ;
 3042 
 3043 page -all;
 3044 
 3045 
 3046 
 3047 /*   mvt 22
 3048 *
 3049 *  Test translation of 4 bit characters. The test is made
 3050 *  with full descriptor modification.  Data is placed across a
 3051 *  page boundary.
 3052 *
 3053 */
 3054 
 3055 inst  mvt  -nt "4 bit char translation"
 3056            -io 1
 3057            -mf1 idb ar reg rl 16
 3058            -mf2 idb ar reg rl 16
 3059            -mf3 ar reg  ;
 3060 
 3061 desc 1  -ta 4 ;
 3062 
 3063 desc 2  -ta 4 ;
 3064 
 3065 data 1  -do -4  (2) 002215053176  ;
 3066 
 3067 data 2  -do -4  (2) 002215053176  ;
 3068 
 3069 data 3  000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017  ;
 3070 
 3071 page -all;
 3072 
 3073 
 3074 ^L
 3075 
 3076 
 3077 /*                  mve1
 3078 *
 3079 *         Move  6  (9 bit) characters with zero -> "*" replacement.
 3080 *         All the fields including the  micro op string will take faults
 3081 *         and cross a page boundary.
 3082 */
 3083 
 3084 inst      mve       -nt  "zero rep, mod, faults"  -io 3
 3085           -mf1      idb ar reg  rl 6
 3086           -mf2      idb ar reg  rl 2
 3087           -mf3      idb ar reg  rl 6;
 3088 
 3089 /*        No desc statements needed.  */
 3090 
 3091 data 1    -do -4    "0010" "23";
 3092 
 3093 data 2    -do -1    124                 /*  mvza 4 */
 3094                     322;                /*   mvc 2 */
 3095 
 3096 data 3    -do -3    "**1" "023";
 3097 
 3098 
 3099 page      -all;
 3100 /*                  mve2
 3101 
 3102 *         this test uses a sequence of micro op strings
 3103 *         that are appropriate for alpha numeric data.
 3104 *         each string is input to et such that it is
 3105 *         explained via a comment after each mop.
 3106 *         this particular mop sequence and the sending string is
 3107 *         used for all 6 and 9 bit tests with mod done
 3108 *         on descriptor access and data placement.
 3109 *
 3110 */
 3111 
 3112 inst      mve -nt "9-9 simple test with no mod"
 3113           -mf3      rl 31;
 3114 
 3115 desc 1    -ns 27;
 3116 
 3117 desc 2    -ns 26;
 3118 
 3119 
 3120 data 1    /* arranged according mop use */
 3121           "0012"
 3122           "0012"
 3123           "0012"
 3124           "1234"
 3125           "4567"
 3126           "-123"
 3127           "123";
 3128 
 3129 data 2     /* mops arranged in order */
 3130           104       /* mvzb */
 3131           060       /* ses es reset */
 3132           124       /* mvza */
 3133           060       /* ses es reset */
 3134           050       /* enf for $ insert */
 3135           064       /* ses es reset and bz set */
 3136           164       /* mflc */
 3137           200075    /* insb with = */
 3138           060       /* ses es reset */
 3139           220076    /* insa with " not used since es=0 */
 3140           304       /* ign */
 3141           324       /* mvc */
 3142           420 "* +-    "    /* change table with string shown */
 3143           024       /* insm */
 3144           344       /* mses sn is set */
 3145           364;
 3146 
 3147 
 3148 data 3    "  12"
 3149           "**12"
 3150           "$"
 3151           "  $12"
 3152           "="
 3153           "*"
 3154           "4567"
 3155           "****"
 3156           "-123"
 3157           ";;;";
 3158 
 3159 page      -all;
 3160 /*                  mve3
 3161 
 3162 *         this test uses a sequence of micro op strings
 3163 *         that are appropriate for alpha numeric data.
 3164 *         each string is input to et such that it is
 3165 *         explained via a comment after each mop.
 3166 *         this particular mop sequence and the sending string is
 3167 *         used for all 6 and 9 bit tests with mod done
 3168 *         on descriptor access and data placement.
 3169 *
 3170 */
 3171 
 3172 inst      mve -nt "9-9offset inst. and desc mod"     -io 2
 3173           -mf1      ida ar
 3174           -mf2      reg
 3175           -mf3      rl 31;
 3176 
 3177 desc 1    -ns 27;
 3178 
 3179 desc 2    -ns 26;
 3180 
 3181 
 3182 data 1    /* arranged according mop use */
 3183           "0012"
 3184           "0012"
 3185           "0012"
 3186           "1234"
 3187           "4567"
 3188           "-123"
 3189           "123";
 3190 
 3191 data 2     /* mops arranged in order */
 3192           104       /* mvzb */
 3193           060       /* ses es reset */
 3194           124       /* mvza */
 3195           060       /* ses es reset */
 3196           050       /* enf for $ insert */
 3197           064       /* ses es reset and bz set */
 3198           164       /* mflc */
 3199           200075    /* insb with = */
 3200           060       /* ses es reset */
 3201           220076    /* insa with " not used since es=0 */
 3202           304       /* ign */
 3203           324       /* mvc */
 3204           420 "* +-    "    /* change table with string shown */
 3205           024       /* insm */
 3206           344       /* mses sn is set */
 3207           364;     /* mors */
 3208 
 3209 
 3210 data 3    "  12"
 3211           "**12"
 3212           "$"
 3213           "  $12"
 3214           "="
 3215           "*"
 3216           "4567"
 3217           "****"
 3218           "-123"
 3219           ";;;";
 3220 
 3221 page      -all;
 3222  /*                  mve4
 3223 
 3224 *         this test uses a sequence of micro op strings
 3225 *         that are appropriate for alpha numeric data.
 3226 *         each string is input to et such that it is
 3227 *         explained via a comment after each mop.
 3228 *         this particular mop sequence and the sending string is
 3229 *         used for all 6 and 9 bit tests with mod done
 3230 *         on descriptor access and data placement.
 3231 *
 3232 */
 3233 
 3234 inst      mve -nt "9-9 off inst desc mod d1 off"     -io 2
 3235           -mf1      ida ar
 3236           -mf2      idb ar
 3237           -mf3      rl 31;
 3238 
 3239 desc 1    -ns 27;
 3240 
 3241 desc 2    -ns 26;
 3242 
 3243 
 3244 data 1    /* arranged according mop use */
 3245           -do -7
 3246           "0012"
 3247           "0012"
 3248           "0012"
 3249           "1234"
 3250           "4567"
 3251           "-123"
 3252           "123";
 3253 
 3254 data 2     /* mops arranged in order */
 3255           104       /* mvzb */
 3256           060       /* ses es reset */
 3257           124       /* mvza */
 3258           060       /* ses es reset */
 3259           050       /* enf for $ insert */
 3260           064       /* ses es reset and bz set */
 3261           164       /* mflc */
 3262           200075    /* insb with = */
 3263           060       /* ses es reset */
 3264           220076    /* insa with " not used since es=0 */
 3265           304       /* ign */
 3266           324       /* mvc */
 3267           420 "* +-    "    /* change table with string shown */
 3268           024       /* insm */
 3269           344       /* mses sn is set */
 3270           364;     /* mors */
 3271 
 3272 
 3273 data 3    "  12"
 3274           "**12"
 3275           "$"
 3276           "  $12"
 3277           "="
 3278           "*"
 3279           "4567"
 3280           "****"
 3281           "-123"
 3282           ";;;";
 3283 
 3284 page      -all;
 3285 
 3286 
 3287 
 3288 
 3289 
 3290 /*                  mve5
 3291 
 3292 *         this test uses a sequence of micro op strings
 3293 *         that are appropriate for alpha numeric data.
 3294 *         each string is input to et such that it is
 3295 *         explained via a comment after each mop.
 3296 *         this particular mop sequence and the sending string is
 3297 *         used for all 6 and 9 bit tests with mod done
 3298 *         on descriptor access and data placement.
 3299 *
 3300 */
 3301 
 3302 inst      mve -nt "9-9 d2 offset d1 offset"     -io 2
 3303           -mf1      ida ar
 3304           -mf2      idb ar
 3305           -mf3      rl 31;
 3306 
 3307 desc 1    -ns 27;
 3308 
 3309 desc 2    -ns 26;
 3310 
 3311 
 3312 data 1    /* arranged according mop use */
 3313           -do -7
 3314           "0012"
 3315           "0012"
 3316           "0012"
 3317           "1234"
 3318           "4567"
 3319           "-123"
 3320           "123";
 3321 
 3322 data 2     /* mops arranged in order */
 3323           -do -13
 3324           104       /* mvzb */
 3325           060       /* ses es reset */
 3326           124       /* mvza */
 3327           060       /* ses es reset */
 3328           050       /* enf for $ insert */
 3329           064       /* ses es reset and bz set */
 3330           164       /* mflc */
 3331           200075    /* insb with = */
 3332           060       /* ses es reset */
 3333           220076    /* insa with " not used since es=0 */
 3334           304       /* ign */
 3335           324       /* mvc */
 3336           420 "* +-    "    /* change table with string shown */
 3337           024       /* insm */
 3338           344       /* mses sn is set */
 3339           364;     /* mors */
 3340 
 3341 
 3342 data 3    "  12"
 3343           "**12"
 3344           "$"
 3345           "  $12"
 3346           "="
 3347           "*"
 3348           "4567"
 3349           "****"
 3350           "-123"
 3351           ";;;";
 3352 
 3353 page      -all;
 3354  /*                  mve6
 3355 
 3356 *         this test uses a sequence of micro op strings
 3357 *         that are appropriate for alpha numeric data.
 3358 *         each string is input to et such that it is
 3359 *         explained via a comment after each mop.
 3360 *         this particular mop sequence and the sending string is
 3361 *         used for all 6 and 9 bit tests with mod done
 3362 *         on descriptor access and data placement.
 3363 *
 3364 */
 3365 
 3366 inst      mve -nt "9-9d3 offset d2 offset d1 offset"     -io 3
 3367           -mf1      ida ar reg
 3368           -mf2      idb ar
 3369           -mf3      rl 31;
 3370 
 3371 desc 1    -ns 27;
 3372 
 3373 desc 2    -ns 26;
 3374 
 3375 
 3376 data 1    /* arranged according mop use */
 3377           -do -7
 3378           "0012"
 3379           "0012"
 3380           "0012"
 3381           "1234"
 3382           "4567"
 3383           "-123"
 3384           "123";
 3385 
 3386 data 2     /* mops arranged in order */
 3387           -do -13
 3388           104       /* mvzb */
 3389           060       /* ses es reset */
 3390           124       /* mvza */
 3391           060       /* ses es reset */
 3392           050       /* enf for $ insert */
 3393           064       /* ses es reset and bz set */
 3394           164       /* mflc */
 3395           200075    /* insb with = */
 3396           060       /* ses es reset */
 3397           220076    /* insa with " not used since es=0 */
 3398           304       /* ign */
 3399           324       /* mvc */
 3400           420 "* +-    "    /* change table with string shown */
 3401           024       /* insm */
 3402           344       /* mses sn is set */
 3403           364;     /* mors */
 3404 
 3405 
 3406 data 3    -do -28
 3407           "  12"
 3408           "**12"
 3409           "$"
 3410           "  $12"
 3411           "="
 3412           "*"
 3413           "4567"
 3414           "****"
 3415           "-123"
 3416           ";;;";
 3417 
 3418 page      -all;
 3419 
 3420 /*                  mve7
 3421 
 3422 *         this test uses a sequence of micro op strings
 3423 *         that are appropriate for alpha numeric data.
 3424 *         each string is input to et such that it is
 3425 *         explained via a comment after each mop.
 3426 *         this particular mop sequence and the sending string is
 3427 *         used for all 6 and 9 bit tests with mod done
 3428 *         on descriptor access and data placement.
 3429 *
 3430 */
 3431 
 3432 inst      mve -nt "9-9data 1 totally on p0"     -io 3
 3433           -mf1      ida ar reg rl 27
 3434           -mf2      idb ar
 3435           -mf3      ar reg rl 31;
 3436 
 3437 
 3438 desc 2    -ns 26;
 3439 
 3440 
 3441 data 1    /* arranged according mop use */
 3442           -do -27
 3443           "0012"
 3444           "0012"
 3445           "0012"
 3446           "1234"
 3447           "4567"
 3448           "-123"
 3449           "123";
 3450 
 3451 data 2     /* mops arranged in order */
 3452           -do -13
 3453           104       /* mvzb */
 3454           060       /* ses es reset */
 3455           124       /* mvza */
 3456           060       /* ses es reset */
 3457           050       /* enf for $ insert */
 3458           064       /* ses es reset and bz set */
 3459           164       /* mflc */
 3460           200075    /* insb with = */
 3461           060       /* ses es reset */
 3462           220076    /* insa with " not used since es=0 */
 3463           304       /* ign */
 3464           324       /* mvc */
 3465           420 "* +-    "    /* change table with string shown */
 3466           024       /* insm */
 3467           344       /* mses sn is set */
 3468           364;     /* mors */
 3469 
 3470 
 3471 data 3    -do 30
 3472           "  12"
 3473           "**12"
 3474           "$"
 3475           "  $12"
 3476           "="
 3477           "*"
 3478           "4567"
 3479           "****"
 3480           "-123"
 3481           ";;;";
 3482 
 3483 page      -all;
 3484  /*                  mve8
 3485 
 3486 *         this test uses a sequence of micro op strings
 3487 *         that are appropriate for alpha numeric data.
 3488 *         each string is input to et such that it is
 3489 *         explained via a comment after each mop.
 3490 *         this particular mop sequence and the sending string is
 3491 *         used for all 6 and 9 bit tests with mod done
 3492 *         on descriptor access and data placement.
 3493 *
 3494 */
 3495 
 3496 inst      mve -nt "9-9data 2 totally on p0"     -io 3
 3497           -mf1      ida ar reg rl 27
 3498           -mf2      idb ar rl 26
 3499           -mf3      ar reg rl 31;
 3500 
 3501 
 3502            /* no desc needed */
 3503 
 3504 
 3505 data 1    /* arranged according mop use */
 3506           -do -27
 3507           "0012"
 3508           "0012"
 3509           "0012"
 3510           "1234"
 3511           "4567"
 3512           "-123"
 3513           "123";
 3514 
 3515 data 2     /* mops arranged in order */
 3516           -do -26
 3517           104       /* mvzb */
 3518           060       /* ses es reset */
 3519           124       /* mvza */
 3520           060       /* ses es reset */
 3521           050       /* enf for $ insert */
 3522           064       /* ses es reset and bz set */
 3523           164       /* mflc */
 3524           200075    /* insb with = */
 3525           060       /* ses es reset */
 3526           220076    /* insa with " not used since es=0 */
 3527           304       /* ign */
 3528           324       /* mvc */
 3529           420 "* +-    "    /* change table with string shown */
 3530           024       /* insm */
 3531           344       /* mses sn is set */
 3532           364;     /* mors */
 3533 
 3534 
 3535 data 3    -do 30
 3536           "  12"
 3537           "**12"
 3538           "$"
 3539           "  $12"
 3540           "="
 3541           "*"
 3542           "4567"
 3543           "****"
 3544           "-123"
 3545           ";;;";
 3546 
 3547 page      -all;
 3548  /*                  mve9
 3549 
 3550 *         this test uses a sequence of micro op strings
 3551 *         that are appropriate for alpha numeric data.
 3552 *         each string is input to et such that it is
 3553 *         explained via a comment after each mop.
 3554 *         this particular mop sequence and the sending string is
 3555 *         used for all 6 and 9 bit tests with mod done
 3556 *         on descriptor access and data placement.
 3557 *
 3558 */
 3559 
 3560 inst      mve -nt "9-9all data totally on p0"     -io 3
 3561           -mf1      ida ar reg rl 27
 3562           -mf2      idb ar rl 26
 3563           -mf3      ar reg rl 31;
 3564 
 3565 
 3566            /* no desc needed */
 3567 
 3568 
 3569 data 1    /* arranged according mop use */
 3570           -do -27
 3571           "0012"
 3572           "0012"
 3573           "0012"
 3574           "1234"
 3575           "4567"
 3576           "-123"
 3577           "123";
 3578 
 3579 data 2     /* mops arranged in order */
 3580           -do -26
 3581           104       /* mvzb */
 3582           060       /* ses es reset */
 3583           124       /* mvza */
 3584           060       /* ses es reset */
 3585           050       /* enf for $ insert */
 3586           064       /* ses es reset and bz set */
 3587           164       /* mflc */
 3588           200075    /* insb with = */
 3589           060       /* ses es reset */
 3590           220076    /* insa with " not used since es=0 */
 3591           304       /* ign */
 3592           324       /* mvc */
 3593           420 "* +-    "    /* change table with string shown */
 3594           024       /* insm */
 3595           344       /* mses sn is set */
 3596           364;     /* mors */
 3597 
 3598 
 3599 data 3    -do -31
 3600           "  12"
 3601           "**12"
 3602           "$"
 3603           "  $12"
 3604           "="
 3605           "*"
 3606           "4567"
 3607           "****"
 3608           "-123"
 3609           ";;;";
 3610 
 3611 page      -all;
 3612  /*                  mve10
 3613 
 3614 *         this test uses a sequence of micro op strings
 3615 *         that are appropriate for alpha numeric data.
 3616 *         each string is input to et such that it is
 3617 *         explained via a comment after each mop.
 3618 *         this particular mop sequence and the sending string is
 3619 *         used for all 6 and 9 bit tests with mod done
 3620 *         on descriptor access and data placement.
 3621 *
 3622 */
 3623 
 3624 inst      mve -nt "9-9 all data  on p0 all mod"     -io 3
 3625           -mf1      idb ar reg rl 27
 3626           -mf2      idb ar reg rl 26
 3627           -mf3      ar reg rl 31;
 3628 
 3629 
 3630            /* no desc needed */
 3631 
 3632 
 3633 data 1    /* arranged according mop use */
 3634           -do -27
 3635           "0012"
 3636           "0012"
 3637           "0012"
 3638           "1234"
 3639           "4567"
 3640           "-123"
 3641           "123";
 3642 
 3643 data 2     /* mops arranged in order */
 3644           -do -26
 3645           104       /* mvzb */
 3646           060       /* ses es reset */
 3647           124       /* mvza */
 3648           060       /* ses es reset */
 3649           050       /* enf for $ insert */
 3650           064       /* ses es reset and bz set */
 3651           164       /* mflc */
 3652           200075    /* insb with = */
 3653           060       /* ses es reset */
 3654           220076    /* insa with " not used since es=0 */
 3655           304       /* ign */
 3656           324       /* mvc */
 3657           420 "* +-    "    /* change table with string shown */
 3658           024       /* insm */
 3659           344       /* mses sn is set */
 3660           364;     /* mors */
 3661 
 3662 
 3663 data 3    -do -31
 3664           "  12"
 3665           "**12"
 3666           "$"
 3667           "  $12"
 3668           "="
 3669           "*"
 3670           "4567"
 3671           "****"
 3672           "-123"
 3673           ";;;";
 3674 
 3675 page      -all;
 3676  /*                  mve11
 3677 
 3678 *         this test uses a sequence of micro op strings
 3679 *         that are appropriate for alpha numeric data.
 3680 *         each string is input to et such that it is
 3681 *         explained via a comment after each mop.
 3682 *         this particular mop sequence and the sending string is
 3683 *         used for all 6 and 9 bit tests with mod done
 3684 *         on descriptor access and data placement.
 3685 *
 3686 */
 3687 
 3688 inst      mve -nt "6-9  simple test with no mod"
 3689           -mf3      rl 31;
 3690 
 3691 desc 1    -ta 6    -ns 27;
 3692 
 3693 desc 2    -ns 26;
 3694 
 3695 desc 3    -ta 9;
 3696 
 3697 
 3698 
 3699 data 1    /* arranged according mop use */
 3700           606061626060616260606162616263646465666752616263616263;
 3701 
 3702 data 2     /* mops arranged in order */
 3703           104       /* mvzb */
 3704           060       /* ses es reset */
 3705           124       /* mvza */
 3706           060       /* ses es reset */
 3707           050       /* enf for $ insert */
 3708           064       /* ses es reset and bz set */
 3709           164       /* mflc */
 3710           200075    /* insb with = */
 3711           060       /* ses es reset */
 3712           220076    /* insa with " not used since es=0 */
 3713           304       /* ign */
 3714           324       /* mvc */
 3715           420 "* +-    "    /* change table with string shown */
 3716           024       /* insm */
 3717           344       /* mses sn is set */
 3718           364;
 3719 
 3720 
 3721 data 3    "  12"
 3722           "**12"
 3723           "$"
 3724           "  $12"
 3725           "="
 3726           "*"
 3727           "4567"
 3728           "****"
 3729           "*123"
 3730           ";;;";
 3731 
 3732 page      -all;
 3733 /*                  mve12
 3734 
 3735 *         this test uses a sequence of micro op strings
 3736 *         that are appropriate for alpha numeric data.
 3737 *         each string is input to et such that it is
 3738 *         explained via a comment after each mop.
 3739 *         this particular mop sequence and the sending string is
 3740 *         used for all 6 and 9 bit tests with mod done
 3741 *         on descriptor access and data placement.
 3742 *
 3743 */
 3744 
 3745 inst      mve -nt "6-9 offset inst. and desc mod"     -io 2
 3746           -mf1      ida ar
 3747           -mf2      reg
 3748           -mf3      rl 31;
 3749 
 3750 desc 1    -ta 6    -ns 27;
 3751 
 3752 desc 2    -ns 26;
 3753 
 3754 
 3755 data 1    /* arranged according mop use */
 3756           606061626060616260606162616263646465666752616263616263;
 3757 
 3758 data 2     /* mops arranged in order */
 3759           104       /* mvzb */
 3760           060       /* ses es reset */
 3761           124       /* mvza */
 3762           060       /* ses es reset */
 3763           050       /* enf for $ insert */
 3764           064       /* ses es reset and bz set */
 3765           164       /* mflc */
 3766           200075    /* insb with = */
 3767           060       /* ses es reset */
 3768           220076    /* insa with " not used since es=0 */
 3769           304       /* ign */
 3770           324       /* mvc */
 3771           420 "* +-    "    /* change table with string shown */
 3772           024       /* insm */
 3773           344       /* mses sn is set */
 3774           364;     /* mors */
 3775 
 3776 
 3777 data 3    "  12"
 3778           "**12"
 3779           "$"
 3780           "  $12"
 3781           "="
 3782           "*"
 3783           "4567"
 3784           "****"
 3785           "*123"
 3786           ";;;";
 3787 
 3788 page      -all;
 3789  /*                  mve13
 3790 
 3791 *         this test uses a sequence of micro op strings
 3792 *         that are appropriate for alpha numeric data.
 3793 *         each string is input to et such that it is
 3794 *         explained via a comment after each mop.
 3795 *         this particular mop sequence and the sending string is
 3796 *         used for all 6 and 9 bit tests with mod done
 3797 *         on descriptor access and data placement.
 3798 *
 3799 */
 3800 
 3801 inst      mve -nt "6-9  desc mod d1 offset"     -io 2
 3802           -mf1      ida ar
 3803           -mf2      idb ar
 3804           -mf3      rl 31;
 3805 
 3806 desc 1    -ta 6    -ns 27;
 3807 
 3808 desc 2    -ns 26;
 3809 
 3810 
 3811 data 1    /* arranged according mop use */
 3812           -do -6
 3813           606061626060616260606162616263646465666752616263616263;
 3814 
 3815 data 2     /* mops arranged in order */
 3816           104       /* mvzb */
 3817           060       /* ses es reset */
 3818           124       /* mvza */
 3819           060       /* ses es reset */
 3820           050       /* enf for $ insert */
 3821           064       /* ses es reset and bz set */
 3822           164       /* mflc */
 3823           200075    /* insb with = */
 3824           060       /* ses es reset */
 3825           220076    /* insa with " not used since es=0 */
 3826           304       /* ign */
 3827           324       /* mvc */
 3828           420 "* +-    "    /* change table with string shown */
 3829           024       /* insm */
 3830           344       /* mses sn is set */
 3831           364;     /* mors */
 3832 
 3833 
 3834 data 3    "  12"
 3835           "**12"
 3836           "$"
 3837           "  $12"
 3838           "="
 3839           "*"
 3840           "4567"
 3841           "****"
 3842           "*123"
 3843           ";;;";
 3844 
 3845 page      -all;
 3846 
 3847 
 3848 
 3849 
 3850 
 3851 /*                  mve14
 3852 
 3853 *         this test uses a sequence of micro op strings
 3854 *         that are appropriate for alpha numeric data.
 3855 *         each string is input to et such that it is
 3856 *         explained via a comment after each mop.
 3857 *         this particular mop sequence and the sending string is
 3858 *         used for all 6 and 9 bit tests with mod done
 3859 *         on descriptor access and data placement.
 3860 *
 3861 */
 3862 
 3863 inst      mve -nt "6-9  d2 offset d1 offset"     -io 2
 3864           -mf1      ida ar
 3865           -mf2      idb ar
 3866           -mf3      rl 31;
 3867 
 3868 desc 1    -ta 6    -ns 27;
 3869 
 3870 desc 2    -ns 26;
 3871 
 3872 
 3873 data 1    /* arranged according mop use */
 3874           -do -6
 3875           606061626060616260606162616263646465666752616263616263;
 3876 
 3877 data 2     /* mops arranged in order */
 3878           -do -13
 3879           104       /* mvzb */
 3880           060       /* ses es reset */
 3881           124       /* mvza */
 3882           060       /* ses es reset */
 3883           050       /* enf for $ insert */
 3884           064       /* ses es reset and bz set */
 3885           164       /* mflc */
 3886           200075    /* insb with = */
 3887           060       /* ses es reset */
 3888           220076    /* insa with " not used since es=0 */
 3889           304       /* ign */
 3890           324       /* mvc */
 3891           420 "* +-    "    /* change table with string shown */
 3892           024       /* insm */
 3893           344       /* mses sn is set */
 3894           364;     /* mors */
 3895 
 3896 
 3897 data 3    "  12"
 3898           "**12"
 3899           "$"
 3900           "  $12"
 3901           "="
 3902           "*"
 3903           "4567"
 3904           "****"
 3905           "*123"
 3906           ";;;";
 3907 
 3908 page      -all;
 3909  /*                  mve15
 3910 
 3911 *         this test uses a sequence of micro op strings
 3912 *         that are appropriate for alpha numeric data.
 3913 *         each string is input to et such that it is
 3914 *         explained via a comment after each mop.
 3915 *         this particular mop sequence and the sending string is
 3916 *         used for all 6 and 9 bit tests with mod done
 3917 *         on descriptor access and data placement.
 3918 *
 3919 */
 3920 
 3921 inst      mve -nt "6-9 d3 offset and d2 and d1"     -io 3
 3922           -mf1      ida ar reg
 3923           -mf2      idb ar
 3924           -mf3      rl 31;
 3925 
 3926 desc 1    -ta 6    -ns 27;
 3927 
 3928 desc 2    -ns 26;
 3929 
 3930 
 3931 data 1    /* arranged according mop use */
 3932           -do -6
 3933           606061626060616260606162616263646465666752616263616263;
 3934 
 3935 data 2     /* mops arranged in order */
 3936           -do -13
 3937           104       /* mvzb */
 3938           060       /* ses es reset */
 3939           124       /* mvza */
 3940           060       /* ses es reset */
 3941           050       /* enf for $ insert */
 3942           064       /* ses es reset and bz set */
 3943           164       /* mflc */
 3944           200075    /* insb with = */
 3945           060       /* ses es reset */
 3946           220076    /* insa with " not used since es=0 */
 3947           304       /* ign */
 3948           324       /* mvc */
 3949           420 "* +-    "    /* change table with string shown */
 3950           024       /* insm */
 3951           344       /* mses sn is set */
 3952           364;     /* mors */
 3953 
 3954 
 3955 data 3    -do -28
 3956           "  12"
 3957           "**12"
 3958           "$"
 3959           "  $12"
 3960           "="
 3961           "*"
 3962           "4567"
 3963           "****"
 3964           "*123"
 3965           ";;;";
 3966 
 3967 page      -all;
 3968 
 3969 /*                  mve16
 3970 
 3971 *         this test uses a sequence of micro op strings
 3972 *         that are appropriate for alpha numeric data.
 3973 *         each string is input to et such that it is
 3974 *         explained via a comment after each mop.
 3975 *         this particular mop sequence and the sending string is
 3976 *         used for all 6 and 9 bit tests with mod done
 3977 *         on descriptor access and data placement.
 3978 *
 3979 */
 3980 
 3981 inst      mve -nt "6-9 data 1 totally on p0"     -io 3
 3982           -mf1      ida ar reg rl 27
 3983           -mf2      idb ar
 3984           -mf3      ar reg rl 31;
 3985 
 3986 
 3987 desc 1    -ta 6;
 3988 
 3989 desc 2    -ns 26;
 3990 
 3991 
 3992 data 1    /* arranged according mop use */
 3993           -do -28
 3994           606061626060616260606162616263646465666752616263616263;
 3995 
 3996 data 2     /* mops arranged in order */
 3997           -do -13
 3998           104       /* mvzb */
 3999           060       /* ses es reset */
 4000           124       /* mvza */
 4001           060       /* ses es reset */
 4002           050       /* enf for $ insert */
 4003           064       /* ses es reset and bz set */
 4004           164       /* mflc */
 4005           200075    /* insb with = */
 4006           060       /* ses es reset */
 4007           220076    /* insa with " not used since es=0 */
 4008           304       /* ign */
 4009           324       /* mvc */
 4010           420 "* +-    "    /* change table with string shown */
 4011           024       /* insm */
 4012           344       /* mses sn is set */
 4013           364;     /* mors */
 4014 
 4015 
 4016 data 3    -do 30
 4017           "  12"
 4018           "**12"
 4019           "$"
 4020           "  $12"
 4021           "="
 4022           "*"
 4023           "4567"
 4024           "****"
 4025           "*123"
 4026           ";;;";
 4027 
 4028 page      -all;
 4029   /*                  mve17
 4030 
 4031 *         this test uses a sequence of micro op strings
 4032 *         that are appropriate for alpha numeric data.
 4033 *         each string is input to et such that it is
 4034 *         explained via a comment after each mop.
 4035 *         this particular mop sequence and the sending string is
 4036 *         used for all 6 and 9 bit tests with mod done
 4037 *         on descriptor access and data placement.
 4038 *
 4039 */
 4040 
 4041 inst      mve -nt "6-9 data 2 totally on p0"     -io 3
 4042           -mf1      ida ar reg rl 27
 4043           -mf2      idb ar rl 26
 4044           -mf3      ar reg rl 31;
 4045 
 4046 
 4047 desc 1    -ta 6;
 4048 
 4049 
 4050 data 1    /* arranged according mop use */
 4051           606061626060616260606162616263646465666752616263616263;
 4052 
 4053 data 2     /* mops arranged in order */
 4054           -do -26
 4055           104       /* mvzb */
 4056           060       /* ses es reset */
 4057           124       /* mvza */
 4058           060       /* ses es reset */
 4059           050       /* enf for $ insert */
 4060           064       /* ses es reset and bz set */
 4061           164       /* mflc */
 4062           200075    /* insb with = */
 4063           060       /* ses es reset */
 4064           220076    /* insa with " not used since es=0 */
 4065           304       /* ign */
 4066           324       /* mvc */
 4067           420 "* +-    "    /* change table with string shown */
 4068           024       /* insm */
 4069           344       /* mses sn is set */
 4070           364;     /* mors */
 4071 
 4072 
 4073 data 3    -do 30
 4074           "  12"
 4075           "**12"
 4076           "$"
 4077           "  $12"
 4078           "="
 4079           "*"
 4080           "4567"
 4081           "****"
 4082           "*123"
 4083           ";;;";
 4084 
 4085 page      -all;
 4086  /*                  mve18
 4087 
 4088 *         this test uses a sequence of micro op strings
 4089 *         that are appropriate for alpha numeric data.
 4090 *         each string is input to et such that it is
 4091 *         explained via a comment after each mop.
 4092 *         this particular mop sequence and the sending string is
 4093 *         used for all 6 and 9 bit tests with mod done
 4094 *         on descriptor access and data placement.
 4095 *
 4096 */
 4097 
 4098 inst      mve -nt "6-9 all data totally on p0"     -io 3
 4099           -mf1      ida ar reg rl 27
 4100           -mf2      idb ar rl 26
 4101           -mf3      ar reg rl 31;
 4102 
 4103 
 4104 desc 1    -ta 6;
 4105 
 4106 
 4107 data 1    /* arranged according mop use */
 4108           -do -28
 4109           606061626060616260606162616263646465666752616263616263;
 4110 
 4111 data 2     /* mops arranged in order */
 4112           -do -26
 4113           104       /* mvzb */
 4114           060       /* ses es reset */
 4115           124       /* mvza */
 4116           060       /* ses es reset */
 4117           050       /* enf for $ insert */
 4118           064       /* ses es reset and bz set */
 4119           164       /* mflc */
 4120           200075    /* insb with = */
 4121           060       /* ses es reset */
 4122           220076    /* insa with " not used since es=0 */
 4123           304       /* ign */
 4124           324       /* mvc */
 4125           420 "* +-    "    /* change table with string shown */
 4126           024       /* insm */
 4127           344       /* mses sn is set */
 4128           364;     /* mors */
 4129 
 4130 
 4131 data 3    -do -31
 4132           "  12"
 4133           "**12"
 4134           "$"
 4135           "  $12"
 4136           "="
 4137           "*"
 4138           "4567"
 4139           "****"
 4140           "*123"
 4141           ";;;";
 4142 
 4143 page      -all;
 4144  /*                  mve19
 4145 
 4146 *         this test uses a sequence of micro op strings
 4147 *         that are appropriate for alpha numeric data.
 4148 *         each string is input to et such that it is
 4149 *         explained via a comment after each mop.
 4150 *         this particular mop sequence and the sending string is
 4151 *         used for all 6 and 9 bit tests with mod done
 4152 *         on descriptor access and data placement.
 4153 *
 4154 */
 4155 
 4156 inst      mve -nt "6-9 all data  on p0 all mod"     -io 3
 4157           -mf1      idb ar reg rl 27
 4158           -mf2      idb ar reg rl 26
 4159           -mf3      ar reg rl 31;
 4160 
 4161 
 4162 desc 1    -ta 6;
 4163 
 4164 
 4165 data 1    /* arranged according mop use */
 4166           -do -28
 4167           606061626060616260606162616263646465666752616263616263;
 4168 
 4169 data 2     /* mops arranged in order */
 4170           -do -26
 4171           104       /* mvzb */
 4172           060       /* ses es reset */
 4173           124       /* mvza */
 4174           060       /* ses es reset */
 4175           050       /* enf for $ insert */
 4176           064       /* ses es reset and bz set */
 4177           164       /* mflc */
 4178           200075    /* insb with = */
 4179           060       /* ses es reset */
 4180           220076    /* insa with " not used since es=0 */
 4181           304       /* ign */
 4182           324       /* mvc */
 4183           420 "* +-    "    /* change table with string shown */
 4184           024       /* insm */
 4185           344       /* mses sn is set */
 4186           364;     /* mors */
 4187 
 4188 
 4189 data 3    -do -31
 4190           "  12"
 4191           "**12"
 4192           "$"
 4193           "  $12"
 4194           "="
 4195           "*"
 4196           "4567"
 4197           "****"
 4198           "*123"
 4199           ";;;";
 4200 
 4201 page      -all;
 4202  /*                  mve20
 4203 
 4204 *         this test uses a sequence of micro op strings
 4205 *         that are appropriate for alpha numeric data.
 4206 *         each string is input to et such that it is
 4207 *         explained via a comment after each mop.
 4208 *         this particular mop sequence and the sending string is
 4209 *         used for all 6 and 9 bit tests with mod done
 4210 *         on descriptor access and data placement.
 4211 *
 4212 */
 4213 
 4214 inst      mve -nt "9-6  simple test with no mod"
 4215           -mf3      rl 31;
 4216 
 4217 desc 1    -ns 27;
 4218 
 4219 desc 2         -ns 26;
 4220 
 4221 desc 3    -ta 6;
 4222 
 4223 
 4224 
 4225 data 1    /* arranged according mop use */
 4226           "0012"
 4227           "0012"
 4228           "0012"
 4229           "1234"
 4230           "4567"
 4231           "-123"
 4232           "123";
 4233 
 4234 data 2     /* mops arranged in order */
 4235           /* change table and mvzb */ 420020054060052053073033000 104
 4236           060       /* ses es reset */
 4237           124       /* mvza */
 4238           060       /* ses es reset */
 4239           050       /* enf for $ insert */
 4240           064       /* ses es reset and bz set */
 4241           164       /* mflc */
 4242           200075    /* insb with = */
 4243           060       /* ses es reset */
 4244           220076    /* insa with " not used since es=0 */
 4245           304       /* ign */
 4246           324       /* mvc */
 4247           024       /* insm */
 4248           344       /* mses sn is set */
 4249           364;
 4250 
 4251 
 4252 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4253 
 4254 page      -all;
 4255 /*                  mve21
 4256 
 4257 *         this test uses a sequence of micro op strings
 4258 *         that are appropriate for alpha numeric data.
 4259 *         each string is input to et such that it is
 4260 *         explained via a comment after each mop.
 4261 *         this particular mop sequence and the sending string is
 4262 *         used for all 6 and 9 bit tests with mod done
 4263 *         on descriptor access and data placement.
 4264 *
 4265 */
 4266 
 4267 inst      mve -nt "9-6 offset inst. and desc mod"     -io 2
 4268           -mf1      ida ar
 4269           -mf2      reg
 4270           -mf3      rl 31;
 4271 
 4272 desc 1    -ns 27;
 4273 
 4274 desc 2         -ns 26;
 4275 
 4276 desc 3    -ta 6;
 4277 
 4278 data 1    /* arranged according mop use */
 4279           "0012"
 4280           "0012"
 4281           "0012"
 4282           "1234"
 4283           "4567"
 4284           "-123"
 4285           "123";
 4286 
 4287 data 2     /* mops arranged in order */
 4288           /* change table and mvzb */ 420020054060052053073033000 104
 4289           060       /* ses es reset */
 4290           124       /* mvza */
 4291           060       /* ses es reset */
 4292           050       /* enf for $ insert */
 4293           064       /* ses es reset and bz set */
 4294           164       /* mflc */
 4295           200075    /* insb with = */
 4296           060       /* ses es reset */
 4297           220076    /* insa with " not used since es=0 */
 4298           304       /* ign */
 4299           324       /* mvc */
 4300           024       /* insm */
 4301           344       /* mses sn is set */
 4302           364;     /* mors */
 4303 
 4304 
 4305 
 4306 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4307 page      -all;
 4308 
 4309  /*                  mve22
 4310 
 4311 *         this test uses a sequence of micro op strings
 4312 *         that are appropriate for alpha numeric data.
 4313 *         each string is input to et such that it is
 4314 *         explained via a comment after each mop.
 4315 *         this particular mop sequence and the sending string is
 4316 *         used for all 6 and 9 bit tests with mod done
 4317 *         on descriptor access and data placement.
 4318 *
 4319 */
 4320 
 4321 inst      mve -nt "9-6  desc mod d1 offset"     -io 2
 4322           -mf1      ida ar
 4323           -mf2      idb ar
 4324           -mf3      rl 31;
 4325 
 4326 desc 1    -ns 27;
 4327 
 4328 desc 2         -ns 26;
 4329 
 4330 desc 3    -ta 6;
 4331 
 4332 
 4333 data 1    /* arranged according mop use */
 4334           -do -7
 4335           "0012"
 4336           "0012"
 4337           "0012"
 4338           "1234"
 4339           "4567"
 4340           "-123"
 4341           "123";
 4342 
 4343 data 2     /* mops arranged in order */
 4344           /* change table and mvzb */ 420020054060052053073033000 104
 4345           060       /* ses es reset */
 4346           124       /* mvza */
 4347           060       /* ses es reset */
 4348           050       /* enf for $ insert */
 4349           064       /* ses es reset and bz set */
 4350           164       /* mflc */
 4351           200075    /* insb with = */
 4352           060       /* ses es reset */
 4353           220076    /* insa with " not used since es=0 */
 4354           304       /* ign */
 4355           324       /* mvc */
 4356           024       /* insm */
 4357           344       /* mses sn is set */
 4358           364;     /* mors */
 4359 
 4360 
 4361 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4362 
 4363 page      -all;
 4364 
 4365 
 4366 
 4367 
 4368 
 4369 /*                  mve23
 4370 
 4371 *         this test uses a sequence of micro op strings
 4372 *         that are appropriate for alpha numeric data.
 4373 *         each string is input to et such that it is
 4374 *         explained via a comment after each mop.
 4375 *         this particular mop sequence and the sending string is
 4376 *         used for all 6 and 9 bit tests with mod done
 4377 *         on descriptor access and data placement.
 4378 *
 4379 */
 4380 
 4381 inst      mve -nt "9-6  d2 offset d1 offset"     -io 2
 4382           -mf1      ida ar
 4383           -mf2      idb ar
 4384           -mf3      rl 31;
 4385 
 4386 desc 1    -ns 27;
 4387 
 4388 desc 2         -ns 26;
 4389 
 4390 desc 3    -ta 6;
 4391 
 4392 
 4393 data 1    /* arranged according mop use */
 4394           -do -7
 4395           "0012"
 4396           "0012"
 4397           "0012"
 4398           "1234"
 4399           "4567"
 4400           "-123"
 4401           "123";
 4402 
 4403 data 2     /* mops arranged in order */
 4404           -do -13
 4405           /* change table and mvzb */ 420020054060052053073033000 104
 4406           060       /* ses es reset */
 4407           124       /* mvza */
 4408           060       /* ses es reset */
 4409           050       /* enf for $ insert */
 4410           064       /* ses es reset and bz set */
 4411           164       /* mflc */
 4412           200075    /* insb with = */
 4413           060       /* ses es reset */
 4414           220076    /* insa with " not used since es=0 */
 4415           304       /* ign */
 4416           324       /* mvc */
 4417           024       /* insm */
 4418           344       /* mses sn is set */
 4419           364;     /* mors */
 4420 
 4421 
 4422 data 3    20206162545461625320205361627554646566672020202055616263616263;
 4423 
 4424 page      -all;
 4425  /*                  mve24
 4426 
 4427 *         this test uses a sequence of micro op strings
 4428 *         that are appropriate for alpha numeric data.
 4429 *         each string is input to et such that it is
 4430 *         explained via a comment after each mop.
 4431 *         this particular mop sequence and the sending string is
 4432 *         used for all 6 and 9 bit tests with mod done
 4433 *         on descriptor access and data placement.
 4434 *
 4435 */
 4436 
 4437 inst      mve -nt "9-6 d3 offset d2 and d1"     -io 3
 4438           -mf1      ida ar reg
 4439           -mf2      idb ar
 4440           -mf3      rl 31;
 4441 
 4442 desc 1    -ns 27;
 4443 
 4444 desc 2         -ns 26;
 4445 
 4446 desc 3    -ta 6;
 4447 
 4448 
 4449 data 1    /* arranged according mop use */
 4450           -do -7
 4451           "0012"
 4452           "0012"
 4453           "0012"
 4454           "1234"
 4455           "4567"
 4456           "-123"
 4457           "123";
 4458 
 4459 data 2     /* mops arranged in order */
 4460           -do -13
 4461           /* change table and mvzb */ 420020054060052053073033000 104
 4462           060       /* ses es reset */
 4463           124       /* mvza */
 4464           060       /* ses es reset */
 4465           050       /* enf for $ insert */
 4466           064       /* ses es reset and bz set */
 4467           164       /* mflc */
 4468           200075    /* insb with = */
 4469           060       /* ses es reset */
 4470           220076    /* insa with " not used since es=0 */
 4471           304       /* ign */
 4472           324       /* mvc */
 4473           024       /* insm */
 4474           344       /* mses sn is set */
 4475           364;     /* mors */
 4476 
 4477 
 4478 data 3    -do -28
 4479           20206162545461625320205361627554646566672020202055616263616263;
 4480 
 4481 page      -all;
 4482 
 4483 /*                  mve25
 4484 
 4485 *         this test uses a sequence of micro op strings
 4486 *         that are appropriate for alpha numeric data.
 4487 *         each string is input to et such that it is
 4488 *         explained via a comment after each mop.
 4489 *         this particular mop sequence and the sending string is
 4490 *         used for all 6 and 9 bit tests with mod done
 4491 *         on descriptor access and data placement.
 4492 *
 4493 */
 4494 
 4495 inst      mve -nt "9-6 data 1 totally on p0"     -io 3
 4496           -mf1      ida ar reg rl 27
 4497           -mf2      idb ar
 4498           -mf3      ar reg rl 31;
 4499 
 4500 
 4501 desc 2         -ns 26;
 4502 
 4503 desc 3    -ta 6;
 4504 
 4505 
 4506 data 1    /* arranged according mop use */
 4507           -do -27
 4508           "0012"
 4509           "0012"
 4510           "0012"
 4511           "1234"
 4512           "4567"
 4513           "-123"
 4514           "123";
 4515 
 4516 data 2     /* mops arranged in order */
 4517           -do -13
 4518           /* change table and mvzb */ 420020054060052053073033000 104
 4519           060       /* ses es reset */
 4520           124       /* mvza */
 4521           060       /* ses es reset */
 4522           050       /* enf for $ insert */
 4523           064       /* ses es reset and bz set */
 4524           164       /* mflc */
 4525           200075    /* insb with = */
 4526           060       /* ses es reset */
 4527           220076    /* insa with " not used since es=0 */
 4528           304       /* ign */
 4529           324       /* mvc */
 4530           024       /* insm */
 4531           344       /* mses sn is set */
 4532           364;     /* mors */
 4533 
 4534 
 4535 data 3    -do 30
 4536           20206162545461625320205361627554646566672020202055616263616263;
 4537 
 4538 page      -all;
 4539  /*                  mve26
 4540 
 4541 *         this test uses a sequence of micro op strings
 4542 *         that are appropriate for alpha numeric data.
 4543 *         each string is input to et such that it is
 4544 *         explained via a comment after each mop.
 4545 *         this particular mop sequence and the sending string is
 4546 *         used for all 6 and 9 bit tests with mod done
 4547 *         on descriptor access and data placement.
 4548 *
 4549 */
 4550 
 4551 inst      mve -nt "9-6 data 2 totally on p0"     -io 3
 4552           -mf1      ida ar reg rl 27
 4553           -mf2      idb ar rl 26
 4554           -mf3      ar reg rl 31;
 4555 
 4556 
 4557 desc 3    -ta 6;
 4558 
 4559 
 4560 
 4561 
 4562 
 4563 
 4564 data 1    /* arranged according mop use */
 4565           -do -27
 4566           "0012"
 4567           "0012"
 4568           "0012"
 4569           "1234"
 4570           "4567"
 4571           "-123"
 4572           "123";
 4573 
 4574 data 2     /* mops arranged in order */
 4575           -do -26
 4576           /* change table and mvzb */ 420020054060052053073033000 104
 4577           060       /* ses es reset */
 4578           124       /* mvza */
 4579           060       /* ses es reset */
 4580           050       /* enf for $ insert */
 4581           064       /* ses es reset and bz set */
 4582           164       /* mflc */
 4583           200075    /* insb with = */
 4584           060       /* ses es reset */
 4585           220076    /* insa with " not used since es=0 */
 4586           304       /* ign */
 4587           324       /* mvc */
 4588           024       /* insm */
 4589           344       /* mses sn is set */
 4590           364;     /* mors */
 4591 
 4592 
 4593 data 3    -do -12
 4594           20206162545461625320205361627554646566672020202055616263616263;
 4595 
 4596 page      -all;
 4597  /*                  mve27
 4598 
 4599 *         this test uses a sequence of micro op strings
 4600 *         that are appropriate for alpha numeric data.
 4601 *         each string is input to et such that it is
 4602 *         explained via a comment after each mop.
 4603 *         this particular mop sequence and the sending string is
 4604 *         used for all 6 and 9 bit tests with mod done
 4605 *         on descriptor access and data placement.
 4606 *
 4607 */
 4608 
 4609 inst      mve -nt "9-6 all data totally on p0"
 4610           -mf1      ida ar reg rl 27
 4611           -mf2      idb ar rl 26
 4612           -mf3      ar reg rl 31;
 4613 
 4614 desc 3    -ta 6;
 4615 
 4616 
 4617 
 4618 
 4619 
 4620 
 4621 data 1    /* arranged according mop use */
 4622           -do -27
 4623           "0012"
 4624           "0012"
 4625           "0012"
 4626           "1234"
 4627           "4567"
 4628           "-123"
 4629           "123";
 4630 
 4631 data 2     /* mops arranged in order */
 4632           -do -26
 4633           /* change table and mvzb */ 420020054060052053073033000 104
 4634           060       /* ses es reset */
 4635           124       /* mvza */
 4636           060       /* ses es reset */
 4637           050       /* enf for $ insert */
 4638           064       /* ses es reset and bz set */
 4639           164       /* mflc */
 4640           200075    /* insb with = */
 4641           060       /* ses es reset */
 4642           220076    /* insa with " not used since es=0 */
 4643           304       /* ign */
 4644           324       /* mvc */
 4645           024       /* insm */
 4646           344       /* mses sn is set */
 4647           364;     /* mors */
 4648 
 4649 
 4650 data 3    -do -32
 4651           20206162545461625320205361627554646566672020202055616263616263;
 4652 
 4653 page      -all;
 4654  /*                  mve28
 4655 
 4656 *         this test uses a sequence of micro op strings
 4657 *         that are appropriate for alpha numeric data.
 4658 *         each string is input to et such that it is
 4659 *         explained via a comment after each mop.
 4660 *         this particular mop sequence and the sending string is
 4661 *         used for all 6 and 9 bit tests with mod done
 4662 *         on descriptor access and data placement.
 4663 *
 4664 */
 4665 
 4666 inst      mve -nt "9-6 all data  on p0 all mod"     -io 3
 4667           -mf1      idb ar reg rl 27
 4668           -mf2      idb ar reg rl 26
 4669           -mf3      ar reg rl 31;
 4670 
 4671 desc 3    -ta 6;
 4672 
 4673 
 4674 
 4675 
 4676 
 4677 
 4678 data 1    /* arranged according mop use */
 4679           -do -27
 4680           "0012"
 4681           "0012"
 4682           "0012"
 4683           "1234"
 4684           "4567"
 4685           "-123"
 4686           "123";
 4687 
 4688 data 2     /* mops arranged in order */
 4689           -do -26
 4690           /* change table and mvzb */ 420020054060052053073033000 104
 4691           060       /* ses es reset */
 4692           124       /* mvza */
 4693           060       /* ses es reset */
 4694           050       /* enf for $ insert */
 4695           064       /* ses es reset and bz set */
 4696           164       /* mflc */
 4697           200075    /* insb with = */
 4698           060       /* ses es reset */
 4699           220076    /* insa with " not used since es=0 */
 4700           304       /* ign */
 4701           324       /* mvc */
 4702           024       /* insm */
 4703           344       /* mses sn is set */
 4704           364;     /* mors */
 4705 
 4706 
 4707 data 3    -do -32
 4708           20206162545461625320205361627554646566672020202055616263616263;
 4709 
 4710 page      -all;
 4711  /*                  mve29
 4712 
 4713 *         this test uses a sequence of micro op strings
 4714 *         that are appropriate for alpha numeric data.
 4715 *         each string is input to et such that it is
 4716 *         explained via a comment after each mop.
 4717 *         this particular mop sequence and the sending string is
 4718 *         used for all 6 and 9 bit tests with mod done
 4719 *         on descriptor access and data placement.
 4720 *
 4721 */
 4722 
 4723 inst      mve -nt "6-6  simple test with no mod"
 4724           -mf3      rl 31;
 4725 
 4726 desc 1    -ta 6    -ns 27;
 4727 
 4728 desc 2         -ns 26;
 4729 
 4730 desc 3    -ta 6;
 4731 
 4732 
 4733 
 4734 data 1    /* arranged according mop use */
 4735      000001020000010200000102010203040405060752010203010203;
 4736 data 2     /* mops arranged in order */
 4737           /* change table and mvzb */ 420020054060052053073033000 104
 4738           060       /* ses es reset */
 4739           124       /* mvza */
 4740           060       /* ses es reset */
 4741           050       /* enf for $ insert */
 4742           064       /* ses es reset and bz set */
 4743           164       /* mflc */
 4744           200075    /* insb with = */
 4745           060       /* ses es reset */
 4746           220076    /* insa with " not used since es=0 */
 4747           304       /* ign */
 4748           324       /* mvc */
 4749           024       /* insm */
 4750           344       /* mses sn is set */
 4751           364;
 4752 
 4753 
 4754 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4755 
 4756 page      -all;
 4757 /*                  mve30
 4758 
 4759 *         this test uses a sequence of micro op strings
 4760 *         that are appropriate for alpha numeric data.
 4761 *         each string is input to et such that it is
 4762 *         explained via a comment after each mop.
 4763 *         this particular mop sequence and the sending string is
 4764 *         used for all 6 and 9 bit tests with mod done
 4765 *         on descriptor access and data placement.
 4766 *
 4767 */
 4768 
 4769 inst      mve -nt "6-6 offset inst. and desc mod"     -io 2
 4770           -mf1      ida ar
 4771           -mf2      reg
 4772           -mf3      rl 31;
 4773 
 4774 desc 1      -ta 6    -ns 27;
 4775 
 4776 desc 2         -ns 26;
 4777 
 4778 desc 3    -ta 6;
 4779 
 4780 data 1    /* arranged according mop use */
 4781      000001020000010200000102010203040405060752010203010203;
 4782 data 2     /* mops arranged in order */
 4783           /* change table and mvzb */ 420020054060052053073033000 104
 4784           060       /* ses es reset */
 4785           124       /* mvza */
 4786           060       /* ses es reset */
 4787           050       /* enf for $ insert */
 4788           064       /* ses es reset and bz set */
 4789           164       /* mflc */
 4790           200075    /* insb with = */
 4791           060       /* ses es reset */
 4792           220076    /* insa with " not used since es=0 */
 4793           304       /* ign */
 4794           324       /* mvc */
 4795           024       /* insm */
 4796           344       /* mses sn is set */
 4797           364;     /* mors */
 4798 
 4799 
 4800 
 4801 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4802 page      -all;
 4803 
 4804  /*                  mve31
 4805 
 4806 *         this test uses a sequence of micro op strings
 4807 *         that are appropriate for alpha numeric data.
 4808 *         each string is input to et such that it is
 4809 *         explained via a comment after each mop.
 4810 *         this particular mop sequence and the sending string is
 4811 *         used for all 6 and 9 bit tests with mod done
 4812 *         on descriptor access and data placement.
 4813 *
 4814 */
 4815 
 4816 inst      mve -nt "6-6  desc mod d1 offset"     -io 2
 4817           -mf1      ida ar
 4818           -mf2      idb ar
 4819           -mf3      rl 31;
 4820 
 4821 desc 1      -ta 6    -ns 27;
 4822 
 4823 desc 2         -ns 26;
 4824 
 4825 desc 3    -ta 6;
 4826 
 4827 
 4828 data 1    /* arranged according mop use */
 4829           -do -6
 4830      000001020000010200000102010203040405060752010203010203;
 4831 data 2     /* mops arranged in order */
 4832           /* change table and mvzb */ 420020054060052053073033000 104
 4833           060       /* ses es reset */
 4834           124       /* mvza */
 4835           060       /* ses es reset */
 4836           050       /* enf for $ insert */
 4837           064       /* ses es reset and bz set */
 4838           164       /* mflc */
 4839           200075    /* insb with = */
 4840           060       /* ses es reset */
 4841           220076    /* insa with " not used since es=0 */
 4842           304       /* ign */
 4843           324       /* mvc */
 4844           024       /* insm */
 4845           344       /* mses sn is set */
 4846           364;     /* mors */
 4847 
 4848 
 4849 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4850 
 4851 page      -all;
 4852 
 4853 
 4854 
 4855 
 4856 
 4857 /*                  mve32
 4858 
 4859 *         this test uses a sequence of micro op strings
 4860 *         that are appropriate for alpha numeric data.
 4861 *         each string is input to et such that it is
 4862 *         explained via a comment after each mop.
 4863 *         this particular mop sequence and the sending string is
 4864 *         used for all 6 and 9 bit tests with mod done
 4865 *         on descriptor access and data placement.
 4866 *
 4867 */
 4868 
 4869 inst      mve -nt "6-6  d2 offset d1 offset"     -io 2
 4870           -mf1      ida ar
 4871           -mf2      idb ar
 4872           -mf3      rl 31;
 4873 
 4874 desc 1      -ta 6    -ns 27;
 4875 
 4876 desc 2         -ns 26;
 4877 
 4878 desc 3    -ta 6;
 4879 
 4880 
 4881 data 1    /* arranged according mop use */
 4882           -do -6
 4883      000001020000010200000102010203040405060752010203010203;
 4884 data 2     /* mops arranged in order */
 4885           -do -13
 4886           /* change table and mvzb */ 420020054060052053073033000 104
 4887           060       /* ses es reset */
 4888           124       /* mvza */
 4889           060       /* ses es reset */
 4890           050       /* enf for $ insert */
 4891           064       /* ses es reset and bz set */
 4892           164       /* mflc */
 4893           200075    /* insb with = */
 4894           060       /* ses es reset */
 4895           220076    /* insa with " not used since es=0 */
 4896           304       /* ign */
 4897           324       /* mvc */
 4898           024       /* insm */
 4899           344       /* mses sn is set */
 4900           364;     /* mors */
 4901 
 4902 
 4903 data 3    20200102545401025320205301027554040506072020202052010203616263;
 4904 
 4905 page      -all;
 4906  /*                  mve33
 4907 
 4908 *         this test uses a sequence of micro op strings
 4909 *         that are appropriate for alpha numeric data.
 4910 *         each string is input to et such that it is
 4911 *         explained via a comment after each mop.
 4912 *         this particular mop sequence and the sending string is
 4913 *         used for all 6 and 9 bit tests with mod done
 4914 *         on descriptor access and data placement.
 4915 *
 4916 */
 4917 
 4918 inst      mve -nt "6-6 d3 offset and d1 and d2"     -io 3
 4919           -mf1      ida ar reg
 4920           -mf2      idb ar
 4921           -mf3      rl 31;
 4922 
 4923 desc 1      -ta 6    -ns 27;
 4924 
 4925 desc 2         -ns 26;
 4926 
 4927 desc 3    -ta 6;
 4928 
 4929 
 4930 data 1    /* arranged according mop use */
 4931           -do -6
 4932      000001020000010200000102010203040405060752010203010203;
 4933 data 2     /* mops arranged in order */
 4934           -do -13
 4935           /* change table and mvzb */ 420020054060052053073033000 104
 4936           060       /* ses es reset */
 4937           124       /* mvza */
 4938           060       /* ses es reset */
 4939           050       /* enf for $ insert */
 4940           064       /* ses es reset and bz set */
 4941           164       /* mflc */
 4942           200075    /* insb with = */
 4943           060       /* ses es reset */
 4944           220076    /* insa with " not used since es=0 */
 4945           304       /* ign */
 4946           324       /* mvc */
 4947           024       /* insm */
 4948           344       /* mses sn is set */
 4949           364;     /* mors */
 4950 
 4951 
 4952 data 3    -do -28
 4953           20200102545401025320205301027554040506072020202052010203616263;
 4954 
 4955 page      -all;
 4956 
 4957 /*                  mve34
 4958 
 4959 *         this test uses a sequence of micro op strings
 4960 *         that are appropriate for alpha numeric data.
 4961 *         each string is input to et such that it is
 4962 *         explained via a comment after each mop.
 4963 *         this particular mop sequence and the sending string is
 4964 *         used for all 6 and 9 bit tests with mod done
 4965 *         on descriptor access and data placement.
 4966 *
 4967 */
 4968 
 4969 inst      mve -nt "6-6 data 1 totally on p0"     -io 3
 4970           -mf1      ida ar reg rl 27
 4971           -mf2      idb ar
 4972           -mf3      ar reg rl 31;
 4973 
 4974 
 4975 desc 1    -ta 6;
 4976 desc 2         -ns 26;
 4977 
 4978 desc 3    -ta 6;
 4979 
 4980 
 4981 data 1    /* arranged according mop use */
 4982           -do -28
 4983      000001020000010200000102010203040405060752010203010203;
 4984 data 2     /* mops arranged in order */
 4985           -do -13
 4986           /* change table and mvzb */ 420020054060052053073033000 104
 4987           060       /* ses es reset */
 4988           124       /* mvza */
 4989           060       /* ses es reset */
 4990           050       /* enf for $ insert */
 4991           064       /* ses es reset and bz set */
 4992           164       /* mflc */
 4993           200075    /* insb with = */
 4994           060       /* ses es reset */
 4995           220076    /* insa with " not used since es=0 */
 4996           304       /* ign */
 4997           324       /* mvc */
 4998           024       /* insm */
 4999           344       /* mses sn is set */
 5000           364;     /* mors */
 5001 
 5002 
 5003 data 3    -do 30
 5004           20200102545401025320205301027554040506072020202052010203616263;
 5005 
 5006 page      -all;
 5007  /*                  mve35
 5008 
 5009 *         this test uses a sequence of micro op strings
 5010 *         that are appropriate for alpha numeric data.
 5011 *         each string is input to et such that it is
 5012 *         explained via a comment after each mop.
 5013 *         this particular mop sequence and the sending string is
 5014 *         used for all 6 and 9 bit tests with mod done
 5015 *         on descriptor access and data placement.
 5016 *
 5017 */
 5018 
 5019 inst      mve -nt "6-6 data 2 totally on p0"     -io 3
 5020           -mf1      ida ar reg rl 27
 5021           -mf2      idb ar rl 26
 5022           -mf3      ar reg rl 31;
 5023 
 5024 
 5025 desc 1    -ta 6;
 5026 
 5027 desc 3    -ta 6;
 5028 
 5029 
 5030 
 5031 
 5032 
 5033 
 5034 data 1    /* arranged according mop use */
 5035           -do -28
 5036      000001020000010200000102010203040405060752010203010203;
 5037 data 2     /* mops arranged in order */
 5038           -do -26
 5039           /* change table and mvzb */ 420020054060052053073033000 104
 5040           060       /* ses es reset */
 5041           124       /* mvza */
 5042           060       /* ses es reset */
 5043           050       /* enf for $ insert */
 5044           064       /* ses es reset and bz set */
 5045           164       /* mflc */
 5046           200075    /* insb with = */
 5047           060       /* ses es reset */
 5048           220076    /* insa with " not used since es=0 */
 5049           304       /* ign */
 5050           324       /* mvc */
 5051           024       /* insm */
 5052           344       /* mses sn is set */
 5053           364;     /* mors */
 5054 
 5055 
 5056 data 3    -do -12
 5057           20200102545401025320205301027554040506072020202052010203616263;
 5058 
 5059 page      -all;
 5060  /*                  mve36
 5061 
 5062 *         this test uses a sequence of micro op strings
 5063 *         that are appropriate for alpha numeric data.
 5064 *         each string is input to et such that it is
 5065 *         explained via a comment after each mop.
 5066 *         this particular mop sequence and the sending string is
 5067 *         used for all 6 and 9 bit tests with mod done
 5068 *         on descriptor access and data placement.
 5069 *
 5070 */
 5071 
 5072 inst      mve -nt "6-6 all data totally on p0"
 5073           -mf1      ida ar reg rl 27
 5074           -mf2      idb ar rl 26
 5075           -mf3      ar reg rl 31;
 5076 
 5077 desc 1    -ta 6;
 5078 
 5079 desc 3    -ta 6;
 5080 
 5081 
 5082 
 5083 
 5084 
 5085 
 5086 data 1    /* arranged according mop use */
 5087           -do -28
 5088      000001020000010200000102010203040405060752010203010203;
 5089 data 2     /* mops arranged in order */
 5090           -do -26
 5091           /* change table and mvzb */ 420020054060052053073033000 104
 5092           060       /* ses es reset */
 5093           124       /* mvza */
 5094           060       /* ses es reset */
 5095           050       /* enf for $ insert */
 5096           064       /* ses es reset and bz set */
 5097           164       /* mflc */
 5098           200075    /* insb with = */
 5099           060       /* ses es reset */
 5100           220076    /* insa with " not used since es=0 */
 5101           304       /* ign */
 5102           324       /* mvc */
 5103           024       /* insm */
 5104           344       /* mses sn is set */
 5105           364;     /* mors */
 5106 
 5107 
 5108 data 3    -do -32
 5109           20200102545401025320205301027554040506072020202052010203616263;
 5110 
 5111 page      -all;
 5112  /*                  mve37
 5113 
 5114 *         this test uses a sequence of micro op strings
 5115 *         that are appropriate for alpha numeric data.
 5116 *         each string is input to et such that it is
 5117 *         explained via a comment after each mop.
 5118 *         this particular mop sequence and the sending string is
 5119 *         used for all 6 and 9 bit tests with mod done
 5120 *         on descriptor access and data placement.
 5121 *
 5122 */
 5123 
 5124 inst      mve -nt "6-6 all data  on p0 all mod"     -io 3
 5125           -mf1      idb ar reg rl 27
 5126           -mf2      idb ar reg rl 26
 5127           -mf3      ar reg rl 31;
 5128 
 5129 desc 1     -ta 6;
 5130 
 5131 desc 3    -ta 6;
 5132 
 5133 
 5134 
 5135 
 5136 
 5137 
 5138 data 1    /* arranged according mop use */
 5139           -do -28
 5140      000001020000010200000102010203040405060752010203010203;
 5141 data 2     /* mops arranged in order */
 5142           -do -26
 5143           /* change table and mvzb */ 420020054060052053073033000 104
 5144           060       /* ses es reset */
 5145           124       /* mvza */
 5146           060       /* ses es reset */
 5147           050       /* enf for $ insert */
 5148           064       /* ses es reset and bz set */
 5149           164       /* mflc */
 5150           200075    /* insb with = */
 5151           060       /* ses es reset */
 5152           220076    /* insa with " not used since es=0 */
 5153           304       /* ign */
 5154           324       /* mvc */
 5155           024       /* insm */
 5156           344       /* mses sn is set */
 5157           364;     /* mors */
 5158 
 5159 
 5160 data 3    -do -32
 5161           20200102545401025320205301027554040506072020202052010203616263;
 5162 
 5163 page      -all;
 5164 
 5165 
 5166 ^L
 5167 
 5168 /*                  tct1
 5169 *
 5170 *         Out table will be indexed by the characters  "abcde".   "b" & "e" are the two
 5171 *         non zero entries.  Start off with a simple test
 5172 */
 5173 
 5174 inst      tct       -nt "Simple test";
 5175 
 5176 desc 1    -ns 4;
 5177 
 5178 data 1    "aceb";
 5179 
 5180 data 2    (97) "*"            /* These characters should never be referenced. */
 5181           000                 /* "a" */
 5182           "b"
 5183           000                 /* "c" */
 5184           "d"
 5185           000 ;               /* "e" */
 5186 
 5187 data 3    "b" 000 000 003;
 5188 
 5189 page      -all;
 5190 /*                  tct2
 5191 *
 5192 *         Same as  tct1  only we will move the data fields across page boundaries and
 5193 *         add modification.
 5194 */
 5195 
 5196 inst      tct       -nt  "Same as prev - fields X pg bound" -io 3
 5197           -mf1      rl  4     ar reg idb
 5198           -mf2      ar reg              /* RL and ID mod NOT allowed for descriptors 2 & 3. */
 5199 
 5200           -mf3      reg ar;
 5201 
 5202 data 1    -do -3    "aceb";
 5203 
 5204 data 2    -do -100  (97) "*"            /* These characters should never be referenced. */
 5205           000                 /* "a" */
 5206           "b"
 5207           000                 /* "c" */
 5208           "d"
 5209           000 ;               /* "e" */
 5210 
 5211 data 3    "b" 000 000 003;
 5212 
 5213 page      -all;
 5214 /*                  tct3
 5215 *
 5216 *         Same as  tct2  except  string 1 will be changed  so we will have a
 5217 *         tally runout.
 5218 */
 5219 
 5220 
 5221 inst      tct       -nt  "Test tally runout"      -io 2
 5222           -ir       tr
 5223           -mf1      ar idb reg rl 18
 5224           -mf2      ar reg
 5225           -mf3      ar reg;
 5226 
 5227 data 1    -do -9    (6) "ace";
 5228 
 5229 data 2    -do -100
 5230           (97) "*" 000 "b" 000 "d" 000;
 5231 
 5232 data 3    000 000 000 022;
 5233 
 5234 
 5235 page      -all;
 5236 /*                  tct4
 5237 *
 5238 *         Test using  6  bit characters.  The  -cn  field will specify that the string
 5239 *         starts at the  5th  character of the word (last character).
 5240 */
 5241 
 5242 inst      tct       -nt  "Use 6 bit characters"   -io 1
 5243           -mf1      idb reg ar
 5244           -mf2      reg ar
 5245           -mf3      ar reg;
 5246 
 5247 desc 1    -ns  10   -cn 5     -ta 6;
 5248 
 5249 data 1    -do  -6             /* Test string is  0 1 2 3 4 5 6 7 10 11  */
 5250           0606060606          /* Filler, not part of string, 1st 5 characters of word. */
 5251           010203              /* Page boundary. */
 5252           040506 071011;
 5253 
 5254 data 2    -do -4
 5255           000 000 000 000
 5256           000 000 006 000 000 000;
 5257 
 5258 data 3    -do 4     006 000000 006;
 5259 
 5260 
 5261 page      -all;
 5262 /*                  tct5
 5263 *
 5264 *         The indexes in string 1 will be  4  bit characters.
 5265 */
 5266 
 5267 inst      tct       -nt  "Use 4 bit characters"   -io 2
 5268           -mf1      idb ar reg
 5269           -mf2      ar reg
 5270           -mf3      ar reg;
 5271 
 5272 
 5273 desc 1    -ns 8
 5274           -ta 4     /* 4 bit characters. */
 5275           -cn 2;    /* First 2 characters of word not used.
 5276                     *  This is the first 9 bit character.  */
 5277 
 5278 data 1    -do -2
 5279           000                 /* The first two characters of the word - skipped. */
 5280           001                 /* Characters "0" and "1".  In page 1. */
 5281           043 105 147;        /* "234567" (4 bit)  in page 2. */
 5282 
 5283 data 2    -do -4
 5284           000 000 000 000     /* All in page 1.  Represent index values 0,1,2,3 */
 5285           000 "*" 000 000;    /* In page 2. Correspond to index values 4,5,6,7  */
 5286 
 5287 data 3    "*" 000 000 005;
 5288 
 5289 
 5290 page      -all;
 5291 
 5292 
 5293 
 5294 /*   tct 6
 5295 *
 5296 *  Test loading across three pages.  One character loaded from
 5297 *  page 1 and 3.  Test 6146 characters.  Tally runout indicator
 5298 *  is set.
 5299 */
 5300 
 5301 inst  tct  -nt  "(6 bit)no modif. tally is set"
 5302            -io 1
 5303            -ir tr
 5304            -mf1 rl 6146 ;
 5305 
 5306 desc 1  -cn 5 -ta 6 ;
 5307 
 5308 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5309                 000102030405
 5310                 (128) 000102030405060710111213141516172021222324252627 ;
 5311 
 5312 data 2  -do -4  (24) 000 000 141 ;
 5313 
 5314 data 3          000 000 014 002 ;
 5315 
 5316 page    -all ;
 5317 
 5318 /*   tct 7
 5319 *
 5320 *  Test loading data across three pages.  One character is loaded
 5321 *  from page 1 and 3 with 6146 characters tested.  A nonzero
 5322 *  character is found in the test table.
 5323 */
 5324 
 5325 inst  tct  -nt  "(6 bit)no mod. a nonzero entry"
 5326            -mf1 rl 6146 ;
 5327 
 5328 desc 1  -cn 5 -ta 6 ;
 5329 
 5330 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5331                310102030405
 5332                 (128) 000102030405060710111213141516172021222324252627 ;
 5333 
 5334 data 2  -do -4  (24) 000 000 141 ;
 5335 
 5336 data 3          141 000 006 001 ;
 5337 
 5338 page    -all ;
 5339 
 5340 
 5341 
 5342 /*   tct 8
 5343 *
 5344 *  Test similiar to tct 6.  Test ar, reg, and rl for descriptor 1.
 5345 *
 5346 */
 5347 
 5348 inst  tct  -nt  "(6 bit)ar,reg,rl. tally runout"
 5349            -io 2
 5350            -ir tr
 5351            -mf1 ar reg rl 6146 ;
 5352 
 5353 desc 1  -cn 5 -ta 6 ;
 5354 
 5355 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5356                 000102030405
 5357                 (128) 000102030405060710111213141516172021222324252627 ;
 5358 
 5359 data 2  -do -4  (24) 000 000 141 ;
 5360 
 5361 data 3          000 000 014 002 ;
 5362 
 5363 page    -all ;
 5364 
 5365 
 5366 
 5367 /*   tct 9
 5368 *
 5369 *  Test similiar to tct 7.  Test ar, reg, and rl modification
 5370 *  for descriptor 1.  Test ar and reg modification for descriptor 1 and 2.
 5371 *
 5372 */
 5373 
 5374 inst  tct  -nt  "(6 bit)ar,reg,rl.no tally runout"
 5375            -io 1
 5376            -mf1 ar reg rl 6146
 5377            -mf2 ar reg
 5378            -mf3 ar reg ;
 5379 
 5380 desc 1  -cn 5 -ta 6 ;
 5381 
 5382 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5383                310102030405
 5384                (128) 000102030405060710111213141516172021222324252627 ;
 5385 
 5386 data 2  -do -4  (24) 000 000 141 ;
 5387 
 5388 data 3          141 000 006 001 ;
 5389 
 5390 page    -all ;
 5391 
 5392 
 5393 
 5394 /*   tct 10
 5395 *
 5396 *  Test similiar to tct 6.  Test indirect referencing
 5397 *  of descriptor 1.  Test ar and reg modification for descriptors 2 and 3.
 5398 */
 5399 
 5400 inst  tct  -nt  "(6 bit)test id. tally runout"
 5401            -ir tr
 5402            -mf1 id 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                 000102030405
 5410                 (128) 000102030405060710111213141516172021222324252627 ;
 5411 
 5412 data 2  -do -4  (24) 000 000 141 ;
 5413 
 5414 data 3          000 000 014 002 ;
 5415 
 5416 page    -all ;
 5417 
 5418 
 5419 
 5420 
 5421 /*   tct 11
 5422 *
 5423 *  Test similiar to tct 7.  Test indirect referencing of
 5424 *  descriptor 1.
 5425 *
 5426 */
 5427 
 5428 inst  tct  -nt  "(6 bit)test id. no tally runout"
 5429            -io 2
 5430            -mf1 id rl 6146 ;
 5431 
 5432 desc 1  -cn 5 -ta 6 ;
 5433 
 5434 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5435                310102030405
 5436                (128) 000102030405060710111213141516172021222324252627 ;
 5437 
 5438 data 2  -do -4  (24) 000 000 141 ;
 5439 
 5440 data 3          141 000 006 001 ;
 5441 
 5442 page    -all ;
 5443 
 5444 
 5445 /*   tct 12
 5446 *
 5447 *  Test similiar to tct 6.  Test indirect referencing of descriptor 1
 5448 *  with ar modification of the indirect word.  Also test reg
 5449 *  modification of descriptors 2 and 3.
 5450 *
 5451 */
 5452 
 5453 inst  tct  -nt  "(6 bit)test ida. tally runout"
 5454            -io 1
 5455            -ir tr
 5456            -mf1 ida rl 6146
 5457            -mf2 reg
 5458            -mf3 reg ;
 5459 
 5460 desc 1  -cn 5 -ta 6 ;
 5461 
 5462 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5463                 000102030405
 5464                 (128) 000102030405060710111213141516172021222324252627 ;
 5465 
 5466 data 2  -do -4  (24) 000 000 141 ;
 5467 
 5468 data 3          000 000 014 002 ;
 5469 
 5470 page    -all ;
 5471 
 5472 
 5473 
 5474 /*   tct 13
 5475 *
 5476 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5477 *  with ar modification of the indirect word.  Also test ar
 5478 *  modification of descriptors 2 and 3.
 5479 *
 5480 */
 5481 
 5482 inst  tct  -nt  "(6 bit)test ida. no tally runout"
 5483            -mf1 ida rl 6146
 5484            -mf2 ar
 5485            -mf3 ar ;
 5486 
 5487 desc 1  -cn 5 -ta 6 ;
 5488 
 5489 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5490                310102030405
 5491                (128) 000102030405060710111213141516172021222324252627 ;
 5492 
 5493 data 2  -do -4  (24) 000 000 141 ;
 5494 
 5495 data 3          141 000 006 001 ;
 5496 
 5497 page    -all ;
 5498 
 5499 
 5500 
 5501 /*   tct 14
 5502 *
 5503 *  Test similiar to tct 6.  Test indirect referencing of decriptor 1
 5504 *  with ar and reg modification of the indirect word.
 5505 *
 5506 */
 5507 
 5508 inst  tct  -nt  "(6 bit)test idb. tally runout"
 5509            -io 2
 5510            -ir tr
 5511            -mf1 idb rl 6146 ;
 5512 
 5513 desc 1  -cn 5 -ta 6 ;
 5514 
 5515 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5516                 000102030405
 5517                 (128) 000102030405060710111213141516172021222324252627 ;
 5518 
 5519 data 2  -do -4  (24) 000 000 141 ;
 5520 
 5521 data 3          000 000 014 002 ;
 5522 
 5523 page    -all ;
 5524 
 5525 
 5526 
 5527 /*   tct 15
 5528 *
 5529 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5530 *  with ar and reg modification of the indirect word.
 5531 *
 5532 */
 5533 
 5534 inst  tct  -nt  "(6 bit)test idb. no tally runout"
 5535            -mf1 idb rl 6146 ;
 5536 
 5537 desc 1  -cn 5 -ta 6 ;
 5538 
 5539 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5540                310102030405
 5541                (128) 000102030405060710111213141516172021222324252627 ;
 5542 
 5543 data 2  -do -4  (24) 000 000 141 ;
 5544 
 5545 data 3          141 000 006 001 ;
 5546 
 5547 page    -all ;
 5548 
 5549 
 5550 
 5551 /*   tct 16
 5552 *
 5553 *  Test similiar to tct 6.  Test indirect referencing of descriptor 1
 5554 *  with ar and reg modification of the indirect word.  Further the
 5555 *  descriptor has ar, reg, and rl modification.
 5556 *
 5557 */
 5558 
 5559 inst  tct  -nt  "(6 bit)idb,ar,reg. tally runout"
 5560            -io 1
 5561            -ir tr
 5562            -mf1 idb ar reg rl 6146 ;
 5563 
 5564 desc 1  -cn 5 -ta 6 ;
 5565 
 5566 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5567                 000102030405
 5568                 (128) 000102030405060710111213141516172021222324252627 ;
 5569 
 5570 data 2  -do -4  (24) 000 000 141 ;
 5571 
 5572 data 3          000 000 014 002 ;
 5573 
 5574 page    -all ;
 5575 
 5576 
 5577 
 5578 /*   tct 17
 5579 *
 5580 *  Test similiar to tct 7.  Test indirect referencing of descriptor 1
 5581 *  with ar and reg modification of the indirect word.  Further the
 5582 *  descriptor has ar, reg, and rl modification.
 5583 *
 5584 */
 5585 
 5586 inst  tct  -nt  "(6bit)idb,ar,reg.no tally runout"
 5587            -io 2
 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                310102030405
 5594                (128) 000102030405060710111213141516172021222324252627 ;
 5595 
 5596 data 2  -do -4  (24) 000 000 141 ;
 5597 
 5598 data 3          141 000 006 001 ;
 5599 
 5600 page    -all ;
 5601 
 5602 /*   tct 18
 5603 *
 5604 *  Test for character match on the first character of page 3.
 5605 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 5606 *  ar and reg modification of descriptors 2 and 3.
 5607 *
 5608 */
 5609 
 5610 inst  tct  -nt  "(6 bit)match 1st char of page 3"
 5611            -io 1
 5612            -mf1 idb ar reg rl 6146
 5613            -mf2 reg ar
 5614            -mf3 reg ar ;
 5615 
 5616 desc 1  -cn 5 -ta 6 ;
 5617 
 5618 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5619                 (128) 000102030405060710111213141516172021222324252627
 5620                 31  ;
 5621 
 5622 data 2  -do -4  (24) 000 000 141 ;
 5623 
 5624 data 3          141 000 014 001 ;
 5625 
 5626 page    -all ;
 5627 
 5628 
 5629 /*   tct 19
 5630 *
 5631 *  Test for character match on the last character of page 1.
 5632 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 5633 *  ar and reg modification of descriptors 2 and 3.
 5634 *
 5635 */
 5636 
 5637 inst  tct  -nt  "(6 bit)match last char of page 1"
 5638            -io 1
 5639            -mf1 idb ar reg rl 6146
 5640            -mf2 reg ar
 5641            -mf3 reg ar ;
 5642 
 5643 desc 1  -cn 5 -ta 6 ;
 5644 
 5645 data 1  -do -4 "   " 031 (128) 010203040506071011121314151617202122232425262700
 5646                 (128) 000102030405060710111213141516172021222324252627
 5647                 00  ;
 5648 
 5649 data 2  -do -4  (24) 000 000 141 ;
 5650 
 5651 data 3          141 000 000 000 ;
 5652 
 5653 page    -all ;
 5654 
 5655 
 5656 ^L
 5657 
 5658 
 5659 /*                  tctr1
 5660 *
 5661 *         Out table will be indexed by the characters  "abcde".   "b" & "e" are the two
 5662 *         non zero entries.  Start off with a simple test
 5663 */
 5664 
 5665 inst      tctr      -nt "Simple test";
 5666 
 5667 desc 1    -ns 4;
 5668 
 5669 data 1    "bace";
 5670 
 5671 data 2    (97) "*"            /* These characters should never be referenced. */
 5672           000                 /* "a" */
 5673           "b"
 5674           000                 /* "c" */
 5675           "d"
 5676           000 ;               /* "e" */
 5677 
 5678 data 3    "b" 000 000 003;
 5679 
 5680 page      -all;
 5681 /*                  tctr2
 5682 *
 5683 *         Same as  tctr1  only we will move the data fields across page boundaries and
 5684 *         add modification.
 5685 */
 5686 
 5687 inst      tctr      -nt  "Same as prev - fields X pg bound" -io 3
 5688           -mf1      rl  4     ar reg idb
 5689           -mf2      ar reg              /* RL and ID mod NOT allowed for descriptors 2 & 3. */
 5690 
 5691           -mf3      reg ar;
 5692 
 5693 data 1    -do -3    "bace";
 5694 
 5695 data 2    -do -100  (97) "*"            /* These characters should never be referenced. */
 5696           000                 /* "a" */
 5697           "b"
 5698           000                 /* "c" */
 5699           "d"
 5700           000 ;               /* "e" */
 5701 
 5702 data 3    "b" 000 000 003;
 5703 
 5704 page      -all;
 5705 /*                  tctr3
 5706 *
 5707 *         Same as  tctr2  except  string 1 will be changed  so we will have a
 5708 *         tally runout.
 5709 */
 5710 
 5711 
 5712 inst      tctr      -nt  "Test tally runout"      -io 2
 5713           -ir       tr
 5714           -mf1      ar idb reg rl 18
 5715           -mf2      ar reg
 5716           -mf3      ar reg;
 5717 
 5718 data 1    -do -9    (6) "ace";
 5719 
 5720 data 2    -do -100
 5721           (97) "*" 000 "b" 000 "d" 000;
 5722 
 5723 data 3    000 000 000 022;
 5724 
 5725 
 5726 page      -all;
 5727 /*                  tctr4
 5728 *
 5729 *         Test using  6  bit characters.  The  -cn  field will specify that the string
 5730 *         starts at the  5th  character of the word (last character).
 5731 */
 5732 
 5733 inst      tctr      -nt  "Use 6 bit characters"   -io 1
 5734           -mf1      idb reg ar
 5735           -mf2      reg ar
 5736           -mf3      ar reg;
 5737 
 5738 desc 1    -ns  10   -cn 5     -ta 6;
 5739 
 5740 data 1    -do  -6             /* Test string is  0 1 2 3 4 5 6 7 10 11  */
 5741           0606060606          /* Filler, not part of string, 1st 5 characters of word. */
 5742           010203              /* Page boundary. */
 5743           040506 071011;
 5744 
 5745 data 2    -do -4
 5746           000 000 000 000
 5747           000 000 006 000 000 000;
 5748 
 5749 data 3    -do 4     006 000000 003;
 5750 
 5751 
 5752 page      -all;
 5753 /*                  tctr5
 5754 *
 5755 *         The indexes in string 1 will be  4  bit characters.
 5756 */
 5757 
 5758 inst      tctr      -nt  "Use 4 bit characters"   -io 2
 5759           -mf1      idb ar reg
 5760           -mf2      ar reg
 5761           -mf3      ar reg;
 5762 
 5763 
 5764 desc 1    -ns 8
 5765           -ta 4     /* 4 bit characters. */
 5766           -cn 2;    /* First 2 characters of word not used.
 5767                     *  This is the first 9 bit character.  */
 5768 
 5769 data 1    -do -2
 5770           000                 /* The first two characters of the word - skipped. */
 5771           001                 /* Characters "0" and "1".  In page 1. */
 5772           043 105 147;        /* "234567" (4 bit)  in page 2. */
 5773 
 5774 data 2    -do -4
 5775           000 000 000 000     /* All in page 1.  Represent index values 0,1,2,3 */
 5776           000 "*" 000 000;    /* In page 2. Correspond to index values 4,5,6,7  */
 5777 
 5778 data 3    "*" 000 000 002;
 5779 
 5780 
 5781 page      -all;
 5782 
 5783 
 5784 
 5785 /*   tctr 6
 5786 *
 5787 *  Test loading across three pages.  One character loaded from
 5788 *  page 1 and 3.  Test 6146 characters.  Tally runout indicator
 5789 *  is set.
 5790 */
 5791 
 5792 inst  tctr  -nt  "(6bit)no modif. tally is set"
 5793            -io 1
 5794            -ir tr
 5795            -mf1 rl 6146 ;
 5796 
 5797 desc 1  -cn 5 -ta 6 ;
 5798 
 5799 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5800                 000102030405
 5801                 (128) 000102030405060710111213141516172021222324252627 ;
 5802 
 5803 data 2  -do -4  (24) 000 000 141 ;
 5804 
 5805 data 3          000 000 014 002 ;
 5806 
 5807 page    -all ;
 5808 
 5809 /*   tctr 7
 5810 *
 5811 *  Test loading data across three pages.  One character is loaded
 5812 *  from page 1 and 3 with 6146 characters tested.  A nonzero
 5813 *  character is found in the test table.
 5814 */
 5815 
 5816 inst  tctr  -nt  "(6bit)no modif. a nonzero entry"
 5817            -mf1 rl 6146 ;
 5818 
 5819 desc 1  -cn 5 -ta 6 ;
 5820 
 5821 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5822                310102030405
 5823                 (128) 000102030405060710111213141516172021222324252627 ;
 5824 
 5825 data 2  -do -4  (24) 000 000 141 ;
 5826 
 5827 data 3          141 000 006 000 ;
 5828 
 5829 page    -all ;
 5830 
 5831 
 5832 
 5833 /*   tctr 8
 5834 *
 5835 *  Test similiar to tctr 6.  Test ar, reg, and rl for descriptor 1.
 5836 *
 5837 */
 5838 
 5839 inst  tctr  -nt  "(6bit)ar,reg,rl. tally runout"
 5840            -io 2
 5841            -ir tr
 5842            -mf1 ar reg rl 6146 ;
 5843 
 5844 desc 1  -cn 5 -ta 6 ;
 5845 
 5846 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5847                 000102030405
 5848                 (128) 000102030405060710111213141516172021222324252627 ;
 5849 
 5850 data 2  -do -4  (24) 000 000 141 ;
 5851 
 5852 data 3          000 000 014 002 ;
 5853 
 5854 page    -all ;
 5855 
 5856 
 5857 
 5858 /*   tctr 9
 5859 *
 5860 *  Test similiar to tctr 7.  Test ar, reg, and rl modification
 5861 *  for descriptor 1.  Test ar and reg modification for descriptor 1 and 2.
 5862 *
 5863 */
 5864 
 5865 inst  tctr  -nt  "(6bit)ar,reg,rl. no tally runout"
 5866            -io 1
 5867            -mf1 ar reg rl 6146
 5868            -mf2 ar reg
 5869            -mf3 ar reg ;
 5870 
 5871 desc 1  -cn 5 -ta 6 ;
 5872 
 5873 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5874                310102030405
 5875                (128) 000102030405060710111213141516172021222324252627 ;
 5876 
 5877 data 2  -do -4  (24) 000 000 141 ;
 5878 
 5879 data 3          141 000 006 000 ;
 5880 
 5881 page    -all ;
 5882 
 5883 
 5884 
 5885 /*   tctr 10
 5886 *
 5887 *  Test similiar to tctr 6.  Test indirect referencing
 5888 *  of descriptor 1.  Test ar and reg modification for descriptors 2 and 3.
 5889 */
 5890 
 5891 inst  tctr  -nt  "(6bit)test id. tally runout"
 5892            -ir tr
 5893            -mf1 id 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                 000102030405
 5901                 (128) 000102030405060710111213141516172021222324252627 ;
 5902 
 5903 data 2  -do -4  (24) 000 000 141 ;
 5904 
 5905 data 3          000 000 014 002 ;
 5906 
 5907 page    -all ;
 5908 
 5909 
 5910 
 5911 
 5912 /*   tctr 11
 5913 *
 5914 *  Test similiar to tctr 7.  Test indirect referencing of
 5915 *  descriptor 1.
 5916 *
 5917 */
 5918 
 5919 inst  tctr  -nt  "(6bit)test id. no tally runout"
 5920            -io 2
 5921            -mf1 id rl 6146 ;
 5922 
 5923 desc 1  -cn 5 -ta 6 ;
 5924 
 5925 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5926                310102030405
 5927                (128) 000102030405060710111213141516172021222324252627 ;
 5928 
 5929 data 2  -do -4  (24) 000 000 141 ;
 5930 
 5931 data 3          141 000 006 000 ;
 5932 
 5933 page    -all ;
 5934 
 5935 
 5936 /*   tctr 12
 5937 *
 5938 *  Test similiar to tctr 6.  Test indirect referencing of descriptor 1
 5939 *  with ar modification of the indirect word.  Also test reg
 5940 *  modification of descriptors 2 and 3.
 5941 *
 5942 */
 5943 
 5944 inst  tctr  -nt  "(6bit)test ida. tally runout"
 5945            -io 1
 5946            -ir tr
 5947            -mf1 ida rl 6146
 5948            -mf2 reg
 5949            -mf3 reg ;
 5950 
 5951 desc 1  -cn 5 -ta 6 ;
 5952 
 5953 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5954                 000102030405
 5955                 (128) 000102030405060710111213141516172021222324252627 ;
 5956 
 5957 data 2  -do -4  (24) 000 000 141 ;
 5958 
 5959 data 3          000 000 014 002 ;
 5960 
 5961 page    -all ;
 5962 
 5963 
 5964 
 5965 /*   tctr 13
 5966 *
 5967 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 5968 *  with ar modification of the indirect word.  Also test ar
 5969 *  modification of descriptors 2 and 3.
 5970 *
 5971 */
 5972 
 5973 inst  tctr  -nt  "(6bit)test ida. no tally runout"
 5974            -mf1 ida rl 6146
 5975            -mf2 ar
 5976            -mf3 ar ;
 5977 
 5978 desc 1  -cn 5 -ta 6 ;
 5979 
 5980 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 5981                310102030405
 5982                (128) 000102030405060710111213141516172021222324252627 ;
 5983 
 5984 data 2  -do -4  (24) 000 000 141 ;
 5985 
 5986 data 3          141 000 006 000 ;
 5987 
 5988 page    -all ;
 5989 
 5990 
 5991 
 5992 /*   tctr 14
 5993 *
 5994 *  Test similiar to tctr 6.  Test indirect referencing of decriptor 1
 5995 *  with ar and reg modification of the indirect word.
 5996 *
 5997 */
 5998 
 5999 inst  tctr  -nt  "(6bit)test idb. tally runout"
 6000            -io 2
 6001            -ir tr
 6002            -mf1 idb rl 6146 ;
 6003 
 6004 desc 1  -cn 5 -ta 6 ;
 6005 
 6006 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6007                 000102030405
 6008                 (128) 000102030405060710111213141516172021222324252627 ;
 6009 
 6010 data 2  -do -4  (24) 000 000 141 ;
 6011 
 6012 data 3          000 000 014 002 ;
 6013 
 6014 page    -all ;
 6015 
 6016 
 6017 
 6018 /*   tctr 15
 6019 *
 6020 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 6021 *  with ar and reg modification of the indirect word.
 6022 *
 6023 */
 6024 
 6025 inst  tctr  -nt  "(6bit)test idb. no tally runout"
 6026            -mf1 idb rl 6146 ;
 6027 
 6028 desc 1  -cn 5 -ta 6 ;
 6029 
 6030 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6031                310102030405
 6032                (128) 000102030405060710111213141516172021222324252627 ;
 6033 
 6034 data 2  -do -4  (24) 000 000 141 ;
 6035 
 6036 data 3          141 000 006 000 ;
 6037 
 6038 page    -all ;
 6039 
 6040 
 6041 
 6042 /*   tctr 16
 6043 *
 6044 *  Test similiar to tctr 6.  Test indirect referencing of descriptor 1
 6045 *  with ar and reg modification of the indirect word.  Further the
 6046 *  descriptor has ar, reg, and rl modification.
 6047 *
 6048 */
 6049 
 6050 inst  tctr  -nt  "(6bit)idb,ar,reg. tally runout"
 6051            -io 1
 6052            -ir tr
 6053            -mf1 idb ar reg rl 6146 ;
 6054 
 6055 desc 1  -cn 5 -ta 6 ;
 6056 
 6057 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6058                 000102030405
 6059                 (128) 000102030405060710111213141516172021222324252627 ;
 6060 
 6061 data 2  -do -4  (24) 000 000 141 ;
 6062 
 6063 data 3          000 000 014 002 ;
 6064 
 6065 page    -all ;
 6066 
 6067 
 6068 
 6069 /*   tctr 17
 6070 *
 6071 *  Test similiar to tctr 7.  Test indirect referencing of descriptor 1
 6072 *  with ar and reg modification of the indirect word.  Further the
 6073 *  descriptor has ar, reg, and rl modification.
 6074 *
 6075 */
 6076 
 6077 inst  tctr  -nt  "(6bit)idb,ar,reg.no tally runout"
 6078            -io 2
 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                310102030405
 6085                (128) 000102030405060710111213141516172021222324252627 ;
 6086 
 6087 data 2  -do -4  (24) 000 000 141 ;
 6088 
 6089 data 3          141 000 006 000 ;
 6090 
 6091 page    -all ;
 6092 
 6093 /*   tctr 18
 6094 *
 6095 *  Test for character match on the first character of page 3.
 6096 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 6097 *  ar and reg modification of descriptors 2 and 3.
 6098 *
 6099 */
 6100 
 6101 inst  tctr  -nt  "(6bit)match 1st char of page 3"
 6102            -io 1
 6103            -mf1 idb ar reg rl 6146
 6104            -mf2 reg ar
 6105            -mf3 reg ar ;
 6106 
 6107 desc 1  -cn 5 -ta 6 ;
 6108 
 6109 data 1  -do -4 "   " 000 (128) 010203040506071011121314151617202122232425262700
 6110                 (128) 000102030405060710111213141516172021222324252627
 6111                 31  ;
 6112 
 6113 data 2  -do -4  (24) 000 000 141 ;
 6114 
 6115 data 3          141 000 000 000 ;
 6116 
 6117 page    -all ;
 6118 
 6119 
 6120 /*   tctr 19
 6121 *
 6122 *  Test for character match on the last character of page 1.
 6123 *  Also, test idb, ar, reg, and rl of descriptor 1.  Also, test
 6124 *  ar and reg modification of descriptors 2 and 3.
 6125 *
 6126 */
 6127 
 6128 inst  tctr  -nt  "(6bit)match last char of page 1"
 6129            -io 1
 6130            -mf1 idb ar reg rl 6146
 6131            -mf2 reg ar
 6132            -mf3 reg ar ;
 6133 
 6134 desc 1  -cn 5 -ta 6 ;
 6135 
 6136 data 1  -do -4 "   " 031 (128) 010203040506071011121314151617202122232425262700
 6137                 (128) 000102030405060710111213141516172021222324252627
 6138                 00  ;
 6139 
 6140 data 2  -do -4  (24) 000 000 141 ;
 6141 
 6142 data 3          141 000 014 001 ;
 6143 
 6144 page    -all ;
 6145 
 6146 
 6147 ^L
 6148 
 6149 
 6150 /*                  scm1
 6151 *
 6152 *         No match found in data 1 field so  tally runout indicator will be  ON.
 6153 *         CN field used in descriptor 1 and its data will cross a page boundary.
 6154 */
 6155 
 6156 inst      scm       -nt  "Tally runout" -io 3
 6157           -mc^G               /* Mask =  (007) octal.  */
 6158           -ir       tr
 6159           -mf1      ida
 6160           -mf2      ar
 6161           -mf3      ar reg;
 6162 
 6163 
 6164 desc 1    -ns 3     -cn 3     -ta 9;
 6165 
 6166 desc 2    -ns 4     -cn 1;
 6167 
 6168 
 6169 data 1    -do -4
 6170           000 000 000                   /* Fill due to  cn 3.  */
 6171           011                           /* Part of string on page 1. */
 6172           021 031;                      /* Part of string on page 2. */
 6173 
 6174 data 2    -do -1       000  001;
 6175 
 6176 data 3    000 000 000 003;
 6177 
 6178 page      -all;
 6179 /*                   scm2
 6180 
 6181 *         simple test to determine if instruction
 6182 *         is working correctly.  data is 9 bit
 6183 *         written in octal format to allow easy
 6184 *         comparison with the mask.  this test
 6185 *         accesses all descriptors directly.
 6186 *
 6187 */
 6188 
 6189 inst     scm     -nt "mc 8 9bit"
 6190          -mc8;
 6191 
 6192 desc 1     -ns 8          -ta 9;
 6193 
 6194 data 1    060061062063064065066067;
 6195 
 6196 data 2    047;
 6197 
 6198 data 3    000 000 000 007;
 6199 
 6200 page      -all;
 6201 
 6202 
 6203 /*                  scm3
 6204 
 6205 *         same data as test 2 but with data 1
 6206 *         split across page boundary.  indirect
 6207 *         mod on desc 1 and 2.
 6208 *
 6209 */
 6210 
 6211 inst      scm       -io 1     -nt "d1 split mc 8 9bit"
 6212           -mc8
 6213           -mf1      idb
 6214           -mf2      idb;
 6215 
 6216 desc 1    -ns 8     -ta 9;
 6217 
 6218 data 1    -do -4    060061062063 064065066067;
 6219 
 6220 data 2    047;
 6221 
 6222 data 3    000 000 000 007;
 6223 
 6224 page      -all;
 6225 
 6226 /*                  scm4
 6227 
 6228 *         same data config as test 2 but with
 6229 *         full desc mod.
 6230 *
 6231 */
 6232 
 6233 inst      scm       -io 3     -nt "d1 split mc8 9bit"
 6234           -mc8
 6235           -mf1      idb ar reg rl 8
 6236           -mf2      idb ar reg
 6237           -mf3       ar reg;
 6238 
 6239 desc 1    -ta 9;
 6240 
 6241 data 1    060061062063064065066067;
 6242 
 6243 data 2    047;
 6244 
 6245 data 3    000 000 000 007;
 6246 
 6247 page      -all;
 6248 
 6249 
 6250 
 6251 /*                  scm5
 6252 
 6253 *         test of the -cn option for desc 1 and 2
 6254 *         along with a varied of """mode of desc mod.
 6255 *         both data strings are split across page bound.
 6256 *
 6257 */
 6258 
 6259 inst      scm       -io 2       -nt "mc8 no match 9bit"
 6260        -ir     tr
 6261           -mc8
 6262           -mf1      idb ar reg rl 6
 6263           -mf2      ar
 6264           -mf3      ar;
 6265 
 6266 desc 1    -ta 9;
 6267 
 6268 desc 2    -cn 3;
 6269 
 6270 data 1    -do -2    000000 060061062063064066;
 6271 
 6272 data 2    -do -1    000 000 000 047;
 6273 
 6274 data 3    000 000 000 006  /* no match */;
 6275 
 6276 page      -all;
 6277 
 6278 
 6279 
 6280 /*                  scm6
 6281 
 6282 *         data 1 wholey contained on page 0 and
 6283 *         data  starting on word 0 of page 1; char 0.
 6284 *         all desc mod.
 6285 *
 6286 */
 6287 
 6288 inst      scm       -io 1      -nt "mc8 d1 on p0 9bit"
 6289           -mc8
 6290           -mf1      idb ar reg
 6291           -mf2      idb ar reg
 6292           -mf3       ar reg;
 6293 
 6294 desc 1    -ta 9     -ns 2          -cn 2;
 6295 
 6296 data 1    -do  -4   000000060067;
 6297 
 6298 data 2    047;
 6299 
 6300 data 3    000 000 000 001;
 6301 
 6302 page      -all;
 6303 
 6304 
 6305 
 6306 /*                  scm7
 6307 
 6308 *         a variety of desc mod are used~ and the mask
 6309 *         is set so that there is no match.  using the
 6310 *         using the same data as test 6.
 6311 *
 6312 */
 6313 
 6314 inst      scm       -io 3     -nt "mc777 no match 9 bit"
 6315           -mcÿ
 6316                 /*  mc = 777 */
 6317           -mf1      idr ar rl 2
 6318           -mf2      ar reg
 6319           -mf3      ar;
 6320 
 6321 desc 1    -ta 9     -cn 2;
 6322 
 6323 data 1    -do -4    000000060067;
 6324 
 6325 data 2    047;
 6326 
 6327 data 3    000 000 000 000;
 6328 
 6329 page      -all;
 6330 
 6331 
 6332 /*                  scm 8
 6333 
 6334 *          the next four tests use the maximum amount of
 6335 *         data for string 1 to test the paging of the data
 6336 *         strings.  this test will make sure the inst is operating
 6337 *         correctly using no desc mod.
 6338 *
 6339 */
 6340 
 6341 inst      scm     -nt "d1 covers 3pp 9bit"
 6342           -mc^A     /*    mc = 001  */
 6343                /* mc = 001 */
 6344           -mf1      rl 4352
 6345           /* no desc mod.--all direct */;
 6346 
 6347 desc 1    -ta 9          ;
 6348 
 6349 data 1    -do -128  (4351) 062 066;
 6350 
 6351 data 2    067;
 6352 
 6353 data 3    000 000 010 377;
 6354 
 6355 page      -all;
 6356 
 6357 
 6358 
 6359 /*                   scm9
 6360 
 6361 *         uses same data setup as test 8 but applies
 6362 *         maximum mod to descriptors.
 6363 *
 6364 */
 6365 
 6366 inst      scm       -io 3      -nt "d1 covers 3 pp max desc mod 9b"
 6367           -mc^A     /*    mc = 001  */
 6368           -mf1      idb ar reg rl 4352
 6369           -mf2      idb ar reg
 6370           -mf3       ar reg;
 6371 
 6372 desc 1    -ta 9;
 6373 
 6374 data 1    -do -128  (4351) 062 066;
 6375 
 6376 data 2    067;
 6377 
 6378 data 3    000 000 010 377;
 6379 
 6380 page      -all;
 6381 
 6382 
 6383 
 6384 /*                  scm10
 6385 
 6386 *         this test specifically tests the -cn option
 6387 **        for data 2 along with forcing it to cross
 6388 *         a page boundary.  all desc mods are taken.
 6389 *
 6390 */
 6391 
 6392 
 6393 inst      scm       -io 1      -nt "d1 covers 3pp d2 split 9b"
 6394           -mc^A     /*    mc = 001  */
 6395           -mf1      idb ar reg rl 4352
 6396           -mf2      idb ar reg
 6397           -mf3       ar reg;
 6398 
 6399 desc 1    -ta 9;
 6400 
 6401 desc 2    -cn 1;
 6402 
 6403 data 1     -do -128       (4351) 062 066;
 6404 
 6405 data 2    -do -2         000067 000000;
 6406 
 6407 data 3    000 000 010 377;
 6408 
 6409 page      -all;
 6410 
 6411 
 6412 /*                  scm11
 6413 
 6414 *         there will be no match on this test.  also,
 6415 *         a variety of desc mods are taken.  note
 6416 *         tr indicator will be on.
 6417 *
 6418 */
 6419 
 6420 inst      scm       -io 1      -nt "no match d1 covers 3pp 9bit"
 6421           -mc^A     /*    mc = 001  */
 6422           -ir       tr
 6423           -mf1      idb rl 4352
 6424           -mf2      ar reg
 6425           /* mf3 is direct */;
 6426 
 6427 desc 1    -ta 9;
 6428 
 6429 desc 2    -cn 1;
 6430 
 6431 data 1    -do -128  (4352) 062;
 6432 
 6433 data 2    -do -2    000067 000000;
 6434 
 6435 data 3    000 000 010 400;
 6436 
 6437 page      -all;
 6438     /*               scm12
 6439 
 6440 *          this starts the sequence of seven
 6441 *          four bit data tests.  this first
 6442 *          test makes sure that the inst is working
 6443 *          correctly without any desc. mod.
 6444 *
 6445 */
 6446 
 6447 inst       scm    -nt "simple test 4 bit"
 6448            -mc^A     /*    mc = 001  */
 6449                /* mc = 001 */
 6450            /*  all the desc. are direct */;
 6451 
 6452 desc 1     -ta 4      -ns 8;
 6453 
 6454 
 6455 data 1    237 323 070 361  /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
 6456 
 6457 data 2     360    /* 1111 */;
 6458 
 6459 
 6460 data 3     000 000 000 001;
 6461 
 6462 page       -all;
 6463 
 6464 
 6465 
 6466 /*                    scm13
 6467 
 6468 *          same as previous test but taking all of the
 6469 *          possible desc. mod.
 6470 *
 6471 */
 6472 
 6473 inst       scm        -io 1      -nt " full desc mod 4bit"
 6474            -mc^A     /*    mc = 001  */
 6475                   /* mc = 001 */
 6476            -mf1       idb ar reg rl 8
 6477            -mf2       idb ar reg
 6478            -mf3       ar reg;
 6479 
 6480 desc 1     -ta 4;
 6481 
 6482 data 1     237 323 070 361;
 6483 
 6484 data 2     360;
 6485 
 6486 data 3     000 000 000 001;
 6487 
 6488 page      -all;
 6489 
 6490 
 6491 
 6492 /*                    scm14
 6493 
 6494 *          changing the mask characters and offsetting
 6495 *          the first data string across a page boundary
 6496 *          with a variety of desc. mod.
 6497 *
 6498 */
 6499 
 6500 inst       scm        -io 3    -nt "d1 split 4 bit"
 6501            -mc?
 6502            -mf1       ar
 6503            -mf2       idb
 6504            /* mf3 is direct */;
 6505 
 6506 desc 1     -ta 4      -ns 8;
 6507 
 6508 data 1     -do -2      237 323 /* page bound */ 070 361;
 6509 
 6510 data 2                              360;
 6511 
 6512 data 3     000 000 000 000;
 6513 
 6514 page       -all;
 6515 
 6516 
 6517 
 6518 /*                     scm15
 6519 
 6520 *          again using the same data but this time splitting
 6521 *          both strings across page bound. and exercising
 6522 *          the -cn option.  all desc. mod. are taken.
 6523 *
 6524 */
 6525 
 6526 inst       scm         -io 1     -nt "d1 and d2 split 4 bit"
 6527            -mc?
 6528            -mf1        idb ar reg
 6529            -mf2        idb ar reg
 6530            -mf3       ar reg;
 6531 
 6532 desc 1     -ta 4       -ns 6         -cn 1;
 6533 
 6534 desc 2     -cn 3;
 6535 
 6536 data 1     -do -2      237 323  /* page boun. */  070 361;
 6537 
 6538 data 2     -do  -3    000 000 360  /* page bound. */  000;
 6539 
 6540 data 3       000 000 000 000;
 6541 
 6542 page       -all;
 6543 
 6544 
 6545 
 6546 /*                     scm16
 6547 
 6548 *          this time there will be no match with
 6549 *          the same parameters as test 15 with a mask of
 6550 *         777.
 6551 *
 6552 */
 6553 
 6554 inst       scm         -io 2   -nt "match on first char 4bit"
 6555          -mcÿ
 6556            -mf1        idb ar reg
 6557            -mf2        idb ar reg
 6558            -mf3       ar reg;
 6559 
 6560 desc 1     -ta 4       -ns 8        -cn 1;
 6561 
 6562 desc 2     -cn 3;
 6563 
 6564 data 1     -do -2      237 323 070 361;
 6565 
 6566 data 2     -do -3      000 000 360 000;
 6567 
 6568 data 3     000 000 000 000;
 6569 
 6570 page       -all;
 6571 
 6572 
 6573 
 6574 /*                     scm17
 6575 
 6576 *          the next three tests use the maximum amount
 6577 *          of data for string 1.  this test uses a mask
 6578 *          of 000 but searches for a char which will not
 6579 *          match ( tr ind).  no desc. mod.
 6580 *
 6581 */
 6582 
 6583 inst       scm    -nt "mc=000 no mat d1 covers 3pp 4b"
 6584            -mc^@   /*   mc = 000  */
 6585            -ir   tr
 6586            -mf1        rl 8704
 6587            /*  all desc. are direct */;
 6588 
 6589 desc 1     -ta 4;
 6590 
 6591 data 1     -do -128    (1088) 237323070361;
 6592 
 6593 data 2     000;
 6594 
 6595 data 3     000 000 021 000;
 6596 
 6597 page       -all;
 6598 
 6599 
 6600 
 6601 /*                     scm18
 6602 
 6603 *          this test will force a match on a middle
 6604 *          char.  all desc mods. are taken.
 6605 *
 6606 */
 6607 
 6608 inst       scm         -io 2     -nt "d1 covers 3pp 4bit"
 6609            -mc^A     /*    mc = 001  */
 6610            -mf1        idb ar reg rl 8704
 6611            -mf2        idb ar reg
 6612            -mf3       ar reg;
 6613 
 6614 desc 1     -ta 4;
 6615 
 6616 data 1     -do -128     (1087) 237323070361 237 323 070 000;
 6617 
 6618 data 2     000;
 6619 
 6620 data 3     000 000 000 007;
 6621 
 6622 page       -all;
 6623 
 6624 
 6625 /*                      scm19
 6626 
 6627 *          this test puts the second string on page 0
 6628 *           and tests the -cn option.
 6629 *
 6630 */
 6631 
 6632 inst       scm          -io 2     -nt "d1 covers 3pp 4bit"
 6633            -mc^A     /*    mc = 001  */
 6634            -mf1         ida ar reg rl 8704
 6635            -mf2         idr ar
 6636            /* mf3 is direct */;
 6637 
 6638 desc 1     -ta 4        ;
 6639 
 6640 desc 2     -cn 3;
 6641 
 6642 data 1     -do -128     (1087) 237323070361 237323070000;
 6643 
 6644 data 2     -do -3       000 000 000 000;
 6645 
 6646 data 3     000 000 000 007;
 6647 
 6648 
 6649 page       -all;
 6650 
 6651 
 6652 
 6653 /*                      scm20
 6654 
 6655 *          the following tests use 6 bit data.
 6656 *          this test merely makes sure the instruction
 6657 *          is working correctly.  direct mod on descriptors.
 6658 *
 6659 */
 6660 
 6661 inst       scm    -nt "6bit"
 6662            -mc
 6663            /* all desc. are direct */;
 6664 
 6665 desc 1     -ta 6        -ns 12;
 6666 
 6667 data 1     414243444546 575051525353;
 6668 
 6669 data 2     57;
 6670 
 6671 data 3     000 000 000 006;
 6672 
 6673 page       -all;
 6674 
 6675 
 6676 
 6677 
 6678 /*                     scm21
 6679 
 6680 *          same as previous test but with first string
 6681 *          split across page bound. and a variety
 6682 *          of desc. mods taken.
 6683 *
 6684 */
 6685 
 6686 inst       scm         -io 1     -nt "di split 6bit"
 6687           -mc^P    /*   mc = 020  */
 6688            -mf1        ar reg
 6689            -mf2        idb
 6690            /* mf3 is direct */;
 6691 
 6692 desc 1     -ta 6       -ns 12;
 6693 
 6694 data 1     -do -4      414243444546  /*page bound */  475051525354;
 6695 
 6696 data 2     67;
 6697 
 6698 data 3     000 000 000 006;
 6699 
 6700 page       -all;
 6701 
 6702 /*                     scm22
 6703 
 6704 *          this is the same as test 22 except the mask
 6705 *          has been set to preclude a match (tr on)
 6706           and different desc. mods. are taken.
 6707 *
 6708 */
 6709 
 6710 inst       scm         -io 2    -nt "no match 6bit"
 6711            -mc^G
 6712            -ir   tr
 6713            -mf1        idb ar
 6714            -mf2        ar reg
 6715            -mf3        ar reg;
 6716 
 6717 desc 1     -ta 6       -ns 12;
 6718 
 6719 data 1     -do -4      414243444546 475051525354;
 6720 
 6721 data 2     67;
 6722 
 6723 data 3    000 000 000 014;
 6724 
 6725 page       -all;
 6726 
 6727 
 6728 /*                     scm23
 6729 
 6730 *this test exercises all the desc. mods.
 6731 *          and tests the rl and -cn options.  it also
 6732 *          changes the mask char .
 6733 *
 6734 *
 6735 */
 6736 
 6737 inst       scm         -io 3    -nt "full desc mod 6bit"
 6738            -mc^U    /*  mc = 025  */
 6739            -mf1        idb ar reg rl 12
 6740            -mf2        idb ar reg
 6741            -mf3       ar reg;
 6742 
 6743 desc 1     -ta 6;
 6744 
 6745 desc 2     -cn 3;
 6746 
 6747 data 1     -do -6      414243444546475051 525354;
 6748 
 6749 data 2     -do -4      000000720000 /* page bound. */;
 6750 
 6751 data 3     000 000 000 011;
 6752 
 6753 page       -all;
 6754 
 6755 
 6756 /*                     scm24
 6757 
 6758 *         using the -cn option on both descriptors
 6759 *         direct mod on mf3 desc.
 6760 *
 6761 */
 6762 
 6763 inst      scm          -io 2     -nt "d1 split 6bit"
 6764           -mc^U    /*  mc = 025  */
 6765           -mf1         ar rl 5
 6766           -mf2      ar
 6767           /* mf3 is direct */;
 6768 
 6769 desc 1    -ta 6        -cn 4;
 6770 
 6771 desc 2    -cn 2;
 6772 
 6773 data 1    -do -4      000000005100  /*page bound. */  525354;
 6774 
 6775 data 2    -do -2        00007200   /* page bound.  */;
 6776 
 6777 data 3    000 000 000 002;
 6778 
 6779 page      -all;
 6780 
 6781 
 6782 /*                     scm25
 6783 
 6784 *         this test and the next one uses the maximum amount
 6785 *         of char for string 1.  this test forces a "no match"
 6786 *         condition (ir tr on) and takes the maximum mod.
 6787 *         on the desc.
 6788 *
 6789 */
 6790 
 6791 inst      scm          -io 3    -nt "d1 covers 3pp no match 6b"
 6792          -mc000
 6793           -ir  tr
 6794           -mf1         idb ar reg rl 6528
 6795           -mf2      idb ar reg
 6796           -mf3       ar reg;
 6797 
 6798 desc 1    -ta 6;
 6799 
 6800 data 1    -do -128          (1087) 515151515151 515151515153;
 6801 
 6802 data 2    52;
 6803 
 6804 data 3    000 000 014 600;
 6805 
 6806 page      -all;
 6807 
 6808 
 6809 
 6810 /*                     scm26
 6811 
 6812 *         same as previous test but a match occurs
 6813 *         on the last char.
 6814 *
 6815 */
 6816 
 6817 inst      scm          -io 2    -nt "d1 covers 3pp 6bit"
 6818           -mc^@   /*   mc = 000  */
 6819           -mf1         idb ar reg rl 6528
 6820           -mf2         idb ar reg
 6821           -mf3       ar reg;
 6822 
 6823 
 6824 desc 1    -ta 6;
 6825 
 6826 data 1    -do -128     (1087) 515151515151 515151515152;
 6827 
 6828 data 2    52;
 6829 
 6830 data 3    000 000 014 577;
 6831 
 6832 page      -all;
 6833 
 6834 
 6835 ^L
 6836 
 6837 
 6838 /*                  scmr1
 6839 *
 6840 *         Same  as  scm  only we will change the data  of string 2 so that there is
 6841 *         a match.
 6842 */
 6843 
 6844 inst      scmr      -nt  "Same as scm but strings match"    -io 2
 6845           -mc^G               /* Mask =  (007) octal.  */
 6846           -mf1      ida
 6847           -mf2      ar
 6848           -mf3      ar reg;
 6849 
 6850 
 6851 desc 1    -ns 3     -cn 3     -ta 9;
 6852 
 6853 desc 2    -cn 1;
 6854 
 6855 
 6856 data 1    -do -4
 6857           000 000 000                   /* Fill due to  cn 3.  */
 6858           011                           /* Part of string on page 1. */
 6859           021 033;                      /* Part of string on page 2. */
 6860 
 6861 data 2    -do -1       000  013;
 6862 
 6863 data 3    000 000 000 002;
 6864 
 6865 page      -all;
 6866 /*                   scmr2
 6867 
 6868 *         simple test to determine if instruction
 6869 *         is working correctly.  data is 9 bit
 6870 *         written in octal format to allow easy
 6871 *         comparison with the mask.  this test
 6872 *         accesses all descriptors directly.
 6873 *
 6874 */
 6875 
 6876 inst     scmr    -nt "mc8 simple test 9 bit"
 6877          -mc8;
 6878 
 6879 desc 1     -ns 8          -ta 9;
 6880 
 6881 data 1    060061062063064065066067;
 6882 
 6883 data 2    047;
 6884 
 6885 data 3    000 000 000 000;
 6886 
 6887 page      -all;
 6888 
 6889 
 6890 /*                  scmr3
 6891 
 6892 *         same data as test 2 but with data 1
 6893 *         split across page boundary.  indirect
 6894 *         mod on desc 1 and 2.
 6895 *
 6896 */
 6897 
 6898 inst      scmr       -io 1    -nt "d1 split 9bit"
 6899           -mc8
 6900           -mf1      idb
 6901           -mf2      idb;
 6902 
 6903 desc 1    -ns 8     -ta 9;
 6904 
 6905 data 1    -do -4    060061062063 064065066067;
 6906 
 6907 data 2    047;
 6908 
 6909 data 3    000 000 000 000;
 6910 
 6911 page      -all;
 6912 
 6913 /*                  scmr4
 6914 
 6915 *         same data config as test 2 but with
 6916 *         full desc mod.
 6917 *
 6918 */
 6919 
 6920 inst      scmr       -io 3    -nt "d1 split 9bit"
 6921           -mc8
 6922           -mf1      idb ar reg rl 8
 6923           -mf2      idb ar reg
 6924           -mf3       ar reg;
 6925 
 6926 desc 1    -ta 9;
 6927 
 6928 data 1    060061062063064065066067;
 6929 
 6930 data 2    047;
 6931 
 6932 data 3    000 000 000 000;
 6933 
 6934 page      -all;
 6935 
 6936 
 6937 
 6938 /*                  scmr5
 6939 
 6940 *         test of the -cn option for desc 1 and 2
 6941 *         along with a varied of """mode of desc mod.
 6942 *         both data strings are split across page bound.
 6943 *
 6944 */
 6945 
 6946 inst      scmr       -io 2    -nt "no match 9bit"
 6947        -ir     tr
 6948           -mc8
 6949           -mf1      idb ar reg rl 6
 6950           -mf2      ar
 6951           -mf3      ar;
 6952 
 6953 desc 1    -ta 9;
 6954 
 6955 desc 2    -cn 3;
 6956 
 6957 data 1    -do -2    000000 060061062063064066;
 6958 
 6959 data 2    -do -1    000 000 000 047;
 6960 
 6961 data 3    000 000 000 006  /* no match */;
 6962 
 6963 page      -all;
 6964 
 6965 
 6966 
 6967 /*                  scmr6
 6968 
 6969 *         data 1 wholey contained on page 0 and
 6970 *         data  starting on word 0 of page 1; char 0.
 6971 *         all desc mod.
 6972 *
 6973 */
 6974 
 6975 inst      scmr       -io 1    -nt "d1 on p0 9bit"
 6976           -mc8
 6977           -mf1      idb ar reg
 6978           -mf2      idb ar reg
 6979           -mf3       ar reg;
 6980 
 6981 desc 1    -ta 9     -ns 2          -cn 2;
 6982 
 6983 data 1    -do  -4   000000060067;
 6984 
 6985 data 2    047;
 6986 
 6987 data 3    000 000 000 000;
 6988 
 6989 page      -all;
 6990 
 6991 
 6992 
 6993 /*                  scmr7
 6994 
 6995 *         a variety of desc mod are used~ and the mask
 6996 *         is set so that there is no match.  using the
 6997 *         using the same data as test 6.
 6998 *
 6999 */
 7000 
 7001 inst      scmr       -io 3    -nt "no match 9bit"
 7002           -mcÿ
 7003              /* mc = 777 */
 7004           -mf1      idr ar rl 2
 7005           -mf2      ar reg
 7006           -mf3      ar;
 7007 
 7008 desc 1    -ta 9     -cn 2;
 7009 
 7010 data 1    -do -4    000000060067;
 7011 
 7012 data 2    047;
 7013 
 7014 data 3    000 000 000 000;
 7015 
 7016 page      -all;
 7017 
 7018 
 7019 /*                  scmr 8
 7020 
 7021 *          the next four tests use the maximum amount of
 7022 *         data for string 1 to test the paging of the data
 7023 *         strings.  this test will make sure the inst is operating
 7024 *         correctly using no desc mod.
 7025 *
 7026 */
 7027 
 7028 inst      scmr    -nt "d1 covers 3pp 9bit"
 7029           -mc^A    /*  mc = 001 */
 7030                 /* mc = 001 */
 7031           -mf1      rl 4352
 7032           /* no desc mod.--all direct */;
 7033 
 7034 desc 1    -ta 9          ;
 7035 
 7036 data 1    -do -128  066 (4351) 062;
 7037 
 7038 data 2    067;
 7039 
 7040 data 3    000 000 010 377;
 7041 
 7042 page      -all;
 7043 
 7044 
 7045 
 7046 /*                   scmr9
 7047 
 7048 *         uses same data setup as test 8 but applies
 7049 *         maximum mod to descriptors.
 7050 *
 7051 */
 7052 
 7053 inst      scmr       -io 3     -nt "d1 covers 3pp max desc mod 9b"
 7054           -mc^A    /*  mc = 001 */
 7055           -mf1      idb ar reg rl 4352
 7056           -mf2      idb ar reg
 7057           -mf3       ar reg;
 7058 
 7059 desc 1    -ta 9;
 7060 
 7061 data 1    -do -128  (4351) 062 066;
 7062 
 7063 data 2    067;
 7064 
 7065 data 3    000 000 000 000;
 7066 
 7067 page      -all;
 7068 
 7069 
 7070 
 7071 /*                  scmr10
 7072 
 7073 *         this test specifically tests the -cn option
 7074 **        for data 2 along with forcing it to cross
 7075 *         a page boundary.  all desc mods are taken.
 7076 *
 7077 */
 7078 
 7079 
 7080 inst      scmr       -io 1      -nt "d1 covers 3pp d2 split 9b"
 7081           -mc^A    /*  mc = 001 */
 7082           -mf1      idb ar reg rl 4352
 7083           -mf2      idb ar reg
 7084           -mf3       ar reg;
 7085 
 7086 desc 1    -ta 9;
 7087 
 7088 desc 2    -cn 1;
 7089 
 7090 data 1     -do -128       066    (4351) 062;
 7091 
 7092 data 2    -do -2         000067 000000;
 7093 
 7094 data 3    000 000 010 377;
 7095 
 7096 page      -all;
 7097 
 7098 
 7099 /*                  scmr11
 7100 
 7101 *         there will be no match on this test.  also,
 7102 *         a variety of desc mods are taken.  note
 7103 *         tr indicator will be on.
 7104 *
 7105 */
 7106 
 7107 inst      scmr       -io 1    -nt "no match d1 covers 3pp 9bit"
 7108           -mc^A    /*  mc = 001 */
 7109           -ir       tr
 7110           -mf1      idb rl 4352
 7111           -mf2      ar reg
 7112           /* mf3 is direct */;
 7113 
 7114 desc 1    -ta 9;
 7115 
 7116 desc 2    -cn 1;
 7117 
 7118 data 1    -do -128  (4352) 062;
 7119 
 7120 data 2    -do -2    000067 000000;
 7121 
 7122 data 3    000 000 010 400;
 7123 
 7124 page      -all;
 7125     /*               scmr12
 7126 
 7127 *          this starts the sequence of seven
 7128 *          four bit data tests.  this first
 7129 *          test makes sure that the inst is working
 7130 *          correctly without any desc. mod.
 7131 *
 7132 */
 7133 
 7134 inst       scmr    -nt "4bit simple test"
 7135            -mc^A    /*  mc = 001 */
 7136            /*  all the desc. are direct */;
 7137 
 7138 desc 1     -ta 4      -ns 8;
 7139 
 7140 
 7141 data 1    237 323 070 361  /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
 7142 
 7143 data 2     360    /* 1111 */;
 7144 
 7145 
 7146 data 3     000 000 000 001;
 7147 
 7148 page       -all;
 7149 
 7150 
 7151 
 7152 /*                    scmr13
 7153 
 7154 *          same as previous test but taking all of the
 7155 *          possible desc. mod.
 7156 *
 7157 */
 7158 
 7159 inst       scmr        -io 1     -nt "full desc mod 4bit"
 7160            -mc^A    /*  mc = 001 */
 7161            -mf1       idb ar reg rl 8
 7162            -mf2       idb ar reg
 7163            -mf3       ar reg;
 7164 
 7165 desc 1     -ta 4;
 7166 
 7167 data 1     237 323 070 361;
 7168 
 7169 data 2     360;
 7170 
 7171 data 3     000 000 000 001;
 7172 
 7173 page      -all;
 7174 
 7175 
 7176 
 7177 /*                    scmr14
 7178 
 7179 *          changing the mask characters and offsetting
 7180 *          the first data string across a page boundary
 7181 *          with a variety of desc. mod.
 7182 *
 7183 */
 7184 
 7185 inst       scmr        -io 3    -nt "d1 split 4bit"
 7186            -mc?
 7187            -mf1       ar
 7188            -mf2       idb
 7189            /* mf3 is direct */;
 7190 
 7191 desc 1     -ta 4      -ns 8;
 7192 
 7193 data 1     -do -2      237 323 /* page bound */ 070 361;
 7194 
 7195 data 2                              360;
 7196 
 7197 data 3     000 000 000 000;
 7198 
 7199 page       -all;
 7200 
 7201 
 7202 
 7203 /*                     scmr15
 7204 
 7205 *          again using the same data but this time splitting
 7206 *          both strings across page bound. and exercising
 7207 *          the -cn option.  all desc. mod. are taken.
 7208 *
 7209 */
 7210 
 7211 inst       scmr         -io 1     -nt " d1,d" split 4 bit"
 7212            -mc?
 7213            -mf1        idb ar reg
 7214            -mf2        idb ar reg
 7215            -mf3       ar reg;
 7216 
 7217 desc 1     -ta 4       -ns 6         -cn 1;
 7218 
 7219 desc 2     -cn 3;
 7220 
 7221 data 1     -do -2      237 323  /* page boun. */  070 361;
 7222 
 7223 data 2     -do  -3    000 000 360  /* page bound. */  000;
 7224 
 7225 data 3       000 000 000 000;
 7226 
 7227 page       -all;
 7228 
 7229 
 7230 
 7231 /*                     scmr16
 7232 
 7233 *          this time there will be no match with
 7234 *          the same parameters as test 15 with a mask of
 7235 *          777. the tr indicator will be on.
 7236 *
 7237 */
 7238 
 7239 inst       scmr         -io 2    -nt "match on first try 4 bit"
 7240          -mcÿ
 7241            -mf1        idb ar reg
 7242            -mf2        idb ar reg
 7243            -mf3       ar reg;
 7244 
 7245 desc 1     -ta 4       -ns 8        -cn 1;
 7246 
 7247 desc 2     -cn 3;
 7248 
 7249 data 1     -do -2      237 323 070 361;
 7250 
 7251 data 2     -do -3      000 000 360 000;
 7252 
 7253 data 3     000 000 000 000;
 7254 
 7255 page       -all;
 7256 
 7257 
 7258 
 7259 /*                     scmr17
 7260 
 7261 *          the next three tests use the maximum amount
 7262 *          of data for string 1.  this test uses a mask
 7263 *          of 000 but searches for a char which will not
 7264 *          match ( tr ind).  no desc. mod.
 7265 *
 7266 */
 7267 
 7268 inst       scmr     -nt "no mat d1 covers 3pp 4b"
 7269            -mc^@   /*  mc = 000 */
 7270            -ir   tr
 7271            -mf1        rl 8704
 7272            /*  all desc. are direct */;
 7273 
 7274 desc 1     -ta 4;
 7275 
 7276 data 1     -do -128    (1088) 237323070361;
 7277 
 7278 data 2     000;
 7279 
 7280 data 3     000 000 021 000;
 7281 
 7282 page       -all;
 7283 
 7284 
 7285 
 7286 /*                     scmr18
 7287 
 7288 *          this test will force a match on a middle
 7289 *          char.  all desc mods. are taken.
 7290 *
 7291 */
 7292 
 7293 inst       scmr         -io 2    -nt "d1 covers 3 pp 4bit"
 7294            -mc^A    /*  mc = 001 */
 7295            -mf1        idb ar reg rl 8704
 7296            -mf2        idb ar reg
 7297            -mf3       ar reg;
 7298 
 7299 desc 1     -ta 4;
 7300 
 7301 data 1     -do -128     (1087) 237323070361 237 323 070 000;
 7302 
 7303 data 2     000;
 7304 
 7305 data 3     000 000 000 000;
 7306 
 7307 page       -all;
 7308 
 7309 
 7310 /*                      scmr19
 7311 
 7312 *          this test puts the second string on page 0
 7313 *           and tests the -cn option.
 7314 *
 7315 */
 7316 
 7317 inst       scmr          -io 2    -nt "d1 covers 3pp 4 bit"
 7318            -mc^A    /*  mc = 001 */
 7319            -mf1         ida ar reg rl 8704
 7320            -mf2         idr ar
 7321            /* mf3 is direct */;
 7322 
 7323 desc 1     -ta 4        ;
 7324 
 7325 desc 2     -cn 3;
 7326 
 7327 data 1     -do -128     237323070000   (1087) 237323070361 ;
 7328 
 7329 data 2     -do -3       000 000 000 000;
 7330 
 7331 data 3     000 000 000 000;
 7332 
 7333 
 7334 page       -all;
 7335 
 7336 
 7337 
 7338 /*                      scmr20
 7339 
 7340 *          the following tests use 6 bit data.
 7341 *          this test merely makes sure the instruction
 7342 *          is working correctly.  direct mod on descriptors.
 7343 *
 7344 */
 7345 
 7346 inst       scmr    -nt "simple test 6 bit"
 7347            -mc
 7348            /* all desc. are direct */;
 7349 
 7350 desc 1     -ta 6        -ns 12;
 7351 
 7352 data 1     414243444546 575051525353;
 7353 
 7354 data 2     57;
 7355 
 7356 data 3     000 000 000 005;
 7357 
 7358 page       -all;
 7359 
 7360 
 7361 
 7362 
 7363 /*                     scmr21
 7364 
 7365 *          same as previous test but with first string
 7366 *          split across page bound. and a variety
 7367 *          of desc. mods taken.
 7368 *
 7369 */
 7370 
 7371 inst       scmr         -io 1    -nt "d1 split 6bit"
 7372           -mc^P   /*  mc - 020 */
 7373            -mf1        ar reg
 7374            -mf2        idb
 7375            /* mf3 is direct */;
 7376 
 7377 desc 1     -ta 6       -ns 12;
 7378 
 7379 data 1     -do -4      414243444546  /*page bound */  475051525354;
 7380 
 7381 data 2     67;
 7382 
 7383 data 3     000 000 000 005;
 7384 
 7385 page       -all;
 7386 
 7387 /*                     scmr22
 7388 
 7389 *          this is the same as test 22 except the mask
 7390 *          has been set to preclude a match (tr on)
 7391           and different desc. mods. are taken.
 7392 *
 7393 */
 7394 
 7395 inst       scmr         -io 2      -nt "no match 6bit"
 7396            -mc^G
 7397            -ir   tr
 7398            -mf1        idb ar
 7399            -mf2        ar reg
 7400            -mf3        ar reg;
 7401 
 7402 desc 1     -ta 6       -ns 12;
 7403 
 7404 data 1     -do -4      414243444546 475051525354;
 7405 
 7406 data 2     67;
 7407 
 7408 data 3    000 000 000 014;
 7409 
 7410 page       -all;
 7411 
 7412 
 7413 /*                     scmr23
 7414 
 7415 *this test exercises all the desc. mods.
 7416 *          and tests the rl and -cn options.  it also
 7417 *          changes the mask char .
 7418 *
 7419 *
 7420 */
 7421 
 7422 inst       scmr         -io 3   -nt "full desc mod 6bit"
 7423            -mc^U   /* mc = 025  */
 7424            -mf1        idb ar reg rl 12
 7425            -mf2        idb ar reg
 7426            -mf3       ar reg;
 7427 
 7428 desc 1     -ta 6;
 7429 
 7430 desc 2     -cn 3;
 7431 
 7432 data 1     -do -6      414243444546475051 525354;
 7433 
 7434 data 2     -do -4      000000720000 /* page bound. */;
 7435 
 7436 data 3     000 000 000 001;
 7437 
 7438 page       -all;
 7439 
 7440 
 7441 /*                     scmr24
 7442 
 7443 *         using the -cn option on both descriptors
 7444 *         direct mod on mf3 desc.
 7445 *
 7446 */
 7447 
 7448 inst      scmr          -io 2    -nt "d1 split 6bit"
 7449           -mc^U   /* mc = 025  */
 7450           -mf1         ar rl 5
 7451           -mf2      ar
 7452           /* mf3 is direct */;
 7453 
 7454 desc 1    -ta 6        -cn 4;
 7455 
 7456 desc 2    -cn 2;
 7457 
 7458 data 1    -do -4      000000005100  /*page bound. */  525354;
 7459 
 7460 data 2    -do -2        00007200   /* page bound.  */;
 7461 
 7462 data 3    000 000 000 001;
 7463 
 7464 page      -all;
 7465 
 7466 
 7467 /*                     scmr25
 7468 
 7469 *         this test and the next one uses the maximum amount
 7470 *         of char for string 1.  this test forces a "no match"
 7471 *         condition (ir tr on) and takes the maximum mod.
 7472 *         on the desc.
 7473 *
 7474 */
 7475 
 7476 inst      scmr          -io 3      -nt "d1 covers 3pp no mat 6bit"
 7477          -mc000
 7478           -ir  tr
 7479           -mf1         idb ar reg rl 6528
 7480           -mf2      idb ar reg
 7481           -mf3       ar reg;
 7482 
 7483 desc 1    -ta 6;
 7484 
 7485 data 1    -do -128          (1087) 515151515151 515151515153;
 7486 
 7487 data 2    52;
 7488 
 7489 data 3    000 000 014 600;
 7490 
 7491 page      -all;
 7492 
 7493 
 7494 
 7495 /*                     scmr26
 7496 
 7497 *         same as previous test but a match occurs
 7498 *         on the last char.
 7499 *
 7500 */
 7501 
 7502 inst      scmr          -io 2    -nt "d1 covers 3pp 6bit"
 7503           -mc^@   /*  mc = 000 */
 7504           -mf1         idb ar reg rl 6528
 7505           -mf2         idb ar reg
 7506           -mf3       ar reg;
 7507 
 7508 
 7509 desc 1    -ta 6;
 7510 
 7511 data 1    -do -128     515151515152   (1087) 515151515151 ;
 7512 
 7513 data 2    52;
 7514 
 7515 data 3    000 000 014 572;
 7516 
 7517 page      -all;
 7518 
 7519 
 7520 ^L
 7521 
 7522 /*                  mvn1
 7523 *
 7524 *                   a simple test to see if it works
 7525 *                   9 bit scaled leading sign to 9 bit scaled trailing sign
 7526 *
 7527 */
 7528 
 7529 inst      mvn       -nt "simple"
 7530 -io 2;
 7531 
 7532 desc1 -nn 13 -sd l;
 7533 desc2 -nn 14 -sd t;
 7534 
 7535 data 1 -do 12 "+" (12) "9";
 7536 data 2 "0" (12) "9" "+";
 7537 
 7538 page -all;
 7539 
 7540 
 7541 
 7542 
 7543 
 7544 /*                  mvn2
 7545 *                   truncation fault taken
 7546 *                   all page faults taken
 7547 *                   integer to floating
 7548 */
 7549 
 7550 inst      mvn       -nt "truncation fault"
 7551 -io 1 -tby -ir tn
 7552 -mf1 ar rl 63 idb reg
 7553 -mf2 ar rl 63 idb reg;
 7554 
 7555 desc1  -cn 1 -sd l;
 7556 desc2 -cn 1 -sd f;
 7557 
 7558 data 1 -do -63 " " "+98" (15) "7435";
 7559 data 2 000 "+" "98" (14) "7435" "743" 001;
 7560 
 7561 page -all;
 7562 
 7563 
 7564 
 7565 
 7566 
 7567 /*                  mvn3
 7568 *                   this is a good test
 7569 *                   all page faults taken
 7570 *                   legal floating word developed
 7571 *                    9 bit scaled to 9 bit float
 7572 *
 7573 */
 7574 
 7575 inst      mvn       -nt "int -> float"
 7576 -io 1
 7577 
 7578 -mf1 ar rl 23 idb reg
 7579 -mf2 ar rl 28 idb reg;
 7580 
 7581 desc1 -sf 13 -sd l -cn 3;
 7582 desc2 -sd f -cn 2;
 7583 
 7584 data 1 -do 25 "   " "+" (5) "00" (12) "1";
 7585 data 2 000000 "+" (4) "000"  "00" (12) "1" 015;
 7586 
 7587 page -all;
 7588 
 7589 
 7590 
 7591 
 7592 
 7593 /*                  mvn4
 7594 *                   all page faults taken
 7595 *                   float to integer scale factor 12
 7596 *                   9 bit to 9 bit
 7597 *
 7598 */
 7599 
 7600 inst      mvn       -nt "float to int"
 7601 -io 1 -ir ng
 7602 -mf1 ar rl 28 idb reg
 7603 -mf2 ar rl 23 idb reg;
 7604 
 7605 desc1 -sd f -cn 2;
 7606 desc2 -sf 12 -sd l -cn 3;
 7607 
 7608 data 1 -do 27 "  -" (14) "0" (12) "1" 015;
 7609 data 2 000000000 "-" (9) "0" (12) "1" "0";
 7610 
 7611 page -all;
 7612 
 7613 
 7614 
 7615 
 7616 
 7617 /*                  mvn5
 7618 *                   9 bit scaled to floating 9 bit
 7619 *
 7620 */
 7621 
 7622 inst      mvn       -nt "scaled to floating"
 7623 -io 1 -rb
 7624 -mf1 ar rl 63 idb reg
 7625 -mf2 ar rl 3 idb reg;
 7626 
 7627 desc1 -sd n -sf 31;
 7628 desc2 -sd f;
 7629 
 7630 data 1 -do 62 "1" (62) "0";
 7631 data 2 "+" "1" 135;
 7632 
 7633 page -all;
 7634 
 7635 
 7636 
 7637 
 7638 
 7639 /*                  mvn6
 7640 *                   convert float 4 bit to
 7641 *                   floating 9 bit
 7642 *
 7643 */
 7644 
 7645 inst      mvn       -nt "float 9 -> float 4"
 7646 -io 2
 7647 -mf1 ar rl 3 idb reg
 7648 -mf2 ar rl 4 idb;
 7649 
 7650 desc1 -sd f;
 7651 desc2 -sd f -tn 4;
 7652 
 7653 data 1 -do -3 "+1" 135;
 7654 data 2  301135;
 7655 
 7656 page -all;
 7657 
 7658 
 7659 
 7660 
 7661 
 7662 /*                  mvn7
 7663 *                   9 bit scaled to 4 bit floating
 7664 *                    all page faults taken
 7665 *
 7666 */
 7667 inst      mvn       -nt "9 scaled to 4 float"
 7668 -io 3 -ir ng
 7669 -mf1 ar rl 25 ida reg
 7670 -mf2 ar rl 23 idb;
 7671 
 7672 desc1 -sd t ;
 7673 desc2 -sd f -cn 3 -tn 4;
 7674 
 7675 data 1 -do -1  (20) "0" (4) "3" "-";
 7676 data 2 (3) 000 320 (7) 000 003 063 0600;
 7677 
 7678 page -all;
 7679 
 7680 
 7681 
 7682 
 7683 
 7684 /*                  mvn8
 7685 *                   convert 9bit floating point to 4 bit scaled
 7686 *
 7687 */
 7688 inst      mvn       -nt "9bit float to 4bit scaled"
 7689 -io 2
 7690 -mf1 ar rl 22 idb reg
 7691 -mf2 ar rl 33 ida;
 7692 
 7693 desc1 -sd f;
 7694 desc2 -sd t -sf 5 -tn 4;
 7695 
 7696 data 1 -do -8 "+" (11) "0" (3) "123" 006;
 7697 data 2 (11) 000 022 061043022060 300;
 7698 
 7699 page -all;
 7700 
 7701 
 7702 
 7703 
 7704 
 7705 /*                  mvn9
 7706 *                    convert 9 bit floating to 4 bit scaled
 7707 *
 7708 */
 7709 inst      mvn       -nt "9bitfloat to 4 bit scaled"
 7710 -io 1
 7711 -mf1 ar rl 20 idb reg
 7712 -mf2 ar rl 63 ida;
 7713 
 7714 desc1 -sd f -cn 2;
 7715 desc2 -sd l -tn 4 -cn 1;
 7716 
 7717 data 1 "  +" (9) "0" (4) "45" 060000;
 7718 data 2 000300 (26) 000 105105105105 (8) 000;
 7719 
 7720 page -all;
 7721 
 7722 
 7723 
 7724 
 7725 /*                  mvn10
 7726 *                   9 bit scaled trailing sign to
 7727 *                   9 bit scaled leading sign
 7728 */
 7729 inst      mvn       -nt "simple"
 7730 -io 1;
 7731 desc1 -nn 14 -sd t;
 7732 desc2 -nn 13 -sd l;
 7733 
 7734 data 1 -do 12 "0" (12) "9" "+";
 7735 data 2 "+" (12) "9";
 7736 
 7737 page -all;
 7738 
 7739 
 7740 
 7741 
 7742 /*                   mvn11
 7743 *                   9 bit float to 9 bit scaled leading sign
 7744 */
 7745 
 7746 inst      mvn       -nt "float to int"
 7747 -io 1
 7748 -mf1 ar rl 63 idb reg
 7749 -mf2 ar rl 63 idb reg;
 7750 
 7751 desc1 -cn 1 -sd f;
 7752 desc2 -cn 1 -sd l;
 7753 
 7754 data 1 -do -63 " " "+98" (14) "7435" "743" 001;
 7755 data 2 000 "+98" (14) "7435" "7430";
 7756 
 7757 page -all;
 7758 
 7759 
 7760 
 7761 
 7762 /*                  mvn12
 7763 *                    9 bit float to 9 bit scaled negative indicator
 7764 */
 7765 
 7766 inst      mvn       -nt "float -> int"
 7767 -io 2
 7768 -mf1 ar rl 28 idb reg
 7769 -mf2 ar rl 23 idb reg;
 7770 
 7771 desc1 -sd f -cn 2;
 7772 desc2 -sf 13 -sd l -cn 3;
 7773 
 7774 data 1 -do 29 "  +" (4) "000" "00" (12) "1" 015;
 7775 data 2 000000000 "+" (5) "00" (12) "1";
 7776 
 7777 page -all;
 7778 
 7779 
 7780 
 7781 
 7782 /*                  mvn13
 7783 *                    9 bit scaled to 9 bit float
 7784 *                    negative indicator on
 7785 */
 7786 
 7787 inst      mvn       -nt "int to float"
 7788 -io 2 -ir ng
 7789 -mf1 ar rl 23 idb reg
 7790 -mf2 ar rl 28 idb reg;
 7791 
 7792 desc1 -sf 12 -sd l -cn 3;
 7793 desc2 -sd f -cn 2;
 7794 
 7795 data 1 -do 25 "   -" (9) "0" (12) "1" "0";
 7796 data 2 000000 "-" (13) "0" (12) "1"  "0" 014;
 7797 
 7798 page -all;
 7799 
 7800 
 7801 
 7802 
 7803 /*                  mvn14
 7804 *                   9 bit float to 9 bit scaled
 7805 *
 7806 */
 7807 
 7808 inst      mvn       -nt "float to scaled"
 7809 -io 2 -rb
 7810 -mf1 ar rl 3 idb reg
 7811 -mf2 ar rl 63 idb reg;
 7812 
 7813 desc1 -sd f;
 7814 desc2 -sd n -sf 31;
 7815 
 7816 data 1 "+1" 135;
 7817 data 2 "1" (62) "0";
 7818 
 7819 page -all;
 7820 
 7821 
 7822 
 7823 
 7824 /*                  mvn15
 7825 *                   4 bit float to 9 bit float
 7826 *
 7827 */
 7828 
 7829 inst      mvn       -nt "float 4 -> float 9"
 7830 -io 1
 7831 -mf1 ar rl 4 idb
 7832 -mf2 ar rl 3 idb reg;
 7833 
 7834 desc1 -sd f -tn 4;
 7835 desc2 -sd f;
 7836 
 7837 data 1 -do 3 301135;
 7838 data 2 "+1" 135;
 7839 
 7840 page -all;
 7841 
 7842 
 7843 
 7844 
 7845 /*                  mvn16
 7846 *                   4 bit floating to 9 bit scaled
 7847 *                   truncation and negative indicators on
 7848 *
 7849 */
 7850 
 7851 inst      mvn       -nt "4 float to 9 scaled"
 7852 -io 1 -ir ng tn
 7853 -mf1 ar rl 23 idb
 7854 -mf2 ar rl 25 ida reg;
 7855 
 7856 desc1 -sd f -cn 3 -tn 4;
 7857 desc2 -sd t -sf 2;
 7858 
 7859 data 1 -do 1 "   " 320 (7) 000 003 063060000;
 7860 data 2 (22) "0" (2) "3" "-";
 7861 
 7862 page -all;
 7863 
 7864 
 7865 
 7866 
 7867 /*                  mvn17
 7868 *                   4 bit scaled to 9 bit floating
 7869 *
 7870 */
 7871 
 7872 inst      mvn       -nt "4bit scaled to 9 bit float"
 7873 -io 3
 7874 -mf1 ar rl 33 ida
 7875 -mf2 ar rl 22 idb reg;
 7876 
 7877 desc1 -sd t -sf 5 -tn 4;
 7878 desc2 -sd f;
 7879 
 7880 data 1 (11) 000 022 061043022060 300;
 7881 data 2 "+" (10) "0" (3) "123" "0" 005;
 7882 
 7883 page -all;
 7884 
 7885 
 7886 
 7887 
 7888 /*                  mvn18
 7889 *                   4 bit scaled to 9 bit floating
 7890 :
 7891 */
 7892 inst      mvn       -nt "4bit scaled to 9 bit float"
 7893 -io 2
 7894 -mf1 ar rl 63 ida
 7895 -mf2 ar rl 20 idb reg;
 7896 
 7897 desc1 -sd l -tn 4 -cn 1;
 7898 desc2 -sd f -cn 2;
 7899 
 7900 data 1 " " 300 (26) 000 (4) 105 (8) 000;
 7901 data 2 000000 "+" (9) "0" (4) "45" "0" 000;
 7902 
 7903 page -all;
 7904 
 7905 
 7906 
 7907 
 7908 /*                  mvn19
 7909 *                   9 bit scaled to 4 bit floating
 7910 *
 7911 */
 7912 
 7913 inst      mvn        -nt "9 bit to 4 bit float"
 7914 -io 3
 7915 -mf1 ar rl 10 ida reg
 7916 -mf2 ar rl 10 ;
 7917 
 7918 desc1 -sd l -cn 1;
 7919 desc2 -sd f -tn 4;
 7920 
 7921 data 1 " +" (5) "0" (4) "1";
 7922 data 2 300 000 021 021 000;
 7923 
 7924 page -all;
 7925 
 7926 
 7927 
 7928 
 7929 /*                  mvn20
 7930 *                   9 bit scaled to 4 bit floating
 7931 *
 7932 */
 7933 
 7934 inst      mvn       -nt "9bit to 4 bit float"
 7935 -mf1 ar rl 10 idb reg
 7936 -mf2 ar rl 10;
 7937 
 7938 desc1 -sd t -cn 2;
 7939 desc2 -sd f-tn 4;
 7940 
 7941 data 1 "  " (5) "0" (4) "2" "+";
 7942 data 2 300 000 042 042 000;
 7943 
 7944 page -all;
 7945 
 7946 
 7947 
 7948 
 7949 /*                  mvn21
 7950 *
 7951 *         Move  +12.34  into  12.3400+.  Length of string 2 will be too short to handle
 7952 *         increased scaling factor so there will be significant digit overflow.
 7953 */
 7954 
 7955 inst      mvn       -nt "Sig digit overflow"  -io 1
 7956           -ir       ov
 7957           -mf1      ar  rl 5
 7958           -mf2      idr;
 7959 
 7960 
 7961 desc 1    -cn 2     -sd l     -sf -2;
 7962 
 7963 desc 2    -sd t     -sf -3    -nn 5;
 7964 
 7965 
 7966 data 1    -do -5
 7967           000 000             /* Fill for  cn.  */
 7968           053 "12"            /* Page 1. */
 7969           "34";               /* Page 2. */
 7970 
 7971 data 2    -do -4
 7972           "2340"  053;
 7973 
 7974 
 7975 page      -all;
 7976 
 7977 
 7978 ^L
 7979 
 7980 /*                           CMPN
 7981 *
 7982 *     The CMPN instruction algebtaically compares two numbers and sets the
 7983 * zero, negative, and carry indicators to indicate the results of the
 7984 * comparison.  The five possible settings of the indicators and the inputs
 7985 * which cause the settings are shown below:
 7986 *
 7987 * ZR NG CR        INPUTS          INPUT
 7988 *                              COMBINATION
 7989 *                                NUMBER
 7990 *
 7991 
 7992 *  0 0 1     neg,pos,[N1]<[N2]     1
 7993 *  0 0 1     pos,pos,[N1]<[N2]     2
 7994 *  1 0 1     neg,neg,[N1]=[N2]     3
 7995 *  1 0 1     pos,pos,[N1]=[N2]     4
 7996 *  0 1 1     neg,neg,[N1]<[N2]     5
 7997 *  0 1 1     pos,neg,[N1]<[N2]     6
 7998 *  0 1 0     pos,neg,[N1]>[N2]     7
 7999 *  0 1 0     pos,pos,[N1]>[N2]     8
 8000 *  0 0 0     neg,neg,[N1]>[N2]     9
 8001 *  0 0 0     neg,pos,[N1]>[N2]    10
 8002 *
 8003 *
 8004 * where neg,neg,[N1]<[N2] means that the 1st operand is negative,
 8005 * the second operand is negative, and the absolute value of the ist
 8006 * operand is less than the absolute value of the 2nd.
 8007 *
 8008 *
 8009 *     Each of the even numbered input combinations is tested with:
 8010 *
 8011 *  1).  both of the numbers 9-bit decimal and floating point,
 8012 *  2).  both of the numbers 9-bit decimal with leading sign,
 8013 *  3)   both of the numbers 9-bit decimal with trailing sign,
 8014 *  4).  where possible, both of the numbers 9-bit decimal and unsigned.
 8015 *
 8016 *
 8017 *     Each of the odd numbered input combinations is tested with:
 8018 *
 8019 *  1).  both of the numbers 4-bit decimal and floating point,
 8020 *  2).  both of the numbers 4-bit decimal with leading sign,
 8021 *  3).  both of the numbers 4-bit decimal with trailing sign,
 8022 *  4).  where possible, both of the numbers 4-bit decimal and unsigned.
 8023 *
 8024 *
 8025 */
 8026 
 8027 
 8028 
 8029 
 8030 
 8031 /*     cmpn1
 8032 *  The carry indicator is set.
 8033 *  Two 4-bit trailing sign operands are used.
 8034 *  The maximum number of page faults is taken.
 8035 *  Indirect descriptors are used for all operands.
 8036 *  Address register modification is used for all operands.  */
 8037 
 8038 inst cmpn
 8039 -nt "Compare 4-bit neg with 4-bit pos"
 8040 -ir cr
 8041 -mf1 idb ar
 8042 -mf2 idb ar rl 5
 8043 -io 2;
 8044 
 8045 desc 1 -tn 4 -sd t -nn 5;
 8046 desc 2 -tn 4 -sd t;
 8047 
 8048 data 1 -do -2 "76" 32;
 8049 data 2 -do -2 "98" 26;
 8050 
 8051 page -all;
 8052 
 8053 
 8054 /*     cmpn2
 8055 *  The carry indicator is set.
 8056 *  Two 4-bit leading sign operands are used.
 8057 *  The maximum number of page faults is taken.
 8058 *  Indirect descriptors are used for all operands.
 8059 *  Address register modification is used for all operands.  */
 8060 
 8061 inst cmpn
 8062 -nt "Compare 4-bit neg with 4-bit pos"
 8063 -ir cr
 8064 -mf1 idb ar rl 13
 8065 -mf2 idb ar
 8066 -io 1;
 8067 
 8068 desc 1 -tn 4 -sd l -sf -1;
 8069 desc 2 -tn 4 -sd l -sf -2 -nn 16;
 8070 
 8071 data 1 -do -2 325 "98642" 00;
 8072 data 2 -do -3 262 "3278411";
 8073 
 8074 page -all;
 8075 
 8076 
 8077 /*     cmpn3
 8078 *  The carry indicator is set.
 8079 *  Two 4-bit floating point operands are used.
 8080 *  The maximum number of page faults is taken.
 8081 *  Indirect descriptors are used for all operands.
 8082 *  Address register modification is used for all operands.  */
 8083 
 8084 inst cmpn
 8085 -nt "Compare 4-bit neg with 4-bit pos"
 8086 -ir cr
 8087 -mf1 idb ar
 8088 -mf2 idb ar
 8089 -io 2;
 8090 
 8091 desc 1 -tn 4 -sd f -nn 12;
 8092 desc 2 -tn 4 -sd f -nn 12;
 8093 
 8094 data 1 -do -2 323 "98762";
 8095 data 2 -do -1 264 "32943";
 8096 
 8097 page -all;
 8098 
 8099 
 8100 /*     cmpn4
 8101 *  The carry indicator is set.
 8102 *  Two 9-bit unsigned operands are used.
 8103 *  The maximum number of page faults is taken.
 8104 *  Indirect descriptors are used for all operands.
 8105 *  Address register modification is used for all operands.  */
 8106 
 8107 inst cmpn
 8108 -nt "Compare 9-bit pos with 9-bit pos"
 8109 -ir cr
 8110 -mf1 idb ar reg
 8111 -mf2 idb ar reg
 8112 -io 1;
 8113 
 8114 desc 1 -sd n -sf 4 -nn 63;
 8115 desc 2 -sd n -sf 5 -nn 63;
 8116 
 8117 data 1 -do -1 (15)"9834" "395";
 8118 data 2 -do -62 (15)"8765" "147";
 8119 
 8120 page -all;
 8121 
 8122 
 8123 /*     cmpn5
 8124 *  The carry indicator is set.
 8125 *  Two 9-bit trailing sign operands are used.
 8126 *  The maximum number of page faults is taken.
 8127 *  Indirect descriptors are used for all operands.
 8128 *  Address register modification is used for all operands.  */
 8129 
 8130 inst cmpn
 8131 -nt "Compare 9-bit pos with 9-bit pos"
 8132 -ir cr
 8133 -mf1 idb ar reg
 8134 -mf2 idb ar reg
 8135 -io 3;
 8136 
 8137 desc 1 -sd t -sf -2 -nn 14;
 8138 desc 2 -sd t -sf 12 -nn 14;
 8139 
 8140 data 1 -do -13 (4)"298" "3" 053;
 8141 data 2 -do -13 (4)"687" "2" 053;
 8142 
 8143 page -all;
 8144 
 8145 
 8146 /*     cmpn6
 8147 *  The carry indicator is set.
 8148 *  Two 9-bit leading sign operands are used.
 8149 *  The maximum number of page faults is taken.
 8150 *  Indirect descriptors are used for all operands.
 8151 *  Address register modification is used for all operands.  */
 8152 
 8153 inst cmpn
 8154 -nt "Compare 9-bit pos with 9-bit pos"
 8155 -ir cr
 8156 -mf1 idb ar reg
 8157 -mf2 idb ar reg
 8158 -io 2;
 8159 
 8160 desc 1 -sd l -sf 2 -nn 12;
 8161 desc 2 -sd l -sf 3 -nn 12;
 8162 
 8163 data 1 -do -4 053 (11)"3";
 8164 data 2 -do -4 053 (11)"2";
 8165 
 8166 page -all;
 8167 
 8168 
 8169 /*     cmpn7
 8170 *  The carry indicator is set.
 8171 *  Two 9-bit floating point operands are used.
 8172 *  The maximum number of page faults is taken.
 8173 *  Indirect descriptors are used for all operands.
 8174 *  Address register modification is used for all operands.  */
 8175 
 8176 inst cmpn
 8177 -nt "Compare 9-bit pos with 9-bit pos"
 8178 -ir cr
 8179 -mf1 idb ar reg rl 9
 8180 -mf2 idb ar reg
 8181 -io 1;
 8182 
 8183 desc 1 -sd f;
 8184 desc 2 -sd f -nn 8;
 8185 
 8186 data 1 -do -8 053 "7654321" 377;
 8187 data 2 -do -1 053 "987654" 002;
 8188 
 8189 page -all;
 8190 
 8191 
 8192 /*     cmpn8
 8193 *  The zero indicator is set.
 8194 *  The carry indicator is set.
 8195 *  Two 4-bit trailing sign operands are used.
 8196 *  The maximum number of page faults is taken.
 8197 *  Indirect descriptors are used for all operands.
 8198 *  Address register modification is used for all operands.  */
 8199 
 8200 inst cmpn
 8201 -nt "Compare 4-bit neg with 4-bit neg"
 8202 -ir zr cr
 8203 -mf1 idb ar
 8204 -mf2 idb ar rl 4
 8205 -io 2;
 8206 
 8207 desc 1 -tn 4 -sd t -nn 4;
 8208 desc 2 -tn 4 -sd t;
 8209 
 8210 data 1 -do -1 "7" 035;
 8211 data 2 -do -1 "7" 035;
 8212 
 8213 page -all;
 8214 
 8215 
 8216 /*     cmpn9
 8217 *  The zero indicator is set.
 8218 *  The carry indicator is set.
 8219 *  Two 4-bit leading sign operands are used.
 8220 *  The maximum number of page faults is taken.
 8221 *  Indirect descriptors are used for all operands.
 8222 *  Address register modification is used for all operands.  */
 8223 
 8224 inst cmpn
 8225 -nt "Compare 4-bit neg with 4-bit neg"
 8226 -ir zr cr
 8227 -mf1 idb ar rl 63
 8228 -mf2 idb ar rl 63
 8229 -io 1;
 8230 
 8231 desc 1 -tn 4 -sd l -sf 3;
 8232 desc 2 -tn 4 -sd l -sf 3;
 8233 
 8234 data 1 -do -31 32 (31)"5";
 8235 data 2 -do -1  32 (31)"5";
 8236 
 8237 page -all;
 8238 
 8239 
 8240 /*     cmpn10
 8241 *  The zero indicator is set.
 8242 *  The carry indicator is set.
 8243 *  Two 4-bit floating point operands are used.
 8244 *  The maximum number of page faults is taken.
 8245 *  Indirect descriptors are used for all operands.
 8246 *  Address register modification is used for all operands.  */
 8247 
 8248 inst cmpn
 8249 -nt "Compare 4-bit neg with 4-bit neg"
 8250 -ir zr cr
 8251 -mf1 idb ar
 8252 -mf2 idb ar
 8253 -io 2;
 8254 
 8255 desc 1 -tn 4 -sd f -nn 8;
 8256 desc 2 -tn 4 -sd f -nn 8;
 8257 
 8258 data 1 -do -1 325 "495";
 8259 data 2 -do -2 325 "495";
 8260 
 8261 page -all;
 8262 
 8263 
 8264 /*     cmpn11
 8265 *  The zero indicator is set.
 8266 *  The carry indicator is set.
 8267 *  Two 9-bit unsigned operands are used.
 8268 *  The maximum number of page faults is taken.
 8269 *  Indirect descriptors are used for all operands.
 8270 *  Address register modification is used for all operands.  */
 8271 
 8272 inst cmpn
 8273 -nt "Compare 9-bit pos with 9-bit pos"
 8274 -ir zr cr
 8275 -mf1 idb ar reg rl 3
 8276 -mf2 idb ar reg
 8277 -io 1;
 8278 
 8279 desc 1 -sd n -sf 1;
 8280 desc 2 -sd n -sf 1 -nn 3;
 8281 
 8282 data 1 -do -2 "432";
 8283 data 2 -do -1 "432";
 8284 
 8285 page -all;
 8286 
 8287 
 8288 /*     cmpn12
 8289 *  The zero indicator is set.
 8290 *  The carry indicator is set.
 8291 *  Two 9-bit trailing sign operands are used.
 8292 *  The maximum number of page faults is taken.
 8293 *  Indirect descriptors are used for all operands.
 8294 *  Address register modification is used for all operands.  */
 8295 
 8296 inst cmpn
 8297 -nt "Compare 9-bit pos with 9-bit pos"
 8298 -ir zr cr
 8299 -mf1 idb ar reg rl 63
 8300 -mf2 idb ar reg rl 63
 8301 -io 2;
 8302 
 8303 desc 1 -sd t;
 8304 desc 2 -sd t;
 8305 
 8306 data 1 -do -62 (12)"98765" "28" 053;
 8307 data 2 -do -61 (12)"98765" "28" 053;
 8308 
 8309 page -all;
 8310 
 8311 
 8312 
 8313 /*     cmpn13
 8314 *  The zero indicator is set.
 8315 *  The carry indicator is set.
 8316 *  Two 9-bit leading sign operands are used.
 8317 *  The maximum number of page faults is taken.
 8318 *  Indirect descriptors are used for all operands.
 8319 *  Address register modification is used for all operands.  */
 8320 
 8321 inst cmpn
 8322 -nt "Compare 9-bit pos with 9-bit pos"
 8323 -ir zr cr
 8324 -mf1 idb ar reg
 8325 -mf2 idb ar reg
 8326 -io 2;
 8327 
 8328 desc 1 -sd l -sf -8 -nn 18;
 8329 desc 2 -sd l -sf -8 -nn 18;
 8330 
 8331 data 1 -do -16 053 (5)"369" "00";
 8332 data 2 -do -15 053 (5)"369" "00";
 8333 
 8334 page -all;
 8335 
 8336 
 8337 
 8338 /*     cmpn14
 8339 *  The zero indicator is set.
 8340 *  The carry indicator is set.
 8341 *  Two 9-bit floating point operands are used.
 8342 *  The maximum number of page faults is taken.
 8343 *  Indirect descriptors are used for all operands.
 8344 *  Address register modification is used for all operands.  */
 8345 
 8346 inst cmpn
 8347 -nt "Compare 9-bit pos with 9-bit pos"
 8348 -ir zr cr
 8349 -mf1 idb ar reg
 8350 -mf2 idb ar reg
 8351 -io 1;
 8352 
 8353 desc 1 -sd f -nn 39;
 8354 desc 2 -sd f -nn 39;
 8355 
 8356 data 1 -do -30 053 (6)"125897" "4" 017;
 8357 data 2 -do -24 053 (6)"125897" "4" 017;
 8358 
 8359 page -all;
 8360 
 8361 
 8362 /*     cmpn15
 8363 *  The negative indicator is set.
 8364 *  The carry indicator is set.
 8365 *  Two 4-bit trailing sign operands are used.
 8366 *  The maximum number of page faults is taken.
 8367 *  Indirect descriptors are used for all operands.
 8368 *  Address register modification is used for all operands.  */
 8369 
 8370 inst cmpn
 8371 -nt "Compare 4-bit neg with 4-bit neg"
 8372 -ir ng cr
 8373 -mf1 idb ar
 8374 -mf2 idb ar
 8375 -io 3;
 8376 
 8377 desc 1 -tn 4 -sd t -sf -1 -nn 13;
 8378 desc 2 -tn 4 -sd t -sf 1  -nn 63;
 8379 
 8380 data 1 -do -1  "123456" 32;
 8381 data 2 -do -30 (15)"12" "9" 32;
 8382 
 8383 page -all;
 8384 
 8385 
 8386 /*     cmpn16
 8387 *  The negative indicator is set.
 8388 *  The carry indicator is set.
 8389 *  Two 4-bit leading sign operands are used.
 8390 *  The maximum number of page faults is taken.
 8391 *  Indirect descriptors are used for all operands.
 8392 *  Address register modification is used for all operands.  */
 8393 
 8394 inst cmpn
 8395 -nt "Compare 4-bit neg with 4-bit neg"
 8396 -ir ng cr
 8397 -mf1 idb ar
 8398 -mf2 idb ar
 8399 -io 2;
 8400 
 8401 desc 1 -tn 4 -sd l -sf 1 -nn 6;
 8402 desc 2 -tn 4 -sd l -sf 2 -nn 6;
 8403 
 8404 data 1 -do -2 321 "44";
 8405 data 2 -do -2 321 "44";
 8406 
 8407 page -all;
 8408 
 8409 
 8410 /*     cmpn17
 8411 *  The negative indicator is set.
 8412 *  The carry indicator is set.
 8413 *  Two 4-bit floating point operands are used.
 8414 *  The maximum number of page faults is taken.
 8415 *  Indirect descriptors are used for all operands.
 8416 *  Address register modification is used for all operands.  */
 8417 
 8418 inst cmpn
 8419 -nt "Compare 4-bit neg with 4-bit neg"
 8420 -ir ng cr
 8421 -mf1 idb ar
 8422 -mf2 idb ar
 8423 -io 2;
 8424 
 8425 desc 1 -tn 4 -sd f -nn 5;
 8426 desc 2 -tn 4 -sd f -nn 5;
 8427 
 8428 data 1 -do -1 324 "5" 00;
 8429 data 2 -do -1 327 "6" 00;
 8430 
 8431 page -all;
 8432 
 8433 
 8434 /*     cmpn18
 8435 *  The negative indicator is set.
 8436 *  The carry indicator is set.
 8437 *  Two 9-bit trailing sign operands are used.
 8438 *  The maximum number of page faults is taken.
 8439 *  Indirect descriptors are used for all operands.
 8440 *  Address register modification is used for all operands.  */
 8441 
 8442 inst cmpn
 8443 -nt "Compare 9-bit pos with 9-bit neg"
 8444 -ir ng cr
 8445 -mf1 idb ar reg
 8446 -mf2 idb ar reg
 8447 -io 1;
 8448 
 8449 desc 1 -sd t -nn 8;
 8450 desc 2 -sd t -nn 9;
 8451 
 8452 data 1 -do -4 "4567821" 053;
 8453 data 2 -do -8 "92814372" 055;
 8454 
 8455 page -all;
 8456 
 8457 
 8458 /*     cmpn19
 8459 *  The negative indicator is set.
 8460 *  The carry indicator is set.
 8461 *  Two 9-bit leading sign operands are used.
 8462 *  The maximum number of page faults is taken.
 8463 *  Indirect descriptors are used for all operands.
 8464 *  Address register modification is used for all operands.  */
 8465 
 8466 inst cmpn
 8467 -nt "Compare 9-bit pos with 9-bit neg"
 8468 -ir ng cr
 8469 -mf1 idb ar reg
 8470 -mf2 idb ar reg
 8471 -io 2;
 8472 
 8473 desc 1 -sd l -sf -5 -nn 63;
 8474 desc 2 -sd l -sf -4 -nn 63;
 8475 
 8476 data 1 -do -60 053 "92" (15)"6391";
 8477 data 2 -do -4  055 "82" (15)"7482";
 8478 
 8479 page -all;
 8480 
 8481 
 8482 
 8483 /*     cmpn20
 8484 *  The negative indicator is set.
 8485 *  The carry indicator is set.
 8486 *  Two 9-bit floating point operands are used.
 8487 *  The maximum number of page faults is taken.
 8488 *  Indirect descriptors are used for all operands.
 8489 *  Address register modification is used for all operands.  */
 8490 
 8491 inst cmpn
 8492 -nt "Compare 9-bit pos with 9-bit neg"
 8493 -ir ng cr
 8494 -mf1 idb ar reg
 8495 -mf2 idb ar reg
 8496 -io3;
 8497 
 8498 desc 1 -sd f -nn 11;
 8499 desc 2 -sd f -nn 11;
 8500 
 8501 data 1 -do -10 053  "345678901" 001;
 8502 data 2 -do -1  055  "456789012" 002;
 8503 
 8504 page -all;
 8505 
 8506 
 8507 
 8508 /*     cmpn21
 8509 *  The negative indicator is set.
 8510 *  Two 4-bit trailing sign operands are used.
 8511 *  The maximum number of page faults is taken.
 8512 *  Indirect descriptors are used for all operands.
 8513 *  Address register modification is used for all operands.  */
 8514 
 8515 inst cmpn
 8516 -nt "Compare 4-bit pos with 4-bit neg"
 8517 -ir ng
 8518 -mf1 idb ar
 8519 -mf2 idb ar
 8520 -io 1;
 8521 
 8522 desc 1 -tn 4 -sd t -nn 3;
 8523 desc 2 -tn 4 -sd t -nn 3;
 8524 
 8525 data 1 -do -1 "4" 26;
 8526 data 2 -do -1 "3" 32;
 8527 
 8528 page -all;
 8529 
 8530 
 8531 /*     cmpn22
 8532 *  The negative indicator is set.
 8533 *  Two 4-bit leading sign operands are used.
 8534 *  The maximum number of page faults is taken.
 8535 *  Indirect descriptors are used for all operands.
 8536 *  Address register modification is used for all operands.  */
 8537 
 8538 inst cmpn
 8539 -nt "Compare 9-bit pos with 9-bit neg"
 8540 -ir ng
 8541 -mf1 idb ar
 8542 -mf2 idb ar
 8543 -io 1;
 8544 
 8545 desc 1 -tn 4 -sd l -nn 5;
 8546 desc 2 -tn 4 -sd l -nn 4;
 8547 
 8548 data 1 -do -2 267 000  00;
 8549 data 2 -do -1 324 000;
 8550 
 8551 page -all;
 8552 
 8553 
 8554 /*     cmpn23
 8555 *  The negative indicator is set.
 8556 *  Two 4-bit floating point operands are used.
 8557 *  The maximum number of page faults is taken.
 8558 *  Indirect descriptors are used for all operands.
 8559 *  Address register modification is used for all operands.  */
 8560 
 8561 inst cmpn
 8562 -nt "Compare 9-bit pos with 9-bit neg"
 8563 -ir ng
 8564 -mf1 idb ar
 8565 -mf2 idb ar
 8566 -io 1;
 8567 
 8568 desc 1 -tn 4 -sd f -nn 63;
 8569 desc 2 -tn 4 -sd f -nn 63;
 8570 
 8571 data 1 -do -4 270 (14)"10" 00000000;
 8572 data 2 -do -4 321 (14)"10" 00000000;
 8573 
 8574 page -all;
 8575 
 8576 
 8577 /*     cmpn24
 8578 *  The negative indicator is set.
 8579 *  Two 9-bit unsigned operands are used.
 8580 *  The maximum number of page faults is taken.
 8581 *  Indirect descriptors are used for all operands.
 8582 *  Address register modification is used for all operands.  */
 8583 
 8584 inst cmpn
 8585 -nt "Compare 9-bit pos with 9-bit pos"
 8586 -ir ng
 8587 -mf1 idb ar reg
 8588 -mf2 idb ar reg
 8589 -io 3;
 8590 
 8591 desc 1 -sd n -sf 4 -nn 5;
 8592 desc 2 -sd n -sf 1 -nn 4;
 8593 
 8594 data 1 -do -1 "12345";
 8595 data 2 -do -3 "2345";
 8596 
 8597 page -all;
 8598 
 8599 
 8600 /*     cmpn25
 8601 *  The negative indicator is set.
 8602 *  Two 9-bit trailing sign operands are used.
 8603 *  The maximum number of page faults is taken.
 8604 *  Indirect descriptors are used for all operands.
 8605 *  Address register modification is used for all operands.  */
 8606 
 8607 inst cmpn
 8608 -nt "Compare 9-bit pos with 9-bit pos"
 8609 -ir ng
 8610 -mf1 idb ar reg
 8611 -mf2 idb ar reg
 8612 -io 1;
 8613 
 8614 desc 1 -sd t  -sf 4  -nn 37;
 8615 desc 2 -sd t  -sf 3  -nn 37;
 8616 
 8617 data 1 -do -36 (12)"965" 053;
 8618 data 2 -do -1  (12)"965" 053;
 8619 
 8620 page -all;
 8621 
 8622 
 8623 /*     cmpn26
 8624 *  The negative indicator is set.
 8625 *  Two 9-bit leading sign operands are used.
 8626 *  The maximum number of page faults is taken.
 8627 *  Indirect descriptors are used for all operands.
 8628 *  Address register modification is used for all operands.  */
 8629 
 8630 inst cmpn
 8631 -nt "Compare 9-bit pos with 9-bit pos"
 8632 -ir ng
 8633 -mf1 idb ar reg
 8634 -mf2 idb ar reg
 8635 -io 1;
 8636 
 8637 desc 1 -sd l  -sf 2  -nn 63;
 8638 desc 2 -sd l  -sf 2  -nn 63;
 8639 
 8640 data 1 -do -3  053 "95" (15)"2398";
 8641 data 2 -do -4  053 "68" (15)"4782";
 8642 
 8643 page -all;
 8644 
 8645 
 8646 /*     cmpn27
 8647 *  The negative indicator is set.
 8648 *  Two 9-bit floating point operands are used.
 8649 *  The maximum number of page faults is taken.
 8650 *  Indirect descriptors are used for all operands.
 8651 *  Address register modification is used for all operands.  */
 8652 
 8653 inst cmpn
 8654 -nt "Compare 9-bit pos with 9-bit pos"
 8655 
 8656 -ir ng
 8657 -mf1 idb ar reg
 8658 -mf2 idb ar reg
 8659 -io 2;
 8660 
 8661 desc 1 -sd f  -nn 63;
 8662 desc 2 -sd f  -nn 63;
 8663 
 8664 data 1 -do -4  053 "4"  (15)"8901"  002;
 8665 data 2 -do -3  053 "4"  (15)"8901"  001;
 8666 
 8667 page -all;
 8668 
 8669 
 8670 
 8671 /*     cmpn28
 8672 *  Two 4-bit trailing sign operands are used.
 8673 *  The maximum number of page faults is taken.
 8674 *  Indirect descriptors are used for all operands.
 8675 *  Address register modification is used for all operands.  */
 8676 
 8677 inst cmpn
 8678 -nt "Compare 4-bit neg with 4-bit neg"
 8679 -mf1 idb ar
 8680 -mf2 idb ar
 8681 -io 1;
 8682 
 8683 desc 1 -tn 4 -sd t -nn 39;
 8684 desc 2 -tn 4 -sd t -nn 39;
 8685 
 8686 data 1 -do -19 (19)"5" 32;
 8687 data 2 -do -19 (19)"4" 32;
 8688 
 8689 page -all;
 8690 
 8691 
 8692 /*     cmpn29
 8693 *  Two 4-bit leading sign operands are used.
 8694 *  The maximum number of page faults is taken.
 8695 *  Indirect descriptors are used for all operands.
 8696 *  Address register modification is used for all operands.  */
 8697 
 8698 inst cmpn
 8699 -nt "Compare 4-bit neg with 4-bit neg"
 8700 -mf1 idb ar rl 7
 8701 -mf2 idb ar
 8702 -io 2;
 8703 
 8704 desc 1 -tn 4 -sd l -sf 5 ;
 8705 desc 2 -tn 4 -sd l -sf 1 -nn 7;
 8706 
 8707 data 1 -do -3 324 "98" 00;
 8708 data 2 -do -1 323 "64" 00;
 8709 
 8710 page -all;
 8711 
 8712 
 8713 /*     cmpn30
 8714 *  Two 4-bit floating point operands are used.
 8715 *  The maximum number of page faults is taken.
 8716 *  Indirect descriptors are used for all operands.
 8717 *  Address register modification is used for all operands.  */
 8718 
 8719 inst cmpn
 8720 -nt "Compare 4-bit neg with 4-bit neg"
 8721 -mf1 idb ar
 8722 -mf2 idb ar  rl 60
 8723 -io 2;
 8724 
 8725 desc 1 -tn 4 -sd f -nn 63;
 8726 desc 2 -tn 4 -sd f;
 8727 
 8728 data 1 -do -1 321 (15)"892" 00;
 8729 data 2 -do -29 322 (14)"98" 000;
 8730 
 8731 page -all;
 8732 
 8733 
 8734 /*     cmpn31
 8735 *  Two 9-bit trailing sign operands are used.
 8736 *  The maximum number of page faults is taken.
 8737 *  Indirect descriptors are used for all operands.
 8738 *  Address register modification is used for all operands.  */
 8739 
 8740 inst cmpn
 8741 -nt "Compare 9-bit neg with 9-bit pos"
 8742 -mf1 idb ar reg rl 63
 8743 -mf2 idb ar reg
 8744 -io 2;
 8745 
 8746 desc 1 -sd t -sf 12;
 8747 desc 2 -sd t -sf -1 -nn 5;
 8748 
 8749 data 1 -do -62 (31)"98" 055;
 8750 data 2 -do -4  "5432" 053;
 8751 
 8752 page -all;
 8753 
 8754 
 8755 /*     cmpn32
 8756 *  Two 9-bit leading sign operands are used.
 8757 *  The maximum number of page faults is taken.
 8758 *  Indirect descriptors are used for all operands.
 8759 *  Address register modification is used for all operands.  */
 8760 
 8761 inst cmpn
 8762 -nt "Compare 9-bit neg with 9-bit pos"
 8763 -mf1 idb ar reg
 8764 -mf2 idb ar reg
 8765 -io 2;
 8766 
 8767 desc 1 -sd l -sf -4 -nn 6;
 8768 desc 2 -sd l -sf -6 -nn 6;
 8769 
 8770 data 1 -do -4 055 "42816";
 8771 data 2 -do -5 053 "98321";
 8772 
 8773 page -all;
 8774 
 8775 
 8776 /*     cmpn33
 8777 *  Two 9-bit floating point operands are used.
 8778 *  The maximum number of page faults is taken.
 8779 *  Indirect descriptors are used for all operands.
 8780 *  Address register modification is used for all operands.  */
 8781 
 8782 inst cmpn
 8783 
 8784 -nt "Compare 9-bit neg with 9-bit pos"
 8785 -mf1 idb ar reg rl 63
 8786 -mf2 idb ar reg rl 63
 8787 -io 1;
 8788 
 8789 desc 1 -sd f ;
 8790 desc 2 -sd f ;
 8791 
 8792 data 1 -do -8 055 (15)"9999" "8" 004;
 8793 data 2 -do -9 053 (15)"8777" "4" 002;
 8794 
 8795 page -all;
 8796 
 8797 
 8798 ^L
 8799 
 8800 
 8801 /*               mvne1
 8802 
 8803 *       these tests exercise the mvne instruction
 8804 *       using the 4 to 9 bit option and the 9 to 9
 8805 *       bit options on the data.  the same template
 8806 *       for the mop sequence will be used for all
 8807 *       tests with various desc and data mod.
 8808 *
 8809 */
 8810 
 8811 inst    mvne   -nt "simple test no mod 9-9"
 8812           -mf2 rl 29;
 8813 
 8814 desc 1    -nn 24  -sd n;
 8815 
 8816 
 8817 desc 3    -nn 33  ;
 8818 
 8819 data 1 /* the 9 bit data arranged in sequence of use */
 8820           /* the strings are 0012 0012 3456 3456 0012 3456 */
 8821 
 8822         "001200123456345600123456";
 8823 
 8824 data 2  /* ***mop sequence arranged in order *** */
 8825 
 8826        104    /* mvzb */
 8827        060    /* ses es reset */
 8828        124    /* mvza */
 8829        064    /* ses es reset bz set */
 8830        144    /* mfls */
 8831        064    /* ses */
 8832        040    /* enf for "+" insert. */
 8833        200 "="  /* insb */
 8834           220 "q"   /* insa insert "q" */
 8835        260 "q"  /* insp */
 8836        304    /* ign */
 8837        344    /* mvc */
 8838        420 "12345678"   /* change table with string shown */
 8839        024    /* insm */
 8840        401 "2"   /* load table entry 1 with "2" */
 8841        024    /* insm */
 8842        364    /* mors */
 8843       /* end of mop string */;
 8844 
 8845 data 3  /* arranged in order */
 8846 
 8847        "  12"
 8848        "**12"
 8849        "+3456"
 8850        "+"
 8851        "="
 8852        "q"
 8853        "q"
 8854        "0012"
 8855       "1111"
 8856        "2222"
 8857        "3777";
 8858 
 8859 page   -all;
 8860 
 8861 /*               mvne2
 8862 
 8863 *       these tests exercise the mvne instruction
 8864 *       using the 4 to 9 bit option and the 9 to 9
 8865 *       bit options on the data.  the same template
 8866 *       for the mop sequence will be used for all
 8867 *       tests with various desc and data mod.
 8868 *
 8869 */
 8870 
 8871 inst     mvne    -nt "offset inst and desc mod 9-9"   -io 3
 8872           -mf1 idr reg
 8873           -mf2 reg rl 29
 8874           -mf3 idb;
 8875 
 8876 desc 1    -nn 24  -sd n;
 8877 
 8878 
 8879 desc 3    -nn 33  ;
 8880 
 8881 data 1 /* the 9 bit data arranged in sequence of use */
 8882           /* the strings are 0012 0012 3456 3456 0012 3456 */
 8883 
 8884         "001200123456345600123456";
 8885 
 8886 data 2  /* ***mop sequence arranged in order *** */
 8887 
 8888        104    /* mvzb */
 8889        060    /* ses es reset */
 8890        124    /* mvza */
 8891        064    /* ses es reset bz set */
 8892        144    /* mfls */
 8893        064    /* ses */
 8894        040    /* enf for "+" insert. */
 8895        200 "="  /* insb */
 8896           220 "q"   /* insa insert "q" */
 8897        260 "q"  /* insp */
 8898        304    /* ign */
 8899        344    /* mvc */
 8900        420 "12345678"   /* change table with string shown */
 8901        024    /* insm */
 8902        401 "2"   /* load table entry 1 with "2" */
 8903        024    /* insm */
 8904        364    /* mors */
 8905       /* end of mop string */;
 8906 
 8907 data 3  /* arranged in order */
 8908 
 8909        "  12"
 8910        "**12"
 8911        "+3456"
 8912        "+"
 8913        "="
 8914        "q"
 8915        "q"
 8916        "0012"
 8917       "1111"
 8918        "2222"
 8919        "3777";
 8920 
 8921 page   -all;
 8922 
 8923 /*               mvne3
 8924 
 8925 *       these tests exercise the mvne instruction
 8926 *       using the 4 to 9 bit option and the 9 to 9
 8927 *       bit options on the data.  the same template
 8928 *       for the mop sequence will be used for all
 8929 *       tests with various desc and data mod.
 8930 *
 8931 */
 8932 
 8933 inst     mvne    -nt "offset inst and d1 offset 9-9"   -io 3
 8934           -mf1 idr reg
 8935           -mf2 reg rl 29
 8936           -mf3 idb;
 8937 
 8938 desc 1    -nn 24  -sd n;
 8939 
 8940 
 8941 desc 3    -nn 33  ;
 8942 
 8943 
 8944 data 1 /* the 9 bit data arranged in sequence of use */
 8945           -do -16
 8946           /* the strings are 0012 0012 3456 3456 0012 3456 */
 8947 
 8948         "001200123456345600123456";
 8949 
 8950 data 2  /* ***mop sequence arranged in order *** */
 8951 
 8952        104    /* mvzb */
 8953        060    /* ses es reset */
 8954        124    /* mvza */
 8955        064    /* ses es reset bz set */
 8956        144    /* mfls */
 8957        064    /* ses */
 8958        040    /* enf for "+" insert. */
 8959        200 "="  /* insb */
 8960           220 "q"   /* insa insert "q" */
 8961        260 "q"  /* insp */
 8962        304    /* ign */
 8963        344    /* mvc */
 8964        420 "12345678"   /* change table with string shown */
 8965        024    /* insm */
 8966        401 "2"   /* load table entry 1 with "2" */
 8967        024    /* insm */
 8968        364    /* mors */
 8969       /* end of mop string */;
 8970 
 8971 data 3  /* arranged in order */
 8972 
 8973        "  12"
 8974        "**12"
 8975        "+3456"
 8976        "+"
 8977        "="
 8978        "q"
 8979        "q"
 8980        "0012"
 8981       "1111"
 8982        "2222"
 8983        "3777";
 8984 
 8985 page   -all;
 8986 
 8987 /*               mvne4
 8988 
 8989 *       these tests exercise the mvne instruction
 8990 *       using the 4 to 9 bit option and the 9 to 9
 8991 *       bit options on the data.  the same template
 8992 *       for the mop sequence will be used for all
 8993 *       tests with various desc and data mod.
 8994 *
 8995 */
 8996 
 8997 inst     mvne    -nt "offset d2 and d1 offset 9-9"   -io 3
 8998           -mf1 idr reg
 8999           -mf2 reg rl 29
 9000           -mf3 idb;
 9001 
 9002 desc 1    -nn 24  -sd n;
 9003 
 9004 
 9005 desc 3    -nn 33  ;
 9006 
 9007 
 9008 data 1 /* the 9 bit data arranged in sequence of use */
 9009           -do -16
 9010           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9011 
 9012         "001200123456345600123456";
 9013 
 9014 data 2  /* ***mop sequence arranged in order *** */
 9015           -do -20
 9016 
 9017        104    /* mvzb */
 9018        060    /* ses es reset */
 9019        124    /* mvza */
 9020        064    /* ses es reset bz set */
 9021        144    /* mfls */
 9022        064    /* ses */
 9023        040    /* enf for "+" insert. */
 9024        200 "="  /* insb */
 9025           220 "q"   /* insa insert "q" */
 9026        260 "q"  /* insp */
 9027        304    /* ign */
 9028        344    /* mvc */
 9029        420 "12345678"   /* change table with string shown */
 9030        024    /* insm */
 9031        401 "2"   /* load table entry 1 with "2" */
 9032        024    /* insm */
 9033        364    /* mors */
 9034       /* end of mop string */;
 9035 
 9036 data 3  /* arranged in order */
 9037 
 9038        "  12"
 9039        "**12"
 9040        "+3456"
 9041        "+"
 9042        "="
 9043        "q"
 9044        "q"
 9045        "0012"
 9046       "1111"
 9047        "2222"
 9048        "3777";
 9049 
 9050 page   -all;
 9051 
 9052 /*               mvne5
 9053 
 9054 *       these tests exercise the mvne instruction
 9055 *       using the 4 to 9 bit option and the 9 to 9
 9056 *       bit options on the data.  the same template
 9057 *       for the mop sequence will be used for all
 9058 *       tests with various desc and data mod.
 9059 *
 9060 */
 9061 
 9062 inst     mvne    -nt "offset d2 and d1 and d3 9-9"   -io 3
 9063           -mf1 idr reg
 9064           -mf2 reg rl 29
 9065           -mf3 idb;
 9066 
 9067 desc 1    -nn 24  -sd n;
 9068 
 9069 
 9070 desc 3    -nn 33  ;
 9071 
 9072 
 9073 data 1 /* the 9 bit data arranged in sequence of use */
 9074           -do -16
 9075           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9076 
 9077         "001200123456345600123456";
 9078 
 9079 data 2  /* ***mop sequence arranged in order *** */
 9080           -do -20
 9081 
 9082        104    /* mvzb */
 9083        060    /* ses es reset */
 9084        124    /* mvza */
 9085        064    /* ses es reset bz set */
 9086        144    /* mfls */
 9087        064    /* ses */
 9088        040    /* enf for "+" insert. */
 9089        200 "="  /* insb */
 9090           220 "q"   /* insa insert "q" */
 9091        260 "q"  /* insp */
 9092        304    /* ign */
 9093        344    /* mvc */
 9094        420 "12345678"   /* change table with string shown */
 9095        024    /* insm */
 9096        401 "2"   /* load table entry 1 with "2" */
 9097        024    /* insm */
 9098        364    /* mors */
 9099       /* end of mop string */;
 9100 
 9101 data 3  /* arranged in order */
 9102           -do -8
 9103 
 9104        "  12"
 9105        "**12"
 9106        "+3456"
 9107        "+"
 9108        "="
 9109        "q"
 9110        "q"
 9111        "0012"
 9112       "1111"
 9113        "2222"
 9114        "3777";
 9115 
 9116 page   -all;
 9117 
 9118 /*               mvne6
 9119 
 9120 *       these tests exercise the mvne instruction
 9121 *       using the 4 to 9 bit option and the 9 to 9
 9122 *       bit options on the data.  the same template
 9123 *       for the mop sequence will be used for all
 9124 *       tests with various desc and data mod.
 9125 *
 9126 */
 9127 
 9128 inst     mvne    -nt "offset d2 and d1 and d3 9-9"   -io 3
 9129           -mf1 idr reg
 9130           -mf2 reg rl 29
 9131           -mf3 idb;
 9132 
 9133 desc 1    -cn 3     -nn 24  -sd n;
 9134 
 9135 
 9136 desc 3    -nn 33  ;
 9137 
 9138 
 9139 data 1 /* the 9 bit data arranged in sequence of use */
 9140           -do -16
 9141           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9142 
 9143         "***"  /* for cn */   "001200123456345600123456";
 9144 
 9145 data 2  /* ***mop sequence arranged in order *** */
 9146           -do -20
 9147 
 9148        104    /* mvzb */
 9149        060    /* ses es reset */
 9150        124    /* mvza */
 9151        064    /* ses es reset bz set */
 9152        144    /* mfls */
 9153        064    /* ses */
 9154        040    /* enf for "+" insert. */
 9155        200 "="  /* insb */
 9156           220 "q"   /* insa insert "q" */
 9157        260 "q"  /* insp */
 9158        304    /* ign */
 9159        344    /* mvc */
 9160        420 "12345678"   /* change table with string shown */
 9161        024    /* insm */
 9162        401 "2"   /* load table entry 1 with "2" */
 9163        024    /* insm */
 9164        364    /* mors */
 9165       /* end of mop string */;
 9166 
 9167 data 3  /* arranged in order */
 9168           -do -8
 9169 
 9170        "  12"
 9171        "**12"
 9172        "+3456"
 9173        "+"
 9174        "="
 9175        "q"
 9176        "q"
 9177        "0012"
 9178       "1111"
 9179        "2222"
 9180        "3777";
 9181 
 9182 page   -all;
 9183 
 9184 /*               mvne7
 9185 
 9186 *       these tests exercise the mvne instruction
 9187 *       using the 4 to 9 bit option and the 9 to 9
 9188 *       bit options on the data.  the same template
 9189 *       for the mop sequence will be used for all
 9190 *       tests with various desc and data mod.
 9191 *
 9192 */
 9193 
 9194 inst      mvne      -nt "d1 totally on p0 9-9"    -io 2
 9195           -mf1 idr ar
 9196           -mf2 reg rl 29
 9197           -mf3 ida ar reg;
 9198 
 9199 desc 1    -cn 3     -nn 24  -sd n;
 9200 
 9201 
 9202 desc 3    -nn 33  ;
 9203 
 9204 
 9205 data 1 /* the 9 bit data arranged in sequence of use */
 9206           -do -24
 9207           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9208 
 9209         "***"  /* for cn */   "001200123456345600123456";
 9210 
 9211 data 2  /* ***mop sequence arranged in order *** */
 9212           -do -20
 9213 
 9214        104    /* mvzb */
 9215        060    /* ses es reset */
 9216        124    /* mvza */
 9217        064    /* ses es reset bz set */
 9218        144    /* mfls */
 9219        064    /* ses */
 9220        040    /* enf for "+" insert. */
 9221        200 "="  /* insb */
 9222           220 "q"   /* insa insert "q" */
 9223        260 "q"  /* insp */
 9224        304    /* ign */
 9225        344    /* mvc */
 9226        420 "12345678"   /* change table with string shown */
 9227        024    /* insm */
 9228        401 "2"   /* load table entry 1 with "2" */
 9229        024    /* insm */
 9230        364    /* mors */
 9231       /* end of mop string */;
 9232 
 9233 data 3  /* arranged in order */
 9234           -do -8
 9235 
 9236        "  12"
 9237        "**12"
 9238        "+3456"
 9239        "+"
 9240        "="
 9241        "q"
 9242        "q"
 9243        "0012"
 9244       "1111"
 9245        "2222"
 9246        "3777";
 9247 
 9248 page   -all;
 9249 
 9250 
 9251 /*               mvne8
 9252 
 9253 *       these tests exercise the mvne instruction
 9254 *       using the 4 to 9 bit option and the 9 to 9
 9255 *       bit options on the data.  the same template
 9256 *       for the mop sequence will be used for all
 9257 *       tests with various desc and data mod.
 9258 *
 9259 */
 9260 
 9261 inst      mvne      -nt "d2 totally on p0 9-9"    -io 2
 9262           -mf1 idr ar
 9263           -mf2 ar reg rl 29
 9264           -mf3 ida ar reg;
 9265 
 9266 desc 1    -cn 3     -nn 24  -sd n;
 9267 
 9268 
 9269 desc 3    -nn 33  ;
 9270 
 9271 
 9272 data 1 /* the 9 bit data arranged in sequence of use */
 9273           -do -20
 9274           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9275 
 9276         "***"  /* for cn */   "001200123456345600123456";
 9277 
 9278 data 2  /* ***mop sequence arranged in order *** */
 9279           -do -30
 9280 
 9281        104    /* mvzb */
 9282        060    /* ses es reset */
 9283        124    /* mvza */
 9284        064    /* ses es reset bz set */
 9285        144    /* mfls */
 9286        064    /* ses */
 9287        040    /* enf for "+" insert. */
 9288        200 "="  /* insb */
 9289           220 "q"   /* insa insert "q" */
 9290        260 "q"  /* insp */
 9291        304    /* ign */
 9292        344    /* mvc */
 9293        420 "12345678"   /* change table with string shown */
 9294        024    /* insm */
 9295        401 "2"   /* load table entry 1 with "2" */
 9296        024    /* insm */
 9297        364    /* mors */
 9298       /* end of mop string */;
 9299 
 9300 data 3  /* arranged in order */
 9301           -do -8
 9302 
 9303        "  12"
 9304        "**12"
 9305        "+3456"
 9306        "+"
 9307        "="
 9308        "q"
 9309        "q"
 9310        "0012"
 9311       "1111"
 9312        "2222"
 9313        "3777";
 9314 
 9315 page   -all;
 9316 
 9317 /*               mvne9
 9318 
 9319 *       these tests exercise the mvne instruction
 9320 *       using the 4 to 9 bit option and the 9 to 9
 9321 *       bit options on the data.  the same template
 9322 *       for the mop sequence will be used for all
 9323 *       tests with various desc and data mod.
 9324 *
 9325 */
 9326 
 9327 inst      mvne      -nt "d3 totally on p0 9-9"    -io 2
 9328           -mf1 idr ar
 9329           -mf2 reg ar rl 29
 9330           -mf3 ida ar reg;
 9331 
 9332 desc 1    -cn 3     -nn 24  -sd n;
 9333 
 9334 
 9335 desc 3    -nn 33  ;
 9336 
 9337 
 9338 data 1 /* the 9 bit data arranged in sequence of use */
 9339           -do -20
 9340           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9341 
 9342         "***"  /* for cn */   "001200123456345600123456";
 9343 
 9344 data 2  /* ***mop sequence arranged in order *** */
 9345           -do -10
 9346 
 9347        104    /* mvzb */
 9348        060    /* ses es reset */
 9349        124    /* mvza */
 9350        064    /* ses es reset bz set */
 9351        144    /* mfls */
 9352        064    /* ses */
 9353        040    /* enf for "+" insert. */
 9354        200 "="  /* insb */
 9355           220 "q"   /* insa insert "q" */
 9356        260 "q"  /* insp */
 9357        304    /* ign */
 9358        344    /* mvc */
 9359        420 "12345678"   /* change table with string shown */
 9360        024    /* insm */
 9361        401 "2"   /* load table entry 1 with "2" */
 9362        024    /* insm */
 9363        364    /* mors */
 9364       /* end of mop string */;
 9365 
 9366 data 3  /* arranged in order */
 9367           -do -34
 9368 
 9369        "  12"
 9370        "**12"
 9371        "+3456"
 9372        "+"
 9373        "="
 9374        "q"
 9375        "q"
 9376        "0012"
 9377       "1111"
 9378        "2222"
 9379        "3777";
 9380 
 9381 page   -all;
 9382 
 9383 /*               mvne10
 9384 
 9385 *       these tests exercise the mvne instruction
 9386 *       using the 4 to 9 bit option and the 9 to 9
 9387 *       bit options on the data.  the same template
 9388 *       for the mop sequence will be used for all
 9389 *       tests with various desc and data mod.
 9390 *
 9391 */
 9392 
 9393 inst      mvne      -nt "all data totally on p0 9-9"    -io 2
 9394           -mf1 idr ar
 9395           -mf2 reg ar rl 29
 9396           -mf3 ida ar reg;
 9397 
 9398 desc 1    -cn 3     -nn 24  -sd n;
 9399 
 9400 
 9401 desc 3    -nn 33  ;
 9402 
 9403 
 9404 data 1 /* the 9 bit data arranged in sequence of use */
 9405           -do -30
 9406           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9407 
 9408         "***"  /* for cn */   "001200123456345600123456";
 9409 
 9410 data 2  /* ***mop sequence arranged in order *** */
 9411           -do -30
 9412 
 9413        104    /* mvzb */
 9414        060    /* ses es reset */
 9415        124    /* mvza */
 9416        064    /* ses es reset bz set */
 9417        144    /* mfls */
 9418        064    /* ses */
 9419        040    /* enf for "+" insert. */
 9420        200 "="  /* insb */
 9421           220 "q"   /* insa insert "q" */
 9422        260 "q"  /* insp */
 9423        304    /* ign */
 9424        344    /* mvc */
 9425        420 "12345678"   /* change table with string shown */
 9426        024    /* insm */
 9427        401 "2"   /* load table entry 1 with "2" */
 9428        024    /* insm */
 9429        364    /* mors */
 9430       /* end of mop string */;
 9431 
 9432 data 3  /* arranged in order */
 9433           -do -34
 9434 
 9435        "  12"
 9436        "**12"
 9437        "+3456"
 9438        "+"
 9439        "="
 9440        "q"
 9441        "q"
 9442        "0012"
 9443       "1111"
 9444        "2222"
 9445        "3777";
 9446 
 9447 page   -all;
 9448 
 9449 /*               mvne11
 9450 
 9451 *       these tests exercise the mvne instruction
 9452 *       using the 4 to 9 bit option and the 9 to 9
 9453 *       bit options on the data.  the same template
 9454 *       for the mop sequence will be used for all
 9455 *       tests with various desc and data mod.
 9456 *
 9457 */
 9458 
 9459 inst    mvne   -nt "simple test no mod 4-9"
 9460           -mf2 rl 29;
 9461 
 9462 desc 1     -tn 4    -nn 24  -sd n;
 9463 
 9464 
 9465 desc 3    -nn 33  ;
 9466 
 9467 data 1 /* the 9 bit data arranged in sequence of use */
 9468           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9469 
 9470         000022000022064126064126000022064126;
 9471 
 9472 data 2  /* ***mop sequence arranged in order *** */
 9473 
 9474        104    /* mvzb */
 9475        060    /* ses es reset */
 9476        124    /* mvza */
 9477        064    /* ses es reset bz set */
 9478        144    /* mfls */
 9479        064    /* ses */
 9480        040    /* enf for "+" insert. */
 9481        200 "="  /* insb */
 9482           220 "q"   /* insa insert "q" */
 9483        260 "q"  /* insp */
 9484        304    /* ign */
 9485        344    /* mvc */
 9486        420 "12345678"   /* change table with string shown */
 9487        024    /* insm */
 9488        401 "2"   /* load table entry 1 with "2" */
 9489        024    /* insm */
 9490        364    /* mors */
 9491       /* end of mop string */;
 9492 
 9493 data 3  /* arranged in order */
 9494 
 9495        "  12"
 9496        "**12"
 9497        "+3456"
 9498        "+"
 9499        "="
 9500        "q"
 9501        "q"
 9502        "0012"
 9503       "1111"
 9504        "2222"
 9505        "3777";
 9506 
 9507 page   -all;
 9508 
 9509 /*               mvne12
 9510 
 9511 *       these tests exercise the mvne instruction
 9512 *       using the 4 to 9 bit option and the 9 to 9
 9513 *       bit options on the data.  the same template
 9514 *       for the mop sequence will be used for all
 9515 *       tests with various desc and data mod.
 9516 *
 9517 */
 9518 
 9519 inst     mvne    -nt "offset inst and desc mod 4-9"   -io 2
 9520 
 9521           -mf2 reg rl 29
 9522           -mf3 ida;
 9523 
 9524 desc 1     -tn 4    -nn 24  -sd n;
 9525 
 9526 
 9527 desc 3    -nn 33  ;
 9528 
 9529 data 1 /* the 9 bit data arranged in sequence of use */
 9530           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9531 
 9532         000022000022064126064126000022064126;
 9533 
 9534 data 2  /* ***mop sequence arranged in order *** */
 9535 
 9536        104    /* mvzb */
 9537        060    /* ses es reset */
 9538        124    /* mvza */
 9539        064    /* ses es reset bz set */
 9540        144    /* mfls */
 9541        064    /* ses */
 9542        040    /* enf for "+" insert. */
 9543        200 "="  /* insb */
 9544           220 "q"   /* insa insert "q" */
 9545        260 "q"  /* insp */
 9546        304    /* ign */
 9547        344    /* mvc */
 9548        420 "12345678"   /* change table with string shown */
 9549        024    /* insm */
 9550        401 "2"   /* load table entry 1 with "2" */
 9551        024    /* insm */
 9552        364    /* mors */
 9553       /* end of mop string */;
 9554 
 9555 data 3  /* arranged in order */
 9556 
 9557        "  12"
 9558        "**12"
 9559        "+3456"
 9560        "+"
 9561        "="
 9562        "q"
 9563        "q"
 9564        "0012"
 9565       "1111"
 9566        "2222"
 9567        "3777";
 9568 
 9569 page   -all;
 9570 
 9571 /*               mvne13
 9572 
 9573 *       these tests exercise the mvne instruction
 9574 *       using the 4 to 9 bit option and the 9 to 9
 9575 *       bit options on the data.  the same template
 9576 *       for the mop sequence will be used for all
 9577 *       tests with various desc and data mod.
 9578 *
 9579 */
 9580 
 9581 inst     mvne    -nt "offset inst and d1 offset 4-9"   -io 3
 9582 
 9583           -mf2 reg rl 29
 9584           -mf3 ida;
 9585 
 9586 desc 1     -tn 4    -nn 24  -sd n;
 9587 
 9588 
 9589 desc 3    -nn 33  ;
 9590 
 9591 
 9592 data 1 /* the 9 bit data arranged in sequence of use */
 9593           -do -16
 9594           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9595 
 9596         000022000022064126064126000022064126;
 9597 
 9598 data 2  /* ***mop sequence arranged in order *** */
 9599 
 9600        104    /* mvzb */
 9601        060    /* ses es reset */
 9602        124    /* mvza */
 9603        064    /* ses es reset bz set */
 9604        144    /* mfls */
 9605        064    /* ses */
 9606        040    /* enf for "+" insert. */
 9607        200 "="  /* insb */
 9608           220 "q"   /* insa insert "q" */
 9609        260 "q"  /* insp */
 9610        304    /* ign */
 9611        344    /* mvc */
 9612        420 "12345678"   /* change table with string shown */
 9613        024    /* insm */
 9614        401 "2"   /* load table entry 1 with "2" */
 9615        024    /* insm */
 9616        364    /* mors */
 9617       /* end of mop string */;
 9618 
 9619 data 3  /* arranged in order */
 9620 
 9621        "  12"
 9622        "**12"
 9623        "+3456"
 9624        "+"
 9625        "="
 9626        "q"
 9627        "q"
 9628        "0012"
 9629       "1111"
 9630        "2222"
 9631        "3777";
 9632 
 9633 page   -all;
 9634 
 9635 /*               mvne14
 9636 
 9637 *       these tests exercise the mvne instruction
 9638 *       using the 4 to 9 bit option and the 9 to 9
 9639 *       bit options on the data.  the same template
 9640 *       for the mop sequence will be used for all
 9641 *       tests with various desc and data mod.
 9642 *
 9643 */
 9644 
 9645 inst     mvne    -nt "offset d2 and d1 offset 4-9"   -io 3
 9646 
 9647           -mf2 reg rl 29
 9648           -mf3 ida;
 9649 
 9650 desc 1     -tn 4    -nn 24  -sd n;
 9651 
 9652 
 9653 desc 3    -nn 33  ;
 9654 
 9655 
 9656 data 1 /* the 9 bit data arranged in sequence of use */
 9657           -do -16
 9658           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9659 
 9660         000022000022064126064126000022064126;
 9661 
 9662 data 2  /* ***mop sequence arranged in order *** */
 9663           -do -20
 9664 
 9665        104    /* mvzb */
 9666        060    /* ses es reset */
 9667        124    /* mvza */
 9668        064    /* ses es reset bz set */
 9669        144    /* mfls */
 9670        064    /* ses */
 9671        040    /* enf for "+" insert. */
 9672        200 "="  /* insb */
 9673           220 "q"   /* insa insert "q" */
 9674        260 "q"  /* insp */
 9675        304    /* ign */
 9676        344    /* mvc */
 9677        420 "12345678"   /* change table with string shown */
 9678        024    /* insm */
 9679        401 "2"   /* load table entry 1 with "2" */
 9680        024    /* insm */
 9681        364    /* mors */
 9682       /* end of mop string */;
 9683 
 9684 data 3  /* arranged in order */
 9685 
 9686        "  12"
 9687        "**12"
 9688        "+3456"
 9689        "+"
 9690        "="
 9691        "q"
 9692        "q"
 9693        "0012"
 9694       "1111"
 9695        "2222"
 9696        "3777";
 9697 
 9698 page   -all;
 9699 
 9700 /*               mvne15
 9701 
 9702 *       these tests exercise the mvne instruction
 9703 *       using the 4 to 9 bit option and the 9 to 9
 9704 *       bit options on the data.  the same template
 9705 *       for the mop sequence will be used for all
 9706 *       tests with various desc and data mod.
 9707 *
 9708 */
 9709 
 9710 inst     mvne    -nt "offset d2 and d1 and d3 4-9"   -io 3
 9711 
 9712           -mf2 reg rl 29
 9713           -mf3 ida;
 9714 
 9715 desc 1     -tn 4    -nn 24  -sd n;
 9716 
 9717 
 9718 desc 3    -nn 33  ;
 9719 
 9720 
 9721 data 1 /* the 9 bit data arranged in sequence of use */
 9722           -do -16
 9723           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9724 
 9725         000022000022064126064126000022064126;
 9726 
 9727 data 2  /* ***mop sequence arranged in order *** */
 9728           -do -20
 9729 
 9730        104    /* mvzb */
 9731        060    /* ses es reset */
 9732        124    /* mvza */
 9733        064    /* ses es reset bz set */
 9734        144    /* mfls */
 9735        064    /* ses */
 9736        040    /* enf for "+" insert. */
 9737        200 "="  /* insb */
 9738           220 "q"   /* insa insert "q" */
 9739        260 "q"  /* insp */
 9740        304    /* ign */
 9741        344    /* mvc */
 9742        420 "12345678"   /* change table with string shown */
 9743        024    /* insm */
 9744        401 "2"   /* load table entry 1 with "2" */
 9745        024    /* insm */
 9746        364    /* mors */
 9747       /* end of mop string */;
 9748 
 9749 data 3  /* arranged in order */
 9750           -do -8
 9751 
 9752        "  12"
 9753        "**12"
 9754        "+3456"
 9755        "+"
 9756        "="
 9757        "q"
 9758        "q"
 9759        "0012"
 9760       "1111"
 9761        "2222"
 9762        "3777";
 9763 
 9764 page   -all;
 9765 
 9766 /*               mvne16
 9767 
 9768 *       these tests exercise the mvne instruction
 9769 *       using the 4 to 9 bit option and the 9 to 9
 9770 *       bit options on the data.  the same template
 9771 *       for the mop sequence will be used for all
 9772 *       tests with various desc and data mod.
 9773 *
 9774 */
 9775 
 9776 inst     mvne    -nt "offset d2 and d1 and d3 4-9"   -io 3
 9777 
 9778           -mf2 reg rl 29
 9779           -mf3 ida;
 9780 
 9781 desc 1     -tn 4         -nn 24  -sd n;
 9782 
 9783 
 9784 desc 3    -nn 33  ;
 9785 
 9786 
 9787 data 1 /* the 9 bit data arranged in sequence of use */
 9788           -do -16
 9789           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9790 
 9791            000022000022064126064126000022064126;
 9792 
 9793 data 2  /* ***mop sequence arranged in order *** */
 9794           -do -20
 9795 
 9796        104    /* mvzb */
 9797        060    /* ses es reset */
 9798        124    /* mvza */
 9799        064    /* ses es reset bz set */
 9800        144    /* mfls */
 9801        064    /* ses */
 9802        040    /* enf for "+" insert. */
 9803        200 "="  /* insb */
 9804           220 "q"   /* insa insert "q" */
 9805        260 "q"  /* insp */
 9806        304    /* ign */
 9807        344    /* mvc */
 9808        420 "12345678"   /* change table with string shown */
 9809        024    /* insm */
 9810        401 "2"   /* load table entry 1 with "2" */
 9811        024    /* insm */
 9812        364    /* mors */
 9813       /* end of mop string */;
 9814 
 9815 data 3  /* arranged in order */
 9816           -do -8
 9817 
 9818        "  12"
 9819        "**12"
 9820        "+3456"
 9821        "+"
 9822        "="
 9823        "q"
 9824        "q"
 9825        "0012"
 9826       "1111"
 9827        "2222"
 9828        "3777";
 9829 
 9830 page   -all;
 9831 
 9832 /*               mvne17
 9833 
 9834 *       these tests exercise the mvne instruction
 9835 *       using the 4 to 9 bit option and the 9 to 9
 9836 *       bit options on the data.  the same template
 9837 *       for the mop sequence will be used for all
 9838 *       tests with various desc and data mod.
 9839 *
 9840 */
 9841 
 9842 inst      mvne      -nt "d1 totally on p0 4-9"    -io 2
 9843           -mf1 idr ar
 9844           -mf2 reg rl 29
 9845           -mf3 ida ar reg;
 9846 
 9847 desc 1     -tn 4         -nn 24  -sd n;
 9848 
 9849 
 9850 desc 3    -nn 33  ;
 9851 
 9852 
 9853 data 1 /* the 9 bit data arranged in sequence of use */
 9854           -do -24
 9855           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9856 
 9857            000022000022064126064126000022064126;
 9858 
 9859 data 2  /* ***mop sequence arranged in order *** */
 9860           -do -20
 9861 
 9862        104    /* mvzb */
 9863        060    /* ses es reset */
 9864        124    /* mvza */
 9865        064    /* ses es reset bz set */
 9866        144    /* mfls */
 9867        064    /* ses */
 9868        040    /* enf for "+" insert. */
 9869        200 "="  /* insb */
 9870           220 "q"   /* insa insert "q" */
 9871        260 "q"  /* insp */
 9872        304    /* ign */
 9873        344    /* mvc */
 9874        420 "12345678"   /* change table with string shown */
 9875        024    /* insm */
 9876        401 "2"   /* load table entry 1 with "2" */
 9877        024    /* insm */
 9878        364    /* mors */
 9879       /* end of mop string */;
 9880 
 9881 data 3  /* arranged in order */
 9882           -do -8
 9883 
 9884        "  12"
 9885        "**12"
 9886        "+3456"
 9887        "+"
 9888        "="
 9889        "q"
 9890        "q"
 9891        "0012"
 9892       "1111"
 9893        "2222"
 9894        "3777";
 9895 
 9896 page   -all;
 9897 
 9898 
 9899 /*               mvne18
 9900 
 9901 *       these tests exercise the mvne instruction
 9902 *       using the 4 to 9 bit option and the 9 to 9
 9903 *       bit options on the data.  the same template
 9904 *       for the mop sequence will be used for all
 9905 *       tests with various desc and data mod.
 9906 *
 9907 */
 9908 
 9909 inst      mvne      -nt "d2 totally on p0 4-9"    -io 2
 9910           -mf1 idr ar
 9911           -mf2 ar reg rl 29
 9912           -mf3 ida ar reg;
 9913 
 9914 desc 1     -tn 4         -nn 24  -sd n;
 9915 
 9916 
 9917 desc 3    -nn 33  ;
 9918 
 9919 
 9920 data 1 /* the 9 bit data arranged in sequence of use */
 9921           -do -20
 9922           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9923 
 9924            000022000022064126064126000022064126;
 9925 
 9926 data 2  /* ***mop sequence arranged in order *** */
 9927           -do -30
 9928 
 9929        104    /* mvzb */
 9930        060    /* ses es reset */
 9931        124    /* mvza */
 9932        064    /* ses es reset bz set */
 9933        144    /* mfls */
 9934        064    /* ses */
 9935        040    /* enf for "+" insert. */
 9936        200 "="  /* insb */
 9937           220 "q"   /* insa insert "q" */
 9938        260 "q"  /* insp */
 9939        304    /* ign */
 9940        344    /* mvc */
 9941        420 "12345678"   /* change table with string shown */
 9942        024    /* insm */
 9943        401 "2"   /* load table entry 1 with "2" */
 9944        024    /* insm */
 9945        364    /* mors */
 9946       /* end of mop string */;
 9947 
 9948 data 3  /* arranged in order */
 9949           -do -8
 9950 
 9951        "  12"
 9952        "**12"
 9953        "+3456"
 9954        "+"
 9955        "="
 9956        "q"
 9957        "q"
 9958        "0012"
 9959       "1111"
 9960        "2222"
 9961        "3777";
 9962 
 9963 page   -all;
 9964 
 9965 /*               mvne19
 9966 
 9967 *       these tests exercise the mvne instruction
 9968 *       using the 4 to 9 bit option and the 9 to 9
 9969 *       bit options on the data.  the same template
 9970 *       for the mop sequence will be used for all
 9971 *       tests with various desc and data mod.
 9972 *
 9973 */
 9974 
 9975 inst      mvne      -nt "d3 totally on p0 4-9"    -io 2
 9976           -mf1 idr ar
 9977           -mf2 reg ar rl 29
 9978           -mf3 ida ar reg;
 9979 
 9980 desc 1     -tn 4         -nn 24  -sd n;
 9981 
 9982 
 9983 desc 3    -nn 33  ;
 9984 
 9985 
 9986 data 1 /* the 9 bit data arranged in sequence of use */
 9987           -do -20
 9988           /* the strings are 0012 0012 3456 3456 0012 3456 */
 9989 
 9990            000022000022064126064126000022064126;
 9991 
 9992 data 2  /* ***mop sequence arranged in order *** */
 9993           -do -10
 9994 
 9995        104    /* mvzb */
 9996        060    /* ses es reset */
 9997        124    /* mvza */
 9998        064    /* ses es reset bz set */
 9999        144    /* mfls */
10000        064    /* ses */
10001        040    /* enf for "+" insert. */
10002        200 "="  /* insb */
10003           220 "q"   /* insa insert "q" */
10004        260 "q"  /* insp */
10005        304    /* ign */
10006        344    /* mvc */
10007        420 "12345678"   /* change table with string shown */
10008        024    /* insm */
10009        401 "2"   /* load table entry 1 with "2" */
10010        024    /* insm */
10011        364    /* mors */
10012       /* end of mop string */;
10013 
10014 data 3  /* arranged in order */
10015           -do -34
10016 
10017        "  12"
10018        "**12"
10019        "+3456"
10020        "+"
10021        "="
10022        "q"
10023        "q"
10024        "0012"
10025       "1111"
10026        "2222"
10027        "3777";
10028 
10029 page   -all;
10030 
10031 /*               mvne20
10032 
10033 *       these tests exercise the mvne instruction
10034 *       using the 4 to 9 bit option and the 9 to 9
10035 *       bit options on the data.  the same template
10036 *       for the mop sequence will be used for all
10037 *       tests with various desc and data mod.
10038 *
10039 */
10040 
10041 inst      mvne      -nt "all data totally on p0 4-9"    -io 2
10042           -mf1 idr ar
10043           -mf2 reg ar rl 29
10044           -mf3 ida ar reg;
10045 
10046 desc 1     -tn 4         -nn 24  -sd n;
10047 
10048 
10049 desc 3    -nn 33  ;
10050 
10051 
10052 data 1 /* the 9 bit data arranged in sequence of use */
10053           -do -30
10054           /* the strings are 0012 0012 3456 3456 0012 3456 */
10055 
10056            000022000022064126064126000022064126;
10057 
10058 data 2  /* ***mop sequence arranged in order *** */
10059           -do -30
10060 
10061        104    /* mvzb */
10062        060    /* ses es reset */
10063        124    /* mvza */
10064        064    /* ses es reset bz set */
10065        144    /* mfls */
10066        064    /* ses */
10067        040    /* enf for "+" insert. */
10068        200 "="  /* insb */
10069           220 "q"   /* insa insert "q" */
10070        260 "q"  /* insp */
10071        304    /* ign */
10072        344    /* mvc */
10073        420 "12345678"   /* change table with string shown */
10074        024    /* insm */
10075        401 "2"   /* load table entry 1 with "2" */
10076        024    /* insm */
10077        364    /* mors */
10078       /* end of mop string */;
10079 
10080 data 3  /* arranged in order */
10081           -do -34
10082 
10083        "  12"
10084        "**12"
10085        "+3456"
10086        "+"
10087        "="
10088        "q"
10089        "q"
10090        "0012"
10091       "1111"
10092        "2222"
10093        "3777";
10094 
10095 page   -all;
10096 
10097 
10098 ^L
10099 
10100 /*     ad3d1
10101 *  The zero indicator is set.
10102 *  Three 9-bit floating point operands are used.
10103 *  Indirect descriptors are used for all operands.
10104 *  Address register modification is used for all operands.  */
10105 
10106 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10107 -ir zr
10108 -mf1 idb ar reg
10109 -mf2 idb ar reg
10110 -mf3 idb ar reg
10111 -io 1;
10112 
10113 desc 1  -sd f -nn 63;
10114 desc 2 -sd f -nn 60;
10115 desc 3 -sd f -nn 63;
10116 
10117 data 1 -do -1 "+" (14)"2583" "00000" 005;
10118 data 2 -do -60 "-" (14)"2583" "00" 010;
10119 data 3 -do -8 "+" (61)"0" 177;
10120 
10121 page -all;
10122 
10123 
10124 
10125 /*     ad3d2
10126 *  The zero indicator is set.
10127 *  Three 9-bit leading sign operands are used.
10128 *  The maximum number of page faults is taken.
10129 *  Indirect descriptors are used for all operands.
10130 *  Address register modification is used for all operands.  */
10131 
10132 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10133 -ir zr tn
10134 -mf1 idb ar reg
10135 -mf2 idb ar reg
10136 -mf3 idb ar reg
10137 -io 2;
10138 
10139 desc 1 -sd l -nn 13 -sf 4;
10140 desc 2 -sd l -nn 13 -sf 4;
10141 desc 3 -sd l -nn 5 -sf 6;
10142 
10143 data 1 -do -12 "-" (2)"392457";
10144 data 2 -do -4 "+" (2)"392457";
10145 data 3 -do -4 "+" (4)"0";
10146 
10147 page -all;
10148 
10149 
10150 
10151 /*     ad3d3
10152 *  The negative indicator is set.
10153 *  Three 4-bit floating point operands are used.
10154 *  Indirect descriptors are used for all operands.
10155 *  Address register modification is used for all operands.  */
10156 
10157 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10158 -ir ng
10159 -mf1 idb ar
10160 -mf2 idb ar
10161 -mf3 idb ar
10162 -io 3;
10163 
10164 desc 1 -tn 4 -sd f -nn 22;
10165 desc 2 -tn 4 -sd f -nn 22;
10166 desc 3 -tn 4 -sd f -nn 22;
10167 
10168 data 1 -do -11 320 (5)000 "8888" 005;
10169 data 2 -do -1 260 (5) 000 "7777" 005;
10170 data 3 -do -4 320 (5)000 (4)001 005;
10171 
10172 page -all;
10173 
10174 
10175 
10176 /*     ad3d4
10177 * The negative indicator is set.
10178 *  Three 4-bit trailing sign operands are used.
10179 *  Indirect descriptors are used for all operands.
10180 *  Address register modification is used for all operands.  */
10181 
10182 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10183 -ir ng
10184 -mf1 idb ar
10185 -mf2 idb ar
10186 -mf3 idb ar
10187 -io 1;
10188 
10189 desc 1 -tn 4 -sd t -sf -1 -nn 8;
10190 desc 2 -tn 4 -sd t -sf -1 -nn 8;
10191 desc 3 -tn 4 -sd t -sf -1 -nn 8;
10192 
10193 data 1 -do -4 "555+";
10194 data 2 -do -4 "777-";
10195 data 3 -do -4 (3)002 015;
10196 
10197 page -all;
10198 
10199 
10200 /*     ad3d5
10201 *  The truncation indicator is set.
10202 *  Three 9-bit floating point operands are used.
10203 *  The maximum number of page faults is taken.
10204 *  Indirect descriptors are used for all operands.
10205 *  Address register modification is used for all operands.  */
10206 
10207 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10208 -ir tn
10209 -mf1 idb ar reg
10210 -mf2 idb ar reg
10211 -mf3 idb ar reg
10212 -io 2;
10213 
10214 desc 1  -sd f -nn 63;
10215 desc 2 -sd f -nn 63;
10216 desc 3 -sd f -nn 50;
10217 
10218 data 1 -do -1 "+" (61)"4" 003;
10219 data 2 -do -62 "+" (61)"5" 003;
10220 data 3 -do -48 "+" (48)"9" 020;
10221 
10222 page -all;
10223 
10224 
10225 
10226 /*     ad3d6
10227 *  The truncation indicator is set.
10228 *  Three 9-bit leading sign operands are used.
10229 *  The maximum number of page faults is taken.
10230 *  Indirect descriptors are used for all operands.
10231 *  Address register modification is used for all operands.  */
10232 
10233 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10234 -ir tn
10235 -mf1 idb ar reg
10236 -mf2 idb ar reg
10237 -mf3 idb ar reg
10238 -io 3;
10239 
10240 desc 1 -sd l -sf 5 -nn 37;
10241 desc 2 -sd l -sf 5 -nn 37;
10242 desc 3 -sd l -sf 10 -nn 37;
10243 
10244 data 1 -do -20 "+" (6)"121212";
10245 data 2 -do -20 "+" (6)"212121";
10246 data 3 -do -32 "+" (5)"0" (31)"3";
10247 
10248 page -all;
10249 
10250 
10251 
10252 /*     ad3d7
10253 *  Rounding is tested.
10254 *  Three 9-bit trailing sign operands are used.
10255 *  The maximum number of page faults is taken.
10256 *  Indirect descriptors are used for all operands.
10257 *  Address register modification is used for all operands.  */
10258 
10259 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10260 -rb
10261 -mf1 idb ar reg
10262 -mf2 idb ar reg
10263 -mf3 idb ar reg
10264 -io 1;
10265 
10266 desc 1 -sd t -sf 5 -nn 37;
10267 desc 2 -sd t -sf 5 -nn 37;
10268 desc 3 -sd t -sf 10 -nn 37;
10269 
10270 data 1 -do -36 (6)"121212" "+";
10271 data 2 -do -1  (6)"212121" "+";
10272 data 3 -do -35 (5)"0" (31)"3" "+";
10273 
10274 page -all;
10275 
10276 
10277 
10278 /*     ad3d8
10279 *  The overflow indicator is set.
10280 *  Three 4-bit unsigned 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 "4 bit + 4 bit -> 4 bit"
10285 -ir ov
10286 -mf1 idb ar
10287 -mf2 idb ar
10288 -mf3 idb ar
10289 -io 2;
10290 
10291 desc 1 -tn 4 -sd n -sf 8 -nn 16;
10292 desc 2 -tn 4 -sd n -sf 8 -nn 16;
10293 desc 3 -tn 4 -sd n -sf 5 -nn 16;
10294 
10295 data 1 -do -15 (8) 042;
10296 data 2 -do -1  (8) 063;
10297 data 3 -do -8 (6) 125 120 000;
10298 
10299 page -all;
10300 
10301 
10302 
10303 /*     ad3d9
10304 *  The exponent overflow indicator is set.
10305 *  Three 9-bit floating point 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 eo tn
10312 -mf1 idb ar reg
10313 -mf2 idb ar reg
10314 -mf3 idb ar reg
10315 -io 3;
10316 
10317 desc 1 -sd f -nn 6;
10318 desc 2 -sd f -nn 6;
10319 desc 3 -sd f -nn 6;
10320 
10321 data 1 -do -1 "+" (4)"9" 177;
10322 data 2 -do -5 "+" (4)"2" 177;
10323 data 3 -do -4 "+" "1222" 200;
10324 
10325 page -all;
10326 
10327 
10328 
10329 /*     ad3d10
10330 *  A 9-bit operand is added to a 9-bit operand and stored in a 4-bit operand.
10331 *  The maximum number of page faults is taken.
10332 *  Indirect descriptors are used for all operands.
10333 *  Address register modification is used for all operands.  */
10334 
10335 inst ad3d -nt "9 bit + 9 bit -> 4 bit"
10336 -mf1 idb ar reg
10337 -mf2 idb ar reg
10338 -mf3 idb ar
10339 -io 1;
10340 
10341 desc 1 -sd l -nn 10;
10342 desc 2 -sd l -nn 10;
10343 desc 3 -sd l -tn 4 -nn 11 -cn 1;
10344 
10345 data 1 -do -1 "+" "987654321";
10346 data 2 -do -8 "+" "123456789";
10347 data 3 -do -1 00 301 (4)021 00;
10348 
10349 page -all;
10350 
10351 
10352 
10353 /*     ad3d11
10354 *  A 4-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10355 *  Indirect descriptors are used for all operands.
10356 *  Address register modification is used for all operands.  */
10357 
10358 inst ad3d -nt "4 bit + 4 bit -> 9 bit"
10359 -mf1 idb ar
10360 -mf2 idb ar
10361 -mf3 idb ar reg
10362 -io 2;
10363 
10364 desc 1 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10365 desc 2 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10366 desc 3 -sd t -sf -1 -nn 11;
10367 
10368 data 1 -do -1 00 230 166 124 062 033;
10369 data 2 -do -5 00 022 064 126 170 233;
10370 data 3 -do -10 (9)"1" "0" "+";
10371 
10372 page -all;
10373 
10374 
10375 
10376 /*     ad3d12
10377 *  A 9-bit operand is added to a 4-bit operand and stored in a 4-bit operand.
10378 *  The maximum number of page faults is taken.
10379 *  Indirect descriptors are used for all operands.
10380 *  Address register modification is used for all operands.  */
10381 
10382 inst ad3d -nt "9 bit + 4 bit -> 4 bit"
10383 -mf1 idb ar reg
10384 -mf2 idb ar
10385 -mf3 idb ar
10386 -io 3;
10387 
10388 desc 1 -sd f -nn 11;
10389 desc 2 -sd f -tn 4 -nn 12;
10390 desc 3 -sd f -tn 4 -nn 13;
10391 
10392 data 1 -do -9 "+" "987654321" 036;
10393 data 2 -do -5 261 043 105 147 211 036;
10394 data 3 -do -6 301 (4)021 001 34;
10395 
10396 page -all;
10397 
10398 
10399 
10400 /*     ad3d13
10401 *  A 9-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10402 *  The maximum number of page faults is taken.
10403 *  Indirect descriptors are used for all operands.
10404 *  Address register modification is used for all operands.  */
10405 
10406 inst ad3d -nt "9 bit + 4 bit -> 9 bit"
10407 -mf1 idb ar reg
10408 -mf2 idb ar
10409 -mf3 idb ar reg
10410 -io 1;
10411 
10412 desc 1 -sd n -sf -5 -nn 9;
10413 desc 2 -sd n -tn 4 -sf -5 -nn 9;
10414 desc 3 -sd n -sf -5 -nn 10;
10415 
10416 data 1 -do -8 "987654321";
10417 data 2 -do -1 022 064 126 170 22;
10418 data 3 -do -5 (9)"1" "0";
10419 
10420 page -all;
10421 
10422 
10423 
10424 
10425 /*     ad3d14
10426 *  Leading, trailing, and floating point operands are mixed.
10427 *  The maximum number of page faults is taken.
10428 *  Indirect descriptors are used for all operands.
10429 *  Address register modification is used for all operands.  */
10430 
10431 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10432 -mf1 idb ar reg
10433 -mf2 idb ar reg
10434 -mf3 idb ar reg
10435 -io 2;
10436 
10437 desc 1 -sd l -sf 7 -nn 10;
10438 desc 2 -sd t -sf 7 -nn 10;
10439 desc 3 -sd f -nn 12;
10440 
10441 data 1 -do -9 "+" "987654321";
10442 data 2 -do -4 "123456789" "+";
10443 data 3 -do -8 "+" (9)"1" "0" 007;
10444 
10445 page -all;
10446 
10447 
10448 
10449 /*     ad3d15
10450 *  Floating point, unsigned, and leading sign operands are mixed.
10451 *  Indirect descriptors are used for all operands.
10452 *  Address register modification is used for all operands.  */
10453 
10454 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10455 -mf1 idb ar
10456 -mf2 idb ar
10457 -mf3 idb ar
10458 -io 3;
10459 
10460 desc 1 -tn 4 -sd f -nn 12;
10461 desc 2 -tn 4 -sd n -nn 9;
10462 desc 3 -tn 4 -sd l -nn 13 -sf -2;
10463 
10464 data 1 -do -6 271 207 145 103 041 000;
10465 data 2 -do -4 022 064 126 170 22;
10466 data 3 -do -5 301 (4)021 00000;
10467 
10468 page -all;
10469 
10470 
10471 ^L
10472 
10473 /*                  ad2d1
10474 *                   Use RL mod and cn field with indirect descriptors
10475 *                   add 9 bit scaled to 9 bit scaled
10476 *                   two character offset
10477 *
10478 */
10479 
10480 
10481 inst      ad2d      -nt "9scaled+9scal->9scaled"
10482 -io 2  -ir ng
10483 -mf1 ar rl 10 idb reg
10484 -mf2 ar rl 10 idb reg;
10485 
10486 desc1 -cn 1  -sd t ;
10487 desc2 -cn 1  -sd t ;
10488 
10489 data 1 -do -9 " " (9) "2" "-";
10490 data 2 -do -9 "*" (9) "1" "+";
10491 data 3 "*" (9) "1" "-";
10492 
10493 page -all;
10494 
10495 
10496 
10497 /*                  ad2d2
10498 *                   Use RL mod and cn field with indirect descriptors
10499 *                   9 bit scaled to 9 bit scaled
10500 *                   one character offset
10501 *
10502 */
10503 
10504 
10505 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10506 -io 2  -ir ng
10507 -mf1 ar rl 10 idb reg
10508 -mf2 ar rl 10 idb reg;
10509 
10510 desc1 -cn 1  -sd t ;
10511 desc2 -cn 1  -sd t ;
10512 
10513 data 1 -do -10 " " (9) "2" "-";
10514 data 2 -do -10 "*" (9) "1" "+";
10515 data 3 "*" (9) "1" "-";
10516 
10517 page -all;
10518 
10519 
10520 
10521 /*                  ad2d3
10522 *                   Use RL mod and cn field
10523 *                   9 bit scaled to 9 bit scaled
10524 *                   no indirect descriptors
10525 *
10526 */
10527 
10528 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10529 -io 2  -ir ng
10530 -mf1 ar rl 10  reg
10531 -mf2 ar rl 10 reg;
10532 
10533 desc1 -cn 1  -sd t ;
10534 desc2 -cn 1  -sd t ;
10535 
10536 data 1 -do -9 " " (9) "2" "-";
10537 data 2 -do -9 "*" (9) "1" "+";
10538 data 3 "*" (9) "1" "-";
10539 
10540 page -all;
10541 
10542 
10543 
10544 /*                  ad2d4
10545 *                   Use no modification
10546 *                   9bit scaled added to 9 bit scaled
10547 *
10548 */
10549 
10550 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10551 -io 2  -ir ng;
10552 
10553 desc1 -cn 1  -sd t  -nn 12;
10554 desc2 -cn 1  -sd t  -nn 12;
10555 
10556 data 1 -do -12 " " (11) "2" "-";
10557 data 2 -do -12 "*" (11) "1" "+";
10558 data 3 "*" (11) "1" "-";
10559 
10560 page -all;
10561 
10562 
10563 
10564 /*                  ad2d5
10565 *                   Use ar and rl
10566 *                   9 bit scaled to 9 bit scaled
10567 *
10568 */
10569 
10570 
10571 inst      ad2d      -nt "ar and rl modification"
10572 -io 2  -ir ng
10573 -mf1 ar rl 10
10574 -mf2 ar rl 10 ;
10575 
10576 desc1 -cn 1  -sd t ;
10577 desc2 -cn 1  -sd t ;
10578 
10579 data 1 -do -9 " " (9) "2" "-";
10580 data 2 -do -9 "*" (9) "1" "+";
10581 data 3 "*" (9) "1" "-";
10582 
10583 page -all;
10584 
10585 
10586 /*                  ad2d6
10587 *                   Use ar and rl modification, desc1
10588 *                   Use ar rl idb reg on desc2
10589 *                   9 bit scaled to 9 bit scaled
10590 *
10591 */
10592 
10593 
10594 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10595 -io 2  -ir ng
10596 -mf1 ar rl 10
10597 -mf2 ar rl 10 idb reg;
10598 
10599 desc1 -cn 1  -sd t ;
10600 desc2 -cn 1  -sd t ;
10601 
10602 data 1 -do -9 " " (9) "2" "-";
10603 data 2 -do -9 "*" (9) "1" "+";
10604 data 3 "*" (9) "1" "-";
10605 
10606 page -all;
10607 
10608 
10609 
10610 /*                  ad2d7
10611 *                   maximum length add, leading sign
10612 *                   one character over next page
10613 *                   all modification taken
10614 */
10615 inst      ad2d      -nt "9scaled+9scaled->9scaled"
10616 -io 2
10617 -mf1 ar rl 63 idb reg
10618 -mf2 ar rl 63 idb reg;
10619 
10620 desc1 -cn 1 -sd l ;
10621 desc2 -cn 1 -sd l ;
10622 
10623 data 1 -do 4033 " " "+33" (15) "8642";
10624 data 2 -do 4033 "*" "+11" (15) "2357";
10625 data 3 "*" "+45" (14) "1000" "0999";
10626 
10627 page -all;
10628 
10629 
10630 
10631 
10632 /*                  ad2d8
10633 *                   This is a simple test
10634 *                   9 bit add to 9 bit all scaled trailing sign
10635 *
10636 */
10637 
10638 inst      ad2d      -nt "simple test";
10639 
10640 desc1  -sd t -sf 10 -nn 63;
10641 desc2  -sd t -sf 10 -nn 63;
10642 
10643 data 1 "11" (15) "1111" "-";
10644 data 2 "22" (15) "2222" "+";
10645 data 3 "11" (15) "1111" "+";
10646 
10647 page -all;
10648 
10649 
10650 
10651 
10652 /*                  ad2d9
10653 *                   maximum length add resulting
10654 *                   in an overflow
10655 *                   all modification taken
10656 *                   9 bit scaled to 9 bit scaled
10657 */
10658 inst      ad2d      -nt "truncation fault"
10659 -io 1  -ir ov
10660 -mf1 ar rl 63 idb reg
10661 -mf2 ar rl 63 idb reg;
10662 
10663 desc1 -sd l -cn 1;
10664 desc2 -sd l -cn 1;
10665 
10666 data 1 -do 4033 " " "+33" (15) "8642";
10667 data 2 -do 4033 "*" "+71" (15) "2357";
10668 data 3  "*" "+" "05" (14) "1000" "0999";
10669 
10670 page -all;
10671 
10672 
10673 
10674 
10675 
10676 /*                  ad2d10
10677 *                   maximum length over two pages
10678 *                   no faults, 9 bit to 4 bit
10679 *
10680 */
10681 
10682 inst      ad2d      -nt "9 bit -> 4 bit"
10683 -io 1
10684 -mf1 ar rl 63
10685 -mf2 ar rl 63 ;
10686 
10687 desc1 -sd t ;
10688 desc2 -sd t  -tn 4;
10689 
10690 data 1 -do 4033  "33" (15) "3333" "+";
10691 data 2 -do 4064  021021 (7) 021021021021 02126;
10692 data 3   104104 (7) 104104104104 1043;
10693 
10694 page -all;
10695 
10696 
10697 
10698 
10699 
10700 /*                  ad2d11
10701 *                   9 bit to 4 bit all page faults possible
10702 *                    no reg modification on desc2
10703 *
10704 */
10705 
10706 inst      ad2d      -nt "9bit ->4bit"
10707 -io 2
10708 -mf1 ar rl 63 idb reg
10709 -mf2 ar rl 63 idb ;
10710 
10711 desc1 -cn 1 -sd l;
10712 desc2   -cn 1 -sd t -tn 4;
10713 
10714 data 1 -do 4033 " " "+33" (15) "3333";
10715 data 2 -do 4068 "*" 021021 (7) 021021021021  0213;
10716 data 3 "*" 104104 (7) 104104104104 1043;
10717 
10718 page -all;
10719 
10720 
10721 
10722 
10723 
10724 /*                  ad2d12
10725 *                   4 bit added to 4 bit
10726 *                   maximum length
10727 *                   all page faults taken
10728 *                   no reg modification
10729 */
10730 
10731 inst      ad2d      -nt "4 bit + 4bit"
10732 -io 1
10733 -mf1 ar rl 63 idb
10734 -mf2 ar rl 63 idb;
10735 
10736 desc1 -cn 1 -sd t -tn 4;
10737 desc2 -cn 1 -sd t -tn 4;
10738 
10739 data 1 -do 4065 " " 021021 (7) 021021021021 0213;
10740 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
10741 data 3 "*" 042042 (7) 042042042042 0423;
10742 
10743 page -all;
10744 
10745 
10746 
10747 
10748 
10749 /*                  ad2d13
10750 *                   floating point add
10751 *                    9 bit to 9bit
10752 *                    all page faults taken
10753 *
10754 */
10755 
10756 inst      ad2d      -nt "9bit float add"
10757 -io 1
10758 -mf1 ar rl 63 reg idb
10759 -mf2 ar rl 63 reg idb;
10760 
10761 desc1 -sd f;
10762 desc2 -sd f;
10763 
10764 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
10765 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
10766 data 3 "+" (19) "0" "1" (9) "2" "1" (29) "0" "11" 005;
10767 
10768 page -all;
10769 
10770 
10771 
10772 
10773 
10774 
10775 /*                  ad2d14
10776 *                   4 bit floating added to
10777 *                   4 bit floating
10778 *
10779 */
10780 
10781 inst      ad2d      -nt "4 float to 4 float"
10782 -io 1
10783 -mf1 ar rl 10 ida
10784 -mf2 ar rl 10 ida;
10785 
10786 desc1 -sd f -tn 4;
10787 desc2 -sd f -tn 4;
10788 
10789 data 1 -do -1 300 000 021 021 000;
10790 data 2 -do -1 300 000 021 021 000;
10791 data 3 300 000 042 042 000;
10792 
10793 page -all;
10794 
10795 
10796 
10797 
10798 
10799 /*                  ad2d15
10800 *                   test 4bit scaled to 9 bit
10801 *
10802 */
10803 
10804 inst      ad2d      -nt "4bit->9bit"
10805 -io 1
10806 -mf1 ar rl 5 idb
10807 -mf2 ar rl 5 idb reg;
10808 
10809 desc 1 -tn 4 -sd l;
10810 desc 2 -sd n;
10811 
10812 data 1 30102100;
10813 data 2 -do 4 "02222";
10814 data 3  "03332";
10815 
10816 page -all;
10817 
10818 
10819 
10820 
10821 
10822 /*                  ad2d16
10823 *                   test 9 floating to 4 floating
10824 *
10825 */
10826 
10827 inst      ad2d      -nt "9float->4 float"
10828 -io 1
10829 -mf1 ar rl 5 idb reg
10830 -mf2 ar rl 7 idb;
10831 
10832 desc 1 -sd f;
10833 desc 2 -sd f -tn 4;
10834 
10835 data 1 "+" (3) "1" 000;
10836 data 2 300 042 040 00;
10837 data 3 30006306000;
10838 
10839 page -all;
10840 
10841 
10842 
10843 
10844 
10845 
10846 /*                  ad2d17
10847 *                   4 float to 9 float
10848 *
10849 */
10850 
10851 inst      ad2d      -nt "4float -> 9float"
10852 -io 1
10853 -mf1 ar rl 7 idb
10854 -mf2 ar rl 7 idb reg;
10855 
10856 desc 1 -sd f -tn 4 ;
10857 desc 2 -sd f;
10858 
10859 data 1 300 042 040 00;
10860 data 2 "+0" (3) "1" "0" 000;
10861 data 3 "+01332" 000;
10862 
10863 page -all;
10864 
10865 
10866 
10867 
10868 
10869 
10870 /*                  ad2d18
10871 *                   9 scaled to 9 float
10872 *
10873 */
10874 
10875 inst      ad2d      -nt "9sacled to 9 float"
10876 -io 2
10877 -mf1 ar rl 5 idb reg
10878 -mf2 ar rl 6 idb reg;
10879 
10880 desc1 -sd l;
10881 desc2 -sd f;
10882 
10883 data 1 "+" (4) "3";
10884 data 2 "+" "0" (3) "2" 000;
10885 data 3 "+" "3555" 000;
10886 
10887 page -all;
10888 
10889 
10890 
10891 
10892 
10893 /*                  ad2d19
10894 *                   9 float to 9 scaled
10895 *
10896 */
10897 
10898 inst      ad2d      -nt "9 float to 9 scaled"
10899 -io 2
10900 -mf1 ar rl 6 idb reg
10901 -mf2 ar rl 5 idb reg;
10902 
10903 desc1 -sd f;
10904 desc2 -sd l;
10905 
10906 data 1 "+" "0" (3) "2" 000;
10907 data 2 "+" (4) "3";
10908 data 3 "+"  "3555";
10909 
10910 page -all;
10911 
10912 
10913 
10914 
10915 
10916 /*                  ad2d20
10917 *                   9 scaled to 4 float
10918 *
10919 */
10920 
10921 inst      ad2d      -nt "9scaled->4float"
10922 -io 2
10923 
10924 -mf1 ar rl 5 idb reg
10925 -mf2 ar rl 6 idb;
10926 
10927 desc 1 -sd l;
10928 desc 2 -sd f -tn 4;
10929 
10930 data 1 "+0" (3) "2";
10931 data 2 303063 000;
10932 data 3 305125000;
10933 
10934 page -all;
10935 
10936 
10937 
10938 
10939 
10940 /*                  ad2d21
10941 *                   9 float to 4 scaled
10942 *
10943 */
10944 
10945 inst      ad2d      -nt "9float->4scaled"
10946 -io 1
10947 -mf1 ar rl 6 idb reg
10948 -mf2 ar rl 4 idb;
10949 
10950 desc 1 -sd f;
10951 desc 2 -sd l -tn 4;
10952 
10953 data 1 -do -1 "+0" (3) "2" 000;
10954 data 2 -do -2 303 063;
10955 data 3 305125;
10956 
10957 page -all;
10958 
10959 
10960 
10961 
10962 
10963 /*                  ad2d22
10964 *                   4scaled to 9 float
10965 *
10966 */
10967 
10968 inst      ad2d      -nt "4scaled-.9float"
10969 -io 1
10970 -mf1 ar rl 4 idb
10971 -mf2 ar rl 6 idb reg;
10972 
10973 desc 1 -sd l -tn 4;
10974 desc 2 -sd f;
10975 
10976 data 1 -do -1 303063;
10977 data 2 -do -1 "+0" (3) "2" 000;
10978 data 3 "+0" (3) "5" 000;
10979 
10980 page -all;
10981 
10982 
10983 
10984 
10985 
10986 /*                  ad2d23
10987 *                   4 floating to 9 scaled
10988 *
10989 */
10990 
10991 inst      ad2d       -nt "4float->9scaled"
10992 -io 1
10993 -mf1 ar rl 6 idb
10994 -mf2 ar rl 5 idb reg;
10995 
10996 desc 1 -sd f -tn 4;
10997 desc 2 -sd n;
10998 
10999 data 1 -do -1 303 063 000;
11000 data 2 -do -2 "00" "555";
11001 data 3 "00" "888";
11002 
11003 page -all;
11004 
11005 
11006 
11007 
11008 
11009 /*                  ad2d24
11010 *                   4 scaled to 4 float
11011 *
11012 */
11013 
11014 inst      ad2d      -nt "4scaled to 4 float"
11015 -io 1
11016 -mf1 ar rl 4 idb
11017 -mf2 ar rl 6 idb;
11018 
11019 desc 1 -tn 4 -sd l;
11020 desc 2 -tn 4 -sd f;
11021 
11022 data 1 -do -1 303 063;
11023 data 2 -do -1 302042000;
11024 data 3 305125 000;
11025 
11026 page -all;
11027 
11028 
11029 
11030 
11031 
11032 /*                  ad2d25
11033 *                   4 floating to 4 scaled
11034 *
11035 */
11036 
11037 inst      ad2d      -nt "4 floating to 4 scaled"
11038 -io 2
11039 -mf1 ar rl 6 idb
11040 -mf2 ar rl 4 idb;
11041 
11042 desc 1 -tn 4 -sd f;
11043 desc 2 -tn 4 -sd l;
11044 
11045 data 1 -do -1 302042000;
11046 data 2 -do -1 303 063;
11047 data 3 305125;
11048 
11049 page -all;
11050 
11051 
11052 
11053 
11054 
11055 /*                  ad2d26
11056 *
11057 *         Use  RL  mod and strings of length 63  and  cn  fields.
11058 */
11059 
11060 
11061 inst      ad2d      -nt "63 char string"          -io 2
11062           -mf1      rl 63     idb reg ar
11063           -mf2      rl 63     idb reg ar;
11064 
11065 desc 1    -sd n     -cn 1;
11066 desc 2    -sd n     -cn 2;
11067 
11068 data 1    -do -21   " "       "234"  (15) "1234";
11069 data 2    -do -22   "**"      "345"  (15) "2345";
11070 data 3    "**"  "579"  (15) "3579";     /* This is just test data.  This is how  descriptor 2
11071                                         *  data is going to look after the  ad2d.  */
11072 
11073 
11074 page      -all;
11075 
11076 
11077 ^L
11078 
11079 /*                  sb3d1
11080 *                   a simple test
11081 *                   no modification used
11082  -                  9 bit - 9 bit to 9 bit
11083 *
11084 */
11085 
11086 inst      sb3d      -nt"9bit-9bit->9bit"
11087 -io 2;
11088 
11089 desc1 -sd l -cn 1 -nn 10;
11090 desc2 -sd l -cn 1 -nn 10;
11091 desc3 -sd l -cn 1 -nn 10;
11092 
11093 data 1 " -" (9) "1";
11094 data 2 " +" (9) "1";
11095 data 3 000 "+" (9) "2";
11096 
11097 page -all;
11098 
11099 
11100 
11101 
11102 /*                  sb3d2
11103 *                   9 bit - 9 bit to 9 bit
11104 *                   negative indicator on
11105 *                   all page faults taken
11106 *
11107 */
11108 
11109 inst      sb3d      -nt "9 bit - 9bit to 9 bit"
11110 -io 1 -ir ng
11111 -mf1 ar rl 23 idb reg
11112 -mf2 ar rl 24 idb reg
11113 -mf3 ar rl 24 idb reg;
11114 
11115 desc1 -sd t -cn 2;
11116 desc2 -sd t -cn 1;
11117 desc3 -sd l -cn 3;
11118 
11119 data 1 -do -9 "  " (5) "0" (8) "12" "1+";
11120 data 2 -do -11 " " (6) "0" (8) "23" "2-";
11121 data 3 000000000 "-"  (6) "0" (8) "35" "3";
11122 
11123 page -all;
11124 
11125 
11126 
11127 
11128 /*                  sb3d3
11129 *                   9 bit scaled to 4 bit float to
11130 *                    4 bit float
11131 *
11132 */
11133 
11134 inst      sb3d      -nt "4bit float-9bit to 4bit"
11135 -io 2 -ir ng
11136 -mf1 ar rl 10 idb reg
11137 -mf2 ar rl 10 idb
11138 -mf3 ar rl 10 idb;
11139 
11140 desc1 -sd t -cn 1;
11141 desc2 -sd f -tn 4;
11142 desc3 -sd f -tn 4;
11143 
11144 data 1 -do -10 " " (5) "0" (4) "2" "+";
11145 data 2 -do -4 300 000 021 021 000;
11146 data 3  -do -4 320 000 021 021 000;
11147 
11148 page -all;
11149 
11150 
11151 
11152 
11153 /*                  sb3d4
11154 *                   9 bit scaled - 9 bit scaled to
11155 *                   9 bit scaled
11156 *                   all page faults taken
11157 *                   truncation indicator set
11158 *
11159 */
11160 
11161 inst      sb3d      -nt "9bit-9bit to 9bit"
11162 -io 2 -ir tn
11163 -mf1 ar rl 63 idb reg
11164 -mf2 ar rl 63 idb reg
11165 -mf3 ar rl 63 idb reg;
11166 
11167 desc1 -cn 1 -sd l -sf 5;
11168 desc2 -cn 2 -sd l -sf 10;
11169 desc3 -cn 3 -sd l -sf 10;
11170 
11171 data 1 -do 4033 " -" (5) "0" (19) "543";
11172 data 2 -do 4034 "  +" (5) "0" (19) "765";
11173 data 3 -do 4035 (3) 000 "+"  (5) "0" "76577" (17) "120" "0";
11174 
11175 page -all;
11176 
11177 
11178 
11179 
11180 /*                  sb3d5
11181 *                   9 bit scaled - 9 bit scaled tp
11182 *                   9 bit scaled
11183 *                    all page faults taken
11184 *                   rounding desired, therefore no truncation
11185 *
11186 */
11187 
11188 inst      sb3d      -nt "no truncation"
11189 -io 3
11190 -mf1 ar rl 63 idb reg
11191 -mf2 ar rl 63 idb reg
11192 -mf3 ar rl 63 idb reg
11193 -rb;
11194 
11195 desc1 -cn 1 -sd l -sf 5;
11196 desc2 -cn 2 -sd l -sf 10;
11197 desc3 -cn 1 -sd l -sf 10;
11198 
11199 data 1 -do 4033 " -" (5) "0" (19) "543";
11200 data 2 -do 4034 "  +" (5) "0" (19) "765";
11201 data 3 -do 4033 000 "+" (5) "0" "76577" (17) "120" "0";
11202 
11203 page -all;
11204 
11205 
11206 
11207 
11208 /*                  sb3d6
11209 *                   all operands 4 bit scaled
11210 *                   all page faults taken
11211 *                    negative indicator set
11212 *
11213 */
11214 
11215 inst      sb3d      -nt "4 bit-4bit to 4bit scaled"
11216 -io 1 -ir ng
11217 -mf1 ar rl 63 idb
11218 -mf2 ar rl 63 idb
11219 -mf3 ar rl 63 idb;
11220 
11221 desc1 -sd l -tn 4 -cn 1;
11222 desc2 -sd l -tn 4 -cn 1;
11223 desc3 -sd l -tn 4 -cn 1;
11224 
11225 data 1 " " 300 (26) 000 (4) 105 (8) 000;
11226 data 2 " " 300 (26) 000 (3) 105 104 (7) 000;
11227 data 3 000320 (29) 000 001 (8) 000;
11228 
11229 page -all;
11230 
11231 
11232 
11233 
11234 /*                  sb3d7
11235 *                   9 bit scaled - 9 bit scaled to
11236 *                   9 bit scaled
11237 *                   all page faults taken
11238 *                    rounding desired and it occurs
11239 *
11240 */
11241 
11242 inst      sb3d      -nt "rounded result"
11243 -io 2 -rb
11244 -mf1 ar rl 63 idb reg
11245 -mf2 ar rl 63 idb reg
11246 -mf3 ar rl 63 idb reg;
11247 
11248 desc1 -cn 1 -sd l -sf 5;
11249 desc2 -cn 1 -sd l -sf 10;
11250 desc3 -sd l -cn 1 -sf 10;
11251 
11252 data 1 -do 4033 " -" (5) "0" (17) "543" "043543";
11253 data 2 -do 4033 " +" (5) "0" (19) "765";
11254 data 3 -do 4033 000 "+" (5) "0" "76577" (16) "120" "1195";
11255 
11256 page -all;
11257 
11258 
11259 
11260 
11261 /*                  sb3d8
11262 *                   all operands 9 bit float
11263 *                   all page faults taken
11264 *                   no rounding needed
11265 :
11266 */
11267 
11268 inst      sb3d      -nt "9 bit floating"
11269 -io 1
11270 -mf1 ar rl 10 idb reg
11271 -mf2 ar rl 10 idb reg
11272 -mf3 ar rl 10 idb reg;
11273 
11274 desc1 -sd f -cn 1;
11275 desc2 -sd f -cn 1;
11276 desc3 -sd f -cn 1;
11277 
11278 data 1 -do -10 " -" (8) "1" 001;
11279 data 2 -do -10 " +" (8) "2" 001;
11280 data 3 -do -10 000 "+" (8) "3" 001;
11281 
11282 page -all;
11283 
11284 
11285 
11286 
11287 /*                  sb3d9
11288 *                   all operands 9 bit floating
11289 *                   rounding not desired, but required
11290 *                   set round bit
11291 *
11292 */
11293 
11294 inst      sb3d      -nt "round floating"
11295 -io 2 -rb
11296 -mf1 ar rl 10 ida
11297 -mf2 ar rl 10 ida
11298 -mf3 ar rl 10 ida;
11299 
11300 desc1 -cn 1 -sd f;
11301 desc2 -cn 1 -sd f;
11302 desc3 -sd f;
11303 
11304 data 1 " +" (8) "3" 000;
11305 data 2 " +" (8) "9" 001;
11306 data 3 "+" "9" (7) "6" 001;
11307 
11308 page -all;
11309 
11310 
11311 
11312 
11313 /*                  sb3d10
11314 *                   all operands 9 bit floating
11315 *                   truncation will occur
11316 *
11317 */
11318 
11319 inst      sb3d      -nt "truncation"
11320 -io 3 -ir tn
11321 -mf1 ar rl 10
11322 -mf2 ar rl 10
11323 -mf3 ar rl 10;
11324 
11325 desc1 -sd f;
11326 desc2 -sd f;
11327 desc3 -sd f;
11328 
11329 data 1 "+" (8) "3" 000;
11330 data 2 "+" (8) "9" 001;
11331 data 3 "+" "9" (6) "6" "5" 001;
11332 
11333 page -all;
11334 
11335 
11336 
11337 
11338 /*                  sb3d11
11339 *                   all operands 9 bit floating
11340 *                   truncation will occur
11341 :
11342 */
11343 
11344 inst      sb3d      -nt "truncation"
11345 -ir ng tn
11346 -mf1 ar rl 10
11347 -mf2 ar rl 10
11348 -mf3 ar rl 10;
11349 
11350 desc1 -sd f;
11351 desc2 -sd f;
11352 desc3 -sd f;
11353 
11354 data 1 -do -4 "+" (8) "3" 000;
11355 data 2 -do -4 "-" (8) "9" 001;
11356 data 3 -do -4 "-" "10" (6) "3" 002;
11357 
11358 page -all;
11359 
11360 
11361 
11362 
11363 /*                  sb3d12
11364 *                   4 scaled - 4 scaled to 4 float
11365 *
11366 */
11367 
11368 inst      sb3d      -nt "4sc-4sc->4float"
11369 -io 3
11370 -mf1 ar rl 4 idb
11371 -mf2 ar rl 4 idb
11372 -mf3 ar rl 6 idb;
11373 
11374 desc 1 -tn 4 -sd l;
11375 desc 2 -tn 4 -sd l;
11376 desc 3 -tn 4 -sd f;
11377 
11378 data 1 -do -1  323 063;
11379 data 2 -do -1 302 042;
11380 data 3 -do -1  305 125 000;
11381 
11382 page -all;
11383 
11384 
11385 
11386 
11387 /*                  sb3d13
11388 *                   4 scaled -4 float to 4 scaled
11389 *
11390 */
11391 
11392 inst      sb3d      -nt "4scaled-4float to 4 scaled"
11393 -io 2
11394 -mf1 ar rl 6 idb
11395 -mf2 ar rl 4 idb
11396 -mf3 ar rl 4 idb;
11397 
11398 desc 1 -tn 4 -sd f;
11399 desc 2 -tn 4 -sd l;
11400 desc 3 -tn 4 -sd l;
11401 
11402 data 1 -do -1 323 063 000;
11403 data 2 -do -1 302 042;
11404 data 3 -do -1 305 125;
11405 
11406 page -all;
11407 
11408 
11409 
11410 
11411 /*                  sb3d14
11412 *                   4 floating - 9 scaled to 9 floating
11413 *
11414 */
11415 
11416 inst      sb3d       -nt "4float-9scaled->9float"
11417 -io 1
11418 -mf1 ar  rl 4 idb reg
11419 -mf2 ar rl 6 idb
11420 -mf3 ar rl 5 idb reg;
11421 
11422 desc 1 -sd t;
11423 desc 2 -sd f -tn 4;
11424 desc 3 -sd f;
11425 
11426 data 1 -do -3 "333-";
11427 data 2 -do -2 302 042 000;
11428 data 3 -do -4 "+555" 000;
11429 
11430 page -all;
11431 
11432 
11433 
11434 
11435 /*                  sb3d15
11436 *                   9 scaled - 4 bit to 9 scaled
11437 *
11438 */
11439 
11440 inst      sb3d      -nt "9bit-4bit->9bit"
11441 -io 1
11442 -mf1 ar rl 5 idb
11443 -mf2 ar rl 5 idb reg
11444 -mf3 ar rl 5 idb reg;
11445 
11446 desc 1 -tn 4 -sd l;
11447 desc 2 -sd n;
11448 desc 3 -sd n;
11449 
11450 data 1 -do -1 321 02100;
11451 data 2 -do 4 "02222";
11452 data 3 -do -1 "03332";
11453 
11454 page -all;
11455 
11456 
11457 
11458 
11459 /*                  sb3d16
11460 *                   4float-9float to 4 float
11461 *
11462 */
11463 
11464 inst      sb3d      -nt "4flo-9flo->4flo"
11465 -io 1
11466 -mf1 ar rl 5 idb reg
11467 -mf2 ar rl 7 idb
11468 -mf3 ar rl 7 idb;
11469 
11470 desc 1 -sd f;
11471 desc 2 -sd f -tn 4;
11472 desc 3 -sd f -tn 4;
11473 
11474 data 1 -do -1 "-" (3) "1" 000;
11475 data 2 -do -1 300 042 040 00;
11476 data 3 -do -1 30006306000;
11477 
11478 page -all;
11479 
11480 
11481 
11482 
11483 
11484 /*                  sb3d17
11485 *                   9 float - 4 float to 9 float
11486 *
11487 */
11488 
11489 inst      sb3d      -nt "9flo-4flo->9flo"
11490 -io 1
11491 -mf1 ar rl 7 idb
11492 -mf2 ar rl 7 idb reg
11493 -mf3 ar rl 7 idb reg;
11494 
11495 desc 1 -sd f -tn 4 ;
11496 desc 2 -sd f;
11497 desc 3 -sd f;
11498 
11499 data 1 -do -1 320 042 040 00;
11500 data 2 -do -1 "+0" (3) "1" "0" 000;
11501 data 3 -do -1 "+01332" 000;
11502 
11503 page -all;
11504 
11505 
11506 
11507 
11508 
11509 /*                  sb3d18
11510 *                   9 float-9 scaled to 9 float
11511 *
11512 */
11513 
11514 inst      sb3d      -nt "9flo-9sca->9flo"
11515 -io 2
11516 -mf1 ar rl 5 idb reg
11517 -mf2 ar rl 6 idb reg
11518 -mf3 ar rl 6 idb reg;
11519 
11520 desc1 -sd l;
11521 desc2 -sd f;
11522 
11523 data 1 -do -1 "-" (4) "3";
11524 data 2  -do -1 "+" "0" (3) "2" 000;
11525 data  3 -do -1 "+" "3555" 000;
11526 
11527 page -all;
11528 
11529 
11530 
11531 
11532 /*                  sb3d19
11533 *                   9scaled - 9 floating to 9 scaled
11534 *
11535 */
11536 
11537 inst      sb3d      -nt "9sca-9flo->9sca"
11538 -io 2
11539 -mf1 ar rl 6 idb reg
11540 -mf2 ar rl 5 idb reg
11541 -mf3 ar rl 5 idb reg;
11542 
11543 desc1 -sd f;
11544 desc2 -sd l;
11545 desc 3 -sd l;
11546 
11547 data 1 -do -1 "-" "0" (3) "2" 000;
11548 data 2  -do -1 "+" (4) "3";
11549 data 3  -do -1 "+"  "3555";
11550 
11551 page -all;
11552 
11553 
11554 
11555 
11556 /*                  sb3d20
11557 *                   4 float - 9 scaled to 4 float
11558 *
11559 */
11560 
11561 inst      sb3d      -nt "4flo-9sca->9sca"
11562 -io 2
11563 
11564 -mf1 ar rl 5 idb reg
11565 -mf2 ar rl 6 idb
11566 -mf3 ar rl 6 idb;
11567 
11568 desc 1 -sd l;
11569 desc 2 -sd f -tn 4;
11570 desc 3 -sd f -tn 4;
11571 
11572 data 1 -do -1 "-0" (3) "2";
11573 data 2 -do -1 303063 000;
11574 data 3 -do -1 305125000;
11575 
11576 page -all;
11577 
11578 
11579 
11580 
11581 /*                  sb3d21
11582 *                   4scaled - 9 float to 4 scaled
11583 *
11584 */
11585 
11586 inst      sb3d      -nt "4sca-9flo->4sca"
11587 -io 1
11588 -mf1 ar rl 6 idb reg
11589 -mf2 ar rl 4 idb
11590 -mf3 ar rl 4 idb;
11591 
11592 desc 1 -sd f;
11593 desc 2 -sd l -tn 4;
11594 desc 3 -sd l -tn 4;
11595 
11596 data 1 -do -1 "-0" (3) "2" 000;
11597 data 2 -do -2 303 063;
11598 data 3 305125;
11599 
11600 page -all;
11601 
11602 
11603 
11604 
11605 /*                  sb3d22
11606 *                   9 float - 4 scaled to 9 float
11607 *
11608 */
11609 
11610 inst      sb3d      -nt "9flo-4sca->9flo"
11611 -io 1
11612 -mf1 ar rl 4 idb
11613 -mf2 ar rl 6 idb reg
11614 -mf3 ar rl 6 idb reg;
11615 
11616 desc 1 -sd l -tn 4;
11617 desc 2 -sd f;
11618 desc 3 -sd f;
11619 
11620 data 1 -do -1 323063;
11621 data 2 -do -1 "+0" (3) "2" 000;
11622 data 3 "+0" (3) "5" 000;
11623 
11624 page -all;
11625 
11626 
11627 
11628 
11629 /*                  sb3d23
11630 *                   9 scaled - 4 floating to 9 scaled
11631 *
11632 */
11633 
11634 inst      sb3d       -nt "9sca-4flo->9sca"
11635 -io 1
11636 -mf1 ar rl 6 idb
11637 -mf2 ar rl 5 idb reg
11638 -mf3 ar rl 5 idb reg;
11639 
11640 desc 1 -sd f -tn 4;
11641 desc 2 -sd n;
11642 desc 3 -sd n;
11643 
11644 data 1 -do -1 323 063 000;
11645 data 2 -do -2 "00" "555";
11646 data 3 "00" "888";
11647 
11648 page -all;
11649 
11650 
11651 
11652 
11653 /*                  sb3d24
11654 *                   4 float - 4 scaled to 4 float
11655 *
11656 */
11657 
11658 inst      sb3d      -nt "4flo-4sca->4flo"
11659 -io 1
11660 -mf1 ar rl 4 idb
11661 -mf2 ar rl 6 idb
11662 -mf3 ar rl 6 idb;
11663 
11664 desc 1 -tn 4 -sd l;
11665 desc 2 -tn 4 -sd f;
11666 desc 3 -tn 4 -sd f;
11667 
11668 data 1 -do -1 323 063;
11669 data 2 -do -1 302042000;
11670 data 3 305125 000;
11671 
11672 page -all;
11673 
11674 
11675 
11676 
11677 /*                  sb3d25
11678 *                   4 scaled - 4 floatint to 4 scaled
11679 *
11680 */
11681 
11682 inst      sb3d      -nt "4sca-4flo->4flo"
11683 -io 2
11684 -mf1 ar rl 6 idb
11685 -mf2 ar rl 4 idb
11686 -mf3 ar rl 4 idb;
11687 
11688 desc 1 -tn 4 -sd f;
11689 desc 2 -tn 4 -sd l;
11690 desc 3 -tn 4 -sd l;
11691 
11692 data 1 -do -1 322042000;
11693 data 2 -do -1 303 063;
11694 data 3 305125;
11695 
11696 page -all;
11697 
11698 
11699 
11700 
11701 /*                  sb3d26
11702 *
11703 *         Subtraction yields a zero number.
11704 */
11705 
11706 inst      sb3d      -nt "Result = zero"  -io 1
11707           -ir       zr
11708           -mf1      ar
11709           -mf2      ida
11710           -mf3      ar reg idb  rl 12;
11711 
11712 desc 1    -sd l     -nn 7     -sf 2;
11713 
11714 desc 2    -sd t     -nn 6     -sf 3;
11715 
11716 desc 3    -sd n     -sf -4;
11717 
11718 
11719 data 1    -do -3    053 "55"  "5550";
11720 
11721 data 2    -do -4    "5555"  "5" 053;
11722 
11723 data 3    -do -2    "00"  "0000000000";
11724 
11725 
11726 page      -all;
11727 
11728 
11729 ^L
11730 
11731 /*     sb2d1
11732 *  The zero indicator is set.
11733 *  Two 4-bit floating point operands are used.
11734 *  The maximum number of page faults is taken.
11735 *  Indirect descriptors are used for all operands.
11736 *  Address register modification is used for all operands.  */
11737 
11738 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11739 -ir zr
11740 -mf1 idb ar
11741 -mf2 idb ar
11742 -io 1;
11743 
11744 desc 1 -tn 4 -sd f -nn 63;
11745 desc 2 -tn 4 -sd f -nn 63;
11746 
11747 data 1 -do -1 261 (30)021 00;
11748 data 2 -do -31 261 (30)021 00;
11749 data 3 300 (29)000 007 36;
11750 
11751 page -all;
11752 
11753 
11754 
11755 /*     sb2d2
11756 *  The zero indicator is set.
11757 *  Two 4-bit operands with leading sign are used.
11758 *  The maximum number of page faults is taken.
11759 *  Indirect descriptors are used for all operands.
11760 *  Address register modification is used for all operands.  */
11761 
11762 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11763 -ir zr
11764 -mf1 idb ar
11765 -mf2 idb ar
11766 -io 2;
11767 
11768 desc 1 -tn 4 -sd l -sf 5 -nn 4;
11769 desc 2 -tn 4 -sd l -sf 4 -nn 5;
11770 
11771 data 1 -do -1 263 222;
11772 data 2 -do -2 263 222;
11773 data 3 300 000 00;
11774 
11775 page -all;
11776 
11777 
11778 
11779 /*     sb2d3
11780 *  The negative indicator is set.
11781 *  Two 9-bit floating point operands are used.
11782 *  The maximum number of page faults is taken.
11783 *  Indirect descriptors are used for all operands.
11784 *  Address register modification is used for all operands.  */
11785 
11786 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11787 -ir ng
11788 -mf1 idb ar reg
11789 -mf2 idb ar reg
11790 -io 1;
11791 
11792 desc 1 -sd f -nn 18;
11793 desc 2 -sd f -nn 18;
11794 
11795 data 1 -do -14 "+" (3)"98765" "8" 007;
11796 data 2 -do -4  "+" (3)"32411" "7" 007;
11797 data 3 "-" (3)"66354" "1" 007;
11798 
11799 page -all;
11800 
11801 
11802 
11803 /*     sb2d4
11804 *  The negative indicator is set.
11805 *  Two 9-bit operands with trailing sign are used.
11806 *  The maximum number of page faults is taken.
11807 *  Indirect descriptors are used for all operands.
11808 *  Address register modification is used for all operands.  */
11809 
11810 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11811 -ir ng
11812 -mf1 idb ar reg
11813 -mf2 idb ar reg
11814 -io 2;
11815 
11816 desc 1 -sd t -sf 5 -nn 25;
11817 desc 2 -sd t -sf 5 -nn 25;
11818 
11819 data 1 -do -23 (24) "5" "+";
11820 data 2 -do -4  (24) "4" "-";
11821 data 3 (24) "9" "-";
11822 
11823 page -all;
11824 
11825 
11826 
11827 /*     sb2d5
11828 *  The truncation indicator is set.
11829 *  Two 4-bit floating point operands are used.
11830 *  The maximum number of page faults is taken.
11831 *  Indirect descriptors are used for all operands.
11832 *  Address register modification is used for all operands.  */
11833 
11834 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11835 -ir tn
11836 -mf1 idb ar
11837 -mf2 idb ar
11838 -io 2;
11839 
11840 desc 1 -tn 4 -sd f -nn 8;
11841 desc 2 -tn 4 -sd f -nn 8;
11842 
11843 data 1 -do -2 331 231 231 004;
11844 data 2 -do -2 270 166 124 003;
11845 data 3     301 010 166 005;
11846 
11847 page -all;
11848 
11849 
11850 
11851 /*     sb2d6
11852 *  The truncation indicator is set.
11853 *  Two 9-bit leading sign operands are used.
11854 *  The maximum number of page faults is taken.
11855 *  Indirect descriptors are used for all operands.
11856 *  Address register modification is used for all operands.  */
11857 
11858 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11859 -ir tn
11860 -mf1 idb ar reg
11861 -mf2 idb ar reg
11862 -io 2;
11863 
11864 desc 1 -sd l -sf 4 -nn 63;
11865 desc 2 -sd l -sf 5 -nn 62;
11866 
11867 data 1 -do -60 "+" (62)"3";
11868 data 2 -do -3 "+" (61)"9";
11869 data 3 "+" (60)"6" "5";
11870 
11871 page -all;
11872 
11873 
11874 
11875 /*     sb2d7
11876 *  Rounding is tested.
11877 *  Two 9-bit trailing sign operands are used.
11878 *  The maximum number of page faults is taken.
11879 *  Indirect descriptors are used for all operands.
11880 *  Address register modification is used for all operands.  */
11881 
11882 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11883 -rb
11884 -mf1 idb ar reg
11885 -mf2 idb ar reg
11886 -io 1;
11887 
11888 desc 1 -sd t -sf 4 -nn 63;
11889 desc 2 -sd t -sf 5 -nn 62;
11890 
11891 data 1 -do -38 (62)"3" "+";
11892 data 2 -do -36 (61)"9" "+";
11893 data 3 (61)"6" "+";
11894 
11895 page -all;
11896 
11897 
11898 
11899 /*     sb2d8
11900 * The overflow indicator is set.
11901 *  Two 4-bit trailing sign operands are used.
11902 *  Indirect descriptors are used for all operands.
11903 *  Address register modification is used for all operands.  */
11904 
11905 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11906 -ir ov
11907 -mf1 idb ar
11908 -mf2 idb ar
11909 -io 2;
11910 
11911 desc 1 -tn 4 -sd t -sf 3 -nn 7;
11912 desc 2 -tn 4 -sd t -sf 3 -nn 7;
11913 
11914 data 1 (3)163 32;
11915 data 2 (3)231 26;
11916 data 3 163 163 162 300;
11917 
11918 page -all;
11919 
11920 
11921 
11922 /*     sb2d9
11923 *  The exponent overflow indicator is set.
11924 *  Two  4-bit  floating point operands are used.
11925 *  Indirect descriptors are used for all operands.
11926 *  Address register modification is used for all operands.  */
11927 
11928 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11929 -ir eo tn
11930 -mf1 idb ar
11931 -mf2 idb ar
11932 -io 1;
11933 
11934 desc 1 -tn 4 -sd f -nn 8 -cn 1;
11935 desc 2 -tn 4 -sd f -nn 8 -cn 1;
11936 
11937 data 1 -do -1 00 330 210 210 177;
11938 data 2 -do -4 00 267 167 167 177;
11939 data 3 00 301 146 146 200;
11940 
11941 page -all;
11942 
11943 
11944 
11945 /*     sb2d10
11946 *  Leading and trailing signs are mixed.
11947 *  Two 9-bit operands are used.
11948 *  The maximum number of page faults is taken.
11949 *  Indirect descriptors are used for all operands.
11950 *  Address register modification is used for all operands.  */
11951 
11952 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11953 -mf1 idb ar reg
11954 -mf2 idb ar reg
11955 -io 2;
11956 
11957 desc 1 -sd l -sf -8 -nn 42;
11958 desc 2 -sd t -sf -8 -nn 42;
11959 
11960 data 1 -do -40 "+" (4)"1234000000" "9";
11961 data 2 -do -2 (4)"9876543210" "9" "+";
11962 data 3 (4) "8642543210" "0+";
11963 
11964 page -all;
11965 
11966 
11967 
11968 /*     sb2d11
11969 *  Leading sign and floating point operands are mixed.
11970 *  Two 4-bit operands are used.
11971 *  The maximum number of page faults is taken.
11972 *  Indirect descriptors are used for all operands.
11973 *  Address register modification is used for all operands.  */
11974 
11975 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11976 -mf1 idb ar
11977 -mf2 idb ar
11978 -io 1;
11979 
11980 desc 1 -tn 4 -sd l -nn 8;
11981 desc 2 -tn 4 -sd f -nn 10;
11982 
11983 data 1 -do -1 271 043 064 000;
11984 data 2 -do -1 271 207 145 000 000;
11985 data 3 300 144 061 000 000;
11986 
11987 page -all;
11988 
11989 
11990 
11991 
11992 /*     sb2d12
11993 *  A leading sign 9-bit and an unsigned 4-bit operand are mixed.
11994 *  The maximum number of page faults is taken.
11995 *  Indirect descriptors are used for all operands.
11996 *  Address register modification is used for all operands.  */
11997 
11998 inst sb2d -nt "9 bit - 4 bit -> 4 bit"
11999 -mf1 idb ar reg
12000 -mf2 idb ar
12001 -io 2;
12002 
12003 desc 1 -sd l -nn 8;
12004 desc 2 -sd n -tn 4 -nn 7;
12005 
12006 data 1 -do -1  "+" "1234500";
12007 data 2 -do -1 230 166 120 00;
12008 data 3 206 102 000 00;
12009 
12010 page -all;
12011 
12012 
12013 
12014 /*     sb2d13
12015 *  Unsigned 4-bit and 9-bit operands are mixed.
12016 *  The maximum number of page faults is taken.
12017 *  Indirect descriptors are used for all operands.
12018 *  Address register modification is used for all operands.  */
12019 
12020 inst sb2d -nt "4 bit - 9 bit -> 9 bit"
12021 -mf1 idb ar
12022 -mf2 idb ar reg
12023 -io 1;
12024 
12025 desc 1 -sd n -sf 31 -tn 4 -nn 7;
12026 desc 2 -sd n -sf 31 -nn 7;
12027 
12028 data 1 -do -1 022 064 120 00 ;
12029 data 2 -do -3 "9876500";
12030 data 3 "8642000";
12031 
12032 page -all;
12033 
12034 
12035 
12036 /*     sb2d14
12037 *  Floating point and trailing sign operands are mixed.
12038 *  Two 9-bit operands are used.
12039 *  The maximum number of page faults is taken.
12040 *  Indirect descriptors are used for all operands.
12041 *  Address register modification is used for all operands.  */
12042 
12043 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12044 -mf1 idb ar reg
12045 -mf2 idb ar reg
12046 -io 2;
12047 
12048 desc 1 -sd f -nn 9;
12049 desc 2 -sd t -sf 12 -nn 8;
12050 
12051 data 1 -do -7 "+" "1234500" 014;
12052 data 2 -do -3  "9876500" "+";
12053 data 3 "8642000" "+";
12054 
12055 page -all;
12056 
12057 
12058 /*     sb2d15
12059 *  The special plus sign capability for 4-bit operands is tested.
12060 *  Indirect descriptors are used for all operands.
12061 *  Address register modification is used for all operands.  */
12062 
12063 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12064 -pb
12065 -mf1 idb ar
12066 -mf2 idb ar
12067 -io 1;
12068 
12069 desc 1 -sd l -nn 7;
12070 desc 2 -sd l -tn 4 -nn 8;
12071 
12072 data 1 -do -7 "+" "1234500";
12073 data 2 -do -2  261 043 105 000;
12074 data 3 261 021 020 120;
12075 
12076 page -all;
12077 
12078 
12079 ^L
12080 
12081 /*                  mp3d1
12082 *                   9 bit scaled * 9 bit scaled to
12083 *                   9 bit scaled
12084 *                   all page faults taken
12085 *                    rounding desired and it occurs
12086 *
12087 */
12088 
12089 inst      mp3d      -nt "rounded result"
12090 -io 2 -rb
12091 -mf1 ar rl 63 idb reg
12092 -mf2 ar rl 63 idb reg
12093 -mf3 ar rl 63 idb reg;
12094 
12095 desc1 -cn 1 -sd l -sf 5;
12096 desc2 -cn 1 -sd l -sf 10;
12097 desc3 -sd l -cn 1 -sf 20;
12098 
12099 data 1 -do 4033 " +" (20) "0" (12) "543" "043543";
12100 data 2 -do 4033 " +" (47) "0" (5) "765";
12101 data 3 -do 4033 000 "+000000000041622703784865905405405405405405405"
12102           "36711707549441337";
12103 
12104 page -all;
12105 
12106 
12107 
12108 
12109 
12110 
12111 /*                  mp3d2
12112 *                   a simple test
12113 *                   no modification used
12114 *                   9 bit*9 bit to 9 bit
12115 *
12116 */
12117 
12118 inst      mp3d      -nt"9bit*9bit->9bit"
12119 -io 2 -ir ov ng;
12120 
12121 desc1 -sd l -cn 1 -nn 10;
12122 desc2 -sd l -cn 1 -nn 10;
12123 desc3 -sd l -cn 1 -nn 10;
12124 
12125 data 1 " -" (9) "1";
12126 data 2 " +" (9) "1";
12127 data 3 000 "-"  "987654321";
12128 
12129 page -all;
12130 
12131 
12132 
12133 
12134 /*                  mp3d3
12135 *                   9 bit*9 bit to 9 bit
12136 *                   negative indicator on
12137 *                   all page faults taken
12138 *
12139 */
12140 
12141 inst      mp3d      -nt "9 bit*9bit to 9 bit"
12142 -io 1 -ir ng
12143 -mf1 ar rl 23 idb reg
12144 -mf2 ar rl 24 idb reg
12145 -mf3 ar rl 24 idb reg;
12146 
12147 desc1 -sd t -cn 2;
12148 desc2 -sd t -cn 1;
12149 desc3 -sd l -cn 3;
12150 
12151 data 1 -do -9 "  " (15) "0" (3) "12" "1+";
12152 data 2 -do -11 " " (16) "0" (3) "23" "2-";
12153 data 3 (3) 000 "-" (10) "0" "2816038295072";
12154 
12155 page -all;
12156 
12157 
12158 
12159 
12160 /*                  mp3d4
12161 *                   9 bit scaled to 4 bit float to
12162 *                    4 bit float
12163 *
12164 */
12165 
12166 inst      mp3d      -nt "4bit float*9bit to 4bit"
12167 -io 2
12168 -mf1 ar rl 10 idb reg
12169 -mf2 ar rl 10 idb
12170 -mf3 ar rl 10 idb;
12171 
12172 desc1 -sd t -cn 1;
12173 desc2 -sd f -tn 4;
12174 desc3 -sd f -tn 4;
12175 
12176 data 1 -do -10 " " (5) "0" (4) "2" "+";
12177 data 2 -do -4 300 000 000 021 000;
12178 data 3 -do -4 300 002 104 102 000;
12179 
12180 page -all;
12181 
12182 
12183 
12184 
12185 /*                  mp3d5
12186 *                   9 bit scaled*9 bit scaled to
12187 *                   9 bit scaled
12188 *                   all page faults taken
12189 *                   truncation indicator set
12190 *
12191 */
12192 
12193 inst      mp3d      -nt "9bit*9bit to 9bit"
12194 -io 2
12195 -mf1 ar rl 63 idb reg
12196 -mf2 ar rl 63 idb reg
12197 -mf3 ar rl 63 idb reg;
12198 
12199 desc1 -cn 1 -sd l  ;
12200 desc2 -cn 2 -sd l -sf 1;
12201 desc3 -cn 3 -sd l -sf 1;
12202 
12203 data 1 -do 4033 " +" (5) "0" (19) "543";
12204 data 2 -do 4034 "  +" (60) "0" "11";
12205 data 3 -do 4035 (3) 000 "+" (4) "0" "5" (18) "978" "973";
12206 
12207 page -all;
12208 
12209 
12210 
12211 
12212 /*                  mp3d6
12213 *                   9 bit scaled*9 bit scaled tp
12214 *                   9 bit scaled
12215 *                    all page faults taken
12216 *                   rounding desired, therefore no truncation
12217 *
12218 */
12219 
12220 inst      mp3d      -nt "no truncation"
12221 -io 3 -ir ng
12222 -mf1 ar rl 63 idb reg
12223 -mf2 ar rl 63 idb reg
12224 -mf3 ar rl 63 idb reg
12225 -rb;
12226 
12227 desc1 -cn 1 -sd l -sf 5;
12228 desc2 -cn 2 -sd l -sf 10;
12229 desc3 -cn 1 -sd l -sf 10;
12230 
12231 data 1 -do 4033 " -" (53) "0" (3) "543";
12232 data 2 -do 4034 "  +" (53) "0" (3) "765";
12233 data 3 -do 4033 000 "-" (39) "0" "416227037016205395" (5) "0";
12234 
12235 page -all;
12236 
12237 
12238 
12239 
12240 /*                  mp3d7
12241 *                   all operands 4 bit scaled
12242 *                   all page faults taken
12243 *                    negative indicator set
12244 *
12245 */
12246 
12247 inst      mp3d      -nt "4 bit*4bit to 4bit scaled"
12248 -io 1
12249 -mf1 ar rl 63 idb
12250 -mf2 ar rl 63 idb
12251 -mf3 ar rl 63 idb;
12252 
12253 desc1 -sd l -tn 4 -cn 1;
12254 desc2 -sd l -tn 4 -cn 1;
12255 desc3 -sd l -tn 4 -cn 1;
12256 
12257 data 1 " " 300 (26) 000 (4) 105 (8) 000;
12258 data 2 " " 300 (26) 000 (3) 105 104 (7) 000;
12259 data 3 000300 (21) 000 002 006 141 025 141 127 002 110 (9) 000;
12260 
12261 page -all;
12262 
12263 
12264 
12265 
12266 /*                  mp3d8
12267 *                   all operands 9 bit float
12268 *                   all page faults taken
12269 *                   no rounding needed
12270 *
12271 */
12272 
12273 inst      mp3d      -nt "9 bit floating"
12274 -io 1
12275 -mf1 ar rl 10 idb reg
12276 -mf2 ar rl 10 idb reg
12277 -mf3 ar rl 10 idb reg;
12278 
12279 desc1 -sd f -cn 1;
12280 desc2 -sd f -cn 1;
12281 desc3 -sd f -cn 1;
12282 
12283 data 1 -do -10 " +" (4) "0" (4) "1" 001;
12284 data 2 -do -10 " +" (4) "0" (4) "2" 001;
12285 data 3 -do -10 000 "+" "02468642" 002;
12286 
12287 page -all;
12288 
12289 
12290 
12291 
12292 /*                  mp3d9
12293 *                   all operands 9 bit floating
12294 *                   rounding not desired, but required
12295 *                   set round bit
12296 *
12297 */
12298 
12299 inst      mp3d      -nt "round floating"
12300 -io 2 -rb
12301 -mf1 ar rl 10 ida
12302 -mf2 ar rl 10 ida
12303 -mf3 ar rl 10 ida;
12304 
12305 desc1 -cn 1 -sd f;
12306 desc2 -cn 1 -sd f;
12307 desc3 -sd f;
12308 
12309 data 1 " +" (4) "0" (4) "3" 002;
12310 data 2 " +" (4) "0" (4) "9" 001;
12311 data 3 "+"  (3) "3" "26667" 003;
12312 
12313 page -all;
12314 
12315 
12316 
12317 
12318 /*                  mp3d10
12319 *                   all operands 9 bit floating
12320 *                   truncation will occur
12321 *
12322 */
12323 
12324 inst      mp3d      -nt "truncation"
12325 -io 3 -ir tn
12326 -mf1 ar rl 10
12327 -mf2 ar rl 10
12328 -mf3 ar rl 10;
12329 
12330 desc1 -sd f;
12331 desc2 -sd f;
12332 desc3 -sd f;
12333 
12334 data 1 "+" (3) "0" (5) "3" 000;
12335 data 2 "+" (4) "0" (4) "9" 001;
12336 data 3 "+" (3) "3" "29666" 002;
12337 
12338 page -all;
12339 
12340 
12341 
12342 
12343 
12344 
12345 
12346 /*                  mp3d11
12347 *                    set zero indicator, use three 9-bit operands
12348 *
12349 */
12350 inst      mp3d      -nt"9sca*9sca->9sca"
12351 -ir zr
12352 -mf1 idb ar reg
12353 -mf2 idb ar reg
12354 -mf3 idb ar reg
12355 -io 1;
12356 
12357 desc 1 -sd f -nn 63;
12358 desc 2 -sd f -nn 63;
12359 desc 3 -sd f -nn 63;
12360 
12361 data 1 "+" (61)"0" 000 -do -62;
12362 data 2 "-" (61)"9" 034 -do -34;
12363 data 3 "+" (61)"0" 177;
12364 
12365 page -all;
12366 
12367 
12368 
12369 
12370 /*                  mp3d12
12371 *
12372  set zero indicator, use  three 9-bit leading sign operands
12373 *
12374 */
12375 inst      mp3d      -nt"9sca*9sca->9sca"
12376 -ir zr
12377 -mf1 idb ar
12378 -mf2 idb ar
12379 -mf3 idb ar
12380 -io 2;
12381 
12382 desc 1 -sd l -sf 10 -nn 7;
12383 desc 2 -sd l -sf 10 -nn 28;
12384 desc3 -sd l -sf 10 -nn 28;
12385 
12386 data 1 -do -4 "-" (6)"4";
12387 data 2 -do -24 "+" (27)"0";
12388 data 3 "+" (27)"0";
12389 
12390 page -all;
12391 
12392 
12393 
12394 
12395 /*                  mp3d13
12396 *
12397 *                    set negative indicator, use three 4-bit floating operands
12398 *
12399 */
12400 
12401 inst       mp3d     -nt "4float*4float->4float"
12402 -ir ng
12403 -mf1 idb ar
12404 -mf2 idb ar
12405 -mf3 idb ar
12406 -io 1;
12407 
12408 desc 1 -tn 4 -sd f -nn 6;
12409 desc 2 -tn 4 -sd f -nn 6;
12410 desc 3 -tn 4 -sd f -nn 6;
12411 
12412 data 1 260  061 004;
12413 data 2 320 050 004;
12414 data 3 330 150 010;
12415 
12416 page -all;
12417 
12418 
12419 
12420 
12421 /*                  mp3d14
12422 *
12423 *                   set negative indicator, use three  4-bit leading sign operands
12424 *
12425 */
12426 
12427 inst      mp3d      -nt "4sca*4sca->4sca"
12428 -ir ng
12429 -mf1 idb ar
12430 -mf2 idb ar
12431 -mf3 idb ar
12432 -io 2;
12433 
12434 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12435 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12436 desc 3 -tn 4 -sd l -sf 2 -nn 6;
12437 
12438 data 1 260 061;
12439 data 2 320 000 050;
12440 data 3 330 150 000;
12441 
12442 page -all;
12443 
12444 
12445 
12446 
12447 /*                  mp3d15
12448 *
12449 *                   set truncation indicator, use three 4-bit floating operands
12450 *
12451 */
12452 
12453 inst      mp3d      -nt "4float*4float->4float"
12454 -ir tn
12455 -mf1 idb ar
12456 -mf2 idb ar
12457 -mf3 idb ar
12458 -io 1;
12459 
12460 desc 1 -tn 4 -sd f -nn 6;
12461 desc 2 -tn 4 -sd f -nn 6;
12462 desc 3 -tn 4 -sd f -nn 6;
12463 
12464 data 1 266 130 012;
12465 data 2 260 022 013;
12466 data 3 307 211 026;
12467 
12468 page -all;
12469 
12470 
12471 
12472 
12473 /*                  mp3d16
12474 *
12475 *                   set truncation indicator, use three 4-bit leading sign operands
12476 *
12477 */
12478 
12479 inst      mp3d      -nt "4sca*4sca->4sca"
12480 -ir tn
12481 -mf1 idb ar
12482 -mf2 idb ar
12483 -mf3 idb ar
12484 -io 2;
12485 
12486 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12487 desc 2 -tn 4 -sd l -sf 4  -nn 5 -cn 1;
12488 desc 3 -tn 4 -sd l -sf 4 -nn 5;
12489 
12490 data 1 00 271;
12491 data 2 00 261 043 10;
12492 data 3 301 021 00;
12493 
12494 page -all;
12495 
12496 
12497 
12498 
12499 /*                  mp3d17
12500 *
12501 *                   test rounding, use three 4-bit trailing sign operands
12502 *
12503 */
12504 
12505 inst      mp3d      -nt "4sca*4sca->4sca"
12506 -rb
12507 -mf1 idb ar
12508 -mf2 idb ar
12509 -mf3 idb ar
12510 -io 1;
12511 
12512 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12513 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12514 desc 3 -tn 4 -sd t -sf 4 -nn 5;
12515 
12516 data 1 -do -1 00 233;
12517 data 2 -do -2 022 064 30;
12518 data 3 021 021 30;
12519 
12520 page -all;
12521 
12522 
12523 
12524 
12525 /*                  mp3d18
12526 *
12527 *                    set overflow indicator, use three 9-bit unsigned operands
12528 *
12529 */
12530 
12531 inst      mp3d      -nt "9sca*9sca->9sca"
12532 -ir ov
12533 -mf1 idb ar reg
12534 -mf2 idb ar reg
12535 -mf3 idb ar reg
12536 -io 2;
12537 
12538 desc 1 -sd n -nn 3;
12539 desc 2 -sd n -nn 5;
12540 desc 3 -sd n -nn 5;
12541 
12542 data 1 -do -1 "999";
12543 data 2 -do -4 "00999";
12544 data 3 "98001";
12545 
12546 page -all;
12547 
12548 
12549 
12550 
12551 /*                  mp3d19
12552 *
12553 *                   set exponent overflow indicator, use three 9-bit floating operands
12554 *
12555 */
12556 
12557 inst      mp3d      -nt "9flo*9flo->9flo"
12558 -ir eo tn
12559 -mf1 idb ar reg
12560 -mf2 idb ar reg
12561 -mf3 idb ar reg
12562 -io 1;
12563 
12564 desc 1 -sd f -nn 6;
12565 desc 2 -sd f -nn 6;
12566 desc 3 -sd f -nn 6;
12567 
12568 data 1 -do -4 "+" "0900" 100;
12569 data 2 -do -1 "+" "0756" 076;
12570 data 3  "+" "6804" 200;
12571 
12572 page -all;
12573 
12574 
12575 
12576 
12577 /*                  mp3d20
12578 *
12579 *                   set exponent underflow indicator, use three 4-bit trailing
12580 *                   sign operands
12581 *
12582 */
12583 
12584 inst      mp3d      -nt "4sca*4sca->4sca"
12585 -ir eu
12586 -mf1 idb ar
12587 -mf2 idb ar
12588 -mf3 idb ar
12589 -io 2;
12590 
12591 desc 1 -tn 4 -sd f -nn 6 -cn 1;
12592 desc 2 -tn 4 -sd f -nn 6 -cn 1;
12593 desc 3 -tn 4 -sd f -nn 6 -cn 1;
12594 
12595 data 1 -do -1 00 260 042 200;
12596 data 2 -do -2 00 260 063 300;
12597 data 3 00 307 046 100;
12598 
12599 page -all;
12600 
12601 
12602 
12603 
12604 /*                  mp3d21
12605 *
12606 *                   mix leading and traling signs with 4-bit operands
12607 *
12608 */
12609 
12610 inst      mp3d      -nt "4sca*4sca->4sca"
12611 -mf1 idb ar
12612 -mf2 idb ar
12613 -mf3 idb ar
12614 -io 1;
12615 
12616 desc 1 -tn 4 -sd l  -nn 63;
12617 desc 2 -tn 4 -sd t -sf 3 -nn 63;
12618 desc 3 -tn 4 -sd t -sf 3 -nn 63;
12619 
12620 data 1 -do -62 260 (30)000 22;
12621 data 2 -do -1 010 (30)210 26;
12622 data 3 171 (29)231 222 30;
12623 
12624 page -all;
12625 
12626 
12627 
12628 
12629 /*                  mp3d22
12630 *
12631 *                   mix floating point  and leading sign with 9-bit operands
12632 *
12633 */
12634 
12635 inst      mp3d      -nt "9flo*9sca->9sca"
12636 -mf1 idb ar reg
12637 -mf2 idb ar reg
12638 -mf3 idb ar reg
12639 -io 2;
12640 
12641 desc 1 -sd f -nn 5;
12642 desc 2 -sd l -sf -3 -nn 63;
12643 desc 3 -sd l -sf -3 -nn 63;
12644 
12645 data 1 -do -4 "+" "009" 001;
12646 data 2 -do -17 "+" "00" (60)"8";
12647 data 3 "+" "7" (59)"9" "20";
12648 
12649 page -all;
12650 
12651 
12652 
12653 
12654 /*                  mp3d23
12655 *
12656 *                   mix 9-bit and 4-bit operands, use  leading sign and unsigned scaled
12657 *                   decimals
12658 *
12659 */
12660 
12661 inst      mp3d      -nt "9sca*4sca->4sca"
12662 -mf1 idb ar reg
12663 -mf2 idb ar
12664 -mf3 idb ar
12665  -io 1;
12666 
12667 desc 1 -sd l -sf 2 -nn 11;
12668 desc 2 -sd n -sf 2 -nn 15 -tn 4;
12669 desc 3 -sd n -sf 2 -nn 15 -tn 4;
12670 
12671 data 1 -do -7 "+" "2271658432";
12672 data 2 -do -1 (6)000 124 04;
12673 data 3 022 061 043 210 160 024 100 000;
12674 
12675 page -all;
12676 
12677 
12678 
12679 /*                  mp3d24
12680 *
12681 *                   mix 4-bit and 9-bit unsigned operands
12682 *
12683 */
12684 
12685 inst      mp3d      -nt "4sca*9sca->9sca"
12686 -mf1 idb ar
12687 -mf2 idb ar reg
12688 -mf3 idb ar reg
12689 -io 2;
12690 
12691 desc 1 -sd n -tn 4 -sf 2 -nn 10;
12692 desc 2 -sd n -sf 2 -nn 15;
12693 desc 3 -sd n -sf 2 -nn 15;
12694 
12695 data 1 -do -1  042 161 145 204 142;
12696 data 2 -do -13  (12)"0" "542";
12697 data 3 "123123888640400";
12698 
12699 page -all;
12700 
12701 
12702 
12703 /*                  mp3d25
12704 *
12705 *                   mix floating point and trailing sign 9-bit operands
12706 *
12707 */
12708 
12709 inst      mp3d      -nt "9-bit f -> 4 bit trailing sign"
12710 -ir ng
12711 -mf1 idb ar reg
12712 -mf2 idb ar reg
12713 -mf3 idb ar reg
12714 -io 1;
12715 
12716 desc 1 -sd f -nn 16;
12717 desc 2 -sd t -sf 4 -nn 16;
12718 desc 3 -sd t -sf 4 -nn 16;
12719 
12720 data 1 -do -5 "+" "0000" "2271658432" 002;
12721 data 2 -do -6 (12)"0" "542" "-";
12722 data 3 "123123887014400" "-";
12723 
12724 page -all;
12725 
12726 
12727 
12728 
12729 /*                  mp3d26
12730 *
12731 *         Multiply  505.05+  by  floating +2.2  and get the  4 bit number
12732 *         +1111.11000
12733 */
12734 
12735 inst      mp3d      -nt "Result is 4 bit num"       -io 3
12736           -mf1      ida
12737           -mf2      reg ar idb
12738           -mf3      ar idb;
12739 
12740 
12741 desc 1    -nn 6     -sd t     -sf -2    -cn 1;
12742 
12743 data 1    -do -4
12744           " " "505"  "05" 053;
12745 
12746 
12747 desc 2    -nn 4     -sd f     -cn 2;
12748 
12749 data 2    -do -3
12750           "  " 053  "22" 377;           /* Exponent = -1  */
12751 
12752 
12753 desc 3    -nn 10    -sd l     -tn 4     -sf -5;
12754 
12755 data 3              301 021   021 020 000;
12756 
12757 
12758 page      -all;
12759 
12760 /*                  mp3d27
12761 *                   9 bit scaled * 9 bit scaled to
12762 *                   9 bit scaled
12763 *                   all page faults taken
12764 *
12765 */
12766 
12767 inst      mp3d      -nt "rounded result"
12768 -io 2 -rb
12769 -mf1 ar rl 63 idb reg
12770 -mf2 ar rl 63 idb reg
12771 -mf3 ar rl 63 idb reg;
12772 
12773 desc1 -cn 1 -sd l ;
12774 desc2 -cn 1 -sd l ;
12775 desc3 -sd l -cn 1 ;
12776 
12777 data 1 -do 4033 " +" (20) "0" (12) "111" "111111";
12778 data 2 -do 4033 " +" (53) "0" (9) "1";
12779 data 3 -do 4033 000 "+" (12) "0" "12345678" (34) "9" "87654321";
12780 
12781 page -all;
12782 
12783 
12784 ^L
12785 
12786 
12787 /*     mp2d1
12788 *  The zero indicator is set.
12789 *  Two 9-bit operands are used.
12790 *  Indirect descriptors are used for all operands.
12791 *  Address register modification is used for all operands.  */
12792 
12793 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12794 -ir zr
12795 -mf1 idb ar reg
12796 -mf2 idb ar reg
12797 -io 1;
12798 
12799 desc 1 -sd f -nn 63;
12800 desc 2 -sd f -nn 63;
12801 
12802 data 1 "+" (61)"0" 000 -do -62;
12803 data 2 "-" (61)"9" 034 -do -34;
12804 data 3 "+" (61)"0" 177;
12805 
12806 page -all;
12807 
12808 
12809 
12810 /*     mp2d2
12811 *  The zero indicator is set.
12812 *  Two 9-bit leading sign operands are used.
12813 *  The maximum number of page faults is taken.
12814 *  Indirect descriptors are used for all operands.
12815 *  Address register modification is used for all operands.  */
12816 
12817 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12818 -ir zr
12819 -mf1 idb ar
12820 -mf2 idb ar
12821 -io 2;
12822 
12823 desc 1 -sd l -sf 10 -nn 7;
12824 desc 2 -sd l -sf 10 -nn 28;
12825 
12826 data 1 -do -4 "-" (6)"4";
12827 data 2 -do -24 "+" (27)"0";
12828 data 3 "+" (27)"0";
12829 
12830 page -all;
12831 
12832 
12833 
12834 /*     mp2d3
12835 *  The negative indicator is set.
12836 *  Two 4-bit floating point operands are used.
12837 *  Indirect descriptors are used for all operands.
12838 *  Address register modification is used for all operands.  */
12839 
12840 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12841 -ir ng
12842 -mf1 idb ar
12843 -mf2 idb ar
12844 -io 1;
12845 
12846 desc 1 -tn 4 -sd f -nn 6;
12847 desc 2 -tn 4 -sd f -nn 6;
12848 
12849 data 1 260  061 004;
12850 data 2 320 050 004;
12851 data 3 330 150 010;
12852 
12853 page -all;
12854 
12855 
12856 
12857 /*     mp2d4
12858 *  The negative indicator is set.
12859 *  Two  4-bit leading sign operands are used.
12860 *  Indirect descriptors are used for all operands.
12861 *  Address register modification is used for all operands.  */
12862 
12863 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12864 -ir ng
12865 -mf1 idb ar
12866 -mf2 idb ar
12867 -io 2;
12868 
12869 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12870 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12871 
12872 data 1 260 061;
12873 data 2 320 000 050;
12874 data 3 330 150 000;
12875 
12876 page -all;
12877 
12878 
12879 
12880 /*     mp2d5
12881 *  The truncation indicator is set.
12882 *  Two 4-bit floating point operands are used.
12883 *  Indirect descriptors are used for all operands.
12884 *  Address register modification is used for all operands.  */
12885 
12886 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12887 -ir tn
12888 -mf1 idb ar
12889 -mf2 idb ar
12890 -io 1;
12891 
12892 desc 1 -tn 4 -sd f -nn 6;
12893 desc 2 -tn 4 -sd f -nn 6;
12894 
12895 data 1 266 130 012;
12896 data 2 260 022 013;
12897 data 3 307 211 026;
12898 
12899 page -all;
12900 
12901 
12902 
12903 /*     mp2d6
12904 *  The truncation indicator is set.
12905 *  Two 4-bit leading sign operands are used.
12906 *  Indirect descriptors are used for all operands.
12907 *  Address register modification is used for all operands.  */
12908 
12909 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12910 -ir tn
12911 -mf1 idb ar
12912 -mf2 idb ar
12913 -io 2;
12914 
12915 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12916 desc 2 -tn 4 -sd l -sf 4  -nn 5 -cn 1;
12917 
12918 data 1 00 271;
12919 data 2 00 261 043 10;
12920 data 3 00 301 021 00;
12921 
12922 page -all;
12923 
12924 
12925 
12926 /*     mp2d7
12927 *  Rounding is tested.
12928 *  Two 4-bit trailing sign operands are used.
12929 *  The maximum number of page faults is taken.
12930 *  Indirect descriptors are used for all operands.
12931 *  Address register modification is used for all operands.  */
12932 
12933 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12934 -rb
12935 -mf1 idb ar
12936 -mf2 idb ar
12937 -io 1;
12938 
12939 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12940 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12941 
12942 data 1 -do -1 00 233;
12943 data 2 -do -2 022 064 30;
12944 data 3 021 021 30;
12945 
12946 page -all;
12947 
12948 
12949 
12950 /*     mp2d8
12951 *  The overflow indicator is set.
12952 *  Two 9-bit unsigned operands are used.
12953 *  The maximum number of page faults is taken.
12954 *  Indirect descriptors are used for all operands.
12955 *  Address register modification is used for all operands.  */
12956 
12957 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12958 -ir ov
12959 -mf1 idb ar reg
12960 -mf2 idb ar reg
12961 -io 2;
12962 
12963 desc 1 -sd n -nn 3;
12964 desc 2 -sd n -nn 5;
12965 
12966 data 1 -do -1 "999";
12967 data 2 -do -4 "00999";
12968 data 3 "98001";
12969 
12970 page -all;
12971 
12972 
12973 
12974 /*     mp2d9
12975 *  The exponent overflow indicator is set.
12976 *  Two 9-bit floating point operands
12977 *  The maximum number of page faults is taken.
12978 *  Indirect descriptors are used for all operands.
12979 *  Address register modification is used for all operands.  */
12980 
12981 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12982 -ir eo tn
12983 -mf1 idb ar reg
12984 -mf2 idb ar reg
12985 -io 1;
12986 
12987 desc 1 -sd f -nn 6;
12988 desc 2 -sd f -nn 6;
12989 
12990 data 1 -do -4 "+" "0900" 100;
12991 data 2 -do -1 "+" "0756" 076;
12992 data 3  "+" "6804" 200;
12993 
12994 page -all;
12995 
12996 
12997 
12998 /*     mp2d10
12999 *  The exponent underflow indicator is set.
13000 *  Two 4-bit trailing sign operands are used.
13001 *  The maximum number of page faults is taken.
13002 *  Indirect descriptors are used for all operands.
13003 *  Address register modification is used for all operands.  */
13004 
13005 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13006 -ir eu
13007 -mf1 idb ar
13008 -mf2 idb ar
13009 -io 2;
13010 
13011 desc 1 -tn 4 -sd f -nn 6 -cn 1;
13012 desc 2 -tn 4 -sd f -nn 6 -cn 1;
13013 
13014 data 1 -do -1 00 260 042 200;
13015 data 2 -do -2 00 260 063 300;
13016 data 3 00 307 046 100;
13017 
13018 page -all;
13019 
13020 
13021 
13022 /*     mp2d11
13023 *  Leading and trailing signs are mixed.
13024 *  Two 4-bit operands are used.
13025 *  Indirect descriptors are used for all operands.
13026 *  Address register modification is used for all operands.  */
13027 
13028 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13029 -mf1 idb ar
13030 -mf2 idb ar
13031 -io 1;
13032 
13033 desc 1 -tn 4 -sd l  -nn 63;
13034 desc 2 -tn 4 -sd t -sf 3 -nn 63;
13035 
13036 data 1 -do -62 260 (30)000 22;
13037 data 2 -do -1 010 (30)210 26;
13038 data 3 171 (29)231 222 30;
13039 
13040 page -all;
13041 
13042 
13043 
13044 /*     mp2d12
13045 *  A floating point operand and a leading sign operand are used.
13046 *  Two 9-bit operands are used.
13047 *  The maximum number of page faults is taken.
13048 *  Indirect descriptors are used for all operands.
13049 *  Address register modification is used for all operands.  */
13050 
13051 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13052 -mf1 idb ar reg
13053 -mf2 idb ar reg
13054 -io 2;
13055 
13056 desc 1 -sd f -nn 5;
13057 desc 2 -sd l -sf -3 -nn 63;
13058 
13059 data 1 -do -4 "+" "009" 001;
13060 data 2 -do -17 "+" "00" (60)"8";
13061 data 3 "+" "7" (59)"9" "20";
13062 
13063 page -all;
13064 
13065 
13066 
13067 /*     mp2d13
13068 *  A leading sign 9-bit operand and an unsigned 4-bit operand are used.
13069 *  The maximum number of page faults is taken.
13070 *  Indirect descriptors are used for all operands.
13071 *  Address register modification is used for all operands.  */
13072 
13073 
13074 inst mp2d -nt "9-bit x 4-bit -> 4-bit"
13075 -mf1 idb ar reg
13076 -mf2 idb ar
13077  -io 1;
13078 
13079 desc 1 -sd l -sf 2 -nn 11;
13080 desc 2 -sd n -sf 2 -nn 15 -tn 4;
13081 
13082 data 1 -do -7 "+" "2271658432";
13083 data 2 -do -1 (6)000 124 04;
13084 data 3 022 061 043 210 160 024 100 000;
13085 
13086 page -all;
13087 
13088 
13089 
13090 /*     mp2d14
13091 *  Unsigned 4-bit and 9-bit operands are used.
13092 *  The maximum number of page faults is taken.
13093 *  Indirect descriptors are used for all operands.
13094 *  Address register modification is used for all operands.  */
13095 
13096 inst mp2d -nt "4-bit x 9-bit -> 9-bit"
13097 -mf1 idb ar
13098 -mf2 idb ar reg
13099 -io 2;
13100 
13101 desc 1 -sd n -tn 4 -sf 2 -nn 10;
13102 desc 2 -sd n -sf 2 -nn 15;
13103 
13104 data 1 -do -1  042 161 145 204 142;
13105 data 2 -do -13  (12)"0" "542";
13106 data 3 "123123888640400";
13107 
13108 page -all;
13109 
13110 
13111 /*     mp2d15
13112 *  A floating point operand and a trailing sign operand are used.
13113 *  Two 9-bit operands are used.
13114 *  The maximum number of page faults is taken.
13115 *  Indirect descriptors are used for all operands.
13116 *  Address register modification is used for all operands.  */
13117 
13118 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13119 -ir ng
13120 -mf1 idb ar reg
13121 -mf2 idb ar reg
13122 -io 1;
13123 
13124 desc 1 -sd f -nn 16;
13125 desc 2 -sd t -sf 4 -nn 16;
13126 
13127 data 1 -do -5 "+" "0000" "2271658432" 002;
13128 data 2 -do -6 (12)"0" "542" "-";
13129 data 3 "123123887014400" "-";
13130 
13131 page -all;
13132 
13133 
13134 ^L
13135 
13136 /*     dv3d1
13137 *  The zero indicator is set.
13138 *  Three 9-bit floating point operands are used.
13139 *  The maximum number of page faults is taken.
13140 *  Indirect descriptors are used for all operands.
13141 *  Address register modification is used for all operands.  */
13142 
13143 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13144 -ir zr
13145 -mf1 idb ar reg
13146 -mf2 idb ar reg
13147 -mf3 idb ar reg
13148 -io 1;
13149 
13150 desc 1  -sd f -nn 6;
13151 desc 2 -sd f -nn 55;
13152 desc 3 -sd f -nn 31;
13153 
13154 data 1 -do -2 "+" "4275" 377;
13155 data 2 -do -50  "+" (53)"0" 374;
13156 data 3 -do -25  "+" (29)"0" 177;
13157 
13158 page -all;
13159 
13160 
13161 
13162 /*     dv3d2
13163 *  The negative indicator is set.
13164 *  Three 4-bit floating point operands are used.
13165 *  The maximum number of page faults is taken.
13166 *  Indirect descriptors are used for all operands.
13167 *  Address register modification is used for all operands.  */
13168 
13169 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13170 -ir ng -mf1 idb ar
13171 -mf2 idb ar
13172 -mf3 idb ar
13173 -io 2;
13174 
13175 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13176 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13177 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13178 
13179 data 1 -do -1 00 260 000 002 004;
13180 data 2 -do -4 00 320 225 120 004;
13181 data 3 -do -2 00 324 167 120 377;
13182 
13183 page -all;
13184 
13185 
13186 /*     dv3d3
13187 *  The negative indicator is set.
13188 *  Three 4-bit trailing sign operands are used.
13189 *  Indirect descriptors are used for all operands.
13190 *  Address register modification is used for all operands.  */
13191 
13192 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13193 -ir ng
13194 -mf1 idb ar
13195 -mf2 idb ar
13196 -mf3 idb ar
13197 -io 3;
13198 
13199 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13200 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13201 desc 3 -tn 4 -sd t -sf 3 -nn3;
13202 
13203 data 1 000 055;
13204 data 2 010 26;
13205 data 3 100 32;
13206 
13207 page -all;
13208 
13209 
13210 /*     dv3d4
13211 *  The overflow indicator is set.
13212 *  Three 4-bit floating point operands are used.
13213 *  The maximum number of page faults is taken.
13214 *  Indirect descriptors are used for all operands.
13215 *  Address register modification is used for all operands.  */
13216 
13217 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13218 -ir ov
13219 -mf1 idb ar
13220 -mf2 idb ar
13221 -mf3 idb ar
13222 -io 1;
13223 
13224 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13225 desc 2 -tn 4 -sd n -sf 1 -nn63;
13226 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13227 
13228 data 1 -do -12 (31)000 10;
13229 data 2 -do -15 (31)167 16;
13230 data 3 -do -18 (25)104;
13231 
13232 page -all;
13233 
13234 
13235 
13236 /*     dv3d5
13237 *  A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13238 *  All operands are unsigned.
13239 *  The maximum number of page faults is taken.
13240 *  Indirect descriptors are used for all operands.
13241 *  Address register modification is used for all operands.  */
13242 
13243 inst dv3d -nt "(9 bit / 9 bit) -> 4 bit"
13244 -mf1 idb ar reg
13245 -mf2 idb ar reg
13246 -mf3 idb ar
13247 -io 1;
13248 
13249 desc 1 -sd n -nn 8;
13250 desc 2 -sd n -nn 10;
13251 desc 3 -sd n -tn 4 -nn 8;
13252 
13253 data 1 -do -7 "30144196";
13254 data 2 -do -3 "1567498217";
13255 data 3 -do -2 (3)000 122;
13256 
13257 page -all;
13258 
13259 
13260 
13261 /*     dv3d6
13262 *  A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13263 *  All operands are floating point.
13264 *  The maximum number of page faults is taken.
13265 *  Indirect descriptors are used for all operands.
13266 *  Address register modification is used for all operands.  */
13267 
13268 inst dv3d -nt "(4 bit / 4 bit) -> 9 bit"
13269 -mf1 idb ar
13270 -mf2 idb ar
13271 -mf3 idb ar reg
13272 -io 2;
13273 
13274 desc 1 -tn 4 -sd f -nn 11;
13275 desc 2 -tn 4 -sd f -nn 13;
13276 desc 3 -sd f -nn 10;
13277 
13278 data 1 -do -4 323 001 104 031 140 00;
13279 data 2 -do -3 321 126 164 230 041 160 00;
13280 data 3 -do -1 "+" "052" (5)"0" 373;
13281 
13282 page -all;
13283 
13284 
13285 
13286 /*     dv3d7
13287 *  A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13288 *  All operands are trailing sign.
13289 *  The maximum number of page faults is taken.
13290 *  Indirect descriptors are used for all operands.
13291 *  Address register modification is used for all operands.  */
13292 
13293 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13294 -mf1 idb ar reg
13295 -mf2 idb ar
13296 -mf3 idb ar
13297 -io 3;
13298 
13299 desc 1 -sd t -nn 10;
13300 desc 2 -tn 4 -sd t -nn 11;
13301 desc 3 -tn 4 -sd t -nn 10;
13302 
13303 data 1 -do -8 "030144196" "-";
13304 data 2 -do -5 025 147 111 202 027 320;
13305 data 3 -do -3 (3)000 005 054;
13306 
13307 page -all;
13308 
13309 
13310 
13311 /*     dv3d8
13312 *  A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13313 *  All operands are leading sign.
13314 *  Indirect descriptors are used for all operands.
13315 *  Address register modification is used for all operands.  */
13316 
13317 inst dv3d -nt "(9 bit / 4 bit) -> 9 bit"
13318 -mf1 idb ar reg
13319 -mf2 idb ar
13320 -mf3 idb ar reg
13321 -io 2;
13322 
13323 desc 1  -sd l -sf 6 -nn 20;
13324 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13325 desc 3 -sd l -nn 20;
13326 
13327 data 1 "+" (11)"0" "30144196";
13328 data 2 260 (4) 000 025 147 111 202 027;
13329 data 3 "+" (17)"0" "52";
13330 
13331 page -all;
13332 
13333 
13334 
13335 /*     dv3d9
13336 *  Leading sign, trailing sign, and floating point operands are used.
13337 *  Three 9-bit operands are used.
13338 *  Indirect descriptors are used for all operands.
13339 *  Address register modification is used for all operands.  */
13340 
13341 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13342 -mf1 idb ar reg
13343 -mf2 idb ar reg
13344 -mf3 idb ar reg
13345 -io 3;
13346 
13347 desc 1 -sd l -sf 1 -nn 8;
13348 desc 2 -sd t -sf 2 -nn 8;
13349 desc 3 -sd f -nn 8;
13350 
13351 data 1 "+" (5)"0" "58";
13352 data 2 "000" "1234" "+";
13353 data 3 "+" "021275" 376;
13354 
13355 page -all;
13356 
13357 
13358 
13359 /*     dv3d10
13360 *  Floating point, unsigned, and leading sign operands are used.
13361 *  Three 4-bit operands are used.
13362 *  Indirect descriptors are  used for all operands.
13363 *  Address register modification is used for all operands.  */
13364 
13365 inst dv3d -nt "(4 bit / 4 bit -> 4 bit"
13366 -mf1 idb ar
13367 -mf2 idb ar
13368 -mf3 idb ar
13369 -io 1;
13370 
13371 desc 1 -tn 4 -sd f -nn 8;
13372 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13373 desc 3 -tn 4 -sd l -nn 8;
13374 
13375 data 1 260 002 022 000;
13376 data 2 000 000 022 064;
13377 data 3 300 000 000 130;
13378 
13379 page -all;
13380 
13381 
13382 
13383 
13384 /*                  dv3d11
13385 *                   Use RL mod and cn field with indirect descriptors
13386 *                   Use three 9-bit trailing sign operands.
13387 *
13388 */
13389 
13390 
13391 inst      dv3d      -nt "two character offset"
13392 -io 2  -ir ng
13393 -mf1 ar rl 10 idb reg
13394 -mf2 ar rl 10 idb reg
13395 -mf3 ar rl 10 idb reg;
13396 
13397 desc1 -cn 1  -sd t ;
13398 desc2 -cn 1  -sd t ;
13399 desc 3 -cn 1 -sd t;
13400 
13401 data 1 -do -9 " " (9) "1" "-";
13402 data 2 -do -9 "*" (9) "2" "+";
13403 data 3 000 (8)"0" "2" "-";
13404 
13405 page -all;
13406 
13407 /*                  dv3d12
13408 *                   Use RL mod and cn field with indirect descriptors
13409 *                   Use three 9-bit trailing sign operands.
13410 *
13411 */
13412 
13413 
13414 inst      dv3d      -nt "one character offset"
13415 -io 2  -ir ng
13416 -mf1 ar rl 10 idb reg
13417 -mf2 ar rl 10 idb reg
13418 -mf3 ar rl 10 idb reg;
13419 
13420 desc1 -cn 1  -sd t ;
13421 desc2 -cn 1  -sd t ;
13422 desc3 -cn 1 -sd t;
13423 
13424 data 1 -do -10 " " (9) "1" "-";
13425 data 2 -do -20 "*" (9) "2" "+";
13426 data 3 000 (8) "0" "2" "-";
13427 
13428 page -all;
13429 
13430 /*                  dv3d13
13431 *                   Use RL mod and cn field
13432 *                   Use three 9-bit trailing sign operands.
13433 *                   no indirect descriptors
13434 *
13435 */
13436 
13437 inst      dv3d      -nt "no indirect descriptors"
13438 -io 2  -ir ng
13439 -mf1 ar rl 10  reg
13440 -mf2 ar rl 10 reg
13441 -mf3 ar rl 10 reg;
13442 
13443 desc1 -cn 1  -sd t ;
13444 desc2 -cn 1  -sd t ;
13445 desc3 -cn 1 -sd t;
13446 
13447 data 1 -do -9 " " (9) "1" "-";
13448 data 2 -do -9 "*" (9) "2" "+";
13449 data 3 000 (8) "0" "2" "-";
13450 
13451 page -all;
13452 
13453 /*                  dv3d14
13454 *                   Use no modification
13455 *                   Use three 9 bit trailing sign operands.
13456 *
13457 */
13458 
13459 inst      dv3d      -nt "no mf modification"
13460 -io 2  -ir ng;
13461 
13462 desc1 -cn 1  -sd t  -nn 12;
13463 desc2 -cn 1  -sd t  -nn 12;
13464 desc3 -cn 1 -sd t -nn 12;
13465 
13466 data 1 -do -12 " " (11) "1" "-";
13467 data 2 -do -12 "*" (11) "2" "+";
13468 data 3 000 (10) "0" "2" "-";
13469 
13470 page -all;
13471 
13472 /*                  dv3d15
13473 *                   Use ar and rl
13474 *                   Use three 9-bit trailing sign operands.
13475 *
13476 */
13477 
13478 
13479 inst      dv3d      -nt "ar and rl modification"
13480 -io 2  -ir ng
13481 -mf1 ar rl 10
13482 -mf2 ar rl 10
13483 -mf3 ar rl 10 ;
13484 
13485 desc1 -cn 1  -sd t ;
13486 desc2 -cn 1  -sd t ;
13487 desc3 -cn 1 -sd t;
13488 
13489 data 1 -do -9 " " (9) "1" "-";
13490 data 2 -do -9 "*" (9) "2" "+";
13491 data 3 000 (8)"0" "2" "-";
13492 
13493 page -all;
13494 
13495 /*                  dv3d16
13496 *                   Use ar and rl modification on desc1
13497 *                   Use ar rl idb reg on desc2
13498 *                   Use three 9-bit trailing sign operands.
13499 *
13500 */
13501 
13502 
13503 inst      dv3d      -nt "two character offset"
13504 -io 2  -ir ng
13505 -mf1 ar rl 10
13506 -mf2 ar rl 10 idb reg
13507 -mf3 ar rl 10 idb reg;
13508 
13509 desc1 -cn 1  -sd t ;
13510 desc2 -cn 1  -sd t ;
13511 desc3 -cn 1 -sd t;
13512 
13513 data 1 -do -9 " " (9) "1" "-";
13514 data 2 -do -9 "*" (9) "2" "+";
13515 data 3 000 (8) "0" "2" "-";
13516 
13517 page -all;
13518 
13519 
13520 
13521 /*                  dv3d17
13522 *                   maximum length divide leading sign
13523 *                   one character over next page
13524 *                   all modification taken
13525 */
13526 inst      dv3d      -nt "maximum length "
13527 -io 2
13528 -mf1 ar rl 63 idb reg
13529 -mf2 ar rl 63 idb reg
13530 -mf3 ar rl 63 idb reg;
13531 
13532 desc1 -cn 1 -sd l ;
13533 desc2 -cn 1 -sd l ;
13534 desc3 -cn 1 -sd l;
13535 
13536 data 1 -do 4033 " " "+33" (15) "8642";
13537 data 2 -do 4033 "*" "+33" (15) "8642";
13538 data 3 000 "+" (61) "0" "1";
13539 
13540 page -all;
13541 
13542 
13543 
13544 
13545 /*                  dv3d18
13546 *                   This is a simple test
13547 *                   Use three 9-bit trailing sign operands.
13548 *
13549 */
13550 
13551 inst      dv3d      -nt "simple test";
13552 
13553 desc1  -sd t -nn 63;
13554 desc2  -sd t -sf 10 -nn 63;
13555 desc3 -sd t -sf 10 -nn 63;
13556 
13557 data 1 "11" (12) "1111" "11" (10) "0" "+";
13558 data 2 "22" (12) "2222" "22" (10) "0" "+";
13559 data 3 (61) "0" "2" "+";
13560 
13561 page -all;
13562 
13563 
13564 
13565 /*                  dv3d19
13566 *                   maximum length divide resulting
13567 *                   in an overflow
13568 *                   all modification taken
13569 *                   Use three 9-bit leading sign operands.
13570 */
13571 inst      dv3d      -nt "truncation fault"
13572 -io 1
13573 -mf1 ar rl 63 idb reg
13574 -mf2 ar rl 63 idb reg
13575 -mf3 ar rl 63 idb reg;
13576 
13577 desc1 -sd l -cn 1;
13578 desc2 -sd l -cn 1;
13579 desc3 -sd l -cn 1;
13580 
13581 data 1 -do 4033 " " "+33" (15) "8642";
13582 data 2 -do 4033 "*" "+71" (15) "2357";
13583 data 3 000 "+" (61) "0" "2";
13584 
13585 page -all;
13586 
13587 
13588 
13589 /*                  dv3d20
13590 *                   maximum length over two pages
13591 *                   no faults, (9 bit / 4 bit) -> 4 bit
13592 *
13593 */
13594 
13595 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13596 -io 1
13597 -mf1 ar rl 63
13598 -mf2 ar rl 63
13599 -mf3 ar rl 63 ;
13600 
13601 desc1 -sd t ;
13602 desc2 -sd t  -tn 4;
13603 desc3 -sd t -tn 4;
13604 
13605 data 1 -do 4033  "33" (15) "3333" "+";
13606 data 2 -do 4064  104104 (7) 104104104104 10426;
13607 data 3 (28) 000 000000001300;
13608 
13609 page -all;
13610 
13611 
13612 
13613 /*                  dv3d21
13614 *                   (9 bit / 4 bit) -> 4 bit  ; all page faults possible
13615 *                    no reg modification on desc2
13616 *
13617 */
13618 
13619 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13620 -io 2
13621 -mf1 ar rl 63 idb reg
13622 -mf2 ar rl 63 idb
13623 -mf3 ar rl 63 idb ;
13624 
13625 desc1 -cn 1 -sd l;
13626 desc2   -cn 1 -sd t -tn 4;
13627 desc3 -cn 1 -sd t -tn 4;
13628 
13629 data 1 -do 4033 " " "+" (15) "0000" "22";
13630 data 2 -do 4068 "*" (28) 000 104104 1043;
13631 data 3 000 (28) 000 002 002 002 300;
13632 
13633 page -all;
13634 
13635 
13636 
13637 /*                  dv3d22
13638 *                   Use three 4-bit trailing sign operands.
13639 *                   maximum length
13640 *                   all page faults taken
13641 *                   no reg modification
13642 */
13643 
13644 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13645 -io 1
13646 -mf1 ar rl 63 idb
13647 -mf2 ar rl 63 idb
13648 -mf3 ar rl 63 idb;
13649 
13650 desc1 -cn 1 -sd t -tn 4;
13651 desc2 -cn 1 -sd t -tn 4;
13652 desc3 -cn 1 -sd t -tn 4;
13653 
13654 data 1 -do 4065 " " (28) 000 000 000 0013;
13655 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
13656 data 3 000 021021 (7) 021021021021 0213;
13657 
13658 page -all;
13659 
13660 
13661 
13662 /*                  dv3d23
13663 *                   floating point divide
13664 *                    Use three 9-bit floatinf point operands.
13665 *                    all page faults taken
13666 *
13667 */
13668 
13669 inst      dv3d      -nt "9bit float divide"
13670 -io 1
13671 -mf1 ar rl 63 reg idb
13672 -mf2 ar rl 63 reg idb
13673 -mf3 ar rl 63 reg idb;
13674 
13675 desc1 -sd f;
13676 desc2 -sd f;
13677 desc3 -sd f;
13678 
13679 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
13680 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
13681 data 3 "+" "1" (60) "0" 305;
13682 
13683 page -all;
13684 
13685 
13686 
13687 
13688 /*                  dv3d24
13689 *                   Use three 4-bit floating point operands.
13690 *
13691 */
13692 
13693 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13694 -io 1
13695 -mf1 ar rl 10 ida
13696 -mf2 ar rl 10 ida
13697 -mf3 ar rl 10 ida;
13698 
13699 desc1 -sd f -tn 4;
13700 desc2 -sd f -tn 4;
13701 desc3 -sd f -tn 4;
13702 
13703 data 1 -do -1 300 000 000 001 000;
13704 data 2 -do -1 300 000 021 021 000;
13705 data 3 301 021 020 000 375;
13706 
13707 page -all;
13708 
13709 
13710 
13711 /*                  dv3d25
13712 *                   (4 bit / 9 bit) -> 9 bit
13713 *
13714 */
13715 
13716 inst dv3d -nt "(4 bit / 9 bit) -> 9 bit"
13717 -io 1
13718 -mf1 ar rl 5 idb
13719 -mf2 ar rl 5 idb reg
13720 -mf3 ar rl 5 idb reg;
13721 
13722 desc 1 -tn 4 -sd l;
13723 desc 2 -sd n;
13724 desc 3 -sd n;
13725 
13726 data 1 30102100;
13727 data 2 -do 4 "02222";
13728 data 3 "00002";
13729 
13730 page -all;
13731 
13732 
13733 
13734 /*     dv3d26
13735 *  The zero indicator is set.
13736 *  Three 9-bit floating point operands are used.
13737 *  No indirect descriptors are used.
13738 *  Address register modification is used for all operands.  */
13739 
13740 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13741 -ir zr
13742 -mf1 ar reg
13743 -mf2 ar reg
13744 -mf3 ar reg
13745 -io 1;
13746 
13747 desc 1  -sd f -nn 6;
13748 desc 2 -sd f -nn 55;
13749 desc 3 -sd f -nn 31;
13750 
13751 data 1 -do -2 "+" "4275" 377;
13752 data 2 -do -50  "+" (53)"0" 374;
13753 data 3 -do -25  "+" (29)"0" 177;
13754 
13755 page -all;
13756 
13757 
13758 
13759 /*     dv3d27
13760 *  The negative indicator is set.
13761 *  Three 4-bit floating point operands are used.
13762 *  No indirect descriptors are used.
13763 *  Address register modification is used for all operands.  */
13764 
13765 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13766 -ir ng -mf1 ar
13767 -mf2 ar
13768 -mf3 ar
13769 -io 2;
13770 
13771 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13772 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13773 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13774 
13775 data 1 -do -1 00 260 000 002 004;
13776 data 2 -do -4 00 320 225 120 004;
13777 data 3 -do -2 00 324 167 120 377;
13778 
13779 page -all;
13780 
13781 
13782 /*     dv3d28
13783 *  The negative indicator is set.
13784 *  Three 4-bit trailing sign operands are used.
13785 *  No indirect descriptors are used.
13786 *  Address register modification is used for all operands.  */
13787 
13788 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13789 -ir ng
13790 -mf1 ar
13791 -mf2 ar
13792 -mf3 ar
13793 -io 3;
13794 
13795 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13796 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13797 desc 3 -tn 4 -sd t -sf 3 -nn3;
13798 
13799 data 1 000 055;
13800 data 2 010 26;
13801 data 3 100 32;
13802 
13803 page -all;
13804 
13805 
13806 /*     dv3d29
13807 *  The overflow indicator is set.
13808 *  Three 4-bit floating point operands are used.
13809 *  No indirect descriptors are used.
13810 *  Address register modification is used for all operands.  */
13811 
13812 inst dv3d -nt "(4 bit / 4 bit) -> 4 bit"
13813 -ir ov
13814 -mf1 ar
13815 -mf2 ar
13816 -mf3 ar
13817 -io 1;
13818 
13819 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13820 desc 2 -tn 4 -sd n -sf 1 -nn63;
13821 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13822 
13823 data 1 -do -12 (31)000 10;
13824 data 2 -do -15 (31)167 16;
13825 data 3 -do -18 (25)104;
13826 
13827 page -all;
13828 
13829 
13830 
13831 /*     dv3d30
13832 *  A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13833 *  All operands are unsigned.
13834 *  No indirect descriptors are used.
13835 *  Address register modification is used for all operands.  */
13836 
13837 inst dv3d -nt "(9 bit / 9 bit) -> 4 bit"
13838 -mf1 ar reg
13839 -mf2 ar reg
13840 -mf3 ar
13841 -io 1;
13842 
13843 desc 1 -sd n -nn 8;
13844 desc 2 -sd n -nn 10;
13845 desc 3 -sd n -tn 4 -nn 8;
13846 
13847 data 1 -do -7 "30144196";
13848 data 2 -do -3 "1567498217";
13849 data 3 -do -2 (3)000 122;
13850 
13851 page -all;
13852 
13853 
13854 
13855 /*     dv3d31
13856 *  A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13857 *  All operands are floating point.
13858 *  No indirect descriptors are used.
13859 *  Address register modification is used for all operands.  */
13860 
13861 inst dv3d -nt "(4 bit / 4 bit) -> 9 bit"
13862 -mf1 ar
13863 -mf2 ar
13864 -mf3 ar reg
13865 -io 2;
13866 
13867 desc 1 -tn 4 -sd f -nn 11;
13868 desc 2 -tn 4 -sd f -nn 13;
13869 desc 3 -sd f -nn 10;
13870 
13871 data 1 -do -4 323 001 104 031 140 00;
13872 data 2 -do -3 321 126 164 230 041 160 00;
13873 data 3 -do -1 "+" "052" (5)"0" 373;
13874 
13875 page -all;
13876 
13877 
13878 
13879 /*     dv3d32
13880 *  A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13881 *  All operands are trailing sign.
13882 *  No indirect descriptors are used.
13883 *  Address register modification is used for all operands.  */
13884 
13885 inst dv3d -nt "(9 bit / 4 bit) -> 4 bit"
13886 -mf1 ar reg
13887 -mf2 ar
13888 -mf3 ar
13889 -io 3;
13890 
13891 desc 1 -sd t -nn 10;
13892 desc 2 -tn 4 -sd t -nn 11;
13893 desc 3 -tn 4 -sd t -nn 10;
13894 
13895 data 1 -do -8 "030144196" "-";
13896 data 2 -do -5 025 147 111 202 027 320;
13897 data 3 -do -3 (3)000 005 054;
13898 
13899 page -all;
13900 
13901 
13902 
13903 /*     dv3d33
13904 *  A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13905 *  All operands are leading sign.
13906 *  No indirect descriptors are used.
13907 *  Address register modification is used for all operands.  */
13908 
13909 inst dv3d -nt "(9 bit / 4 bit) -> 9 bit"
13910 -mf1 ar reg
13911 -mf2 ar
13912 -mf3 ar reg
13913 -io 2;
13914 
13915 desc 1  -sd l -sf 6 -nn 20;
13916 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13917 desc 3 -sd l -nn 20;
13918 
13919 data 1 "+" (11)"0" "30144196";
13920 data 2 260 (4) 000 025 147 111 202 027;
13921 data 3 "+" (17)"0" "52";
13922 
13923 page -all;
13924 
13925 
13926 
13927 /*     dv3d34
13928 *  Leading sign, trailing sign, and floating point operands are used.
13929 *  Three 9-bit operands are used.
13930 *  No indirect descriptors are used.
13931 *  Address register modification is used for all operands.  */
13932 
13933 inst dv3d -nt "(9 bit / 9 bit) -> 9 bit"
13934 -mf1 ar reg
13935 -mf2 ar reg
13936 -mf3 ar reg
13937 -io 3;
13938 
13939 desc 1 -sd l -sf 1 -nn 8;
13940 desc 2 -sd t -sf 2 -nn 8;
13941 desc 3 -sd f -nn 8;
13942 
13943 data 1 "+" (5)"0" "58";
13944 data 2 "000" "1234" "+";
13945 data 3 "+" "021275" 376;
13946 
13947 page -all;
13948 
13949 
13950 
13951 /*     dv3d35
13952 *  Floating point, unsigned, and leading sign operands are used.
13953 *  Three 4-bit operands are used.
13954 *  Indirect descriptors are  used for all operands.
13955 *  Address register modification is used for all operands.  */
13956 
13957 inst dv3d -nt "(4 bit / 4 bit -> 4 bit"
13958 -mf1 ar
13959 -mf2 ar
13960 -mf3 ar
13961 -io 1;
13962 
13963 desc 1 -tn 4 -sd f -nn 8;
13964 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13965 desc 3 -tn 4 -sd l -nn 8;
13966 
13967 data 1 260 002 022 000;
13968 data 2 000 000 022 064;
13969 data 3 300 000 000 130;
13970 
13971 page -all;
13972 
13973 ^L
13974 
13975 /*                  dv2d1
13976 *                   Use RL mod and cn field with indirect descriptors
13977 *                   divide 9 bit scaled to 9 bit scaled
13978 *
13979 */
13980 
13981 
13982 inst      dv2d      -nt "two character offset"
13983 -io 2  -ir ng
13984 -mf1 ar rl 10 idb reg
13985 -mf2 ar rl 10 idb reg;
13986 
13987 desc1 -cn 1  -sd t ;
13988 desc2 -cn 1  -sd t ;
13989 
13990 data 1 -do -9 " " (9) "1" "-";
13991 data 2 -do -9 "*" (9) "2" "+";
13992 data 3 "*" (8) "0" "2" "-";
13993 
13994 page -all;
13995 
13996 
13997 /*                  dv2d2
13998 *                   Use RL mod and cn field with indirect descriptors
13999 *                   9 bit scaled to 9 bit scaled
14000 *
14001 */
14002 
14003 
14004 inst      dv2d      -nt "one character offset"
14005 -io 2  -ir ng
14006 -mf1 ar rl 10 idb reg
14007 -mf2 ar rl 10 idb reg;
14008 
14009 desc1 -cn 1  -sd t ;
14010 desc2 -cn 1  -sd t ;
14011 
14012 data 1 -do -10 " " (9) "1" "-";
14013 data 2 -do -20 "*" (9) "2" "+";
14014 data 3 "*" (8) "0" "2" "-";
14015 
14016 page -all;
14017 
14018 
14019 /*                  dv2d3
14020 *                   Use RL mod and cn field
14021 *                   9 bit scaled to 9 bit scaled
14022 *                   no indirect descriptors
14023 *
14024 */
14025 
14026 inst      dv2d      -nt "no indirect descriptors"
14027 -io 2  -ir ng
14028 -mf1 ar rl 10  reg
14029 -mf2 ar rl 10 reg;
14030 
14031 desc1 -cn 1  -sd t ;
14032 desc2 -cn 1  -sd t ;
14033 
14034 data 1 -do -9 " " (9) "1" "-";
14035 data 2 -do -9 "*" (9) "2" "+";
14036 data 3 "*" (8) "0" "2" "-";
14037 
14038 page -all;
14039 
14040 
14041 /*                  dv2d4
14042 *                   Use no modification
14043 *                   9bit scaled divideed to 9 bit scaled
14044 *
14045 */
14046 
14047 inst      dv2d      -nt "no mf modification"
14048 -io 2  -ir ng;
14049 
14050 desc1 -cn 1  -sd t  -nn 12;
14051 desc2 -cn 1  -sd t  -nn 12;
14052 
14053 data 1 -do -12 " " (11) "1" "-";
14054 data 2 -do -12 "*" (11) "2" "+";
14055 data 3 "*" (10) "0" "2" "-";
14056 
14057 page -all;
14058 
14059 
14060 /*                  dv2d5
14061 *                   Use ar and rl
14062 *                   9 bit scaled to 9 bit scaled
14063 *
14064 */
14065 
14066 
14067 inst      dv2d      -nt "ar and rl modification"
14068 -io 2  -ir ng
14069 -mf1 ar rl 10
14070 -mf2 ar rl 10 ;
14071 
14072 desc1 -cn 1  -sd t ;
14073 desc2 -cn 1  -sd t ;
14074 
14075 data 1 -do -9 " " (9) "1" "-";
14076 data 2 -do -9 "*" (9) "2" "+";
14077 data 3 "*" (8)"0" "2" "-";
14078 
14079 page -all;
14080 
14081 
14082 /*                  dv2d6
14083 *                   Use aar and rl modification, desc1
14084 *                   Use ar rl idb reg on desc2
14085 *                   9 bit scaled to 9 bit scaled
14086 *
14087 */
14088 
14089 
14090 inst      dv2d      -nt "two character offset"
14091 -io 2  -ir ng
14092 -mf1 ar rl 10
14093 -mf2 ar rl 10 idb reg;
14094 
14095 desc1 -cn 1  -sd t ;
14096 desc2 -cn 1  -sd t ;
14097 
14098 data 1 -do -9 " " (9) "1" "-";
14099 data 2 -do -9 "*" (9) "2" "+";
14100 data 3 "*" (8) "0" "2" "-";
14101 
14102 page -all;
14103 
14104 
14105 
14106 
14107 /*                  dv2d7
14108 *                   maximum length divide leading sign
14109 *                   one character over next page
14110 *                   all modification taken
14111 */
14112 inst      dv2d      -nt "maximum length "
14113 -io 2
14114 -mf1 ar rl 63 idb reg
14115 -mf2 ar rl 63 idb reg;
14116 
14117 desc1 -cn 1 -sd l ;
14118 desc2 -cn 1 -sd l ;
14119 
14120 data 1 -do 4033 " " "+33" (15) "8642";
14121 data 2 -do 4033 "*" "+33" (15) "8642";
14122 data 3 "*" "+" (61) "0" "1";
14123 
14124 page -all;
14125 
14126 
14127 
14128 
14129 
14130 /*                  dv2d8
14131 *                   This is a simple test
14132 *                   9 bit divide to 9 bit all scaled trailing sign
14133 *
14134 */
14135 
14136 inst      dv2d      -nt "simple test";
14137 
14138 desc1  -sd t -nn 63;
14139 desc2  -sd t -sf 10 -nn 63;
14140 
14141 data 1 "11" (12) "1111" "11" (10) "0" "+";
14142 data 2 "22" (12) "2222" "22" (10) "0" "+";
14143 data 3 (61) "0" "2" "+";
14144 
14145 page -all;
14146 
14147 
14148 
14149 
14150 /*                  dv2d9
14151 *                   maximum length divide resulting
14152 *                   in an overflow
14153 *                   all modification taken
14154 *                   9 bit scaled to 9 bit scaled
14155 */
14156 
14157 inst      dv2d      -nt "truncation fault"
14158 -io 1
14159 -mf1 ar rl 63 idb reg
14160 -mf2 ar rl 63 idb reg;
14161 
14162 desc1 -sd l -cn 1;
14163 desc2 -sd l -cn 1;
14164 
14165 data 1 -do 4033 " " "+33" (15) "8642";
14166 data 2 -do 4033 "*" "+71" (15) "2357";
14167 data 3 "*" "+" (61) "0" "2";
14168 
14169 page -all;
14170 
14171 
14172 
14173 
14174 /*                  dv2d10
14175 *                   maximum length over two pages
14176 *                   no faults, 9 bit to 4 bit
14177 *
14178 */
14179 
14180 inst      dv2d      -nt "9 bit -> 4 bit"
14181 -io 1
14182 -mf1 ar rl 63
14183 -mf2 ar rl 63 ;
14184 
14185 desc1 -sd t ;
14186 desc2 -sd t  -tn 4;
14187 
14188 data 1 -do 4033  "33" (15) "3333" "+";
14189 data 2 -do 4064  104104 (7) 104104104104 10426;
14190 data 3 (28) 000 000000001300;
14191 
14192 page -all;
14193 
14194 
14195 
14196 
14197 /*                  dv2d11
14198 *                   9 bit to 4 bit all page faults possible
14199 *                    no reg modification on desc2
14200 *
14201 */
14202 
14203 inst      dv2d      -nt "9bit ->4bit"
14204 -io 2
14205 -mf1 ar rl 63 idb reg
14206 -mf2 ar rl 63 idb ;
14207 
14208 desc1 -cn 1 -sd l;
14209 desc2   -cn 1 -sd t -tn 4;
14210 
14211 data 1 -do 4033 " " "+" (15) "0000" "22";
14212 data 2 -do 4068 "*" (28) 000 104104 1043;
14213 data 3 "*" (28) 000 002 002 002 300;
14214 
14215 page -all;
14216 
14217 
14218 
14219 
14220 /*                  dv2d12
14221 *                   4 bit divideed to 4 bit
14222 *                   maximum length
14223 *                   all page faults taken
14224 *                   no reg modification
14225 */
14226 
14227 inst      dv2d      -nt "4 bit + 4bit"
14228 -io 1
14229 -mf1 ar rl 63 idb
14230 -mf2 ar rl 63 idb;
14231 
14232 desc1 -cn 1 -sd t -tn 4;
14233 desc2 -cn 1 -sd t -tn 4;
14234 
14235 data 1 -do 4065 " " (28) 000 000 000 0013;
14236 data 2 -do 4065 "*" 021021 (7) 021021021021 0213;
14237 data 3 "*" 021021 (7) 021021021021 0213;
14238 
14239 page -all;
14240 
14241 
14242 
14243 
14244 /*                  dv2d13
14245 *                   floating point divide
14246 *                    9 bit to 9bit
14247 *                    all page faults taken
14248 *
14249 */
14250 
14251 inst      dv2d      -nt "9bit float divide"
14252 -io 1
14253 -mf1 ar rl 63 reg idb
14254 -mf2 ar rl 63 reg idb;
14255 
14256 desc1 -sd f;
14257 desc2 -sd f;
14258 
14259 data 1 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 005;
14260 data 2 -do -1 "+" (20) "0" (10) "1" (30) "0" "1" 006;
14261 data 3 "+" "1" (60) "0" 305;
14262 
14263 page -all;
14264 
14265 
14266 
14267 
14268 
14269 /*                  dv2d14
14270 *                   4 bit floating divided to
14271 *                   4 bit floating
14272 *
14273 */
14274 
14275 inst      dv2d      -nt "4 float to 4 float"
14276 -io 1
14277 -mf1 ar rl 10 ida
14278 -mf2 ar rl 10 ida;
14279 
14280 desc1 -sd f -tn 4;
14281 desc2 -sd f -tn 4;
14282 
14283 data 1 -do -1 300 000 000 001 000;
14284 data 2 -do -1 300 000 021 021 000;
14285 data 3 301 021 020 000 375;
14286 
14287 page -all;
14288 
14289 
14290 
14291 
14292 /*                  dv2d15
14293 *                   test 4bit scaled to 9 bit
14294 *
14295 */
14296 
14297 inst      dv2d      -nt "4bit->9bit"
14298 -io 1
14299 -mf1 ar rl 5 idb
14300 -mf2 ar rl 5 idb reg;
14301 
14302 desc 1 -tn 4 -sd l;
14303 desc 2 -sd n;
14304 
14305 data 1 30102100;
14306 data 2 -do 4 "02222";
14307 data 3 "00002";
14308 
14309 page -all;
14310 
14311 
14312 
14313 
14314 /*                  dv2d16
14315 *                   test 9 floating to 4 floating
14316 *
14317 */
14318 
14319 inst      dv2d      -nt "9float->4 float"
14320 -io 1
14321 -mf1 ar rl 5 idb reg
14322 -mf2 ar rl 7 idb;
14323 
14324 desc 1 -sd f;
14325 desc 2 -sd f -tn 4;
14326 
14327 data 1 "+" (3) "1" 000;
14328 data 2 300 042 040 00;
14329 data 3 302 000 017 320;
14330 
14331 page -all;
14332 
14333 
14334 
14335 
14336 
14337 /*                  dv2d17
14338 *                   4 float to 9 float
14339 *
14340 */
14341 
14342 inst      dv2d      -nt "4float -> 9float"
14343 -io 1
14344 -mf1 ar rl 7 idb
14345 -mf2 ar rl 7 idb reg;
14346 
14347 desc 1 -sd f -tn 4 ;
14348 desc 2 -sd f;
14349 
14350 data 1 300 042 040 00;
14351 data 2 "+0" (3) "1" "0" 000;
14352 data 3 "+05000" 375;
14353 
14354 page -all;
14355 
14356 
14357 
14358 
14359 
14360 /*                  dv2d18
14361 *                   9 scaled to 9 float
14362 *
14363 */
14364 
14365 inst      dv2d      -nt "9sacled to 9 float"
14366 -io 2
14367 -mf1 ar rl 5 idb reg
14368 -mf2 ar rl 6 idb reg;
14369 
14370 desc1 -sd l;
14371 desc2 -sd f;
14372 
14373 data 1 "+" (4) "3";
14374 data 2 "+" "0" (3) "2" 000;
14375 data 3 "+" "0666" 374;
14376 
14377 page -all;
14378 
14379 
14380 
14381 
14382 /*                  dv2d19
14383 *                   9 float to 9 scaled
14384 *
14385 */
14386 
14387 inst      dv2d      -nt "9 float to 9 scaled"
14388 -io 2
14389 -mf1 ar rl 6 idb reg
14390 -mf2 ar rl 5 idb reg;
14391 
14392 desc1 -sd f;
14393 desc2 -sd l;
14394 
14395 data 1 "+" "0" (3) "2" 000;
14396 data 2 "+" (4) "3";
14397 data 3 "+0015";
14398 
14399 page -all;
14400 
14401 
14402 
14403 
14404 /*                  dv2d20
14405 *                   9 scaled to 4 float
14406 *
14407 */
14408 
14409 inst      dv2d      -nt "9scaled->4float"
14410 -io 2
14411 
14412 -mf1 ar rl 5 idb reg
14413 -mf2 ar rl 6 idb;
14414 
14415 desc 1 -sd l;
14416 desc 2 -sd f -tn 4;
14417 
14418 data 1 "+0" (3) "2";
14419 data 2 303063 000;
14420 data 3 301 120 376;
14421 
14422 page -all;
14423 
14424 
14425 
14426 
14427 /*                  dv2d21
14428 *                   9 float to 4 scaled
14429 *
14430 */
14431 
14432 inst      dv2d      -nt "9float->4scaled"
14433 -io 1
14434 -mf1 ar rl 6 idb reg
14435 -mf2 ar rl 4 idb;
14436 
14437 desc 1 -sd f;
14438 desc 2 -sd l -tn 4;
14439 
14440 data 1 -do -1 "+0" (3) "2" 000;
14441 data 2 -do -2 303 063;
14442 data 3 300 001;
14443 
14444 page -all;
14445 
14446 
14447 
14448 
14449 /*                  dv2d22
14450 *                   4scaled to 9 float
14451 *
14452 */
14453 
14454 inst      dv2d      -nt "4scaled-.9float"
14455 -io 1
14456 -mf1 ar rl 4 idb
14457 -mf2 ar rl 6 idb reg;
14458 
14459 desc 1 -sd l -tn 4;
14460 desc 2 -sd f;
14461 
14462 data 1 -do -1 303063;
14463 data 2 -do -1 "+0" (3) "2" 000;
14464 data 3 "+0" (3) "6" 375;
14465 
14466 page -all;
14467 
14468 
14469 
14470 
14471 /*                  dv2d23
14472 *                   4 floating to 9 scaled
14473 *
14474 */
14475 
14476 inst      dv2d       -nt "4float->9scaled"
14477 -io 1
14478 -mf1 ar rl 6 idb
14479 -mf2 ar rl 5 idb reg;
14480 
14481 desc 1 -sd f -tn 4;
14482 desc 2 -sd n;
14483 
14484 data 1 -do -1 303 063 000;
14485 data 2 -do -2 "00" "555";
14486 data 3 (4) "0" "1";
14487 
14488 page -all;
14489 
14490 
14491 
14492 
14493 /*                  dv2d24
14494 *                   4 scaled to 4 float
14495 *
14496 */
14497 
14498 inst      dv2d      -nt "4scaled to 4 float"
14499 -io 1
14500 -mf1 ar rl 4 idb
14501 -mf2 ar rl 6 idb;
14502 
14503 desc 1 -tn 4 -sd l;
14504 desc 2 -tn 4 -sd f;
14505 
14506 data 1 -do -1 303 063;
14507 data 2 -do -1 302042000;
14508 data 3 300 146 376;
14509 
14510 page -all;
14511 
14512 
14513 
14514 
14515 /*                  dv2d25
14516 *                   4 floating to 4 scaled
14517 *
14518 */
14519 
14520 inst      dv2d      -nt "4 floating to 4 scaled"
14521 -io 2
14522 -mf1 ar rl 6 idb
14523 -mf2 ar rl 4 idb;
14524 
14525 desc 1 -tn 4 -sd f;
14526 desc 2 -tn 4 -sd l;
14527 
14528 data 1 -do -1 302042000;
14529 data 2 -do -1 303 063;
14530 data 3 300 001;
14531 
14532 page -all;
14533 
14534 
14535 
14536 /*                  dv2d26
14537 *
14538 */
14539 
14540 inst      dv2d      -nt "Simple divide"  -io 3
14541           -mf1      ar reg idb
14542           -mf2      ar reg idb;
14543 
14544 
14545 desc 1    -sd n     -nn 3;
14546 desc 2    -sd n     -nn 4;
14547 
14548 
14549 data 1    -do -1    "060";
14550 data 2    -do -3    "0120";
14551 data 3    "0002";
14552 
14553 page      -all;
14554 
14555 
14556 ^L
14557 
14558 
14559 /*   csl 1
14560 *
14561 *  Simple test of instruction to see if its functions.
14562 *  Move 72 bits, cross no boundaries, and use no modification.
14563 *
14564 */
14565 
14566 inst  csl  -nt  "simple test"
14567            -bo mov ;
14568 
14569 desc 1  -ns 72 ;
14570 
14571 desc 2  -ns 72 ;
14572 
14573 data 1  -do -8  "abcdefgh"  ;
14574 
14575 data 2  -do -8  "wwwwwwww"  ;
14576 
14577 data 3  "abcdefgh"  ;
14578 
14579 page    -all  ;
14580 
14581 
14582 
14583 /*   csl 2
14584 *
14585 *  Move two bits one on each side of a page boundary.
14586 *  No modification is used.
14587 *
14588 */
14589 
14590 inst  csl  -nt  "invert 2 bits across boundary"
14591            -bo inv  ;
14592 
14593 desc 1  -ns 2  -cp 3  -bp 8  ;
14594 
14595 desc 2  -ns 2  -cp 3  -bp 8  ;
14596 
14597 data 1  -do 4  000 000 000 001 000  ;
14598 
14599 data 2  -do 4  000 000 000 001 000  ;
14600 
14601 data 3  000 000 000 000 400  ;
14602 
14603 page    -all  ;
14604 
14605 
14606 
14607 
14608 /*   csl 3
14609 *
14610 *  Test moving data across 3 pages.  This requires register
14611 *  length modification.
14612 *
14613 */
14614 
14615 inst  csl  -nt  "move data across 3 pages"
14616            -bo mov
14617            -io 1
14618            -mf1  rl 36946
14619            -mf2  rl 36946  ;
14620 
14621 desc 1  -cp 3  -bp 4  ;
14622 
14623 desc 2  -cp 3  -bp 4  ;
14624 
14625 data 1  -do -8  000 000 000 006
14626         (513)  146531265234623214653126  760  ;
14627 
14628 data 2  -do -8  000 000 000 037
14629         (513)  254315456312465146515314  600  ;
14630 
14631 data 3  000 000 000 006
14632         (513)  146531265234623214653126  760  ;
14633 
14634 page    -all  ;
14635 
14636 
14637 
14638 /*   csl 4
14639 *
14640 *  AND bit strings using ar and reg modification in addition to
14641 *  reg length modification.  Use data across 3 pages.
14642 *
14643 */
14644 
14645 inst  csl  -nt  "ar,reg mod. AND across 3 pages"
14646            -bo and
14647            -io 2
14648            -mf1  ar  reg  rl 36946
14649            -mf2  ar  reg  rl 36946  ;
14650 
14651 desc 1  -cp 3  -bp 4  ;
14652 
14653 desc 2  -cp 3  -bp 4  ;
14654 
14655 data 1  -do -8  000 000 000 006
14656         (513)  146531265234623214653126  760  ;
14657 
14658 data 2  -do -8  000 000 000 037
14659         (513)  254315456312465146515314  600  ;
14660 
14661 data 3  000 000 000 006
14662         (513)  044111044210421004411104  600  ;
14663 
14664 page    -all  ;
14665 
14666 
14667 
14668 
14669 /*   csl 5
14670 *
14671 *  OR bit strings using indirect modification in addition to register
14672 *  length modification.  Use data across 3 pages.
14673 *
14674 */
14675 
14676 inst  csl  -nt  "id mod.  OR across 3 pages"
14677            -bo or
14678            -io 1
14679            -mf1  id  rl 36946
14680            -mf2  id  rl 36946  ;
14681 
14682 desc 1  -cp 3  -bp 4  ;
14683 
14684 desc 2  -cp 3  -bp 4  ;
14685 
14686 data 1  -do -8  000 000 000 006
14687         (513)  146531265234623214653126  760  ;
14688 
14689 data 2  -do -8  000 000 000 037
14690         (513)  254315456312465146515314  600  ;
14691 
14692 data 3  000 000 000 037
14693         (513)  356735677336667356757336  760  ;
14694 
14695 page    -all  ;
14696 
14697 
14698 
14699 
14700 /*   csl 6
14701 *
14702 *  NAND bit strings using indirect ar and reg modification and
14703 *  reg length modification.  Use data across 3 pages.
14704 *
14705 */
14706 
14707 inst  csl  -nt  "idb mod. NAND across 3 pages"
14708            -bo nan
14709            -mf1  idb  rl 36946
14710            -mf2  idb  rl 36946  ;
14711 
14712 desc 1  -cp 3  -bp 4  ;
14713 
14714 desc 2  -cp 3  -bp 4  ;
14715 
14716 data 1  -do -8  000 000 000 006
14717         (513)  146531265234623214653126  760  ;
14718 
14719 data 2  -do -8  000 000 000 037
14720         (513)  254315456312465146515314  600  ;
14721 
14722 data 3  000 000 000 031
14723         (513)  733666733567356773366673  160  ;
14724 
14725 page    -all  ;
14726 
14727 
14728 
14729 
14730 /*   csl 7
14731 *
14732 *  XOR bit strings using indirect ar and reg modification and direct
14733 *  ar, reg, and register length modification.  User data across 3 pages.
14734 *
14735 */
14736 
14737 inst  csl  -nt  "idb,ar,reg mod. XOR across 3 pgs"
14738            -bo xor
14739            -io 2
14740            -mf1  idb  ar  reg  rl 36946
14741            -mf2  idb  ar  reg  rl 36946  ;
14742 
14743 desc 1  -cp 3  -bp 4  ;
14744 
14745 desc 2  -cp 3  -bp 4  ;
14746 
14747 data 1  -do -8  000 000 000 006
14748         (513)  146531265234623214653126  760  ;
14749 
14750 data 2  -do -8  000 000 000 037
14751         (513)  254315456312465146515314  600  ;
14752 
14753 data 3  000 000 000 031
14754         (513)  312624633126246352346232  160  ;
14755 
14756 page    -all  ;
14757 
14758 /*   csl 8
14759 *
14760 *  Test bit string CLEAR operator. Data is moved across 3 pages with
14761 *  full address modification. The zero indicator will be set.
14762 *
14763 */
14764 
14765 inst  csl  -nt "CLEAR string. 3 pages moved"
14766            -bo zer
14767            -ir zr
14768            -io 3
14769            -mf1  idb  ar  reg  rl 36946
14770            -mf2  rl 36946  ;
14771 
14772 desc 1  -cp 3  -bp 4  ;
14773 
14774 desc 2  -cp 3  -bp 4  ;
14775 
14776 data 1  -do -8  000 000 000 006
14777         (513)  146531265234623214653126  760  ;
14778 
14779 data 2  -do -8  000 000 000 037
14780         (513)  254315456312465146515314  600  ;
14781 
14782 data 3  000 000 000 000
14783         (513)  000000000000000000000000
14784         000  ;
14785 
14786 page    -all  ;
14787 
14788 
14789 
14790 
14791 /*   csl 9
14792 *
14793 *  Test truncation with INVERT operator.  Use full modification
14794 *  and move data across 3 pages.
14795 *
14796 */
14797 
14798 inst  csl  -nt  "INVERT truncation is set"
14799            -bo inv
14800            -ir tn
14801            -io 1
14802            -mf1  idb  ar  reg  rl 36946
14803            -mf2  idb  ar  reg  rl 36943  ;
14804 
14805 desc 1  -cp 3  -bp 4  ;
14806 
14807 desc 2  -cp 3  -bp 4  ;
14808 
14809 data 1  -do -8  000 000 000 006
14810         (513)  146531265234623214653126  760  ;
14811 
14812 data 2  -do -8  000 000 000 037
14813         (513)  254315456312465146515314  700  ;
14814 
14815 data 3  000 000 000 031
14816         (513)  631246512543154563124651  100  ;
14817 
14818 page    -all  ;
14819 
14820 
14821 
14822 
14823 /*   csl 10
14824 *
14825 *  Test the use of bit file with the COINcidence operator.  Use full
14826 *  modification across 3 pages.  The fill bit is zero.
14827 *
14828 */
14829 
14830 inst  csl  -nt  "COIN. bit fill(0)"
14831            -bo nox
14832            -mf1  idb  ar  reg  rl 36943
14833            -mf2  idb  ar  reg  rl 36946  ;
14834 
14835 desc 1  -cp 3  -bp 4  ;
14836 
14837 desc 2  -cp 3  -bp 4  ;
14838 
14839 data 1  -do -8  000 000 000 006
14840         (513)  146531265234623214653126  760  ;
14841 
14842 data 2  -do -8  000 000 000 037
14843         (513)  254315456312465146515314  600  ;
14844 
14845 data 3  000 000 000 006
14846         (513)  465153144651531425431545  760  ;
14847 
14848 page    -all  ;
14849 
14850 
14851 ^L
14852 
14853 
14854 /*   csr 1
14855 *
14856 *  Simple test of instruction to see if its functions.
14857 *  Move 72 bits, cross no boundaries, and use no modification.
14858 *
14859 */
14860 
14861 inst  csr  -nt  "simple test"
14862            -bo mov ;
14863 
14864 desc 1  -ns 72 ;
14865 
14866 desc 2  -ns 72 ;
14867 
14868 data 1  -do -8  "abcdefgh"  ;
14869 
14870 data 2  -do -8  "wwwwwwww"  ;
14871 
14872 data 3  "abcdefgh"  ;
14873 
14874 page    -all  ;
14875 
14876 
14877 
14878 /*   csr 2
14879 *
14880 *  Move two bits one on each side of a page boundary.
14881 *  No modification is used.
14882 *
14883 */
14884 
14885 inst  csr  -nt  "invert 2 bits across boundary"
14886            -bo inv  ;
14887 
14888 desc 1  -ns 2  -cp 3  -bp 8  ;
14889 
14890 desc 2  -ns 2  -cp 3  -bp 8  ;
14891 
14892 data 1  -do 4  000 000 000 001 000  ;
14893 
14894 data 2  -do 4  000 000 000 001 000  ;
14895 
14896 data 3  000 000 000 000 400  ;
14897 
14898 page    -all  ;
14899 
14900 /*   csr 3
14901 *
14902 *  Test moving data across 3 pages.  This requires register
14903 *  length modification.
14904 *
14905 */
14906 
14907 inst  csr  -nt  "move data across 3 pages"
14908            -bo mov
14909            -io 1
14910            -mf1  rl 36946
14911            -mf2  rl 36946  ;
14912 
14913 desc 1  -cp 3  -bp 4  ;
14914 
14915 desc 2  -cp 3  -bp 4  ;
14916 
14917 data 1  -do -8  000 000 000 006
14918         (513)  146531265234623214653126  760  ;
14919 
14920 data 2  -do -8  000 000 000 037
14921         (513)  254315456312465146515314  600  ;
14922 
14923 data 3  000 000 000 006
14924         (513)  146531265234623214653126  760  ;
14925 
14926 page    -all  ;
14927 
14928 
14929 
14930 /*   csr 4
14931 *
14932 *  AND bit strings using ar and reg modification in addition to
14933 *  reg length modification.  Use data across 3 pages.
14934 *
14935 */
14936 
14937 inst  csr  -nt  "ar,reg mod. AND across 3 pages"
14938            -bo and
14939            -io 2
14940            -mf1  ar  reg  rl 36946
14941 
14942            -mf2  ar  reg  rl 36946  ;
14943 desc 1  -cp 3  -bp 4  ;
14944 
14945 desc 2  -cp 3  -bp 4  ;
14946 
14947 data 1  -do -8  000 000 000 006
14948         (513)  146531265234623214653126  760  ;
14949 
14950 data 2  -do -8  000 000 000 037
14951         (513)  254315456312465146515314  600  ;
14952 
14953 data 3  000 000 000 006
14954         (513)  044111044210421004411104  600  ;
14955 
14956 page    -all  ;
14957 
14958 
14959 
14960 
14961 /*   csr 5
14962 *
14963 *  OR bit strings using indirect modification in addition to register
14964 *  length modification.  Use data across 3 pages.
14965 *
14966 */
14967 
14968 inst  csr  -nt  "id mod.  OR across 3 pages"
14969            -bo or
14970            -io 1
14971            -mf1  id  rl 36946
14972            -mf2  id  rl 36946  ;
14973 
14974 desc 1  -cp 3  -bp 4  ;
14975 
14976 desc 2  -cp 3  -bp 4  ;
14977 
14978 data 1  -do -8  000 000 000 006
14979         (513)  146531265234623214653126  760  ;
14980 
14981 data 2  -do -8  000 000 000 037
14982         (513)  254315456312465146515314  600  ;
14983 
14984 data 3  000 000 000 037
14985         (513)  356735677336667356757336  760  ;
14986 
14987 page    -all  ;
14988 
14989 
14990 
14991 
14992 /*   csr 6
14993 *  NAND bit strings using indirect ar and reg modification and
14994 *  reg length modification.  Use data across 3 pages.
14995 *
14996 */
14997 
14998 inst  csr  -nt  "idb mod. NAND across 3 pages"
14999            -bo nan
15000            -mf1  idb  rl 36946
15001            -mf2  idb  rl 36946  ;
15002 
15003 desc 1  -cp 3  -bp 4  ;
15004 
15005 desc 2  -cp 3  -bp 4  ;
15006 
15007 data 1  -do -8  000 000 000 006
15008         (513)  146531265234623214653126  760  ;
15009 
15010 data 2  -do -8  000 000 000 037
15011         (513)  254315456312465146515314  600  ;
15012 
15013 data 3  000 000 000 031
15014         (513)  733666733567356773366673  160  ;
15015 
15016 page    -all  ;
15017 
15018 
15019 
15020 
15021 /*   csr 7
15022 *
15023 
15024 *  XOR bit strings using indirect ar and reg modification and direct
15025 *  ar, reg, and register length modification.  User data across 3 pages.
15026 *
15027 */
15028 
15029 inst  csr  -nt  "idb,ar,reg mod. XOR across 3 pgs"
15030            -bo xor
15031            -io 2
15032            -mf1  idb  ar  reg  rl 36946
15033            -mf2  idb  ar  reg  rl 36946  ;
15034 
15035 desc 1  -cp 3  -bp 4  ;
15036 
15037 desc 2  -cp 3  -bp 4  ;
15038 
15039 data 1  -do -8  000 000 000 006
15040         (513)  146531265234623214653126  760  ;
15041 
15042 data 2  -do -8  000 000 000 037
15043         (513)  254315456312465146515314  600  ;
15044 
15045 data 3  000 000 000 031
15046         (513)  312624633126246352346232  160  ;
15047 
15048 page    -all  ;
15049 
15050 /*   csr 8
15051 *
15052 *  Test bit string CLEAR operator. Data is moved across 3 pages with
15053 *  full address modification. The zero indicator will be set.
15054 *
15055 */
15056 
15057 inst  csr  -nt "CLEAR string. 3 pages moved"
15058            -bo zer
15059            -ir zr
15060            -io 3
15061            -mf1  idb  ar  reg  rl 36946
15062            -mf2  rl 36946  ;
15063 
15064 desc 1  -cp 3  -bp 4  ;
15065 
15066 desc 2  -cp 3  -bp 4  ;
15067 
15068 data 1  -do -8  000 000 000 006
15069         (513)  146531265234623214653126  760  ;
15070 
15071 data 2  -do -8  000 000 000 037
15072         (513)  254315456312465146515314  600  ;
15073 
15074 data 3  000 000 000 000
15075         (513)  000000000000000000000000
15076         000  ;
15077 
15078 page    -all  ;
15079 
15080 
15081 
15082 
15083 /*   csr 9
15084 *
15085 *  Test truncation with INVERT operator.  Use full modification
15086 *  and move data across 3 pages.
15087 *
15088 */
15089 
15090 inst  csr  -nt  "INVERT truncation is set"
15091            -bo inv
15092            -ir tn
15093            -io 1
15094            -mf1  idb  ar  reg  rl 36946
15095            -mf2  idb  ar  reg  rl 36943  ;
15096 
15097 desc 1  -cp 3  -bp 4  ;
15098 
15099 desc 2  -cp 3  -bp 7  ;
15100 
15101 data 1  -do -8  000 000 000 006
15102         (513)  146531265234623214653126  760  ;
15103 
15104 data 2  -do -8  000 000 000 037
15105         (513)  254315456312465146515314  700  ;
15106 
15107 data 3  000 000 000 035
15108         (513)  631246512543154563124651  000  ;
15109 
15110 page    -all  ;
15111 
15112 
15113 
15114 
15115 /*   csr 10
15116 *
15117 *  Test the use of bit file with the COINcidence operator.  Use full
15118 *  modification across 3 pages.  The fill bit is zero.
15119 *
15120 */
15121 
15122 inst  csr  -nt  "COIN. bit fill(0)"
15123            -bo nox
15124            -mf1  idb  ar  reg  rl 36943
15125            -mf2  idb  ar  reg  rl 36946  ;
15126 
15127 desc 1  -cp 3  -bp 7  ;
15128 
15129 desc 2  -cp 3  -bp 4  ;
15130 
15131 data 1  -do -8  000 000 000 006
15132         (513)  146531265234623214653126  760  ;
15133 
15134 data 2  -do -8  000 000 000 037
15135         (513)  254315456312465146515314  600  ;
15136 
15137 data 3  000 000 000 002
15138         (513)  465153144651531425431545  600  ;
15139 
15140 page    -all  ;
15141 
15142 
15143 ^L
15144 
15145 /*     sztl1
15146 *  Use two maximum length strings (4352 chrs or 39168 bits).
15147 *  The zero indicator will be on since a bool code of "zer"
15148 *  is used. Take maximum number of page faults.  */
15149 
15150 inst sztl -nt "Both strings are the same length"
15151 -bo zer
15152 -ir zr
15153 -mf1 idb ar reg rl 39168
15154 -mf2 idb ar reg rl 39168
15155 -io 1;
15156 
15157 data 1 -do -10 (4352)"5";
15158 data 2 -do -30 (4352)"7";
15159 
15160 page -all;
15161 
15162 
15163 
15164 /*     sztl2
15165 *  Both the truncation and the zero indicators will be turned
15166 *  on.  The 1st string will begin on the last bit of a page and
15167 *  the 2nd string will end on the 1st bit of a page.  */
15168 
15169 inst sztl -nt "Both strings cross page bounds"
15170 -bo zer
15171 -ir tn zr
15172 -mf1 ar
15173 -mf2 ar;
15174 
15175 desc 1 -bp 8 -ns 23;
15176 desc 2 -bp 1 -ns 18;
15177 
15178 data 1 -do -1 074 321 64;
15179 data 2 -do -4 023 776 4;
15180 
15181 page -all;
15182 
15183 
15184 
15185 /*     sztl3
15186 *  No indicators are turned on. The zero fill bit is used. Bit strings
15187 *  begin in the middle of a byte  */
15188 
15189 inst sztl -nt "Both strings cross page bounds"
15190 -bo and
15191 -mf1 ida ar
15192 -mf2 idb ar;
15193 
15194 desc 1 -bp 4 -ns 70;
15195 desc 2 -bp 5 -ns 80;
15196 
15197 data 1 -do -2 "3274" "1958" 0;
15198 data 2 -do -4 "4875" "7329" 326 0;
15199 
15200 page -all;
15201 
15202 
15203 
15204 /*     sztl4
15205 *  The zero indicator will be turned on. Both strings
15206 are of the same length and begin and end on word boundaries.  */
15207 
15208 inst sztl -nt "only rl modification is used"
15209 -bo and
15210 -ir zr
15211 -mf1 rl 144
15212 -mf2 rl 144
15213 -io 2;
15214 
15215 data 1 (4)123 (12)075;
15216 data 2 (4)654 (12)402;
15217 
15218 page -all;
15219 
15220 
15221 
15222 /*     sztl5
15223 *  Test the axr bool code.  Set the zero and truncation
15224 *  indicators. Bit strings begin in the middle of a byte
15225 *  straddling a page boundary.  */
15226 
15227 inst sztl -nt "1st string is longer than 2nd"
15228 -bo axr
15229 -ir zr tn
15230 -mf1 ar reg rl 40
15231 -mf2 ar idr rl 31;
15232 
15233 desc 1 -bp 5;
15234 desc 2 -bp 5;
15235 
15236 data 1 -do -1 074 321 652 403 777;
15237 data 2 -do -3 777 777 676 603;
15238 
15239 page -all;
15240 
15241 
15242 
15243 /*     sztl6
15244 *  Test the axr bool code. No indicators will be set  */
15245 
15246 inst sztl -nt "Both strings are the same length"
15247 
15248 -bo axr
15249 -mf1 rl 7866
15250 -mf2 rl 7866;
15251 
15252 data 1 (874)"321";
15253 data 2 (874) "604";
15254 
15255 page -all;
15256 
15257 
15258 
15259 /*     sztl7
15260 *  Test the mov bool code. Use a maximum length string and the
15261 *  zero fill bit.  Take the maximum number of page faults.  */
15262 
15263 inst sztl -nt "2nd string is longer than 1st"
15264 -bo mov
15265 -mf1 ida ar rl 36000
15266 -mf2 idb ar reg rl 39168
15267 -io 1;
15268 
15269 data 1 -do -40 (1000)"9874";
15270 data 2 -do -20 (1088) "0000";
15271 
15272 page -all;
15273 
15274 
15275 
15276 /*     sztl8
15277 *  Test the move bool code. Set the zero indicator.
15278 *  The first string is all zeroes.  */
15279 
15280 inst sztl -nt "2nd string is longer than 1st"
15281 -bo mov
15282 -ir zr
15283 -mf1 ar id
15284 -mf2 ar
15285 -io 2;
15286 
15287 desc 1 -bp 7 -ns 99;
15288 desc 2 -bp 1 -ns 100;
15289 
15290 data 1 -do 20 (12)000;
15291 data 2 -do 3 "abcde123456" 4;
15292 
15293 page -all;
15294 
15295 
15296 
15297 /*     sztl9
15298 *  Test xra bool code. Set zero and truncation indicators.
15299 *  Use two short bit strings which cross page boundaries.  */
15300 
15301 inst sztl -nt "1st string is longer than 2nd"
15302 -bo xra
15303 -ir tn zr
15304 -mf1 ar idr
15305 -mf2 ar idb;
15306 
15307 desc 1 -ns 3 -bp 7;
15308 desc 2 -ns 2 -bp 8;
15309 
15310 data 1 -do -1 777 4;
15311 data 2 -do -1 235 0;
15312 
15313 page -all;
15314 
15315 
15316 
15317 /*     sztl10
15318 * Test xra bool code.  Use the zero fill bit. No indicators are set */
15319 
15320 inst sztl -nt "2nd string is longer than 1st"
15321 -bo xra
15322 -mf1 idr reg
15323 -mf2 idr
15324 -io 2;
15325 
15326 desc 1 -ns 400;
15327 desc 2 -ns 500;
15328 
15329 data 1 (44)"9" 72;
15330 data 2 (55)"8" 36;
15331 
15332 page -all;
15333 
15334 
15335 
15336 /*     sztl11
15337 *  Test ra2 bool code. Set the zero indicator. This means
15338 *  that the 2nd bit string must be all zeroes.  */
15339 
15340 inst sztl -nt "2nd string is longer than 1st"
15341 -bo ra2
15342 -mf1 ar rl 36
15343 -mf2 reg
15344 -ir zr
15345 -io 1;
15346 
15347 desc 1 -bp 4;
15348 desc 2 -ns 36;
15349 
15350 data 1 -do -1 "abcd" 70;
15351 data 2 (4)000;
15352 
15353 page -all;
15354 
15355 
15356 
15357 /*     sztl12
15358 *  Test ra2 bool code. No indicators are set.  */
15359 
15360 inst sztl -nt "Both strings are the same length"
15361 -bo ra2
15362 -mf1 reg
15363 -mf2 ar rl 36
15364 -io 2;
15365 
15366 desc 1 -ns 36;
15367 desc 2 -bp 4;
15368 
15369 data 1 (4)000;
15370 data 2 -do -1 "abcd" 70;
15371 
15372 page -all;
15373 
15374 
15375 
15376 /*     sztl13
15377 *  Test xor bool code. Set the zero indicator. Use zero fill.  */
15378 
15379 inst sztl -nt "2nd string is longer than 1st"
15380 -bo xor
15381 -mf1 id reg
15382 -mf2 ar;
15383 
15384 desc 1 -ns 3600;
15385 desc 2 -ns 3672 -bp 7;
15386 
15387 data 1 -do -8 (100)3526;
15388 data 2 -do -63 000 (100)7254 (7)000;
15389 
15390 page -all;
15391 
15392 
15393 
15394 /*     sztl14
15395 *  Test xor bool code. use strings of identical length.
15396 *  No indicators are set.  */
15397 
15398 inst sztl -nt "Both strings are the same length"
15399 -bo xor;
15400 
15401 desc  1 -ns 900;
15402 desc 2 -ns 900;
15403 
15404 data 1 -do -12 (10) "abcdefghij";
15405 data 2 -do -4  (10) "1234567890";
15406 
15407 page -all;
15408 
15409 
15410 
15411 /*     sztl15
15412 *  Test the or bool code. Set zero and truncation indicators.
15413 *  This means that both bit strings must be all zeroes.  The
15414 *   first bit string must be longer than the second  */
15415 
15416 inst sztl -nt "1st string is longer than 2nd"
15417 -bo or
15418 -ir zr tn
15419 -mf1 rl 30 idb ar
15420 -mf2 rl 20 ar ida;
15421 
15422 data 1 000 000 000 0;
15423 data 2  000 000 0;
15424 
15425 page -all;
15426 
15427 
15428 
15429 /*     sztl16
15430 *  Test the or bool code. No indicators are set.
15431 *  The one fill bit is used.  */
15432 
15433 inst sztl -nt "2nd string is longer than 1st"
15434 -bo or
15435 -fb
15436 -mf1 rl 3000 ar id
15437 -mf2 rl 3900 ar idr
15438 -io 1;
15439 
15440 data 1 (1000)7;
15441 data 2 (325)"x" (325)3 ;
15442 
15443 page -all;
15444 
15445 
15446 
15447 /*     sztl17
15448 * Test the nor bool code. No indicators are set.  */
15449 
15450 inst sztl -nt "2nd string is longer than 1st"
15451 -bo nor
15452 -mf1 ida ar rl 14
15453 -mf2 id ar rl 28
15454 -io 2;
15455 
15456 data 1 342 22;
15457 data 2 234 760 621 0;
15458 
15459 page -all;
15460 
15461 
15462 
15463 /*     sztl18
15464 *  Test the nor bool code.  Set the zero indicator.
15465 *  Use the one fill bit */
15466 
15467 inst sztl -nt "2nd string is longer than 1st"
15468 -ir zr
15469 -bo nor
15470 -fb
15471 -mf1 ar
15472 -mf2 rl 19;
15473 
15474 desc 1 -ns 8 -bp 1;
15475 
15476 data 1 777;
15477 data 2 326 417 0;
15478 
15479 page -all;
15480 
15481 
15482 
15483 /*     sztl19
15484 *  Test the nox bool code.  Set the zero indicator.
15485 *  For the indicator to be set, no two bits may matc.  */
15486 
15487 inst sztl -nt "Both strings are the same length"
15488 -ir zr
15489 -bo nox
15490 -mf1 id
15491 -mf2 ida;
15492 
15493 desc 1 -ns 54;
15494 desc 2 -ns 54;
15495 
15496 data 1 124 235 647 211 000 777;
15497 data 2 -do -4 653 542 130 566 777 000;
15498 
15499 page -all;
15500 
15501 
15502 
15503 /*     sztl20
15504 *  Test the Nox bool code. Only the truncation indicator is set.  */
15505 
15506 inst sztl -nt "1st string is longer than 2nd"
15507 -bo nox -ir tn
15508 -mf1 ar rl 36000
15509 -mf2 ar id
15510 -io 1;
15511 
15512 
15513 desc 1 -bp 7;
15514 desc 2 -bp 3 -ns 3600;
15515 
15516 data 1 003 (1000)"axyr";
15517 data 2 024 (100)"rjqf";
15518 
15519 page -all;
15520 
15521 
15522 
15523 /*     sztl21
15524 *  Test the iv2 bool code. Both the zero and the truncation
15525 *  indicators will be set.  For the zero indicator to be set,
15526 *  the 2nd bit string must be all ones.  */
15527 
15528 inst sztl -nt "1st string is longer than 2nd"
15529 -bo iv2  -ir zr tn
15530 -mf1 rl 64 ar reg
15531 -mf2 ar id
15532 -io 1;
15533 
15534 desc 1 -bp 6;
15535 desc 2 -ns 32 -bp 3;
15536 
15537 data 1 -do -1  "abpstuv" 4;
15538 data 2 077 777 777 776;
15539 
15540 page -all;
15541 
15542 
15543 
15544 /*     sztl22
15545 *  Test the iv2 bool code.  Use the zero fill bit. No indicators are set.  */
15546 
15547 inst sztl -nt "2nd string is longer than 1st"
15548 -bo iv2
15549 -mf1 ar id
15550 -mf2 rl 64 ar reg
15551 -io 1;
15552 
15553 desc 1 -ns 32 -bp 3;
15554 desc 2 -bp 6;
15555 
15556 data 1 077 777 777 776;
15557 data 2 -do -1  "abpstuv" 4;
15558 
15559 page -all;
15560 
15561 
15562 
15563 /*     sztl23
15564 *  Test the xrx bool code.  The zero indicator will be set.
15565 *  This can occur only when every bit in the first string is zero
15566 * and every bit in the 2nd string is one.  */
15567 
15568 inst sztl -nt "Both strings are the same length"
15569 -bo xrx -ir zr
15570 -mf1 reg
15571 -mf2 id;
15572 
15573 desc 1 -ns 108;
15574 desc 2 -ns 108;
15575 
15576 data 1 -do -4 (12)000;
15577 data 2 -do 4  (12)777;
15578 
15579 page -all;
15580 
15581 
15582 
15583 /*     sztl24
15584 *  Test the xrx bool code.  No indicators are set.  The zero fill bit is used  */
15585 
15586 inst sztl -nt "2nd string is longer than 1st"
15587 -bo xrx
15588 -mf1 rl 720 idr ar
15589 -mf2 id
15590 -io 2;
15591 
15592 desc 2 -ns 1080  -bp 4;
15593 
15594 data 1 -do -3  (20)"ijkl";
15595 data 2 -do 8  054  (30)"9832";
15596 
15597 page -all;
15598 
15599 
15600 
15601 /*     sztl25
15602 *  Test the inv bool code.  Set the zero indicator.
15603 *  To set the indicator, the first bit string must be
15604 *  all ones.  */
15605 
15606 inst sztl -nt "Both string are the same length"
15607 -ir zr
15608 -bo inv
15609 -mf1 idb ar reg
15610 -mf2 idb ar;
15611 
15612 desc 1 -bp 5 -ns 13;
15613 desc 2 -bp 2 -ns 13;
15614 
15615 data 1 777 777;
15616 data 2 265 43;
15617 
15618 page -all;
15619 
15620 
15621 
15622 /*     sztl26
15623 *   Test the inv bool code. No indicators are set  */
15624 
15625 inst sztl -nt "Both strings are the same length"
15626 -bo inv
15627 -mf1 idb ar
15628 -mf2 idb ar reg;
15629 
15630 desc 1 -bp 2 -ns 13;
15631 desc 2 -bp 5 -ns 13;
15632 
15633 data 1 265 43;
15634 data 2 777 777;
15635 
15636 page -all;
15637 
15638 
15639 
15640 /*     sztl27
15641 *  Test the xxr bool code. This test sets the zero indicator.
15642 *  The zero indicator is set only when the 1st string is all ones and
15643 *  the second string is all zeroes.  The one fill bit is used.  */
15644 
15645 inst sztl -nt "2nd string is longer than 1st"
15646 -ir zr
15647 -fb
15648 -bo xxr
15649 -io2;
15650 
15651 desc 1 -ns 1;
15652 desc 2 -ns 2;
15653 
15654 data 1 4;
15655 data 2 0;
15656 
15657 page -all;
15658 
15659 
15660 
15661 /*     sztl28
15662 *  Test the xxr bool code. No indicators are set   */
15663 
15664 inst sztl -nt "2nd string is longer than 1st"
15665 -bo xxr
15666 -mf1 ar
15667 -mf2 reg rl 59;
15668 
15669 desc 1 -ns 43 -bp 5;
15670 
15671 data 1 -do -2 "tsrkv" 3;
15672 data 2 -do -4 "mnopqrs";
15673 
15674 page -all;
15675 
15676 
15677 
15678 /*     sztl29
15679 *  Test the nan bool code. The zero and truncation indicators
15680 *  are set.  For the zero indicator to be set, both bit strings
15681 * must be all ones.  */
15682 
15683 inst sztl -nt "1st string is longer than 2nd"
15684 -bo nan
15685 -ir zr tn
15686 -mf1 rl 39168 ar
15687 -mf2 rl 33000;
15688 
15689 data 1 (4352)777;
15690 data 2 (3667)777;
15691 
15692 page -all;
15693 
15694 
15695 
15696 /*     sztl30
15697 *  Test the nan bool code. No indicators are set.
15698 *  The one fill bit is set.  */
15699 
15700 inst sztl -nt "2nd string is longer than 1st"
15701 -fb
15702 -bo nan
15703 -mf1 ar
15704 -mf2 ar rl 436;
15705 
15706 desc 1 -bp 3 -ns 274;
15707 
15708 data 1 (7)"tack" "rgm";
15709 data 2 (12)"mike" 023;
15710 
15711 page -all;
15712 
15713 
15714 
15715 /*     sztl31
15716 *  Test the "set" bool code. The zero indicator cannot be set
15717 *  when the "set" code is used. This test sets the truncation
15718 indicator.  */
15719 
15720 inst sztl -nt "1st string is longer than 2nd"
15721 -ir tn
15722 -bo set;
15723 
15724 desc 1 -ns 50;
15725 desc 2 -ns 49;
15726 
15727 data 1 023 571 725 152 111 243;
15728 data 2 023 571 777 043 121 000;
15729 
15730 page -all;
15731 
15732 
15733 
15734 /*     sztl32
15735 *  Test the "set" bool code. No indicators are set.
15736 *  The maximum number of page faults is taken  */
15737 
15738 inst sztl -nt "2nd string is longer than 1st"
15739 -bo set
15740 -mf1 idb ar reg rl 39159
15741 -mf2 idb ar reg rl 39168
15742 -io 1
15743 -fb;
15744 
15745 data 1 (4351)000;
15746 data 2 (4352)071;
15747 
15748 page -all;
15749 
15750 ^L
15751 
15752 /*     sztr1
15753 *  Use two maximum length strings (4352 chrs or 39168 bits).
15754 *  The zero indicator will be on since a bool code of "zer"
15755 *  is used. Take maximum number of page faults.  */
15756 
15757 inst sztr -nt "Both strings are the same length"
15758 -bo zer
15759 -ir zr
15760 -mf1 idb ar reg rl 39168
15761 -mf2 idb ar reg rl 39168
15762 -io 1;
15763 
15764 data 1 -do -10 (4352)"5";
15765 data 2 -do -30 (4352)"7";
15766 
15767 page -all;
15768 
15769 
15770 
15771 /*     sztr2
15772 *  Both the truncation and the zero indicators will be turned
15773 *  on.  The 1st string will begin on the last bit of a page and
15774 *  the 2nd string will end on the 1st bit of a page.  */
15775 
15776 inst sztr -nt "Both strings cross page bounds"
15777 -bo zer
15778 -ir tn zr
15779 -mf1 ar
15780 -mf2 ar;
15781 
15782 desc 1 -bp 8 -ns 23;
15783 desc 2 -bp 1 -ns 18;
15784 
15785 data 1 -do -1 074 321 64;
15786 data 2 -do -4 023 776 4;
15787 
15788 page -all;
15789 
15790 
15791 
15792 /*     sztr3
15793 *  No indicators are turned on. The zero fill bit is used. Bit strings
15794 *  begin in the middle of a byte  */
15795 
15796 inst sztr -nt "Both strings cross page bounds"
15797 -bo and
15798 -mf1 ida ar
15799 -mf2 idb ar;
15800 
15801 desc 1 -bp 4 -ns 70;
15802 desc 2 -bp 5 -ns 80;
15803 
15804 data 1 -do -2 "3274" "1958" 0;
15805 data 2 -do -4 "4875" "7329" 326 0;
15806 
15807 page -all;
15808 
15809 
15810 
15811 /*     sztr4
15812 *  The zero indicator will be turned on. Both strings
15813 are of the same length and begin and end on word boundaries.  */
15814 
15815 inst sztr -nt "only rl modification is used"
15816 -bo and
15817 -ir zr
15818 -mf1 rl 144
15819 -mf2 rl 144
15820 -io 2;
15821 
15822 data 1 (4)123 (12)075;
15823 data 2 (4)654 (12)402;
15824 
15825 page -all;
15826 
15827 
15828 
15829 /*     sztr5
15830 *  Test the axr bool code.  Set the zero and truncation
15831 *  indicators. Bit strings begin in the middle of a byte
15832 *  straddling a page boundary.  */
15833 
15834 inst sztr -nt "1st string is longer than 2nd"
15835 -bo axr
15836 -ir tn
15837 -mf1 ar reg rl 40
15838 -mf2 ar idr rl 31;
15839 
15840 desc 1 -bp 5;
15841 desc 2 -bp 5;
15842 
15843 data 1 -do -1 074 321 652 403 777;
15844 data 2 -do -3 777 777 676 603;
15845 
15846 page -all;
15847 
15848 
15849 
15850 /*     sztr6
15851 *  Test the axr bool code. No indicators will be set  */
15852 
15853 inst sztr -nt "Both strings are the same length"
15854 
15855 -bo axr
15856 -mf1 rl 7866
15857 -mf2 rl 7866;
15858 
15859 data 1 (874)"321";
15860 data 2 (874) "604";
15861 
15862 page -all;
15863 
15864 
15865 
15866 /*     sztr7
15867 *  Test the mov bool code. Use a maximum length string and the
15868 *  zero fill bit.  Take the maximum number of page faults.  */
15869 
15870 inst sztr -nt "2nd string is longer than 1st"
15871 -bo mov
15872 -mf1 ida ar rl 36000
15873 -mf2 idb ar reg rl 39168
15874 -io 1;
15875 
15876 data 1 -do -40 (1000)"9874";
15877 data 2 -do -20 (1088) "0000";
15878 
15879 page -all;
15880 
15881 
15882 
15883 /*     sztr8
15884 *  Test the move bool code. Set the zero indicator.
15885 *  The first string is all zeroes.  */
15886 
15887 inst sztr -nt "2nd string is longer than 1st"
15888 -bo mov
15889 -ir zr
15890 -mf1 ar id
15891 -mf2 ar
15892 -io 2;
15893 
15894 desc 1 -bp 7 -ns 99;
15895 desc 2 -bp 1 -ns 100;
15896 
15897 data 1 -do 20 (12)000;
15898 data 2 -do 3 "abcde123456" 4;
15899 
15900 page -all;
15901 
15902 
15903 
15904 /*     sztr9
15905 *  Test xra bool code. Set zero and truncation indicators.
15906 *  Use two short bit strings which cross page boundaries.  */
15907 
15908 inst sztr -nt "1st string is longer than 2nd"
15909 -bo xra
15910 -ir tn zr
15911 -mf1 ar idr
15912 -mf2 ar idb;
15913 
15914 desc 1 -ns 3 -bp 7;
15915 desc 2 -ns 2 -bp 8;
15916 
15917 data 1 -do -1 777 4;
15918 data 2 -do -1 235 0;
15919 
15920 page -all;
15921 
15922 
15923 
15924 /*     sztr10
15925 * Test xra bool code.  Use the zero fill bit. No indicators are set */
15926 
15927 inst sztr -nt "2nd string is longer than 1st"
15928 -bo xra
15929 -mf1 idr reg
15930 -mf2 idr
15931 -io 2;
15932 
15933 desc 1 -ns 400;
15934 desc 2 -ns 500;
15935 
15936 data 1 (44)"9" 72;
15937 data 2 (55)"8" 36;
15938 
15939 page -all;
15940 
15941 
15942 
15943 /*     sztr11
15944 *  Test ra2 bool code. Set the zero indicator. This means
15945 *  that the 2nd bit string must be all zeroes.  */
15946 
15947 inst sztr -nt "2nd string is longer than 1st"
15948 -bo ra2
15949 -mf1 ar rl 36
15950 -mf2 reg
15951 -ir zr
15952 -io 1;
15953 
15954 desc 1 -bp 4;
15955 desc 2 -ns 36;
15956 
15957 data 1 -do -1 "abcd" 70;
15958 data 2 (4)000;
15959 
15960 page -all;
15961 
15962 
15963 
15964 /*     sztr12
15965 *  Test ra2 bool code. No indicators are set.  */
15966 
15967 inst sztr -nt "Both strings are the same length"
15968 -bo ra2
15969 -mf1 reg
15970 -mf2 ar rl 36
15971 -io 2;
15972 
15973 desc 1 -ns 36;
15974 desc 2 -bp 4;
15975 
15976 data 1 (4)000;
15977 data 2 -do -1 "abcd" 70;
15978 
15979 page -all;
15980 
15981 
15982 
15983 /*     sztr13
15984 *  Test xor bool code. Set the zero indicator. Use zero fill.  */
15985 
15986 inst sztr -nt "2nd string is longer than 1st"
15987 -bo xor
15988 -mf1 id reg
15989 -mf2 ar;
15990 
15991 desc 1 -ns 3600;
15992 desc 2 -ns 3672 -bp 7;
15993 
15994 data 1 -do -8 (100)3526;
15995 data 2 -do -63 000 (100)7254 (7)000;
15996 
15997 page -all;
15998 
15999 
16000 
16001 /*     sztr14
16002 *  Test xor bool code. use strings of identical length.
16003 *  No indicators are set.  */
16004 
16005 inst sztr -nt "Both strings are the same length"
16006 -bo xor;
16007 
16008 desc  1 -ns 900;
16009 desc 2 -ns 900;
16010 
16011 data 1 -do -12 (10) "abcdefghij";
16012 data 2 -do -4  (10) "1234567890";
16013 
16014 page -all;
16015 
16016 
16017 
16018 /*     sztr15
16019 *  Test the or bool code. Set zero and truncation indicators.
16020 *  This means that both bit strings must be all zeroes.  The
16021 *   first bit string must be longer than the second  */
16022 
16023 inst sztr -nt "1st string is longer than 2nd"
16024 -bo or
16025 -ir zr tn
16026 -mf1 rl 30 idb ar
16027 -mf2 rl 20 ar ida;
16028 
16029 data 1 000 000 000 0;
16030 data 2  000 000 0;
16031 
16032 page -all;
16033 
16034 
16035 
16036 /*     sztr16
16037 *  Test the or bool code. No indicators are set.
16038 *  The one fill bit is used.  */
16039 
16040 inst sztr -nt "2nd string is longer than 1st"
16041 -bo or
16042 -fb
16043 -mf1 rl 3000 ar id
16044 -mf2 rl 3900 ar idr
16045 -io 1;
16046 
16047 data 1 (1000)7;
16048 data 2 (325)"x" (325)3 ;
16049 
16050 page -all;
16051 
16052 
16053 
16054 /*     sztr17
16055 * Test the nor bool code. No indicators are set.  */
16056 
16057 inst sztr -nt "2nd string is longer than 1st"
16058 -bo nor
16059 -mf1 ida ar rl 14
16060 -mf2 id ar rl 28
16061 -io 2;
16062 
16063 data 1 342 22;
16064 data 2 234 760 621 0;
16065 
16066 page -all;
16067 
16068 
16069 
16070 /*     sztr18
16071 *  Test the nor bool code.  Set the zero indicator.
16072 *  Use the one fill bit */
16073 
16074 inst sztr -nt "2nd string is longer than 1st"
16075 -ir zr
16076 -bo nor
16077 -fb
16078 -mf1 ar
16079 -mf2 rl 19;
16080 
16081 desc 1 -ns 8 -bp 1;
16082 
16083 data 1 777;
16084 data 2 326 417 0;
16085 
16086 page -all;
16087 
16088 
16089 
16090 /*     sztr19
16091 *  Test the nox bool code.  Set the zero indicator.
16092 *  For the indicator to be set, no two bits may matc.  */
16093 
16094 inst sztr -nt "Both strings are the same length"
16095 -ir zr
16096 -bo nox
16097 -mf1 id
16098 -mf2 ida;
16099 
16100 desc 1 -ns 54;
16101 desc 2 -ns 54;
16102 
16103 data 1 124 235 647 211 000 777;
16104 data 2 -do -4 653 542 130 566 777 000;
16105 
16106 page -all;
16107 
16108 
16109 
16110 /*     sztr20
16111 *  Test the Nox bool code. Only the truncation indicator is set.  */
16112 
16113 inst sztr -nt "1st string is longer than 2nd"
16114 -bo nox -ir tn
16115 -mf1 ar rl 36000
16116 -mf2 ar id
16117 -io 1;
16118 
16119 
16120 desc 1 -bp 7;
16121 desc 2 -bp 3 -ns 3600;
16122 
16123 data 1 003 (1000)"axyr";
16124 data 2 024 (100)"rjqf";
16125 
16126 page -all;
16127 
16128 
16129 
16130 /*     sztr21
16131 *  Test the iv2 bool code. Both the zero and the truncation
16132 *  indicators will be set.  For the zero indicator to be set,
16133 *  the 2nd bit string must be all ones.  */
16134 
16135 inst sztr -nt "1st string is longer than 2nd"
16136 -bo iv2  -ir zr tn
16137 -mf1 rl 64 ar reg
16138 -mf2 ar id
16139 -io 1;
16140 
16141 desc 1 -bp 6;
16142 desc 2 -ns 32 -bp 3;
16143 
16144 data 1 -do -1  "abpstuv" 4;
16145 data 2 077 777 777 776;
16146 
16147 page -all;
16148 
16149 
16150 
16151 /*     sztr22
16152 *  Test the iv2 bool code.  Use the zero fill bit. No indicators are set.  */
16153 
16154 inst sztr -nt "2nd string is longer than 1st"
16155 -bo iv2
16156 -mf1 ar id
16157 -mf2 rl 64 ar reg
16158 -io 1;
16159 
16160 desc 1 -ns 32 -bp 3;
16161 desc 2 -bp 6;
16162 
16163 data 1 077 777 777 776;
16164 data 2 -do -1  "abpstuv" 4;
16165 
16166 page -all;
16167 
16168 
16169 
16170 /*     sztr23
16171 *  Test the xrx bool code.  The zero indicator will be set.
16172 *  This can occur only when every bit in the first string is zero
16173 * and every bit in the 2nd string is one.  */
16174 
16175 inst sztr -nt "Both strings are the same length"
16176 -bo xrx -ir zr
16177 -mf1 reg
16178 -mf2 id;
16179 
16180 desc 1 -ns 108;
16181 desc 2 -ns 108;
16182 
16183 data 1 -do -4 (12)000;
16184 data 2 -do 4  (12)777;
16185 
16186 page -all;
16187 
16188 
16189 
16190 /*     sztr24
16191 *  Test the xrx bool code.  No indicators are set.  The zero fill bit is used  */
16192 
16193 inst sztr -nt "2nd string is longer than 1st"
16194 -bo xrx
16195 -mf1 rl 720 idr ar
16196 -mf2 id
16197 -io 2;
16198 
16199 desc 2 -ns 1080  -bp 4;
16200 
16201 data 1 -do -3  (20)"ijkl";
16202 data 2 -do 8  054  (30)"9832";
16203 
16204 page -all;
16205 
16206 
16207 
16208 /*     sztr25
16209 *  Test the inv bool code.  Set the zero indicator.
16210 *  To set the indicator, the first bit string must be
16211 *  all ones.  */
16212 
16213 inst sztr -nt "Both string are the same length"
16214 -ir zr
16215 -bo inv
16216 -mf1 idb ar reg
16217 -mf2 idb ar;
16218 
16219 desc 1 -bp 5 -ns 13;
16220 desc 2 -bp 2 -ns 13;
16221 
16222 data 1 777 777;
16223 data 2 265 43;
16224 
16225 page -all;
16226 
16227 
16228 
16229 /*     sztr26
16230 *   Test the inv bool code. No indicators are set  */
16231 
16232 inst sztr -nt "Both strings are the same length"
16233 -bo inv
16234 -mf1 idb ar
16235 -mf2 idb ar reg;
16236 
16237 desc 1 -bp 2 -ns 13;
16238 desc 2 -bp 5 -ns 13;
16239 
16240 data 1 265 43;
16241 data 2 777 777;
16242 
16243 page -all;
16244 
16245 
16246 
16247 /*     sztr27
16248 *  Test the xxr bool code. This test sets the zero indicator.
16249 *  The zero indicator is set only when the 1st string is all ones and
16250 *  the second string is all zeroes.  The one fill bit is used.  */
16251 
16252 inst sztr -nt "2nd string is longer than 1st"
16253 -ir zr
16254 -fb
16255 -bo xxr
16256 -io2;
16257 
16258 desc 1 -ns 1;
16259 desc 2 -ns 2;
16260 
16261 data 1 4;
16262 data 2 0;
16263 
16264 page -all;
16265 
16266 
16267 
16268 /*     sztr28
16269 *  Test the xxr bool code. No indicators are set   */
16270 
16271 inst sztr -nt "2nd string is longer than 1st"
16272 -bo xxr
16273 -mf1 ar
16274 -mf2 reg rl 59;
16275 
16276 desc 1 -ns 43 -bp 5;
16277 
16278 data 1 -do -2 "tsrkv" 3;
16279 data 2 -do -4 "mnopqrs";
16280 
16281 page -all;
16282 
16283 
16284 
16285 /*     sztr29
16286 *  Test the nan bool code. The zero and truncation indicators
16287 *  are set.  For the zero indicator to be set, both bit strings
16288 * must be all ones.  */
16289 
16290 inst sztr -nt "1st string is longer than 2nd"
16291 -bo nan
16292 -ir zr tn
16293 -mf1 rl 39168 ar
16294 -mf2 rl 33000;
16295 
16296 data 1 (4352)777;
16297 data 2 (3667)777;
16298 
16299 page -all;
16300 
16301 
16302 
16303 /*     sztr30
16304 *  Test the nan bool code. No indicators are set.
16305 *  The one fill bit is set.  */
16306 
16307 inst sztr -nt "2nd string is longer than 1st"
16308 -fb
16309 -bo nan
16310 -mf1 ar
16311 -mf2 ar rl 436;
16312 
16313 desc 1 -bp 3 -ns 274;
16314 
16315 data 1 (7)"tack" "rgm";
16316 data 2 (12)"mike" 023;
16317 
16318 page -all;
16319 
16320 
16321 
16322 /*     sztr31
16323 *  Test the "set" bool code. The zero indicator cannot be set
16324 *  when the "set" code is used. This test sets the truncation
16325 indicator.  */
16326 
16327 inst sztr -nt "1st string is longer than 2nd"
16328 -ir tn
16329 -bo set;
16330 
16331 desc 1 -ns 50;
16332 desc 2 -ns 49;
16333 
16334 data 1 023 571 725 152 111 243;
16335 data 2 023 571 777 043 121 000;
16336 
16337 page -all;
16338 
16339 
16340 
16341 /*     sztr32
16342 *  Test the "set" bool code. No indicators are set.
16343 *  The maximum number of page faults is taken  */
16344 
16345 inst sztr -nt "2nd string is longer than 1st"
16346 -bo set
16347 -mf1 idb ar reg rl 39159
16348 -mf2 idb ar reg rl 39168
16349 -io 1
16350 -fb;
16351 
16352 data 1 (4351)000;
16353 data 2 (4352)071;
16354 
16355 page -all;
16356 
16357 ^L
16358 
16359 /*     cmpb1
16360 *  Use two maximum length strings (4352 chrs or 39168 bits)
16361 *  with the first string less than the 2nd. Take the maximum
16362 *  number of page faults.  */
16363 
16364 inst cmpb
16365 -nt "both strings cross page bounds"
16366 -mf1 idb ar reg rl 39168
16367 -mf2 idb ar reg rl 39168
16368 -io 1;
16369 
16370 data 1 -do -10 (4352)"5";
16371 data 2 -do -30 (4352)"7";
16372 
16373 page -all;
16374 
16375 
16376 
16377 
16378 /*     cmpb2
16379 *  The first string begins on the last bit of a page and the
16380 *  2nd string ends on the first bit of a page. The first string is
16381 *  greater than the 2nd.  */
16382 
16383 inst cmpb -nt "both strings cross page bounds"
16384 -ir cr
16385 -mf1 ar
16386 -mf2 ar;
16387 
16388 desc 1 -bp 8 -ns 23;
16389 desc 2 -bp 1 -ns 18;
16390 
16391 data 1 -do -1 074 321 64;
16392 data 2 -do -4 023 776 4;
16393 
16394 page -all;
16395 
16396 
16397 
16398 
16399 /*     cmpb3
16400 *  Both strings begin in the middle of a byte and span page boundaries.
16401 *  The first string is greater than the 2nd.  */
16402 
16403 inst cmpb -nt "both strings cross page bounds"
16404 -ir cr
16405 -mf1 ida ar
16406 -mf2 idb ar;
16407 
16408 desc 1 -bp 4 -ns 70;
16409 desc 2 -bp 5 -ns 80;
16410 
16411 data 1 -do -2 "3274" "1958" 0;
16412 data 2 -do -4 "4875" "7329" 326 0;
16413 
16414 page -all;
16415 
16416 
16417 
16418 
16419 /*     cmpb4
16420 *  Both strings are 4 words in length and neither
16421 string spans a page boundary. The first string is
16422 *  less than the 2nd.  */
16423 
16424 inst cmpb -nt "both strings are the same length"
16425 -mf1 rl 144
16426 -mf2 rl 144
16427 -io 2;
16428 
16429 data 1 (4)123 (12)075;
16430 data 2 (4)654 (12)402;
16431 
16432 page -all;
16433 
16434 
16435 
16436 
16437 /*     cmpb5
16438 *  Both strings begin in the middle of a byte and span a
16439 * page boundary. The first string is less than the 2nd.  */
16440 
16441 inst cmpb -nt "2nd string has indirect desc"
16442 -mf1 ar reg rl 40
16443 -mf2 ar idr rl 31;
16444 
16445 desc 1 -bp 5;
16446 desc 2 -bp 5;
16447 
16448 data 1 -do -1 074 321 652 403 777;
16449 data 2 -do -3 777 777 676 603;
16450 
16451 page -all;
16452 
16453 
16454 
16455 
16456 /*     cmpb6
16457 *  Both strings are 874 bytes in length and the first string
16458 *  is less than the 2nd. Only 3 page faults occur.  */
16459 
16460 inst cmpb -nt "both strings are the same length"
16461 
16462 -mf1 rl 7866
16463 -mf2 rl 7866;
16464 
16465 data 1 (874)"321";
16466 data 2 (874) "604";
16467 
16468 page -all;
16469 
16470 
16471 
16472 
16473 /*     cmpb7
16474 *  The first string is l000 words in length and the
16475 *  2nd string is 1088 words of all zeroes. The first
16476 *  string is greater than the 2nd.  */
16477 
16478 inst cmpb -nt "both strings cross page bounds"
16479 -ir cr
16480 -mf1 ida ar rl 36000
16481 -mf2 idb ar reg rl 39168
16482 -io 1;
16483 
16484 data 1 -do -40 (1000)"9874";
16485 data 2 -do -20 (1088) "0000";
16486 
16487 page -all;
16488 
16489 
16490 
16491 
16492 /*     cmpb8
16493 *  Both strings begin in the middle of a byte and
16494 * neither string spans a page boundary. The first string is less
16495 * than the 2nd.  */
16496 
16497 inst cmpb -nt "2nd string is longer than 1st"
16498 -mf1 ar id
16499 -mf2 ar
16500 -io 2;
16501 
16502 desc 1 -bp 7 -ns 99;
16503 desc 2 -bp 1 -ns 100;
16504 
16505 data 1 -do 20 (12)000;
16506 data 2 -do 3 "abcde123456" 4;
16507 
16508 page -all;
16509 
16510 
16511 
16512 
16513 /*     cmpb9
16514 *  Both strings begin in the middle of a byte and span pages.
16515 *  The first string is all ones and is greater than the 2nd.  */
16516 
16517 inst cmpb -nt "1st string is longer than 2nd"
16518 -ir cr
16519 -mf1 ar idr
16520 -mf2 ar idb;
16521 
16522 desc 1 -ns 3 -bp 7;
16523 desc 2 -ns 2 -bp 8;
16524 
16525 data 1 -do -1 777 4;
16526 data 2 -do -1 235 0;
16527 
16528 page -all;
16529 
16530 
16531 
16532 
16533 /*     cmpb10
16534 *  The first string is greater than the 2nd, although it is
16535 shorter in length.  */
16536 
16537 inst cmpb -nt "2nd string is longer than 1st"
16538 -ir cr
16539 -mf1 idr reg
16540 -mf2 idr
16541 -io 2;
16542 
16543 desc 1 -ns 400;
16544 desc 2 -ns 500;
16545 
16546 data 1 (44)"9" 72;
16547 data 2 (55)"8" 36;
16548 
16549 page -all;
16550 
16551 
16552 
16553 
16554 /*     cmpb11
16555 *  Both strings are 1 word in length and only the 1st
16556 * string spans a page boundary. The first string is greater
16557 *  than the 2nd.  */
16558 
16559 inst cmpb -nt "2nd string is longer than 1st"
16560 -mf1 ar rl 36
16561 -mf2 reg
16562 -ir cr
16563 -io 1;
16564 
16565 desc 1 -bp 4;
16566 desc 2 -ns 36;
16567 
16568 data 1 -do -1 "abcd" 70;
16569 data 2 (4)000;
16570 
16571 page -all;
16572 
16573 
16574 
16575 
16576 /*     cmpb12
16577 *  Both strings are 1 word in length and only
16578 *  the 2nd string spans a page boundary.  The 2nd string
16579 *  is greater than the first.  */
16580 
16581 inst cmpb -nt "both strings are the same length"
16582 -mf1 reg
16583 -mf2 ar rl 36
16584 -io 2;
16585 
16586 desc 1 -ns 36;
16587 desc 2 -bp 4;
16588 
16589 data 1 (4)000;
16590 data 2 -do -1 "abcd" 70;
16591 
16592 page -all;
16593 
16594 
16595 
16596 
16597 /*     cmpb13
16598 *  The first string is 100 words in length and the  2nd
16599 string is 102 words long. Both strings span a page and the
16600 first string is greater than the 2nd.  */
16601 
16602 
16603 inst cmpb -nt "2nd string is longer than 1st"
16604 -ir cr
16605 -mf1 id reg
16606 -mf2 ar;
16607 
16608 desc 1 -ns 3600;
16609 desc 2 -ns 3672 -bp 7;
16610 
16611 data 1 -do -8 (100)3526;
16612 data 2 -do -63 000 (100)7254 (7)000;
16613 
16614 page -all;
16615 
16616 
16617 
16618 
16619 /*     cmpb14
16620 *  Both strings are 100 bytes long and span a page.  The
16621 first string is larger than the 2nd.  */
16622 
16623 inst cmpb -nt "both strings are the same length"
16624 -ir cr;
16625 
16626 desc  1 -ns 900;
16627 desc 2 -ns 900;
16628 
16629 data 1 -do -12 (10) "abcdefghij";
16630 data 2 -do -4  (10) "1234567890";
16631 
16632 page -all;
16633 
16634 
16635 
16636 
16637 /*     cmpb15
16638 *  Both strings are all zeroes and thus they are equal.  */
16639 
16640 inst cmpb -nt "1st string is longer than 2nd"
16641 -ir cr zr
16642 -mf1 rl 30 idb ar
16643 -mf2 rl 20 ar ida;
16644 
16645 data 1 000 000 000 0;
16646 data 2  000 000 0;
16647 
16648 page -all;
16649 
16650 
16651 
16652 
16653 
16654 /*     cmpb16
16655 *  The first string is shorter than the 2nd and the
16656 one fill bit is used.  The first string is all ones and
16657 is greater than the 2nd.  */
16658 
16659 inst cmpb -nt "2nds string is longer than 1st"
16660 -ir cr
16661 -fb
16662 -mf1 rl 3000 ar id
16663 -mf2 rl 3900 ar idr
16664 -io 1;
16665 
16666 data 1 (1000)7;
16667 data 2 (325)"x" (325)3 ;
16668 
16669 page -all;
16670 
16671 
16672 
16673 
16674 
16675 /*     cmpb17
16676 *  The first string is greater than the 2nd although it is
16677 shorter in length.  */
16678 
16679 inst cmpb -nt "2nd string is longer than 1st"
16680 -ir cr
16681 -mf1 ida ar rl 14
16682 -mf2 id ar rl 28
16683 -io 2;
16684 
16685 data 1 342 22;
16686 data 2 234 760 621 0;
16687 
16688 page -all;
16689 
16690 
16691 
16692 
16693 
16694 /*     cmpb18
16695 *  The fill bit is used to make the first string all ones.
16696 *  The first string is greater than the second.  */
16697 
16698 inst cmpb -nt "2nd string is longer than 1st"
16699 -ir cr
16700 -fb
16701 -mf1 ar
16702 -mf2 rl 19;
16703 
16704 desc 1 -ns 8 -bp 1;
16705 
16706 data 1 777;
16707 data 2 326 417 0;
16708 
16709 page -all;
16710 
16711 
16712 
16713 
16714 
16715 /*     cmpb19
16716 *  Both strings are 6 bytes in length and the 2nd string
16717 *  spans a page boundary. The first string is less than the 2nd.  */
16718 
16719 inst cmpb -nt "both strings are the same length"
16720 -mf1 id
16721 -mf2 ida;
16722 
16723 desc 1 -ns 54;
16724 desc 2 -ns 54;
16725 
16726 data 1 124 235 647 211 000 777;
16727 data 2 -do -4 653 542 130 566 777 000;
16728 
16729 page -all;
16730 
16731 
16732 
16733 
16734 
16735 /*     cmpb20
16736 *  Both strings begin in the middle of a byte.  The first
16737 *  string is 1000 words long while the 2nd string is 100
16738 * words long. The first  string is greater than the 2nd.  */
16739 
16740 inst cmpb -nt "1st string is longer than 2nd"
16741 -ir cr
16742 -mf1 ar rl 36000
16743 -mf2 ar id
16744 -io 1;
16745 
16746 
16747 desc 1 -bp 7;
16748 desc 2 -bp 3 -ns 3600;
16749 
16750 data 1 003 (1000)"axyr";
16751 data 2 024 (100)"rjqf";
16752 
16753 page -all;
16754 
16755 
16756 
16757 
16758 
16759 /*     cmpb21
16760 *  Both strings begin in the middle of a byte and only the
16761 first string crosses a page boundary.  The 2nd string is all
16762 ones  and is greater than the first.  */
16763 
16764 inst cmpb -nt "1st string is longer than 2nd"
16765 -mf1 rl 64 ar reg
16766 -mf2 ar id
16767 -io 1;
16768 
16769 desc 1 -bp 6;
16770 desc 2 -ns 32 -bp 3;
16771 
16772 data 1 -do -1  "abpstuv" 4;
16773 data 2 077 777 777 776;
16774 
16775 page -all;
16776 
16777 
16778 
16779 
16780 
16781 /*     cmpb22
16782 *  Both strings begin in the middle of a byte and only the 2nd
16783 string crosses a page boundary.  The first string is all ones and
16784 is greater than the 2nd string.  */
16785 
16786 inst cmpb -nt "2nd string is longer than 1st"
16787 -ir cr
16788 -mf1 ar id
16789 -mf2 rl 64 ar reg
16790 -io 1;
16791 
16792 desc 1 -ns 32 -bp 3;
16793 desc 2 -bp 6;
16794 
16795 data 1 077 777 777 776;
16796 data 2 -do -1  "abpstuv" 4;
16797 
16798 page -all;
16799 
16800 
16801 
16802 
16803 
16804 /*     cmpb23
16805 *  Both strings are three words in length and the 1st string
16806 crosses a page boundary. The 2nd string is greater than the
16807 first.  */
16808 
16809 inst cmpb -nt "both strings are the same length"
16810 -mf1 reg
16811 -mf2 id;
16812 
16813 desc 1 -ns 108;
16814 desc 2 -ns 108;
16815 
16816 data 1 -do -4 (12)000;
16817 data 2 -do 4  (12)777;
16818 
16819 page -all;
16820 
16821 
16822 
16823 
16824 
16825 /*     cmpb24
16826 *  The 1st string is 20 words in length and crosses a page
16827 boundary. The 2nd string is 30 words in length and is greater
16828 than the 1st.  */
16829 
16830 inst cmpb -nt "2nd string is longer than 1st"
16831 -mf1 rl 720 idr ar
16832 -mf2 id
16833 -io 2;
16834 
16835 desc 2 -ns 1080  -bp 4;
16836 
16837 data 1 -do -3  (20)"ijkl";
16838 data 2 -do 8  054  (30)"9832";
16839 
16840 page -all;
16841 
16842 
16843 
16844 
16845 
16846 /*     cmpb25
16847 *  Both strings begin in the middle of a byte. The first string is
16848 all ones and is greater than the 2nd.  */
16849 
16850 inst cmpb -nt "both strings are the same length"
16851 -ir cr
16852 -mf1 idb ar reg
16853 -mf2 idb ar;
16854 
16855 desc 1 -bp 5 -ns 13;
16856 desc 2 -bp 2 -ns 13;
16857 
16858 data 1 777 777;
16859 data 2 265 43;
16860 
16861 page -all;
16862 
16863 
16864 
16865 
16866 
16867 /*     cmpb26
16868 *  Both strings begin in the middle of a byte. The 2nd string
16869 is all ones and is greater than the first.  */
16870 
16871 inst cmpb -nt "both strings are the same length"
16872 -mf1 idb ar
16873 -mf2 idb ar reg;
16874 
16875 desc 1 -bp 2 -ns 13;
16876 desc 2 -bp 5 -ns 13;
16877 
16878 data 1 265 43;
16879 data 2 777 777;
16880 
16881 page -all;
16882 
16883 
16884 
16885 
16886 
16887 /*     cmpb27
16888 *  The first string is one bit in length and the 2nd string
16889 is two bits long. The one fill bit is used and the first string
16890 is greater.  */
16891 
16892 inst cmpb -nt "2nd string is longer than 1st"
16893 -ir cr
16894 -fb
16895 -io2;
16896 
16897 desc 1 -ns 1;
16898 desc 2 -ns 2;
16899 
16900 data 1 4;
16901 data 2 0;
16902 
16903 page -all;
16904 
16905 
16906 
16907 
16908 
16909 /*     cmpb28
16910 *  The 1st string begins in the middle of  a byte and
16911 both strings cross page boundaries. The first string is greater
16912 than the 2nd.  */
16913 
16914 inst cmpb -nt "2nd string is longer than 1st"
16915 -ir cr
16916 -mf1 ar
16917 -mf2 reg rl 59;
16918 
16919 desc 1 -ns 43 -bp 5;
16920 
16921 data 1 -do -2 "tsrkv" 3;
16922 data 2 -do -4 "mnopqrs";
16923 
16924 page -all;
16925 
16926 
16927 
16928 
16929 
16930 /*     cmpb29
16931 *  Both strings consist of all  ones but the first string
16932 is longer and the zero fill bit is used.  Therefore, the
16933 first string is greater than the 2nd.  */
16934 
16935 inst cmpb -nt "1st string is longer than 2nd"
16936 -ir cr
16937 -mf1 rl 39168 ar
16938 -mf2 rl 33000;
16939 
16940 data 1 (4352)777;
16941 data 2 (3667)777;
16942 
16943 page -all;
16944 
16945 
16946 
16947 
16948 
16949 /*     cmpb30
16950 *  The first string starts in the middle of a byte and neither
16951 string crosses a page boundary. The first string is greater than the
16952 second.  */
16953 
16954 inst cmpb -nt "2nd string is longer than 1st"
16955 -ir cr
16956 -fb
16957 -mf1 ar
16958 -mf2 ar rl 436;
16959 
16960 desc 1 -bp 3 -ns 274;
16961 
16962 data 1 (7)"tack" "rgm";
16963 data 2 (12)"mike" 023;
16964 
16965 page -all;
16966 
16967 
16968 
16969 
16970 
16971 /*     cmpb31
16972 *  Neither string crosses a page boundary and the first
16973 string is less than the 2nd.  */
16974 
16975 inst cmpb -nt "1st string is longer than 2nd";
16976 
16977 desc 1 -ns 50;
16978 desc 2 -ns 49;
16979 
16980 data 1 023 571 725 152 111 243;
16981 data 2 023 571 777 043 121 000;
16982 
16983 page -all;
16984 
16985 
16986 
16987 
16988 
16989 /*     cmpb32
16990 *   The first string consists of all zeroes and neither
16991 string crosses a page boundary. The second string is both
16992 longer and greater.  */
16993 
16994 inst cmpb -nt "2nd string is longer than 1st"
16995 -mf1 idb ar reg rl 39159
16996 -mf2 idb ar reg rl 39168
16997 -io 1
16998 -fb;
16999 
17000 data 1 (4351)000;
17001 data 2 (4352)071;
17002 
17003 page -all;
17004 
17005 ^L
17006 
17007 
17008 /*     dtb1
17009 * Indirect descriptors are used for both operands.
17010 * Address register modification is used for both operands.
17011 * The decimal operand is split across a page boundary.
17012 */
17013 
17014 inst dtb
17015 -nt "9-bit unsigned decimal -> binary"
17016 -mf2 idb ar reg rl 1
17017 -mf1 idb ar reg rl 2
17018 -io 1;
17019 
17020 desc 1 -sd n;
17021 
17022 data 2 034;
17023 data 1 -do -1 "28";
17024 
17025 page -all;
17026 
17027 
17028 
17029 /*     dtb2
17030 * No indirect descriptors are used.
17031 * Address register modification is used for both operands.
17032 * Both operands cross a page boundary.
17033 */
17034 
17035 inst dtb
17036 -nt "9-bit leading sign -> binary"
17037 -mf2 ar
17038 -mf1 ar;
17039 
17040 desc 2 -nn 2;
17041 desc 1 -nn 6 -sd l;
17042 
17043 data 2 -do -1 127 531;
17044 data 1 -do -3 "+44889";
17045 
17046 page -all;
17047 
17048 
17049 
17050 /*     dtb3
17051 * Indirect descriptors are used by both operands.
17052 * Address register modification is used for both operands.
17053 * Both operands cross a page boundary.
17054 */
17055 
17056 inst dtb
17057 -nt "9-bit trailing sign -> binary"
17058 -mf2 ida ar
17059 -mf1 idb ar;
17060 
17061 desc 2 -nn 3;
17062 desc 1 -nn 9 -sd t;
17063 
17064 data 2 -do -2 211 664 372;
17065 data 1 -do -4 "36137210+";
17066 
17067 page -all;
17068 
17069 
17070 
17071 /*     dtb4
17072 * No indirect descriptors are used.
17073 * No address register modification is used.
17074 * The decimal operand is split across a page boundary.
17075 * Register length modification is used by both operands.
17076 */
17077 
17078 inst dtb
17079 -nt "9-bit unsigned decimal -> binary"
17080 -mf2 rl 4
17081 -mf1 rl 10;
17082 
17083 desc 1 -sd n;
17084 
17085 data 2 111 222 333 444;
17086 data 1 -do -8 "9836279588";
17087 
17088 page -all;
17089 
17090 
17091 
17092 /*     dtb5
17093 * Address register modification is used by both operands.
17094 * An indirect descriptor is used by the decimal operand.
17095 * Simple register modification is used by the binary operand.
17096 * Register length modification is used by both operands.
17097 */
17098 
17099 inst dtb
17100 -nt "9-bit leading sign -> bim"nary"
17101 -mf2 ar reg rl 5
17102 -mf1 ar idr rl 15;
17103 
17104 desc 1 -sd l;
17105 
17106 data 2 -do -4 333 444 333 222 111;
17107 data 1 -do -12 "+15088814466121";
17108 
17109 page -all;
17110 
17111 
17112 
17113 /*     dtb6
17114 * Address register modification is used by both operands.
17115 * An indirect descriptor is used by the binary operand.
17116 * Neither operand crosses a page boundary.
17117 */
17118 
17119 inst dtb
17120 -nt "9-bit trailing sign -> binary"
17121 -mf2 ar id
17122 -mf1 ar;
17123 
17124 desc 2 -nn 6;
17125 desc 1 -nn 17 -sd t;
17126 
17127 data 2 123 456 765 432 123 456;
17128 data 1 "2941123482396462+";
17129 
17130 page -all;
17131 
17132 
17133 
17134 /*     dtb7
17135 * Simple register modification is used by both operands.
17136 * An indirect descriptor is used by the decimal operand.
17137 * Both operands begin in the middle of a page.
17138 * Neither operand spans a page boundary.
17139 */
17140 
17141 inst dtb
17142 -nt "9-bit unsigned decimal -> binary"
17143 -mf2 reg
17144 -mf1 reg id;
17145 
17146 desc 2 -nn 7;
17147 desc 1 -nn 19 -sd n;
17148 
17149 data 2 -do 80 321 456 372 415 210 000 000;
17150 data 1 -do 60 "3775652184861966336";
17151 
17152 page -all;
17153 
17154 
17155 
17156 /*     dtb8
17157 * Both operands use only simple register modification.
17158 * Neither operand spans a page boundary.
17159 * Both operands begin on the 1st byte of a page.
17160 */
17161 
17162 inst dtb
17163 -nt "9-bit leading sign -> binary"
17164 -mf2 reg
17165 -mf1 reg;
17166 
17167 desc 2 -nn 8;
17168 desc 1 -nn 22 -sd l;
17169 
17170 data 2 124 570 642 000 000 375 125 743;
17171 data 1 "+781551372002965892067";
17172 
17173 page -all;
17174 
17175 
17176 
17177 /*     dtb9
17178 * An indirect descriptor is used by the binary operand.
17179 * Neither operand spans a page boundary.
17180 * Both operands begin on the 1st byte of a page.
17181 * The eis instruction itself spans a page boundary.
17182 * No modifications are made to the decimal operand.
17183 */
17184 
17185 inst dtb
17186 -nt "4-bit unsigned decimal -> binary"
17187 -mf2 id
17188 -io 1;
17189 
17190 desc 2 -nn 1;
17191 desc 1 -tn 4 -nn 2 -sd n;
17192 
17193 data 2 034;
17194 data 1 050 000;
17195 
17196 page -all;
17197 
17198 
17199 
17200 /*     dtb10
17201 * Address register modification is used for the binary operand.
17202 * No modifications are made to the decimal operand.
17203 * Both operands span a page boundary.
17204 */
17205 
17206 inst dtb
17207 -nt "4-bit leading sign -> binary"
17208 -mf2  ar
17209 -io 1;
17210 
17211 desc 2 -nn 2;
17212 desc 1 -tn 4 -nn 6 -sd l;
17213 
17214 data 2 -do -1 127 531;
17215 data 1 -do -4  304110211000 000000;
17216 
17217 page -all;
17218 
17219 
17220 
17221 /*     dtb11
17222 * Address register modification is used for the decimal operand.
17223 * No modifications are made to the binary operand.
17224 * Only the decimal operand spans a page boundary.
17225 * The eis instruction itself spans a page boundary.
17226 */
17227 
17228 inst dtb
17229 -nt "4-bit trailing sign -> binary"
17230 -mf1 ar
17231 -io2;
17232 
17233 desc 2 -nn 3;
17234 desc 1 -tn 4 -nn 9 -sd t;
17235 
17236 data 2 211 664 372;
17237 data 1 -do -8  066023162020 300000000000000;
17238 
17239 page -all;
17240 
17241 
17242 
17243 /*     dtb12
17244 * Indirect descriptors are used for both operands.
17245 * No address register modification is used.
17246 * Neither operand spans a page boundary.
17247 * Both operands begin on the 1st byte of a page.
17248 * The eis instruction itself spans a page boundary.
17249 */
17250 
17251 inst dtb
17252 -nt "4-bit unsigned decimal -> binary"
17253 -mf2 id
17254 -mf1 id
17255 -io 2;
17256 
17257 desc 2 -nn 4;
17258 desc 1 -tn 4 -nn 10 -sd n;
17259 
17260 data 2 111 222 333 444;
17261 data 1 230066047225 210000000000;
17262 
17263 page -all;
17264 
17265 
17266 
17267 /*     dtb13
17268 * No modifications are made to the binary operand.
17269 * Address register modification is used for the decimal operand.
17270 * An indirect descriptor is used by the decimal operand.
17271 * Both operands span a page boundary.
17272 */
17273 
17274 inst dtb
17275 -nt "4-bit leading sign -> binary"
17276 -mf1 ar id
17277 -io 1;
17278 
17279 desc 2 -nn 5;
17280 desc 1 -tn 4 -nn 15 -sd l;
17281 
17282 data 2 -do -4  333 444 333 222 111;
17283 data 1 -do -8  301120210201 104146022020;
17284 
17285 page -all;
17286 
17287 
17288 
17289 /*     dtb14
17290 * Indirect descriptors are used by both operands.
17291 * Both operands span a page boundary.
17292 */
17293 
17294 inst dtb
17295 -nt "4-bit trailing sign -> binary"
17296 -mf2 idr
17297 -mf1 ida;
17298 
17299 desc 2 -nn 6;
17300 desc 1 -tn 4 -nn 17 -sd t;
17301 
17302 data 2 -do -4  123 456 765 432 123 456;
17303 data 1 -do -16  051101022064 202071144142 300;
17304 
17305 page -all;
17306 
17307 
17308 
17309 /*     dtb15
17310 * Indirect descriptors are used for both operands.
17311 * Address register modification is used for both operands.
17312 * Both operands span a page boundary.
17313 * The eis instruction itself spans a page boundary.
17314 */
17315 
17316 inst dtb
17317 -nt "4-bit unsigned decimal -> binary"
17318 -mf2 id ar
17319 -mf1 id ar
17320 -io1;
17321 
17322 desc 2 -nn 7;
17323 desc 1 -tn 4 -nn 19 -sd n;
17324 
17325 data 2 -do -6  321 456 372 415 210 000 000;
17326 data 1 -do -1  067165145041 204206031146 063140;
17327 
17328 page -all;
17329 
17330 
17331 
17332 /*     dtb16
17333 * Indirect descriptors are used by both operands.
17334 * Address register modification is used by both operands.
17335 * Neither operand spans a page boundary.
17336 * Both operands begin in the middle of a page.
17337 */
17338 
17339 inst dtb
17340 -nt "4-bit leading sign -> binary"
17341 -mf2 idb ar
17342 -mf1 idb ar;
17343 
17344 desc 2 -nn 8;
17345 desc 1 -tn 4 -nn 22 -sd l;
17346 
17347 data 2 -do 14  124 570 642 000 000 375 125 743;
17348 data 1 -do 100   307201125023162000051145 211040147000;
17349 
17350 page -all;
17351 
17352 ^L
17353 
17354 /*     btd1
17355 * Indirect descriptors are used for both operands.
17356 * Address register modification is used for both operands.
17357 * The decimal operand is split across a page boundary.
17358 */
17359 
17360 inst btd
17361 -nt "binary -> 9-bit unsigned decimal"
17362 -mf1 idb ar reg rl 1
17363 -mf2 idb ar reg rl 2
17364 -io 1;
17365 
17366 desc 2 -sd n;
17367 
17368 data 1 034;
17369 data 2 -do -1 "28";
17370 
17371 page -all;
17372 
17373 
17374 
17375 /*     btd2
17376 * No indirect descriptors are used.
17377 * Address register modification is used for both operands.
17378 * Both operands cross a page boundary.
17379 */
17380 
17381 inst btd
17382 -nt "binary -> 9-bit leading sign"
17383 -mf1 ar
17384 -mf2 ar;
17385 
17386 desc 1 -nn 2;
17387 desc 2 -nn 6 -sd l;
17388 
17389 data 1 -do -1 127 531;
17390 data 2 -do -3 "+44889";
17391 
17392 page -all;
17393 
17394 
17395 
17396 /*     btd3
17397 * Indirect descriptors are used by both operands.
17398 * Address register modification is used for both operands.
17399 * Both operands cross a page boundary.
17400 */
17401 
17402 inst btd
17403 -nt "binary -> 9-bit trailing sign"
17404 -mf1 ida ar
17405 -mf2 idb ar;
17406 
17407 desc 1 -nn 3;
17408 desc 2 -nn 9 -sd t;
17409 
17410 data 1 -do -2 211 664 372;
17411 data 2 -do -4 "36137210+";
17412 
17413 page -all;
17414 
17415 
17416 
17417 /*     btd4
17418 * No indirect descriptors are used.
17419 * No address register modification is used.
17420 * The decimal operand is split across a page boundary.
17421 * Register length modification is used by both operands.
17422 */
17423 
17424 inst btd
17425 -nt "binary -> 9-bit unsigned decimal"
17426 -mf1 rl 4
17427 -mf2 rl 10;
17428 
17429 desc 2 -sd n;
17430 
17431 data 1 111 222 333 444;
17432 data 2 -do -8 "9836279588";
17433 
17434 page -all;
17435 
17436 
17437 
17438 /*     btd5
17439 * Address register modification is used by both operands.
17440 * An indirect descriptor is used by the decimal operand.
17441 * Simple register modification is used by the binary operand.
17442 * Register length modification is used by both operands.
17443 */
17444 
17445 inst btd
17446 -nt "binary -> 9-bit leading sign"
17447 -mf1 ar reg rl 5
17448 -mf2 ar idr rl 15;
17449 
17450 desc 2 -sd l;
17451 
17452 data 1 -do -4 333 444 333 222 111;
17453 data 2 -do -12 "+15088814466121";
17454 
17455 page -all;
17456 
17457 
17458 
17459 /*     btd6
17460 * Address register modification is used by both operands.
17461 * An indirect descriptor is used by the binary operand.
17462 * Neither operand crosses a page boundary.
17463 */
17464 
17465 inst btd
17466 -nt "binary -> 9-bit trailing sign"
17467 -mf1 ar id
17468 -mf2 ar;
17469 
17470 desc 1 -nn 6;
17471 desc 2 -nn 17 -sd t;
17472 
17473 data 1 123 456 765 432 123 456;
17474 data 2 "2941123482396462+";
17475 
17476 page -all;
17477 
17478 
17479 
17480 /*     btd7
17481 * Simple register modification is used by both operands.
17482 * An indirect descriptor is used by the decimal operand.
17483 * Both operands begin in the middle of a page.
17484 * Neither operand spans a page boundary.
17485 */
17486 
17487 inst btd
17488 -nt "binary -> 9-bit unsigned decimal"
17489 -mf1 reg
17490 -mf2 reg id;
17491 
17492 desc 1 -nn 7;
17493 desc 2 -nn 19 -sd n;
17494 
17495 data 1 -do 80 321 456 372 415 210 000 000;
17496 data 2 -do 60 "3775652184861966336";
17497 
17498 page -all;
17499 
17500 
17501 
17502 /*     btd8
17503 * Both operands use only simple register modification.
17504 * Neither operand spans a page boundary.
17505 * Both operands begin on the 1st byte of a page.
17506 */
17507 
17508 inst btd
17509 -nt "binary -> 9-bit leading sign"
17510 -mf1 reg
17511 -mf2 reg;
17512 
17513 desc 1 -nn 8;
17514 desc 2 -nn 22 -sd l;
17515 
17516 data 1 124 570 642 000 000 375 125 743;
17517 data 2 "+781551372002965892067";
17518 
17519 page -all;
17520 
17521 
17522 
17523 /*     btd9
17524 * An indirect descriptor is used by the binary operand.
17525 * Neither operand spans a page boundary.
17526 * Both operands begin on the 1st byte of a page.
17527 * The eis instruction itself spans a page boundary.
17528 * No modifications are made to the decimal operand.
17529 */
17530 
17531 inst btd
17532 -nt "binary -> 4-bit unsigned decimal"
17533 -mf1 id
17534 -io 1;
17535 
17536 desc 1 -nn 1;
17537 desc 2 -tn 4 -nn 2 -sd n;
17538 
17539 data 1 034;
17540 data 2 050 000;
17541 
17542 page -all;
17543 
17544 
17545 
17546 /*     btd10
17547 * Address register modification is used for the binary operand.
17548 * No modifications are made to the decimal operand.
17549 * Both operands span a page boundary.
17550 */
17551 
17552 inst btd
17553 -nt "binary to 4-bit leading sign"
17554 -mf1  ar
17555 -io 1;
17556 
17557 desc 1 -nn 2;
17558 desc 2 -tn 4 -nn 6 -sd l;
17559 
17560 data 1 -do -1 127 531;
17561 data 2 -do -4  304110211000 000000;
17562 
17563 page -all;
17564 
17565 
17566 
17567 /*     btd11
17568 * Address register modification is used for the decimal operand.
17569 * No modifications are made to the binary operand.
17570 * Only the decimal operand spans a page boundary.
17571 * The eis instruction itself spans a page boundary.
17572 */
17573 
17574 inst btd
17575 -nt "binary -> 4-bit trailing sign"
17576 -mf2 ar
17577 -io2;
17578 
17579 desc 1 -nn 3;
17580 desc 2 -tn 4 -nn 9 -sd t;
17581 
17582 data 1 211 664 372;
17583 data 2 -do -8  066023162020 300000000000000;
17584 
17585 page -all;
17586 
17587 
17588 
17589 /*     btd12
17590 * Indirect descriptors are used for both operands.
17591 * No address register modification is used.
17592 * Neither operand spans a page boundary.
17593 * Both operands begin on the 1st byte of a page.
17594 * The eis instruction itself spans a page boundary.
17595 */
17596 
17597 inst btd
17598 -nt "binary -> 4-bit unsigned decimal"
17599 -mf1 id
17600 -mf2 id
17601 -io 2;
17602 
17603 desc 1 -nn 4;
17604 desc 2 -tn 4 -nn 10 -sd n;
17605 
17606 data 1 111 222 333 444;
17607 data 2 230066047225 210000000000;
17608 
17609 page -all;
17610 
17611 
17612 
17613 /*     btd13
17614 * No modifications are made to the binary operand.
17615 * Address register modification is used for the decimal operand.
17616 * An indirect descriptor is used by the decimal operand.
17617 * Both operands span a page boundary.
17618 */
17619 
17620 inst btd
17621 -nt "binary -> 4-bit leading sign"
17622 -mf2 ar id
17623 -io 1;
17624 
17625 desc 1 -nn 5;
17626 desc 2 -tn 4 -nn 15 -sd l;
17627 
17628 data 1 -do -4  333 444 333 222 111;
17629 data 2 -do -8  301120210201 104146022020;
17630 
17631 page -all;
17632 
17633 
17634 
17635 /*     btd14
17636 * Indirect descriptors are used by both operands.
17637 * Both operands span a page boundary.
17638 */
17639 
17640 inst btd
17641 -nt "binary -> 4-bit trailing sign"
17642 -mf1 idr
17643 -mf2 ida;
17644 
17645 desc 1 -nn 6;
17646 desc 2 -tn 4 -nn 17 -sd t;
17647 
17648 data 1 -do -4  123 456 765 432 123 456;
17649 data 2 -do -16  051101022064 202071144142 300;
17650 
17651 page -all;
17652 
17653 
17654 
17655 /*     btd15
17656 * Indirect descriptors are used for both operands.
17657 * Address register modification is used for both operands.
17658 * Both operands span a page boundary.
17659 * The eis instruction itself spans a page boundary.
17660 */
17661 
17662 inst btd
17663 -nt "binary -> 4-bit unsigned decimal"
17664 -mf1 id ar
17665 -mf2 id ar
17666 -io1;
17667 
17668 desc 1 -nn 7;
17669 desc 2 -tn 4 -nn 19 -sd n;
17670 
17671 data 1 -do -6  321 456 372 415 210 000 000;
17672 data 2 -do -1  067165145041 204206031146 063140;
17673 
17674 page -all;
17675 
17676 
17677 
17678 /*     btd16
17679 * Indirect descriptors are used by both operands.
17680 * Address register modification is used by both operands.
17681 * Neither operand spans a page boundary.
17682 * Both operands begin in the middle of a page.
17683 */
17684 
17685 inst btd
17686 -nt "binary -> 4-bit leading sign"
17687 -mf1 idb ar
17688 -mf2 idb ar;
17689 
17690 desc 1 -nn 8;
17691 desc 2 -tn 4 -nn 22 -sd l;
17692 
17693 data 1 -do 14  124 570 642 000 000 375 125 743;
17694 data 2 -do 100   307201125023162000051145 211040147000;
17695 
17696 page -all;