1
2 /****^ HISTORY COMMENTS:
3 1) change2022-03-08GDixon, approve2022-03-08MCR10116,
4 audit2022-03-11Swenson, install2022-03-11MR12.8-1028:
5 Add tests of MVN instruction to generate expected overflow indicator when
6 moving float dec59 value to fixed dec59 0 target:
7 mvn22: 1e+58 => 1000... for 58 0 digits
8 mvn23: 1e+59 => 0 with overflow indicator set overflow condition has been masked
9 mvn24: 1e+64 => 0 with overflow indicator set overflow condition has been masked
10 mvn25: 1e+65 => 0 with overflow indicator set before fix this used to set truncate indicator
11 mvn26: 1e+127 => 0 with overflow indicator set before fix this used to set truncate indicator
12 END HISTORY COMMENTS */
13
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 /* */
16 /* The above history comment can be displayed or updated by the history_comment hcom command */
17 /* IFF the name et_scripts.ttf is temporarily added to the file. The name should be removed */
18 /* before installing the changed file. This temporary name approach is done in lieu of a more */
19 /* elaborate set of changes: */
20 /* - Define a new suffix for et_script-like files e.g. .ets or .eis. */
21 /* - Change eis_tester command to recognize this suffix. */
22 /* - Change pnotice_language_info_.cds to know about the new suffix, so hcom can handle it. */
23 /* - Change mbuild_info_.cds to know about the new suffix, so mbuild can handle installing */
24 /* files with this suffix. */
25 /* */
26 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
27
28
29 /* cmpc1
30 *
31 * Just compare two equal 8 character 9 bit strings.
32 * = => zero and carry indicators will be on.
33 */
34
35 inst cmpc -nt "Equal 9 bit char strings" -io 1
36 -ir zr cr;
37
38 desc 1 -ns 8;
39
40 desc 2 -ns 8;
41
42 data 1 "abcd1234";
43
44 data 2 "abcd1234";
45
46 page -all;
47
48 /* cmpc2
49 *
50 * Same as cmpc1 except move data across page boundary and add modification.
51 */
52
53 inst cmpc -nt"Same as prev but X pg bound" -io 2
54 -ir zr cr
55 -mf1 ar reg idb
56 -mf2 ar reg idb;
57
58 desc 1 -ns 8;
59
60 desc 2 -ns 8;
61
62 data 1 -do -4 "abcd" "1234";
63
64 data 2 -do -2 "ab" "cd1234";
65
66 page -all;
67
68 /* cmpc3
69 *
70 * Same as cmpc2 except first string is > than second string.
71 */
72
73 inst cmpc -nt "S1 > S2 - X pg bound" -io 3
74 -ir cr
75 -mf1 ar reg idb
76 -mf2 ar reg idb;
77
78 desc 1 -ns 8;
79
80 desc 2 -ns 8;
81
82 data 1 -do -5 "abcd1" "235";
83
84 data 2 -do -2 "ab" "cd1234";
85
86 page -all;
87
88 /* cmpc4
89 *
90 * Same as cmpc2 except first string is < than second string.
91 */
92
93 inst cmpc -nt "S1 < S2 - X pg bound" -io 1
94 -mf1 ar reg idb
95 -mf2 ar reg idb;
96
97 desc 1 -ns 8;
98
99 desc 2 -ns 8;
100
101 data 1 -do -4 "abcd" "1234";
102
103 data 2 -do -2 "ab" "cd1235";
104
105 page -all;
106
107 /* cmpc5
108 *
109 * Same as cmpc2 except we will use cn fields.
110 */
111
112 inst cmpc -nt "Test use of CN fields" -io 2
113 -ir zr cr
114 -mf1 ar reg idb
115 -mf2 ar reg idb;
116
117 desc 1 -ns 8 -cn 1;
118
119 desc 2 -cn 2 -ns 8;
120
121 data 1 -do -4 " abc" "d1234";
122
123 data 2 -do -2 "**" "abcd1234";
124
125 page -all;
126
127 /* cmpc6
128 *
129 * We will test the use of the fill character. In this test we will fill
130 * string 1.
131 */
132
133 inst cmpc -nt "Fill in S1" -io 1
134 -ir cr zr
135 -fc*
136 -mf1 idr ar
137 -mf2 ida ar;
138
139 desc 1 -ns 6;
140
141 desc 2 -ns 10;
142
143 data 1 -do -3 "123" "456";
144
145 data 2 -do -6 "123456" "****";
146
147
148 page -all;
149
150 /* cmpc7
151 *
152 * Same as cmpc6 except the fill characters will be split across
153 * a page boundary.
154 */
155
156 inst cmpc -nt "Fill X pg bound" -io 1
157 -ir cr zr
158 -fc*
159 -mf1 idr ar
160 -mf2 ida ar;
161
162 desc 1 -ns 6;
163
164 desc 2 -ns 10;
165
166 data 1 -do -5 "12345" "6";
167
168 data 2 -do -9 "123456***" "*";
169
170
171 page -all;
172
173 /* cmpc8
174 *
175 * In this test we will test using the fill character of string 2.
176 */
177
178 inst cmpc -nt "Fill in S2" -io 2
179 -ir zr cr
180 -fc /* Fill character is a blank. */
181 -mf1 idb rl 8 ar reg
182 -mf2 idb rl 4 ar reg;
183
184 /* No desc statements needed. */
185
186 data 1 -do -4 "1234" " ";
187
188 data 2 -do -3 "123" "4";
189
190
191 page -all;
192
193 /* cmpc9
194 *
195 * The same as cmpc8 except we will split the fill characters across a page boundary.
196 */
197
198 inst cmpc -nt "Same as prev - fill X pg bound" -io 2
199 -ir zr cr
200 -fc /* Fill character is a blank. */
201 -mf1 idb rl 8 ar reg
202 -mf2 idb rl 4 ar reg;
203
204 /* No desc statements needed. */
205
206 data 1 -do -5 "1234 " " ";
207
208 data 2 -do -3 "123" "4";
209
210
211 page -all;
212
213 /* cmpc10
214 *
215 * This test will compare two strings that cross two page boundaries.
216 */
217
218 inst cmpc -nt "Both strings X pg bounds" -io 3
219 -ir cr zr
220 -mf1 idb reg ar rl 4352
221 -mf2 idb reg ar rl 4352;
222
223 data 1 -do -128 4352 "S";
224
225 data 2 -do -128 4352 "S";
226
227
228 page -all;
229
230 /* cmpc11
231 *
232 * This test will compare 3 6 bit characters. We will have them
233 * cross a page boundary and we will use the cn field of the
234 * descriptors to start the string at a character other than character
235 * zero of the effectively addressed word.
236 */
237
238 inst cmpc -nt "6 bit characters" -io 2
239 -ir cr zr
240 -mf1 ar reg idb rl 3
241 -mf2 ar reg idb;
242
243 desc 1 -cn 2 -ta 6;
244
245 desc 2 -ns 3 -cn 1; /* NOTE, ta field taken from desc 1 statement. */
246
247
248 data 1 -do -2 000020 /*Page Boundary*/ 2122;
249
250 data 2 -do -2 002021 /*Page Boundary*/ 22;
251
252
253 page -all;
254
255 /* cmpc12
256 *
257 * This test is like cmpc11 except that the character size will be 4.
258 */
259
260 inst cmpc -nt "4 bit characters"
261 -ir cr zr
262 -mf1 idb reg ar
263 -mf2 idb reg ar;
264
265 desc 1 -ns 3 -cn 2 -ta 4; /* This desc statement must be first. */
266
267 desc 2 -ns 3 -cn 1; /* This desc statement can NOT have a -ta option. */
268
269
270 data 1 -do -2 000232 260; /* characters "1001"b "1010"b "1011"b */
271
272 data 2 -do -1 011 253; /* The same 3 characters. */
273
274
275 page -all;
276 /* cmpc13
277
278 * compare two strings of maximum length.
279 * the data is six bit data and maximum
280 * desc. mod. is taken
281 *
282 */
283
284
285 inst cmpc -nt "d1,2 covers 3pp. 6bit zr cr"
286 -ir zr cr
287 -mf1 idb ar reg rl 6528
288 -mf2 idb ar reg rl 6528;
289
290 desc 1 -ta 6 ;
291
292
293 data 1 -do -128 1088 212121212121;
294
295 data 2 -do -128 1088 212121212121;
296
297 page -all;
298
299
300 /* cmpc14
301
302 * this is a test using 4 bit data with the
303 * first string covering the maximum number of words.
304 * the second string also is of maximum length
305 * and the descriptors are all direct mod.
306 *
307 */
308
309 inst cmpc -nt "d1,2 covers 3pp 4bit zr cr"
310 -ir cr zr
311 -mf1 rl 8704
312 -mf2 rl 8704;
313
314 desc 1 -ta 4;
315
316 data 1 -do -128 1088 232232232232;
317
318 data 2 -do -128 1088 232232232232;
319
320
321 page -all;
322
323
324
325 /* cmpc15
326
327 * the next four tests will again use the maximum
328 * amount of data but will vary the desc. mod. taken.
329 *
330 */
331
332 inst cmpc -io 2 -nt "d1,2 covers 3pp 6 bit zr cr"
333 -mf1 ida reg rl 6528
334 -mf2 idr ar rl 6528
335 -ir cr zr;
336
337 desc 1 -ta 6;
338
339 data 1 -do -128 1088 212223242526;
340
341 data 2 -do -128 1088 212223242526;
342
343 page -all;
344
345
346
347 /* cmpc16
348
349 * this is the same as test 15 but there will be not3
350 * match of the data str1 < str2 : zr=0 cr=0
351 *
352 */
353
354 inst cmpc -io 1 -nt "d1,2 covers 3 pp 6 bit"
355 -mf1 ida reg rl 6528
356 -mf2 idr ar rl 6528;
357
358 desc 1 -ta 6;
359
360 data 1 -do -128 1088 212221222122;
361
362 data 2 -do -128 1088 2122232422226;
363
364 page -all;
365
366
367
368 /* cmpc17
369
370 * this test is similar to test14 only the
371 * maximum number of desc. mods. are taken.
372 * the data is still four bit.
373 *
374 */
375
376 inst cmpc -io 3 -nt "d1,2 covers 3pp 4bit zr cr"
377 -ir zr cr
378 -mf1 idb ar reg rl 8704
379 -mf2 idb ar reg rl 8704;
380
381 desc 1 -ta 4;
382
383 data 1 -do -128 1088 232232232232;
384
385 data 2 -do -128 1088 232232232232;
386
387 page -all;
388
389
390
391
392 /* cmpc18
393
394 * this test will take a variety of desc. mod.
395 * and will force st1 > st2 zr =0 cr = 1.
396 * the data is four bit.
397 *
398 */
399
400 inst cmpc -io 1 -nt "d1,2 covers 3pp 4 bit cr"
401 -ir cr
402 -mf1 ida reg rl 8704
403 -mf2 idr ar rl 8704;
404
405 desc 1 -ta 4;
406
407 data 1 -do -128 1088 232232232222;
408
409 data 2 -do -128 1088 227237237237;
410
411 page -all;
412
413
414 /* cmpc19
415
416 * the test exercises the fill char option along with
417 * the cn option. the test also uses 6 bit data.
418 *
419 */
420
421 inst cmpc -io 1 -nt "d1 split cn 6bit zr cr"
422 -ir zr cr
423 -fc^@ /* fc = 000 */
424 -mf1 reg ar rl 8
425 -mf2 reg rl 5;
426
427 desc 1 -ta 6 -cn 2;
428
429 desc 2 -cn 1;
430
431 data 1 -do -2 000020 /* page bound */ 21222324000000;
432
433 data 2 002021222324;
434
435 page -all;
436
437
438
439 /* cmpc20
440
441 * this test uses 6 bit data and test a different
442 * variety of desc. mods. that test 19. the
443 * data is the same as test 19 except str1 < str2).
444 *
445 */
446
447 inst cmpc -io 2 -nt "d1 split fc 6bit"
448 -mf1 idb ar
449 -mf2 ar reg
450 -fc^@ /* fc = 000 */ /* fc = 000 */;
451
452 desc 1 -ta 6 -ns 8 -cn 2;
453
454 desc 2 -ns 5 -cn 2;
455
456 data 1 -do -2 000020 /* paGE BOUND */ 212223220000;
457
458 data 2 002021222324;
459
460 page -all;
461
462
463
464
465
466 /* cmpc21
467
468 * the next wo tests use 4 bit data and test the use of the
469 * fill character. a variety of desc. mods. are taken.
470 *
471 **/
472
473
474 inst cmpc -io 2 -nt "fc 4bit zr cr"
475 -fc^@ /* fc = 000 */
476 /* fc = 000 */
477 -mf1 ida ar reg rl 2
478 -mf2 idr ar rl 4
479 -ir zr cr;
480
481 desc 1 -ta 4;
482
483 data 1 232;
484
485
486 data 2 232000;
487
488 page -all;
489
490
491
492
493 /* cmcp22
494
495 * this test results in str1 > str 2.
496 *
497 */
498
499 inst cmpc -io 2 -nt " fc 4bit cr"
500 -ir cr
501 -mf1 idb ar reg
502 -mf2 rl 6
503 -fc^@ /* fc = 000 */;
504 /* fc = 000 */
505
506 desc 1 -ta 4 -ns 4;
507
508
509 data 1 -do -2 237237 /* page bound */ ;
510
511 data 2 232232000;
512
513 page -all;
514
515
516 ^L
517
518
519
520 /* scd1
521 *
522 * We will split both string 1 and string 2 across page
523 * boundaries. We will use all mods and use a cn
524 * field in descriptors 1 & 2.
525 */
526
527 inst scd -nt "Strings X pg bound - all mods" -io 2
528 -mf1 idb ar reg rl 8
529 -mf2 idb ar reg
530 -mf3 ar reg;
531
532
533 desc 1 -cn 1;
534 desc 2 -cn 3;
535
536 data 1 -do -5
537 " " /* Character skipped by cn field. */
538 "123*" "$678";
539
540 data 2 -do -4 " " "*" "$";
541
542 data 3 000 000 000 003;
543
544
545 page -all;
546 /* scd2
547 *
548
549 * simple test which takes no more than the minimum
550 * number of page faults. assures the instruction is
551 * working correctly.
552 *
553 */
554
555 inst scd -nt "simple test 9bit";
556
557 desc 1 -ns 8; /* 9 bit char */
558
559 data 1 "abcd1234";
560
561 data 2 "cd";
562
563 data 3 000 000 000 002;
564
565 page -all;
566
567
568
569
570 /* scd3
571
572 * this test uses the same data as test 2
573 * but splits the first string across a page
574 boundary. the maximum number of descriptor page faultd
575 * for the first two descriptors are also taken.
576 *
577 */
578
579 inst scd -nt "d1 split 9bit; FCOs PHAFPG179 & 181 required on L68 CPU"
580 -mf1 idb ar reg rl 8
581 -mf2 idb ar reg;
582
583
584 data 1 -do 2
585 "ab" "cd1234";
586
587 data 2 "cd";
588
589 data 3 000 000 000 002;
590
591 page -all;
592
593
594
595 /* scd4
596
597 * this test mixes the page faults among descriptors
598 * and splits data across a page boundary with a
599 * match on the first try.
600 *
601 */
602
603
604 inst scd -nt "d1 split match 1st try; FCOs PHAFPG179 & 181 required on L68 CPU"
605 -mf1 idb ar
606 -mf2 ar reg
607 -mf3 ar; /* note the data word indirection */
608
609 desc 1 -ns 8;
610
611 data 1 -do -1 "a" "bcd1234";
612
613 data 2 "ab";
614
615 data 3 000 000 000 000;
616
617
618 page -all;
619
620
621
622
623 /* scd5
624
625 * same as previous test but both strings
626 * are split across page boundaries. data
627 * word is also accessed directly.
628 *
629 */
630
631
632 inst scd -io 2 -nt "d1,2 split 9bit"
633 -mf1 idb ar reg
634 -mf2 idb ar reg;
635
636 desc 1 -ns 8;
637
638 data 1 -do -4 "abcd" "1234";
639
640 data 2 -do -1 "d" "1";
641
642 data 3 000 000 000 003;
643
644
645 page -all;
646
647
648
649
650 /* scd6
651
652 * this test takes all the page faults
653 * possible with the descriptors, and
654 * tests the -cn and -rl option.
655 *
656 */
657
658
659 inst scd -io 2 -nt "max page fault 9bit"
660 -mf1 idb ar reg rl 8
661 -mf2 idb ar reg
662 -mf3 ar reg;
663 /* that's all pssible indirections */
664
665 desc 2 -cn 2;
666
667
668
669 data 1 -do -4 "abcd" "1234";
670
671 data 2 -do -2 " " "12";
672
673 data 3 000 000 000 004;
674
675 page -all;
676
677
678
679
680 /* scd7
681
682 * salient feature of this test is
683 * that there is no match on the search.
684 * both data strings cross page boundaries.
685 *
686 */
687
688
689 inst scd -io 2 -nt "no match 9bit"
690 -ir tr
691 /* mf1 is direct */
692 -mf2 idb ar reg;
693
694
695 desc 1 -ns 8;
696
697
698 data 1 -do -4 "abcd" "1234";
699
700 data 2 -do -1 "5" "6";
701
702 data 3 000 000 000 007;
703
704 page -all;
705
706
707
708
709 /* scd8
710
711 * all possible indirection for descriptors
712 * taken with the cn option for both tested.
713 * strings both split across page.
714 *
715 */
716
717 inst scd -io 3 -nt "d1,2 split 9bit"
718 -mf1 idb ar reg rl 5
719 -mf2 idb ar reg;
720
721 desc 1 -cn 3;
722
723 desc 2 -cn 1;
724
725 data 1 -do -3 "***" "abcde";
726
727 data 2 -do -3 "*bc" "*";
728
729 data 3 000 000 000 001;
730
731 page -all;
732
733
734
735 /* scd9
736
737 *the next three tests all use the same basic
738
739
740 * data but vary the type of indirection and thus
741 * the type of page faults that will be taken.
742 *
743 */
744
745 inst scd -io 1 -nt "desc mod d1,2 split 9bit"
746 -mf1 ar
747 -mf2 idb ar reg
748 -mf3 ar reg;
749
750 desc 1 -ns 5 -cn 3;
751
752 desc 2 -cn 1;
753
754 data 1 -do -3"***" "abcde";
755
756 data 2 -do -3 "*bc" "*";
757
758 data 3 000 000 000 001;
759
760 page -all;
761
762
763
764 /* scd10
765
766 * swap desc1 and desc2 mod
767 *
768 */
769
770 inst scd -io 1 -nt "d1,2 split 9bit"
771 -mf1 idb ar reg rl 8
772 -mf2 ar
773 -mf3 ar reg;
774
775 desc 1 -cn 3;
776
777 desc 2 -cn 1;
778
779 data 1 -do -3 "***" "abcde";
780
781 data 2 -do -3 "*bc" "*";
782
783 data 3 000 000 000 001;
784
785 page -all;
786
787
788
789 /* scd11
790
791 * mf3 is direct : other two indirect
792 *
793 */
794
795 inst scd -io 1 -nt "mf1 direct others ind. 9b"
796 -mf1 idb ar reg rl 8
797 -mf2 idb ar reg;
798 /* mf3 is direct */
799
800 desc 1 -cn 3;
801
802 desc 2 -cn 1;
803
804 data 1 -do -3 "***" "abcde";
805
806 data 2 -do -3 "*bc" "*";
807
808 data 3 000 000 000 001;
809
810
811 page -all;
812
813
814
815
816 /* scd12
817
818 * the data for the next two tests spans three pages.
819 * this test uses all direct mod for descriptors.
820 *
821 */
822
823 inst scd -io 1 -nt "d1 spans 3pp 9bit"
824
825 -mf1 rl 4352;
826
827 data 1 -do -128 2175 "ab" "bc";
828
829 data 2 "bc";
830
831 data 3 000 000 010376;
832
833 page -all;
834
835
836
837 /* scd13
838
839 * same data as previous test but using
840 * maximum indirection on the desc.
841 *
842 */
843
844
845 inst scd -io 2 -nt "d1 spans 3pp max desc mod 9b"
846 -mf1 idb ar reg rl 4352
847 -mf2 idb ar reg
848 -mf3 reg ar;
849
850 /* no desc statements are needed */
851
852 data 1 -do -128 2175 "ab" "bc";
853
854 data 2 "bc";
855
856 data 3 000 000 010 376;
857
858 page -all;
859
860
861 /* scd14
862
863 * the next two tests move the two char data 2 string
864 * across a page boundary using the large data field of
865 * the previous two tests as data 1.
866 *
867 */
868
869 inst scd -io 3 -nt "3 page d1, d2 split 9b"
870 -mf1 idb ar reg rl 4352
871 -mf2 idb ar reg
872 -mf3 ar reg;
873
874 /* desc statements not needed */
875
876
877
878 data 1 -do -128 2175 "ab" "bc";
879
880 data 2 -do -1 "b" "c";
881
882 data 3 000 000 010 376;
883
884 page -all;
885
886
887 /* scd15
888
889 * data 2 fully contained on page 0
890 *
891 */
892
893 inst scd -io 2 -nt "3page d1, d2 split 9b"
894 -mf1 idb ar reg rl 4352
895 -mf2 idb ar reg
896 -mf3 ar reg;
897
898
899 data 1 -do -1282175 "ab" "bc";
900
901 data 2 -do -2"bc";
902
903 data 3 000 000 010 376;
904
905 page -all;
906
907
908
909 /* scd16
910
911 * this starts the 6 bit char tests.
912
913 * nothing fancy--indirect mod on desc 1 & 2
914 *
915 */
916
917
918 inst scd -nt "mf1,2 mod 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
919 -mf1 idb ar reg rl 6
920 -mf2 idb ar reg
921 /* desc3 is direct */;
922
923 desc 1 -ta 6 /* six bit char */;
924
925 data 1 202122232425;
926
927 data 2 2425;
928
929 data 3 000 000 000 004;
930
931 page -all;
932
933
934 /* scd17
935
936 * same data but first string offseet by
937 * 3 char. full indirect mod on desc.
938 *
939 */
940
941
942 inst scd -io 2 -nt "desc mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
943 -mf1 idb ar reg
944 -mf2 idb ar reg
945 -mf3 ar reg;
946
947 desc 1 -ns 6 -ta 6;
948
949
950 data 1 -do -2 212223 242526;
951
952 data 2 2425;
953
954 data 3 000 000 000 003;
955
956 page -all;
957
958
959
960 /* scd18
961
962 *this test offsets the second data string.
963 *
964 */
965
966 inst scd -io 1 -nt "desc mod d2 offset 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
967
968 -mf1 idb ar reg rl 6
969 -mf2 ar reg
970 -mf3 reg
971 /* note the variety of indirection */;
972
973 desc 1 -ta 6;
974
975 data 1 212223242526;
976
977 data 2 -do -2 242500;
978
979 data 3 000 000 000 003;
980
981 page -all;
982
983
984
985 /* scd19
986
987 * this test specifically exercises the -cn option
988 * along with multiple indirection.
989 *
990 */
991
992 inst scd -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
993 -mf1 idb ar reg rl 6
994 -mf2 idb ar reg
995 -mf3 ar reg;
996
997
998 desc 1 -ta 6 -cn 3;
999
1000 desc 2 -cn 3;
1001
1002 data 1 -do -4 000000202122 232425000000;
1003
1004 data 2 -do -2 000000 212200;
1005
1006 data 3 000 000 000 001;
1007
1008 page -all;
1009
1010
1011
1012 /* scd20
1013
1014 * data 1 covers three pages. match
1015 * is on the last pair of characters.
1016 *
1017 */
1018
1019 inst scd -nt "d1 spans 3pp 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1020 -mf1 idb ar reg rl 7680
1021 -mf2 idb ar reg
1022 -mf3 ar reg;
1023
1024 desc 1 -ta 6;
1025
1026
1027 data 1 -do -1281087 202124252627 202122242223;
1028
1029 data 2 2223;
1030
1031 data 3 000000014576 000;
1032
1033 page -all;
1034
1035
1036
1037 /* scd21
1038
1039 *the final series of tests are with 4 bit data
1040 * this is just a simple test of two char per string
1041 * crossing no page pound.
1042 *
1043 */
1044
1045 inst scd -nt "d1,2 2 char 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1046 -mf1 idb ar reg
1047 -mf2 idb ar reg
1048 /* mf3 is direct */;
1049
1050 desc 1 -ta 4 -ns 2;
1051
1052 data 1 232 000 000 000 /* "1001" "1010" */;
1053
1054 data 2 232 000 000 000;
1055
1056 data 3 000 000 000 000;
1057
1058 page -all;
1059
1060
1061 /* scd22
1062
1063 * split the second string across page bound.
1064 * test -cn option for data 2.
1065 *
1066 */
1067
1068 inst scd -io 2 -nt "cn,offset for d2 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1069 -mf1 idb ar reg rl 2
1070 -mf2 idb ar reg
1071 -mf3 ar reg;
1072
1073
1074 desc 1 -ta 4;
1075
1076 desc 2 -cn 1;
1077
1078 data 1 232 000 000 000;
1079
1080
1081 data 2 -do -1 011 240 /* "1001" "1010" */;
1082
1083 data 3 000 000 000 000;
1084
1085 page -all;
1086
1087
1088 /* scd23
1089
1090 * this test splits both strings and tests
1091 * the cn option for both strings
1092 *
1093 */
1094
1095 inst scd -io 2 -nt "d1,2 offset 4bit"
1096 -mf1 idb ar reg
1097 -mf2 idb ar reg
1098 -mf3 ar reg;
1099
1100 desc 1 -ta 4 -ns 2 -cn 2;
1101
1102 desc 2 -cn 1;
1103
1104 data 1 -do -2 000 232 000;
1105
1106 data 2 -do -1 011 24;
1107
1108 data 3 000 000 000 000;
1109
1110 page -all;
1111
1112
1113
1114 /* scd24
1115
1116 * this test will force data to cover all
1117 * three pages with the first data string.
1118 *
1119
1120 */
1121
1122 inst scd -io 3 -nt "d1 covers 3pp 4bit"
1123 -mf1 ar rl 10240
1124 -mf2 reg
1125 -mf3 ar;
1126
1127 desc 1 -ta 4 ;
1128
1129 data 1 -do -128 4350 232 236;
1130
1131 data 2 236;
1132
1133 data 3 000 000 020 774;
1134
1135 page -all;
1136
1137
1138 ^L
1139
1140
1141 /* scdr1
1142 *
1143 * Same as test for scd.
1144 * We will split both string 1 and string 2 across page
1145 * boundaries. We will use all mods and use a cn
1146 * field in descriptors 1 & 2.
1147 */
1148
1149 inst scdr -nt "Same as scd test" -io 3
1150 -mf1 idb ar reg rl 8
1151 -mf2 idb ar reg
1152 -mf3 ar reg;
1153
1154
1155 desc 1 -cn 1;
1156 desc 2 -cn 3;
1157
1158 data 1 -do -5
1159 " " /* Character skipped by cn field. */
1160 "123*" "$678";
1161
1162 data 2 -do -4 " " "*" "$";
1163
1164 data 3 000 000 000 003;
1165
1166
1167 page -all;
1168 /* scdr2
1169 *
1170
1171 * simple test which takes no more than the minimum
1172 * number of page faults. assures the instruction is
1173 * working correctly.
1174 *
1175 */
1176
1177 inst scdr -nt "simple test 9bit";
1178
1179 desc 1 -ns 8; /* 9 bit char */
1180
1181 data 1 "abcd1234";
1182
1183 data 2 "cd";
1184
1185 data 3 000 000 000 004;
1186
1187 page -all;
1188
1189
1190
1191
1192 /* scdr3
1193
1194 * this test mixes the page faults among descriptors
1195 * and splits data across a page boundary with a
1196 * match on the first try.
1197 *
1198 */
1199
1200
1201 inst scdr -nt "d1 split match first time 9b"
1202 -mf1 idb ar
1203 -mf2 ar reg
1204 -mf3 ar; /* note the data word indirection */
1205
1206 desc 1 -ns 8;
1207
1208 data 1 -do -1 "a" "bcd1234";
1209
1210 data 2 "ab";
1211
1212 data 3 000 000 000 006;
1213
1214
1215 page -all;
1216
1217
1218
1219
1220 /* scdr4
1221
1222 * same as previous test but both strings
1223 * are split across page boundaries. data
1224 * word is also accessed directly.
1225 *
1226 */
1227
1228
1229 inst scdr -io 2 -nt "d1,2 split 9bit"
1230 -mf1 idb ar reg
1231 -mf2 idb ar reg;
1232
1233 desc 1 -ns 8;
1234
1235 data 1 -do -4 "abcd" "1234";
1236
1237 data 2 -do -1 "d" "1";
1238
1239 data 3 000 000 000 003;
1240
1241
1242 page -all;
1243
1244
1245
1246
1247 /* scdr5
1248
1249 * this test takes all the page faults
1250 * possible with the descriptors, and
1251 * tests the -cn and -rl option.
1252 *
1253 */
1254
1255
1256 inst scdr -io 2 -nt "max page fault 9bit"
1257 -mf1 idb ar reg rl 8
1258 -mf2 idb ar reg
1259 -mf3 ar reg;
1260 /* that's all pssible indirections */
1261
1262 desc 2 -cn 2;
1263
1264
1265
1266 data 1 -do -4 "abcd" "1234";
1267
1268 data 2 -do -2 " " "12";
1269
1270 data 3 000 000 000 002;
1271
1272 page -all;
1273
1274
1275
1276
1277 /* scdr6
1278
1279 * salient feature of this test is
1280 * that there is no match on the search.
1281 * both data strings cross page boundaries.
1282 *
1283 */
1284
1285
1286 inst scdr -io 2 -nt "no match 9bit"
1287 -ir tr
1288 /* mf1 is direct */
1289 -mf2 idb ar reg;
1290
1291
1292 desc 1 -ns 8;
1293
1294
1295 data 1 -do -4 "abcd" "1234";
1296
1297 data 2 -do -1 "5" "6";
1298
1299 data 3 000 000 000 007;
1300
1301 page -all;
1302
1303
1304
1305
1306 /* scdr7
1307
1308 * all possible indirection for descriptors
1309 * taken with the cn option for both tested.
1310 * strings both split across page.
1311 *
1312 */
1313
1314 inst scdr -io 3 -nt "d1,2 split 9bit"
1315 -mf1 idb ar reg rl 5
1316 -mf2 idb ar reg;
1317
1318 desc 1 -cn 3;
1319
1320 desc 2 -cn 1;
1321
1322 data 1 -do -3 "***" "abcde";
1323
1324 data 2 -do -3 "*bc" "*";
1325
1326 data 3 000 000 000 002;
1327
1328 page -all;
1329
1330
1331
1332 /* scdr8
1333
1334 *the next three tests all use the same basic
1335
1336
1337 * data but vary the type of indirection and thus
1338 * the type of page faults that will be taken.
1339 *
1340 */
1341
1342 inst scdr -io 1 -nt "desc mod d1,2 split 9b"
1343 -mf1 ar
1344 -mf2 idb ar reg
1345 -mf3 ar reg;
1346
1347 desc 1 -ns 5 -cn 3;
1348
1349 desc 2 -cn 1;
1350
1351 data 1 -do -3"***" "abcde";
1352
1353 data 2 -do -3 "*bc" "*";
1354
1355 data 3 000 000 000 002;
1356
1357 page -all;
1358
1359
1360
1361 /* scdr9
1362
1363 * swap desc1 and desc2 mod
1364 *
1365 */
1366
1367 inst scdr -io 1 -nt "desc mod d1,2 split 9b"
1368 -mf1 idb ar reg rl 8
1369 -mf2 ar
1370 -mf3 ar reg;
1371
1372 desc 1 -cn 3;
1373
1374 desc 2 -cn 1;
1375
1376 data 1 -do -3 "***" "abcde";
1377
1378 data 2 -do -3 "*bc" "*";
1379
1380 data 3 000 000 000 005;
1381
1382 page -all;
1383
1384
1385
1386 /* scdr10
1387
1388 * mf3 is direct : other two indirect
1389 *
1390 */
1391
1392 inst scdr -io 1 -nt "mf1 direct others ind 9bit"
1393 -mf1 idb ar reg rl 8
1394 -mf2 idb ar reg;
1395 /* mf3 is direct */
1396
1397 desc 1 -cn 3;
1398
1399 desc 2 -cn 1;
1400
1401 data 1 -do -3 "***" "abcde";
1402
1403 data 2 -do -3 "*bc" "*";
1404
1405 data 3 000 000 000 005;
1406
1407
1408 page -all;
1409
1410
1411
1412
1413 /* scdr11
1414
1415 * the data for the next two tests spans three pages.
1416 * this test uses all direct mod for descriptors.
1417 *
1418 */
1419
1420 inst scdr -io 1 -nt "d1 spans 3 pp 9bit"
1421
1422 -mf1 rl 4352;
1423
1424 data 1 -do -128 "bc" 2175 "ab" ;
1425
1426 data 2 "bc";
1427
1428 data 3 000 000 010376;
1429
1430 page -all;
1431
1432
1433
1434 /* scdr12
1435
1436 * same data as previous test but using
1437 * maximum indirection on the desc.
1438 *
1439 */
1440
1441
1442 inst scdr -io 2 -nt "d1 spans 3pp max desc mod 9b"
1443 -mf1 idb ar reg rl 4352
1444 -mf2 idb ar reg
1445 -mf3 reg ar;
1446
1447 /* no desc statements are needed */
1448
1449 data 1 -do -128 "bc" 2175 "ab" ;
1450
1451 data 2 "bc";
1452
1453 data 3 000 000 010 376;
1454
1455 page -all;
1456
1457
1458 /* scdr13
1459
1460 * the next two tests move the two char data 2 string
1461 * across a page boundary using the large data field of
1462 * the previous two tests as data 1.
1463 *
1464 */
1465
1466 inst scdr -io 3 -nt "3 page d1, d2 split 9b"
1467 -mf1 idb ar reg rl 4352
1468 -mf2 idb ar reg
1469 -mf3 ar reg;
1470
1471 /* desc statements not needed */
1472
1473
1474
1475 data 1 -do -128 2175 "ab" "bc";
1476
1477 data 2 -do -1 "b" "c";
1478
1479 data 3 000 000 000 000;
1480
1481 page -all;
1482
1483
1484 /* scdr14
1485
1486 * data 2 fully contained on page 0
1487 *
1488 */
1489
1490 inst scdr -io 2 -nt "3 page d1, d2 split 9b"
1491 -mf1 idb ar reg rl 4352
1492 -mf2 idb ar reg
1493 -mf3 ar reg;
1494
1495
1496 data 1 -do -128 "bc" 2175 "ab" ;
1497
1498 data 2 -do -2"bc";
1499
1500 data 3 000 000 010376;
1501
1502 page -all;
1503
1504
1505
1506 /* scdr15
1507
1508 * this starts the 6 bit char tests.
1509
1510 * nothing fancy--indirect mod on desc 1 & 2
1511 *
1512 */
1513
1514
1515 inst scdr -nt "desc 1,2 mod 6bit"
1516 -mf1 idb ar reg rl 6
1517 -mf2 idb ar reg
1518 /* desc3 is direct */;
1519
1520 desc 1 -ta 6 /* six bit char */;
1521
1522 data 1 202122232425;
1523
1524 data 2 2425;
1525
1526 data 3 000 000 000 000;
1527
1528 page -all;
1529
1530
1531 /* scdr16
1532
1533 * same data but first string offseet by
1534 * 3 char. full indirect mod on desc.
1535 *
1536 */
1537
1538
1539 inst scdr -io 2 -nt "mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
1540 -mf1 idb ar reg
1541 -mf2 idb ar reg
1542 -mf3 ar reg;
1543
1544 desc 1 -ns 6 -ta 6;
1545
1546
1547 data 1 -do -2 212223 242526;
1548
1549 data 2 2425;
1550
1551 data 3 000 000 000 001;
1552
1553 page -all;
1554
1555
1556
1557 /* scdr17
1558
1559 *this test offsets the second data string.
1560 *
1561 */
1562
1563 inst scdr -io 1 -nt "full desc mod d2 offset 6b"
1564
1565 -mf1 idb ar reg rl 6
1566 -mf2 ar reg
1567 -mf3 reg
1568 /* note the variety of indirection */;
1569
1570 desc 1 -ta 6;
1571
1572 data 1 212223242526;
1573
1574 data 2 -do -2 242500;
1575
1576 data 3 000 000 000 001;
1577
1578 page -all;
1579
1580
1581
1582 /* scdr18
1583
1584 * this test specifically exercises the -cn option
1585 * along with multiple indirection.
1586 *
1587 */
1588
1589 inst scdr -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1590 -mf1 idb ar reg rl 6
1591 -mf2 idb ar reg
1592 -mf3 ar reg;
1593
1594
1595 desc 1 -ta 6 -cn 3;
1596
1597 desc 2 -cn 3;
1598
1599 data 1 -do -4 000000202122 232425000000;
1600
1601 data 2 -do -2 000000 212200;
1602
1603 data 3 000 000 000 003;
1604
1605 page -all;
1606
1607
1608
1609 /* scdr19
1610
1611 * data 1 covers three pages. match
1612 * is on the last pair of characters.
1613 *
1614 */
1615
1616 inst scdr -nt "no off d1 spans 3pp 6b"
1617 -mf1 idb ar reg rl 7680
1618 -mf2 idb ar reg
1619 -mf3 ar reg;
1620
1621 desc 1 -ta 6;
1622
1623
1624 data 1 -do -1281087 202124252627 202122242223;
1625
1626 data 2 2223;
1627
1628 data 3 000000002200 000;
1629
1630 page -all;
1631
1632
1633
1634 /* scdr20
1635
1636 *the final series of tests are with 4 bit data
1637 * this is just a simple test of two char per string
1638 * crossing no page pound.
1639 *
1640 */
1641
1642 inst scdr -nt "d1.2 2 char 4bit"
1643 -mf1 idb ar reg
1644 -mf2 idb ar reg
1645 /* mf3 is direct */;
1646
1647 desc 1 -ta 4 -ns 2;
1648
1649 data 1 232 000 000 000 /* "1001" "1010" */;
1650
1651 data 2 232 000 000 000;
1652
1653 data 3 000 000 000 000;
1654
1655 page -all;
1656
1657
1658 /* scdr21
1659
1660 * split the second string across page bound.
1661 * test -cn option for data 2.
1662 *
1663 */
1664
1665 inst scdr -io 2 -nt "cn,offset for d2 4bit"
1666 -mf1 idb ar reg rl 2
1667 -mf2 idb ar reg
1668 -mf3 ar reg;
1669
1670
1671 desc 1 -ta 4;
1672
1673 desc 2 -cn 1;
1674
1675 data 1 232 000 000 000;
1676
1677
1678 data 2 -do -1 011 240 /* "1001" "1010" */;
1679
1680 data 3 000 000 000 000;
1681
1682 page -all;
1683
1684
1685 /* scdr22
1686
1687 * this test splits both strings and tests
1688 * the cn option for both strings
1689 *
1690 */
1691
1692 inst scdr -io 2 -nt "d1,2 offset 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1693 -mf1 idb ar reg
1694 -mf2 idb ar reg
1695 -mf3 ar reg;
1696
1697 desc 1 -ta 4 -ns 2 -cn 2;
1698
1699 desc 2 -cn 1;
1700
1701 data 1 -do -2 000 232 000;
1702
1703 data 2 -do -1 011 24;
1704
1705 data 3 000 000 000 000;
1706
1707 page -all;
1708
1709
1710
1711 /* scdr23
1712
1713 * this test will force data to cover all
1714 * three pages with the first data string.
1715 *
1716
1717 */
1718
1719 inst scdr -io 3 -nt "d1 covers 3 pp 4bit"
1720 -mf1 ar rl 10240
1721 -mf2 reg
1722 -mf3 ar;
1723
1724 desc 1 -ta 4 ;
1725
1726 data 1 -do -128 4350 232 236;
1727
1728 data 2 236;
1729
1730 data 3 000 000 003 002;
1731
1732 page -all;
1733
1734
1735 ^L
1736
1737
1738 /* mlr1
1739 *
1740 * Just a simple test. Move one 9 bit character to another. */
1741
1742 inst mlr -nt "Move 1 9 bit char";
1743
1744 desc 1 -ns 1; data 1 "a";
1745
1746 desc 2 -ns 1; data 2 "a";
1747
1748 page -all;
1749 /* mlr2
1750 *
1751 * Move two characters that cross a page boundary. Note, we need AR
1752 * modification in order to set a data offset that is not a multiple
1753 * of the word size. By doing this we will move the data fields to
1754 * segments etd1 and etd2.
1755 */
1756
1757 inst mlr -nt "2 chars X page bound"
1758 -mf1 ar
1759 -mf2 ar;
1760
1761 desc 1 -ns 2; desc 2 -ns 2;
1762
1763 data 1 "ab" -do -1;
1764
1765 data 2 "ab" -do -1;
1766
1767 page -all;
1768 /* mlr3
1769 *
1770 * This test will move 20 characters. The characters will start in the middle
1771 * of a word. The last two characters moved will cross a page boundary.
1772 * The instruction word will be moved so that its descriptors cross a
1773 * page boundary.
1774 */
1775
1776 inst mlr -nt "20 char X page bound -io 1" -io 1;
1777
1778 desc 1 -cn 2 /* Effective address will point to a word boundary.
1779 * We will start the string at character 2. Note, when
1780 * we set up the data we have to enter the two characters
1781 * that we are not using. */
1782 -ns 20;
1783
1784 desc 2 -cn 2 -ns 20;
1785
1786 data 1 -do -20 " " 5 "abcd" ;
1787
1788 data 2 -do -20 000000 5 "abcd" ; /* Skipped data in a result field
1789 * must be zeros since this is what
1790 * et initializes the test area
1791 * to be. */
1792
1793 page -all;
1794 /* mlr4
1795 *
1796 * This test is the same as mlr3 except that the descriptors will be
1797 * referenced via indirect words. These indirect words will use no
1798 * modification so the descriptors and the data will still be in
1799 * segment etx. Also we will move the instruction word back
1800 * so that the second descriptor is on the 2nd page.
1801 */
1802
1803 inst mlr -nt "Same as prev - ind desc" -io 2
1804 -mf1 id -mf2 id;
1805
1806 desc 1 -ns 20 -cn 2; /* Note the order of the terms. */
1807
1808 desc 2 -cn 2 -ns 20;
1809
1810 data 1 -do -20 " " 5 "abcd" ;
1811
1812 data 2 -do -20 000 000 5 "abcd" ;
1813
1814 page -all;
1815 /* mlr5
1816 *
1817 /* This test is the same as mlr4 except that the indirect words will
1818 * use index register modification.
1819 */
1820
1821 inst mlr -nt "Same as prev - use indexes" -io 2
1822 -mf2 idr -mf1 idr; /* Note order of mf terms. */
1823
1824 desc 1 -cn 2 -ns 20;
1825
1826 desc 2 -cn 2 -ns 20;
1827
1828 data 1 -do -20 " " 5 "abcd" ;
1829
1830 data 2 -do -20 000 000 5 "abcd" ;
1831
1832 page -all;
1833 /* mlr6
1834 *
1835 /* This test is the same as mlr4 except that the indirect words will
1836 * use AR modification. This will force ET to place the descriptors and
1837 * the data fields in segments eti1 and eti2.
1838 */
1839
1840 inst mlr -nt "Ind with AR mod" -io 2
1841 -mf2 ida -mf1 ida;
1842
1843 desc 1 -cn 2 -ns 20;
1844
1845 desc 2 -cn 2 -ns 20;
1846
1847 data 1 -do -20 " " 5 "abcd" ;
1848
1849 data 2 -do -20 000 000 5 "abcd" ;
1850
1851 page -all;
1852 /* mlr7
1853 *
1854 * This test is the same as the test mlr3 except that the descriptors
1855 * will use REG and RL modification.
1856 */
1857
1858 inst mlr -nt "Ind with REG 7. RL mod" -io 1
1859 -mf2 reg rl 20
1860 -mf1 rl 20 reg;
1861
1862 desc 1 -cn 2;
1863
1864 desc 2 -cn 2;
1865
1866 data 1 -do -20 " " 5 "abcd" ;
1867
1868 data 2 -do -20 000 000 5 "abcd" ;
1869
1870 page -all;
1871
1872 /* mlr8
1873 *
1874 * This test is the same as the test mlr3 except that the descriptors
1875 * will use AR, REG and RL modification.
1876 */
1877
1878 inst mlr -nt "Desc use AR,REG,& RL mod" -io 1
1879 -mf1 reg ar rl 20
1880 -mf2 rl 20 ar reg;
1881
1882 desc 1 -cn 2;
1883
1884 desc 2 -cn 2;
1885
1886 data 1 -do -20 " " 5 "abcd" ;
1887
1888 data 2 -do -20 000 000 5 "abcd" ;
1889
1890 page -all;
1891
1892 /* mlr9
1893 *
1894 * This test is the same as the test mlr3 except that the descriptors
1895 * will use AR, REG and RL modification AND we will use indirect descriptors.
1896 * We will not have any modification in the indirect words so the descriptors
1897 * will still be in segment etx.
1898 */
1899
1900 inst mlr -nt "Same as prev - use ind" -io 1
1901 -mf1 rl 20
1902 ar /* This puts the data in etd1. */
1903 reg /* Use index register 1.. */
1904 id /* This adds indirect descriptors. */
1905
1906 -mf2 id
1907 rl 20
1908 reg
1909 ar;
1910
1911 desc 1 -cn 2;
1912
1913 desc 2 -cn 2;
1914
1915 data 1 -do -20 " " 5 "abcd" ;
1916
1917 data 2 -do -20 000 000 5 "abcd" ;
1918
1919 page -all;
1920
1921 /* mlr10
1922 *
1923 * This test is the same as the test mlr3 except that the descriptors
1924 * will use AR, REG and RL modification AND we will use indirect descriptors.
1925 * The indirect words will use both reg and ar modification.
1926 */
1927
1928 inst mlr -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1
1929 -mf1 rl 20
1930 ar /* This puts the data in etd1. */
1931 reg /* Use index register 1.. */
1932 idb /* This adds indirect descriptors. Descriptors will go in
1933 * segments eti1 and eti2. */
1934
1935 -mf2 idb
1936 rl 20
1937 reg
1938 ar;
1939
1940 desc 1 -cn 2;
1941
1942 desc 2 -cn 2;
1943
1944 data 1 -do -20 " " 5 "abcd" ;
1945
1946 data 2 -do -20 000 000 5 "abcd" ;
1947
1948 page -all;
1949
1950 /* mlr11
1951 *
1952 * This test will move 6 6 bit characters. Both strings will have 3 characters
1953 * on each side of the page boundary. The descriptor 2 data will be offset 4
1954 * 9 bit characters but will specify a "cn" field of 3 so the effective starting
1955 * address will be the same as descriptor 1. All possible modification will be
1956 * used. Descriptor 1 will also use RL modification.
1957 */
1958
1959 inst mlr -nt "6 bit chars X pg bound"
1960
1961 -mf1 rl 6 idb ar reg
1962
1963 -mf2 reg ar idb;
1964
1965
1966 desc 1 -ta 6;
1967
1968 desc 2 -cn 3 -ta 6 -ns 6;
1969
1970
1971 data 1 -do -2 212223242526;
1972
1973 data 2 -do -4
1974 2 000 /* We must fill in the unused 3 six bit characters. */
1975 212223242526; /* The actual data result field. */
1976
1977
1978 page -all;
1979
1980 /* mlr12
1981 *
1982 * This test will move 3 4 bit characters. Below is a description of what is
1983 * going on. EA is the effective address of the descriptor.
1984 *
1985 * string 1 EA 1 | 2 3
1986 * ---------------------------------------------------
1987 * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7
1988 * ---------------------------------------------------
1989 * string 2 EA 1 2 | 3
1990 *
1991 * All possible modification will be used. Descriptor 2 will use RL mod.
1992 */
1993
1994 inst mlr -nt "4 bit chars"
1995
1996 -mf1 idb ar reg
1997
1998 -mf2 reg ar idb rl 3;
1999
2000
2001 desc 1 -ta 4 -cn 1 -ns 3;
2002
2003 desc 2 -cn 6 -ta 4;
2004
2005
2006 data 1 011 253 -do -1;
2007
2008 data 2 -do -4 000000000 232 26;
2009
2010
2011 page -all;
2012
2013 /* mlr13
2014 *
2015 * This test will move 6 9 bit characters into 6 6 bit characters.
2016 * Both strings will be split in the middle across a page boundary.
2017 */
2018
2019 inst mlr -nt "9 bit chars into 6 bit chars"
2020 -mf1 ar reg idr
2021 -mf2 reg ar idb;
2022
2023 data 1 -do -3 " te" "st ";
2024
2025 data 2 -do -2 406445 636440;
2026
2027
2028 desc 1 -ns 6;
2029
2030 desc 2 -ns 6 -ta 6;
2031
2032
2033 page -all;
2034
2035 /* mlr14
2036 *
2037 * This test will test the fill character function.
2038 * Also the truncation bit will be turned ON but we will specify that
2039 * we do not expect a truncation fault.
2040 */
2041
2042 inst mlr -nt "Use fill char" -io 3
2043
2044 -fc* -tbn
2045
2046 -mf1 idr ar rl 4
2047 -mf2 ida reg rl 8;
2048
2049 /* No desc statements are needed because all the defaults are correct. */
2050
2051 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2052
2053 data 2 "abcd" "****"
2054 -do -4; /* The fill characters go on a different page. */
2055
2056
2057 page -all;
2058
2059 /* mlr15
2060 *
2061 * This is the same test as mlr14 except the fill characters will start on
2062 * one page and end on the next page.
2063 * we do not expect a truncation fault.
2064 */
2065
2066 inst mlr -nt "Fill X pg bound" -io 1
2067
2068 -fc* -tbn
2069
2070 -mf1 idr ar rl 4
2071 -mf2 ida reg ar rl 8;
2072
2073 /* No desc statements are needed because all the defaults are correct. */
2074
2075 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2076
2077 data 2 "abcd**" "**"
2078 -do -6; /* The fill characters are split across a page boundary. */
2079
2080
2081 page -all;
2082
2083 /* mlr16
2084 *
2085 * This test is designed to test truncation. We will expect the truncation
2086 * indicator to be ON. The truncation bit will be left OFF and so we will not
2087 * expect a truncation fault.
2088 */
2089
2090
2091 inst mlr -nt "Trunc Ind ON"
2092 -mf2 ar -io 2 -ir tn;
2093
2094 desc 1 -ns 8; desc 2 -ns 4;
2095
2096
2097 data 1 -do -4 "abcd" "1234";
2098
2099 data 2 -do -2 "abcd";
2100
2101
2102 page -all;
2103
2104 /* mlr17
2105 *
2106 * This test is designed to test truncation. We will expect the truncation
2107 * indicator to be ON. This test is the same as mlr16 except that the
2108 * truncation bit in the instruction word will be set ON. This should
2109 * cause a truncation fault. We should be ready for it.
2110 */
2111
2112
2113 inst mlr -nt "Take trunc fault" -tby
2114 -mf2 ar -io 2 -ir tn;
2115
2116 desc 1 -ns 8; desc 2 -ns 4;
2117
2118
2119 data 1 -do -4 "abcd" "1234";
2120
2121 data 2 -do -2 "abcd";
2122
2123
2124 page -all;
2125
2126 /* mlr18
2127 *
2128 * This test will try to move over a page of data. We will move 1088 words
2129 * containing the characters "cisl".
2130 */
2131
2132
2133 inst mlr -nt "Move over 1 page" -io 1
2134 -mf1 rl 4352 idb ar reg
2135 -mf2 rl 4352 idbar reg;
2136
2137 data 1 -do -128 1088 "cisl";
2138
2139 data 2 -do -128 1088 "cisl";
2140
2141 page -all;
2142
2143
2144 ^L
2145
2146
2147 /* mrl1
2148 *
2149 * Just a simple test. Move one 9 bit character to another. */
2150
2151 inst mrl -nt "Move 1 9 bit char";
2152
2153 desc 1 -ns 1; data 1 "a";
2154
2155 desc 2 -ns 1; data 2 "a";
2156
2157 page -all;
2158
2159 /* mrl2
2160 *
2161 * Move two characters that cross a page boundary. Note, we need AR
2162 * modification in order to set a data offset that is not a multiple
2163 * of the word size. By doing this we will move the data fields to
2164 * segments etd1 and etd2.
2165 */
2166
2167 inst mrl -nt "2 chars X page bound"
2168 -mf1 ar
2169 -mf2 ar;
2170
2171 desc 1 -ns 2; desc 2 -ns 2;
2172
2173 data 1 "ab" -do -1;
2174
2175 data 2 "ab" -do -1;
2176
2177 page -all;
2178
2179 /* mrl3
2180 *
2181 * This test will move 20 characters. The characters will start in the middle
2182 * of a word. The last two characters moved will cross a page boundary.
2183 * The instruction word will be moved so that its descriptors cross a
2184 * page boundary.
2185 */
2186
2187 inst mrl -nt "20 char X page bound -io 1" -io 1;
2188
2189 desc 1 -cn 2 /* Effective address will point to a word boundary.
2190 * We will start the string at character 2. Note, when
2191 * we set up the data we have to enter the two characters
2192 * that we are not using. */
2193 -ns 20;
2194
2195 desc 2 -cn 2 -ns 20;
2196
2197 data 1 -do -20 " " 5 "abcd" ;
2198
2199 data 2 -do -20 000000 5 "abcd" ; /* Skipped data in a result field
2200 * must be zeros since this is what
2201 * et initializes the test area
2202 * to be. */
2203
2204 page -all;
2205
2206 /* mrl4
2207 *
2208 * This test is the same as mrl3 except that the descriptors will be
2209 * referenced via indirect words. These indirect words will use no
2210 * modification so the descriptors and the data will still be in
2211 * segment etx. Also we will move the instruction word back
2212 * so that the second descriptor is on the 2nd page.
2213 */
2214
2215 inst mrl -nt "Same as prev - ind desc" -io 2
2216 -mf1 id -mf2 id;
2217
2218 desc 1 -ns 20 -cn 2; /* Note the order of the terms. */
2219
2220 desc 2 -cn 2 -ns 20;
2221
2222 data 1 -do -20 " " 5 "abcd" ;
2223
2224 data 2 -do -20 000 000 5 "abcd" ;
2225
2226 page -all;
2227
2228 /* mrl5
2229 *
2230 /* This test is the same as mrl4 except that the indirect words will
2231 * use index register modification.
2232 */
2233
2234 inst mrl -nt "Same as prev - use indexes" -io 2
2235 -mf2 idr -mf1 idr; /* Note order of mf terms. */
2236
2237 desc 1 -cn 2 -ns 20;
2238
2239 desc 2 -cn 2 -ns 20;
2240
2241 data 1 -do -20 " " 5 "abcd" ;
2242
2243 data 2 -do -20 000 000 5 "abcd" ;
2244
2245 page -all;
2246
2247 /* mrl6
2248 *
2249 /* This test is the same as mrl4 except that the indirect words will
2250 * use AR modification. This will force ET to place the descriptors and
2251 * the data fields in segments eti1 and eti2.
2252 */
2253
2254 inst mrl -nt "Ind with AR mod" -io 2
2255 -mf2 ida -mf1 ida;
2256
2257 desc 1 -cn 2 -ns 20;
2258
2259 desc 2 -cn 2 -ns 20;
2260
2261 data 1 -do -20 " " 5 "abcd" ;
2262
2263 data 2 -do -20 000 000 5 "abcd" ;
2264
2265 page -all;
2266
2267 /* mrl7
2268 *
2269 * This test is the same as the test mrl3 except that the descriptors
2270 * will use REG and RL modification.
2271 */
2272
2273 inst mrl -nt "Ind with REG 7. RL mod" -io 1
2274 -mf2 reg rl 20
2275 -mf1 rl 20 reg;
2276
2277 desc 1 -cn 2;
2278
2279 desc 2 -cn 2;
2280
2281 data 1 -do -20 " " 5 "abcd" ;
2282
2283 data 2 -do -20 000 000 5 "abcd" ;
2284
2285 page -all;
2286
2287 /* mrl8
2288 *
2289 * This test is the same as the test mrl3 except that the descriptors
2290 * will use AR, REG and RL modification.
2291 */
2292
2293 inst mrl -nt "Desc use AR,REG,& RL mod" -io 1
2294 -mf1 reg ar rl 20
2295 -mf2 rl 20 ar reg;
2296
2297 desc 1 -cn 2;
2298
2299 desc 2 -cn 2;
2300
2301 data 1 -do -20 " " 5 "abcd" ;
2302
2303 data 2 -do -20 000 000 5 "abcd" ;
2304
2305 page -all;
2306
2307 /* mrl9
2308 *
2309 * This test is the same as the test mrl3 except that the descriptors
2310 * will use AR, REG and RL modification AND we will use indirect descriptors.
2311 * We will not have any modification in the indirect words so the descriptors
2312 * will still be in segment etx.
2313 */
2314
2315 inst mrl -nt "Same as prev - use ind" -io 1
2316 -mf1 rl 20
2317 ar /* This puts the data in etd1. */
2318 reg /* Use index register 1.. */
2319 id /* This adds indirect descriptors. */
2320
2321 -mf2 id
2322 rl 20
2323 reg
2324 ar;
2325
2326 desc 1 -cn 2;
2327
2328 desc 2 -cn 2;
2329
2330 data 1 -do -20 " " 5 "abcd" ;
2331
2332 data 2 -do -20 000 000 5 "abcd" ;
2333
2334 page -all;
2335
2336 /* mrl10
2337 *
2338 * This test is the same as the test mrl3 except that the descriptors
2339 * will use AR, REG and RL modification AND we will use indirect descriptors.
2340 * The indirect words will use both reg and ar modification.
2341 */
2342
2343 inst mrl -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1
2344 -mf1 rl 20
2345 ar /* This puts the data in etd1. */
2346 reg /* Use index register 1.. */
2347 idb /* This adds indirect descriptors. Descriptors will go in
2348 * segments eti1 and eti2. */
2349
2350 -mf2 idb
2351 rl 20
2352 reg
2353 ar;
2354
2355 desc 1 -cn 2;
2356
2357 desc 2 -cn 2;
2358
2359 data 1 -do -20 " " 5 "abcd" ;
2360
2361 data 2 -do -20 000 000 5 "abcd" ;
2362
2363 page -all;
2364
2365 /* mrl11
2366 *
2367 * This test will move 6 6 bit characters. Both strings will have 3 characters
2368 * on each side of the page boundary. The descriptor 2 data will be offset 4
2369 * 9 bit characters but will specify a "cn" field of 3 so the effective starting
2370 * address will be the same as descriptor 1. All possible modification will be
2371 * used. Descriptor 1 will also use RL modification.
2372 */
2373
2374 inst mrl -nt "6 bit chars X pg bound"
2375
2376 -mf1 rl 6 idb ar reg
2377
2378 -mf2 reg ar idb;
2379
2380
2381 desc 1 -ta 6;
2382
2383 desc 2 -cn 3 -ta 6 -ns 6;
2384
2385
2386 data 1 -do -2 212223242526;
2387
2388 data 2 -do -4
2389 2 000 /* We must fill in the unused 3 six bit characters. */
2390 212223242526; /* The actual data result field. */
2391
2392
2393 page -all;
2394
2395 /* mrl12
2396 *
2397 * This test will move 3 4 bit characters. Below is a description of what is
2398 * going on. EA is the effective address of the descriptor.
2399 *
2400 * string 1 EA 1 | 2 3
2401 * ---------------------------------------------------
2402 * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7
2403 * ---------------------------------------------------
2404 * string 2 EA 1 2 | 3
2405 *
2406 * All possible modification will be used. Descriptor 2 will use RL mod.
2407 */
2408
2409 inst mrl -nt "4 bit chars"
2410
2411 -mf1 idb ar reg
2412
2413 -mf2 reg ar idb rl 3;
2414
2415
2416 desc 1 -ta 4 -cn 1 -ns 3;
2417
2418 desc 2 -cn 6 -ta 4;
2419
2420
2421 data 1 011 253 -do -1;
2422
2423 data 2 -do -4 000000000 232 26;
2424
2425
2426 page -all;
2427
2428 /* mrl13
2429 *
2430 * This test will move 6 9 bit characters into 6 6 bit characters.
2431 * Both strings will be split in the middle across a page boundary.
2432 */
2433
2434 inst mrl -nt "9 bit chars into 6 bit chars"
2435 -mf1 ar reg idr
2436 -mf2 reg ar idb;
2437
2438 data 1 -do -3 " te" "st ";
2439
2440 data 2 -do -2 406445 636440;
2441
2442
2443 desc 1 -ns 6;
2444
2445 desc 2 -ns 6 -ta 6;
2446
2447
2448 page -all;
2449
2450 /* mrl14
2451 *
2452 * This test will test the fill character function.
2453 * Also the truncation bit will be turned ON but we will specify that
2454 * we do not expect a truncation fault.
2455 */
2456
2457 inst mrl -nt "Use fill char" -io 3
2458
2459 -fc* -tbn
2460
2461 -mf1 idr ar rl 4
2462 -mf2 ida reg rl 8;
2463
2464 /* No desc statements are needed because all the defaults are correct. */
2465
2466 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2467
2468 data 2 "****" "abcd"
2469 -do -4; /* The fill characters go on a different page. */
2470
2471
2472 page -all;
2473
2474 /* mrl15
2475 *
2476 * This is the same test as mrl14 except the fill characters will start on
2477 * one page and end on the next page.
2478 * we do not expect a truncation fault.
2479 */
2480
2481 inst mrl -nt "Fill X pg bound" -io 1
2482
2483 -fc* -tbn
2484
2485 -mf1 idr ar rl 4
2486 -mf2 ida reg ar rl 8;
2487
2488 /* No desc statements are needed because all the defaults are correct. */
2489
2490 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2491
2492 data 2 "**" "**abcd"
2493 -do -2; /* The fill characters are split across a page boundary. */
2494
2495
2496 page -all;
2497
2498 /* mrl16
2499 *
2500 * This test is designed to test truncation. We will expect the truncation
2501 * indicator to be ON. The truncation bit will be left OFF and so we will not
2502 * expect a truncation fault.
2503 */
2504
2505
2506 inst mrl -nt "Trunc Ind ON"
2507 -mf2 ar -io 2 -ir tn;
2508
2509 desc 1 -ns 8; desc 2 -ns 4;
2510
2511
2512 data 1 -do -4 "abcd" "1234";
2513
2514 data 2 -do -2 "1234";
2515
2516
2517 page -all;
2518
2519 /* mrl17
2520 *
2521 * This test is designed to test truncation. We will expect the truncation
2522 * indicator to be ON. This test is the same as mrl16 except that the
2523 * truncation bit in the instruction word will be set ON. This should
2524 * cause a truncation fault. We should be ready for it.
2525 */
2526
2527
2528 inst mrl -nt "Take trunc fault" -tby
2529 -mf2 ar -io 2 -ir tn;
2530
2531 desc 1 -ns 8; desc 2 -ns 4;
2532
2533
2534 data 1 -do -4 "abcd" "1234";
2535
2536 data 2 -do -2 "1234";
2537
2538
2539 page -all;
2540
2541 /* mrl18
2542 *
2543 * This test will try to move over a page of data. We will move 1088 words
2544 * containing the characters "cisl".
2545 */
2546
2547
2548 inst mrl -nt "Move over 1 page" -io 1
2549 -mf1 rl 4352 idb ar reg
2550 -mf2 rl 4352 idbar reg;
2551
2552 data 1 -do -128 1088 "cisl";
2553
2554 data 2 -do -128 1088 "cisl";
2555
2556 page -all;
2557
2558
2559 ^L
2560
2561
2562 /* mvt 1
2563 *
2564 * Just a simple test. Table is "0123". result = "01233210".
2565 */
2566
2567 inst mvt -nt "Simple test with 9 bit chars";
2568
2569 desc 1 -ns 8;
2570 desc 2 -ns 8;
2571
2572 data 1 000 001 002 003 003 002 001 000; /* 9 bit characters used as indexes. */
2573
2574 data 2 "01233210";
2575
2576 data 3 "0123";
2577
2578
2579 page -all;
2580 /* mvt 2
2581 *
2582 * Same test as mvt 1 except that the data fields have been move across
2583 * a page boundary.
2584 */
2585
2586 inst mvt -nt "Same as prev - fields X pg bound" -io 1;
2587
2588 desc 1 -ns 8;
2589 desc 2 -ns 8;
2590
2591 data 1 -do -4 000 001 002 003 003 002 001 000;
2592
2593 data 2 -do -4 "0123" "3210";
2594
2595 data 3 "0123";
2596
2597
2598 page -all;
2599 /* mvt 3
2600 *
2601 * Same test as mvt 2 except we will add a lot of modification and adjust
2602 * that data fields so that they do not begin on WORD boundaries.
2603 */
2604
2605 inst mvt -nt "Same as prev - with mod" -io 3
2606 -mf1 rl 8 ar reg idb
2607 -mf2 rl 8 ar reg idb
2608 -mf3 ar reg;
2609
2610 /* No desc statements needed since rl mod specified and other defaults OK. */
2611
2612 data 1 -do -2 000 001 002 003 003 002 001 000;
2613
2614 data 2 -do -2 "01" "233210";
2615
2616 data 3 "0123";
2617
2618
2619 page -all;
2620 /* mvt 4
2621 *
2622 * This test will use a fill character. The table will have 110 characters
2623 * but we should only reference 5 of them.
2624 */
2625
2626 inst mvt -nt "Use fill characters"
2627 -io 1
2628 -fce /* Fill character is "e" = 145 octal. */
2629 -mf1 ar
2630 -mf2 ar
2631 -mf3 ar;
2632
2633 desc 1 -ns 3;
2634
2635 desc 2 -ns 8; /* L2 > L1 => use of fill character. */
2636
2637 /* There are no legal fields we can specify with a desc 3 statement
2638 * for this instruction.
2639 */
2640
2641
2642 data 1 -do -1 "c" "ba";
2643
2644 data 2 -do -5 "32155" "555";
2645
2646 data 3 -do -100
2647 97 "*" /* These characters in table never used. */
2648 "123" "45"
2649 9 "*";
2650
2651
2652 page -all;
2653
2654 /* mvt 5
2655 *
2656 * Test page faults when first character of desc 1 and 2 are
2657 * at the end of a page.
2658 */
2659
2660 inst mvt -nt"check special page fault 1"
2661 -io 1;
2662
2663 desc 1 -ns 9 -cn 3 ;
2664 desc 2 -ns 9 -cn 3 ;
2665
2666 data 1 -do -4 " " 000 001 002 003 002 000 004 005 003 ;
2667 data 2 -do -4 000 000 000 "character" ;
2668 data 3 "charted" ;
2669
2670 page -all ;
2671
2672
2673 /* mvt 6
2674 *
2675 * Test page faults when last character of desc 1 and 2 are on a new page.
2676 *
2677 */
2678
2679 inst mvt -nt "check special page fault 2"
2680 -io 1 ;
2681
2682 desc 1 -ns 9 ;
2683
2684 desc 2 -ns 9 ;
2685
2686 data 1 -do -8 000 001 002 003 002 000 004 005 003 ;
2687
2688 data 2 -do -8 "character" ;
2689
2690 data 3 "charte" ;
2691
2692 page -all ;
2693
2694
2695 /* mvt 7
2696 *
2697 * Test direct data movement for data 1 and 2 .
2698 * Also test moving data across 3 pages. To move more than
2699 * 4096 characters of data register length modification must be used.
2700 */
2701
2702 inst mvt -nt "dir desc. 3 page move; FCOs PHAFPG179 & 181 required on L68 CPU"
2703 -mf1 rl 4112
2704 -mf2 rl 4112 ;
2705
2706 desc 1 -cn 1 ;
2707
2708 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2709
2710 data 2 -do -4 257 "abcdefghijklmnop" ;
2711
2712 data 3 "abcdefghijklmnop" ;
2713
2714 page -all ;
2715
2716 /* mvt 8
2717 *
2718 * Test address register usage for data 1 and 2. Also test moving data across
2719 * 3 pages. All descriptors are direct.
2720 * Also use register length modification.
2721 */
2722
2723 inst mvt -nt "tst ar1&ar2. 3 pg move;FCOs PHAFPG179 & 181 required on L68 CPU"
2724 -io 2
2725 -mf1 ar rl 4112
2726 -mf2 ar rl 4112 ;
2727
2728 desc 1 -cn 1 ;
2729
2730
2731 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2732
2733 data 2 -do -4 257 "abcdefghijklmnop" ;
2734
2735 data 3 "abcdefghijklmnop" ;
2736
2737 page -all ;
2738
2739
2740 /* mvt 9
2741 * Test ar, reg, and register length modification for data 1 and 2.
2742 * Also test data movement of three pages.
2743 */
2744
2745 inst mvt -nt "tst ar,rg,rl. 3 pg mv; FCOs PHAFPG179 & 181 required on L68 CPU"
2746 -io 2
2747 -mf1 ar reg rl 4112
2748 -mf2 ar reg rl 4112 ;
2749
2750 desc 1 -cn 1 ;
2751
2752 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2753
2754 data 2 -do -4 257 "abcdefghijklmnop" ;
2755
2756 data 3 "abcdefghijklmnop" ;
2757
2758 page -all ;
2759
2760
2761 /* mvt 10
2762 *
2763 * Test indirect referencing of descriptors 1 and 2.
2764 * Test register length modification and move data from 3 pages.
2765 */
2766
2767 inst mvt -nt "tst ind descs; FCOs PHAFPG179 & 181 required on L68 CPU"
2768 -io 1
2769 -mf1 id rl 4112
2770 -mf2 id rl 4112 ;
2771
2772 desc 1 -cn 1 ;
2773
2774 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2775
2776 data 2 -do -4 257 "abcdefghijklmnop" ;
2777
2778 data 3 "abcdefghijklmnop" ;
2779
2780 page -all ;
2781
2782 /* mvt 11
2783 *
2784 * Test indirect referencing of descriptors 1 and 2 with ar modification
2785 * of the indirect word. Also data is moved from 3 pages.
2786 */
2787
2788 inst mvt -nt "tst ida. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2789 -io 2
2790 -mf1 ida rl 4112
2791 -mf2 ida rl 4112 ;
2792
2793 desc 1 -cn 1 ;
2794
2795 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2796
2797 data 2 -do -4 257 "abcdefghijklmnop" ;
2798
2799 data 3 "abcdefghijklmnop" ;
2800
2801 page -all ;
2802
2803
2804 /* mvt 12
2805 *
2806 * Test indirect referencing of descriptors 1 and 2 with reg modification
2807 * of the indirect word. Also data is moved from 3 pages.
2808 */
2809
2810 inst mvt -nt "tst idr, 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2811 -io 1
2812 -mf1 idr rl 4112
2813 -mf2 idr rl 4112 ;
2814
2815 desc 1 -cn 1 ;
2816
2817 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2818
2819 data 2 -do -4 257 "abcdefghijklmnop" ;
2820
2821 data 3 "abcdefghijklmnop" ;
2822
2823 page -all ;
2824
2825
2826 /* mvt 13
2827 *
2828 * Test indirect referencing of descriptors 1 and 2 with both
2829 * ar and reg modification of the indirect word. Also data is
2830 * moved from three pages.
2831 */
2832
2833 inst mvt -nt "tst idb. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2834 -io 2
2835 -mf1 idb rl 4112
2836 -mf2 idb rl 4112 ;
2837
2838 desc 1 -cn 1 ;
2839
2840 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2841
2842 data 2 -do -4 257 "abcdefghijklmnop" ;
2843
2844 data 3 "abcdefghijklmnop" ;
2845
2846 page -all ;
2847
2848
2849 /* mvt 14
2850 *
2851 * Test indirect referencing of of descriptors 1 and 2 with
2852 * ar, reg, and reg length modification of the descriptors.
2853 * Data is moved from 3 pages.
2854 */
2855
2856 inst mvt -nt "tst ar,reg,rl,id.; FCOs PHAFPG179 & 181 required on L68 CPU"
2857 -mf1 id ar reg rl 4112
2858 -mf2 id ar reg rl 4112 ;
2859
2860 desc 1 -cn 1 ;
2861
2862 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2863
2864 data 2 -do -4 257 "abcdefghijklmnop" ;
2865
2866 data 3 "abcdefghijklmnop" ;
2867
2868 page -all ;
2869
2870
2871 /* mvt 15
2872 *
2873 * Test indirect referencing of descriptors 1 and 2 with ar
2874 * and reg modification of the indirect word. Also ar, reg,
2875 * and register length modification is applied to the
2876 * descriptors. Three pages of data is moved.
2877 */
2878
2879 inst mvt -nt "tst ar,reg,rl,idb; FCOs PHAFPG179 & 181 required on L68 CPU"
2880 -io 2
2881 -mf1 idb ar reg rl 4112
2882 -mf2 idb ar reg rl 4112 ;
2883
2884 desc 1 -cn 1 ;
2885
2886 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2887
2888 data 2 -do -4 257 "abcdefghijklmnop" ;
2889
2890 data 3 "abcdefghijklmnop" ;
2891
2892 page -all ;
2893
2894
2895
2896 /* mvt 16
2897 *
2898 * Test translation of 9 bit to 6 bit characters. Only direct descriptors
2899 * with no modification are used. All forms of modification and
2900 * indirection have been tested in previous tests.
2901 * This test has no truncation.
2902 *
2903 */
2904
2905 inst mvt -nt "9 to 6 bit chars"
2906 -fc ;
2907
2908 desc 1 -ns 50
2909 -cn 2 ;
2910
2911 desc 2 -ns 50
2912 -cn 5
2913 -ta 6 ;
2914
2915 data 1 -do 4068
2916 " " 6 000001002003004005006007010 ;
2917
2918 data 2 -do 20
2919 000000000060 5 616263414243440060 61626341 ;
2920
2921 data 3 "0123abcd" 23 000 020 ;
2922
2923 page -all;
2924
2925
2926 /* mvt 17
2927 *
2928 * Test translation of 9 to 6 `bit characters.
2929 * L1 is less than L2. String 2 is `blank filled.
2930 *
2931 */
2932
2933 inst mvt -nt "9 to 6 bit chars"
2934 -fc ;
2935
2936 desc 1 -ns 28
2937 -cn 2 ;
2938
2939 desc 2 -ns 50
2940 -cn 5
2941 -ta 6 ;
2942
2943 data 1 -do 4068
2944 " " 6 000001002003004005006007010 ;
2945
2946 data 2 -do 20
2947 000000000060 3 616263414243440060 7 202020 20 ;
2948
2949 data 3 "0123abcd" 24 000 020 ;
2950
2951 page -all;
2952
2953
2954
2955
2956 /* mvt 18
2957 *
2958 * Test translation of 9 to 6 bit characters.
2959 * L1 is greater than L2. Truncation fault is not taken.
2960 *
2961 */
2962
2963 inst mvt -nt "truncation but no fault"
2964 -ir tn ;
2965
2966
2967 desc 1 -ns 50
2968 -cn 2 ;
2969
2970 desc 2 -ns 28
2971 -cn 5
2972 -ta 6 ;
2973
2974 data 1 -do 4068
2975 " " 6 000001002003004005006007010 ;
2976
2977 data 2 -do 20
2978 000000000060 3 616263414243440060 ;
2979
2980 data 3 "0123abcd" 24 000 020 ;
2981
2982 page -all;
2983
2984
2985
2986
2987 /* mvt 19
2988 *
2989 * Test translation of 6 bit to 9 bit characters. Only direct
2990 * descriptors with no modification are used.
2991 * This test has no truncation.
2992 *
2993 */
2994
2995 inst mvt -nt "6-9 bit. no truncation"
2996 -fc ;
2997
2998 desc 1 -ns 63
2999 -cn 3
3000 -ta 6 ;
3001
3002 desc 2 -ns 63 ;
3003
3004 data 1 -do -20
3005 000000 7 000102030405060710 ;
3006
3007 data 2 -do -28
3008 7 141142143144060061062063000 ;
3009
3010 data 3 "abcd0123" 24 000 040 ;
3011
3012 page -all;
3013
3014
3015
3016 /* mvt 20
3017 *
3018 * Test translation of 6 bit to 9 bit characters.
3019 * L1 is less than L2. String 2 is blank filled.
3020 *
3021 */
3022
3023 inst mvt -nt "6-9 bit. blank fill"
3024 -fc ;
3025
3026 desc 1 -ns 29
3027 -cn 3
3028 -ta 6 ;
3029
3030 desc 2 -ns 63 ;
3031
3032 data 1 -do -20
3033 000000 7 000102030405060710 ;
3034
3035 data 2 -do -28
3036 3 141142143144060061062063000 141142 34 040 ;
3037
3038 data 3 "abcd0123" 24 000 040 ;
3039
3040 page -all;
3041
3042
3043
3044 /* mvt 21
3045 *
3046 * Test translation of 6 bit to 9 bit characters.
3047 * L1 is greater than L2. Truncation fault is not taken.
3048 *
3049 */
3050
3051 inst mvt -nt "6-9 bit. truncation"
3052 -ir tn
3053 -fc ;
3054
3055 desc 1 -ns 63
3056 -cn 3
3057 -ta 6 ;
3058
3059 desc 2 -ns 29 ;
3060
3061 data 1 -do -20
3062 000000 7 000102030405060710 ;
3063
3064 data 2 -do -28
3065 3 141142143144060061062063000 141142 ;
3066
3067 data 3 "abcd0123" 24 000 040 ;
3068
3069 page -all;
3070
3071
3072
3073 /* mvt 22
3074 *
3075 * Test translation of 4 bit characters. The test is made
3076 * with full descriptor modification. Data is placed across a
3077 * page boundary.
3078 *
3079 */
3080
3081 inst mvt -nt "4 bit char translation"
3082 -io 1
3083 -mf1 idb ar reg rl 16
3084 -mf2 idb ar reg rl 16
3085 -mf3 ar reg ;
3086
3087 desc 1 -ta 4 ;
3088
3089 desc 2 -ta 4 ;
3090
3091 data 1 -do -4 2 002215053176 ;
3092
3093 data 2 -do -4 2 002215053176 ;
3094
3095 data 3 000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 ;
3096
3097 page -all;
3098
3099
3100 ^L
3101
3102
3103 /* mve1
3104 *
3105 * Move 6 9 bit characters with zero -> "*" replacement.
3106 * All the fields including the micro op string will take faults
3107 * and cross a page boundary.
3108 */
3109
3110 inst mve -nt "zero rep, mod, faults" -io 3
3111 -mf1 idb ar reg rl 6
3112 -mf2 idb ar reg rl 2
3113 -mf3 idb ar reg rl 6;
3114
3115 /* No desc statements needed. */
3116
3117 data 1 -do -4 "0010" "23";
3118
3119 data 2 -do -1 124 /* mvza 4 */
3120 322; /* mvc 2 */
3121
3122 data 3 -do -3 "**1" "023";
3123
3124
3125 page -all;
3126 /* mve2
3127
3128 * this test uses a sequence of micro op strings
3129 * that are appropriate for alpha numeric data.
3130 * each string is input to et such that it is
3131 * explained via a comment after each mop.
3132 * this particular mop sequence and the sending string is
3133 * used for all 6 and 9 bit tests with mod done
3134 * on descriptor access and data placement.
3135 *
3136 */
3137
3138 inst mve -nt "9-9 simple test with no mod"
3139 -mf3 rl 31;
3140
3141 desc 1 -ns 27;
3142
3143 desc 2 -ns 26;
3144
3145
3146 data 1 /* arranged according mop use */
3147 "0012"
3148 "0012"
3149 "0012"
3150 "1234"
3151 "4567"
3152 "-123"
3153 "123";
3154
3155 data 2 /* mops arranged in order */
3156 104 /* mvzb */
3157 060 /* ses es reset */
3158 124 /* mvza */
3159 060 /* ses es reset */
3160 050 /* enf for $ insert */
3161 064 /* ses es reset and bz set */
3162 164 /* mflc */
3163 200075 /* insb with = */
3164 060 /* ses es reset */
3165 220076 /* insa with " not used since es=0 */
3166 304 /* ign */
3167 324 /* mvc */
3168 420 "* +- " /* change table with string shown */
3169 024 /* insm */
3170 344 /* mses sn is set */
3171 364;
3172
3173
3174 data 3 " 12"
3175 "**12"
3176 "$"
3177 " $12"
3178 "="
3179 "*"
3180 "4567"
3181 "****"
3182 "-123"
3183 ";;;";
3184
3185 page -all;
3186 /* mve3
3187
3188 * this test uses a sequence of micro op strings
3189 * that are appropriate for alpha numeric data.
3190 * each string is input to et such that it is
3191 * explained via a comment after each mop.
3192 * this particular mop sequence and the sending string is
3193 * used for all 6 and 9 bit tests with mod done
3194 * on descriptor access and data placement.
3195 *
3196 */
3197
3198 inst mve -nt "9-9offset inst. and desc mod" -io 2
3199 -mf1 ida ar
3200 -mf2 reg
3201 -mf3 rl 31;
3202
3203 desc 1 -ns 27;
3204
3205 desc 2 -ns 26;
3206
3207
3208 data 1 /* arranged according mop use */
3209 "0012"
3210 "0012"
3211 "0012"
3212 "1234"
3213 "4567"
3214 "-123"
3215 "123";
3216
3217 data 2 /* mops arranged in order */
3218 104 /* mvzb */
3219 060 /* ses es reset */
3220 124 /* mvza */
3221 060 /* ses es reset */
3222 050 /* enf for $ insert */
3223 064 /* ses es reset and bz set */
3224 164 /* mflc */
3225 200075 /* insb with = */
3226 060 /* ses es reset */
3227 220076 /* insa with " not used since es=0 */
3228 304 /* ign */
3229 324 /* mvc */
3230 420 "* +- " /* change table with string shown */
3231 024 /* insm */
3232 344 /* mses sn is set */
3233 364; /* mors */
3234
3235
3236 data 3 " 12"
3237 "**12"
3238 "$"
3239 " $12"
3240 "="
3241 "*"
3242 "4567"
3243 "****"
3244 "-123"
3245 ";;;";
3246
3247 page -all;
3248 /* mve4
3249
3250 * this test uses a sequence of micro op strings
3251 * that are appropriate for alpha numeric data.
3252 * each string is input to et such that it is
3253 * explained via a comment after each mop.
3254 * this particular mop sequence and the sending string is
3255 * used for all 6 and 9 bit tests with mod done
3256 * on descriptor access and data placement.
3257 *
3258 */
3259
3260 inst mve -nt "9-9 off inst desc mod d1 off" -io 2
3261 -mf1 ida ar
3262 -mf2 idb ar
3263 -mf3 rl 31;
3264
3265 desc 1 -ns 27;
3266
3267 desc 2 -ns 26;
3268
3269
3270 data 1 /* arranged according mop use */
3271 -do -7
3272 "0012"
3273 "0012"
3274 "0012"
3275 "1234"
3276 "4567"
3277 "-123"
3278 "123";
3279
3280 data 2 /* mops arranged in order */
3281 104 /* mvzb */
3282 060 /* ses es reset */
3283 124 /* mvza */
3284 060 /* ses es reset */
3285 050 /* enf for $ insert */
3286 064 /* ses es reset and bz set */
3287 164 /* mflc */
3288 200075 /* insb with = */
3289 060 /* ses es reset */
3290 220076 /* insa with " not used since es=0 */
3291 304 /* ign */
3292 324 /* mvc */
3293 420 "* +- " /* change table with string shown */
3294 024 /* insm */
3295 344 /* mses sn is set */
3296 364; /* mors */
3297
3298
3299 data 3 " 12"
3300 "**12"
3301 "$"
3302 " $12"
3303 "="
3304 "*"
3305 "4567"
3306 "****"
3307 "-123"
3308 ";;;";
3309
3310 page -all;
3311
3312
3313
3314
3315
3316 /* mve5
3317
3318 * this test uses a sequence of micro op strings
3319 * that are appropriate for alpha numeric data.
3320 * each string is input to et such that it is
3321 * explained via a comment after each mop.
3322 * this particular mop sequence and the sending string is
3323 * used for all 6 and 9 bit tests with mod done
3324 * on descriptor access and data placement.
3325 *
3326 */
3327
3328 inst mve -nt "9-9 d2 offset d1 offset" -io 2
3329 -mf1 ida ar
3330 -mf2 idb ar
3331 -mf3 rl 31;
3332
3333 desc 1 -ns 27;
3334
3335 desc 2 -ns 26;
3336
3337
3338 data 1 /* arranged according mop use */
3339 -do -7
3340 "0012"
3341 "0012"
3342 "0012"
3343 "1234"
3344 "4567"
3345 "-123"
3346 "123";
3347
3348 data 2 /* mops arranged in order */
3349 -do -13
3350 104 /* mvzb */
3351 060 /* ses es reset */
3352 124 /* mvza */
3353 060 /* ses es reset */
3354 050 /* enf for $ insert */
3355 064 /* ses es reset and bz set */
3356 164 /* mflc */
3357 200075 /* insb with = */
3358 060 /* ses es reset */
3359 220076 /* insa with " not used since es=0 */
3360 304 /* ign */
3361 324 /* mvc */
3362 420 "* +- " /* change table with string shown */
3363 024 /* insm */
3364 344 /* mses sn is set */
3365 364; /* mors */
3366
3367
3368 data 3 " 12"
3369 "**12"
3370 "$"
3371 " $12"
3372 "="
3373 "*"
3374 "4567"
3375 "****"
3376 "-123"
3377 ";;;";
3378
3379 page -all;
3380 /* mve6
3381
3382 * this test uses a sequence of micro op strings
3383 * that are appropriate for alpha numeric data.
3384 * each string is input to et such that it is
3385 * explained via a comment after each mop.
3386 * this particular mop sequence and the sending string is
3387 * used for all 6 and 9 bit tests with mod done
3388 * on descriptor access and data placement.
3389 *
3390 */
3391
3392 inst mve -nt "9-9d3 offset d2 offset d1 offset" -io 3
3393 -mf1 ida ar reg
3394 -mf2 idb ar
3395 -mf3 rl 31;
3396
3397 desc 1 -ns 27;
3398
3399 desc 2 -ns 26;
3400
3401
3402 data 1 /* arranged according mop use */
3403 -do -7
3404 "0012"
3405 "0012"
3406 "0012"
3407 "1234"
3408 "4567"
3409 "-123"
3410 "123";
3411
3412 data 2 /* mops arranged in order */
3413 -do -13
3414 104 /* mvzb */
3415 060 /* ses es reset */
3416 124 /* mvza */
3417 060 /* ses es reset */
3418 050 /* enf for $ insert */
3419 064 /* ses es reset and bz set */
3420 164 /* mflc */
3421 200075 /* insb with = */
3422 060 /* ses es reset */
3423 220076 /* insa with " not used since es=0 */
3424 304 /* ign */
3425 324 /* mvc */
3426 420 "* +- " /* change table with string shown */
3427 024 /* insm */
3428 344 /* mses sn is set */
3429 364; /* mors */
3430
3431
3432 data 3 -do -28
3433 " 12"
3434 "**12"
3435 "$"
3436 " $12"
3437 "="
3438 "*"
3439 "4567"
3440 "****"
3441 "-123"
3442 ";;;";
3443
3444 page -all;
3445
3446 /* mve7
3447
3448 * this test uses a sequence of micro op strings
3449 * that are appropriate for alpha numeric data.
3450 * each string is input to et such that it is
3451 * explained via a comment after each mop.
3452 * this particular mop sequence and the sending string is
3453 * used for all 6 and 9 bit tests with mod done
3454 * on descriptor access and data placement.
3455 *
3456 */
3457
3458 inst mve -nt "9-9data 1 totally on p0" -io 3
3459 -mf1 ida ar reg rl 27
3460 -mf2 idb ar
3461 -mf3 ar reg rl 31;
3462
3463
3464 desc 2 -ns 26;
3465
3466
3467 data 1 /* arranged according mop use */
3468 -do -27
3469 "0012"
3470 "0012"
3471 "0012"
3472 "1234"
3473 "4567"
3474 "-123"
3475 "123";
3476
3477 data 2 /* mops arranged in order */
3478 -do -13
3479 104 /* mvzb */
3480 060 /* ses es reset */
3481 124 /* mvza */
3482 060 /* ses es reset */
3483 050 /* enf for $ insert */
3484 064 /* ses es reset and bz set */
3485 164 /* mflc */
3486 200075 /* insb with = */
3487 060 /* ses es reset */
3488 220076 /* insa with " not used since es=0 */
3489 304 /* ign */
3490 324 /* mvc */
3491 420 "* +- " /* change table with string shown */
3492 024 /* insm */
3493 344 /* mses sn is set */
3494 364; /* mors */
3495
3496
3497 data 3 -do 30
3498 " 12"
3499 "**12"
3500 "$"
3501 " $12"
3502 "="
3503 "*"
3504 "4567"
3505 "****"
3506 "-123"
3507 ";;;";
3508
3509 page -all;
3510 /* mve8
3511
3512 * this test uses a sequence of micro op strings
3513 * that are appropriate for alpha numeric data.
3514 * each string is input to et such that it is
3515 * explained via a comment after each mop.
3516 * this particular mop sequence and the sending string is
3517 * used for all 6 and 9 bit tests with mod done
3518 * on descriptor access and data placement.
3519 *
3520 */
3521
3522 inst mve -nt "9-9data 2 totally on p0" -io 3
3523 -mf1 ida ar reg rl 27
3524 -mf2 idb ar rl 26
3525 -mf3 ar reg rl 31;
3526
3527
3528 /* no desc needed */
3529
3530
3531 data 1 /* arranged according mop use */
3532 -do -27
3533 "0012"
3534 "0012"
3535 "0012"
3536 "1234"
3537 "4567"
3538 "-123"
3539 "123";
3540
3541 data 2 /* mops arranged in order */
3542 -do -26
3543 104 /* mvzb */
3544 060 /* ses es reset */
3545 124 /* mvza */
3546 060 /* ses es reset */
3547 050 /* enf for $ insert */
3548 064 /* ses es reset and bz set */
3549 164 /* mflc */
3550 200075 /* insb with = */
3551 060 /* ses es reset */
3552 220076 /* insa with " not used since es=0 */
3553 304 /* ign */
3554 324 /* mvc */
3555 420 "* +- " /* change table with string shown */
3556 024 /* insm */
3557 344 /* mses sn is set */
3558 364; /* mors */
3559
3560
3561 data 3 -do 30
3562 " 12"
3563 "**12"
3564 "$"
3565 " $12"
3566 "="
3567 "*"
3568 "4567"
3569 "****"
3570 "-123"
3571 ";;;";
3572
3573 page -all;
3574 /* mve9
3575
3576 * this test uses a sequence of micro op strings
3577 * that are appropriate for alpha numeric data.
3578 * each string is input to et such that it is
3579 * explained via a comment after each mop.
3580 * this particular mop sequence and the sending string is
3581 * used for all 6 and 9 bit tests with mod done
3582 * on descriptor access and data placement.
3583 *
3584 */
3585
3586 inst mve -nt "9-9all data totally on p0" -io 3
3587 -mf1 ida ar reg rl 27
3588 -mf2 idb ar rl 26
3589 -mf3 ar reg rl 31;
3590
3591
3592 /* no desc needed */
3593
3594
3595 data 1 /* arranged according mop use */
3596 -do -27
3597 "0012"
3598 "0012"
3599 "0012"
3600 "1234"
3601 "4567"
3602 "-123"
3603 "123";
3604
3605 data 2 /* mops arranged in order */
3606 -do -26
3607 104 /* mvzb */
3608 060 /* ses es reset */
3609 124 /* mvza */
3610 060 /* ses es reset */
3611 050 /* enf for $ insert */
3612 064 /* ses es reset and bz set */
3613 164 /* mflc */
3614 200075 /* insb with = */
3615 060 /* ses es reset */
3616 220076 /* insa with " not used since es=0 */
3617 304 /* ign */
3618 324 /* mvc */
3619 420 "* +- " /* change table with string shown */
3620 024 /* insm */
3621 344 /* mses sn is set */
3622 364; /* mors */
3623
3624
3625 data 3 -do -31
3626 " 12"
3627 "**12"
3628 "$"
3629 " $12"
3630 "="
3631 "*"
3632 "4567"
3633 "****"
3634 "-123"
3635 ";;;";
3636
3637 page -all;
3638 /* mve10
3639
3640 * this test uses a sequence of micro op strings
3641 * that are appropriate for alpha numeric data.
3642 * each string is input to et such that it is
3643 * explained via a comment after each mop.
3644 * this particular mop sequence and the sending string is
3645 * used for all 6 and 9 bit tests with mod done
3646 * on descriptor access and data placement.
3647 *
3648 */
3649
3650 inst mve -nt "9-9 all data on p0 all mod" -io 3
3651 -mf1 idb ar reg rl 27
3652 -mf2 idb ar reg rl 26
3653 -mf3 ar reg rl 31;
3654
3655
3656 /* no desc needed */
3657
3658
3659 data 1 /* arranged according mop use */
3660 -do -27
3661 "0012"
3662 "0012"
3663 "0012"
3664 "1234"
3665 "4567"
3666 "-123"
3667 "123";
3668
3669 data 2 /* mops arranged in order */
3670 -do -26
3671 104 /* mvzb */
3672 060 /* ses es reset */
3673 124 /* mvza */
3674 060 /* ses es reset */
3675 050 /* enf for $ insert */
3676 064 /* ses es reset and bz set */
3677 164 /* mflc */
3678 200075 /* insb with = */
3679 060 /* ses es reset */
3680 220076 /* insa with " not used since es=0 */
3681 304 /* ign */
3682 324 /* mvc */
3683 420 "* +- " /* change table with string shown */
3684 024 /* insm */
3685 344 /* mses sn is set */
3686 364; /* mors */
3687
3688
3689 data 3 -do -31
3690 " 12"
3691 "**12"
3692 "$"
3693 " $12"
3694 "="
3695 "*"
3696 "4567"
3697 "****"
3698 "-123"
3699 ";;;";
3700
3701 page -all;
3702 /* mve11
3703
3704 * this test uses a sequence of micro op strings
3705 * that are appropriate for alpha numeric data.
3706 * each string is input to et such that it is
3707 * explained via a comment after each mop.
3708 * this particular mop sequence and the sending string is
3709 * used for all 6 and 9 bit tests with mod done
3710 * on descriptor access and data placement.
3711 *
3712 */
3713
3714 inst mve -nt "6-9 simple test with no mod"
3715 -mf3 rl 31;
3716
3717 desc 1 -ta 6 -ns 27;
3718
3719 desc 2 -ns 26;
3720
3721 desc 3 -ta 9;
3722
3723
3724
3725 data 1 /* arranged according mop use */
3726 606061626060616260606162616263646465666752616263616263;
3727
3728 data 2 /* mops arranged in order */
3729 104 /* mvzb */
3730 060 /* ses es reset */
3731 124 /* mvza */
3732 060 /* ses es reset */
3733 050 /* enf for $ insert */
3734 064 /* ses es reset and bz set */
3735 164 /* mflc */
3736 200075 /* insb with = */
3737 060 /* ses es reset */
3738 220076 /* insa with " not used since es=0 */
3739 304 /* ign */
3740 324 /* mvc */
3741 420 "* +- " /* change table with string shown */
3742 024 /* insm */
3743 344 /* mses sn is set */
3744 364;
3745
3746
3747 data 3 " 12"
3748 "**12"
3749 "$"
3750 " $12"
3751 "="
3752 "*"
3753 "4567"
3754 "****"
3755 "*123"
3756 ";;;";
3757
3758 page -all;
3759 /* mve12
3760
3761 * this test uses a sequence of micro op strings
3762 * that are appropriate for alpha numeric data.
3763 * each string is input to et such that it is
3764 * explained via a comment after each mop.
3765 * this particular mop sequence and the sending string is
3766 * used for all 6 and 9 bit tests with mod done
3767 * on descriptor access and data placement.
3768 *
3769 */
3770
3771 inst mve -nt "6-9 offset inst. and desc mod" -io 2
3772 -mf1 ida ar
3773 -mf2 reg
3774 -mf3 rl 31;
3775
3776 desc 1 -ta 6 -ns 27;
3777
3778 desc 2 -ns 26;
3779
3780
3781 data 1 /* arranged according mop use */
3782 606061626060616260606162616263646465666752616263616263;
3783
3784 data 2 /* mops arranged in order */
3785 104 /* mvzb */
3786 060 /* ses es reset */
3787 124 /* mvza */
3788 060 /* ses es reset */
3789 050 /* enf for $ insert */
3790 064 /* ses es reset and bz set */
3791 164 /* mflc */
3792 200075 /* insb with = */
3793 060 /* ses es reset */
3794 220076 /* insa with " not used since es=0 */
3795 304 /* ign */
3796 324 /* mvc */
3797 420 "* +- " /* change table with string shown */
3798 024 /* insm */
3799 344 /* mses sn is set */
3800 364; /* mors */
3801
3802
3803 data 3 " 12"
3804 "**12"
3805 "$"
3806 " $12"
3807 "="
3808 "*"
3809 "4567"
3810 "****"
3811 "*123"
3812 ";;;";
3813
3814 page -all;
3815 /* mve13
3816
3817 * this test uses a sequence of micro op strings
3818 * that are appropriate for alpha numeric data.
3819 * each string is input to et such that it is
3820 * explained via a comment after each mop.
3821 * this particular mop sequence and the sending string is
3822 * used for all 6 and 9 bit tests with mod done
3823 * on descriptor access and data placement.
3824 *
3825 */
3826
3827 inst mve -nt "6-9 desc mod d1 offset" -io 2
3828 -mf1 ida ar
3829 -mf2 idb ar
3830 -mf3 rl 31;
3831
3832 desc 1 -ta 6 -ns 27;
3833
3834 desc 2 -ns 26;
3835
3836
3837 data 1 /* arranged according mop use */
3838 -do -6
3839 606061626060616260606162616263646465666752616263616263;
3840
3841 data 2 /* mops arranged in order */
3842 104 /* mvzb */
3843 060 /* ses es reset */
3844 124 /* mvza */
3845 060 /* ses es reset */
3846 050 /* enf for $ insert */
3847 064 /* ses es reset and bz set */
3848 164 /* mflc */
3849 200075 /* insb with = */
3850 060 /* ses es reset */
3851 220076 /* insa with " not used since es=0 */
3852 304 /* ign */
3853 324 /* mvc */
3854 420 "* +- " /* change table with string shown */
3855 024 /* insm */
3856 344 /* mses sn is set */
3857 364; /* mors */
3858
3859
3860 data 3 " 12"
3861 "**12"
3862 "$"
3863 " $12"
3864 "="
3865 "*"
3866 "4567"
3867 "****"
3868 "*123"
3869 ";;;";
3870
3871 page -all;
3872
3873
3874
3875
3876
3877 /* mve14
3878
3879 * this test uses a sequence of micro op strings
3880 * that are appropriate for alpha numeric data.
3881 * each string is input to et such that it is
3882 * explained via a comment after each mop.
3883 * this particular mop sequence and the sending string is
3884 * used for all 6 and 9 bit tests with mod done
3885 * on descriptor access and data placement.
3886 *
3887 */
3888
3889 inst mve -nt "6-9 d2 offset d1 offset" -io 2
3890 -mf1 ida ar
3891 -mf2 idb ar
3892 -mf3 rl 31;
3893
3894 desc 1 -ta 6 -ns 27;
3895
3896 desc 2 -ns 26;
3897
3898
3899 data 1 /* arranged according mop use */
3900 -do -6
3901 606061626060616260606162616263646465666752616263616263;
3902
3903 data 2 /* mops arranged in order */
3904 -do -13
3905 104 /* mvzb */
3906 060 /* ses es reset */
3907 124 /* mvza */
3908 060 /* ses es reset */
3909 050 /* enf for $ insert */
3910 064 /* ses es reset and bz set */
3911 164 /* mflc */
3912 200075 /* insb with = */
3913 060 /* ses es reset */
3914 220076 /* insa with " not used since es=0 */
3915 304 /* ign */
3916 324 /* mvc */
3917 420 "* +- " /* change table with string shown */
3918 024 /* insm */
3919 344 /* mses sn is set */
3920 364; /* mors */
3921
3922
3923 data 3 " 12"
3924 "**12"
3925 "$"
3926 " $12"
3927 "="
3928 "*"
3929 "4567"
3930 "****"
3931 "*123"
3932 ";;;";
3933
3934 page -all;
3935 /* mve15
3936
3937 * this test uses a sequence of micro op strings
3938 * that are appropriate for alpha numeric data.
3939 * each string is input to et such that it is
3940 * explained via a comment after each mop.
3941 * this particular mop sequence and the sending string is
3942 * used for all 6 and 9 bit tests with mod done
3943 * on descriptor access and data placement.
3944 *
3945 */
3946
3947 inst mve -nt "6-9 d3 offset and d2 and d1" -io 3
3948 -mf1 ida ar reg
3949 -mf2 idb ar
3950 -mf3 rl 31;
3951
3952 desc 1 -ta 6 -ns 27;
3953
3954 desc 2 -ns 26;
3955
3956
3957 data 1 /* arranged according mop use */
3958 -do -6
3959 606061626060616260606162616263646465666752616263616263;
3960
3961 data 2 /* mops arranged in order */
3962 -do -13
3963 104 /* mvzb */
3964 060 /* ses es reset */
3965 124 /* mvza */
3966 060 /* ses es reset */
3967 050 /* enf for $ insert */
3968 064 /* ses es reset and bz set */
3969 164 /* mflc */
3970 200075 /* insb with = */
3971 060 /* ses es reset */
3972 220076 /* insa with " not used since es=0 */
3973 304 /* ign */
3974 324 /* mvc */
3975 420 "* +- " /* change table with string shown */
3976 024 /* insm */
3977 344 /* mses sn is set */
3978 364; /* mors */
3979
3980
3981 data 3 -do -28
3982 " 12"
3983 "**12"
3984 "$"
3985 " $12"
3986 "="
3987 "*"
3988 "4567"
3989 "****"
3990 "*123"
3991 ";;;";
3992
3993 page -all;
3994
3995 /* mve16
3996
3997 * this test uses a sequence of micro op strings
3998 * that are appropriate for alpha numeric data.
3999 * each string is input to et such that it is
4000 * explained via a comment after each mop.
4001 * this particular mop sequence and the sending string is
4002 * used for all 6 and 9 bit tests with mod done
4003 * on descriptor access and data placement.
4004 *
4005 */
4006
4007 inst mve -nt "6-9 data 1 totally on p0" -io 3
4008 -mf1 ida ar reg rl 27
4009 -mf2 idb ar
4010 -mf3 ar reg rl 31;
4011
4012
4013 desc 1 -ta 6;
4014
4015 desc 2 -ns 26;
4016
4017
4018 data 1 /* arranged according mop use */
4019 -do -28
4020 606061626060616260606162616263646465666752616263616263;
4021
4022 data 2 /* mops arranged in order */
4023 -do -13
4024 104 /* mvzb */
4025 060 /* ses es reset */
4026 124 /* mvza */
4027 060 /* ses es reset */
4028 050 /* enf for $ insert */
4029 064 /* ses es reset and bz set */
4030 164 /* mflc */
4031 200075 /* insb with = */
4032 060 /* ses es reset */
4033 220076 /* insa with " not used since es=0 */
4034 304 /* ign */
4035 324 /* mvc */
4036 420 "* +- " /* change table with string shown */
4037 024 /* insm */
4038 344 /* mses sn is set */
4039 364; /* mors */
4040
4041
4042 data 3 -do 30
4043 " 12"
4044 "**12"
4045 "$"
4046 " $12"
4047 "="
4048 "*"
4049 "4567"
4050 "****"
4051 "*123"
4052 ";;;";
4053
4054 page -all;
4055 /* mve17
4056
4057 * this test uses a sequence of micro op strings
4058 * that are appropriate for alpha numeric data.
4059 * each string is input to et such that it is
4060 * explained via a comment after each mop.
4061 * this particular mop sequence and the sending string is
4062 * used for all 6 and 9 bit tests with mod done
4063 * on descriptor access and data placement.
4064 *
4065 */
4066
4067 inst mve -nt "6-9 data 2 totally on p0" -io 3
4068 -mf1 ida ar reg rl 27
4069 -mf2 idb ar rl 26
4070 -mf3 ar reg rl 31;
4071
4072
4073 desc 1 -ta 6;
4074
4075
4076 data 1 /* arranged according mop use */
4077 606061626060616260606162616263646465666752616263616263;
4078
4079 data 2 /* mops arranged in order */
4080 -do -26
4081 104 /* mvzb */
4082 060 /* ses es reset */
4083 124 /* mvza */
4084 060 /* ses es reset */
4085 050 /* enf for $ insert */
4086 064 /* ses es reset and bz set */
4087 164 /* mflc */
4088 200075 /* insb with = */
4089 060 /* ses es reset */
4090 220076 /* insa with " not used since es=0 */
4091 304 /* ign */
4092 324 /* mvc */
4093 420 "* +- " /* change table with string shown */
4094 024 /* insm */
4095 344 /* mses sn is set */
4096 364; /* mors */
4097
4098
4099 data 3 -do 30
4100 " 12"
4101 "**12"
4102 "$"
4103 " $12"
4104 "="
4105 "*"
4106 "4567"
4107 "****"
4108 "*123"
4109 ";;;";
4110
4111 page -all;
4112 /* mve18
4113
4114 * this test uses a sequence of micro op strings
4115 * that are appropriate for alpha numeric data.
4116 * each string is input to et such that it is
4117 * explained via a comment after each mop.
4118 * this particular mop sequence and the sending string is
4119 * used for all 6 and 9 bit tests with mod done
4120 * on descriptor access and data placement.
4121 *
4122 */
4123
4124 inst mve -nt "6-9 all data totally on p0" -io 3
4125 -mf1 ida ar reg rl 27
4126 -mf2 idb ar rl 26
4127 -mf3 ar reg rl 31;
4128
4129
4130 desc 1 -ta 6;
4131
4132
4133 data 1 /* arranged according mop use */
4134 -do -28
4135 606061626060616260606162616263646465666752616263616263;
4136
4137 data 2 /* mops arranged in order */
4138 -do -26
4139 104 /* mvzb */
4140 060 /* ses es reset */
4141 124 /* mvza */
4142 060 /* ses es reset */
4143 050 /* enf for $ insert */
4144 064 /* ses es reset and bz set */
4145 164 /* mflc */
4146 200075 /* insb with = */
4147 060 /* ses es reset */
4148 220076 /* insa with " not used since es=0 */
4149 304 /* ign */
4150 324 /* mvc */
4151 420 "* +- " /* change table with string shown */
4152 024 /* insm */
4153 344 /* mses sn is set */
4154 364; /* mors */
4155
4156
4157 data 3 -do -31
4158 " 12"
4159 "**12"
4160 "$"
4161 " $12"
4162 "="
4163 "*"
4164 "4567"
4165 "****"
4166 "*123"
4167 ";;;";
4168
4169 page -all;
4170 /* mve19
4171
4172 * this test uses a sequence of micro op strings
4173 * that are appropriate for alpha numeric data.
4174 * each string is input to et such that it is
4175 * explained via a comment after each mop.
4176 * this particular mop sequence and the sending string is
4177 * used for all 6 and 9 bit tests with mod done
4178 * on descriptor access and data placement.
4179 *
4180 */
4181
4182 inst mve -nt "6-9 all data on p0 all mod" -io 3
4183 -mf1 idb ar reg rl 27
4184 -mf2 idb ar reg rl 26
4185 -mf3 ar reg rl 31;
4186
4187
4188 desc 1 -ta 6;
4189
4190
4191 data 1 /* arranged according mop use */
4192 -do -28
4193 606061626060616260606162616263646465666752616263616263;
4194
4195 data 2 /* mops arranged in order */
4196 -do -26
4197 104 /* mvzb */
4198 060 /* ses es reset */
4199 124 /* mvza */
4200 060 /* ses es reset */
4201 050 /* enf for $ insert */
4202 064 /* ses es reset and bz set */
4203 164 /* mflc */
4204 200075 /* insb with = */
4205 060 /* ses es reset */
4206 220076 /* insa with " not used since es=0 */
4207 304 /* ign */
4208 324 /* mvc */
4209 420 "* +- " /* change table with string shown */
4210 024 /* insm */
4211 344 /* mses sn is set */
4212 364; /* mors */
4213
4214
4215 data 3 -do -31
4216 " 12"
4217 "**12"
4218 "$"
4219 " $12"
4220 "="
4221 "*"
4222 "4567"
4223 "****"
4224 "*123"
4225 ";;;";
4226
4227 page -all;
4228 /* mve20
4229
4230 * this test uses a sequence of micro op strings
4231 * that are appropriate for alpha numeric data.
4232 * each string is input to et such that it is
4233 * explained via a comment after each mop.
4234 * this particular mop sequence and the sending string is
4235 * used for all 6 and 9 bit tests with mod done
4236 * on descriptor access and data placement.
4237 *
4238 */
4239
4240 inst mve -nt "9-6 simple test with no mod"
4241 -mf3 rl 31;
4242
4243 desc 1 -ns 27;
4244
4245 desc 2 -ns 26;
4246
4247 desc 3 -ta 6;
4248
4249
4250
4251 data 1 /* arranged according mop use */
4252 "0012"
4253 "0012"
4254 "0012"
4255 "1234"
4256 "4567"
4257 "-123"
4258 "123";
4259
4260 data 2 /* mops arranged in order */
4261 /* change table and mvzb */ 420020054060052053073033000 104
4262 060 /* ses es reset */
4263 124 /* mvza */
4264 060 /* ses es reset */
4265 050 /* enf for $ insert */
4266 064 /* ses es reset and bz set */
4267 164 /* mflc */
4268 200075 /* insb with = */
4269 060 /* ses es reset */
4270 220076 /* insa with " not used since es=0 */
4271 304 /* ign */
4272 324 /* mvc */
4273 024 /* insm */
4274 344 /* mses sn is set */
4275 364;
4276
4277
4278 data 3 20206162545461625320205361627554646566672020202055616263616263;
4279
4280 page -all;
4281 /* mve21
4282
4283 * this test uses a sequence of micro op strings
4284 * that are appropriate for alpha numeric data.
4285 * each string is input to et such that it is
4286 * explained via a comment after each mop.
4287 * this particular mop sequence and the sending string is
4288 * used for all 6 and 9 bit tests with mod done
4289 * on descriptor access and data placement.
4290 *
4291 */
4292
4293 inst mve -nt "9-6 offset inst. and desc mod" -io 2
4294 -mf1 ida ar
4295 -mf2 reg
4296 -mf3 rl 31;
4297
4298 desc 1 -ns 27;
4299
4300 desc 2 -ns 26;
4301
4302 desc 3 -ta 6;
4303
4304 data 1 /* arranged according mop use */
4305 "0012"
4306 "0012"
4307 "0012"
4308 "1234"
4309 "4567"
4310 "-123"
4311 "123";
4312
4313 data 2 /* mops arranged in order */
4314 /* change table and mvzb */ 420020054060052053073033000 104
4315 060 /* ses es reset */
4316 124 /* mvza */
4317 060 /* ses es reset */
4318 050 /* enf for $ insert */
4319 064 /* ses es reset and bz set */
4320 164 /* mflc */
4321 200075 /* insb with = */
4322 060 /* ses es reset */
4323 220076 /* insa with " not used since es=0 */
4324 304 /* ign */
4325 324 /* mvc */
4326 024 /* insm */
4327 344 /* mses sn is set */
4328 364; /* mors */
4329
4330
4331
4332 data 3 20206162545461625320205361627554646566672020202055616263616263;
4333 page -all;
4334
4335 /* mve22
4336
4337 * this test uses a sequence of micro op strings
4338 * that are appropriate for alpha numeric data.
4339 * each string is input to et such that it is
4340 * explained via a comment after each mop.
4341 * this particular mop sequence and the sending string is
4342 * used for all 6 and 9 bit tests with mod done
4343 * on descriptor access and data placement.
4344 *
4345 */
4346
4347 inst mve -nt "9-6 desc mod d1 offset" -io 2
4348 -mf1 ida ar
4349 -mf2 idb ar
4350 -mf3 rl 31;
4351
4352 desc 1 -ns 27;
4353
4354 desc 2 -ns 26;
4355
4356 desc 3 -ta 6;
4357
4358
4359 data 1 /* arranged according mop use */
4360 -do -7
4361 "0012"
4362 "0012"
4363 "0012"
4364 "1234"
4365 "4567"
4366 "-123"
4367 "123";
4368
4369 data 2 /* mops arranged in order */
4370 /* change table and mvzb */ 420020054060052053073033000 104
4371 060 /* ses es reset */
4372 124 /* mvza */
4373 060 /* ses es reset */
4374 050 /* enf for $ insert */
4375 064 /* ses es reset and bz set */
4376 164 /* mflc */
4377 200075 /* insb with = */
4378 060 /* ses es reset */
4379 220076 /* insa with " not used since es=0 */
4380 304 /* ign */
4381 324 /* mvc */
4382 024 /* insm */
4383 344 /* mses sn is set */
4384 364; /* mors */
4385
4386
4387 data 3 20206162545461625320205361627554646566672020202055616263616263;
4388
4389 page -all;
4390
4391
4392
4393
4394
4395 /* mve23
4396
4397 * this test uses a sequence of micro op strings
4398 * that are appropriate for alpha numeric data.
4399 * each string is input to et such that it is
4400 * explained via a comment after each mop.
4401 * this particular mop sequence and the sending string is
4402 * used for all 6 and 9 bit tests with mod done
4403 * on descriptor access and data placement.
4404 *
4405 */
4406
4407 inst mve -nt "9-6 d2 offset d1 offset" -io 2
4408 -mf1 ida ar
4409 -mf2 idb ar
4410 -mf3 rl 31;
4411
4412 desc 1 -ns 27;
4413
4414 desc 2 -ns 26;
4415
4416 desc 3 -ta 6;
4417
4418
4419 data 1 /* arranged according mop use */
4420 -do -7
4421 "0012"
4422 "0012"
4423 "0012"
4424 "1234"
4425 "4567"
4426 "-123"
4427 "123";
4428
4429 data 2 /* mops arranged in order */
4430 -do -13
4431 /* change table and mvzb */ 420020054060052053073033000 104
4432 060 /* ses es reset */
4433 124 /* mvza */
4434 060 /* ses es reset */
4435 050 /* enf for $ insert */
4436 064 /* ses es reset and bz set */
4437 164 /* mflc */
4438 200075 /* insb with = */
4439 060 /* ses es reset */
4440 220076 /* insa with " not used since es=0 */
4441 304 /* ign */
4442 324 /* mvc */
4443 024 /* insm */
4444 344 /* mses sn is set */
4445 364; /* mors */
4446
4447
4448 data 3 20206162545461625320205361627554646566672020202055616263616263;
4449
4450 page -all;
4451 /* mve24
4452
4453 * this test uses a sequence of micro op strings
4454 * that are appropriate for alpha numeric data.
4455 * each string is input to et such that it is
4456 * explained via a comment after each mop.
4457 * this particular mop sequence and the sending string is
4458 * used for all 6 and 9 bit tests with mod done
4459 * on descriptor access and data placement.
4460 *
4461 */
4462
4463 inst mve -nt "9-6 d3 offset d2 and d1" -io 3
4464 -mf1 ida ar reg
4465 -mf2 idb ar
4466 -mf3 rl 31;
4467
4468 desc 1 -ns 27;
4469
4470 desc 2 -ns 26;
4471
4472 desc 3 -ta 6;
4473
4474
4475 data 1 /* arranged according mop use */
4476 -do -7
4477 "0012"
4478 "0012"
4479 "0012"
4480 "1234"
4481 "4567"
4482 "-123"
4483 "123";
4484
4485 data 2 /* mops arranged in order */
4486 -do -13
4487 /* change table and mvzb */ 420020054060052053073033000 104
4488 060 /* ses es reset */
4489 124 /* mvza */
4490 060 /* ses es reset */
4491 050 /* enf for $ insert */
4492 064 /* ses es reset and bz set */
4493 164 /* mflc */
4494 200075 /* insb with = */
4495 060 /* ses es reset */
4496 220076 /* insa with " not used since es=0 */
4497 304 /* ign */
4498 324 /* mvc */
4499 024 /* insm */
4500 344 /* mses sn is set */
4501 364; /* mors */
4502
4503
4504 data 3 -do -28
4505 20206162545461625320205361627554646566672020202055616263616263;
4506
4507 page -all;
4508
4509 /* mve25
4510
4511 * this test uses a sequence of micro op strings
4512 * that are appropriate for alpha numeric data.
4513 * each string is input to et such that it is
4514 * explained via a comment after each mop.
4515 * this particular mop sequence and the sending string is
4516 * used for all 6 and 9 bit tests with mod done
4517 * on descriptor access and data placement.
4518 *
4519 */
4520
4521 inst mve -nt "9-6 data 1 totally on p0" -io 3
4522 -mf1 ida ar reg rl 27
4523 -mf2 idb ar
4524 -mf3 ar reg rl 31;
4525
4526
4527 desc 2 -ns 26;
4528
4529 desc 3 -ta 6;
4530
4531
4532 data 1 /* arranged according mop use */
4533 -do -27
4534 "0012"
4535 "0012"
4536 "0012"
4537 "1234"
4538 "4567"
4539 "-123"
4540 "123";
4541
4542 data 2 /* mops arranged in order */
4543 -do -13
4544 /* change table and mvzb */ 420020054060052053073033000 104
4545 060 /* ses es reset */
4546 124 /* mvza */
4547 060 /* ses es reset */
4548 050 /* enf for $ insert */
4549 064 /* ses es reset and bz set */
4550 164 /* mflc */
4551 200075 /* insb with = */
4552 060 /* ses es reset */
4553 220076 /* insa with " not used since es=0 */
4554 304 /* ign */
4555 324 /* mvc */
4556 024 /* insm */
4557 344 /* mses sn is set */
4558 364; /* mors */
4559
4560
4561 data 3 -do 30
4562 20206162545461625320205361627554646566672020202055616263616263;
4563
4564 page -all;
4565 /* mve26
4566
4567 * this test uses a sequence of micro op strings
4568 * that are appropriate for alpha numeric data.
4569 * each string is input to et such that it is
4570 * explained via a comment after each mop.
4571 * this particular mop sequence and the sending string is
4572 * used for all 6 and 9 bit tests with mod done
4573 * on descriptor access and data placement.
4574 *
4575 */
4576
4577 inst mve -nt "9-6 data 2 totally on p0" -io 3
4578 -mf1 ida ar reg rl 27
4579 -mf2 idb ar rl 26
4580 -mf3 ar reg rl 31;
4581
4582
4583 desc 3 -ta 6;
4584
4585
4586
4587
4588
4589
4590 data 1 /* arranged according mop use */
4591 -do -27
4592 "0012"
4593 "0012"
4594 "0012"
4595 "1234"
4596 "4567"
4597 "-123"
4598 "123";
4599
4600 data 2 /* mops arranged in order */
4601 -do -26
4602 /* change table and mvzb */ 420020054060052053073033000 104
4603 060 /* ses es reset */
4604 124 /* mvza */
4605 060 /* ses es reset */
4606 050 /* enf for $ insert */
4607 064 /* ses es reset and bz set */
4608 164 /* mflc */
4609 200075 /* insb with = */
4610 060 /* ses es reset */
4611 220076 /* insa with " not used since es=0 */
4612 304 /* ign */
4613 324 /* mvc */
4614 024 /* insm */
4615 344 /* mses sn is set */
4616 364; /* mors */
4617
4618
4619 data 3 -do -12
4620 20206162545461625320205361627554646566672020202055616263616263;
4621
4622 page -all;
4623 /* mve27
4624
4625 * this test uses a sequence of micro op strings
4626 * that are appropriate for alpha numeric data.
4627 * each string is input to et such that it is
4628 * explained via a comment after each mop.
4629 * this particular mop sequence and the sending string is
4630 * used for all 6 and 9 bit tests with mod done
4631 * on descriptor access and data placement.
4632 *
4633 */
4634
4635 inst mve -nt "9-6 all data totally on p0"
4636 -mf1 ida ar reg rl 27
4637 -mf2 idb ar rl 26
4638 -mf3 ar reg rl 31;
4639
4640 desc 3 -ta 6;
4641
4642
4643
4644
4645
4646
4647 data 1 /* arranged according mop use */
4648 -do -27
4649 "0012"
4650 "0012"
4651 "0012"
4652 "1234"
4653 "4567"
4654 "-123"
4655 "123";
4656
4657 data 2 /* mops arranged in order */
4658 -do -26
4659 /* change table and mvzb */ 420020054060052053073033000 104
4660 060 /* ses es reset */
4661 124 /* mvza */
4662 060 /* ses es reset */
4663 050 /* enf for $ insert */
4664 064 /* ses es reset and bz set */
4665 164 /* mflc */
4666 200075 /* insb with = */
4667 060 /* ses es reset */
4668 220076 /* insa with " not used since es=0 */
4669 304 /* ign */
4670 324 /* mvc */
4671 024 /* insm */
4672 344 /* mses sn is set */
4673 364; /* mors */
4674
4675
4676 data 3 -do -32
4677 20206162545461625320205361627554646566672020202055616263616263;
4678
4679 page -all;
4680 /* mve28
4681
4682 * this test uses a sequence of micro op strings
4683 * that are appropriate for alpha numeric data.
4684 * each string is input to et such that it is
4685 * explained via a comment after each mop.
4686 * this particular mop sequence and the sending string is
4687 * used for all 6 and 9 bit tests with mod done
4688 * on descriptor access and data placement.
4689 *
4690 */
4691
4692 inst mve -nt "9-6 all data on p0 all mod" -io 3
4693 -mf1 idb ar reg rl 27
4694 -mf2 idb ar reg rl 26
4695 -mf3 ar reg rl 31;
4696
4697 desc 3 -ta 6;
4698
4699
4700
4701
4702
4703
4704 data 1 /* arranged according mop use */
4705 -do -27
4706 "0012"
4707 "0012"
4708 "0012"
4709 "1234"
4710 "4567"
4711 "-123"
4712 "123";
4713
4714 data 2 /* mops arranged in order */
4715 -do -26
4716 /* change table and mvzb */ 420020054060052053073033000 104
4717 060 /* ses es reset */
4718 124 /* mvza */
4719 060 /* ses es reset */
4720 050 /* enf for $ insert */
4721 064 /* ses es reset and bz set */
4722 164 /* mflc */
4723 200075 /* insb with = */
4724 060 /* ses es reset */
4725 220076 /* insa with " not used since es=0 */
4726 304 /* ign */
4727 324 /* mvc */
4728 024 /* insm */
4729 344 /* mses sn is set */
4730 364; /* mors */
4731
4732
4733 data 3 -do -32
4734 20206162545461625320205361627554646566672020202055616263616263;
4735
4736 page -all;
4737 /* mve29
4738
4739 * this test uses a sequence of micro op strings
4740 * that are appropriate for alpha numeric data.
4741 * each string is input to et such that it is
4742 * explained via a comment after each mop.
4743 * this particular mop sequence and the sending string is
4744 * used for all 6 and 9 bit tests with mod done
4745 * on descriptor access and data placement.
4746 *
4747 */
4748
4749 inst mve -nt "6-6 simple test with no mod"
4750 -mf3 rl 31;
4751
4752 desc 1 -ta 6 -ns 27;
4753
4754 desc 2 -ns 26;
4755
4756 desc 3 -ta 6;
4757
4758
4759
4760 data 1 /* arranged according mop use */
4761 000001020000010200000102010203040405060752010203010203;
4762 data 2 /* mops arranged in order */
4763 /* change table and mvzb */ 420020054060052053073033000 104
4764 060 /* ses es reset */
4765 124 /* mvza */
4766 060 /* ses es reset */
4767 050 /* enf for $ insert */
4768 064 /* ses es reset and bz set */
4769 164 /* mflc */
4770 200075 /* insb with = */
4771 060 /* ses es reset */
4772 220076 /* insa with " not used since es=0 */
4773 304 /* ign */
4774 324 /* mvc */
4775 024 /* insm */
4776 344 /* mses sn is set */
4777 364;
4778
4779
4780 data 3 20200102545401025320205301027554040506072020202052010203616263;
4781
4782 page -all;
4783 /* mve30
4784
4785 * this test uses a sequence of micro op strings
4786 * that are appropriate for alpha numeric data.
4787 * each string is input to et such that it is
4788 * explained via a comment after each mop.
4789 * this particular mop sequence and the sending string is
4790 * used for all 6 and 9 bit tests with mod done
4791 * on descriptor access and data placement.
4792 *
4793 */
4794
4795 inst mve -nt "6-6 offset inst. and desc mod" -io 2
4796 -mf1 ida ar
4797 -mf2 reg
4798 -mf3 rl 31;
4799
4800 desc 1 -ta 6 -ns 27;
4801
4802 desc 2 -ns 26;
4803
4804 desc 3 -ta 6;
4805
4806 data 1 /* arranged according mop use */
4807 000001020000010200000102010203040405060752010203010203;
4808 data 2 /* mops arranged in order */
4809 /* change table and mvzb */ 420020054060052053073033000 104
4810 060 /* ses es reset */
4811 124 /* mvza */
4812 060 /* ses es reset */
4813 050 /* enf for $ insert */
4814 064 /* ses es reset and bz set */
4815 164 /* mflc */
4816 200075 /* insb with = */
4817 060 /* ses es reset */
4818 220076 /* insa with " not used since es=0 */
4819 304 /* ign */
4820 324 /* mvc */
4821 024 /* insm */
4822 344 /* mses sn is set */
4823 364; /* mors */
4824
4825
4826
4827 data 3 20200102545401025320205301027554040506072020202052010203616263;
4828 page -all;
4829
4830 /* mve31
4831
4832 * this test uses a sequence of micro op strings
4833 * that are appropriate for alpha numeric data.
4834 * each string is input to et such that it is
4835 * explained via a comment after each mop.
4836 * this particular mop sequence and the sending string is
4837 * used for all 6 and 9 bit tests with mod done
4838 * on descriptor access and data placement.
4839 *
4840 */
4841
4842 inst mve -nt "6-6 desc mod d1 offset" -io 2
4843 -mf1 ida ar
4844 -mf2 idb ar
4845 -mf3 rl 31;
4846
4847 desc 1 -ta 6 -ns 27;
4848
4849 desc 2 -ns 26;
4850
4851 desc 3 -ta 6;
4852
4853
4854 data 1 /* arranged according mop use */
4855 -do -6
4856 000001020000010200000102010203040405060752010203010203;
4857 data 2 /* mops arranged in order */
4858 /* change table and mvzb */ 420020054060052053073033000 104
4859 060 /* ses es reset */
4860 124 /* mvza */
4861 060 /* ses es reset */
4862 050 /* enf for $ insert */
4863 064 /* ses es reset and bz set */
4864 164 /* mflc */
4865 200075 /* insb with = */
4866 060 /* ses es reset */
4867 220076 /* insa with " not used since es=0 */
4868 304 /* ign */
4869 324 /* mvc */
4870 024 /* insm */
4871 344 /* mses sn is set */
4872 364; /* mors */
4873
4874
4875 data 3 20200102545401025320205301027554040506072020202052010203616263;
4876
4877 page -all;
4878
4879
4880
4881
4882
4883 /* mve32
4884
4885 * this test uses a sequence of micro op strings
4886 * that are appropriate for alpha numeric data.
4887 * each string is input to et such that it is
4888 * explained via a comment after each mop.
4889 * this particular mop sequence and the sending string is
4890 * used for all 6 and 9 bit tests with mod done
4891 * on descriptor access and data placement.
4892 *
4893 */
4894
4895 inst mve -nt "6-6 d2 offset d1 offset" -io 2
4896 -mf1 ida ar
4897 -mf2 idb ar
4898 -mf3 rl 31;
4899
4900 desc 1 -ta 6 -ns 27;
4901
4902 desc 2 -ns 26;
4903
4904 desc 3 -ta 6;
4905
4906
4907 data 1 /* arranged according mop use */
4908 -do -6
4909 000001020000010200000102010203040405060752010203010203;
4910 data 2 /* mops arranged in order */
4911 -do -13
4912 /* change table and mvzb */ 420020054060052053073033000 104
4913 060 /* ses es reset */
4914 124 /* mvza */
4915 060 /* ses es reset */
4916 050 /* enf for $ insert */
4917 064 /* ses es reset and bz set */
4918 164 /* mflc */
4919 200075 /* insb with = */
4920 060 /* ses es reset */
4921 220076 /* insa with " not used since es=0 */
4922 304 /* ign */
4923 324 /* mvc */
4924 024 /* insm */
4925 344 /* mses sn is set */
4926 364; /* mors */
4927
4928
4929 data 3 20200102545401025320205301027554040506072020202052010203616263;
4930
4931 page -all;
4932 /* mve33
4933
4934 * this test uses a sequence of micro op strings
4935 * that are appropriate for alpha numeric data.
4936 * each string is input to et such that it is
4937 * explained via a comment after each mop.
4938 * this particular mop sequence and the sending string is
4939 * used for all 6 and 9 bit tests with mod done
4940 * on descriptor access and data placement.
4941 *
4942 */
4943
4944 inst mve -nt "6-6 d3 offset and d1 and d2" -io 3
4945 -mf1 ida ar reg
4946 -mf2 idb ar
4947 -mf3 rl 31;
4948
4949 desc 1 -ta 6 -ns 27;
4950
4951 desc 2 -ns 26;
4952
4953 desc 3 -ta 6;
4954
4955
4956 data 1 /* arranged according mop use */
4957 -do -6
4958 000001020000010200000102010203040405060752010203010203;
4959 data 2 /* mops arranged in order */
4960 -do -13
4961 /* change table and mvzb */ 420020054060052053073033000 104
4962 060 /* ses es reset */
4963 124 /* mvza */
4964 060 /* ses es reset */
4965 050 /* enf for $ insert */
4966 064 /* ses es reset and bz set */
4967 164 /* mflc */
4968 200075 /* insb with = */
4969 060 /* ses es reset */
4970 220076 /* insa with " not used since es=0 */
4971 304 /* ign */
4972 324 /* mvc */
4973 024 /* insm */
4974 344 /* mses sn is set */
4975 364; /* mors */
4976
4977
4978 data 3 -do -28
4979 20200102545401025320205301027554040506072020202052010203616263;
4980
4981 page -all;
4982
4983 /* mve34
4984
4985 * this test uses a sequence of micro op strings
4986 * that are appropriate for alpha numeric data.
4987 * each string is input to et such that it is
4988 * explained via a comment after each mop.
4989 * this particular mop sequence and the sending string is
4990 * used for all 6 and 9 bit tests with mod done
4991 * on descriptor access and data placement.
4992 *
4993 */
4994
4995 inst mve -nt "6-6 data 1 totally on p0" -io 3
4996 -mf1 ida ar reg rl 27
4997 -mf2 idb ar
4998 -mf3 ar reg rl 31;
4999
5000
5001 desc 1 -ta 6;
5002 desc 2 -ns 26;
5003
5004 desc 3 -ta 6;
5005
5006
5007 data 1 /* arranged according mop use */
5008 -do -28
5009 000001020000010200000102010203040405060752010203010203;
5010 data 2 /* mops arranged in order */
5011 -do -13
5012 /* change table and mvzb */ 420020054060052053073033000 104
5013 060 /* ses es reset */
5014 124 /* mvza */
5015 060 /* ses es reset */
5016 050 /* enf for $ insert */
5017 064 /* ses es reset and bz set */
5018 164 /* mflc */
5019 200075 /* insb with = */
5020 060 /* ses es reset */
5021 220076 /* insa with " not used since es=0 */
5022 304 /* ign */
5023 324 /* mvc */
5024 024 /* insm */
5025 344 /* mses sn is set */
5026 364; /* mors */
5027
5028
5029 data 3 -do 30
5030 20200102545401025320205301027554040506072020202052010203616263;
5031
5032 page -all;
5033 /* mve35
5034
5035 * this test uses a sequence of micro op strings
5036 * that are appropriate for alpha numeric data.
5037 * each string is input to et such that it is
5038 * explained via a comment after each mop.
5039 * this particular mop sequence and the sending string is
5040 * used for all 6 and 9 bit tests with mod done
5041 * on descriptor access and data placement.
5042 *
5043 */
5044
5045 inst mve -nt "6-6 data 2 totally on p0" -io 3
5046 -mf1 ida ar reg rl 27
5047 -mf2 idb ar rl 26
5048 -mf3 ar reg rl 31;
5049
5050
5051 desc 1 -ta 6;
5052
5053 desc 3 -ta 6;
5054
5055
5056
5057
5058
5059
5060 data 1 /* arranged according mop use */
5061 -do -28
5062 000001020000010200000102010203040405060752010203010203;
5063 data 2 /* mops arranged in order */
5064 -do -26
5065 /* change table and mvzb */ 420020054060052053073033000 104
5066 060 /* ses es reset */
5067 124 /* mvza */
5068 060 /* ses es reset */
5069 050 /* enf for $ insert */
5070 064 /* ses es reset and bz set */
5071 164 /* mflc */
5072 200075 /* insb with = */
5073 060 /* ses es reset */
5074 220076 /* insa with " not used since es=0 */
5075 304 /* ign */
5076 324 /* mvc */
5077 024 /* insm */
5078 344 /* mses sn is set */
5079 364; /* mors */
5080
5081
5082 data 3 -do -12
5083 20200102545401025320205301027554040506072020202052010203616263;
5084
5085 page -all;
5086 /* mve36
5087
5088 * this test uses a sequence of micro op strings
5089 * that are appropriate for alpha numeric data.
5090 * each string is input to et such that it is
5091 * explained via a comment after each mop.
5092 * this particular mop sequence and the sending string is
5093 * used for all 6 and 9 bit tests with mod done
5094 * on descriptor access and data placement.
5095 *
5096 */
5097
5098 inst mve -nt "6-6 all data totally on p0"
5099 -mf1 ida ar reg rl 27
5100 -mf2 idb ar rl 26
5101 -mf3 ar reg rl 31;
5102
5103 desc 1 -ta 6;
5104
5105 desc 3 -ta 6;
5106
5107
5108
5109
5110
5111
5112 data 1 /* arranged according mop use */
5113 -do -28
5114 000001020000010200000102010203040405060752010203010203;
5115 data 2 /* mops arranged in order */
5116 -do -26
5117 /* change table and mvzb */ 420020054060052053073033000 104
5118 060 /* ses es reset */
5119 124 /* mvza */
5120 060 /* ses es reset */
5121 050 /* enf for $ insert */
5122 064 /* ses es reset and bz set */
5123 164 /* mflc */
5124 200075 /* insb with = */
5125 060 /* ses es reset */
5126 220076 /* insa with " not used since es=0 */
5127 304 /* ign */
5128 324 /* mvc */
5129 024 /* insm */
5130 344 /* mses sn is set */
5131 364; /* mors */
5132
5133
5134 data 3 -do -32
5135 20200102545401025320205301027554040506072020202052010203616263;
5136
5137 page -all;
5138 /* mve37
5139
5140 * this test uses a sequence of micro op strings
5141 * that are appropriate for alpha numeric data.
5142 * each string is input to et such that it is
5143 * explained via a comment after each mop.
5144 * this particular mop sequence and the sending string is
5145 * used for all 6 and 9 bit tests with mod done
5146 * on descriptor access and data placement.
5147 *
5148 */
5149
5150 inst mve -nt "6-6 all data on p0 all mod" -io 3
5151 -mf1 idb ar reg rl 27
5152 -mf2 idb ar reg rl 26
5153 -mf3 ar reg rl 31;
5154
5155 desc 1 -ta 6;
5156
5157 desc 3 -ta 6;
5158
5159
5160
5161
5162
5163
5164 data 1 /* arranged according mop use */
5165 -do -28
5166 000001020000010200000102010203040405060752010203010203;
5167 data 2 /* mops arranged in order */
5168 -do -26
5169 /* change table and mvzb */ 420020054060052053073033000 104
5170 060 /* ses es reset */
5171 124 /* mvza */
5172 060 /* ses es reset */
5173 050 /* enf for $ insert */
5174 064 /* ses es reset and bz set */
5175 164 /* mflc */
5176 200075 /* insb with = */
5177 060 /* ses es reset */
5178 220076 /* insa with " not used since es=0 */
5179 304 /* ign */
5180 324 /* mvc */
5181 024 /* insm */
5182 344 /* mses sn is set */
5183 364; /* mors */
5184
5185
5186 data 3 -do -32
5187 20200102545401025320205301027554040506072020202052010203616263;
5188
5189 page -all;
5190
5191
5192 ^L
5193
5194 /* tct1
5195 *
5196 * Out table will be indexed by the characters "abcde". "b" & "e" are the two
5197 * non zero entries. Start off with a simple test
5198 */
5199
5200 inst tct -nt "Simple test";
5201
5202 desc 1 -ns 4;
5203
5204 data 1 "aceb";
5205
5206 data 2 97 "*" /* These characters should never be referenced. */
5207 000 /* "a" */
5208 "b"
5209 000 /* "c" */
5210 "d"
5211 000 ; /* "e" */
5212
5213 data 3 "b" 000 000 003;
5214
5215 page -all;
5216 /* tct2
5217 *
5218 * Same as tct1 only we will move the data fields across page boundaries and
5219 * add modification.
5220 */
5221
5222 inst tct -nt "Same as prev - fields X pg bound" -io 3
5223 -mf1 rl 4 ar reg idb
5224 -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */
5225
5226 -mf3 reg ar;
5227
5228 data 1 -do -3 "aceb";
5229
5230 data 2 -do -100 97 "*" /* These characters should never be referenced. */
5231 000 /* "a" */
5232 "b"
5233 000 /* "c" */
5234 "d"
5235 000 ; /* "e" */
5236
5237 data 3 "b" 000 000 003;
5238
5239 page -all;
5240 /* tct3
5241 *
5242 * Same as tct2 except string 1 will be changed so we will have a
5243 * tally runout.
5244 */
5245
5246
5247 inst tct -nt "Test tally runout" -io 2
5248 -ir tr
5249 -mf1 ar idb reg rl 18
5250 -mf2 ar reg
5251 -mf3 ar reg;
5252
5253 data 1 -do -9 6 "ace";
5254
5255 data 2 -do -100
5256 97 "*" 000 "b" 000 "d" 000;
5257
5258 data 3 000 000 000 022;
5259
5260
5261 page -all;
5262 /* tct4
5263 *
5264 * Test using 6 bit characters. The -cn field will specify that the string
5265 * starts at the 5th character of the word last character.
5266 */
5267
5268 inst tct -nt "Use 6 bit characters" -io 1
5269 -mf1 idb reg ar
5270 -mf2 reg ar
5271 -mf3 ar reg;
5272
5273 desc 1 -ns 10 -cn 5 -ta 6;
5274
5275 data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */
5276 0606060606 /* Filler, not part of string, 1st 5 characters of word. */
5277 010203 /* Page boundary. */
5278 040506 071011;
5279
5280 data 2 -do -4
5281 000 000 000 000
5282 000 000 006 000 000 000;
5283
5284 data 3 -do 4 006 000000 006;
5285
5286
5287 page -all;
5288 /* tct5
5289 *
5290 * The indexes in string 1 will be 4 bit characters.
5291 */
5292
5293 inst tct -nt "Use 4 bit characters" -io 2
5294 -mf1 idb ar reg
5295 -mf2 ar reg
5296 -mf3 ar reg;
5297
5298
5299 desc 1 -ns 8
5300 -ta 4 /* 4 bit characters. */
5301 -cn 2; /* First 2 characters of word not used.
5302 * This is the first 9 bit character. */
5303
5304 data 1 -do -2
5305 000 /* The first two characters of the word - skipped. */
5306 001 /* Characters "0" and "1". In page 1. */
5307 043 105 147; /* "234567" 4 bit in page 2. */
5308
5309 data 2 -do -4
5310 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */
5311 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */
5312
5313 data 3 "*" 000 000 005;
5314
5315
5316 page -all;
5317
5318
5319
5320 /* tct 6
5321 *
5322 * Test loading across three pages. One character loaded from
5323 * page 1 and 3. Test 6146 characters. Tally runout indicator
5324 * is set.
5325 */
5326
5327 inst tct -nt "6 bitno modif. tally is set"
5328 -io 1
5329 -ir tr
5330 -mf1 rl 6146 ;
5331
5332 desc 1 -cn 5 -ta 6 ;
5333
5334 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5335 000102030405
5336 128 000102030405060710111213141516172021222324252627 ;
5337
5338 data 2 -do -4 24 000 000 141 ;
5339
5340 data 3 000 000 014 002 ;
5341
5342 page -all ;
5343
5344 /* tct 7
5345 *
5346 * Test loading data across three pages. One character is loaded
5347 * from page 1 and 3 with 6146 characters tested. A nonzero
5348 * character is found in the test table.
5349 */
5350
5351 inst tct -nt "6 bitno mod. a nonzero entry"
5352 -mf1 rl 6146 ;
5353
5354 desc 1 -cn 5 -ta 6 ;
5355
5356 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5357 310102030405
5358 128 000102030405060710111213141516172021222324252627 ;
5359
5360 data 2 -do -4 24 000 000 141 ;
5361
5362 data 3 141 000 006 001 ;
5363
5364 page -all ;
5365
5366
5367
5368 /* tct 8
5369 *
5370 * Test similiar to tct 6. Test ar, reg, and rl for descriptor 1.
5371 *
5372 */
5373
5374 inst tct -nt "6 bitar,reg,rl. tally runout"
5375 -io 2
5376 -ir tr
5377 -mf1 ar reg rl 6146 ;
5378
5379 desc 1 -cn 5 -ta 6 ;
5380
5381 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5382 000102030405
5383 128 000102030405060710111213141516172021222324252627 ;
5384
5385 data 2 -do -4 24 000 000 141 ;
5386
5387 data 3 000 000 014 002 ;
5388
5389 page -all ;
5390
5391
5392
5393 /* tct 9
5394 *
5395 * Test similiar to tct 7. Test ar, reg, and rl modification
5396 * for descriptor 1. Test ar and reg modification for descriptor 1 and 2.
5397 *
5398 */
5399
5400 inst tct -nt "6 bitar,reg,rl.no tally runout"
5401 -io 1
5402 -mf1 ar reg rl 6146
5403 -mf2 ar reg
5404 -mf3 ar reg ;
5405
5406 desc 1 -cn 5 -ta 6 ;
5407
5408 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5409 310102030405
5410 128 000102030405060710111213141516172021222324252627 ;
5411
5412 data 2 -do -4 24 000 000 141 ;
5413
5414 data 3 141 000 006 001 ;
5415
5416 page -all ;
5417
5418
5419
5420 /* tct 10
5421 *
5422 * Test similiar to tct 6. Test indirect referencing
5423 * of descriptor 1. Test ar and reg modification for descriptors 2 and 3.
5424 */
5425
5426 inst tct -nt "6 bittest id. tally runout"
5427 -ir tr
5428 -mf1 id rl 6146
5429 -mf2 ar reg
5430 -mf3 ar reg ;
5431
5432 desc 1 -cn 5 -ta 6 ;
5433
5434 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5435 000102030405
5436 128 000102030405060710111213141516172021222324252627 ;
5437
5438 data 2 -do -4 24 000 000 141 ;
5439
5440 data 3 000 000 014 002 ;
5441
5442 page -all ;
5443
5444
5445
5446
5447 /* tct 11
5448 *
5449 * Test similiar to tct 7. Test indirect referencing of
5450 * descriptor 1.
5451 *
5452 */
5453
5454 inst tct -nt "6 bittest id. no tally runout"
5455 -io 2
5456 -mf1 id rl 6146 ;
5457
5458 desc 1 -cn 5 -ta 6 ;
5459
5460 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5461 310102030405
5462 128 000102030405060710111213141516172021222324252627 ;
5463
5464 data 2 -do -4 24 000 000 141 ;
5465
5466 data 3 141 000 006 001 ;
5467
5468 page -all ;
5469
5470
5471 /* tct 12
5472 *
5473 * Test similiar to tct 6. Test indirect referencing of descriptor 1
5474 * with ar modification of the indirect word. Also test reg
5475 * modification of descriptors 2 and 3.
5476 *
5477 */
5478
5479 inst tct -nt "6 bittest ida. tally runout"
5480 -io 1
5481 -ir tr
5482 -mf1 ida rl 6146
5483 -mf2 reg
5484 -mf3 reg ;
5485
5486 desc 1 -cn 5 -ta 6 ;
5487
5488 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5489 000102030405
5490 128 000102030405060710111213141516172021222324252627 ;
5491
5492 data 2 -do -4 24 000 000 141 ;
5493
5494 data 3 000 000 014 002 ;
5495
5496 page -all ;
5497
5498
5499
5500 /* tct 13
5501 *
5502 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5503 * with ar modification of the indirect word. Also test ar
5504 * modification of descriptors 2 and 3.
5505 *
5506 */
5507
5508 inst tct -nt "6 bittest ida. no tally runout"
5509 -mf1 ida rl 6146
5510 -mf2 ar
5511 -mf3 ar ;
5512
5513 desc 1 -cn 5 -ta 6 ;
5514
5515 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5516 310102030405
5517 128 000102030405060710111213141516172021222324252627 ;
5518
5519 data 2 -do -4 24 000 000 141 ;
5520
5521 data 3 141 000 006 001 ;
5522
5523 page -all ;
5524
5525
5526
5527 /* tct 14
5528 *
5529 * Test similiar to tct 6. Test indirect referencing of decriptor 1
5530 * with ar and reg modification of the indirect word.
5531 *
5532 */
5533
5534 inst tct -nt "6 bittest idb. tally runout"
5535 -io 2
5536 -ir tr
5537 -mf1 idb rl 6146 ;
5538
5539 desc 1 -cn 5 -ta 6 ;
5540
5541 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5542 000102030405
5543 128 000102030405060710111213141516172021222324252627 ;
5544
5545 data 2 -do -4 24 000 000 141 ;
5546
5547 data 3 000 000 014 002 ;
5548
5549 page -all ;
5550
5551
5552
5553 /* tct 15
5554 *
5555 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5556 * with ar and reg modification of the indirect word.
5557 *
5558 */
5559
5560 inst tct -nt "6 bittest idb. no tally runout"
5561 -mf1 idb rl 6146 ;
5562
5563 desc 1 -cn 5 -ta 6 ;
5564
5565 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5566 310102030405
5567 128 000102030405060710111213141516172021222324252627 ;
5568
5569 data 2 -do -4 24 000 000 141 ;
5570
5571 data 3 141 000 006 001 ;
5572
5573 page -all ;
5574
5575
5576
5577 /* tct 16
5578 *
5579 * Test similiar to tct 6. Test indirect referencing of descriptor 1
5580 * with ar and reg modification of the indirect word. Further the
5581 * descriptor has ar, reg, and rl modification.
5582 *
5583 */
5584
5585 inst tct -nt "6 bitidb,ar,reg. tally runout"
5586 -io 1
5587 -ir tr
5588 -mf1 idb ar reg rl 6146 ;
5589
5590 desc 1 -cn 5 -ta 6 ;
5591
5592 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5593 000102030405
5594 128 000102030405060710111213141516172021222324252627 ;
5595
5596 data 2 -do -4 24 000 000 141 ;
5597
5598 data 3 000 000 014 002 ;
5599
5600 page -all ;
5601
5602
5603
5604 /* tct 17
5605 *
5606 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5607 * with ar and reg modification of the indirect word. Further the
5608 * descriptor has ar, reg, and rl modification.
5609 *
5610 */
5611
5612 inst tct -nt "6bitidb,ar,reg.no tally runout"
5613 -io 2
5614 -mf1 idb ar reg rl 6146 ;
5615
5616 desc 1 -cn 5 -ta 6 ;
5617
5618 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5619 310102030405
5620 128 000102030405060710111213141516172021222324252627 ;
5621
5622 data 2 -do -4 24 000 000 141 ;
5623
5624 data 3 141 000 006 001 ;
5625
5626 page -all ;
5627
5628 /* tct 18
5629 *
5630 * Test for character match on the first character of page 3.
5631 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
5632 * ar and reg modification of descriptors 2 and 3.
5633 *
5634 */
5635
5636 inst tct -nt "6 bitmatch 1st char of page 3"
5637 -io 1
5638 -mf1 idb ar reg rl 6146
5639 -mf2 reg ar
5640 -mf3 reg ar ;
5641
5642 desc 1 -cn 5 -ta 6 ;
5643
5644 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5645 128 000102030405060710111213141516172021222324252627
5646 31 ;
5647
5648 data 2 -do -4 24 000 000 141 ;
5649
5650 data 3 141 000 014 001 ;
5651
5652 page -all ;
5653
5654
5655 /* tct 19
5656 *
5657 * Test for character match on the last character of page 1.
5658 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
5659 * ar and reg modification of descriptors 2 and 3.
5660 *
5661 */
5662
5663 inst tct -nt "6 bitmatch last char of page 1"
5664 -io 1
5665 -mf1 idb ar reg rl 6146
5666 -mf2 reg ar
5667 -mf3 reg ar ;
5668
5669 desc 1 -cn 5 -ta 6 ;
5670
5671 data 1 -do -4 " " 031 128 010203040506071011121314151617202122232425262700
5672 128 000102030405060710111213141516172021222324252627
5673 00 ;
5674
5675 data 2 -do -4 24 000 000 141 ;
5676
5677 data 3 141 000 000 000 ;
5678
5679 page -all ;
5680
5681
5682 ^L
5683
5684
5685 /* tctr1
5686 *
5687 * Out table will be indexed by the characters "abcde". "b" & "e" are the two
5688 * non zero entries. Start off with a simple test
5689 */
5690
5691 inst tctr -nt "Simple test";
5692
5693 desc 1 -ns 4;
5694
5695 data 1 "bace";
5696
5697 data 2 97 "*" /* These characters should never be referenced. */
5698 000 /* "a" */
5699 "b"
5700 000 /* "c" */
5701 "d"
5702 000 ; /* "e" */
5703
5704 data 3 "b" 000 000 003;
5705
5706 page -all;
5707 /* tctr2
5708 *
5709 * Same as tctr1 only we will move the data fields across page boundaries and
5710 * add modification.
5711 */
5712
5713 inst tctr -nt "Same as prev - fields X pg bound" -io 3
5714 -mf1 rl 4 ar reg idb
5715 -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */
5716
5717 -mf3 reg ar;
5718
5719 data 1 -do -3 "bace";
5720
5721 data 2 -do -100 97 "*" /* These characters should never be referenced. */
5722 000 /* "a" */
5723 "b"
5724 000 /* "c" */
5725 "d"
5726 000 ; /* "e" */
5727
5728 data 3 "b" 000 000 003;
5729
5730 page -all;
5731 /* tctr3
5732 *
5733 * Same as tctr2 except string 1 will be changed so we will have a
5734 * tally runout.
5735 */
5736
5737
5738 inst tctr -nt "Test tally runout" -io 2
5739 -ir tr
5740 -mf1 ar idb reg rl 18
5741 -mf2 ar reg
5742 -mf3 ar reg;
5743
5744 data 1 -do -9 6 "ace";
5745
5746 data 2 -do -100
5747 97 "*" 000 "b" 000 "d" 000;
5748
5749 data 3 000 000 000 022;
5750
5751
5752 page -all;
5753 /* tctr4
5754 *
5755 * Test using 6 bit characters. The -cn field will specify that the string
5756 * starts at the 5th character of the word last character.
5757 */
5758
5759 inst tctr -nt "Use 6 bit characters" -io 1
5760 -mf1 idb reg ar
5761 -mf2 reg ar
5762 -mf3 ar reg;
5763
5764 desc 1 -ns 10 -cn 5 -ta 6;
5765
5766 data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */
5767 0606060606 /* Filler, not part of string, 1st 5 characters of word. */
5768 010203 /* Page boundary. */
5769 040506 071011;
5770
5771 data 2 -do -4
5772 000 000 000 000
5773 000 000 006 000 000 000;
5774
5775 data 3 -do 4 006 000000 003;
5776
5777
5778 page -all;
5779 /* tctr5
5780 *
5781 * The indexes in string 1 will be 4 bit characters.
5782 */
5783
5784 inst tctr -nt "Use 4 bit characters" -io 2
5785 -mf1 idb ar reg
5786 -mf2 ar reg
5787 -mf3 ar reg;
5788
5789
5790 desc 1 -ns 8
5791 -ta 4 /* 4 bit characters. */
5792 -cn 2; /* First 2 characters of word not used.
5793 * This is the first 9 bit character. */
5794
5795 data 1 -do -2
5796 000 /* The first two characters of the word - skipped. */
5797 001 /* Characters "0" and "1". In page 1. */
5798 043 105 147; /* "234567" 4 bit in page 2. */
5799
5800 data 2 -do -4
5801 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */
5802 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */
5803
5804 data 3 "*" 000 000 002;
5805
5806
5807 page -all;
5808
5809
5810
5811 /* tctr 6
5812 *
5813 * Test loading across three pages. One character loaded from
5814 * page 1 and 3. Test 6146 characters. Tally runout indicator
5815 * is set.
5816 */
5817
5818 inst tctr -nt "6bitno modif. tally is set"
5819 -io 1
5820 -ir tr
5821 -mf1 rl 6146 ;
5822
5823 desc 1 -cn 5 -ta 6 ;
5824
5825 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5826 000102030405
5827 128 000102030405060710111213141516172021222324252627 ;
5828
5829 data 2 -do -4 24 000 000 141 ;
5830
5831 data 3 000 000 014 002 ;
5832
5833 page -all ;
5834
5835 /* tctr 7
5836 *
5837 * Test loading data across three pages. One character is loaded
5838 * from page 1 and 3 with 6146 characters tested. A nonzero
5839 * character is found in the test table.
5840 */
5841
5842 inst tctr -nt "6bitno modif. a nonzero entry"
5843 -mf1 rl 6146 ;
5844
5845 desc 1 -cn 5 -ta 6 ;
5846
5847 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5848 310102030405
5849 128 000102030405060710111213141516172021222324252627 ;
5850
5851 data 2 -do -4 24 000 000 141 ;
5852
5853 data 3 141 000 006 000 ;
5854
5855 page -all ;
5856
5857
5858
5859 /* tctr 8
5860 *
5861 * Test similiar to tctr 6. Test ar, reg, and rl for descriptor 1.
5862 *
5863 */
5864
5865 inst tctr -nt "6bitar,reg,rl. tally runout"
5866 -io 2
5867 -ir tr
5868 -mf1 ar reg rl 6146 ;
5869
5870 desc 1 -cn 5 -ta 6 ;
5871
5872 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5873 000102030405
5874 128 000102030405060710111213141516172021222324252627 ;
5875
5876 data 2 -do -4 24 000 000 141 ;
5877
5878 data 3 000 000 014 002 ;
5879
5880 page -all ;
5881
5882
5883
5884 /* tctr 9
5885 *
5886 * Test similiar to tctr 7. Test ar, reg, and rl modification
5887 * for descriptor 1. Test ar and reg modification for descriptor 1 and 2.
5888 *
5889 */
5890
5891 inst tctr -nt "6bitar,reg,rl. no tally runout"
5892 -io 1
5893 -mf1 ar reg rl 6146
5894 -mf2 ar reg
5895 -mf3 ar reg ;
5896
5897 desc 1 -cn 5 -ta 6 ;
5898
5899 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5900 310102030405
5901 128 000102030405060710111213141516172021222324252627 ;
5902
5903 data 2 -do -4 24 000 000 141 ;
5904
5905 data 3 141 000 006 000 ;
5906
5907 page -all ;
5908
5909
5910
5911 /* tctr 10
5912 *
5913 * Test similiar to tctr 6. Test indirect referencing
5914 * of descriptor 1. Test ar and reg modification for descriptors 2 and 3.
5915 */
5916
5917 inst tctr -nt "6bittest id. tally runout"
5918 -ir tr
5919 -mf1 id rl 6146
5920 -mf2 ar reg
5921 -mf3 ar reg ;
5922
5923 desc 1 -cn 5 -ta 6 ;
5924
5925 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5926 000102030405
5927 128 000102030405060710111213141516172021222324252627 ;
5928
5929 data 2 -do -4 24 000 000 141 ;
5930
5931 data 3 000 000 014 002 ;
5932
5933 page -all ;
5934
5935
5936
5937
5938 /* tctr 11
5939 *
5940 * Test similiar to tctr 7. Test indirect referencing of
5941 * descriptor 1.
5942 *
5943 */
5944
5945 inst tctr -nt "6bittest id. no tally runout"
5946 -io 2
5947 -mf1 id rl 6146 ;
5948
5949 desc 1 -cn 5 -ta 6 ;
5950
5951 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5952 310102030405
5953 128 000102030405060710111213141516172021222324252627 ;
5954
5955 data 2 -do -4 24 000 000 141 ;
5956
5957 data 3 141 000 006 000 ;
5958
5959 page -all ;
5960
5961
5962 /* tctr 12
5963 *
5964 * Test similiar to tctr 6. Test indirect referencing of descriptor 1
5965 * with ar modification of the indirect word. Also test reg
5966 * modification of descriptors 2 and 3.
5967 *
5968 */
5969
5970 inst tctr -nt "6bittest ida. tally runout"
5971 -io 1
5972 -ir tr
5973 -mf1 ida rl 6146
5974 -mf2 reg
5975 -mf3 reg ;
5976
5977 desc 1 -cn 5 -ta 6 ;
5978
5979 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5980 000102030405
5981 128 000102030405060710111213141516172021222324252627 ;
5982
5983 data 2 -do -4 24 000 000 141 ;
5984
5985 data 3 000 000 014 002 ;
5986
5987 page -all ;
5988
5989
5990
5991 /* tctr 13
5992 *
5993 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
5994 * with ar modification of the indirect word. Also test ar
5995 * modification of descriptors 2 and 3.
5996 *
5997 */
5998
5999 inst tctr -nt "6bittest ida. no tally runout"
6000 -mf1 ida rl 6146
6001 -mf2 ar
6002 -mf3 ar ;
6003
6004 desc 1 -cn 5 -ta 6 ;
6005
6006 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6007 310102030405
6008 128 000102030405060710111213141516172021222324252627 ;
6009
6010 data 2 -do -4 24 000 000 141 ;
6011
6012 data 3 141 000 006 000 ;
6013
6014 page -all ;
6015
6016
6017
6018 /* tctr 14
6019 *
6020 * Test similiar to tctr 6. Test indirect referencing of decriptor 1
6021 * with ar and reg modification of the indirect word.
6022 *
6023 */
6024
6025 inst tctr -nt "6bittest idb. tally runout"
6026 -io 2
6027 -ir tr
6028 -mf1 idb rl 6146 ;
6029
6030 desc 1 -cn 5 -ta 6 ;
6031
6032 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6033 000102030405
6034 128 000102030405060710111213141516172021222324252627 ;
6035
6036 data 2 -do -4 24 000 000 141 ;
6037
6038 data 3 000 000 014 002 ;
6039
6040 page -all ;
6041
6042
6043
6044 /* tctr 15
6045 *
6046 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
6047 * with ar and reg modification of the indirect word.
6048 *
6049 */
6050
6051 inst tctr -nt "6bittest idb. no tally runout"
6052 -mf1 idb rl 6146 ;
6053
6054 desc 1 -cn 5 -ta 6 ;
6055
6056 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6057 310102030405
6058 128 000102030405060710111213141516172021222324252627 ;
6059
6060 data 2 -do -4 24 000 000 141 ;
6061
6062 data 3 141 000 006 000 ;
6063
6064 page -all ;
6065
6066
6067
6068 /* tctr 16
6069 *
6070 * Test similiar to tctr 6. Test indirect referencing of descriptor 1
6071 * with ar and reg modification of the indirect word. Further the
6072 * descriptor has ar, reg, and rl modification.
6073 *
6074 */
6075
6076 inst tctr -nt "6bitidb,ar,reg. tally runout"
6077 -io 1
6078 -ir tr
6079 -mf1 idb ar reg rl 6146 ;
6080
6081 desc 1 -cn 5 -ta 6 ;
6082
6083 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6084 000102030405
6085 128 000102030405060710111213141516172021222324252627 ;
6086
6087 data 2 -do -4 24 000 000 141 ;
6088
6089 data 3 000 000 014 002 ;
6090
6091 page -all ;
6092
6093
6094
6095 /* tctr 17
6096 *
6097 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
6098 * with ar and reg modification of the indirect word. Further the
6099 * descriptor has ar, reg, and rl modification.
6100 *
6101 */
6102
6103 inst tctr -nt "6bitidb,ar,reg.no tally runout"
6104 -io 2
6105 -mf1 idb ar reg rl 6146 ;
6106
6107 desc 1 -cn 5 -ta 6 ;
6108
6109 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6110 310102030405
6111 128 000102030405060710111213141516172021222324252627 ;
6112
6113 data 2 -do -4 24 000 000 141 ;
6114
6115 data 3 141 000 006 000 ;
6116
6117 page -all ;
6118
6119 /* tctr 18
6120 *
6121 * Test for character match on the first character of page 3.
6122 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
6123 * ar and reg modification of descriptors 2 and 3.
6124 *
6125 */
6126
6127 inst tctr -nt "6bitmatch 1st char of page 3"
6128 -io 1
6129 -mf1 idb ar reg rl 6146
6130 -mf2 reg ar
6131 -mf3 reg ar ;
6132
6133 desc 1 -cn 5 -ta 6 ;
6134
6135 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6136 128 000102030405060710111213141516172021222324252627
6137 31 ;
6138
6139 data 2 -do -4 24 000 000 141 ;
6140
6141 data 3 141 000 000 000 ;
6142
6143 page -all ;
6144
6145
6146 /* tctr 19
6147 *
6148 * Test for character match on the last character of page 1.
6149 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
6150 * ar and reg modification of descriptors 2 and 3.
6151 *
6152 */
6153
6154 inst tctr -nt "6bitmatch last char of page 1"
6155 -io 1
6156 -mf1 idb ar reg rl 6146
6157 -mf2 reg ar
6158 -mf3 reg ar ;
6159
6160 desc 1 -cn 5 -ta 6 ;
6161
6162 data 1 -do -4 " " 031 128 010203040506071011121314151617202122232425262700
6163 128 000102030405060710111213141516172021222324252627
6164 00 ;
6165
6166 data 2 -do -4 24 000 000 141 ;
6167
6168 data 3 141 000 014 001 ;
6169
6170 page -all ;
6171
6172
6173 ^L
6174
6175
6176 /* scm1
6177 *
6178 * No match found in data 1 field so tally runout indicator will be ON.
6179 * CN field used in descriptor 1 and its data will cross a page boundary.
6180 */
6181
6182 inst scm -nt "Tally runout" -io 3
6183 -mc^G /* Mask = 007 octal. */
6184 -ir tr
6185 -mf1 ida
6186 -mf2 ar
6187 -mf3 ar reg;
6188
6189
6190 desc 1 -ns 3 -cn 3 -ta 9;
6191
6192 desc 2 -ns 4 -cn 1;
6193
6194
6195 data 1 -do -4
6196 000 000 000 /* Fill due to cn 3. */
6197 011 /* Part of string on page 1. */
6198 021 031; /* Part of string on page 2. */
6199
6200 data 2 -do -1 000 001;
6201
6202 data 3 000 000 000 003;
6203
6204 page -all;
6205 /* scm2
6206
6207 * simple test to determine if instruction
6208 * is working correctly. data is 9 bit
6209 * written in octal format to allow easy
6210 * comparison with the mask. this test
6211 * accesses all descriptors directly.
6212 *
6213 */
6214
6215 inst scm -nt "mc 8 9bit"
6216 -mc8;
6217
6218 desc 1 -ns 8 -ta 9;
6219
6220 data 1 060061062063064065066067;
6221
6222 data 2 047;
6223
6224 data 3 000 000 000 007;
6225
6226 page -all;
6227
6228
6229 /* scm3
6230
6231 * same data as test 2 but with data 1
6232 * split across page boundary. indirect
6233 * mod on desc 1 and 2.
6234 *
6235 */
6236
6237 inst scm -io 1 -nt "d1 split mc 8 9bit"
6238 -mc8
6239 -mf1 idb
6240 -mf2 idb;
6241
6242 desc 1 -ns 8 -ta 9;
6243
6244 data 1 -do -4 060061062063 064065066067;
6245
6246 data 2 047;
6247
6248 data 3 000 000 000 007;
6249
6250 page -all;
6251
6252 /* scm4
6253
6254 * same data config as test 2 but with
6255 * full desc mod.
6256 *
6257 */
6258
6259 inst scm -io 3 -nt "d1 split mc8 9bit"
6260 -mc8
6261 -mf1 idb ar reg rl 8
6262 -mf2 idb ar reg
6263 -mf3 ar reg;
6264
6265 desc 1 -ta 9;
6266
6267 data 1 060061062063064065066067;
6268
6269 data 2 047;
6270
6271 data 3 000 000 000 007;
6272
6273 page -all;
6274
6275
6276
6277 /* scm5
6278
6279 * test of the -cn option for desc 1 and 2
6280 * along with a varied of """mode of desc mod.
6281 * both data strings are split across page bound.
6282 *
6283 */
6284
6285 inst scm -io 2 -nt "mc8 no match 9bit"
6286 -ir tr
6287 -mc8
6288 -mf1 idb ar reg rl 6
6289 -mf2 ar
6290 -mf3 ar;
6291
6292 desc 1 -ta 9;
6293
6294 desc 2 -cn 3;
6295
6296 data 1 -do -2 000000 060061062063064066;
6297
6298 data 2 -do -1 000 000 000 047;
6299
6300 data 3 000 000 000 006 /* no match */;
6301
6302 page -all;
6303
6304
6305
6306 /* scm6
6307
6308 * data 1 wholey contained on page 0 and
6309 * data starting on word 0 of page 1; char 0.
6310 * all desc mod.
6311 *
6312 */
6313
6314 inst scm -io 1 -nt "mc8 d1 on p0 9bit"
6315 -mc8
6316 -mf1 idb ar reg
6317 -mf2 idb ar reg
6318 -mf3 ar reg;
6319
6320 desc 1 -ta 9 -ns 2 -cn 2;
6321
6322 data 1 -do -4 000000060067;
6323
6324 data 2 047;
6325
6326 data 3 000 000 000 001;
6327
6328 page -all;
6329
6330
6331
6332 /* scm7
6333
6334 * a variety of desc mod are used~ and the mask
6335 * is set so that there is no match. using the
6336 * using the same data as test 6.
6337 *
6338 */
6339
6340 inst scm -io 3 -nt "mc777 no match 9 bit"
6341 -mcÿ
6342 /* mc = 777 */
6343 -mf1 idr ar rl 2
6344 -mf2 ar reg
6345 -mf3 ar;
6346
6347 desc 1 -ta 9 -cn 2;
6348
6349 data 1 -do -4 000000060067;
6350
6351 data 2 047;
6352
6353 data 3 000 000 000 000;
6354
6355 page -all;
6356
6357
6358 /* scm 8
6359
6360 * the next four tests use the maximum amount of
6361 * data for string 1 to test the paging of the data
6362 * strings. this test will make sure the inst is operating
6363 * correctly using no desc mod.
6364 *
6365 */
6366
6367 inst scm -nt "d1 covers 3pp 9bit"
6368 -mc^A /* mc = 001 */
6369 /* mc = 001 */
6370 -mf1 rl 4352
6371 /* no desc mod.--all direct */;
6372
6373 desc 1 -ta 9 ;
6374
6375 data 1 -do -128 4351 062 066;
6376
6377 data 2 067;
6378
6379 data 3 000 000 010 377;
6380
6381 page -all;
6382
6383
6384
6385 /* scm9
6386
6387 * uses same data setup as test 8 but applies
6388 * maximum mod to descriptors.
6389 *
6390 */
6391
6392 inst scm -io 3 -nt "d1 covers 3 pp max desc mod 9b"
6393 -mc^A /* mc = 001 */
6394 -mf1 idb ar reg rl 4352
6395 -mf2 idb ar reg
6396 -mf3 ar reg;
6397
6398 desc 1 -ta 9;
6399
6400 data 1 -do -128 4351 062 066;
6401
6402 data 2 067;
6403
6404 data 3 000 000 010 377;
6405
6406 page -all;
6407
6408
6409
6410 /* scm10
6411
6412 * this test specifically tests the -cn option
6413 ** for data 2 along with forcing it to cross
6414 * a page boundary. all desc mods are taken.
6415 *
6416 */
6417
6418
6419 inst scm -io 1 -nt "d1 covers 3pp d2 split 9b"
6420 -mc^A /* mc = 001 */
6421 -mf1 idb ar reg rl 4352
6422 -mf2 idb ar reg
6423 -mf3 ar reg;
6424
6425 desc 1 -ta 9;
6426
6427 desc 2 -cn 1;
6428
6429 data 1 -do -128 4351 062 066;
6430
6431 data 2 -do -2 000067 000000;
6432
6433 data 3 000 000 010 377;
6434
6435 page -all;
6436
6437
6438 /* scm11
6439
6440 * there will be no match on this test. also,
6441 * a variety of desc mods are taken. note
6442 * tr indicator will be on.
6443 *
6444 */
6445
6446 inst scm -io 1 -nt "no match d1 covers 3pp 9bit"
6447 -mc^A /* mc = 001 */
6448 -ir tr
6449 -mf1 idb rl 4352
6450 -mf2 ar reg
6451 /* mf3 is direct */;
6452
6453 desc 1 -ta 9;
6454
6455 desc 2 -cn 1;
6456
6457 data 1 -do -128 4352 062;
6458
6459 data 2 -do -2 000067 000000;
6460
6461 data 3 000 000 010 400;
6462
6463 page -all;
6464 /* scm12
6465
6466 * this starts the sequence of seven
6467 * four bit data tests. this first
6468 * test makes sure that the inst is working
6469 * correctly without any desc. mod.
6470 *
6471 */
6472
6473 inst scm -nt "simple test 4 bit"
6474 -mc^A /* mc = 001 */
6475 /* mc = 001 */
6476 /* all the desc. are direct */;
6477
6478 desc 1 -ta 4 -ns 8;
6479
6480
6481 data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
6482
6483 data 2 360 /* 1111 */;
6484
6485
6486 data 3 000 000 000 001;
6487
6488 page -all;
6489
6490
6491
6492 /* scm13
6493
6494 * same as previous test but taking all of the
6495 * possible desc. mod.
6496 *
6497 */
6498
6499 inst scm -io 1 -nt " full desc mod 4bit"
6500 -mc^A /* mc = 001 */
6501 /* mc = 001 */
6502 -mf1 idb ar reg rl 8
6503 -mf2 idb ar reg
6504 -mf3 ar reg;
6505
6506 desc 1 -ta 4;
6507
6508 data 1 237 323 070 361;
6509
6510 data 2 360;
6511
6512 data 3 000 000 000 001;
6513
6514 page -all;
6515
6516
6517
6518 /* scm14
6519
6520 * changing the mask characters and offsetting
6521 * the first data string across a page boundary
6522 * with a variety of desc. mod.
6523 *
6524 */
6525
6526 inst scm -io 3 -nt "d1 split 4 bit"
6527 -mc?
6528 -mf1 ar
6529 -mf2 idb
6530 /* mf3 is direct */;
6531
6532 desc 1 -ta 4 -ns 8;
6533
6534 data 1 -do -2 237 323 /* page bound */ 070 361;
6535
6536 data 2 360;
6537
6538 data 3 000 000 000 000;
6539
6540 page -all;
6541
6542
6543
6544 /* scm15
6545
6546 * again using the same data but this time splitting
6547 * both strings across page bound. and exercising
6548 * the -cn option. all desc. mod. are taken.
6549 *
6550 */
6551
6552 inst scm -io 1 -nt "d1 and d2 split 4 bit"
6553 -mc?
6554 -mf1 idb ar reg
6555 -mf2 idb ar reg
6556 -mf3 ar reg;
6557
6558 desc 1 -ta 4 -ns 6 -cn 1;
6559
6560 desc 2 -cn 3;
6561
6562 data 1 -do -2 237 323 /* page boun. */ 070 361;
6563
6564 data 2 -do -3 000 000 360 /* page bound. */ 000;
6565
6566 data 3 000 000 000 000;
6567
6568 page -all;
6569
6570
6571
6572 /* scm16
6573
6574 * this time there will be no match with
6575 * the same parameters as test 15 with a mask of
6576 * 777.
6577 *
6578 */
6579
6580 inst scm -io 2 -nt "match on first char 4bit"
6581 -mcÿ
6582 -mf1 idb ar reg
6583 -mf2 idb ar reg
6584 -mf3 ar reg;
6585
6586 desc 1 -ta 4 -ns 8 -cn 1;
6587
6588 desc 2 -cn 3;
6589
6590 data 1 -do -2 237 323 070 361;
6591
6592 data 2 -do -3 000 000 360 000;
6593
6594 data 3 000 000 000 000;
6595
6596 page -all;
6597
6598
6599
6600 /* scm17
6601
6602 * the next three tests use the maximum amount
6603 * of data for string 1. this test uses a mask
6604 * of 000 but searches for a char which will not
6605 * match tr ind. no desc. mod.
6606 *
6607 */
6608
6609 inst scm -nt "mc=000 no mat d1 covers 3pp 4b"
6610 -mc^@ /* mc = 000 */
6611 -ir tr
6612 -mf1 rl 8704
6613 /* all desc. are direct */;
6614
6615 desc 1 -ta 4;
6616
6617 data 1 -do -128 1088 237323070361;
6618
6619 data 2 000;
6620
6621 data 3 000 000 021 000;
6622
6623 page -all;
6624
6625
6626
6627 /* scm18
6628
6629 * this test will force a match on a middle
6630 * char. all desc mods. are taken.
6631 *
6632 */
6633
6634 inst scm -io 2 -nt "d1 covers 3pp 4bit"
6635 -mc^A /* mc = 001 */
6636 -mf1 idb ar reg rl 8704
6637 -mf2 idb ar reg
6638 -mf3 ar reg;
6639
6640 desc 1 -ta 4;
6641
6642 data 1 -do -128 1087 237323070361 237 323 070 000;
6643
6644 data 2 000;
6645
6646 data 3 000 000 000 007;
6647
6648 page -all;
6649
6650
6651 /* scm19
6652
6653 * this test puts the second string on page 0
6654 * and tests the -cn option.
6655 *
6656 */
6657
6658 inst scm -io 2 -nt "d1 covers 3pp 4bit"
6659 -mc^A /* mc = 001 */
6660 -mf1 ida ar reg rl 8704
6661 -mf2 idr ar
6662 /* mf3 is direct */;
6663
6664 desc 1 -ta 4 ;
6665
6666 desc 2 -cn 3;
6667
6668 data 1 -do -128 1087 237323070361 237323070000;
6669
6670 data 2 -do -3 000 000 000 000;
6671
6672 data 3 000 000 000 007;
6673
6674
6675 page -all;
6676
6677
6678
6679 /* scm20
6680
6681 * the following tests use 6 bit data.
6682 * this test merely makes sure the instruction
6683 * is working correctly. direct mod on descriptors.
6684 *
6685 */
6686
6687 inst scm -nt "6bit"
6688 -mc
6689 /* all desc. are direct */;
6690
6691 desc 1 -ta 6 -ns 12;
6692
6693 data 1 414243444546 575051525353;
6694
6695 data 2 57;
6696
6697 data 3 000 000 000 006;
6698
6699 page -all;
6700
6701
6702
6703
6704 /* scm21
6705
6706 * same as previous test but with first string
6707 * split across page bound. and a variety
6708 * of desc. mods taken.
6709 *
6710 */
6711
6712 inst scm -io 1 -nt "di split 6bit"
6713 -mc^P /* mc = 020 */
6714 -mf1 ar reg
6715 -mf2 idb
6716 /* mf3 is direct */;
6717
6718 desc 1 -ta 6 -ns 12;
6719
6720 data 1 -do -4 414243444546 /*page bound */ 475051525354;
6721
6722 data 2 67;
6723
6724 data 3 000 000 000 006;
6725
6726 page -all;
6727
6728 /* scm22
6729
6730 * this is the same as test 22 except the mask
6731 * has been set to preclude a match tr on
6732 and different desc. mods. are taken.
6733 *
6734 */
6735
6736 inst scm -io 2 -nt "no match 6bit"
6737 -mc^G
6738 -ir tr
6739 -mf1 idb ar
6740 -mf2 ar reg
6741 -mf3 ar reg;
6742
6743 desc 1 -ta 6 -ns 12;
6744
6745 data 1 -do -4 414243444546 475051525354;
6746
6747 data 2 67;
6748
6749 data 3 000 000 000 014;
6750
6751 page -all;
6752
6753
6754 /* scm23
6755
6756 *this test exercises all the desc. mods.
6757 * and tests the rl and -cn options. it also
6758 * changes the mask char .
6759 *
6760 *
6761 */
6762
6763 inst scm -io 3 -nt "full desc mod 6bit"
6764 -mc^U /* mc = 025 */
6765 -mf1 idb ar reg rl 12
6766 -mf2 idb ar reg
6767 -mf3 ar reg;
6768
6769 desc 1 -ta 6;
6770
6771 desc 2 -cn 3;
6772
6773 data 1 -do -6 414243444546475051 525354;
6774
6775 data 2 -do -4 000000720000 /* page bound. */;
6776
6777 data 3 000 000 000 011;
6778
6779 page -all;
6780
6781
6782 /* scm24
6783
6784 * using the -cn option on both descriptors
6785 * direct mod on mf3 desc.
6786 *
6787 */
6788
6789 inst scm -io 2 -nt "d1 split 6bit"
6790 -mc^U /* mc = 025 */
6791 -mf1 ar rl 5
6792 -mf2 ar
6793 /* mf3 is direct */;
6794
6795 desc 1 -ta 6 -cn 4;
6796
6797 desc 2 -cn 2;
6798
6799 data 1 -do -4 000000005100 /*page bound. */ 525354;
6800
6801 data 2 -do -2 00007200 /* page bound. */;
6802
6803 data 3 000 000 000 002;
6804
6805 page -all;
6806
6807
6808 /* scm25
6809
6810 * this test and the next one uses the maximum amount
6811 * of char for string 1. this test forces a "no match"
6812 * condition ir tr on and takes the maximum mod.
6813 * on the desc.
6814 *
6815 */
6816
6817 inst scm -io 3 -nt "d1 covers 3pp no match 6b"
6818 -mc000
6819 -ir tr
6820 -mf1 idb ar reg rl 6528
6821 -mf2 idb ar reg
6822 -mf3 ar reg;
6823
6824 desc 1 -ta 6;
6825
6826 data 1 -do -128 1087 515151515151 515151515153;
6827
6828 data 2 52;
6829
6830 data 3 000 000 014 600;
6831
6832 page -all;
6833
6834
6835
6836 /* scm26
6837
6838 * same as previous test but a match occurs
6839 * on the last char.
6840 *
6841 */
6842
6843 inst scm -io 2 -nt "d1 covers 3pp 6bit"
6844 -mc^@ /* mc = 000 */
6845 -mf1 idb ar reg rl 6528
6846 -mf2 idb ar reg
6847 -mf3 ar reg;
6848
6849
6850 desc 1 -ta 6;
6851
6852 data 1 -do -128 1087 515151515151 515151515152;
6853
6854 data 2 52;
6855
6856 data 3 000 000 014 577;
6857
6858 page -all;
6859
6860
6861 ^L
6862
6863
6864 /* scmr1
6865 *
6866 * Same as scm only we will change the data of string 2 so that there is
6867 * a match.
6868 */
6869
6870 inst scmr -nt "Same as scm but strings match" -io 2
6871 -mc^G /* Mask = 007 octal. */
6872 -mf1 ida
6873 -mf2 ar
6874 -mf3 ar reg;
6875
6876
6877 desc 1 -ns 3 -cn 3 -ta 9;
6878
6879 desc 2 -cn 1;
6880
6881
6882 data 1 -do -4
6883 000 000 000 /* Fill due to cn 3. */
6884 011 /* Part of string on page 1. */
6885 021 033; /* Part of string on page 2. */
6886
6887 data 2 -do -1 000 013;
6888
6889 data 3 000 000 000 002;
6890
6891 page -all;
6892 /* scmr2
6893
6894 * simple test to determine if instruction
6895 * is working correctly. data is 9 bit
6896 * written in octal format to allow easy
6897 * comparison with the mask. this test
6898 * accesses all descriptors directly.
6899 *
6900 */
6901
6902 inst scmr -nt "mc8 simple test 9 bit"
6903 -mc8;
6904
6905 desc 1 -ns 8 -ta 9;
6906
6907 data 1 060061062063064065066067;
6908
6909 data 2 047;
6910
6911 data 3 000 000 000 000;
6912
6913 page -all;
6914
6915
6916 /* scmr3
6917
6918 * same data as test 2 but with data 1
6919 * split across page boundary. indirect
6920 * mod on desc 1 and 2.
6921 *
6922 */
6923
6924 inst scmr -io 1 -nt "d1 split 9bit"
6925 -mc8
6926 -mf1 idb
6927 -mf2 idb;
6928
6929 desc 1 -ns 8 -ta 9;
6930
6931 data 1 -do -4 060061062063 064065066067;
6932
6933 data 2 047;
6934
6935 data 3 000 000 000 000;
6936
6937 page -all;
6938
6939 /* scmr4
6940
6941 * same data config as test 2 but with
6942 * full desc mod.
6943 *
6944 */
6945
6946 inst scmr -io 3 -nt "d1 split 9bit"
6947 -mc8
6948 -mf1 idb ar reg rl 8
6949 -mf2 idb ar reg
6950 -mf3 ar reg;
6951
6952 desc 1 -ta 9;
6953
6954 data 1 060061062063064065066067;
6955
6956 data 2 047;
6957
6958 data 3 000 000 000 000;
6959
6960 page -all;
6961
6962
6963
6964 /* scmr5
6965
6966 * test of the -cn option for desc 1 and 2
6967 * along with a varied of """mode of desc mod.
6968 * both data strings are split across page bound.
6969 *
6970 */
6971
6972 inst scmr -io 2 -nt "no match 9bit"
6973 -ir tr
6974 -mc8
6975 -mf1 idb ar reg rl 6
6976 -mf2 ar
6977 -mf3 ar;
6978
6979 desc 1 -ta 9;
6980
6981 desc 2 -cn 3;
6982
6983 data 1 -do -2 000000 060061062063064066;
6984
6985 data 2 -do -1 000 000 000 047;
6986
6987 data 3 000 000 000 006 /* no match */;
6988
6989 page -all;
6990
6991
6992
6993 /* scmr6
6994
6995 * data 1 wholey contained on page 0 and
6996 * data starting on word 0 of page 1; char 0.
6997 * all desc mod.
6998 *
6999 */
7000
7001 inst scmr -io 1 -nt "d1 on p0 9bit"
7002 -mc8
7003 -mf1 idb ar reg
7004 -mf2 idb ar reg
7005 -mf3 ar reg;
7006
7007 desc 1 -ta 9 -ns 2 -cn 2;
7008
7009 data 1 -do -4 000000060067;
7010
7011 data 2 047;
7012
7013 data 3 000 000 000 000;
7014
7015 page -all;
7016
7017
7018
7019 /* scmr7
7020
7021 * a variety of desc mod are used~ and the mask
7022 * is set so that there is no match. using the
7023 * using the same data as test 6.
7024 *
7025 */
7026
7027 inst scmr -io 3 -nt "no match 9bit"
7028 -mcÿ
7029 /* mc = 777 */
7030 -mf1 idr ar rl 2
7031 -mf2 ar reg
7032 -mf3 ar;
7033
7034 desc 1 -ta 9 -cn 2;
7035
7036 data 1 -do -4 000000060067;
7037
7038 data 2 047;
7039
7040 data 3 000 000 000 000;
7041
7042 page -all;
7043
7044
7045 /* scmr 8
7046
7047 * the next four tests use the maximum amount of
7048 * data for string 1 to test the paging of the data
7049 * strings. this test will make sure the inst is operating
7050 * correctly using no desc mod.
7051 *
7052 */
7053
7054 inst scmr -nt "d1 covers 3pp 9bit"
7055 -mc^A /* mc = 001 */
7056 /* mc = 001 */
7057 -mf1 rl 4352
7058 /* no desc mod.--all direct */;
7059
7060 desc 1 -ta 9 ;
7061
7062 data 1 -do -128 066 4351 062;
7063
7064 data 2 067;
7065
7066 data 3 000 000 010 377;
7067
7068 page -all;
7069
7070
7071
7072 /* scmr9
7073
7074 * uses same data setup as test 8 but applies
7075 * maximum mod to descriptors.
7076 *
7077 */
7078
7079 inst scmr -io 3 -nt "d1 covers 3pp max desc mod 9b"
7080 -mc^A /* mc = 001 */
7081 -mf1 idb ar reg rl 4352
7082 -mf2 idb ar reg
7083 -mf3 ar reg;
7084
7085 desc 1 -ta 9;
7086
7087 data 1 -do -128 4351 062 066;
7088
7089 data 2 067;
7090
7091 data 3 000 000 000 000;
7092
7093 page -all;
7094
7095
7096
7097 /* scmr10
7098
7099 * this test specifically tests the -cn option
7100 ** for data 2 along with forcing it to cross
7101 * a page boundary. all desc mods are taken.
7102 *
7103 */
7104
7105
7106 inst scmr -io 1 -nt "d1 covers 3pp d2 split 9b"
7107 -mc^A /* mc = 001 */
7108 -mf1 idb ar reg rl 4352
7109 -mf2 idb ar reg
7110 -mf3 ar reg;
7111
7112 desc 1 -ta 9;
7113
7114 desc 2 -cn 1;
7115
7116 data 1 -do -128 066 4351 062;
7117
7118 data 2 -do -2 000067 000000;
7119
7120 data 3 000 000 010 377;
7121
7122 page -all;
7123
7124
7125 /* scmr11
7126
7127 * there will be no match on this test. also,
7128 * a variety of desc mods are taken. note
7129 * tr indicator will be on.
7130 *
7131 */
7132
7133 inst scmr -io 1 -nt "no match d1 covers 3pp 9bit"
7134 -mc^A /* mc = 001 */
7135 -ir tr
7136 -mf1 idb rl 4352
7137 -mf2 ar reg
7138 /* mf3 is direct */;
7139
7140 desc 1 -ta 9;
7141
7142 desc 2 -cn 1;
7143
7144 data 1 -do -128 4352 062;
7145
7146 data 2 -do -2 000067 000000;
7147
7148 data 3 000 000 010 400;
7149
7150 page -all;
7151 /* scmr12
7152
7153 * this starts the sequence of seven
7154 * four bit data tests. this first
7155 * test makes sure that the inst is working
7156 * correctly without any desc. mod.
7157 *
7158 */
7159
7160 inst scmr -nt "4bit simple test"
7161 -mc^A /* mc = 001 */
7162 /* all the desc. are direct */;
7163
7164 desc 1 -ta 4 -ns 8;
7165
7166
7167 data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
7168
7169 data 2 360 /* 1111 */;
7170
7171
7172 data 3 000 000 000 001;
7173
7174 page -all;
7175
7176
7177
7178 /* scmr13
7179
7180 * same as previous test but taking all of the
7181 * possible desc. mod.
7182 *
7183 */
7184
7185 inst scmr -io 1 -nt "full desc mod 4bit"
7186 -mc^A /* mc = 001 */
7187 -mf1 idb ar reg rl 8
7188 -mf2 idb ar reg
7189 -mf3 ar reg;
7190
7191 desc 1 -ta 4;
7192
7193 data 1 237 323 070 361;
7194
7195 data 2 360;
7196
7197 data 3 000 000 000 001;
7198
7199 page -all;
7200
7201
7202
7203 /* scmr14
7204
7205 * changing the mask characters and offsetting
7206 * the first data string across a page boundary
7207 * with a variety of desc. mod.
7208 *
7209 */
7210
7211 inst scmr -io 3 -nt "d1 split 4bit"
7212 -mc?
7213 -mf1 ar
7214 -mf2 idb
7215 /* mf3 is direct */;
7216
7217 desc 1 -ta 4 -ns 8;
7218
7219 data 1 -do -2 237 323 /* page bound */ 070 361;
7220
7221 data 2 360;
7222
7223 data 3 000 000 000 000;
7224
7225 page -all;
7226
7227
7228
7229 /* scmr15
7230
7231 * again using the same data but this time splitting
7232 * both strings across page bound. and exercising
7233 * the -cn option. all desc. mod. are taken.
7234 *
7235 */
7236
7237 inst scmr -io 1 -nt " d1,d" split 4 bit"
7238 -mc?
7239 -mf1 idb ar reg
7240 -mf2 idb ar reg
7241 -mf3 ar reg;
7242
7243 desc 1 -ta 4 -ns 6 -cn 1;
7244
7245 desc 2 -cn 3;
7246
7247 data 1 -do -2 237 323 /* page boun. */ 070 361;
7248
7249 data 2 -do -3 000 000 360 /* page bound. */ 000;
7250
7251 data 3 000 000 000 000;
7252
7253 page -all;
7254
7255
7256
7257 /* scmr16
7258
7259 * this time there will be no match with
7260 * the same parameters as test 15 with a mask of
7261 * 777. the tr indicator will be on.
7262 *
7263 */
7264
7265 inst scmr -io 2 -nt "match on first try 4 bit"
7266 -mcÿ
7267 -mf1 idb ar reg
7268 -mf2 idb ar reg
7269 -mf3 ar reg;
7270
7271 desc 1 -ta 4 -ns 8 -cn 1;
7272
7273 desc 2 -cn 3;
7274
7275 data 1 -do -2 237 323 070 361;
7276
7277 data 2 -do -3 000 000 360 000;
7278
7279 data 3 000 000 000 000;
7280
7281 page -all;
7282
7283
7284
7285 /* scmr17
7286
7287 * the next three tests use the maximum amount
7288 * of data for string 1. this test uses a mask
7289 * of 000 but searches for a char which will not
7290 * match tr ind. no desc. mod.
7291 *
7292 */
7293
7294 inst scmr -nt "no mat d1 covers 3pp 4b"
7295 -mc^@ /* mc = 000 */
7296 -ir tr
7297 -mf1 rl 8704
7298 /* all desc. are direct */;
7299
7300 desc 1 -ta 4;
7301
7302 data 1 -do -128 1088 237323070361;
7303
7304 data 2 000;
7305
7306 data 3 000 000 021 000;
7307
7308 page -all;
7309
7310
7311
7312 /* scmr18
7313
7314 * this test will force a match on a middle
7315 * char. all desc mods. are taken.
7316 *
7317 */
7318
7319 inst scmr -io 2 -nt "d1 covers 3 pp 4bit"
7320 -mc^A /* mc = 001 */
7321 -mf1 idb ar reg rl 8704
7322 -mf2 idb ar reg
7323 -mf3 ar reg;
7324
7325 desc 1 -ta 4;
7326
7327 data 1 -do -128 1087 237323070361 237 323 070 000;
7328
7329 data 2 000;
7330
7331 data 3 000 000 000 000;
7332
7333 page -all;
7334
7335
7336 /* scmr19
7337
7338 * this test puts the second string on page 0
7339 * and tests the -cn option.
7340 *
7341 */
7342
7343 inst scmr -io 2 -nt "d1 covers 3pp 4 bit"
7344 -mc^A /* mc = 001 */
7345 -mf1 ida ar reg rl 8704
7346 -mf2 idr ar
7347 /* mf3 is direct */;
7348
7349 desc 1 -ta 4 ;
7350
7351 desc 2 -cn 3;
7352
7353 data 1 -do -128 237323070000 1087 237323070361 ;
7354
7355 data 2 -do -3 000 000 000 000;
7356
7357 data 3 000 000 000 000;
7358
7359
7360 page -all;
7361
7362
7363
7364 /* scmr20
7365
7366 * the following tests use 6 bit data.
7367 * this test merely makes sure the instruction
7368 * is working correctly. direct mod on descriptors.
7369 *
7370 */
7371
7372 inst scmr -nt "simple test 6 bit"
7373 -mc
7374 /* all desc. are direct */;
7375
7376 desc 1 -ta 6 -ns 12;
7377
7378 data 1 414243444546 575051525353;
7379
7380 data 2 57;
7381
7382 data 3 000 000 000 005;
7383
7384 page -all;
7385
7386
7387
7388
7389 /* scmr21
7390
7391 * same as previous test but with first string
7392 * split across page bound. and a variety
7393 * of desc. mods taken.
7394 *
7395 */
7396
7397 inst scmr -io 1 -nt "d1 split 6bit"
7398 -mc^P /* mc - 020 */
7399 -mf1 ar reg
7400 -mf2 idb
7401 /* mf3 is direct */;
7402
7403 desc 1 -ta 6 -ns 12;
7404
7405 data 1 -do -4 414243444546 /*page bound */ 475051525354;
7406
7407 data 2 67;
7408
7409 data 3 000 000 000 005;
7410
7411 page -all;
7412
7413 /* scmr22
7414
7415 * this is the same as test 22 except the mask
7416 * has been set to preclude a match tr on
7417 and different desc. mods. are taken.
7418 *
7419 */
7420
7421 inst scmr -io 2 -nt "no match 6bit"
7422 -mc^G
7423 -ir tr
7424 -mf1 idb ar
7425 -mf2 ar reg
7426 -mf3 ar reg;
7427
7428 desc 1 -ta 6 -ns 12;
7429
7430 data 1 -do -4 414243444546 475051525354;
7431
7432 data 2 67;
7433
7434 data 3 000 000 000 014;
7435
7436 page -all;
7437
7438
7439 /* scmr23
7440
7441 *this test exercises all the desc. mods.
7442 * and tests the rl and -cn options. it also
7443 * changes the mask char .
7444 *
7445 *
7446 */
7447
7448 inst scmr -io 3 -nt "full desc mod 6bit"
7449 -mc^U /* mc = 025 */
7450 -mf1 idb ar reg rl 12
7451 -mf2 idb ar reg
7452 -mf3 ar reg;
7453
7454 desc 1 -ta 6;
7455
7456 desc 2 -cn 3;
7457
7458 data 1 -do -6 414243444546475051 525354;
7459
7460 data 2 -do -4 000000720000 /* page bound. */;
7461
7462 data 3 000 000 000 001;
7463
7464 page -all;
7465
7466
7467 /* scmr24
7468
7469 * using the -cn option on both descriptors
7470 * direct mod on mf3 desc.
7471 *
7472 */
7473
7474 inst scmr -io 2 -nt "d1 split 6bit"
7475 -mc^U /* mc = 025 */
7476 -mf1 ar rl 5
7477 -mf2 ar
7478 /* mf3 is direct */;
7479
7480 desc 1 -ta 6 -cn 4;
7481
7482 desc 2 -cn 2;
7483
7484 data 1 -do -4 000000005100 /*page bound. */ 525354;
7485
7486 data 2 -do -2 00007200 /* page bound. */;
7487
7488 data 3 000 000 000 001;
7489
7490 page -all;
7491
7492
7493 /* scmr25
7494
7495 * this test and the next one uses the maximum amount
7496 * of char for string 1. this test forces a "no match"
7497 * condition ir tr on and takes the maximum mod.
7498 * on the desc.
7499 *
7500 */
7501
7502 inst scmr -io 3 -nt "d1 covers 3pp no mat 6bit"
7503 -mc000
7504 -ir tr
7505 -mf1 idb ar reg rl 6528
7506 -mf2 idb ar reg
7507 -mf3 ar reg;
7508
7509 desc 1 -ta 6;
7510
7511 data 1 -do -128 1087 515151515151 515151515153;
7512
7513 data 2 52;
7514
7515 data 3 000 000 014 600;
7516
7517 page -all;
7518
7519
7520
7521 /* scmr26
7522
7523 * same as previous test but a match occurs
7524 * on the last char.
7525 *
7526 */
7527
7528 inst scmr -io 2 -nt "d1 covers 3pp 6bit"
7529 -mc^@ /* mc = 000 */
7530 -mf1 idb ar reg rl 6528
7531 -mf2 idb ar reg
7532 -mf3 ar reg;
7533
7534
7535 desc 1 -ta 6;
7536
7537 data 1 -do -128 515151515152 1087 515151515151 ;
7538
7539 data 2 52;
7540
7541 data 3 000 000 014 572;
7542
7543 page -all;
7544
7545
7546 ^L
7547
7548 /* mvn1
7549 *
7550 * a simple test to see if it works
7551 * 9 bit scaled leading sign to 9 bit scaled trailing sign
7552 *
7553 */
7554
7555 inst mvn -nt "simple"
7556 -io 2;
7557
7558 desc1 -nn 13 -sd l;
7559 desc2 -nn 14 -sd t;
7560
7561 data 1 -do 12 "+" 12 "9";
7562 data 2 "0" 12 "9" "+";
7563
7564 page -all;
7565
7566
7567
7568
7569
7570 /* mvn2
7571 * truncation fault taken
7572 * all page faults taken
7573 * integer to floating
7574 */
7575
7576 inst mvn -nt "truncation fault"
7577 -io 1 -tby -ir tn
7578 -mf1 ar rl 63 idb reg
7579 -mf2 ar rl 63 idb reg;
7580
7581 desc1 -cn 1 -sd l;
7582 desc2 -cn 1 -sd f;
7583
7584 data 1 -do -63 " " "+98" 15 "7435";
7585 data 2 000 "+" "98" 14 "7435" "743" 001;
7586
7587 page -all;
7588
7589
7590
7591
7592
7593 /* mvn3
7594 * this is a good test
7595 * all page faults taken
7596 * legal floating word developed
7597 * 9 bit scaled to 9 bit float
7598 *
7599 */
7600
7601 inst mvn -nt "int -> float"
7602 -io 1
7603
7604 -mf1 ar rl 23 idb reg
7605 -mf2 ar rl 28 idb reg;
7606
7607 desc1 -sf 13 -sd l -cn 3;
7608 desc2 -sd f -cn 2;
7609
7610 data 1 -do 25 " " "+" 5 "00" 12 "1";
7611 data 2 000000 "+" 4 "000" "00" 12 "1" 015;
7612
7613 page -all;
7614
7615
7616
7617
7618
7619 /* mvn4
7620 * all page faults taken
7621 * float to integer scale factor 12
7622 * 9 bit to 9 bit
7623 *
7624 */
7625
7626 inst mvn -nt "float to int"
7627 -io 1 -ir ng
7628 -mf1 ar rl 28 idb reg
7629 -mf2 ar rl 23 idb reg;
7630
7631 desc1 -sd f -cn 2;
7632 desc2 -sf 12 -sd l -cn 3;
7633
7634 data 1 -do 27 " -" 14 "0" 12 "1" 015;
7635 data 2 000000000 "-" 9 "0" 12 "1" "0";
7636
7637 page -all;
7638
7639
7640
7641
7642
7643 /* mvn5
7644 * 9 bit scaled to floating 9 bit
7645 *
7646 */
7647
7648 inst mvn -nt "scaled to floating"
7649 -io 1 -rb
7650 -mf1 ar rl 63 idb reg
7651 -mf2 ar rl 3 idb reg;
7652
7653 desc1 -sd n -sf 31;
7654 desc2 -sd f;
7655
7656 data 1 -do 62 "1" 62 "0";
7657 data 2 "+" "1" 135;
7658
7659 page -all;
7660
7661
7662
7663
7664
7665 /* mvn6
7666 * convert float 4 bit to
7667 * floating 9 bit
7668 *
7669 */
7670
7671 inst mvn -nt "float 9 -> float 4"
7672 -io 2
7673 -mf1 ar rl 3 idb reg
7674 -mf2 ar rl 4 idb;
7675
7676 desc1 -sd f;
7677 desc2 -sd f -tn 4;
7678
7679 data 1 -do -3 "+1" 135;
7680 data 2 301135;
7681
7682 page -all;
7683
7684
7685
7686
7687
7688 /* mvn7
7689 * 9 bit scaled to 4 bit floating
7690 * all page faults taken
7691 *
7692 */
7693 inst mvn -nt "9 scaled to 4 float"
7694 -io 3 -ir ng
7695 -mf1 ar rl 25 ida reg
7696 -mf2 ar rl 23 idb;
7697
7698 desc1 -sd t ;
7699 desc2 -sd f -cn 3 -tn 4;
7700
7701 data 1 -do -1 20 "0" 4 "3" "-";
7702 data 2 3 000 320 7 000 003 063 0600;
7703
7704 page -all;
7705
7706
7707
7708
7709
7710 /* mvn8
7711 * convert 9bit floating point to 4 bit scaled
7712 *
7713 */
7714 inst mvn -nt "9bit float to 4bit scaled"
7715 -io 2
7716 -mf1 ar rl 22 idb reg
7717 -mf2 ar rl 33 ida;
7718
7719 desc1 -sd f;
7720 desc2 -sd t -sf 5 -tn 4;
7721
7722 data 1 -do -8 "+" 11 "0" 3 "123" 006;
7723 data 2 11 000 022 061043022060 300;
7724
7725 page -all;
7726
7727
7728
7729
7730
7731 /* mvn9
7732 * convert 9 bit floating to 4 bit scaled
7733 *
7734 */
7735 inst mvn -nt "9bitfloat to 4 bit scaled"
7736 -io 1
7737 -mf1 ar rl 20 idb reg
7738 -mf2 ar rl 63 ida;
7739
7740 desc1 -sd f -cn 2;
7741 desc2 -sd l -tn 4 -cn 1;
7742
7743 data 1 " +" 9 "0" 4 "45" 060000;
7744 data 2 000300 26 000 105105105105 8 000;
7745
7746 page -all;
7747
7748
7749
7750
7751 /* mvn10
7752 * 9 bit scaled trailing sign to
7753 * 9 bit scaled leading sign
7754 */
7755 inst mvn -nt "simple"
7756 -io 1;
7757 desc1 -nn 14 -sd t;
7758 desc2 -nn 13 -sd l;
7759
7760 data 1 -do 12 "0" 12 "9" "+";
7761 data 2 "+" 12 "9";
7762
7763 page -all;
7764
7765
7766
7767
7768 /* mvn11
7769 * 9 bit float to 9 bit scaled leading sign
7770 */
7771
7772 inst mvn -nt "float to int"
7773 -io 1
7774 -mf1 ar rl 63 idb reg
7775 -mf2 ar rl 63 idb reg;
7776
7777 desc1 -cn 1 -sd f;
7778 desc2 -cn 1 -sd l;
7779
7780 data 1 -do -63 " " "+98" 14 "7435" "743" 001;
7781 data 2 000 "+98" 14 "7435" "7430";
7782
7783 page -all;
7784
7785
7786
7787
7788 /* mvn12
7789 * 9 bit float to 9 bit scaled negative indicator
7790 */
7791
7792 inst mvn -nt "float -> int"
7793 -io 2
7794 -mf1 ar rl 28 idb reg
7795 -mf2 ar rl 23 idb reg;
7796
7797 desc1 -sd f -cn 2;
7798 desc2 -sf 13 -sd l -cn 3;
7799
7800 data 1 -do 29 " +" 4 "000" "00" 12 "1" 015;
7801 data 2 000000000 "+" 5 "00" 12 "1";
7802
7803 page -all;
7804
7805
7806
7807
7808 /* mvn13
7809 * 9 bit scaled to 9 bit float
7810 * negative indicator on
7811 */
7812
7813 inst mvn -nt "int to float"
7814 -io 2 -ir ng
7815 -mf1 ar rl 23 idb reg
7816 -mf2 ar rl 28 idb reg;
7817
7818 desc1 -sf 12 -sd l -cn 3;
7819 desc2 -sd f -cn 2;
7820
7821 data 1 -do 25 " -" 9 "0" 12 "1" "0";
7822 data 2 000000 "-" 13 "0" 12 "1" "0" 014;
7823
7824 page -all;
7825
7826
7827
7828
7829 /* mvn14
7830 * 9 bit float to 9 bit scaled
7831 *
7832 */
7833
7834 inst mvn -nt "float to scaled"
7835 -io 2 -rb
7836 -mf1 ar rl 3 idb reg
7837 -mf2 ar rl 63 idb reg;
7838
7839 desc1 -sd f;
7840 desc2 -sd n -sf 31;
7841
7842 data 1 "+1" 135;
7843 data 2 "1" 62 "0";
7844
7845 page -all;
7846
7847
7848
7849
7850 /* mvn15
7851 * 4 bit float to 9 bit float
7852 *
7853 */
7854
7855 inst mvn -nt "float 4 -> float 9"
7856 -io 1
7857 -mf1 ar rl 4 idb
7858 -mf2 ar rl 3 idb reg;
7859
7860 desc1 -sd f -tn 4;
7861 desc2 -sd f;
7862
7863 data 1 -do 3 301135;
7864 data 2 "+1" 135;
7865
7866 page -all;
7867
7868
7869
7870
7871 /* mvn16
7872 * 4 bit floating to 9 bit scaled
7873 * truncation and negative indicators on
7874 *
7875 */
7876
7877 inst mvn -nt "4 float to 9 scaled"
7878 -io 1 -ir ng tn
7879 -mf1 ar rl 23 idb
7880 -mf2 ar rl 25 ida reg;
7881
7882 desc1 -sd f -cn 3 -tn 4;
7883 desc2 -sd t -sf 2;
7884
7885 data 1 -do 1 " " 320 7 000 003 063060000;
7886 data 2 22 "0" 2 "3" "-";
7887
7888 page -all;
7889
7890
7891
7892
7893 /* mvn17
7894 * 4 bit scaled to 9 bit floating
7895 *
7896 */
7897
7898 inst mvn -nt "4bit scaled to 9 bit float"
7899 -io 3
7900 -mf1 ar rl 33 ida
7901 -mf2 ar rl 22 idb reg;
7902
7903 desc1 -sd t -sf 5 -tn 4;
7904 desc2 -sd f;
7905
7906 data 1 11 000 022 061043022060 300;
7907 data 2 "+" 10 "0" 3 "123" "0" 005;
7908
7909 page -all;
7910
7911
7912
7913
7914 /* mvn18
7915 * 4 bit scaled to 9 bit floating
7916 :
7917 */
7918 inst mvn -nt "4bit scaled to 9 bit float"
7919 -io 2
7920 -mf1 ar rl 63 ida
7921 -mf2 ar rl 20 idb reg;
7922
7923 desc1 -sd l -tn 4 -cn 1;
7924 desc2 -sd f -cn 2;
7925
7926 data 1 " " 300 26 000 4 105 8 000;
7927 data 2 000000 "+" 9 "0" 4 "45" "0" 000;
7928
7929 page -all;
7930
7931
7932
7933
7934 /* mvn19
7935 * 9 bit scaled to 4 bit floating
7936 *
7937 */
7938
7939 inst mvn -nt "9 bit to 4 bit float"
7940 -io 3
7941 -mf1 ar rl 10 ida reg
7942 -mf2 ar rl 10 ;
7943
7944 desc1 -sd l -cn 1;
7945 desc2 -sd f -tn 4;
7946
7947 data 1 " +" 5 "0" 4 "1";
7948 data 2 300 000 021 021 000;
7949
7950 page -all;
7951
7952
7953
7954
7955 /* mvn20
7956 * 9 bit scaled to 4 bit floating
7957 *
7958 */
7959
7960 inst mvn -nt "9bit to 4 bit float"
7961 -mf1 ar rl 10 idb reg
7962 -mf2 ar rl 10;
7963
7964 desc1 -sd t -cn 2;
7965 desc2 -sd f-tn 4;
7966
7967 data 1 " " 5 "0" 4 "2" "+";
7968 data 2 300 000 042 042 000;
7969
7970 page -all;
7971
7972
7973
7974
7975 /* mvn21
7976 *
7977 * Move +12.34 into 12.3400+. Length of string 2 will be too short to handle
7978 * increased scaling factor so there will be significant digit overflow.
7979 */
7980
7981 inst mvn -nt "Sig digit overflow" -io 1
7982 -ir ov
7983 -mf1 ar rl 5
7984 -mf2 idr;
7985
7986
7987 desc 1 -cn 2 -sd l -sf -2;
7988
7989 desc 2 -sd t -sf -3 -nn 5;
7990
7991
7992 data 1 -do -5
7993 000 000 /* Fill for cn. */
7994 053 "12" /* Page 1. */
7995 "34"; /* Page 2. */
7996
7997 data 2 -do -4
7998 "2340" 053;
7999
8000
8001 page -all;
8002
8003
8004
8005
8006 /* mvn22
8007 *
8008 * Move float dec59 = +1e+58 into fixed dec590 to
8009 * ensure all digits are moved with no overflow or truncation indicator.
8010 */
8011
8012 inst mvn -nt "float 1e+58 to leading sign - no overflow"
8013 -io 1
8014 -mf1 ar id
8015 -mf2 ar rl 60;
8016
8017
8018 desc 1 -sd f -nn 61; /* float dec59 */
8019
8020 desc 2 -sd l -sf 0; /* fixed dec590 */
8021
8022
8023 data 1 "+" 58 "0" "1" /* +00...01 */
8024 072 /* e+58 */
8025 -do -5;
8026
8027 data 2 "+1" 58 "0" /* +100...0 */
8028 -do -4;
8029
8030
8031 page -all;
8032
8033
8034
8035 /* mvn23
8036 *
8037 * Move float dec59 = +1e+59 into fixed dec590 to
8038 * ensure all digits are moved; expect overflow indicator.
8039 */
8040
8041 inst mvn -nt "float 1e+59 to leading sign - overflow expected"
8042 -ir zr ov om /* expect zero & overflow; overflow fault masked */
8043 -io 1
8044 -mf1 ar id
8045 -mf2 ar rl 60;
8046
8047
8048 desc 1 -sd f -nn 61; /* float dec59 */
8049
8050 desc 2 -sd l -sf 0; /* fixed dec590 */
8051
8052
8053 data 1 "+" 58 "0" "1" /* +00...01 */
8054 073 /* e+59 */
8055 -do -5;
8056
8057 data 2 "+" 59 "0" /* +000...0 because overflow occurs */
8058 -do -4;
8059
8060
8061 page -all;
8062
8063
8064
8065 /* mvn24
8066 *
8067 * Move float dec59 = +1e+64 into fixed dec590 to
8068 * ensure all digits are moved; expect overflow indicator.
8069 */
8070
8071 inst mvn -nt "float 1e+64 to leading sign - overflow expected"
8072 -ir zr ov om /* expect zero & overflow; overflow fault masked */
8073 -io 1
8074 -mf1 ar id
8075 -mf2 ar rl 60;
8076
8077
8078 desc 1 -sd f -nn 61; /* float dec59 */
8079
8080 desc 2 -sd l -sf 0; /* fixed dec590 */
8081
8082
8083 data 1 "+" 58 "0" "1" /* +00...01 */
8084 100 /* e+64 */
8085 -do -5;
8086
8087 data 2 "+" 59 "0" /* +000...0 because overflow occurs */
8088 -do -4;
8089
8090
8091 page -all;
8092
8093
8094
8095 /* mvn25
8096 *
8097 * Move float dec59 = +1e+65 into fixed dec590 to
8098 * ensure all digits are moved; expect overflow indicator.
8099 * Before MVN_overflow fix, this does not set overflow indicator.
8100 */
8101
8102 inst mvn -nt "float 1e+65 to leading sign - overflow expected"
8103 -ir zr ov om /* expect zero & overflow; overflow fault masked */
8104 -io 1
8105 -mf1 ar id
8106 -mf2 ar rl 60;
8107
8108
8109 desc 1 -sd f -nn 61; /* float dec59 */
8110
8111 desc 2 -sd l -sf 0; /* fixed dec590 */
8112
8113
8114 data 1 "+" 58 "0" "1" /* +00...01 */
8115 101 /* e+65 */
8116 -do -5;
8117
8118 data 2 "+" 59 "0" /* +000...0 because overflow occurs */
8119 -do -4;
8120
8121
8122 page -all;
8123
8124
8125
8126 /* mvn26
8127 *
8128 * Move float dec59 = +1e+127 into fixed dec590 to
8129 * ensure all digits are moved; expect overflow indicator.
8130 * Before MVN_overflow fix, this does not set overflow indicator.
8131 */
8132
8133 inst mvn -nt "float 1e+127 to leading sign - overflow expected"
8134 -ir zr ov om /* expect zero & overflow; overflow fault masked */
8135 -io 1
8136 -mf1 ar id
8137 -mf2 ar rl 60;
8138
8139
8140 desc 1 -sd f -nn 61; /* float dec59 */
8141
8142 desc 2 -sd l -sf 0; /* fixed dec590 */
8143
8144
8145 data 1 "+" 58 "0" "1" /* +00...01 */
8146 177 /* e+127 */
8147 -do -5;
8148
8149 data 2 "+" 59 "0" /* +000...0 because overflow occurs */
8150 -do -4;
8151
8152
8153 page -all;
8154
8155
8156 ^L
8157
8158 /* CMPN
8159 *
8160 * The CMPN instruction algebtaically compares two numbers and sets the
8161 * zero, negative, and carry indicators to indicate the results of the
8162 * comparison. The five possible settings of the indicators and the inputs
8163 * which cause the settings are shown below:
8164 *
8165 * ZR NG CR INPUTS INPUT
8166 * COMBINATION
8167 * NUMBER
8168 *
8169
8170 * 0 0 1 neg,pos,N1<N2 1
8171 * 0 0 1 pos,pos,N1<N2 2
8172 * 1 0 1 neg,neg,N1=N2 3
8173 * 1 0 1 pos,pos,N1=N2 4
8174 * 0 1 1 neg,neg,N1<N2 5
8175 * 0 1 1 pos,neg,N1<N2 6
8176 * 0 1 0 pos,neg,N1>N2 7
8177 * 0 1 0 pos,pos,N1>N2 8
8178 * 0 0 0 neg,neg,N1>N2 9
8179 * 0 0 0 neg,pos,N1>N2 10
8180 *
8181 *
8182 * where neg,neg,N1<N2 means that the 1st operand is negative,
8183 * the second operand is negative, and the absolute value of the ist
8184 * operand is less than the absolute value of the 2nd.
8185 *
8186 *
8187 * Each of the even numbered input combinations is tested with:
8188 *
8189 * 1). both of the numbers 9-bit decimal and floating point,
8190 * 2). both of the numbers 9-bit decimal with leading sign,
8191 * 3) both of the numbers 9-bit decimal with trailing sign,
8192 * 4). where possible, both of the numbers 9-bit decimal and unsigned.
8193 *
8194 *
8195 * Each of the odd numbered input combinations is tested with:
8196 *
8197 * 1). both of the numbers 4-bit decimal and floating point,
8198 * 2). both of the numbers 4-bit decimal with leading sign,
8199 * 3). both of the numbers 4-bit decimal with trailing sign,
8200 * 4). where possible, both of the numbers 4-bit decimal and unsigned.
8201 *
8202 *
8203 */
8204
8205
8206
8207
8208
8209 /* cmpn1
8210 * The carry indicator is set.
8211 * Two 4-bit trailing sign operands are used.
8212 * The maximum number of page faults is taken.
8213 * Indirect descriptors are used for all operands.
8214 * Address register modification is used for all operands. */
8215
8216 inst cmpn
8217 -nt "Compare 4-bit neg with 4-bit pos"
8218 -ir cr
8219 -mf1 idb ar
8220 -mf2 idb ar rl 5
8221 -io 2;
8222
8223 desc 1 -tn 4 -sd t -nn 5;
8224 desc 2 -tn 4 -sd t;
8225
8226 data 1 -do -2 "76" 32;
8227 data 2 -do -2 "98" 26;
8228
8229 page -all;
8230
8231
8232 /* cmpn2
8233 * The carry indicator is set.
8234 * Two 4-bit leading sign operands are used.
8235 * The maximum number of page faults is taken.
8236 * Indirect descriptors are used for all operands.
8237 * Address register modification is used for all operands. */
8238
8239 inst cmpn
8240 -nt "Compare 4-bit neg with 4-bit pos"
8241 -ir cr
8242 -mf1 idb ar rl 13
8243 -mf2 idb ar
8244 -io 1;
8245
8246 desc 1 -tn 4 -sd l -sf -1;
8247 desc 2 -tn 4 -sd l -sf -2 -nn 16;
8248
8249 data 1 -do -2 325 "98642" 00;
8250 data 2 -do -3 262 "3278411";
8251
8252 page -all;
8253
8254
8255 /* cmpn3
8256 * The carry indicator is set.
8257 * Two 4-bit floating point operands are used.
8258 * The maximum number of page faults is taken.
8259 * Indirect descriptors are used for all operands.
8260 * Address register modification is used for all operands. */
8261
8262 inst cmpn
8263 -nt "Compare 4-bit neg with 4-bit pos"
8264 -ir cr
8265 -mf1 idb ar
8266 -mf2 idb ar
8267 -io 2;
8268
8269 desc 1 -tn 4 -sd f -nn 12;
8270 desc 2 -tn 4 -sd f -nn 12;
8271
8272 data 1 -do -2 323 "98762";
8273 data 2 -do -1 264 "32943";
8274
8275 page -all;
8276
8277
8278 /* cmpn4
8279 * The carry indicator is set.
8280 * Two 9-bit unsigned operands are used.
8281 * The maximum number of page faults is taken.
8282 * Indirect descriptors are used for all operands.
8283 * Address register modification is used for all operands. */
8284
8285 inst cmpn
8286 -nt "Compare 9-bit pos with 9-bit pos"
8287 -ir cr
8288 -mf1 idb ar reg
8289 -mf2 idb ar reg
8290 -io 1;
8291
8292 desc 1 -sd n -sf 4 -nn 63;
8293 desc 2 -sd n -sf 5 -nn 63;
8294
8295 data 1 -do -1 15"9834" "395";
8296 data 2 -do -62 15"8765" "147";
8297
8298 page -all;
8299
8300
8301 /* cmpn5
8302 * The carry indicator is set.
8303 * Two 9-bit trailing sign operands are used.
8304 * The maximum number of page faults is taken.
8305 * Indirect descriptors are used for all operands.
8306 * Address register modification is used for all operands. */
8307
8308 inst cmpn
8309 -nt "Compare 9-bit pos with 9-bit pos"
8310 -ir cr
8311 -mf1 idb ar reg
8312 -mf2 idb ar reg
8313 -io 3;
8314
8315 desc 1 -sd t -sf -2 -nn 14;
8316 desc 2 -sd t -sf 12 -nn 14;
8317
8318 data 1 -do -13 4"298" "3" 053;
8319 data 2 -do -13 4"687" "2" 053;
8320
8321 page -all;
8322
8323
8324 /* cmpn6
8325 * The carry indicator is set.
8326 * Two 9-bit leading sign operands are used.
8327 * The maximum number of page faults is taken.
8328 * Indirect descriptors are used for all operands.
8329 * Address register modification is used for all operands. */
8330
8331 inst cmpn
8332 -nt "Compare 9-bit pos with 9-bit pos"
8333 -ir cr
8334 -mf1 idb ar reg
8335 -mf2 idb ar reg
8336 -io 2;
8337
8338 desc 1 -sd l -sf 2 -nn 12;
8339 desc 2 -sd l -sf 3 -nn 12;
8340
8341 data 1 -do -4 053 11"3";
8342 data 2 -do -4 053 11"2";
8343
8344 page -all;
8345
8346
8347 /* cmpn7
8348 * The carry indicator is set.
8349 * Two 9-bit floating point operands are used.
8350 * The maximum number of page faults is taken.
8351 * Indirect descriptors are used for all operands.
8352 * Address register modification is used for all operands. */
8353
8354 inst cmpn
8355 -nt "Compare 9-bit pos with 9-bit pos"
8356 -ir cr
8357 -mf1 idb ar reg rl 9
8358 -mf2 idb ar reg
8359 -io 1;
8360
8361 desc 1 -sd f;
8362 desc 2 -sd f -nn 8;
8363
8364 data 1 -do -8 053 "7654321" 377;
8365 data 2 -do -1 053 "987654" 002;
8366
8367 page -all;
8368
8369
8370 /* cmpn8
8371 * The zero indicator is set.
8372 * The carry indicator is set.
8373 * Two 4-bit trailing sign operands are used.
8374 * The maximum number of page faults is taken.
8375 * Indirect descriptors are used for all operands.
8376 * Address register modification is used for all operands. */
8377
8378 inst cmpn
8379 -nt "Compare 4-bit neg with 4-bit neg"
8380 -ir zr cr
8381 -mf1 idb ar
8382 -mf2 idb ar rl 4
8383 -io 2;
8384
8385 desc 1 -tn 4 -sd t -nn 4;
8386 desc 2 -tn 4 -sd t;
8387
8388 data 1 -do -1 "7" 035;
8389 data 2 -do -1 "7" 035;
8390
8391 page -all;
8392
8393
8394 /* cmpn9
8395 * The zero indicator is set.
8396 * The carry indicator is set.
8397 * Two 4-bit leading sign operands are used.
8398 * The maximum number of page faults is taken.
8399 * Indirect descriptors are used for all operands.
8400 * Address register modification is used for all operands. */
8401
8402 inst cmpn
8403 -nt "Compare 4-bit neg with 4-bit neg"
8404 -ir zr cr
8405 -mf1 idb ar rl 63
8406 -mf2 idb ar rl 63
8407 -io 1;
8408
8409 desc 1 -tn 4 -sd l -sf 3;
8410 desc 2 -tn 4 -sd l -sf 3;
8411
8412 data 1 -do -31 32 31"5";
8413 data 2 -do -1 32 31"5";
8414
8415 page -all;
8416
8417
8418 /* cmpn10
8419 * The zero indicator is set.
8420 * The carry indicator is set.
8421 * Two 4-bit floating point operands are used.
8422 * The maximum number of page faults is taken.
8423 * Indirect descriptors are used for all operands.
8424 * Address register modification is used for all operands. */
8425
8426 inst cmpn
8427 -nt "Compare 4-bit neg with 4-bit neg"
8428 -ir zr cr
8429 -mf1 idb ar
8430 -mf2 idb ar
8431 -io 2;
8432
8433 desc 1 -tn 4 -sd f -nn 8;
8434 desc 2 -tn 4 -sd f -nn 8;
8435
8436 data 1 -do -1 325 "495";
8437 data 2 -do -2 325 "495";
8438
8439 page -all;
8440
8441
8442 /* cmpn11
8443 * The zero indicator is set.
8444 * The carry indicator is set.
8445 * Two 9-bit unsigned operands are used.
8446 * The maximum number of page faults is taken.
8447 * Indirect descriptors are used for all operands.
8448 * Address register modification is used for all operands. */
8449
8450 inst cmpn
8451 -nt "Compare 9-bit pos with 9-bit pos"
8452 -ir zr cr
8453 -mf1 idb ar reg rl 3
8454 -mf2 idb ar reg
8455 -io 1;
8456
8457 desc 1 -sd n -sf 1;
8458 desc 2 -sd n -sf 1 -nn 3;
8459
8460 data 1 -do -2 "432";
8461 data 2 -do -1 "432";
8462
8463 page -all;
8464
8465
8466 /* cmpn12
8467 * The zero indicator is set.
8468 * The carry indicator is set.
8469 * Two 9-bit trailing sign operands are used.
8470 * The maximum number of page faults is taken.
8471 * Indirect descriptors are used for all operands.
8472 * Address register modification is used for all operands. */
8473
8474 inst cmpn
8475 -nt "Compare 9-bit pos with 9-bit pos"
8476 -ir zr cr
8477 -mf1 idb ar reg rl 63
8478 -mf2 idb ar reg rl 63
8479 -io 2;
8480
8481 desc 1 -sd t;
8482 desc 2 -sd t;
8483
8484 data 1 -do -62 12"98765" "28" 053;
8485 data 2 -do -61 12"98765" "28" 053;
8486
8487 page -all;
8488
8489
8490
8491 /* cmpn13
8492 * The zero indicator is set.
8493 * The carry indicator is set.
8494 * Two 9-bit leading sign operands are used.
8495 * The maximum number of page faults is taken.
8496 * Indirect descriptors are used for all operands.
8497 * Address register modification is used for all operands. */
8498
8499 inst cmpn
8500 -nt "Compare 9-bit pos with 9-bit pos"
8501 -ir zr cr
8502 -mf1 idb ar reg
8503 -mf2 idb ar reg
8504 -io 2;
8505
8506 desc 1 -sd l -sf -8 -nn 18;
8507 desc 2 -sd l -sf -8 -nn 18;
8508
8509 data 1 -do -16 053 5"369" "00";
8510 data 2 -do -15 053 5"369" "00";
8511
8512 page -all;
8513
8514
8515
8516 /* cmpn14
8517 * The zero indicator is set.
8518 * The carry indicator is set.
8519 * Two 9-bit floating point operands are used.
8520 * The maximum number of page faults is taken.
8521 * Indirect descriptors are used for all operands.
8522 * Address register modification is used for all operands. */
8523
8524 inst cmpn
8525 -nt "Compare 9-bit pos with 9-bit pos"
8526 -ir zr cr
8527 -mf1 idb ar reg
8528 -mf2 idb ar reg
8529 -io 1;
8530
8531 desc 1 -sd f -nn 39;
8532 desc 2 -sd f -nn 39;
8533
8534 data 1 -do -30 053 6"125897" "4" 017;
8535 data 2 -do -24 053 6"125897" "4" 017;
8536
8537 page -all;
8538
8539
8540 /* cmpn15
8541 * The negative indicator is set.
8542 * The carry indicator is set.
8543 * Two 4-bit trailing sign operands are used.
8544 * The maximum number of page faults is taken.
8545 * Indirect descriptors are used for all operands.
8546 * Address register modification is used for all operands. */
8547
8548 inst cmpn
8549 -nt "Compare 4-bit neg with 4-bit neg"
8550 -ir ng cr
8551 -mf1 idb ar
8552 -mf2 idb ar
8553 -io 3;
8554
8555 desc 1 -tn 4 -sd t -sf -1 -nn 13;
8556 desc 2 -tn 4 -sd t -sf 1 -nn 63;
8557
8558 data 1 -do -1 "123456" 32;
8559 data 2 -do -30 15"12" "9" 32;
8560
8561 page -all;
8562
8563
8564 /* cmpn16
8565 * The negative indicator is set.
8566 * The carry indicator is set.
8567 * Two 4-bit leading sign operands are used.
8568 * The maximum number of page faults is taken.
8569 * Indirect descriptors are used for all operands.
8570 * Address register modification is used for all operands. */
8571
8572 inst cmpn
8573 -nt "Compare 4-bit neg with 4-bit neg"
8574 -ir ng cr
8575 -mf1 idb ar
8576 -mf2 idb ar
8577 -io 2;
8578
8579 desc 1 -tn 4 -sd l -sf 1 -nn 6;
8580 desc 2 -tn 4 -sd l -sf 2 -nn 6;
8581
8582 data 1 -do -2 321 "44";
8583 data 2 -do -2 321 "44";
8584
8585 page -all;
8586
8587
8588 /* cmpn17
8589 * The negative indicator is set.
8590 * The carry indicator is set.
8591 * Two 4-bit floating point operands are used.
8592 * The maximum number of page faults is taken.
8593 * Indirect descriptors are used for all operands.
8594 * Address register modification is used for all operands. */
8595
8596 inst cmpn
8597 -nt "Compare 4-bit neg with 4-bit neg"
8598 -ir ng cr
8599 -mf1 idb ar
8600 -mf2 idb ar
8601 -io 2;
8602
8603 desc 1 -tn 4 -sd f -nn 5;
8604 desc 2 -tn 4 -sd f -nn 5;
8605
8606 data 1 -do -1 324 "5" 00;
8607 data 2 -do -1 327 "6" 00;
8608
8609 page -all;
8610
8611
8612 /* cmpn18
8613 * The negative indicator is set.
8614 * The carry indicator is set.
8615 * Two 9-bit trailing sign operands are used.
8616 * The maximum number of page faults is taken.
8617 * Indirect descriptors are used for all operands.
8618 * Address register modification is used for all operands. */
8619
8620 inst cmpn
8621 -nt "Compare 9-bit pos with 9-bit neg"
8622 -ir ng cr
8623 -mf1 idb ar reg
8624 -mf2 idb ar reg
8625 -io 1;
8626
8627 desc 1 -sd t -nn 8;
8628 desc 2 -sd t -nn 9;
8629
8630 data 1 -do -4 "4567821" 053;
8631 data 2 -do -8 "92814372" 055;
8632
8633 page -all;
8634
8635
8636 /* cmpn19
8637 * The negative indicator is set.
8638 * The carry indicator is set.
8639 * Two 9-bit leading sign operands are used.
8640 * The maximum number of page faults is taken.
8641 * Indirect descriptors are used for all operands.
8642 * Address register modification is used for all operands. */
8643
8644 inst cmpn
8645 -nt "Compare 9-bit pos with 9-bit neg"
8646 -ir ng cr
8647 -mf1 idb ar reg
8648 -mf2 idb ar reg
8649 -io 2;
8650
8651 desc 1 -sd l -sf -5 -nn 63;
8652 desc 2 -sd l -sf -4 -nn 63;
8653
8654 data 1 -do -60 053 "92" 15"6391";
8655 data 2 -do -4 055 "82" 15"7482";
8656
8657 page -all;
8658
8659
8660
8661 /* cmpn20
8662 * The negative indicator is set.
8663 * The carry indicator is set.
8664 * Two 9-bit floating point operands are used.
8665 * The maximum number of page faults is taken.
8666 * Indirect descriptors are used for all operands.
8667 * Address register modification is used for all operands. */
8668
8669 inst cmpn
8670 -nt "Compare 9-bit pos with 9-bit neg"
8671 -ir ng cr
8672 -mf1 idb ar reg
8673 -mf2 idb ar reg
8674 -io3;
8675
8676 desc 1 -sd f -nn 11;
8677 desc 2 -sd f -nn 11;
8678
8679 data 1 -do -10 053 "345678901" 001;
8680 data 2 -do -1 055 "456789012" 002;
8681
8682 page -all;
8683
8684
8685
8686 /* cmpn21
8687 * The negative indicator is set.
8688 * Two 4-bit trailing sign operands are used.
8689 * The maximum number of page faults is taken.
8690 * Indirect descriptors are used for all operands.
8691 * Address register modification is used for all operands. */
8692
8693 inst cmpn
8694 -nt "Compare 4-bit pos with 4-bit neg"
8695 -ir ng
8696 -mf1 idb ar
8697 -mf2 idb ar
8698 -io 1;
8699
8700 desc 1 -tn 4 -sd t -nn 3;
8701 desc 2 -tn 4 -sd t -nn 3;
8702
8703 data 1 -do -1 "4" 26;
8704 data 2 -do -1 "3" 32;
8705
8706 page -all;
8707
8708
8709 /* cmpn22
8710 * The negative indicator is set.
8711 * Two 4-bit leading sign operands are used.
8712 * The maximum number of page faults is taken.
8713 * Indirect descriptors are used for all operands.
8714 * Address register modification is used for all operands. */
8715
8716 inst cmpn
8717 -nt "Compare 9-bit pos with 9-bit neg"
8718 -ir ng
8719 -mf1 idb ar
8720 -mf2 idb ar
8721 -io 1;
8722
8723 desc 1 -tn 4 -sd l -nn 5;
8724 desc 2 -tn 4 -sd l -nn 4;
8725
8726 data 1 -do -2 267 000 00;
8727 data 2 -do -1 324 000;
8728
8729 page -all;
8730
8731
8732 /* cmpn23
8733 * The negative indicator is set.
8734 * Two 4-bit floating point operands are used.
8735 * The maximum number of page faults is taken.
8736 * Indirect descriptors are used for all operands.
8737 * Address register modification is used for all operands. */
8738
8739 inst cmpn
8740 -nt "Compare 9-bit pos with 9-bit neg"
8741 -ir ng
8742 -mf1 idb ar
8743 -mf2 idb ar
8744 -io 1;
8745
8746 desc 1 -tn 4 -sd f -nn 63;
8747 desc 2 -tn 4 -sd f -nn 63;
8748
8749 data 1 -do -4 270 14"10" 00000000;
8750 data 2 -do -4 321 14"10" 00000000;
8751
8752 page -all;
8753
8754
8755 /* cmpn24
8756 * The negative indicator is set.
8757 * Two 9-bit unsigned operands are used.
8758 * The maximum number of page faults is taken.
8759 * Indirect descriptors are used for all operands.
8760 * Address register modification is used for all operands. */
8761
8762 inst cmpn
8763 -nt "Compare 9-bit pos with 9-bit pos"
8764 -ir ng
8765 -mf1 idb ar reg
8766 -mf2 idb ar reg
8767 -io 3;
8768
8769 desc 1 -sd n -sf 4 -nn 5;
8770 desc 2 -sd n -sf 1 -nn 4;
8771
8772 data 1 -do -1 "12345";
8773 data 2 -do -3 "2345";
8774
8775 page -all;
8776
8777
8778 /* cmpn25
8779 * The negative indicator is set.
8780 * Two 9-bit trailing sign operands are used.
8781 * The maximum number of page faults is taken.
8782 * Indirect descriptors are used for all operands.
8783 * Address register modification is used for all operands. */
8784
8785 inst cmpn
8786 -nt "Compare 9-bit pos with 9-bit pos"
8787 -ir ng
8788 -mf1 idb ar reg
8789 -mf2 idb ar reg
8790 -io 1;
8791
8792 desc 1 -sd t -sf 4 -nn 37;
8793 desc 2 -sd t -sf 3 -nn 37;
8794
8795 data 1 -do -36 12"965" 053;
8796 data 2 -do -1 12"965" 053;
8797
8798 page -all;
8799
8800
8801 /* cmpn26
8802 * The negative indicator is set.
8803 * Two 9-bit leading sign operands are used.
8804 * The maximum number of page faults is taken.
8805 * Indirect descriptors are used for all operands.
8806 * Address register modification is used for all operands. */
8807
8808 inst cmpn
8809 -nt "Compare 9-bit pos with 9-bit pos"
8810 -ir ng
8811 -mf1 idb ar reg
8812 -mf2 idb ar reg
8813 -io 1;
8814
8815 desc 1 -sd l -sf 2 -nn 63;
8816 desc 2 -sd l -sf 2 -nn 63;
8817
8818 data 1 -do -3 053 "95" 15"2398";
8819 data 2 -do -4 053 "68" 15"4782";
8820
8821 page -all;
8822
8823
8824 /* cmpn27
8825 * The negative indicator is set.
8826 * Two 9-bit floating point operands are used.
8827 * The maximum number of page faults is taken.
8828 * Indirect descriptors are used for all operands.
8829 * Address register modification is used for all operands. */
8830
8831 inst cmpn
8832 -nt "Compare 9-bit pos with 9-bit pos"
8833
8834 -ir ng
8835 -mf1 idb ar reg
8836 -mf2 idb ar reg
8837 -io 2;
8838
8839 desc 1 -sd f -nn 63;
8840 desc 2 -sd f -nn 63;
8841
8842 data 1 -do -4 053 "4" 15"8901" 002;
8843 data 2 -do -3 053 "4" 15"8901" 001;
8844
8845 page -all;
8846
8847
8848
8849 /* cmpn28
8850 * Two 4-bit trailing sign operands are used.
8851 * The maximum number of page faults is taken.
8852 * Indirect descriptors are used for all operands.
8853 * Address register modification is used for all operands. */
8854
8855 inst cmpn
8856 -nt "Compare 4-bit neg with 4-bit neg"
8857 -mf1 idb ar
8858 -mf2 idb ar
8859 -io 1;
8860
8861 desc 1 -tn 4 -sd t -nn 39;
8862 desc 2 -tn 4 -sd t -nn 39;
8863
8864 data 1 -do -19 19"5" 32;
8865 data 2 -do -19 19"4" 32;
8866
8867 page -all;
8868
8869
8870 /* cmpn29
8871 * Two 4-bit leading sign operands are used.
8872 * The maximum number of page faults is taken.
8873 * Indirect descriptors are used for all operands.
8874 * Address register modification is used for all operands. */
8875
8876 inst cmpn
8877 -nt "Compare 4-bit neg with 4-bit neg"
8878 -mf1 idb ar rl 7
8879 -mf2 idb ar
8880 -io 2;
8881
8882 desc 1 -tn 4 -sd l -sf 5 ;
8883 desc 2 -tn 4 -sd l -sf 1 -nn 7;
8884
8885 data 1 -do -3 324 "98" 00;
8886 data 2 -do -1 323 "64" 00;
8887
8888 page -all;
8889
8890
8891 /* cmpn30
8892 * Two 4-bit floating point operands are used.
8893 * The maximum number of page faults is taken.
8894 * Indirect descriptors are used for all operands.
8895 * Address register modification is used for all operands. */
8896
8897 inst cmpn
8898 -nt "Compare 4-bit neg with 4-bit neg"
8899 -mf1 idb ar
8900 -mf2 idb ar rl 60
8901 -io 2;
8902
8903 desc 1 -tn 4 -sd f -nn 63;
8904 desc 2 -tn 4 -sd f;
8905
8906 data 1 -do -1 321 15"892" 00;
8907 data 2 -do -29 322 14"98" 000;
8908
8909 page -all;
8910
8911
8912 /* cmpn31
8913 * Two 9-bit trailing sign operands are used.
8914 * The maximum number of page faults is taken.
8915 * Indirect descriptors are used for all operands.
8916 * Address register modification is used for all operands. */
8917
8918 inst cmpn
8919 -nt "Compare 9-bit neg with 9-bit pos"
8920 -mf1 idb ar reg rl 63
8921 -mf2 idb ar reg
8922 -io 2;
8923
8924 desc 1 -sd t -sf 12;
8925 desc 2 -sd t -sf -1 -nn 5;
8926
8927 data 1 -do -62 31"98" 055;
8928 data 2 -do -4 "5432" 053;
8929
8930 page -all;
8931
8932
8933 /* cmpn32
8934 * Two 9-bit leading sign operands are used.
8935 * The maximum number of page faults is taken.
8936 * Indirect descriptors are used for all operands.
8937 * Address register modification is used for all operands. */
8938
8939 inst cmpn
8940 -nt "Compare 9-bit neg with 9-bit pos"
8941 -mf1 idb ar reg
8942 -mf2 idb ar reg
8943 -io 2;
8944
8945 desc 1 -sd l -sf -4 -nn 6;
8946 desc 2 -sd l -sf -6 -nn 6;
8947
8948 data 1 -do -4 055 "42816";
8949 data 2 -do -5 053 "98321";
8950
8951 page -all;
8952
8953
8954 /* cmpn33
8955 * Two 9-bit floating point operands are used.
8956 * The maximum number of page faults is taken.
8957 * Indirect descriptors are used for all operands.
8958 * Address register modification is used for all operands. */
8959
8960 inst cmpn
8961
8962 -nt "Compare 9-bit neg with 9-bit pos"
8963 -mf1 idb ar reg rl 63
8964 -mf2 idb ar reg rl 63
8965 -io 1;
8966
8967 desc 1 -sd f ;
8968 desc 2 -sd f ;
8969
8970 data 1 -do -8 055 15"9999" "8" 004;
8971 data 2 -do -9 053 15"8777" "4" 002;
8972
8973 page -all;
8974
8975
8976 ^L
8977
8978
8979 /* mvne1
8980
8981 * these tests exercise the mvne instruction
8982 * using the 4 to 9 bit option and the 9 to 9
8983 * bit options on the data. the same template
8984 * for the mop sequence will be used for all
8985 * tests with various desc and data mod.
8986 *
8987 */
8988
8989 inst mvne -nt "simple test no mod 9-9"
8990 -mf2 rl 29;
8991
8992 desc 1 -nn 24 -sd n;
8993
8994
8995 desc 3 -nn 33 ;
8996
8997 data 1 /* the 9 bit data arranged in sequence of use */
8998 /* the strings are 0012 0012 3456 3456 0012 3456 */
8999
9000 "001200123456345600123456";
9001
9002 data 2 /* ***mop sequence arranged in order *** */
9003
9004 104 /* mvzb */
9005 060 /* ses es reset */
9006 124 /* mvza */
9007 064 /* ses es reset bz set */
9008 144 /* mfls */
9009 064 /* ses */
9010 040 /* enf for "+" insert. */
9011 200 "=" /* insb */
9012 220 "q" /* insa insert "q" */
9013 260 "q" /* insp */
9014 304 /* ign */
9015 344 /* mvc */
9016 420 "12345678" /* change table with string shown */
9017 024 /* insm */
9018 401 "2" /* load table entry 1 with "2" */
9019 024 /* insm */
9020 364 /* mors */
9021 /* end of mop string */;
9022
9023 data 3 /* arranged in order */
9024
9025 " 12"
9026 "**12"
9027 "+3456"
9028 "+"
9029 "="
9030 "q"
9031 "q"
9032 "0012"
9033 "1111"
9034 "2222"
9035 "3777";
9036
9037 page -all;
9038
9039 /* mvne2
9040
9041 * these tests exercise the mvne instruction
9042 * using the 4 to 9 bit option and the 9 to 9
9043 * bit options on the data. the same template
9044 * for the mop sequence will be used for all
9045 * tests with various desc and data mod.
9046 *
9047 */
9048
9049 inst mvne -nt "offset inst and desc mod 9-9" -io 3
9050 -mf1 idr reg
9051 -mf2 reg rl 29
9052 -mf3 idb;
9053
9054 desc 1 -nn 24 -sd n;
9055
9056
9057 desc 3 -nn 33 ;
9058
9059 data 1 /* the 9 bit data arranged in sequence of use */
9060 /* the strings are 0012 0012 3456 3456 0012 3456 */
9061
9062 "001200123456345600123456";
9063
9064 data 2 /* ***mop sequence arranged in order *** */
9065
9066 104 /* mvzb */
9067 060 /* ses es reset */
9068 124 /* mvza */
9069 064 /* ses es reset bz set */
9070 144 /* mfls */
9071 064 /* ses */
9072 040 /* enf for "+" insert. */
9073 200 "=" /* insb */
9074 220 "q" /* insa insert "q" */
9075 260 "q" /* insp */
9076 304 /* ign */
9077 344 /* mvc */
9078 420 "12345678" /* change table with string shown */
9079 024 /* insm */
9080 401 "2" /* load table entry 1 with "2" */
9081 024 /* insm */
9082 364 /* mors */
9083 /* end of mop string */;
9084
9085 data 3 /* arranged in order */
9086
9087 " 12"
9088 "**12"
9089 "+3456"
9090 "+"
9091 "="
9092 "q"
9093 "q"
9094 "0012"
9095 "1111"
9096 "2222"
9097 "3777";
9098
9099 page -all;
9100
9101 /* mvne3
9102
9103 * these tests exercise the mvne instruction
9104 * using the 4 to 9 bit option and the 9 to 9
9105 * bit options on the data. the same template
9106 * for the mop sequence will be used for all
9107 * tests with various desc and data mod.
9108 *
9109 */
9110
9111 inst mvne -nt "offset inst and d1 offset 9-9" -io 3
9112 -mf1 idr reg
9113 -mf2 reg rl 29
9114 -mf3 idb;
9115
9116 desc 1 -nn 24 -sd n;
9117
9118
9119 desc 3 -nn 33 ;
9120
9121
9122 data 1 /* the 9 bit data arranged in sequence of use */
9123 -do -16
9124 /* the strings are 0012 0012 3456 3456 0012 3456 */
9125
9126 "001200123456345600123456";
9127
9128 data 2 /* ***mop sequence arranged in order *** */
9129
9130 104 /* mvzb */
9131 060 /* ses es reset */
9132 124 /* mvza */
9133 064 /* ses es reset bz set */
9134 144 /* mfls */
9135 064 /* ses */
9136 040 /* enf for "+" insert. */
9137 200 "=" /* insb */
9138 220 "q" /* insa insert "q" */
9139 260 "q" /* insp */
9140 304 /* ign */
9141 344 /* mvc */
9142 420 "12345678" /* change table with string shown */
9143 024 /* insm */
9144 401 "2" /* load table entry 1 with "2" */
9145 024 /* insm */
9146 364 /* mors */
9147 /* end of mop string */;
9148
9149 data 3 /* arranged in order */
9150
9151 " 12"
9152 "**12"
9153 "+3456"
9154 "+"
9155 "="
9156 "q"
9157 "q"
9158 "0012"
9159 "1111"
9160 "2222"
9161 "3777";
9162
9163 page -all;
9164
9165 /* mvne4
9166
9167 * these tests exercise the mvne instruction
9168 * using the 4 to 9 bit option and the 9 to 9
9169 * bit options on the data. the same template
9170 * for the mop sequence will be used for all
9171 * tests with various desc and data mod.
9172 *
9173 */
9174
9175 inst mvne -nt "offset d2 and d1 offset 9-9" -io 3
9176 -mf1 idr reg
9177 -mf2 reg rl 29
9178 -mf3 idb;
9179
9180 desc 1 -nn 24 -sd n;
9181
9182
9183 desc 3 -nn 33 ;
9184
9185
9186 data 1 /* the 9 bit data arranged in sequence of use */
9187 -do -16
9188 /* the strings are 0012 0012 3456 3456 0012 3456 */
9189
9190 "001200123456345600123456";
9191
9192 data 2 /* ***mop sequence arranged in order *** */
9193 -do -20
9194
9195 104 /* mvzb */
9196 060 /* ses es reset */
9197 124 /* mvza */
9198 064 /* ses es reset bz set */
9199 144 /* mfls */
9200 064 /* ses */
9201 040 /* enf for "+" insert. */
9202 200 "=" /* insb */
9203 220 "q" /* insa insert "q" */
9204 260 "q" /* insp */
9205 304 /* ign */
9206 344 /* mvc */
9207 420 "12345678" /* change table with string shown */
9208 024 /* insm */
9209 401 "2" /* load table entry 1 with "2" */
9210 024 /* insm */
9211 364 /* mors */
9212 /* end of mop string */;
9213
9214 data 3 /* arranged in order */
9215
9216 " 12"
9217 "**12"
9218 "+3456"
9219 "+"
9220 "="
9221 "q"
9222 "q"
9223 "0012"
9224 "1111"
9225 "2222"
9226 "3777";
9227
9228 page -all;
9229
9230 /* mvne5
9231
9232 * these tests exercise the mvne instruction
9233 * using the 4 to 9 bit option and the 9 to 9
9234 * bit options on the data. the same template
9235 * for the mop sequence will be used for all
9236 * tests with various desc and data mod.
9237 *
9238 */
9239
9240 inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3
9241 -mf1 idr reg
9242 -mf2 reg rl 29
9243 -mf3 idb;
9244
9245 desc 1 -nn 24 -sd n;
9246
9247
9248 desc 3 -nn 33 ;
9249
9250
9251 data 1 /* the 9 bit data arranged in sequence of use */
9252 -do -16
9253 /* the strings are 0012 0012 3456 3456 0012 3456 */
9254
9255 "001200123456345600123456";
9256
9257 data 2 /* ***mop sequence arranged in order *** */
9258 -do -20
9259
9260 104 /* mvzb */
9261 060 /* ses es reset */
9262 124 /* mvza */
9263 064 /* ses es reset bz set */
9264 144 /* mfls */
9265 064 /* ses */
9266 040 /* enf for "+" insert. */
9267 200 "=" /* insb */
9268 220 "q" /* insa insert "q" */
9269 260 "q" /* insp */
9270 304 /* ign */
9271 344 /* mvc */
9272 420 "12345678" /* change table with string shown */
9273 024 /* insm */
9274 401 "2" /* load table entry 1 with "2" */
9275 024 /* insm */
9276 364 /* mors */
9277 /* end of mop string */;
9278
9279 data 3 /* arranged in order */
9280 -do -8
9281
9282 " 12"
9283 "**12"
9284 "+3456"
9285 "+"
9286 "="
9287 "q"
9288 "q"
9289 "0012"
9290 "1111"
9291 "2222"
9292 "3777";
9293
9294 page -all;
9295
9296 /* mvne6
9297
9298 * these tests exercise the mvne instruction
9299 * using the 4 to 9 bit option and the 9 to 9
9300 * bit options on the data. the same template
9301 * for the mop sequence will be used for all
9302 * tests with various desc and data mod.
9303 *
9304 */
9305
9306 inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3
9307 -mf1 idr reg
9308 -mf2 reg rl 29
9309 -mf3 idb;
9310
9311 desc 1 -cn 3 -nn 24 -sd n;
9312
9313
9314 desc 3 -nn 33 ;
9315
9316
9317 data 1 /* the 9 bit data arranged in sequence of use */
9318 -do -16
9319 /* the strings are 0012 0012 3456 3456 0012 3456 */
9320
9321 "***" /* for cn */ "001200123456345600123456";
9322
9323 data 2 /* ***mop sequence arranged in order *** */
9324 -do -20
9325
9326 104 /* mvzb */
9327 060 /* ses es reset */
9328 124 /* mvza */
9329 064 /* ses es reset bz set */
9330 144 /* mfls */
9331 064 /* ses */
9332 040 /* enf for "+" insert. */
9333 200 "=" /* insb */
9334 220 "q" /* insa insert "q" */
9335 260 "q" /* insp */
9336 304 /* ign */
9337 344 /* mvc */
9338 420 "12345678" /* change table with string shown */
9339 024 /* insm */
9340 401 "2" /* load table entry 1 with "2" */
9341 024 /* insm */
9342 364 /* mors */
9343 /* end of mop string */;
9344
9345 data 3 /* arranged in order */
9346 -do -8
9347
9348 " 12"
9349 "**12"
9350 "+3456"
9351 "+"
9352 "="
9353 "q"
9354 "q"
9355 "0012"
9356 "1111"
9357 "2222"
9358 "3777";
9359
9360 page -all;
9361
9362 /* mvne7
9363
9364 * these tests exercise the mvne instruction
9365 * using the 4 to 9 bit option and the 9 to 9
9366 * bit options on the data. the same template
9367 * for the mop sequence will be used for all
9368 * tests with various desc and data mod.
9369 *
9370 */
9371
9372 inst mvne -nt "d1 totally on p0 9-9" -io 2
9373 -mf1 idr ar
9374 -mf2 reg rl 29
9375 -mf3 ida ar reg;
9376
9377 desc 1 -cn 3 -nn 24 -sd n;
9378
9379
9380 desc 3 -nn 33 ;
9381
9382
9383 data 1 /* the 9 bit data arranged in sequence of use */
9384 -do -24
9385 /* the strings are 0012 0012 3456 3456 0012 3456 */
9386
9387 "***" /* for cn */ "001200123456345600123456";
9388
9389 data 2 /* ***mop sequence arranged in order *** */
9390 -do -20
9391
9392 104 /* mvzb */
9393 060 /* ses es reset */
9394 124 /* mvza */
9395 064 /* ses es reset bz set */
9396 144 /* mfls */
9397 064 /* ses */
9398 040 /* enf for "+" insert. */
9399 200 "=" /* insb */
9400 220 "q" /* insa insert "q" */
9401 260 "q" /* insp */
9402 304 /* ign */
9403 344 /* mvc */
9404 420 "12345678" /* change table with string shown */
9405 024 /* insm */
9406 401 "2" /* load table entry 1 with "2" */
9407 024 /* insm */
9408 364 /* mors */
9409 /* end of mop string */;
9410
9411 data 3 /* arranged in order */
9412 -do -8
9413
9414 " 12"
9415 "**12"
9416 "+3456"
9417 "+"
9418 "="
9419 "q"
9420 "q"
9421 "0012"
9422 "1111"
9423 "2222"
9424 "3777";
9425
9426 page -all;
9427
9428
9429 /* mvne8
9430
9431 * these tests exercise the mvne instruction
9432 * using the 4 to 9 bit option and the 9 to 9
9433 * bit options on the data. the same template
9434 * for the mop sequence will be used for all
9435 * tests with various desc and data mod.
9436 *
9437 */
9438
9439 inst mvne -nt "d2 totally on p0 9-9" -io 2
9440 -mf1 idr ar
9441 -mf2 ar reg rl 29
9442 -mf3 ida ar reg;
9443
9444 desc 1 -cn 3 -nn 24 -sd n;
9445
9446
9447 desc 3 -nn 33 ;
9448
9449
9450 data 1 /* the 9 bit data arranged in sequence of use */
9451 -do -20
9452 /* the strings are 0012 0012 3456 3456 0012 3456 */
9453
9454 "***" /* for cn */ "001200123456345600123456";
9455
9456 data 2 /* ***mop sequence arranged in order *** */
9457 -do -30
9458
9459 104 /* mvzb */
9460 060 /* ses es reset */
9461 124 /* mvza */
9462 064 /* ses es reset bz set */
9463 144 /* mfls */
9464 064 /* ses */
9465 040 /* enf for "+" insert. */
9466 200 "=" /* insb */
9467 220 "q" /* insa insert "q" */
9468 260 "q" /* insp */
9469 304 /* ign */
9470 344 /* mvc */
9471 420 "12345678" /* change table with string shown */
9472 024 /* insm */
9473 401 "2" /* load table entry 1 with "2" */
9474 024 /* insm */
9475 364 /* mors */
9476 /* end of mop string */;
9477
9478 data 3 /* arranged in order */
9479 -do -8
9480
9481 " 12"
9482 "**12"
9483 "+3456"
9484 "+"
9485 "="
9486 "q"
9487 "q"
9488 "0012"
9489 "1111"
9490 "2222"
9491 "3777";
9492
9493 page -all;
9494
9495 /* mvne9
9496
9497 * these tests exercise the mvne instruction
9498 * using the 4 to 9 bit option and the 9 to 9
9499 * bit options on the data. the same template
9500 * for the mop sequence will be used for all
9501 * tests with various desc and data mod.
9502 *
9503 */
9504
9505 inst mvne -nt "d3 totally on p0 9-9" -io 2
9506 -mf1 idr ar
9507 -mf2 reg ar rl 29
9508 -mf3 ida ar reg;
9509
9510 desc 1 -cn 3 -nn 24 -sd n;
9511
9512
9513 desc 3 -nn 33 ;
9514
9515
9516 data 1 /* the 9 bit data arranged in sequence of use */
9517 -do -20
9518 /* the strings are 0012 0012 3456 3456 0012 3456 */
9519
9520 "***" /* for cn */ "001200123456345600123456";
9521
9522 data 2 /* ***mop sequence arranged in order *** */
9523 -do -10
9524
9525 104 /* mvzb */
9526 060 /* ses es reset */
9527 124 /* mvza */
9528 064 /* ses es reset bz set */
9529 144 /* mfls */
9530 064 /* ses */
9531 040 /* enf for "+" insert. */
9532 200 "=" /* insb */
9533 220 "q" /* insa insert "q" */
9534 260 "q" /* insp */
9535 304 /* ign */
9536 344 /* mvc */
9537 420 "12345678" /* change table with string shown */
9538 024 /* insm */
9539 401 "2" /* load table entry 1 with "2" */
9540 024 /* insm */
9541 364 /* mors */
9542 /* end of mop string */;
9543
9544 data 3 /* arranged in order */
9545 -do -34
9546
9547 " 12"
9548 "**12"
9549 "+3456"
9550 "+"
9551 "="
9552 "q"
9553 "q"
9554 "0012"
9555 "1111"
9556 "2222"
9557 "3777";
9558
9559 page -all;
9560
9561 /* mvne10
9562
9563 * these tests exercise the mvne instruction
9564 * using the 4 to 9 bit option and the 9 to 9
9565 * bit options on the data. the same template
9566 * for the mop sequence will be used for all
9567 * tests with various desc and data mod.
9568 *
9569 */
9570
9571 inst mvne -nt "all data totally on p0 9-9" -io 2
9572 -mf1 idr ar
9573 -mf2 reg ar rl 29
9574 -mf3 ida ar reg;
9575
9576 desc 1 -cn 3 -nn 24 -sd n;
9577
9578
9579 desc 3 -nn 33 ;
9580
9581
9582 data 1 /* the 9 bit data arranged in sequence of use */
9583 -do -30
9584 /* the strings are 0012 0012 3456 3456 0012 3456 */
9585
9586 "***" /* for cn */ "001200123456345600123456";
9587
9588 data 2 /* ***mop sequence arranged in order *** */
9589 -do -30
9590
9591 104 /* mvzb */
9592 060 /* ses es reset */
9593 124 /* mvza */
9594 064 /* ses es reset bz set */
9595 144 /* mfls */
9596 064 /* ses */
9597 040 /* enf for "+" insert. */
9598 200 "=" /* insb */
9599 220 "q" /* insa insert "q" */
9600 260 "q" /* insp */
9601 304 /* ign */
9602 344 /* mvc */
9603 420 "12345678" /* change table with string shown */
9604 024 /* insm */
9605 401 "2" /* load table entry 1 with "2" */
9606 024 /* insm */
9607 364 /* mors */
9608 /* end of mop string */;
9609
9610 data 3 /* arranged in order */
9611 -do -34
9612
9613 " 12"
9614 "**12"
9615 "+3456"
9616 "+"
9617 "="
9618 "q"
9619 "q"
9620 "0012"
9621 "1111"
9622 "2222"
9623 "3777";
9624
9625 page -all;
9626
9627 /* mvne11
9628
9629 * these tests exercise the mvne instruction
9630 * using the 4 to 9 bit option and the 9 to 9
9631 * bit options on the data. the same template
9632 * for the mop sequence will be used for all
9633 * tests with various desc and data mod.
9634 *
9635 */
9636
9637 inst mvne -nt "simple test no mod 4-9"
9638 -mf2 rl 29;
9639
9640 desc 1 -tn 4 -nn 24 -sd n;
9641
9642
9643 desc 3 -nn 33 ;
9644
9645 data 1 /* the 9 bit data arranged in sequence of use */
9646 /* the strings are 0012 0012 3456 3456 0012 3456 */
9647
9648 000022000022064126064126000022064126;
9649
9650 data 2 /* ***mop sequence arranged in order *** */
9651
9652 104 /* mvzb */
9653 060 /* ses es reset */
9654 124 /* mvza */
9655 064 /* ses es reset bz set */
9656 144 /* mfls */
9657 064 /* ses */
9658 040 /* enf for "+" insert. */
9659 200 "=" /* insb */
9660 220 "q" /* insa insert "q" */
9661 260 "q" /* insp */
9662 304 /* ign */
9663 344 /* mvc */
9664 420 "12345678" /* change table with string shown */
9665 024 /* insm */
9666 401 "2" /* load table entry 1 with "2" */
9667 024 /* insm */
9668 364 /* mors */
9669 /* end of mop string */;
9670
9671 data 3 /* arranged in order */
9672
9673 " 12"
9674 "**12"
9675 "+3456"
9676 "+"
9677 "="
9678 "q"
9679 "q"
9680 "0012"
9681 "1111"
9682 "2222"
9683 "3777";
9684
9685 page -all;
9686
9687 /* mvne12
9688
9689 * these tests exercise the mvne instruction
9690 * using the 4 to 9 bit option and the 9 to 9
9691 * bit options on the data. the same template
9692 * for the mop sequence will be used for all
9693 * tests with various desc and data mod.
9694 *
9695 */
9696
9697 inst mvne -nt "offset inst and desc mod 4-9" -io 2
9698
9699 -mf2 reg rl 29
9700 -mf3 ida;
9701
9702 desc 1 -tn 4 -nn 24 -sd n;
9703
9704
9705 desc 3 -nn 33 ;
9706
9707 data 1 /* the 9 bit data arranged in sequence of use */
9708 /* the strings are 0012 0012 3456 3456 0012 3456 */
9709
9710 000022000022064126064126000022064126;
9711
9712 data 2 /* ***mop sequence arranged in order *** */
9713
9714 104 /* mvzb */
9715 060 /* ses es reset */
9716 124 /* mvza */
9717 064 /* ses es reset bz set */
9718 144 /* mfls */
9719 064 /* ses */
9720 040 /* enf for "+" insert. */
9721 200 "=" /* insb */
9722 220 "q" /* insa insert "q" */
9723 260 "q" /* insp */
9724 304 /* ign */
9725 344 /* mvc */
9726 420 "12345678" /* change table with string shown */
9727 024 /* insm */
9728 401 "2" /* load table entry 1 with "2" */
9729 024 /* insm */
9730 364 /* mors */
9731 /* end of mop string */;
9732
9733 data 3 /* arranged in order */
9734
9735 " 12"
9736 "**12"
9737 "+3456"
9738 "+"
9739 "="
9740 "q"
9741 "q"
9742 "0012"
9743 "1111"
9744 "2222"
9745 "3777";
9746
9747 page -all;
9748
9749 /* mvne13
9750
9751 * these tests exercise the mvne instruction
9752 * using the 4 to 9 bit option and the 9 to 9
9753 * bit options on the data. the same template
9754 * for the mop sequence will be used for all
9755 * tests with various desc and data mod.
9756 *
9757 */
9758
9759 inst mvne -nt "offset inst and d1 offset 4-9" -io 3
9760
9761 -mf2 reg rl 29
9762 -mf3 ida;
9763
9764 desc 1 -tn 4 -nn 24 -sd n;
9765
9766
9767 desc 3 -nn 33 ;
9768
9769
9770 data 1 /* the 9 bit data arranged in sequence of use */
9771 -do -16
9772 /* the strings are 0012 0012 3456 3456 0012 3456 */
9773
9774 000022000022064126064126000022064126;
9775
9776 data 2 /* ***mop sequence arranged in order *** */
9777
9778 104 /* mvzb */
9779 060 /* ses es reset */
9780 124 /* mvza */
9781 064 /* ses es reset bz set */
9782 144 /* mfls */
9783 064 /* ses */
9784 040 /* enf for "+" insert. */
9785 200 "=" /* insb */
9786 220 "q" /* insa insert "q" */
9787 260 "q" /* insp */
9788 304 /* ign */
9789 344 /* mvc */
9790 420 "12345678" /* change table with string shown */
9791 024 /* insm */
9792 401 "2" /* load table entry 1 with "2" */
9793 024 /* insm */
9794 364 /* mors */
9795 /* end of mop string */;
9796
9797 data 3 /* arranged in order */
9798
9799 " 12"
9800 "**12"
9801 "+3456"
9802 "+"
9803 "="
9804 "q"
9805 "q"
9806 "0012"
9807 "1111"
9808 "2222"
9809 "3777";
9810
9811 page -all;
9812
9813 /* mvne14
9814
9815 * these tests exercise the mvne instruction
9816 * using the 4 to 9 bit option and the 9 to 9
9817 * bit options on the data. the same template
9818 * for the mop sequence will be used for all
9819 * tests with various desc and data mod.
9820 *
9821 */
9822
9823 inst mvne -nt "offset d2 and d1 offset 4-9" -io 3
9824
9825 -mf2 reg rl 29
9826 -mf3 ida;
9827
9828 desc 1 -tn 4 -nn 24 -sd n;
9829
9830
9831 desc 3 -nn 33 ;
9832
9833
9834 data 1 /* the 9 bit data arranged in sequence of use */
9835 -do -16
9836 /* the strings are 0012 0012 3456 3456 0012 3456 */
9837
9838 000022000022064126064126000022064126;
9839
9840 data 2 /* ***mop sequence arranged in order *** */
9841 -do -20
9842
9843 104 /* mvzb */
9844 060 /* ses es reset */
9845 124 /* mvza */
9846 064 /* ses es reset bz set */
9847 144 /* mfls */
9848 064 /* ses */
9849 040 /* enf for "+" insert. */
9850 200 "=" /* insb */
9851 220 "q" /* insa insert "q" */
9852 260 "q" /* insp */
9853 304 /* ign */
9854 344 /* mvc */
9855 420 "12345678" /* change table with string shown */
9856 024 /* insm */
9857 401 "2" /* load table entry 1 with "2" */
9858 024 /* insm */
9859 364 /* mors */
9860 /* end of mop string */;
9861
9862 data 3 /* arranged in order */
9863
9864 " 12"
9865 "**12"
9866 "+3456"
9867 "+"
9868 "="
9869 "q"
9870 "q"
9871 "0012"
9872 "1111"
9873 "2222"
9874 "3777";
9875
9876 page -all;
9877
9878 /* mvne15
9879
9880 * these tests exercise the mvne instruction
9881 * using the 4 to 9 bit option and the 9 to 9
9882 * bit options on the data. the same template
9883 * for the mop sequence will be used for all
9884 * tests with various desc and data mod.
9885 *
9886 */
9887
9888 inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3
9889
9890 -mf2 reg rl 29
9891 -mf3 ida;
9892
9893 desc 1 -tn 4 -nn 24 -sd n;
9894
9895
9896 desc 3 -nn 33 ;
9897
9898
9899 data 1 /* the 9 bit data arranged in sequence of use */
9900 -do -16
9901 /* the strings are 0012 0012 3456 3456 0012 3456 */
9902
9903 000022000022064126064126000022064126;
9904
9905 data 2 /* ***mop sequence arranged in order *** */
9906 -do -20
9907
9908 104 /* mvzb */
9909 060 /* ses es reset */
9910 124 /* mvza */
9911 064 /* ses es reset bz set */
9912 144 /* mfls */
9913 064 /* ses */
9914 040 /* enf for "+" insert. */
9915 200 "=" /* insb */
9916 220 "q" /* insa insert "q" */
9917 260 "q" /* insp */
9918 304 /* ign */
9919 344 /* mvc */
9920 420 "12345678" /* change table with string shown */
9921 024 /* insm */
9922 401 "2" /* load table entry 1 with "2" */
9923 024 /* insm */
9924 364 /* mors */
9925 /* end of mop string */;
9926
9927 data 3 /* arranged in order */
9928 -do -8
9929
9930 " 12"
9931 "**12"
9932 "+3456"
9933 "+"
9934 "="
9935 "q"
9936 "q"
9937 "0012"
9938 "1111"
9939 "2222"
9940 "3777";
9941
9942 page -all;
9943
9944 /* mvne16
9945
9946 * these tests exercise the mvne instruction
9947 * using the 4 to 9 bit option and the 9 to 9
9948 * bit options on the data. the same template
9949 * for the mop sequence will be used for all
9950 * tests with various desc and data mod.
9951 *
9952 */
9953
9954 inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3
9955
9956 -mf2 reg rl 29
9957 -mf3 ida;
9958
9959 desc 1 -tn 4 -nn 24 -sd n;
9960
9961
9962 desc 3 -nn 33 ;
9963
9964
9965 data 1 /* the 9 bit data arranged in sequence of use */
9966 -do -16
9967 /* the strings are 0012 0012 3456 3456 0012 3456 */
9968
9969 000022000022064126064126000022064126;
9970
9971 data 2 /* ***mop sequence arranged in order *** */
9972 -do -20
9973
9974 104 /* mvzb */
9975 060 /* ses es reset */
9976 124 /* mvza */
9977 064 /* ses es reset bz set */
9978 144 /* mfls */
9979 064 /* ses */
9980 040 /* enf for "+" insert. */
9981 200 "=" /* insb */
9982 220 "q" /* insa insert "q" */
9983 260 "q" /* insp */
9984 304 /* ign */
9985 344 /* mvc */
9986 420 "12345678" /* change table with string shown */
9987 024 /* insm */
9988 401 "2" /* load table entry 1 with "2" */
9989 024 /* insm */
9990 364 /* mors */
9991 /* end of mop string */;
9992
9993 data 3 /* arranged in order */
9994 -do -8
9995
9996 " 12"
9997 "**12"
9998 "+3456"
9999 "+"
10000 "="
10001 "q"
10002 "q"
10003 "0012"
10004 "1111"
10005 "2222"
10006 "3777";
10007
10008 page -all;
10009
10010 /* mvne17
10011
10012 * these tests exercise the mvne instruction
10013 * using the 4 to 9 bit option and the 9 to 9
10014 * bit options on the data. the same template
10015 * for the mop sequence will be used for all
10016 * tests with various desc and data mod.
10017 *
10018 */
10019
10020 inst mvne -nt "d1 totally on p0 4-9" -io 2
10021 -mf1 idr ar
10022 -mf2 reg rl 29
10023 -mf3 ida ar reg;
10024
10025 desc 1 -tn 4 -nn 24 -sd n;
10026
10027
10028 desc 3 -nn 33 ;
10029
10030
10031 data 1 /* the 9 bit data arranged in sequence of use */
10032 -do -24
10033 /* the strings are 0012 0012 3456 3456 0012 3456 */
10034
10035 000022000022064126064126000022064126;
10036
10037 data 2 /* ***mop sequence arranged in order *** */
10038 -do -20
10039
10040 104 /* mvzb */
10041 060 /* ses es reset */
10042 124 /* mvza */
10043 064 /* ses es reset bz set */
10044 144 /* mfls */
10045 064 /* ses */
10046 040 /* enf for "+" insert. */
10047 200 "=" /* insb */
10048 220 "q" /* insa insert "q" */
10049 260 "q" /* insp */
10050 304 /* ign */
10051 344 /* mvc */
10052 420 "12345678" /* change table with string shown */
10053 024 /* insm */
10054 401 "2" /* load table entry 1 with "2" */
10055 024 /* insm */
10056 364 /* mors */
10057 /* end of mop string */;
10058
10059 data 3 /* arranged in order */
10060 -do -8
10061
10062 " 12"
10063 "**12"
10064 "+3456"
10065 "+"
10066 "="
10067 "q"
10068 "q"
10069 "0012"
10070 "1111"
10071 "2222"
10072 "3777";
10073
10074 page -all;
10075
10076
10077 /* mvne18
10078
10079 * these tests exercise the mvne instruction
10080 * using the 4 to 9 bit option and the 9 to 9
10081 * bit options on the data. the same template
10082 * for the mop sequence will be used for all
10083 * tests with various desc and data mod.
10084 *
10085 */
10086
10087 inst mvne -nt "d2 totally on p0 4-9" -io 2
10088 -mf1 idr ar
10089 -mf2 ar reg rl 29
10090 -mf3 ida ar reg;
10091
10092 desc 1 -tn 4 -nn 24 -sd n;
10093
10094
10095 desc 3 -nn 33 ;
10096
10097
10098 data 1 /* the 9 bit data arranged in sequence of use */
10099 -do -20
10100 /* the strings are 0012 0012 3456 3456 0012 3456 */
10101
10102 000022000022064126064126000022064126;
10103
10104 data 2 /* ***mop sequence arranged in order *** */
10105 -do -30
10106
10107 104 /* mvzb */
10108 060 /* ses es reset */
10109 124 /* mvza */
10110 064 /* ses es reset bz set */
10111 144 /* mfls */
10112 064 /* ses */
10113 040 /* enf for "+" insert. */
10114 200 "=" /* insb */
10115 220 "q" /* insa insert "q" */
10116 260 "q" /* insp */
10117 304 /* ign */
10118 344 /* mvc */
10119 420 "12345678" /* change table with string shown */
10120 024 /* insm */
10121 401 "2" /* load table entry 1 with "2" */
10122 024 /* insm */
10123 364 /* mors */
10124 /* end of mop string */;
10125
10126 data 3 /* arranged in order */
10127 -do -8
10128
10129 " 12"
10130 "**12"
10131 "+3456"
10132 "+"
10133 "="
10134 "q"
10135 "q"
10136 "0012"
10137 "1111"
10138 "2222"
10139 "3777";
10140
10141 page -all;
10142
10143 /* mvne19
10144
10145 * these tests exercise the mvne instruction
10146 * using the 4 to 9 bit option and the 9 to 9
10147 * bit options on the data. the same template
10148 * for the mop sequence will be used for all
10149 * tests with various desc and data mod.
10150 *
10151 */
10152
10153 inst mvne -nt "d3 totally on p0 4-9" -io 2
10154 -mf1 idr ar
10155 -mf2 reg ar rl 29
10156 -mf3 ida ar reg;
10157
10158 desc 1 -tn 4 -nn 24 -sd n;
10159
10160
10161 desc 3 -nn 33 ;
10162
10163
10164 data 1 /* the 9 bit data arranged in sequence of use */
10165 -do -20
10166 /* the strings are 0012 0012 3456 3456 0012 3456 */
10167
10168 000022000022064126064126000022064126;
10169
10170 data 2 /* ***mop sequence arranged in order *** */
10171 -do -10
10172
10173 104 /* mvzb */
10174 060 /* ses es reset */
10175 124 /* mvza */
10176 064 /* ses es reset bz set */
10177 144 /* mfls */
10178 064 /* ses */
10179 040 /* enf for "+" insert. */
10180 200 "=" /* insb */
10181 220 "q" /* insa insert "q" */
10182 260 "q" /* insp */
10183 304 /* ign */
10184 344 /* mvc */
10185 420 "12345678" /* change table with string shown */
10186 024 /* insm */
10187 401 "2" /* load table entry 1 with "2" */
10188 024 /* insm */
10189 364 /* mors */
10190 /* end of mop string */;
10191
10192 data 3 /* arranged in order */
10193 -do -34
10194
10195 " 12"
10196 "**12"
10197 "+3456"
10198 "+"
10199 "="
10200 "q"
10201 "q"
10202 "0012"
10203 "1111"
10204 "2222"
10205 "3777";
10206
10207 page -all;
10208
10209 /* mvne20
10210
10211 * these tests exercise the mvne instruction
10212 * using the 4 to 9 bit option and the 9 to 9
10213 * bit options on the data. the same template
10214 * for the mop sequence will be used for all
10215 * tests with various desc and data mod.
10216 *
10217 */
10218
10219 inst mvne -nt "all data totally on p0 4-9" -io 2
10220 -mf1 idr ar
10221 -mf2 reg ar rl 29
10222 -mf3 ida ar reg;
10223
10224 desc 1 -tn 4 -nn 24 -sd n;
10225
10226
10227 desc 3 -nn 33 ;
10228
10229
10230 data 1 /* the 9 bit data arranged in sequence of use */
10231 -do -30
10232 /* the strings are 0012 0012 3456 3456 0012 3456 */
10233
10234 000022000022064126064126000022064126;
10235
10236 data 2 /* ***mop sequence arranged in order *** */
10237 -do -30
10238
10239 104 /* mvzb */
10240 060 /* ses es reset */
10241 124 /* mvza */
10242 064 /* ses es reset bz set */
10243 144 /* mfls */
10244 064 /* ses */
10245 040 /* enf for "+" insert. */
10246 200 "=" /* insb */
10247 220 "q" /* insa insert "q" */
10248 260 "q" /* insp */
10249 304 /* ign */
10250 344 /* mvc */
10251 420 "12345678" /* change table with string shown */
10252 024 /* insm */
10253 401 "2" /* load table entry 1 with "2" */
10254 024 /* insm */
10255 364 /* mors */
10256 /* end of mop string */;
10257
10258 data 3 /* arranged in order */
10259 -do -34
10260
10261 " 12"
10262 "**12"
10263 "+3456"
10264 "+"
10265 "="
10266 "q"
10267 "q"
10268 "0012"
10269 "1111"
10270 "2222"
10271 "3777";
10272
10273 page -all;
10274
10275
10276 ^L
10277
10278 /* ad3d1
10279 * The zero indicator is set.
10280 * Three 9-bit floating point operands are used.
10281 * Indirect descriptors are used for all operands.
10282 * Address register modification is used for all operands. */
10283
10284 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10285 -ir zr
10286 -mf1 idb ar reg
10287 -mf2 idb ar reg
10288 -mf3 idb ar reg
10289 -io 1;
10290
10291 desc 1 -sd f -nn 63;
10292 desc 2 -sd f -nn 60;
10293 desc 3 -sd f -nn 63;
10294
10295 data 1 -do -1 "+" 14"2583" "00000" 005;
10296 data 2 -do -60 "-" 14"2583" "00" 010;
10297 data 3 -do -8 "+" 61"0" 177;
10298
10299 page -all;
10300
10301
10302
10303 /* ad3d2
10304 * The zero indicator is set.
10305 * Three 9-bit leading sign operands are used.
10306 * The maximum number of page faults is taken.
10307 * Indirect descriptors are used for all operands.
10308 * Address register modification is used for all operands. */
10309
10310 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10311 -ir zr tn
10312 -mf1 idb ar reg
10313 -mf2 idb ar reg
10314 -mf3 idb ar reg
10315 -io 2;
10316
10317 desc 1 -sd l -nn 13 -sf 4;
10318 desc 2 -sd l -nn 13 -sf 4;
10319 desc 3 -sd l -nn 5 -sf 6;
10320
10321 data 1 -do -12 "-" 2"392457";
10322 data 2 -do -4 "+" 2"392457";
10323 data 3 -do -4 "+" 4"0";
10324
10325 page -all;
10326
10327
10328
10329 /* ad3d3
10330 * The negative indicator is set.
10331 * Three 4-bit floating point operands are used.
10332 * Indirect descriptors are used for all operands.
10333 * Address register modification is used for all operands. */
10334
10335 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10336 -ir ng
10337 -mf1 idb ar
10338 -mf2 idb ar
10339 -mf3 idb ar
10340 -io 3;
10341
10342 desc 1 -tn 4 -sd f -nn 22;
10343 desc 2 -tn 4 -sd f -nn 22;
10344 desc 3 -tn 4 -sd f -nn 22;
10345
10346 data 1 -do -11 320 5000 "8888" 005;
10347 data 2 -do -1 260 5 000 "7777" 005;
10348 data 3 -do -4 320 5000 4001 005;
10349
10350 page -all;
10351
10352
10353
10354 /* ad3d4
10355 * The negative indicator is set.
10356 * Three 4-bit trailing sign operands are used.
10357 * Indirect descriptors are used for all operands.
10358 * Address register modification is used for all operands. */
10359
10360 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10361 -ir ng
10362 -mf1 idb ar
10363 -mf2 idb ar
10364 -mf3 idb ar
10365 -io 1;
10366
10367 desc 1 -tn 4 -sd t -sf -1 -nn 8;
10368 desc 2 -tn 4 -sd t -sf -1 -nn 8;
10369 desc 3 -tn 4 -sd t -sf -1 -nn 8;
10370
10371 data 1 -do -4 "555+";
10372 data 2 -do -4 "777-";
10373 data 3 -do -4 3002 015;
10374
10375 page -all;
10376
10377
10378 /* ad3d5
10379 * The truncation indicator is set.
10380 * Three 9-bit floating point operands are used.
10381 * The maximum number of page faults is taken.
10382 * Indirect descriptors are used for all operands.
10383 * Address register modification is used for all operands. */
10384
10385 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10386 -ir tn
10387 -mf1 idb ar reg
10388 -mf2 idb ar reg
10389 -mf3 idb ar reg
10390 -io 2;
10391
10392 desc 1 -sd f -nn 63;
10393 desc 2 -sd f -nn 63;
10394 desc 3 -sd f -nn 50;
10395
10396 data 1 -do -1 "+" 61"4" 003;
10397 data 2 -do -62 "+" 61"5" 003;
10398 data 3 -do -48 "+" 48"9" 020;
10399
10400 page -all;
10401
10402
10403
10404 /* ad3d6
10405 * The truncation indicator is set.
10406 * Three 9-bit leading sign operands are used.
10407 * The maximum number of page faults is taken.
10408 * Indirect descriptors are used for all operands.
10409 * Address register modification is used for all operands. */
10410
10411 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10412 -ir tn
10413 -mf1 idb ar reg
10414 -mf2 idb ar reg
10415 -mf3 idb ar reg
10416 -io 3;
10417
10418 desc 1 -sd l -sf 5 -nn 37;
10419 desc 2 -sd l -sf 5 -nn 37;
10420 desc 3 -sd l -sf 10 -nn 37;
10421
10422 data 1 -do -20 "+" 6"121212";
10423 data 2 -do -20 "+" 6"212121";
10424 data 3 -do -32 "+" 5"0" 31"3";
10425
10426 page -all;
10427
10428
10429
10430 /* ad3d7
10431 * Rounding is tested.
10432 * Three 9-bit trailing sign operands are used.
10433 * The maximum number of page faults is taken.
10434 * Indirect descriptors are used for all operands.
10435 * Address register modification is used for all operands. */
10436
10437 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10438 -rb
10439 -mf1 idb ar reg
10440 -mf2 idb ar reg
10441 -mf3 idb ar reg
10442 -io 1;
10443
10444 desc 1 -sd t -sf 5 -nn 37;
10445 desc 2 -sd t -sf 5 -nn 37;
10446 desc 3 -sd t -sf 10 -nn 37;
10447
10448 data 1 -do -36 6"121212" "+";
10449 data 2 -do -1 6"212121" "+";
10450 data 3 -do -35 5"0" 31"3" "+";
10451
10452 page -all;
10453
10454
10455
10456 /* ad3d8
10457 * The overflow indicator is set.
10458 * Three 4-bit unsigned operands are used.
10459 * Indirect descriptors are used for all operands.
10460 * Address register modification is used for all operands. */
10461
10462 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10463 -ir ov
10464 -mf1 idb ar
10465 -mf2 idb ar
10466 -mf3 idb ar
10467 -io 2;
10468
10469 desc 1 -tn 4 -sd n -sf 8 -nn 16;
10470 desc 2 -tn 4 -sd n -sf 8 -nn 16;
10471 desc 3 -tn 4 -sd n -sf 5 -nn 16;
10472
10473 data 1 -do -15 8 042;
10474 data 2 -do -1 8 063;
10475 data 3 -do -8 6 125 120 000;
10476
10477 page -all;
10478
10479
10480
10481 /* ad3d9
10482 * The exponent overflow indicator is set.
10483 * Three 9-bit floating point operands are used.
10484 * The maximum number of page faults is taken.
10485 * Indirect descriptors are used for all operands.
10486 * Address register modification is used for all operands. */
10487
10488 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10489 -ir eo tn
10490 -mf1 idb ar reg
10491 -mf2 idb ar reg
10492 -mf3 idb ar reg
10493 -io 3;
10494
10495 desc 1 -sd f -nn 6;
10496 desc 2 -sd f -nn 6;
10497 desc 3 -sd f -nn 6;
10498
10499 data 1 -do -1 "+" 4"9" 177;
10500 data 2 -do -5 "+" 4"2" 177;
10501 data 3 -do -4 "+" "1222" 200;
10502
10503 page -all;
10504
10505
10506
10507 /* ad3d10
10508 * A 9-bit operand is added to a 9-bit operand and stored in a 4-bit operand.
10509 * The maximum number of page faults is taken.
10510 * Indirect descriptors are used for all operands.
10511 * Address register modification is used for all operands. */
10512
10513 inst ad3d -nt "9 bit + 9 bit -> 4 bit"
10514 -mf1 idb ar reg
10515 -mf2 idb ar reg
10516 -mf3 idb ar
10517 -io 1;
10518
10519 desc 1 -sd l -nn 10;
10520 desc 2 -sd l -nn 10;
10521 desc 3 -sd l -tn 4 -nn 11 -cn 1;
10522
10523 data 1 -do -1 "+" "987654321";
10524 data 2 -do -8 "+" "123456789";
10525 data 3 -do -1 00 301 4021 00;
10526
10527 page -all;
10528
10529
10530
10531 /* ad3d11
10532 * A 4-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10533 * Indirect descriptors are used for all operands.
10534 * Address register modification is used for all operands. */
10535
10536 inst ad3d -nt "4 bit + 4 bit -> 9 bit"
10537 -mf1 idb ar
10538 -mf2 idb ar
10539 -mf3 idb ar reg
10540 -io 2;
10541
10542 desc 1 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10543 desc 2 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10544 desc 3 -sd t -sf -1 -nn 11;
10545
10546 data 1 -do -1 00 230 166 124 062 033;
10547 data 2 -do -5 00 022 064 126 170 233;
10548 data 3 -do -10 9"1" "0" "+";
10549
10550 page -all;
10551
10552
10553
10554 /* ad3d12
10555 * A 9-bit operand is added to a 4-bit operand and stored in a 4-bit operand.
10556 * The maximum number of page faults is taken.
10557 * Indirect descriptors are used for all operands.
10558 * Address register modification is used for all operands. */
10559
10560 inst ad3d -nt "9 bit + 4 bit -> 4 bit"
10561 -mf1 idb ar reg
10562 -mf2 idb ar
10563 -mf3 idb ar
10564 -io 3;
10565
10566 desc 1 -sd f -nn 11;
10567 desc 2 -sd f -tn 4 -nn 12;
10568 desc 3 -sd f -tn 4 -nn 13;
10569
10570 data 1 -do -9 "+" "987654321" 036;
10571 data 2 -do -5 261 043 105 147 211 036;
10572 data 3 -do -6 301 4021 001 34;
10573
10574 page -all;
10575
10576
10577
10578 /* ad3d13
10579 * A 9-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10580 * The maximum number of page faults is taken.
10581 * Indirect descriptors are used for all operands.
10582 * Address register modification is used for all operands. */
10583
10584 inst ad3d -nt "9 bit + 4 bit -> 9 bit"
10585 -mf1 idb ar reg
10586 -mf2 idb ar
10587 -mf3 idb ar reg
10588 -io 1;
10589
10590 desc 1 -sd n -sf -5 -nn 9;
10591 desc 2 -sd n -tn 4 -sf -5 -nn 9;
10592 desc 3 -sd n -sf -5 -nn 10;
10593
10594 data 1 -do -8 "987654321";
10595 data 2 -do -1 022 064 126 170 22;
10596 data 3 -do -5 9"1" "0";
10597
10598 page -all;
10599
10600
10601
10602
10603 /* ad3d14
10604 * Leading, trailing, and floating point operands are mixed.
10605 * The maximum number of page faults is taken.
10606 * Indirect descriptors are used for all operands.
10607 * Address register modification is used for all operands. */
10608
10609 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10610 -mf1 idb ar reg
10611 -mf2 idb ar reg
10612 -mf3 idb ar reg
10613 -io 2;
10614
10615 desc 1 -sd l -sf 7 -nn 10;
10616 desc 2 -sd t -sf 7 -nn 10;
10617 desc 3 -sd f -nn 12;
10618
10619 data 1 -do -9 "+" "987654321";
10620 data 2 -do -4 "123456789" "+";
10621 data 3 -do -8 "+" 9"1" "0" 007;
10622
10623 page -all;
10624
10625
10626
10627 /* ad3d15
10628 * Floating point, unsigned, and leading sign operands are mixed.
10629 * Indirect descriptors are used for all operands.
10630 * Address register modification is used for all operands. */
10631
10632 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10633 -mf1 idb ar
10634 -mf2 idb ar
10635 -mf3 idb ar
10636 -io 3;
10637
10638 desc 1 -tn 4 -sd f -nn 12;
10639 desc 2 -tn 4 -sd n -nn 9;
10640 desc 3 -tn 4 -sd l -nn 13 -sf -2;
10641
10642 data 1 -do -6 271 207 145 103 041 000;
10643 data 2 -do -4 022 064 126 170 22;
10644 data 3 -do -5 301 4021 00000;
10645
10646 page -all;
10647
10648
10649 ^L
10650
10651 /* ad2d1
10652 * Use RL mod and cn field with indirect descriptors
10653 * add 9 bit scaled to 9 bit scaled
10654 * two character offset
10655 *
10656 */
10657
10658
10659 inst ad2d -nt "9scaled+9scal->9scaled"
10660 -io 2 -ir ng
10661 -mf1 ar rl 10 idb reg
10662 -mf2 ar rl 10 idb reg;
10663
10664 desc1 -cn 1 -sd t ;
10665 desc2 -cn 1 -sd t ;
10666
10667 data 1 -do -9 " " 9 "2" "-";
10668 data 2 -do -9 "*" 9 "1" "+";
10669 data 3 "*" 9 "1" "-";
10670
10671 page -all;
10672
10673
10674
10675 /* ad2d2
10676 * Use RL mod and cn field with indirect descriptors
10677 * 9 bit scaled to 9 bit scaled
10678 * one character offset
10679 *
10680 */
10681
10682
10683 inst ad2d -nt "9scaled+9scaled->9scaled"
10684 -io 2 -ir ng
10685 -mf1 ar rl 10 idb reg
10686 -mf2 ar rl 10 idb reg;
10687
10688 desc1 -cn 1 -sd t ;
10689 desc2 -cn 1 -sd t ;
10690
10691 data 1 -do -10 " " 9 "2" "-";
10692 data 2 -do -10 "*" 9 "1" "+";
10693 data 3 "*" 9 "1" "-";
10694
10695 page -all;
10696
10697
10698
10699 /* ad2d3
10700 * Use RL mod and cn field
10701 * 9 bit scaled to 9 bit scaled
10702 * no indirect descriptors
10703 *
10704 */
10705
10706 inst ad2d -nt "9scaled+9scaled->9scaled"
10707 -io 2 -ir ng
10708 -mf1 ar rl 10 reg
10709 -mf2 ar rl 10 reg;
10710
10711 desc1 -cn 1 -sd t ;
10712 desc2 -cn 1 -sd t ;
10713
10714 data 1 -do -9 " " 9 "2" "-";
10715 data 2 -do -9 "*" 9 "1" "+";
10716 data 3 "*" 9 "1" "-";
10717
10718 page -all;
10719
10720
10721
10722 /* ad2d4
10723 * Use no modification
10724 * 9bit scaled added to 9 bit scaled
10725 *
10726 */
10727
10728 inst ad2d -nt "9scaled+9scaled->9scaled"
10729 -io 2 -ir ng;
10730
10731 desc1 -cn 1 -sd t -nn 12;
10732 desc2 -cn 1 -sd t -nn 12;
10733
10734 data 1 -do -12 " " 11 "2" "-";
10735 data 2 -do -12 "*" 11 "1" "+";
10736 data 3 "*" 11 "1" "-";
10737
10738 page -all;
10739
10740
10741
10742 /* ad2d5
10743 * Use ar and rl
10744 * 9 bit scaled to 9 bit scaled
10745 *
10746 */
10747
10748
10749 inst ad2d -nt "ar and rl modification"
10750 -io 2 -ir ng
10751 -mf1 ar rl 10
10752 -mf2 ar rl 10 ;
10753
10754 desc1 -cn 1 -sd t ;
10755 desc2 -cn 1 -sd t ;
10756
10757 data 1 -do -9 " " 9 "2" "-";
10758 data 2 -do -9 "*" 9 "1" "+";
10759 data 3 "*" 9 "1" "-";
10760
10761 page -all;
10762
10763
10764 /* ad2d6
10765 * Use ar and rl modification, desc1
10766 * Use ar rl idb reg on desc2
10767 * 9 bit scaled to 9 bit scaled
10768 *
10769 */
10770
10771
10772 inst ad2d -nt "9scaled+9scaled->9scaled"
10773 -io 2 -ir ng
10774 -mf1 ar rl 10
10775 -mf2 ar rl 10 idb reg;
10776
10777 desc1 -cn 1 -sd t ;
10778 desc2 -cn 1 -sd t ;
10779
10780 data 1 -do -9 " " 9 "2" "-";
10781 data 2 -do -9 "*" 9 "1" "+";
10782 data 3 "*" 9 "1" "-";
10783
10784 page -all;
10785
10786
10787
10788 /* ad2d7
10789 * maximum length add, leading sign
10790 * one character over next page
10791 * all modification taken
10792 */
10793 inst ad2d -nt "9scaled+9scaled->9scaled"
10794 -io 2
10795 -mf1 ar rl 63 idb reg
10796 -mf2 ar rl 63 idb reg;
10797
10798 desc1 -cn 1 -sd l ;
10799 desc2 -cn 1 -sd l ;
10800
10801 data 1 -do 4033 " " "+33" 15 "8642";
10802 data 2 -do 4033 "*" "+11" 15 "2357";
10803 data 3 "*" "+45" 14 "1000" "0999";
10804
10805 page -all;
10806
10807
10808
10809
10810 /* ad2d8
10811 * This is a simple test
10812 * 9 bit add to 9 bit all scaled trailing sign
10813 *
10814 */
10815
10816 inst ad2d -nt "simple test";
10817
10818 desc1 -sd t -sf 10 -nn 63;
10819 desc2 -sd t -sf 10 -nn 63;
10820
10821 data 1 "11" 15 "1111" "-";
10822 data 2 "22" 15 "2222" "+";
10823 data 3 "11" 15 "1111" "+";
10824
10825 page -all;
10826
10827
10828
10829
10830 /* ad2d9
10831 * maximum length add resulting
10832 * in an overflow
10833 * all modification taken
10834 * 9 bit scaled to 9 bit scaled
10835 */
10836 inst ad2d -nt "truncation fault"
10837 -io 1 -ir ov
10838 -mf1 ar rl 63 idb reg
10839 -mf2 ar rl 63 idb reg;
10840
10841 desc1 -sd l -cn 1;
10842 desc2 -sd l -cn 1;
10843
10844 data 1 -do 4033 " " "+33" 15 "8642";
10845 data 2 -do 4033 "*" "+71" 15 "2357";
10846 data 3 "*" "+" "05" 14 "1000" "0999";
10847
10848 page -all;
10849
10850
10851
10852
10853
10854 /* ad2d10
10855 * maximum length over two pages
10856 * no faults, 9 bit to 4 bit
10857 *
10858 */
10859
10860 inst ad2d -nt "9 bit -> 4 bit"
10861 -io 1
10862 -mf1 ar rl 63
10863 -mf2 ar rl 63 ;
10864
10865 desc1 -sd t ;
10866 desc2 -sd t -tn 4;
10867
10868 data 1 -do 4033 "33" 15 "3333" "+";
10869 data 2 -do 4064 021021 7 021021021021 02126;
10870 data 3 104104 7 104104104104 1043;
10871
10872 page -all;
10873
10874
10875
10876
10877
10878 /* ad2d11
10879 * 9 bit to 4 bit all page faults possible
10880 * no reg modification on desc2
10881 *
10882 */
10883
10884 inst ad2d -nt "9bit ->4bit"
10885 -io 2
10886 -mf1 ar rl 63 idb reg
10887 -mf2 ar rl 63 idb ;
10888
10889 desc1 -cn 1 -sd l;
10890 desc2 -cn 1 -sd t -tn 4;
10891
10892 data 1 -do 4033 " " "+33" 15 "3333";
10893 data 2 -do 4068 "*" 021021 7 021021021021 0213;
10894 data 3 "*" 104104 7 104104104104 1043;
10895
10896 page -all;
10897
10898
10899
10900
10901
10902 /* ad2d12
10903 * 4 bit added to 4 bit
10904 * maximum length
10905 * all page faults taken
10906 * no reg modification
10907 */
10908
10909 inst ad2d -nt "4 bit + 4bit"
10910 -io 1
10911 -mf1 ar rl 63 idb
10912 -mf2 ar rl 63 idb;
10913
10914 desc1 -cn 1 -sd t -tn 4;
10915 desc2 -cn 1 -sd t -tn 4;
10916
10917 data 1 -do 4065 " " 021021 7 021021021021 0213;
10918 data 2 -do 4065 "*" 021021 7 021021021021 0213;
10919 data 3 "*" 042042 7 042042042042 0423;
10920
10921 page -all;
10922
10923
10924
10925
10926
10927 /* ad2d13
10928 * floating point add
10929 * 9 bit to 9bit
10930 * all page faults taken
10931 *
10932 */
10933
10934 inst ad2d -nt "9bit float add"
10935 -io 1
10936 -mf1 ar rl 63 reg idb
10937 -mf2 ar rl 63 reg idb;
10938
10939 desc1 -sd f;
10940 desc2 -sd f;
10941
10942 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
10943 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
10944 data 3 "+" 19 "0" "1" 9 "2" "1" 29 "0" "11" 005;
10945
10946 page -all;
10947
10948
10949
10950
10951
10952
10953 /* ad2d14
10954 * 4 bit floating added to
10955 * 4 bit floating
10956 *
10957 */
10958
10959 inst ad2d -nt "4 float to 4 float"
10960 -io 1
10961 -mf1 ar rl 10 ida
10962 -mf2 ar rl 10 ida;
10963
10964 desc1 -sd f -tn 4;
10965 desc2 -sd f -tn 4;
10966
10967 data 1 -do -1 300 000 021 021 000;
10968 data 2 -do -1 300 000 021 021 000;
10969 data 3 300 000 042 042 000;
10970
10971 page -all;
10972
10973
10974
10975
10976
10977 /* ad2d15
10978 * test 4bit scaled to 9 bit
10979 *
10980 */
10981
10982 inst ad2d -nt "4bit->9bit"
10983 -io 1
10984 -mf1 ar rl 5 idb
10985 -mf2 ar rl 5 idb reg;
10986
10987 desc 1 -tn 4 -sd l;
10988 desc 2 -sd n;
10989
10990 data 1 30102100;
10991 data 2 -do 4 "02222";
10992 data 3 "03332";
10993
10994 page -all;
10995
10996
10997
10998
10999
11000 /* ad2d16
11001 * test 9 floating to 4 floating
11002 *
11003 */
11004
11005 inst ad2d -nt "9float->4 float"
11006 -io 1
11007 -mf1 ar rl 5 idb reg
11008 -mf2 ar rl 7 idb;
11009
11010 desc 1 -sd f;
11011 desc 2 -sd f -tn 4;
11012
11013 data 1 "+" 3 "1" 000;
11014 data 2 300 042 040 00;
11015 data 3 30006306000;
11016
11017 page -all;
11018
11019
11020
11021
11022
11023
11024 /* ad2d17
11025 * 4 float to 9 float
11026 *
11027 */
11028
11029 inst ad2d -nt "4float -> 9float"
11030 -io 1
11031 -mf1 ar rl 7 idb
11032 -mf2 ar rl 7 idb reg;
11033
11034 desc 1 -sd f -tn 4 ;
11035 desc 2 -sd f;
11036
11037 data 1 300 042 040 00;
11038 data 2 "+0" 3 "1" "0" 000;
11039 data 3 "+01332" 000;
11040
11041 page -all;
11042
11043
11044
11045
11046
11047
11048 /* ad2d18
11049 * 9 scaled to 9 float
11050 *
11051 */
11052
11053 inst ad2d -nt "9sacled to 9 float"
11054 -io 2
11055 -mf1 ar rl 5 idb reg
11056 -mf2 ar rl 6 idb reg;
11057
11058 desc1 -sd l;
11059 desc2 -sd f;
11060
11061 data 1 "+" 4 "3";
11062 data 2 "+" "0" 3 "2" 000;
11063 data 3 "+" "3555" 000;
11064
11065 page -all;
11066
11067
11068
11069
11070
11071 /* ad2d19
11072 * 9 float to 9 scaled
11073 *
11074 */
11075
11076 inst ad2d -nt "9 float to 9 scaled"
11077 -io 2
11078 -mf1 ar rl 6 idb reg
11079 -mf2 ar rl 5 idb reg;
11080
11081 desc1 -sd f;
11082 desc2 -sd l;
11083
11084 data 1 "+" "0" 3 "2" 000;
11085 data 2 "+" 4 "3";
11086 data 3 "+" "3555";
11087
11088 page -all;
11089
11090
11091
11092
11093
11094 /* ad2d20
11095 * 9 scaled to 4 float
11096 *
11097 */
11098
11099 inst ad2d -nt "9scaled->4float"
11100 -io 2
11101
11102 -mf1 ar rl 5 idb reg
11103 -mf2 ar rl 6 idb;
11104
11105 desc 1 -sd l;
11106 desc 2 -sd f -tn 4;
11107
11108 data 1 "+0" 3 "2";
11109 data 2 303063 000;
11110 data 3 305125000;
11111
11112 page -all;
11113
11114
11115
11116
11117
11118 /* ad2d21
11119 * 9 float to 4 scaled
11120 *
11121 */
11122
11123 inst ad2d -nt "9float->4scaled"
11124 -io 1
11125 -mf1 ar rl 6 idb reg
11126 -mf2 ar rl 4 idb;
11127
11128 desc 1 -sd f;
11129 desc 2 -sd l -tn 4;
11130
11131 data 1 -do -1 "+0" 3 "2" 000;
11132 data 2 -do -2 303 063;
11133 data 3 305125;
11134
11135 page -all;
11136
11137
11138
11139
11140
11141 /* ad2d22
11142 * 4scaled to 9 float
11143 *
11144 */
11145
11146 inst ad2d -nt "4scaled-.9float"
11147 -io 1
11148 -mf1 ar rl 4 idb
11149 -mf2 ar rl 6 idb reg;
11150
11151 desc 1 -sd l -tn 4;
11152 desc 2 -sd f;
11153
11154 data 1 -do -1 303063;
11155 data 2 -do -1 "+0" 3 "2" 000;
11156 data 3 "+0" 3 "5" 000;
11157
11158 page -all;
11159
11160
11161
11162
11163
11164 /* ad2d23
11165 * 4 floating to 9 scaled
11166 *
11167 */
11168
11169 inst ad2d -nt "4float->9scaled"
11170 -io 1
11171 -mf1 ar rl 6 idb
11172 -mf2 ar rl 5 idb reg;
11173
11174 desc 1 -sd f -tn 4;
11175 desc 2 -sd n;
11176
11177 data 1 -do -1 303 063 000;
11178 data 2 -do -2 "00" "555";
11179 data 3 "00" "888";
11180
11181 page -all;
11182
11183
11184
11185
11186
11187 /* ad2d24
11188 * 4 scaled to 4 float
11189 *
11190 */
11191
11192 inst ad2d -nt "4scaled to 4 float"
11193 -io 1
11194 -mf1 ar rl 4 idb
11195 -mf2 ar rl 6 idb;
11196
11197 desc 1 -tn 4 -sd l;
11198 desc 2 -tn 4 -sd f;
11199
11200 data 1 -do -1 303 063;
11201 data 2 -do -1 302042000;
11202 data 3 305125 000;
11203
11204 page -all;
11205
11206
11207
11208
11209
11210 /* ad2d25
11211 * 4 floating to 4 scaled
11212 *
11213 */
11214
11215 inst ad2d -nt "4 floating to 4 scaled"
11216 -io 2
11217 -mf1 ar rl 6 idb
11218 -mf2 ar rl 4 idb;
11219
11220 desc 1 -tn 4 -sd f;
11221 desc 2 -tn 4 -sd l;
11222
11223 data 1 -do -1 302042000;
11224 data 2 -do -1 303 063;
11225 data 3 305125;
11226
11227 page -all;
11228
11229
11230
11231
11232
11233 /* ad2d26
11234 *
11235 * Use RL mod and strings of length 63 and cn fields.
11236 */
11237
11238
11239 inst ad2d -nt "63 char string" -io 2
11240 -mf1 rl 63 idb reg ar
11241 -mf2 rl 63 idb reg ar;
11242
11243 desc 1 -sd n -cn 1;
11244 desc 2 -sd n -cn 2;
11245
11246 data 1 -do -21 " " "234" 15 "1234";
11247 data 2 -do -22 "**" "345" 15 "2345";
11248 data 3 "**" "579" 15 "3579"; /* This is just test data. This is how descriptor 2
11249 * data is going to look after the ad2d. */
11250
11251
11252 page -all;
11253
11254
11255 ^L
11256
11257 /* sb3d1
11258 * a simple test
11259 * no modification used
11260 - 9 bit - 9 bit to 9 bit
11261 *
11262 */
11263
11264 inst sb3d -nt"9bit-9bit->9bit"
11265 -io 2;
11266
11267 desc1 -sd l -cn 1 -nn 10;
11268 desc2 -sd l -cn 1 -nn 10;
11269 desc3 -sd l -cn 1 -nn 10;
11270
11271 data 1 " -" 9 "1";
11272 data 2 " +" 9 "1";
11273 data 3 000 "+" 9 "2";
11274
11275 page -all;
11276
11277
11278
11279
11280 /* sb3d2
11281 * 9 bit - 9 bit to 9 bit
11282 * negative indicator on
11283 * all page faults taken
11284 *
11285 */
11286
11287 inst sb3d -nt "9 bit - 9bit to 9 bit"
11288 -io 1 -ir ng
11289 -mf1 ar rl 23 idb reg
11290 -mf2 ar rl 24 idb reg
11291 -mf3 ar rl 24 idb reg;
11292
11293 desc1 -sd t -cn 2;
11294 desc2 -sd t -cn 1;
11295 desc3 -sd l -cn 3;
11296
11297 data 1 -do -9 " " 5 "0" 8 "12" "1+";
11298 data 2 -do -11 " " 6 "0" 8 "23" "2-";
11299 data 3 000000000 "-" 6 "0" 8 "35" "3";
11300
11301 page -all;
11302
11303
11304
11305
11306 /* sb3d3
11307 * 9 bit scaled to 4 bit float to
11308 * 4 bit float
11309 *
11310 */
11311
11312 inst sb3d -nt "4bit float-9bit to 4bit"
11313 -io 2 -ir ng
11314 -mf1 ar rl 10 idb reg
11315 -mf2 ar rl 10 idb
11316 -mf3 ar rl 10 idb;
11317
11318 desc1 -sd t -cn 1;
11319 desc2 -sd f -tn 4;
11320 desc3 -sd f -tn 4;
11321
11322 data 1 -do -10 " " 5 "0" 4 "2" "+";
11323 data 2 -do -4 300 000 021 021 000;
11324 data 3 -do -4 320 000 021 021 000;
11325
11326 page -all;
11327
11328
11329
11330
11331 /* sb3d4
11332 * 9 bit scaled - 9 bit scaled to
11333 * 9 bit scaled
11334 * all page faults taken
11335 * truncation indicator set
11336 *
11337 */
11338
11339 inst sb3d -nt "9bit-9bit to 9bit"
11340 -io 2 -ir tn
11341 -mf1 ar rl 63 idb reg
11342 -mf2 ar rl 63 idb reg
11343 -mf3 ar rl 63 idb reg;
11344
11345 desc1 -cn 1 -sd l -sf 5;
11346 desc2 -cn 2 -sd l -sf 10;
11347 desc3 -cn 3 -sd l -sf 10;
11348
11349 data 1 -do 4033 " -" 5 "0" 19 "543";
11350 data 2 -do 4034 " +" 5 "0" 19 "765";
11351 data 3 -do 4035 3 000 "+" 5 "0" "76577" 17 "120" "0";
11352
11353 page -all;
11354
11355
11356
11357
11358 /* sb3d5
11359 * 9 bit scaled - 9 bit scaled tp
11360 * 9 bit scaled
11361 * all page faults taken
11362 * rounding desired, therefore no truncation
11363 *
11364 */
11365
11366 inst sb3d -nt "no truncation"
11367 -io 3
11368 -mf1 ar rl 63 idb reg
11369 -mf2 ar rl 63 idb reg
11370 -mf3 ar rl 63 idb reg
11371 -rb;
11372
11373 desc1 -cn 1 -sd l -sf 5;
11374 desc2 -cn 2 -sd l -sf 10;
11375 desc3 -cn 1 -sd l -sf 10;
11376
11377 data 1 -do 4033 " -" 5 "0" 19 "543";
11378 data 2 -do 4034 " +" 5 "0" 19 "765";
11379 data 3 -do 4033 000 "+" 5 "0" "76577" 17 "120" "0";
11380
11381 page -all;
11382
11383
11384
11385
11386 /* sb3d6
11387 * all operands 4 bit scaled
11388 * all page faults taken
11389 * negative indicator set
11390 *
11391 */
11392
11393 inst sb3d -nt "4 bit-4bit to 4bit scaled"
11394 -io 1 -ir ng
11395 -mf1 ar rl 63 idb
11396 -mf2 ar rl 63 idb
11397 -mf3 ar rl 63 idb;
11398
11399 desc1 -sd l -tn 4 -cn 1;
11400 desc2 -sd l -tn 4 -cn 1;
11401 desc3 -sd l -tn 4 -cn 1;
11402
11403 data 1 " " 300 26 000 4 105 8 000;
11404 data 2 " " 300 26 000 3 105 104 7 000;
11405 data 3 000320 29 000 001 8 000;
11406
11407 page -all;
11408
11409
11410
11411
11412 /* sb3d7
11413 * 9 bit scaled - 9 bit scaled to
11414 * 9 bit scaled
11415 * all page faults taken
11416 * rounding desired and it occurs
11417 *
11418 */
11419
11420 inst sb3d -nt "rounded result"
11421 -io 2 -rb
11422 -mf1 ar rl 63 idb reg
11423 -mf2 ar rl 63 idb reg
11424 -mf3 ar rl 63 idb reg;
11425
11426 desc1 -cn 1 -sd l -sf 5;
11427 desc2 -cn 1 -sd l -sf 10;
11428 desc3 -sd l -cn 1 -sf 10;
11429
11430 data 1 -do 4033 " -" 5 "0" 17 "543" "043543";
11431 data 2 -do 4033 " +" 5 "0" 19 "765";
11432 data 3 -do 4033 000 "+" 5 "0" "76577" 16 "120" "1195";
11433
11434 page -all;
11435
11436
11437
11438
11439 /* sb3d8
11440 * all operands 9 bit float
11441 * all page faults taken
11442 * no rounding needed
11443 :
11444 */
11445
11446 inst sb3d -nt "9 bit floating"
11447 -io 1
11448 -mf1 ar rl 10 idb reg
11449 -mf2 ar rl 10 idb reg
11450 -mf3 ar rl 10 idb reg;
11451
11452 desc1 -sd f -cn 1;
11453 desc2 -sd f -cn 1;
11454 desc3 -sd f -cn 1;
11455
11456 data 1 -do -10 " -" 8 "1" 001;
11457 data 2 -do -10 " +" 8 "2" 001;
11458 data 3 -do -10 000 "+" 8 "3" 001;
11459
11460 page -all;
11461
11462
11463
11464
11465 /* sb3d9
11466 * all operands 9 bit floating
11467 * rounding not desired, but required
11468 * set round bit
11469 *
11470 */
11471
11472 inst sb3d -nt "round floating"
11473 -io 2 -rb
11474 -mf1 ar rl 10 ida
11475 -mf2 ar rl 10 ida
11476 -mf3 ar rl 10 ida;
11477
11478 desc1 -cn 1 -sd f;
11479 desc2 -cn 1 -sd f;
11480 desc3 -sd f;
11481
11482 data 1 " +" 8 "3" 000;
11483 data 2 " +" 8 "9" 001;
11484 data 3 "+" "9" 7 "6" 001;
11485
11486 page -all;
11487
11488
11489
11490
11491 /* sb3d10
11492 * all operands 9 bit floating
11493 * truncation will occur
11494 *
11495 */
11496
11497 inst sb3d -nt "truncation"
11498 -io 3 -ir tn
11499 -mf1 ar rl 10
11500 -mf2 ar rl 10
11501 -mf3 ar rl 10;
11502
11503 desc1 -sd f;
11504 desc2 -sd f;
11505 desc3 -sd f;
11506
11507 data 1 "+" 8 "3" 000;
11508 data 2 "+" 8 "9" 001;
11509 data 3 "+" "9" 6 "6" "5" 001;
11510
11511 page -all;
11512
11513
11514
11515
11516 /* sb3d11
11517 * all operands 9 bit floating
11518 * truncation will occur
11519 :
11520 */
11521
11522 inst sb3d -nt "truncation"
11523 -ir ng tn
11524 -mf1 ar rl 10
11525 -mf2 ar rl 10
11526 -mf3 ar rl 10;
11527
11528 desc1 -sd f;
11529 desc2 -sd f;
11530 desc3 -sd f;
11531
11532 data 1 -do -4 "+" 8 "3" 000;
11533 data 2 -do -4 "-" 8 "9" 001;
11534 data 3 -do -4 "-" "10" 6 "3" 002;
11535
11536 page -all;
11537
11538
11539
11540
11541 /* sb3d12
11542 * 4 scaled - 4 scaled to 4 float
11543 *
11544 */
11545
11546 inst sb3d -nt "4sc-4sc->4float"
11547 -io 3
11548 -mf1 ar rl 4 idb
11549 -mf2 ar rl 4 idb
11550 -mf3 ar rl 6 idb;
11551
11552 desc 1 -tn 4 -sd l;
11553 desc 2 -tn 4 -sd l;
11554 desc 3 -tn 4 -sd f;
11555
11556 data 1 -do -1 323 063;
11557 data 2 -do -1 302 042;
11558 data 3 -do -1 305 125 000;
11559
11560 page -all;
11561
11562
11563
11564
11565 /* sb3d13
11566 * 4 scaled -4 float to 4 scaled
11567 *
11568 */
11569
11570 inst sb3d -nt "4scaled-4float to 4 scaled"
11571 -io 2
11572 -mf1 ar rl 6 idb
11573 -mf2 ar rl 4 idb
11574 -mf3 ar rl 4 idb;
11575
11576 desc 1 -tn 4 -sd f;
11577 desc 2 -tn 4 -sd l;
11578 desc 3 -tn 4 -sd l;
11579
11580 data 1 -do -1 323 063 000;
11581 data 2 -do -1 302 042;
11582 data 3 -do -1 305 125;
11583
11584 page -all;
11585
11586
11587
11588
11589 /* sb3d14
11590 * 4 floating - 9 scaled to 9 floating
11591 *
11592 */
11593
11594 inst sb3d -nt "4float-9scaled->9float"
11595 -io 1
11596 -mf1 ar rl 4 idb reg
11597 -mf2 ar rl 6 idb
11598 -mf3 ar rl 5 idb reg;
11599
11600 desc 1 -sd t;
11601 desc 2 -sd f -tn 4;
11602 desc 3 -sd f;
11603
11604 data 1 -do -3 "333-";
11605 data 2 -do -2 302 042 000;
11606 data 3 -do -4 "+555" 000;
11607
11608 page -all;
11609
11610
11611
11612
11613 /* sb3d15
11614 * 9 scaled - 4 bit to 9 scaled
11615 *
11616 */
11617
11618 inst sb3d -nt "9bit-4bit->9bit"
11619 -io 1
11620 -mf1 ar rl 5 idb
11621 -mf2 ar rl 5 idb reg
11622 -mf3 ar rl 5 idb reg;
11623
11624 desc 1 -tn 4 -sd l;
11625 desc 2 -sd n;
11626 desc 3 -sd n;
11627
11628 data 1 -do -1 321 02100;
11629 data 2 -do 4 "02222";
11630 data 3 -do -1 "03332";
11631
11632 page -all;
11633
11634
11635
11636
11637 /* sb3d16
11638 * 4float-9float to 4 float
11639 *
11640 */
11641
11642 inst sb3d -nt "4flo-9flo->4flo"
11643 -io 1
11644 -mf1 ar rl 5 idb reg
11645 -mf2 ar rl 7 idb
11646 -mf3 ar rl 7 idb;
11647
11648 desc 1 -sd f;
11649 desc 2 -sd f -tn 4;
11650 desc 3 -sd f -tn 4;
11651
11652 data 1 -do -1 "-" 3 "1" 000;
11653 data 2 -do -1 300 042 040 00;
11654 data 3 -do -1 30006306000;
11655
11656 page -all;
11657
11658
11659
11660
11661
11662 /* sb3d17
11663 * 9 float - 4 float to 9 float
11664 *
11665 */
11666
11667 inst sb3d -nt "9flo-4flo->9flo"
11668 -io 1
11669 -mf1 ar rl 7 idb
11670 -mf2 ar rl 7 idb reg
11671 -mf3 ar rl 7 idb reg;
11672
11673 desc 1 -sd f -tn 4 ;
11674 desc 2 -sd f;
11675 desc 3 -sd f;
11676
11677 data 1 -do -1 320 042 040 00;
11678 data 2 -do -1 "+0" 3 "1" "0" 000;
11679 data 3 -do -1 "+01332" 000;
11680
11681 page -all;
11682
11683
11684
11685
11686
11687 /* sb3d18
11688 * 9 float-9 scaled to 9 float
11689 *
11690 */
11691
11692 inst sb3d -nt "9flo-9sca->9flo"
11693 -io 2
11694 -mf1 ar rl 5 idb reg
11695 -mf2 ar rl 6 idb reg
11696 -mf3 ar rl 6 idb reg;
11697
11698 desc1 -sd l;
11699 desc2 -sd f;
11700
11701 data 1 -do -1 "-" 4 "3";
11702 data 2 -do -1 "+" "0" 3 "2" 000;
11703 data 3 -do -1 "+" "3555" 000;
11704
11705 page -all;
11706
11707
11708
11709
11710 /* sb3d19
11711 * 9scaled - 9 floating to 9 scaled
11712 *
11713 */
11714
11715 inst sb3d -nt "9sca-9flo->9sca"
11716 -io 2
11717 -mf1 ar rl 6 idb reg
11718 -mf2 ar rl 5 idb reg
11719 -mf3 ar rl 5 idb reg;
11720
11721 desc1 -sd f;
11722 desc2 -sd l;
11723 desc 3 -sd l;
11724
11725 data 1 -do -1 "-" "0" 3 "2" 000;
11726 data 2 -do -1 "+" 4 "3";
11727 data 3 -do -1 "+" "3555";
11728
11729 page -all;
11730
11731
11732
11733
11734 /* sb3d20
11735 * 4 float - 9 scaled to 4 float
11736 *
11737 */
11738
11739 inst sb3d -nt "4flo-9sca->9sca"
11740 -io 2
11741
11742 -mf1 ar rl 5 idb reg
11743 -mf2 ar rl 6 idb
11744 -mf3 ar rl 6 idb;
11745
11746 desc 1 -sd l;
11747 desc 2 -sd f -tn 4;
11748 desc 3 -sd f -tn 4;
11749
11750 data 1 -do -1 "-0" 3 "2";
11751 data 2 -do -1 303063 000;
11752 data 3 -do -1 305125000;
11753
11754 page -all;
11755
11756
11757
11758
11759 /* sb3d21
11760 * 4scaled - 9 float to 4 scaled
11761 *
11762 */
11763
11764 inst sb3d -nt "4sca-9flo->4sca"
11765 -io 1
11766 -mf1 ar rl 6 idb reg
11767 -mf2 ar rl 4 idb
11768 -mf3 ar rl 4 idb;
11769
11770 desc 1 -sd f;
11771 desc 2 -sd l -tn 4;
11772 desc 3 -sd l -tn 4;
11773
11774 data 1 -do -1 "-0" 3 "2" 000;
11775 data 2 -do -2 303 063;
11776 data 3 305125;
11777
11778 page -all;
11779
11780
11781
11782
11783 /* sb3d22
11784 * 9 float - 4 scaled to 9 float
11785 *
11786 */
11787
11788 inst sb3d -nt "9flo-4sca->9flo"
11789 -io 1
11790 -mf1 ar rl 4 idb
11791 -mf2 ar rl 6 idb reg
11792 -mf3 ar rl 6 idb reg;
11793
11794 desc 1 -sd l -tn 4;
11795 desc 2 -sd f;
11796 desc 3 -sd f;
11797
11798 data 1 -do -1 323063;
11799 data 2 -do -1 "+0" 3 "2" 000;
11800 data 3 "+0" 3 "5" 000;
11801
11802 page -all;
11803
11804
11805
11806
11807 /* sb3d23
11808 * 9 scaled - 4 floating to 9 scaled
11809 *
11810 */
11811
11812 inst sb3d -nt "9sca-4flo->9sca"
11813 -io 1
11814 -mf1 ar rl 6 idb
11815 -mf2 ar rl 5 idb reg
11816 -mf3 ar rl 5 idb reg;
11817
11818 desc 1 -sd f -tn 4;
11819 desc 2 -sd n;
11820 desc 3 -sd n;
11821
11822 data 1 -do -1 323 063 000;
11823 data 2 -do -2 "00" "555";
11824 data 3 "00" "888";
11825
11826 page -all;
11827
11828
11829
11830
11831 /* sb3d24
11832 * 4 float - 4 scaled to 4 float
11833 *
11834 */
11835
11836 inst sb3d -nt "4flo-4sca->4flo"
11837 -io 1
11838 -mf1 ar rl 4 idb
11839 -mf2 ar rl 6 idb
11840 -mf3 ar rl 6 idb;
11841
11842 desc 1 -tn 4 -sd l;
11843 desc 2 -tn 4 -sd f;
11844 desc 3 -tn 4 -sd f;
11845
11846 data 1 -do -1 323 063;
11847 data 2 -do -1 302042000;
11848 data 3 305125 000;
11849
11850 page -all;
11851
11852
11853
11854
11855 /* sb3d25
11856 * 4 scaled - 4 floatint to 4 scaled
11857 *
11858 */
11859
11860 inst sb3d -nt "4sca-4flo->4flo"
11861 -io 2
11862 -mf1 ar rl 6 idb
11863 -mf2 ar rl 4 idb
11864 -mf3 ar rl 4 idb;
11865
11866 desc 1 -tn 4 -sd f;
11867 desc 2 -tn 4 -sd l;
11868 desc 3 -tn 4 -sd l;
11869
11870 data 1 -do -1 322042000;
11871 data 2 -do -1 303 063;
11872 data 3 305125;
11873
11874 page -all;
11875
11876
11877
11878
11879 /* sb3d26
11880 *
11881 * Subtraction yields a zero number.
11882 */
11883
11884 inst sb3d -nt "Result = zero" -io 1
11885 -ir zr
11886 -mf1 ar
11887 -mf2 ida
11888 -mf3 ar reg idb rl 12;
11889
11890 desc 1 -sd l -nn 7 -sf 2;
11891
11892 desc 2 -sd t -nn 6 -sf 3;
11893
11894 desc 3 -sd n -sf -4;
11895
11896
11897 data 1 -do -3 053 "55" "5550";
11898
11899 data 2 -do -4 "5555" "5" 053;
11900
11901 data 3 -do -2 "00" "0000000000";
11902
11903
11904 page -all;
11905
11906
11907 ^L
11908
11909 /* sb2d1
11910 * The zero indicator is set.
11911 * Two 4-bit floating point operands are used.
11912 * The maximum number of page faults is taken.
11913 * Indirect descriptors are used for all operands.
11914 * Address register modification is used for all operands. */
11915
11916 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11917 -ir zr
11918 -mf1 idb ar
11919 -mf2 idb ar
11920 -io 1;
11921
11922 desc 1 -tn 4 -sd f -nn 63;
11923 desc 2 -tn 4 -sd f -nn 63;
11924
11925 data 1 -do -1 261 30021 00;
11926 data 2 -do -31 261 30021 00;
11927 data 3 300 29000 007 36;
11928
11929 page -all;
11930
11931
11932
11933 /* sb2d2
11934 * The zero indicator is set.
11935 * Two 4-bit operands with leading sign are used.
11936 * The maximum number of page faults is taken.
11937 * Indirect descriptors are used for all operands.
11938 * Address register modification is used for all operands. */
11939
11940 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11941 -ir zr
11942 -mf1 idb ar
11943 -mf2 idb ar
11944 -io 2;
11945
11946 desc 1 -tn 4 -sd l -sf 5 -nn 4;
11947 desc 2 -tn 4 -sd l -sf 4 -nn 5;
11948
11949 data 1 -do -1 263 222;
11950 data 2 -do -2 263 222;
11951 data 3 300 000 00;
11952
11953 page -all;
11954
11955
11956
11957 /* sb2d3
11958 * The negative indicator is set.
11959 * Two 9-bit floating point operands are used.
11960 * The maximum number of page faults is taken.
11961 * Indirect descriptors are used for all operands.
11962 * Address register modification is used for all operands. */
11963
11964 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11965 -ir ng
11966 -mf1 idb ar reg
11967 -mf2 idb ar reg
11968 -io 1;
11969
11970 desc 1 -sd f -nn 18;
11971 desc 2 -sd f -nn 18;
11972
11973 data 1 -do -14 "+" 3"98765" "8" 007;
11974 data 2 -do -4 "+" 3"32411" "7" 007;
11975 data 3 "-" 3"66354" "1" 007;
11976
11977 page -all;
11978
11979
11980
11981 /* sb2d4
11982 * The negative indicator is set.
11983 * Two 9-bit operands with trailing sign are used.
11984 * The maximum number of page faults is taken.
11985 * Indirect descriptors are used for all operands.
11986 * Address register modification is used for all operands. */
11987
11988 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11989 -ir ng
11990 -mf1 idb ar reg
11991 -mf2 idb ar reg
11992 -io 2;
11993
11994 desc 1 -sd t -sf 5 -nn 25;
11995 desc 2 -sd t -sf 5 -nn 25;
11996
11997 data 1 -do -23 24 "5" "+";
11998 data 2 -do -4 24 "4" "-";
11999 data 3 24 "9" "-";
12000
12001 page -all;
12002
12003
12004
12005 /* sb2d5
12006 * The truncation indicator is set.
12007 * Two 4-bit floating point operands are used.
12008 * The maximum number of page faults is taken.
12009 * Indirect descriptors are used for all operands.
12010 * Address register modification is used for all operands. */
12011
12012 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12013 -ir tn
12014 -mf1 idb ar
12015 -mf2 idb ar
12016 -io 2;
12017
12018 desc 1 -tn 4 -sd f -nn 8;
12019 desc 2 -tn 4 -sd f -nn 8;
12020
12021 data 1 -do -2 331 231 231 004;
12022 data 2 -do -2 270 166 124 003;
12023 data 3 301 010 166 005;
12024
12025 page -all;
12026
12027
12028
12029 /* sb2d6
12030 * The truncation indicator is set.
12031 * Two 9-bit leading sign operands are used.
12032 * The maximum number of page faults is taken.
12033 * Indirect descriptors are used for all operands.
12034 * Address register modification is used for all operands. */
12035
12036 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12037 -ir tn
12038 -mf1 idb ar reg
12039 -mf2 idb ar reg
12040 -io 2;
12041
12042 desc 1 -sd l -sf 4 -nn 63;
12043 desc 2 -sd l -sf 5 -nn 62;
12044
12045 data 1 -do -60 "+" 62"3";
12046 data 2 -do -3 "+" 61"9";
12047 data 3 "+" 60"6" "5";
12048
12049 page -all;
12050
12051
12052
12053 /* sb2d7
12054 * Rounding is tested.
12055 * Two 9-bit trailing sign operands are used.
12056 * The maximum number of page faults is taken.
12057 * Indirect descriptors are used for all operands.
12058 * Address register modification is used for all operands. */
12059
12060 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12061 -rb
12062 -mf1 idb ar reg
12063 -mf2 idb ar reg
12064 -io 1;
12065
12066 desc 1 -sd t -sf 4 -nn 63;
12067 desc 2 -sd t -sf 5 -nn 62;
12068
12069 data 1 -do -38 62"3" "+";
12070 data 2 -do -36 61"9" "+";
12071 data 3 61"6" "+";
12072
12073 page -all;
12074
12075
12076
12077 /* sb2d8
12078 * The overflow indicator is set.
12079 * Two 4-bit trailing sign operands are used.
12080 * Indirect descriptors are used for all operands.
12081 * Address register modification is used for all operands. */
12082
12083 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12084 -ir ov
12085 -mf1 idb ar
12086 -mf2 idb ar
12087 -io 2;
12088
12089 desc 1 -tn 4 -sd t -sf 3 -nn 7;
12090 desc 2 -tn 4 -sd t -sf 3 -nn 7;
12091
12092 data 1 3163 32;
12093 data 2 3231 26;
12094 data 3 163 163 162 300;
12095
12096 page -all;
12097
12098
12099
12100 /* sb2d9
12101 * The exponent overflow indicator is set.
12102 * Two 4-bit floating point operands are used.
12103 * Indirect descriptors are used for all operands.
12104 * Address register modification is used for all operands. */
12105
12106 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12107 -ir eo tn
12108 -mf1 idb ar
12109 -mf2 idb ar
12110 -io 1;
12111
12112 desc 1 -tn 4 -sd f -nn 8 -cn 1;
12113 desc 2 -tn 4 -sd f -nn 8 -cn 1;
12114
12115 data 1 -do -1 00 330 210 210 177;
12116 data 2 -do -4 00 267 167 167 177;
12117 data 3 00 301 146 146 200;
12118
12119 page -all;
12120
12121
12122
12123 /* sb2d10
12124 * Leading and trailing signs are mixed.
12125 * Two 9-bit operands are used.
12126 * The maximum number of page faults is taken.
12127 * Indirect descriptors are used for all operands.
12128 * Address register modification is used for all operands. */
12129
12130 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12131 -mf1 idb ar reg
12132 -mf2 idb ar reg
12133 -io 2;
12134
12135 desc 1 -sd l -sf -8 -nn 42;
12136 desc 2 -sd t -sf -8 -nn 42;
12137
12138 data 1 -do -40 "+" 4"1234000000" "9";
12139 data 2 -do -2 4"9876543210" "9" "+";
12140 data 3 4 "8642543210" "0+";
12141
12142 page -all;
12143
12144
12145
12146 /* sb2d11
12147 * Leading sign and floating point operands are mixed.
12148 * Two 4-bit operands are used.
12149 * The maximum number of page faults is taken.
12150 * Indirect descriptors are used for all operands.
12151 * Address register modification is used for all operands. */
12152
12153 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12154 -mf1 idb ar
12155 -mf2 idb ar
12156 -io 1;
12157
12158 desc 1 -tn 4 -sd l -nn 8;
12159 desc 2 -tn 4 -sd f -nn 10;
12160
12161 data 1 -do -1 271 043 064 000;
12162 data 2 -do -1 271 207 145 000 000;
12163 data 3 300 144 061 000 000;
12164
12165 page -all;
12166
12167
12168
12169
12170 /* sb2d12
12171 * A leading sign 9-bit and an unsigned 4-bit operand are mixed.
12172 * The maximum number of page faults is taken.
12173 * Indirect descriptors are used for all operands.
12174 * Address register modification is used for all operands. */
12175
12176 inst sb2d -nt "9 bit - 4 bit -> 4 bit"
12177 -mf1 idb ar reg
12178 -mf2 idb ar
12179 -io 2;
12180
12181 desc 1 -sd l -nn 8;
12182 desc 2 -sd n -tn 4 -nn 7;
12183
12184 data 1 -do -1 "+" "1234500";
12185 data 2 -do -1 230 166 120 00;
12186 data 3 206 102 000 00;
12187
12188 page -all;
12189
12190
12191
12192 /* sb2d13
12193 * Unsigned 4-bit and 9-bit operands are mixed.
12194 * The maximum number of page faults is taken.
12195 * Indirect descriptors are used for all operands.
12196 * Address register modification is used for all operands. */
12197
12198 inst sb2d -nt "4 bit - 9 bit -> 9 bit"
12199 -mf1 idb ar
12200 -mf2 idb ar reg
12201 -io 1;
12202
12203 desc 1 -sd n -sf 31 -tn 4 -nn 7;
12204 desc 2 -sd n -sf 31 -nn 7;
12205
12206 data 1 -do -1 022 064 120 00 ;
12207 data 2 -do -3 "9876500";
12208 data 3 "8642000";
12209
12210 page -all;
12211
12212
12213
12214 /* sb2d14
12215 * Floating point and trailing sign operands are mixed.
12216 * Two 9-bit operands are used.
12217 * The maximum number of page faults is taken.
12218 * Indirect descriptors are used for all operands.
12219 * Address register modification is used for all operands. */
12220
12221 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12222 -mf1 idb ar reg
12223 -mf2 idb ar reg
12224 -io 2;
12225
12226 desc 1 -sd f -nn 9;
12227 desc 2 -sd t -sf 12 -nn 8;
12228
12229 data 1 -do -7 "+" "1234500" 014;
12230 data 2 -do -3 "9876500" "+";
12231 data 3 "8642000" "+";
12232
12233 page -all;
12234
12235
12236 /* sb2d15
12237 * The special plus sign capability for 4-bit operands is tested.
12238 * Indirect descriptors are used for all operands.
12239 * Address register modification is used for all operands. */
12240
12241 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12242 -pb
12243 -mf1 idb ar
12244 -mf2 idb ar
12245 -io 1;
12246
12247 desc 1 -sd l -nn 7;
12248 desc 2 -sd l -tn 4 -nn 8;
12249
12250 data 1 -do -7 "+" "1234500";
12251 data 2 -do -2 261 043 105 000;
12252 data 3 261 021 020 120;
12253
12254 page -all;
12255
12256
12257 ^L
12258
12259 /* mp3d1
12260 * 9 bit scaled * 9 bit scaled to
12261 * 9 bit scaled
12262 * all page faults taken
12263 * rounding desired and it occurs
12264 *
12265 */
12266
12267 inst mp3d -nt "rounded result"
12268 -io 2 -rb
12269 -mf1 ar rl 63 idb reg
12270 -mf2 ar rl 63 idb reg
12271 -mf3 ar rl 63 idb reg;
12272
12273 desc1 -cn 1 -sd l -sf 5;
12274 desc2 -cn 1 -sd l -sf 10;
12275 desc3 -sd l -cn 1 -sf 20;
12276
12277 data 1 -do 4033 " +" 20 "0" 12 "543" "043543";
12278 data 2 -do 4033 " +" 47 "0" 5 "765";
12279 data 3 -do 4033 000 "+000000000041622703784865905405405405405405405"
12280 "36711707549441337";
12281
12282 page -all;
12283
12284
12285
12286
12287
12288
12289 /* mp3d2
12290 * a simple test
12291 * no modification used
12292 * 9 bit*9 bit to 9 bit
12293 *
12294 */
12295
12296 inst mp3d -nt"9bit*9bit->9bit"
12297 -io 2 -ir ov ng;
12298
12299 desc1 -sd l -cn 1 -nn 10;
12300 desc2 -sd l -cn 1 -nn 10;
12301 desc3 -sd l -cn 1 -nn 10;
12302
12303 data 1 " -" 9 "1";
12304 data 2 " +" 9 "1";
12305 data 3 000 "-" "987654321";
12306
12307 page -all;
12308
12309
12310
12311
12312 /* mp3d3
12313 * 9 bit*9 bit to 9 bit
12314 * negative indicator on
12315 * all page faults taken
12316 *
12317 */
12318
12319 inst mp3d -nt "9 bit*9bit to 9 bit"
12320 -io 1 -ir ng
12321 -mf1 ar rl 23 idb reg
12322 -mf2 ar rl 24 idb reg
12323 -mf3 ar rl 24 idb reg;
12324
12325 desc1 -sd t -cn 2;
12326 desc2 -sd t -cn 1;
12327 desc3 -sd l -cn 3;
12328
12329 data 1 -do -9 " " 15 "0" 3 "12" "1+";
12330 data 2 -do -11 " " 16 "0" 3 "23" "2-";
12331 data 3 3 000 "-" 10 "0" "2816038295072";
12332
12333 page -all;
12334
12335
12336
12337
12338 /* mp3d4
12339 * 9 bit scaled to 4 bit float to
12340 * 4 bit float
12341 *
12342 */
12343
12344 inst mp3d -nt "4bit float*9bit to 4bit"
12345 -io 2
12346 -mf1 ar rl 10 idb reg
12347 -mf2 ar rl 10 idb
12348 -mf3 ar rl 10 idb;
12349
12350 desc1 -sd t -cn 1;
12351 desc2 -sd f -tn 4;
12352 desc3 -sd f -tn 4;
12353
12354 data 1 -do -10 " " 5 "0" 4 "2" "+";
12355 data 2 -do -4 300 000 000 021 000;
12356 data 3 -do -4 300 002 104 102 000;
12357
12358 page -all;
12359
12360
12361
12362
12363 /* mp3d5
12364 * 9 bit scaled*9 bit scaled to
12365 * 9 bit scaled
12366 * all page faults taken
12367 * truncation indicator set
12368 *
12369 */
12370
12371 inst mp3d -nt "9bit*9bit to 9bit"
12372 -io 2
12373 -mf1 ar rl 63 idb reg
12374 -mf2 ar rl 63 idb reg
12375 -mf3 ar rl 63 idb reg;
12376
12377 desc1 -cn 1 -sd l ;
12378 desc2 -cn 2 -sd l -sf 1;
12379 desc3 -cn 3 -sd l -sf 1;
12380
12381 data 1 -do 4033 " +" 5 "0" 19 "543";
12382 data 2 -do 4034 " +" 60 "0" "11";
12383 data 3 -do 4035 3 000 "+" 4 "0" "5" 18 "978" "973";
12384
12385 page -all;
12386
12387
12388
12389
12390 /* mp3d6
12391 * 9 bit scaled*9 bit scaled tp
12392 * 9 bit scaled
12393 * all page faults taken
12394 * rounding desired, therefore no truncation
12395 *
12396 */
12397
12398 inst mp3d -nt "no truncation"
12399 -io 3 -ir ng
12400 -mf1 ar rl 63 idb reg
12401 -mf2 ar rl 63 idb reg
12402 -mf3 ar rl 63 idb reg
12403 -rb;
12404
12405 desc1 -cn 1 -sd l -sf 5;
12406 desc2 -cn 2 -sd l -sf 10;
12407 desc3 -cn 1 -sd l -sf 10;
12408
12409 data 1 -do 4033 " -" 53 "0" 3 "543";
12410 data 2 -do 4034 " +" 53 "0" 3 "765";
12411 data 3 -do 4033 000 "-" 39 "0" "416227037016205395" 5 "0";
12412
12413 page -all;
12414
12415
12416
12417
12418 /* mp3d7
12419 * all operands 4 bit scaled
12420 * all page faults taken
12421 * negative indicator set
12422 *
12423 */
12424
12425 inst mp3d -nt "4 bit*4bit to 4bit scaled"
12426 -io 1
12427 -mf1 ar rl 63 idb
12428 -mf2 ar rl 63 idb
12429 -mf3 ar rl 63 idb;
12430
12431 desc1 -sd l -tn 4 -cn 1;
12432 desc2 -sd l -tn 4 -cn 1;
12433 desc3 -sd l -tn 4 -cn 1;
12434
12435 data 1 " " 300 26 000 4 105 8 000;
12436 data 2 " " 300 26 000 3 105 104 7 000;
12437 data 3 000300 21 000 002 006 141 025 141 127 002 110 9 000;
12438
12439 page -all;
12440
12441
12442
12443
12444 /* mp3d8
12445 * all operands 9 bit float
12446 * all page faults taken
12447 * no rounding needed
12448 *
12449 */
12450
12451 inst mp3d -nt "9 bit floating"
12452 -io 1
12453 -mf1 ar rl 10 idb reg
12454 -mf2 ar rl 10 idb reg
12455 -mf3 ar rl 10 idb reg;
12456
12457 desc1 -sd f -cn 1;
12458 desc2 -sd f -cn 1;
12459 desc3 -sd f -cn 1;
12460
12461 data 1 -do -10 " +" 4 "0" 4 "1" 001;
12462 data 2 -do -10 " +" 4 "0" 4 "2" 001;
12463 data 3 -do -10 000 "+" "02468642" 002;
12464
12465 page -all;
12466
12467
12468
12469
12470 /* mp3d9
12471 * all operands 9 bit floating
12472 * rounding not desired, but required
12473 * set round bit
12474 *
12475 */
12476
12477 inst mp3d -nt "round floating"
12478 -io 2 -rb
12479 -mf1 ar rl 10 ida
12480 -mf2 ar rl 10 ida
12481 -mf3 ar rl 10 ida;
12482
12483 desc1 -cn 1 -sd f;
12484 desc2 -cn 1 -sd f;
12485 desc3 -sd f;
12486
12487 data 1 " +" 4 "0" 4 "3" 002;
12488 data 2 " +" 4 "0" 4 "9" 001;
12489 data 3 "+" 3 "3" "26667" 003;
12490
12491 page -all;
12492
12493
12494
12495
12496 /* mp3d10
12497 * all operands 9 bit floating
12498 * truncation will occur
12499 *
12500 */
12501
12502 inst mp3d -nt "truncation"
12503 -io 3 -ir tn
12504 -mf1 ar rl 10
12505 -mf2 ar rl 10
12506 -mf3 ar rl 10;
12507
12508 desc1 -sd f;
12509 desc2 -sd f;
12510 desc3 -sd f;
12511
12512 data 1 "+" 3 "0" 5 "3" 000;
12513 data 2 "+" 4 "0" 4 "9" 001;
12514 data 3 "+" 3 "3" "29666" 002;
12515
12516 page -all;
12517
12518
12519
12520
12521
12522
12523
12524 /* mp3d11
12525 * set zero indicator, use three 9-bit operands
12526 *
12527 */
12528 inst mp3d -nt"9sca*9sca->9sca"
12529 -ir zr
12530 -mf1 idb ar reg
12531 -mf2 idb ar reg
12532 -mf3 idb ar reg
12533 -io 1;
12534
12535 desc 1 -sd f -nn 63;
12536 desc 2 -sd f -nn 63;
12537 desc 3 -sd f -nn 63;
12538
12539 data 1 "+" 61"0" 000 -do -62;
12540 data 2 "-" 61"9" 034 -do -34;
12541 data 3 "+" 61"0" 177;
12542
12543 page -all;
12544
12545
12546
12547
12548 /* mp3d12
12549 *
12550 set zero indicator, use three 9-bit leading sign operands
12551 *
12552 */
12553 inst mp3d -nt"9sca*9sca->9sca"
12554 -ir zr
12555 -mf1 idb ar
12556 -mf2 idb ar
12557 -mf3 idb ar
12558 -io 2;
12559
12560 desc 1 -sd l -sf 10 -nn 7;
12561 desc 2 -sd l -sf 10 -nn 28;
12562 desc3 -sd l -sf 10 -nn 28;
12563
12564 data 1 -do -4 "-" 6"4";
12565 data 2 -do -24 "+" 27"0";
12566 data 3 "+" 27"0";
12567
12568 page -all;
12569
12570
12571
12572
12573 /* mp3d13
12574 *
12575 * set negative indicator, use three 4-bit floating operands
12576 *
12577 */
12578
12579 inst mp3d -nt "4float*4float->4float"
12580 -ir ng
12581 -mf1 idb ar
12582 -mf2 idb ar
12583 -mf3 idb ar
12584 -io 1;
12585
12586 desc 1 -tn 4 -sd f -nn 6;
12587 desc 2 -tn 4 -sd f -nn 6;
12588 desc 3 -tn 4 -sd f -nn 6;
12589
12590 data 1 260 061 004;
12591 data 2 320 050 004;
12592 data 3 330 150 010;
12593
12594 page -all;
12595
12596
12597
12598
12599 /* mp3d14
12600 *
12601 * set negative indicator, use three 4-bit leading sign operands
12602 *
12603 */
12604
12605 inst mp3d -nt "4sca*4sca->4sca"
12606 -ir ng
12607 -mf1 idb ar
12608 -mf2 idb ar
12609 -mf3 idb ar
12610 -io 2;
12611
12612 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12613 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12614 desc 3 -tn 4 -sd l -sf 2 -nn 6;
12615
12616 data 1 260 061;
12617 data 2 320 000 050;
12618 data 3 330 150 000;
12619
12620 page -all;
12621
12622
12623
12624
12625 /* mp3d15
12626 *
12627 * set truncation indicator, use three 4-bit floating operands
12628 *
12629 */
12630
12631 inst mp3d -nt "4float*4float->4float"
12632 -ir tn
12633 -mf1 idb ar
12634 -mf2 idb ar
12635 -mf3 idb ar
12636 -io 1;
12637
12638 desc 1 -tn 4 -sd f -nn 6;
12639 desc 2 -tn 4 -sd f -nn 6;
12640 desc 3 -tn 4 -sd f -nn 6;
12641
12642 data 1 266 130 012;
12643 data 2 260 022 013;
12644 data 3 307 211 026;
12645
12646 page -all;
12647
12648
12649
12650
12651 /* mp3d16
12652 *
12653 * set truncation indicator, use three 4-bit leading sign operands
12654 *
12655 */
12656
12657 inst mp3d -nt "4sca*4sca->4sca"
12658 -ir tn
12659 -mf1 idb ar
12660 -mf2 idb ar
12661 -mf3 idb ar
12662 -io 2;
12663
12664 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12665 desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1;
12666 desc 3 -tn 4 -sd l -sf 4 -nn 5;
12667
12668 data 1 00 271;
12669 data 2 00 261 043 10;
12670 data 3 301 021 00;
12671
12672 page -all;
12673
12674
12675
12676
12677 /* mp3d17
12678 *
12679 * test rounding, use three 4-bit trailing sign operands
12680 *
12681 */
12682
12683 inst mp3d -nt "4sca*4sca->4sca"
12684 -rb
12685 -mf1 idb ar
12686 -mf2 idb ar
12687 -mf3 idb ar
12688 -io 1;
12689
12690 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12691 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12692 desc 3 -tn 4 -sd t -sf 4 -nn 5;
12693
12694 data 1 -do -1 00 233;
12695 data 2 -do -2 022 064 30;
12696 data 3 021 021 30;
12697
12698 page -all;
12699
12700
12701
12702
12703 /* mp3d18
12704 *
12705 * set overflow indicator, use three 9-bit unsigned operands
12706 *
12707 */
12708
12709 inst mp3d -nt "9sca*9sca->9sca"
12710 -ir ov
12711 -mf1 idb ar reg
12712 -mf2 idb ar reg
12713 -mf3 idb ar reg
12714 -io 2;
12715
12716 desc 1 -sd n -nn 3;
12717 desc 2 -sd n -nn 5;
12718 desc 3 -sd n -nn 5;
12719
12720 data 1 -do -1 "999";
12721 data 2 -do -4 "00999";
12722 data 3 "98001";
12723
12724 page -all;
12725
12726
12727
12728
12729 /* mp3d19
12730 *
12731 * set exponent overflow indicator, use three 9-bit floating operands
12732 *
12733 */
12734
12735 inst mp3d -nt "9flo*9flo->9flo"
12736 -ir eo tn
12737 -mf1 idb ar reg
12738 -mf2 idb ar reg
12739 -mf3 idb ar reg
12740 -io 1;
12741
12742 desc 1 -sd f -nn 6;
12743 desc 2 -sd f -nn 6;
12744 desc 3 -sd f -nn 6;
12745
12746 data 1 -do -4 "+" "0900" 100;
12747 data 2 -do -1 "+" "0756" 076;
12748 data 3 "+" "6804" 200;
12749
12750 page -all;
12751
12752
12753
12754
12755 /* mp3d20
12756 *
12757 * set exponent underflow indicator, use three 4-bit trailing
12758 * sign operands
12759 *
12760 */
12761
12762 inst mp3d -nt "4sca*4sca->4sca"
12763 -ir eu
12764 -mf1 idb ar
12765 -mf2 idb ar
12766 -mf3 idb ar
12767 -io 2;
12768
12769 desc 1 -tn 4 -sd f -nn 6 -cn 1;
12770 desc 2 -tn 4 -sd f -nn 6 -cn 1;
12771 desc 3 -tn 4 -sd f -nn 6 -cn 1;
12772
12773 data 1 -do -1 00 260 042 200;
12774 data 2 -do -2 00 260 063 300;
12775 data 3 00 307 046 100;
12776
12777 page -all;
12778
12779
12780
12781
12782 /* mp3d21
12783 *
12784 * mix leading and traling signs with 4-bit operands
12785 *
12786 */
12787
12788 inst mp3d -nt "4sca*4sca->4sca"
12789 -mf1 idb ar
12790 -mf2 idb ar
12791 -mf3 idb ar
12792 -io 1;
12793
12794 desc 1 -tn 4 -sd l -nn 63;
12795 desc 2 -tn 4 -sd t -sf 3 -nn 63;
12796 desc 3 -tn 4 -sd t -sf 3 -nn 63;
12797
12798 data 1 -do -62 260 30000 22;
12799 data 2 -do -1 010 30210 26;
12800 data 3 171 29231 222 30;
12801
12802 page -all;
12803
12804
12805
12806
12807 /* mp3d22
12808 *
12809 * mix floating point and leading sign with 9-bit operands
12810 *
12811 */
12812
12813 inst mp3d -nt "9flo*9sca->9sca"
12814 -mf1 idb ar reg
12815 -mf2 idb ar reg
12816 -mf3 idb ar reg
12817 -io 2;
12818
12819 desc 1 -sd f -nn 5;
12820 desc 2 -sd l -sf -3 -nn 63;
12821 desc 3 -sd l -sf -3 -nn 63;
12822
12823 data 1 -do -4 "+" "009" 001;
12824 data 2 -do -17 "+" "00" 60"8";
12825 data 3 "+" "7" 59"9" "20";
12826
12827 page -all;
12828
12829
12830
12831
12832 /* mp3d23
12833 *
12834 * mix 9-bit and 4-bit operands, use leading sign and unsigned scaled
12835 * decimals
12836 *
12837 */
12838
12839 inst mp3d -nt "9sca*4sca->4sca"
12840 -mf1 idb ar reg
12841 -mf2 idb ar
12842 -mf3 idb ar
12843 -io 1;
12844
12845 desc 1 -sd l -sf 2 -nn 11;
12846 desc 2 -sd n -sf 2 -nn 15 -tn 4;
12847 desc 3 -sd n -sf 2 -nn 15 -tn 4;
12848
12849 data 1 -do -7 "+" "2271658432";
12850 data 2 -do -1 6000 124 04;
12851 data 3 022 061 043 210 160 024 100 000;
12852
12853 page -all;
12854
12855
12856
12857 /* mp3d24
12858 *
12859 * mix 4-bit and 9-bit unsigned operands
12860 *
12861 */
12862
12863 inst mp3d -nt "4sca*9sca->9sca"
12864 -mf1 idb ar
12865 -mf2 idb ar reg
12866 -mf3 idb ar reg
12867 -io 2;
12868
12869 desc 1 -sd n -tn 4 -sf 2 -nn 10;
12870 desc 2 -sd n -sf 2 -nn 15;
12871 desc 3 -sd n -sf 2 -nn 15;
12872
12873 data 1 -do -1 042 161 145 204 142;
12874 data 2 -do -13 12"0" "542";
12875 data 3 "123123888640400";
12876
12877 page -all;
12878
12879
12880
12881 /* mp3d25
12882 *
12883 * mix floating point and trailing sign 9-bit operands
12884 *
12885 */
12886
12887 inst mp3d -nt "9-bit f -> 4 bit trailing sign"
12888 -ir ng
12889 -mf1 idb ar reg
12890 -mf2 idb ar reg
12891 -mf3 idb ar reg
12892 -io 1;
12893
12894 desc 1 -sd f -nn 16;
12895 desc 2 -sd t -sf 4 -nn 16;
12896 desc 3 -sd t -sf 4 -nn 16;
12897
12898 data 1 -do -5 "+" "0000" "2271658432" 002;
12899 data 2 -do -6 12"0" "542" "-";
12900 data 3 "123123887014400" "-";
12901
12902 page -all;
12903
12904
12905
12906
12907 /* mp3d26
12908 *
12909 * Multiply 505.05+ by floating +2.2 and get the 4 bit number
12910 * +1111.11000
12911 */
12912
12913 inst mp3d -nt "Result is 4 bit num" -io 3
12914 -mf1 ida
12915 -mf2 reg ar idb
12916 -mf3 ar idb;
12917
12918
12919 desc 1 -nn 6 -sd t -sf -2 -cn 1;
12920
12921 data 1 -do -4
12922 " " "505" "05" 053;
12923
12924
12925 desc 2 -nn 4 -sd f -cn 2;
12926
12927 data 2 -do -3
12928 " " 053 "22" 377; /* Exponent = -1 */
12929
12930
12931 desc 3 -nn 10 -sd l -tn 4 -sf -5;
12932
12933 data 3 301 021 021 020 000;
12934
12935
12936 page -all;
12937
12938 /* mp3d27
12939 * 9 bit scaled * 9 bit scaled to
12940 * 9 bit scaled
12941 * all page faults taken
12942 *
12943 */
12944
12945 inst mp3d -nt "rounded result"
12946 -io 2 -rb
12947 -mf1 ar rl 63 idb reg
12948 -mf2 ar rl 63 idb reg
12949 -mf3 ar rl 63 idb reg;
12950
12951 desc1 -cn 1 -sd l ;
12952 desc2 -cn 1 -sd l ;
12953 desc3 -sd l -cn 1 ;
12954
12955 data 1 -do 4033 " +" 20 "0" 12 "111" "111111";
12956 data 2 -do 4033 " +" 53 "0" 9 "1";
12957 data 3 -do 4033 000 "+" 12 "0" "12345678" 34 "9" "87654321";
12958
12959 page -all;
12960
12961
12962 ^L
12963
12964
12965 /* mp2d1
12966 * The zero indicator is set.
12967 * Two 9-bit operands are used.
12968 * Indirect descriptors are used for all operands.
12969 * Address register modification is used for all operands. */
12970
12971 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12972 -ir zr
12973 -mf1 idb ar reg
12974 -mf2 idb ar reg
12975 -io 1;
12976
12977 desc 1 -sd f -nn 63;
12978 desc 2 -sd f -nn 63;
12979
12980 data 1 "+" 61"0" 000 -do -62;
12981 data 2 "-" 61"9" 034 -do -34;
12982 data 3 "+" 61"0" 177;
12983
12984 page -all;
12985
12986
12987
12988 /* mp2d2
12989 * The zero indicator is set.
12990 * Two 9-bit leading sign operands are used.
12991 * The maximum number of page faults is taken.
12992 * Indirect descriptors are used for all operands.
12993 * Address register modification is used for all operands. */
12994
12995 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12996 -ir zr
12997 -mf1 idb ar
12998 -mf2 idb ar
12999 -io 2;
13000
13001 desc 1 -sd l -sf 10 -nn 7;
13002 desc 2 -sd l -sf 10 -nn 28;
13003
13004 data 1 -do -4 "-" 6"4";
13005 data 2 -do -24 "+" 27"0";
13006 data 3 "+" 27"0";
13007
13008 page -all;
13009
13010
13011
13012 /* mp2d3
13013 * The negative indicator is set.
13014 * Two 4-bit floating point operands are used.
13015 * Indirect descriptors are used for all operands.
13016 * Address register modification is used for all operands. */
13017
13018 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13019 -ir ng
13020 -mf1 idb ar
13021 -mf2 idb ar
13022 -io 1;
13023
13024 desc 1 -tn 4 -sd f -nn 6;
13025 desc 2 -tn 4 -sd f -nn 6;
13026
13027 data 1 260 061 004;
13028 data 2 320 050 004;
13029 data 3 330 150 010;
13030
13031 page -all;
13032
13033
13034
13035 /* mp2d4
13036 * The negative indicator is set.
13037 * Two 4-bit leading sign operands are used.
13038 * Indirect descriptors are used for all operands.
13039 * Address register modification is used for all operands. */
13040
13041 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13042 -ir ng
13043 -mf1 idb ar
13044 -mf2 idb ar
13045 -io 2;
13046
13047 desc 1 -tn 4 -sd l -sf 2 -nn 4;
13048 desc 2 -tn 4 -sd l -sf 2 -nn 6;
13049
13050 data 1 260 061;
13051 data 2 320 000 050;
13052 data 3 330 150 000;
13053
13054 page -all;
13055
13056
13057
13058 /* mp2d5
13059 * The truncation indicator is set.
13060 * Two 4-bit floating point operands are used.
13061 * Indirect descriptors are used for all operands.
13062 * Address register modification is used for all operands. */
13063
13064 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13065 -ir tn
13066 -mf1 idb ar
13067 -mf2 idb ar
13068 -io 1;
13069
13070 desc 1 -tn 4 -sd f -nn 6;
13071 desc 2 -tn 4 -sd f -nn 6;
13072
13073 data 1 266 130 012;
13074 data 2 260 022 013;
13075 data 3 307 211 026;
13076
13077 page -all;
13078
13079
13080
13081 /* mp2d6
13082 * The truncation indicator is set.
13083 * Two 4-bit leading sign operands are used.
13084 * Indirect descriptors are used for all operands.
13085 * Address register modification is used for all operands. */
13086
13087 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13088 -ir tn
13089 -mf1 idb ar
13090 -mf2 idb ar
13091 -io 2;
13092
13093 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
13094 desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1;
13095
13096 data 1 00 271;
13097 data 2 00 261 043 10;
13098 data 3 00 301 021 00;
13099
13100 page -all;
13101
13102
13103
13104 /* mp2d7
13105 * Rounding is tested.
13106 * Two 4-bit trailing sign operands are used.
13107 * The maximum number of page faults is taken.
13108 * Indirect descriptors are used for all operands.
13109 * Address register modification is used for all operands. */
13110
13111 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13112 -rb
13113 -mf1 idb ar
13114 -mf2 idb ar
13115 -io 1;
13116
13117 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
13118 desc 2 -tn 4 -sd t -sf 4 -nn 5;
13119
13120 data 1 -do -1 00 233;
13121 data 2 -do -2 022 064 30;
13122 data 3 021 021 30;
13123
13124 page -all;
13125
13126
13127
13128 /* mp2d8
13129 * The overflow indicator is set.
13130 * Two 9-bit unsigned operands are used.
13131 * The maximum number of page faults is taken.
13132 * Indirect descriptors are used for all operands.
13133 * Address register modification is used for all operands. */
13134
13135 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13136 -ir ov
13137 -mf1 idb ar reg
13138 -mf2 idb ar reg
13139 -io 2;
13140
13141 desc 1 -sd n -nn 3;
13142 desc 2 -sd n -nn 5;
13143
13144 data 1 -do -1 "999";
13145 data 2 -do -4 "00999";
13146 data 3 "98001";
13147
13148 page -all;
13149
13150
13151
13152 /* mp2d9
13153 * The exponent overflow indicator is set.
13154 * Two 9-bit floating point operands
13155 * The maximum number of page faults is taken.
13156 * Indirect descriptors are used for all operands.
13157 * Address register modification is used for all operands. */
13158
13159 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13160 -ir eo tn
13161 -mf1 idb ar reg
13162 -mf2 idb ar reg
13163 -io 1;
13164
13165 desc 1 -sd f -nn 6;
13166 desc 2 -sd f -nn 6;
13167
13168 data 1 -do -4 "+" "0900" 100;
13169 data 2 -do -1 "+" "0756" 076;
13170 data 3 "+" "6804" 200;
13171
13172 page -all;
13173
13174
13175
13176 /* mp2d10
13177 * The exponent underflow indicator is set.
13178 * Two 4-bit trailing sign operands are used.
13179 * The maximum number of page faults is taken.
13180 * Indirect descriptors are used for all operands.
13181 * Address register modification is used for all operands. */
13182
13183 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13184 -ir eu
13185 -mf1 idb ar
13186 -mf2 idb ar
13187 -io 2;
13188
13189 desc 1 -tn 4 -sd f -nn 6 -cn 1;
13190 desc 2 -tn 4 -sd f -nn 6 -cn 1;
13191
13192 data 1 -do -1 00 260 042 200;
13193 data 2 -do -2 00 260 063 300;
13194 data 3 00 307 046 100;
13195
13196 page -all;
13197
13198
13199
13200 /* mp2d11
13201 * Leading and trailing signs are mixed.
13202 * Two 4-bit operands are used.
13203 * Indirect descriptors are used for all operands.
13204 * Address register modification is used for all operands. */
13205
13206 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13207 -mf1 idb ar
13208 -mf2 idb ar
13209 -io 1;
13210
13211 desc 1 -tn 4 -sd l -nn 63;
13212 desc 2 -tn 4 -sd t -sf 3 -nn 63;
13213
13214 data 1 -do -62 260 30000 22;
13215 data 2 -do -1 010 30210 26;
13216 data 3 171 29231 222 30;
13217
13218 page -all;
13219
13220
13221
13222 /* mp2d12
13223 * A floating point operand and a leading sign operand are used.
13224 * Two 9-bit operands are used.
13225 * The maximum number of page faults is taken.
13226 * Indirect descriptors are used for all operands.
13227 * Address register modification is used for all operands. */
13228
13229 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13230 -mf1 idb ar reg
13231 -mf2 idb ar reg
13232 -io 2;
13233
13234 desc 1 -sd f -nn 5;
13235 desc 2 -sd l -sf -3 -nn 63;
13236
13237 data 1 -do -4 "+" "009" 001;
13238 data 2 -do -17 "+" "00" 60"8";
13239 data 3 "+" "7" 59"9" "20";
13240
13241 page -all;
13242
13243
13244
13245 /* mp2d13
13246 * A leading sign 9-bit operand and an unsigned 4-bit operand are used.
13247 * The maximum number of page faults is taken.
13248 * Indirect descriptors are used for all operands.
13249 * Address register modification is used for all operands. */
13250
13251
13252 inst mp2d -nt "9-bit x 4-bit -> 4-bit"
13253 -mf1 idb ar reg
13254 -mf2 idb ar
13255 -io 1;
13256
13257 desc 1 -sd l -sf 2 -nn 11;
13258 desc 2 -sd n -sf 2 -nn 15 -tn 4;
13259
13260 data 1 -do -7 "+" "2271658432";
13261 data 2 -do -1 6000 124 04;
13262 data 3 022 061 043 210 160 024 100 000;
13263
13264 page -all;
13265
13266
13267
13268 /* mp2d14
13269 * Unsigned 4-bit and 9-bit operands are used.
13270 * The maximum number of page faults is taken.
13271 * Indirect descriptors are used for all operands.
13272 * Address register modification is used for all operands. */
13273
13274 inst mp2d -nt "4-bit x 9-bit -> 9-bit"
13275 -mf1 idb ar
13276 -mf2 idb ar reg
13277 -io 2;
13278
13279 desc 1 -sd n -tn 4 -sf 2 -nn 10;
13280 desc 2 -sd n -sf 2 -nn 15;
13281
13282 data 1 -do -1 042 161 145 204 142;
13283 data 2 -do -13 12"0" "542";
13284 data 3 "123123888640400";
13285
13286 page -all;
13287
13288
13289 /* mp2d15
13290 * A floating point operand and a trailing sign operand are used.
13291 * Two 9-bit operands are used.
13292 * The maximum number of page faults is taken.
13293 * Indirect descriptors are used for all operands.
13294 * Address register modification is used for all operands. */
13295
13296 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13297 -ir ng
13298 -mf1 idb ar reg
13299 -mf2 idb ar reg
13300 -io 1;
13301
13302 desc 1 -sd f -nn 16;
13303 desc 2 -sd t -sf 4 -nn 16;
13304
13305 data 1 -do -5 "+" "0000" "2271658432" 002;
13306 data 2 -do -6 12"0" "542" "-";
13307 data 3 "123123887014400" "-";
13308
13309 page -all;
13310
13311
13312 ^L
13313
13314 /* dv3d1
13315 * The zero indicator is set.
13316 * Three 9-bit floating point operands are used.
13317 * The maximum number of page faults is taken.
13318 * Indirect descriptors are used for all operands.
13319 * Address register modification is used for all operands. */
13320
13321 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13322 -ir zr
13323 -mf1 idb ar reg
13324 -mf2 idb ar reg
13325 -mf3 idb ar reg
13326 -io 1;
13327
13328 desc 1 -sd f -nn 6;
13329 desc 2 -sd f -nn 55;
13330 desc 3 -sd f -nn 31;
13331
13332 data 1 -do -2 "+" "4275" 377;
13333 data 2 -do -50 "+" 53"0" 374;
13334 data 3 -do -25 "+" 29"0" 177;
13335
13336 page -all;
13337
13338
13339
13340 /* dv3d2
13341 * The negative indicator is set.
13342 * Three 4-bit floating point operands are used.
13343 * The maximum number of page faults is taken.
13344 * Indirect descriptors are used for all operands.
13345 * Address register modification is used for all operands. */
13346
13347 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13348 -ir ng -mf1 idb ar
13349 -mf2 idb ar
13350 -mf3 idb ar
13351 -io 2;
13352
13353 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13354 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13355 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13356
13357 data 1 -do -1 00 260 000 002 004;
13358 data 2 -do -4 00 320 225 120 004;
13359 data 3 -do -2 00 324 167 120 377;
13360
13361 page -all;
13362
13363
13364 /* dv3d3
13365 * The negative indicator is set.
13366 * Three 4-bit trailing sign operands are used.
13367 * Indirect descriptors are used for all operands.
13368 * Address register modification is used for all operands. */
13369
13370 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13371 -ir ng
13372 -mf1 idb ar
13373 -mf2 idb ar
13374 -mf3 idb ar
13375 -io 3;
13376
13377 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13378 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13379 desc 3 -tn 4 -sd t -sf 3 -nn3;
13380
13381 data 1 000 055;
13382 data 2 010 26;
13383 data 3 100 32;
13384
13385 page -all;
13386
13387
13388 /* dv3d4
13389 * The overflow indicator is set.
13390 * Three 4-bit floating point operands are used.
13391 * The maximum number of page faults is taken.
13392 * Indirect descriptors are used for all operands.
13393 * Address register modification is used for all operands. */
13394
13395 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13396 -ir ov
13397 -mf1 idb ar
13398 -mf2 idb ar
13399 -mf3 idb ar
13400 -io 1;
13401
13402 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13403 desc 2 -tn 4 -sd n -sf 1 -nn63;
13404 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13405
13406 data 1 -do -12 31000 10;
13407 data 2 -do -15 31167 16;
13408 data 3 -do -18 25104;
13409
13410 page -all;
13411
13412
13413
13414 /* dv3d5
13415 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13416 * All operands are unsigned.
13417 * The maximum number of page faults is taken.
13418 * Indirect descriptors are used for all operands.
13419 * Address register modification is used for all operands. */
13420
13421 inst dv3d -nt "9 bit / 9 bit -> 4 bit"
13422 -mf1 idb ar reg
13423 -mf2 idb ar reg
13424 -mf3 idb ar
13425 -io 1;
13426
13427 desc 1 -sd n -nn 8;
13428 desc 2 -sd n -nn 10;
13429 desc 3 -sd n -tn 4 -nn 8;
13430
13431 data 1 -do -7 "30144196";
13432 data 2 -do -3 "1567498217";
13433 data 3 -do -2 3000 122;
13434
13435 page -all;
13436
13437
13438
13439 /* dv3d6
13440 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13441 * All operands are floating point.
13442 * The maximum number of page faults is taken.
13443 * Indirect descriptors are used for all operands.
13444 * Address register modification is used for all operands. */
13445
13446 inst dv3d -nt "4 bit / 4 bit -> 9 bit"
13447 -mf1 idb ar
13448 -mf2 idb ar
13449 -mf3 idb ar reg
13450 -io 2;
13451
13452 desc 1 -tn 4 -sd f -nn 11;
13453 desc 2 -tn 4 -sd f -nn 13;
13454 desc 3 -sd f -nn 10;
13455
13456 data 1 -do -4 323 001 104 031 140 00;
13457 data 2 -do -3 321 126 164 230 041 160 00;
13458 data 3 -do -1 "+" "052" 5"0" 373;
13459
13460 page -all;
13461
13462
13463
13464 /* dv3d7
13465 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13466 * All operands are trailing sign.
13467 * The maximum number of page faults is taken.
13468 * Indirect descriptors are used for all operands.
13469 * Address register modification is used for all operands. */
13470
13471 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13472 -mf1 idb ar reg
13473 -mf2 idb ar
13474 -mf3 idb ar
13475 -io 3;
13476
13477 desc 1 -sd t -nn 10;
13478 desc 2 -tn 4 -sd t -nn 11;
13479 desc 3 -tn 4 -sd t -nn 10;
13480
13481 data 1 -do -8 "030144196" "-";
13482 data 2 -do -5 025 147 111 202 027 320;
13483 data 3 -do -3 3000 005 054;
13484
13485 page -all;
13486
13487
13488
13489 /* dv3d8
13490 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13491 * All operands are leading sign.
13492 * Indirect descriptors are used for all operands.
13493 * Address register modification is used for all operands. */
13494
13495 inst dv3d -nt "9 bit / 4 bit -> 9 bit"
13496 -mf1 idb ar reg
13497 -mf2 idb ar
13498 -mf3 idb ar reg
13499 -io 2;
13500
13501 desc 1 -sd l -sf 6 -nn 20;
13502 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13503 desc 3 -sd l -nn 20;
13504
13505 data 1 "+" 11"0" "30144196";
13506 data 2 260 4 000 025 147 111 202 027;
13507 data 3 "+" 17"0" "52";
13508
13509 page -all;
13510
13511
13512
13513 /* dv3d9
13514 * Leading sign, trailing sign, and floating point operands are used.
13515 * Three 9-bit operands are used.
13516 * Indirect descriptors are used for all operands.
13517 * Address register modification is used for all operands. */
13518
13519 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13520 -mf1 idb ar reg
13521 -mf2 idb ar reg
13522 -mf3 idb ar reg
13523 -io 3;
13524
13525 desc 1 -sd l -sf 1 -nn 8;
13526 desc 2 -sd t -sf 2 -nn 8;
13527 desc 3 -sd f -nn 8;
13528
13529 data 1 "+" 5"0" "58";
13530 data 2 "000" "1234" "+";
13531 data 3 "+" "021275" 376;
13532
13533 page -all;
13534
13535
13536
13537 /* dv3d10
13538 * Floating point, unsigned, and leading sign operands are used.
13539 * Three 4-bit operands are used.
13540 * Indirect descriptors are used for all operands.
13541 * Address register modification is used for all operands. */
13542
13543 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13544 -mf1 idb ar
13545 -mf2 idb ar
13546 -mf3 idb ar
13547 -io 1;
13548
13549 desc 1 -tn 4 -sd f -nn 8;
13550 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13551 desc 3 -tn 4 -sd l -nn 8;
13552
13553 data 1 260 002 022 000;
13554 data 2 000 000 022 064;
13555 data 3 300 000 000 130;
13556
13557 page -all;
13558
13559
13560
13561
13562 /* dv3d11
13563 * Use RL mod and cn field with indirect descriptors
13564 * Use three 9-bit trailing sign operands.
13565 *
13566 */
13567
13568
13569 inst dv3d -nt "two character offset"
13570 -io 2 -ir ng
13571 -mf1 ar rl 10 idb reg
13572 -mf2 ar rl 10 idb reg
13573 -mf3 ar rl 10 idb reg;
13574
13575 desc1 -cn 1 -sd t ;
13576 desc2 -cn 1 -sd t ;
13577 desc 3 -cn 1 -sd t;
13578
13579 data 1 -do -9 " " 9 "1" "-";
13580 data 2 -do -9 "*" 9 "2" "+";
13581 data 3 000 8"0" "2" "-";
13582
13583 page -all;
13584
13585 /* dv3d12
13586 * Use RL mod and cn field with indirect descriptors
13587 * Use three 9-bit trailing sign operands.
13588 *
13589 */
13590
13591
13592 inst dv3d -nt "one character offset"
13593 -io 2 -ir ng
13594 -mf1 ar rl 10 idb reg
13595 -mf2 ar rl 10 idb reg
13596 -mf3 ar rl 10 idb reg;
13597
13598 desc1 -cn 1 -sd t ;
13599 desc2 -cn 1 -sd t ;
13600 desc3 -cn 1 -sd t;
13601
13602 data 1 -do -10 " " 9 "1" "-";
13603 data 2 -do -20 "*" 9 "2" "+";
13604 data 3 000 8 "0" "2" "-";
13605
13606 page -all;
13607
13608 /* dv3d13
13609 * Use RL mod and cn field
13610 * Use three 9-bit trailing sign operands.
13611 * no indirect descriptors
13612 *
13613 */
13614
13615 inst dv3d -nt "no indirect descriptors"
13616 -io 2 -ir ng
13617 -mf1 ar rl 10 reg
13618 -mf2 ar rl 10 reg
13619 -mf3 ar rl 10 reg;
13620
13621 desc1 -cn 1 -sd t ;
13622 desc2 -cn 1 -sd t ;
13623 desc3 -cn 1 -sd t;
13624
13625 data 1 -do -9 " " 9 "1" "-";
13626 data 2 -do -9 "*" 9 "2" "+";
13627 data 3 000 8 "0" "2" "-";
13628
13629 page -all;
13630
13631 /* dv3d14
13632 * Use no modification
13633 * Use three 9 bit trailing sign operands.
13634 *
13635 */
13636
13637 inst dv3d -nt "no mf modification"
13638 -io 2 -ir ng;
13639
13640 desc1 -cn 1 -sd t -nn 12;
13641 desc2 -cn 1 -sd t -nn 12;
13642 desc3 -cn 1 -sd t -nn 12;
13643
13644 data 1 -do -12 " " 11 "1" "-";
13645 data 2 -do -12 "*" 11 "2" "+";
13646 data 3 000 10 "0" "2" "-";
13647
13648 page -all;
13649
13650 /* dv3d15
13651 * Use ar and rl
13652 * Use three 9-bit trailing sign operands.
13653 *
13654 */
13655
13656
13657 inst dv3d -nt "ar and rl modification"
13658 -io 2 -ir ng
13659 -mf1 ar rl 10
13660 -mf2 ar rl 10
13661 -mf3 ar rl 10 ;
13662
13663 desc1 -cn 1 -sd t ;
13664 desc2 -cn 1 -sd t ;
13665 desc3 -cn 1 -sd t;
13666
13667 data 1 -do -9 " " 9 "1" "-";
13668 data 2 -do -9 "*" 9 "2" "+";
13669 data 3 000 8"0" "2" "-";
13670
13671 page -all;
13672
13673 /* dv3d16
13674 * Use ar and rl modification on desc1
13675 * Use ar rl idb reg on desc2
13676 * Use three 9-bit trailing sign operands.
13677 *
13678 */
13679
13680
13681 inst dv3d -nt "two character offset"
13682 -io 2 -ir ng
13683 -mf1 ar rl 10
13684 -mf2 ar rl 10 idb reg
13685 -mf3 ar rl 10 idb reg;
13686
13687 desc1 -cn 1 -sd t ;
13688 desc2 -cn 1 -sd t ;
13689 desc3 -cn 1 -sd t;
13690
13691 data 1 -do -9 " " 9 "1" "-";
13692 data 2 -do -9 "*" 9 "2" "+";
13693 data 3 000 8 "0" "2" "-";
13694
13695 page -all;
13696
13697
13698
13699 /* dv3d17
13700 * maximum length divide leading sign
13701 * one character over next page
13702 * all modification taken
13703 */
13704 inst dv3d -nt "maximum length "
13705 -io 2
13706 -mf1 ar rl 63 idb reg
13707 -mf2 ar rl 63 idb reg
13708 -mf3 ar rl 63 idb reg;
13709
13710 desc1 -cn 1 -sd l ;
13711 desc2 -cn 1 -sd l ;
13712 desc3 -cn 1 -sd l;
13713
13714 data 1 -do 4033 " " "+33" 15 "8642";
13715 data 2 -do 4033 "*" "+33" 15 "8642";
13716 data 3 000 "+" 61 "0" "1";
13717
13718 page -all;
13719
13720
13721
13722
13723 /* dv3d18
13724 * This is a simple test
13725 * Use three 9-bit trailing sign operands.
13726 *
13727 */
13728
13729 inst dv3d -nt "simple test";
13730
13731 desc1 -sd t -nn 63;
13732 desc2 -sd t -sf 10 -nn 63;
13733 desc3 -sd t -sf 10 -nn 63;
13734
13735 data 1 "11" 12 "1111" "11" 10 "0" "+";
13736 data 2 "22" 12 "2222" "22" 10 "0" "+";
13737 data 3 61 "0" "2" "+";
13738
13739 page -all;
13740
13741
13742
13743 /* dv3d19
13744 * maximum length divide resulting
13745 * in an overflow
13746 * all modification taken
13747 * Use three 9-bit leading sign operands.
13748 */
13749 inst dv3d -nt "truncation fault"
13750 -io 1
13751 -mf1 ar rl 63 idb reg
13752 -mf2 ar rl 63 idb reg
13753 -mf3 ar rl 63 idb reg;
13754
13755 desc1 -sd l -cn 1;
13756 desc2 -sd l -cn 1;
13757 desc3 -sd l -cn 1;
13758
13759 data 1 -do 4033 " " "+33" 15 "8642";
13760 data 2 -do 4033 "*" "+71" 15 "2357";
13761 data 3 000 "+" 61 "0" "2";
13762
13763 page -all;
13764
13765
13766
13767 /* dv3d20
13768 * maximum length over two pages
13769 * no faults 9 bit / 4 bit -> 4 bit
13770 *
13771 */
13772
13773 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13774 -io 1
13775 -mf1 ar rl 63
13776 -mf2 ar rl 63
13777 -mf3 ar rl 63 ;
13778
13779 desc1 -sd t ;
13780 desc2 -sd t -tn 4;
13781 desc3 -sd t -tn 4;
13782
13783 data 1 -do 4033 "33" 15 "3333" "+";
13784 data 2 -do 4064 104104 7 104104104104 10426;
13785 data 3 28 000 000000001300;
13786
13787 page -all;
13788
13789
13790
13791 /* dv3d21
13792 * 9 bit / 4 bit -> 4 bit ; all page faults possible
13793 * no reg modification on desc2
13794 *
13795 */
13796
13797 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13798 -io 2
13799 -mf1 ar rl 63 idb reg
13800 -mf2 ar rl 63 idb
13801 -mf3 ar rl 63 idb ;
13802
13803 desc1 -cn 1 -sd l;
13804 desc2 -cn 1 -sd t -tn 4;
13805 desc3 -cn 1 -sd t -tn 4;
13806
13807 data 1 -do 4033 " " "+" 15 "0000" "22";
13808 data 2 -do 4068 "*" 28 000 104104 1043;
13809 data 3 000 28 000 002 002 002 300;
13810
13811 page -all;
13812
13813
13814
13815 /* dv3d22
13816 * Use three 4-bit trailing sign operands.
13817 * maximum length
13818 * all page faults taken
13819 * no reg modification
13820 */
13821
13822 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13823 -io 1
13824 -mf1 ar rl 63 idb
13825 -mf2 ar rl 63 idb
13826 -mf3 ar rl 63 idb;
13827
13828 desc1 -cn 1 -sd t -tn 4;
13829 desc2 -cn 1 -sd t -tn 4;
13830 desc3 -cn 1 -sd t -tn 4;
13831
13832 data 1 -do 4065 " " 28 000 000 000 0013;
13833 data 2 -do 4065 "*" 021021 7 021021021021 0213;
13834 data 3 000 021021 7 021021021021 0213;
13835
13836 page -all;
13837
13838
13839
13840 /* dv3d23
13841 * floating point divide
13842 * Use three 9-bit floatinf point operands.
13843 * all page faults taken
13844 *
13845 */
13846
13847 inst dv3d -nt "9bit float divide"
13848 -io 1
13849 -mf1 ar rl 63 reg idb
13850 -mf2 ar rl 63 reg idb
13851 -mf3 ar rl 63 reg idb;
13852
13853 desc1 -sd f;
13854 desc2 -sd f;
13855 desc3 -sd f;
13856
13857 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
13858 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
13859 data 3 "+" "1" 60 "0" 305;
13860
13861 page -all;
13862
13863
13864
13865
13866 /* dv3d24
13867 * Use three 4-bit floating point operands.
13868 *
13869 */
13870
13871 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13872 -io 1
13873 -mf1 ar rl 10 ida
13874 -mf2 ar rl 10 ida
13875 -mf3 ar rl 10 ida;
13876
13877 desc1 -sd f -tn 4;
13878 desc2 -sd f -tn 4;
13879 desc3 -sd f -tn 4;
13880
13881 data 1 -do -1 300 000 000 001 000;
13882 data 2 -do -1 300 000 021 021 000;
13883 data 3 301 021 020 000 375;
13884
13885 page -all;
13886
13887
13888
13889 /* dv3d25
13890 * 4 bit / 9 bit -> 9 bit
13891 *
13892 */
13893
13894 inst dv3d -nt "4 bit / 9 bit -> 9 bit"
13895 -io 1
13896 -mf1 ar rl 5 idb
13897 -mf2 ar rl 5 idb reg
13898 -mf3 ar rl 5 idb reg;
13899
13900 desc 1 -tn 4 -sd l;
13901 desc 2 -sd n;
13902 desc 3 -sd n;
13903
13904 data 1 30102100;
13905 data 2 -do 4 "02222";
13906 data 3 "00002";
13907
13908 page -all;
13909
13910
13911
13912 /* dv3d26
13913 * The zero indicator is set.
13914 * Three 9-bit floating point operands are used.
13915 * No indirect descriptors are used.
13916 * Address register modification is used for all operands. */
13917
13918 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13919 -ir zr
13920 -mf1 ar reg
13921 -mf2 ar reg
13922 -mf3 ar reg
13923 -io 1;
13924
13925 desc 1 -sd f -nn 6;
13926 desc 2 -sd f -nn 55;
13927 desc 3 -sd f -nn 31;
13928
13929 data 1 -do -2 "+" "4275" 377;
13930 data 2 -do -50 "+" 53"0" 374;
13931 data 3 -do -25 "+" 29"0" 177;
13932
13933 page -all;
13934
13935
13936
13937 /* dv3d27
13938 * The negative indicator is set.
13939 * Three 4-bit floating point operands are used.
13940 * No indirect descriptors are used.
13941 * Address register modification is used for all operands. */
13942
13943 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13944 -ir ng -mf1 ar
13945 -mf2 ar
13946 -mf3 ar
13947 -io 2;
13948
13949 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13950 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13951 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13952
13953 data 1 -do -1 00 260 000 002 004;
13954 data 2 -do -4 00 320 225 120 004;
13955 data 3 -do -2 00 324 167 120 377;
13956
13957 page -all;
13958
13959
13960 /* dv3d28
13961 * The negative indicator is set.
13962 * Three 4-bit trailing sign operands are used.
13963 * No indirect descriptors are used.
13964 * Address register modification is used for all operands. */
13965
13966 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13967 -ir ng
13968 -mf1 ar
13969 -mf2 ar
13970 -mf3 ar
13971 -io 3;
13972
13973 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13974 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13975 desc 3 -tn 4 -sd t -sf 3 -nn3;
13976
13977 data 1 000 055;
13978 data 2 010 26;
13979 data 3 100 32;
13980
13981 page -all;
13982
13983
13984 /* dv3d29
13985 * The overflow indicator is set.
13986 * Three 4-bit floating point operands are used.
13987 * No indirect descriptors are used.
13988 * Address register modification is used for all operands. */
13989
13990 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13991 -ir ov
13992 -mf1 ar
13993 -mf2 ar
13994 -mf3 ar
13995 -io 1;
13996
13997 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13998 desc 2 -tn 4 -sd n -sf 1 -nn63;
13999 desc 3 -tn 4 -sd n -sf 10 -nn 50;
14000
14001 data 1 -do -12 31000 10;
14002 data 2 -do -15 31167 16;
14003 data 3 -do -18 25104;
14004
14005 page -all;
14006
14007
14008
14009 /* dv3d30
14010 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
14011 * All operands are unsigned.
14012 * No indirect descriptors are used.
14013 * Address register modification is used for all operands. */
14014
14015 inst dv3d -nt "9 bit / 9 bit -> 4 bit"
14016 -mf1 ar reg
14017 -mf2 ar reg
14018 -mf3 ar
14019 -io 1;
14020
14021 desc 1 -sd n -nn 8;
14022 desc 2 -sd n -nn 10;
14023 desc 3 -sd n -tn 4 -nn 8;
14024
14025 data 1 -do -7 "30144196";
14026 data 2 -do -3 "1567498217";
14027 data 3 -do -2 3000 122;
14028
14029 page -all;
14030
14031
14032
14033 /* dv3d31
14034 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
14035 * All operands are floating point.
14036 * No indirect descriptors are used.
14037 * Address register modification is used for all operands. */
14038
14039 inst dv3d -nt "4 bit / 4 bit -> 9 bit"
14040 -mf1 ar
14041 -mf2 ar
14042 -mf3 ar reg
14043 -io 2;
14044
14045 desc 1 -tn 4 -sd f -nn 11;
14046 desc 2 -tn 4 -sd f -nn 13;
14047 desc 3 -sd f -nn 10;
14048
14049 data 1 -do -4 323 001 104 031 140 00;
14050 data 2 -do -3 321 126 164 230 041 160 00;
14051 data 3 -do -1 "+" "052" 5"0" 373;
14052
14053 page -all;
14054
14055
14056
14057 /* dv3d32
14058 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
14059 * All operands are trailing sign.
14060 * No indirect descriptors are used.
14061 * Address register modification is used for all operands. */
14062
14063 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
14064 -mf1 ar reg
14065 -mf2 ar
14066 -mf3 ar
14067 -io 3;
14068
14069 desc 1 -sd t -nn 10;
14070 desc 2 -tn 4 -sd t -nn 11;
14071 desc 3 -tn 4 -sd t -nn 10;
14072
14073 data 1 -do -8 "030144196" "-";
14074 data 2 -do -5 025 147 111 202 027 320;
14075 data 3 -do -3 3000 005 054;
14076
14077 page -all;
14078
14079
14080
14081 /* dv3d33
14082 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
14083 * All operands are leading sign.
14084 * No indirect descriptors are used.
14085 * Address register modification is used for all operands. */
14086
14087 inst dv3d -nt "9 bit / 4 bit -> 9 bit"
14088 -mf1 ar reg
14089 -mf2 ar
14090 -mf3 ar reg
14091 -io 2;
14092
14093 desc 1 -sd l -sf 6 -nn 20;
14094 desc 2 -sd l -sf 6 -tn 4 -nn 20;
14095 desc 3 -sd l -nn 20;
14096
14097 data 1 "+" 11"0" "30144196";
14098 data 2 260 4 000 025 147 111 202 027;
14099 data 3 "+" 17"0" "52";
14100
14101 page -all;
14102
14103
14104
14105 /* dv3d34
14106 * Leading sign trailing sign and floating point operands are used.
14107 * Three 9-bit operands are used.
14108 * No indirect descriptors are used.
14109 * Address register modification is used for all operands. */
14110
14111 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
14112 -mf1 ar reg
14113 -mf2 ar reg
14114 -mf3 ar reg
14115 -io 3;
14116
14117 desc 1 -sd l -sf 1 -nn 8;
14118 desc 2 -sd t -sf 2 -nn 8;
14119 desc 3 -sd f -nn 8;
14120
14121 data 1 "+" 5"0" "58";
14122 data 2 "000" "1234" "+";
14123 data 3 "+" "021275" 376;
14124
14125 page -all;
14126
14127
14128
14129 /* dv3d35
14130 * Floating point unsigned and leading sign operands are used.
14131 * Three 4-bit operands are used.
14132 * Indirect descriptors are used for all operands.
14133 * Address register modification is used for all operands. */
14134
14135 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
14136 -mf1 ar
14137 -mf2 ar
14138 -mf3 ar
14139 -io 1;
14140
14141 desc 1 -tn 4 -sd f -nn 8;
14142 desc 2 -tn 4 -sd n -sf 1 -nn 8;
14143 desc 3 -tn 4 -sd l -nn 8;
14144
14145 data 1 260 002 022 000;
14146 data 2 000 000 022 064;
14147 data 3 300 000 000 130;
14148
14149 page -all;
14150
14151 ^L
14152
14153 /* dv2d1
14154 * Use RL mod and cn field with indirect descriptors
14155 * divide 9 bit scaled to 9 bit scaled
14156 *
14157 */
14158
14159
14160 inst dv2d -nt "two character offset"
14161 -io 2 -ir ng
14162 -mf1 ar rl 10 idb reg
14163 -mf2 ar rl 10 idb reg;
14164
14165 desc1 -cn 1 -sd t ;
14166 desc2 -cn 1 -sd t ;
14167
14168 data 1 -do -9 " " 9 "1" "-";
14169 data 2 -do -9 "*" 9 "2" "+";
14170 data 3 "*" 8 "0" "2" "-";
14171
14172 page -all;
14173
14174
14175 /* dv2d2
14176 * Use RL mod and cn field with indirect descriptors
14177 * 9 bit scaled to 9 bit scaled
14178 *
14179 */
14180
14181
14182 inst dv2d -nt "one character offset"
14183 -io 2 -ir ng
14184 -mf1 ar rl 10 idb reg
14185 -mf2 ar rl 10 idb reg;
14186
14187 desc1 -cn 1 -sd t ;
14188 desc2 -cn 1 -sd t ;
14189
14190 data 1 -do -10 " " 9 "1" "-";
14191 data 2 -do -20 "*" 9 "2" "+";
14192 data 3 "*" 8 "0" "2" "-";
14193
14194 page -all;
14195
14196
14197 /* dv2d3
14198 * Use RL mod and cn field
14199 * 9 bit scaled to 9 bit scaled
14200 * no indirect descriptors
14201 *
14202 */
14203
14204 inst dv2d -nt "no indirect descriptors"
14205 -io 2 -ir ng
14206 -mf1 ar rl 10 reg
14207 -mf2 ar rl 10 reg;
14208
14209 desc1 -cn 1 -sd t ;
14210 desc2 -cn 1 -sd t ;
14211
14212 data 1 -do -9 " " 9 "1" "-";
14213 data 2 -do -9 "*" 9 "2" "+";
14214 data 3 "*" 8 "0" "2" "-";
14215
14216 page -all;
14217
14218
14219 /* dv2d4
14220 * Use no modification
14221 * 9bit scaled divideed to 9 bit scaled
14222 *
14223 */
14224
14225 inst dv2d -nt "no mf modification"
14226 -io 2 -ir ng;
14227
14228 desc1 -cn 1 -sd t -nn 12;
14229 desc2 -cn 1 -sd t -nn 12;
14230
14231 data 1 -do -12 " " 11 "1" "-";
14232 data 2 -do -12 "*" 11 "2" "+";
14233 data 3 "*" 10 "0" "2" "-";
14234
14235 page -all;
14236
14237
14238 /* dv2d5
14239 * Use ar and rl
14240 * 9 bit scaled to 9 bit scaled
14241 *
14242 */
14243
14244
14245 inst dv2d -nt "ar and rl modification"
14246 -io 2 -ir ng
14247 -mf1 ar rl 10
14248 -mf2 ar rl 10 ;
14249
14250 desc1 -cn 1 -sd t ;
14251 desc2 -cn 1 -sd t ;
14252
14253 data 1 -do -9 " " 9 "1" "-";
14254 data 2 -do -9 "*" 9 "2" "+";
14255 data 3 "*" 8"0" "2" "-";
14256
14257 page -all;
14258
14259
14260 /* dv2d6
14261 * Use aar and rl modification desc1
14262 * Use ar rl idb reg on desc2
14263 * 9 bit scaled to 9 bit scaled
14264 *
14265 */
14266
14267
14268 inst dv2d -nt "two character offset"
14269 -io 2 -ir ng
14270 -mf1 ar rl 10
14271 -mf2 ar rl 10 idb reg;
14272
14273 desc1 -cn 1 -sd t ;
14274 desc2 -cn 1 -sd t ;
14275
14276 data 1 -do -9 " " 9 "1" "-";
14277 data 2 -do -9 "*" 9 "2" "+";
14278 data 3 "*" 8 "0" "2" "-";
14279
14280 page -all;
14281
14282
14283
14284
14285 /* dv2d7
14286 * maximum length divide leading sign
14287 * one character over next page
14288 * all modification taken
14289 */
14290 inst dv2d -nt "maximum length "
14291 -io 2
14292 -mf1 ar rl 63 idb reg
14293 -mf2 ar rl 63 idb reg;
14294
14295 desc1 -cn 1 -sd l ;
14296 desc2 -cn 1 -sd l ;
14297
14298 data 1 -do 4033 " " "+33" 15 "8642";
14299 data 2 -do 4033 "*" "+33" 15 "8642";
14300 data 3 "*" "+" 61 "0" "1";
14301
14302 page -all;
14303
14304
14305
14306
14307
14308 /* dv2d8
14309 * This is a simple test
14310 * 9 bit divide to 9 bit all scaled trailing sign
14311 *
14312 */
14313
14314 inst dv2d -nt "simple test";
14315
14316 desc1 -sd t -nn 63;
14317 desc2 -sd t -sf 10 -nn 63;
14318
14319 data 1 "11" 12 "1111" "11" 10 "0" "+";
14320 data 2 "22" 12 "2222" "22" 10 "0" "+";
14321 data 3 61 "0" "2" "+";
14322
14323 page -all;
14324
14325
14326
14327
14328 /* dv2d9
14329 * maximum length divide resulting
14330 * in an overflow
14331 * all modification taken
14332 * 9 bit scaled to 9 bit scaled
14333 */
14334
14335 inst dv2d -nt "truncation fault"
14336 -io 1
14337 -mf1 ar rl 63 idb reg
14338 -mf2 ar rl 63 idb reg;
14339
14340 desc1 -sd l -cn 1;
14341 desc2 -sd l -cn 1;
14342
14343 data 1 -do 4033 " " "+33" 15 "8642";
14344 data 2 -do 4033 "*" "+71" 15 "2357";
14345 data 3 "*" "+" 61 "0" "2";
14346
14347 page -all;
14348
14349
14350
14351
14352 /* dv2d10
14353 * maximum length over two pages
14354 * no faults 9 bit to 4 bit
14355 *
14356 */
14357
14358 inst dv2d -nt "9 bit -> 4 bit"
14359 -io 1
14360 -mf1 ar rl 63
14361 -mf2 ar rl 63 ;
14362
14363 desc1 -sd t ;
14364 desc2 -sd t -tn 4;
14365
14366 data 1 -do 4033 "33" 15 "3333" "+";
14367 data 2 -do 4064 104104 7 104104104104 10426;
14368 data 3 28 000 000000001300;
14369
14370 page -all;
14371
14372
14373
14374
14375 /* dv2d11
14376 * 9 bit to 4 bit all page faults possible
14377 * no reg modification on desc2
14378 *
14379 */
14380
14381 inst dv2d -nt "9bit ->4bit"
14382 -io 2
14383 -mf1 ar rl 63 idb reg
14384 -mf2 ar rl 63 idb ;
14385
14386 desc1 -cn 1 -sd l;
14387 desc2 -cn 1 -sd t -tn 4;
14388
14389 data 1 -do 4033 " " "+" 15 "0000" "22";
14390 data 2 -do 4068 "*" 28 000 104104 1043;
14391 data 3 "*" 28 000 002 002 002 300;
14392
14393 page -all;
14394
14395
14396
14397
14398 /* dv2d12
14399 * 4 bit divideed to 4 bit
14400 * maximum length
14401 * all page faults taken
14402 * no reg modification
14403 */
14404
14405 inst dv2d -nt "4 bit + 4bit"
14406 -io 1
14407 -mf1 ar rl 63 idb
14408 -mf2 ar rl 63 idb;
14409
14410 desc1 -cn 1 -sd t -tn 4;
14411 desc2 -cn 1 -sd t -tn 4;
14412
14413 data 1 -do 4065 " " 28 000 000 000 0013;
14414 data 2 -do 4065 "*" 021021 7 021021021021 0213;
14415 data 3 "*" 021021 7 021021021021 0213;
14416
14417 page -all;
14418
14419
14420
14421
14422 /* dv2d13
14423 * floating point divide
14424 * 9 bit to 9bit
14425 * all page faults taken
14426 *
14427 */
14428
14429 inst dv2d -nt "9bit float divide"
14430 -io 1
14431 -mf1 ar rl 63 reg idb
14432 -mf2 ar rl 63 reg idb;
14433
14434 desc1 -sd f;
14435 desc2 -sd f;
14436
14437 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
14438 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
14439 data 3 "+" "1" 60 "0" 305;
14440
14441 page -all;
14442
14443
14444
14445
14446
14447 /* dv2d14
14448 * 4 bit floating divided to
14449 * 4 bit floating
14450 *
14451 */
14452
14453 inst dv2d -nt "4 float to 4 float"
14454 -io 1
14455 -mf1 ar rl 10 ida
14456 -mf2 ar rl 10 ida;
14457
14458 desc1 -sd f -tn 4;
14459 desc2 -sd f -tn 4;
14460
14461 data 1 -do -1 300 000 000 001 000;
14462 data 2 -do -1 300 000 021 021 000;
14463 data 3 301 021 020 000 375;
14464
14465 page -all;
14466
14467
14468
14469
14470 /* dv2d15
14471 * test 4bit scaled to 9 bit
14472 *
14473 */
14474
14475 inst dv2d -nt "4bit->9bit"
14476 -io 1
14477 -mf1 ar rl 5 idb
14478 -mf2 ar rl 5 idb reg;
14479
14480 desc 1 -tn 4 -sd l;
14481 desc 2 -sd n;
14482
14483 data 1 30102100;
14484 data 2 -do 4 "02222";
14485 data 3 "00002";
14486
14487 page -all;
14488
14489
14490
14491
14492 /* dv2d16
14493 * test 9 floating to 4 floating
14494 *
14495 */
14496
14497 inst dv2d -nt "9float->4 float"
14498 -io 1
14499 -mf1 ar rl 5 idb reg
14500 -mf2 ar rl 7 idb;
14501
14502 desc 1 -sd f;
14503 desc 2 -sd f -tn 4;
14504
14505 data 1 "+" 3 "1" 000;
14506 data 2 300 042 040 00;
14507 data 3 302 000 017 320;
14508
14509 page -all;
14510
14511
14512
14513
14514
14515 /* dv2d17
14516 * 4 float to 9 float
14517 *
14518 */
14519
14520 inst dv2d -nt "4float -> 9float"
14521 -io 1
14522 -mf1 ar rl 7 idb
14523 -mf2 ar rl 7 idb reg;
14524
14525 desc 1 -sd f -tn 4 ;
14526 desc 2 -sd f;
14527
14528 data 1 300 042 040 00;
14529 data 2 "+0" 3 "1" "0" 000;
14530 data 3 "+05000" 375;
14531
14532 page -all;
14533
14534
14535
14536
14537
14538 /* dv2d18
14539 * 9 scaled to 9 float
14540 *
14541 */
14542
14543 inst dv2d -nt "9sacled to 9 float"
14544 -io 2
14545 -mf1 ar rl 5 idb reg
14546 -mf2 ar rl 6 idb reg;
14547
14548 desc1 -sd l;
14549 desc2 -sd f;
14550
14551 data 1 "+" 4 "3";
14552 data 2 "+" "0" 3 "2" 000;
14553 data 3 "+" "0666" 374;
14554
14555 page -all;
14556
14557
14558
14559
14560 /* dv2d19
14561 * 9 float to 9 scaled
14562 *
14563 */
14564
14565 inst dv2d -nt "9 float to 9 scaled"
14566 -io 2
14567 -mf1 ar rl 6 idb reg
14568 -mf2 ar rl 5 idb reg;
14569
14570 desc1 -sd f;
14571 desc2 -sd l;
14572
14573 data 1 "+" "0" 3 "2" 000;
14574 data 2 "+" 4 "3";
14575 data 3 "+0015";
14576
14577 page -all;
14578
14579
14580
14581
14582 /* dv2d20
14583 * 9 scaled to 4 float
14584 *
14585 */
14586
14587 inst dv2d -nt "9scaled->4float"
14588 -io 2
14589
14590 -mf1 ar rl 5 idb reg
14591 -mf2 ar rl 6 idb;
14592
14593 desc 1 -sd l;
14594 desc 2 -sd f -tn 4;
14595
14596 data 1 "+0" 3 "2";
14597 data 2 303063 000;
14598 data 3 301 120 376;
14599
14600 page -all;
14601
14602
14603
14604
14605 /* dv2d21
14606 * 9 float to 4 scaled
14607 *
14608 */
14609
14610 inst dv2d -nt "9float->4scaled"
14611 -io 1
14612 -mf1 ar rl 6 idb reg
14613 -mf2 ar rl 4 idb;
14614
14615 desc 1 -sd f;
14616 desc 2 -sd l -tn 4;
14617
14618 data 1 -do -1 "+0" 3 "2" 000;
14619 data 2 -do -2 303 063;
14620 data 3 300 001;
14621
14622 page -all;
14623
14624
14625
14626
14627 /* dv2d22
14628 * 4scaled to 9 float
14629 *
14630 */
14631
14632 inst dv2d -nt "4scaled-.9float"
14633 -io 1
14634 -mf1 ar rl 4 idb
14635 -mf2 ar rl 6 idb reg;
14636
14637 desc 1 -sd l -tn 4;
14638 desc 2 -sd f;
14639
14640 data 1 -do -1 303063;
14641 data 2 -do -1 "+0" 3 "2" 000;
14642 data 3 "+0" 3 "6" 375;
14643
14644 page -all;
14645
14646
14647
14648
14649 /* dv2d23
14650 * 4 floating to 9 scaled
14651 *
14652 */
14653
14654 inst dv2d -nt "4float->9scaled"
14655 -io 1
14656 -mf1 ar rl 6 idb
14657 -mf2 ar rl 5 idb reg;
14658
14659 desc 1 -sd f -tn 4;
14660 desc 2 -sd n;
14661
14662 data 1 -do -1 303 063 000;
14663 data 2 -do -2 "00" "555";
14664 data 3 4 "0" "1";
14665
14666 page -all;
14667
14668
14669
14670
14671 /* dv2d24
14672 * 4 scaled to 4 float
14673 *
14674 */
14675
14676 inst dv2d -nt "4scaled to 4 float"
14677 -io 1
14678 -mf1 ar rl 4 idb
14679 -mf2 ar rl 6 idb;
14680
14681 desc 1 -tn 4 -sd l;
14682 desc 2 -tn 4 -sd f;
14683
14684 data 1 -do -1 303 063;
14685 data 2 -do -1 302042000;
14686 data 3 300 146 376;
14687
14688 page -all;
14689
14690
14691
14692
14693 /* dv2d25
14694 * 4 floating to 4 scaled
14695 *
14696 */
14697
14698 inst dv2d -nt "4 floating to 4 scaled"
14699 -io 2
14700 -mf1 ar rl 6 idb
14701 -mf2 ar rl 4 idb;
14702
14703 desc 1 -tn 4 -sd f;
14704 desc 2 -tn 4 -sd l;
14705
14706 data 1 -do -1 302042000;
14707 data 2 -do -1 303 063;
14708 data 3 300 001;
14709
14710 page -all;
14711
14712
14713
14714 /* dv2d26
14715 *
14716 */
14717
14718 inst dv2d -nt "Simple divide" -io 3
14719 -mf1 ar reg idb
14720 -mf2 ar reg idb;
14721
14722
14723 desc 1 -sd n -nn 3;
14724 desc 2 -sd n -nn 4;
14725
14726
14727 data 1 -do -1 "060";
14728 data 2 -do -3 "0120";
14729 data 3 "0002";
14730
14731 page -all;
14732
14733
14734 ^L
14735
14736
14737 /* csl 1
14738 *
14739 * Simple test of instruction to see if its functions.
14740 * Move 72 bits cross no boundaries and use no modification.
14741 *
14742 */
14743
14744 inst csl -nt "simple test"
14745 -bo mov ;
14746
14747 desc 1 -ns 72 ;
14748
14749 desc 2 -ns 72 ;
14750
14751 data 1 -do -8 "abcdefgh" ;
14752
14753 data 2 -do -8 "wwwwwwww" ;
14754
14755 data 3 "abcdefgh" ;
14756
14757 page -all ;
14758
14759
14760
14761 /* csl 2
14762 *
14763 * Move two bits one on each side of a page boundary.
14764 * No modification is used.
14765 *
14766 */
14767
14768 inst csl -nt "invert 2 bits across boundary"
14769 -bo inv ;
14770
14771 desc 1 -ns 2 -cp 3 -bp 8 ;
14772
14773 desc 2 -ns 2 -cp 3 -bp 8 ;
14774
14775 data 1 -do 4 000 000 000 001 000 ;
14776
14777 data 2 -do 4 000 000 000 001 000 ;
14778
14779 data 3 000 000 000 000 400 ;
14780
14781 page -all ;
14782
14783
14784
14785
14786 /* csl 3
14787 *
14788 * Test moving data across 3 pages. This requires register
14789 * length modification.
14790 *
14791 */
14792
14793 inst csl -nt "move data across 3 pages"
14794 -bo mov
14795 -io 1
14796 -mf1 rl 36946
14797 -mf2 rl 36946 ;
14798
14799 desc 1 -cp 3 -bp 4 ;
14800
14801 desc 2 -cp 3 -bp 4 ;
14802
14803 data 1 -do -8 000 000 000 006
14804 513 146531265234623214653126 760 ;
14805
14806 data 2 -do -8 000 000 000 037
14807 513 254315456312465146515314 600 ;
14808
14809 data 3 000 000 000 006
14810 513 146531265234623214653126 760 ;
14811
14812 page -all ;
14813
14814
14815
14816 /* csl 4
14817 *
14818 * AND bit strings using ar and reg modification in addition to
14819 * reg length modification. Use data across 3 pages.
14820 *
14821 */
14822
14823 inst csl -nt "arreg mod. AND across 3 pages"
14824 -bo and
14825 -io 2
14826 -mf1 ar reg rl 36946
14827 -mf2 ar reg rl 36946 ;
14828
14829 desc 1 -cp 3 -bp 4 ;
14830
14831 desc 2 -cp 3 -bp 4 ;
14832
14833 data 1 -do -8 000 000 000 006
14834 513 146531265234623214653126 760 ;
14835
14836 data 2 -do -8 000 000 000 037
14837 513 254315456312465146515314 600 ;
14838
14839 data 3 000 000 000 006
14840 513 044111044210421004411104 600 ;
14841
14842 page -all ;
14843
14844
14845
14846
14847 /* csl 5
14848 *
14849 * OR bit strings using indirect modification in addition to register
14850 * length modification. Use data across 3 pages.
14851 *
14852 */
14853
14854 inst csl -nt "id mod. OR across 3 pages"
14855 -bo or
14856 -io 1
14857 -mf1 id rl 36946
14858 -mf2 id rl 36946 ;
14859
14860 desc 1 -cp 3 -bp 4 ;
14861
14862 desc 2 -cp 3 -bp 4 ;
14863
14864 data 1 -do -8 000 000 000 006
14865 513 146531265234623214653126 760 ;
14866
14867 data 2 -do -8 000 000 000 037
14868 513 254315456312465146515314 600 ;
14869
14870 data 3 000 000 000 037
14871 513 356735677336667356757336 760 ;
14872
14873 page -all ;
14874
14875
14876
14877
14878 /* csl 6
14879 *
14880 * NAND bit strings using indirect ar and reg modification and
14881 * reg length modification. Use data across 3 pages.
14882 *
14883 */
14884
14885 inst csl -nt "idb mod. NAND across 3 pages"
14886 -bo nan
14887 -mf1 idb rl 36946
14888 -mf2 idb rl 36946 ;
14889
14890 desc 1 -cp 3 -bp 4 ;
14891
14892 desc 2 -cp 3 -bp 4 ;
14893
14894 data 1 -do -8 000 000 000 006
14895 513 146531265234623214653126 760 ;
14896
14897 data 2 -do -8 000 000 000 037
14898 513 254315456312465146515314 600 ;
14899
14900 data 3 000 000 000 031
14901 513 733666733567356773366673 160 ;
14902
14903 page -all ;
14904
14905
14906
14907
14908 /* csl 7
14909 *
14910 * XOR bit strings using indirect ar and reg modification and direct
14911 * ar reg and register length modification. User data across 3 pages.
14912 *
14913 */
14914
14915 inst csl -nt "idbarreg mod. XOR across 3 pgs"
14916 -bo xor
14917 -io 2
14918 -mf1 idb ar reg rl 36946
14919 -mf2 idb ar reg rl 36946 ;
14920
14921 desc 1 -cp 3 -bp 4 ;
14922
14923 desc 2 -cp 3 -bp 4 ;
14924
14925 data 1 -do -8 000 000 000 006
14926 513 146531265234623214653126 760 ;
14927
14928 data 2 -do -8 000 000 000 037
14929 513 254315456312465146515314 600 ;
14930
14931 data 3 000 000 000 031
14932 513 312624633126246352346232 160 ;
14933
14934 page -all ;
14935
14936 /* csl 8
14937 *
14938 * Test bit string CLEAR operator. Data is moved across 3 pages with
14939 * full address modification. The zero indicator will be set.
14940 *
14941 */
14942
14943 inst csl -nt "CLEAR string. 3 pages moved"
14944 -bo zer
14945 -ir zr
14946 -io 3
14947 -mf1 idb ar reg rl 36946
14948 -mf2 rl 36946 ;
14949
14950 desc 1 -cp 3 -bp 4 ;
14951
14952 desc 2 -cp 3 -bp 4 ;
14953
14954 data 1 -do -8 000 000 000 006
14955 513 146531265234623214653126 760 ;
14956
14957 data 2 -do -8 000 000 000 037
14958 513 254315456312465146515314 600 ;
14959
14960 data 3 000 000 000 000
14961 513 000000000000000000000000
14962 000 ;
14963
14964 page -all ;
14965
14966
14967
14968
14969 /* csl 9
14970 *
14971 * Test truncation with INVERT operator. Use full modification
14972 * and move data across 3 pages.
14973 *
14974 */
14975
14976 inst csl -nt "INVERT truncation is set"
14977 -bo inv
14978 -ir tn
14979 -io 1
14980 -mf1 idb ar reg rl 36946
14981 -mf2 idb ar reg rl 36943 ;
14982
14983 desc 1 -cp 3 -bp 4 ;
14984
14985 desc 2 -cp 3 -bp 4 ;
14986
14987 data 1 -do -8 000 000 000 006
14988 513 146531265234623214653126 760 ;
14989
14990 data 2 -do -8 000 000 000 037
14991 513 254315456312465146515314 700 ;
14992
14993 data 3 000 000 000 031
14994 513 631246512543154563124651 100 ;
14995
14996 page -all ;
14997
14998
14999
15000
15001 /* csl 10
15002 *
15003 * Test the use of bit file with the COINcidence operator. Use full
15004 * modification across 3 pages. The fill bit is zero.
15005 *
15006 */
15007
15008 inst csl -nt "COIN. bit fill0"
15009 -bo nox
15010 -mf1 idb ar reg rl 36943
15011 -mf2 idb ar reg rl 36946 ;
15012
15013 desc 1 -cp 3 -bp 4 ;
15014
15015 desc 2 -cp 3 -bp 4 ;
15016
15017 data 1 -do -8 000 000 000 006
15018 513 146531265234623214653126 760 ;
15019
15020 data 2 -do -8 000 000 000 037
15021 513 254315456312465146515314 600 ;
15022
15023 data 3 000 000 000 006
15024 513 465153144651531425431545 760 ;
15025
15026 page -all ;
15027
15028
15029 ^L
15030
15031
15032 /* csr 1
15033 *
15034 * Simple test of instruction to see if its functions.
15035 * Move 72 bits cross no boundaries and use no modification.
15036 *
15037 */
15038
15039 inst csr -nt "simple test"
15040 -bo mov ;
15041
15042 desc 1 -ns 72 ;
15043
15044 desc 2 -ns 72 ;
15045
15046 data 1 -do -8 "abcdefgh" ;
15047
15048 data 2 -do -8 "wwwwwwww" ;
15049
15050 data 3 "abcdefgh" ;
15051
15052 page -all ;
15053
15054
15055
15056 /* csr 2
15057 *
15058 * Move two bits one on each side of a page boundary.
15059 * No modification is used.
15060 *
15061 */
15062
15063 inst csr -nt "invert 2 bits across boundary"
15064 -bo inv ;
15065
15066 desc 1 -ns 2 -cp 3 -bp 8 ;
15067
15068 desc 2 -ns 2 -cp 3 -bp 8 ;
15069
15070 data 1 -do 4 000 000 000 001 000 ;
15071
15072 data 2 -do 4 000 000 000 001 000 ;
15073
15074 data 3 000 000 000 000 400 ;
15075
15076 page -all ;
15077
15078 /* csr 3
15079 *
15080 * Test moving data across 3 pages. This requires register
15081 * length modification.
15082 *
15083 */
15084
15085 inst csr -nt "move data across 3 pages"
15086 -bo mov
15087 -io 1
15088 -mf1 rl 36946
15089 -mf2 rl 36946 ;
15090
15091 desc 1 -cp 3 -bp 4 ;
15092
15093 desc 2 -cp 3 -bp 4 ;
15094
15095 data 1 -do -8 000 000 000 006
15096 513 146531265234623214653126 760 ;
15097
15098 data 2 -do -8 000 000 000 037
15099 513 254315456312465146515314 600 ;
15100
15101 data 3 000 000 000 006
15102 513 146531265234623214653126 760 ;
15103
15104 page -all ;
15105
15106
15107
15108 /* csr 4
15109 *
15110 * AND bit strings using ar and reg modification in addition to
15111 * reg length modification. Use data across 3 pages.
15112 *
15113 */
15114
15115 inst csr -nt "arreg mod. AND across 3 pages"
15116 -bo and
15117 -io 2
15118 -mf1 ar reg rl 36946
15119
15120 -mf2 ar reg rl 36946 ;
15121 desc 1 -cp 3 -bp 4 ;
15122
15123 desc 2 -cp 3 -bp 4 ;
15124
15125 data 1 -do -8 000 000 000 006
15126 513 146531265234623214653126 760 ;
15127
15128 data 2 -do -8 000 000 000 037
15129 513 254315456312465146515314 600 ;
15130
15131 data 3 000 000 000 006
15132 513 044111044210421004411104 600 ;
15133
15134 page -all ;
15135
15136
15137
15138
15139 /* csr 5
15140 *
15141 * OR bit strings using indirect modification in addition to register
15142 * length modification. Use data across 3 pages.
15143 *
15144 */
15145
15146 inst csr -nt "id mod. OR across 3 pages"
15147 -bo or
15148 -io 1
15149 -mf1 id rl 36946
15150 -mf2 id rl 36946 ;
15151
15152 desc 1 -cp 3 -bp 4 ;
15153
15154 desc 2 -cp 3 -bp 4 ;
15155
15156 data 1 -do -8 000 000 000 006
15157 513 146531265234623214653126 760 ;
15158
15159 data 2 -do -8 000 000 000 037
15160 513 254315456312465146515314 600 ;
15161
15162 data 3 000 000 000 037
15163 513 356735677336667356757336 760 ;
15164
15165 page -all ;
15166
15167
15168
15169
15170 /* csr 6
15171 * NAND bit strings using indirect ar and reg modification and
15172 * reg length modification. Use data across 3 pages.
15173 *
15174 */
15175
15176 inst csr -nt "idb mod. NAND across 3 pages"
15177 -bo nan
15178 -mf1 idb rl 36946
15179 -mf2 idb rl 36946 ;
15180
15181 desc 1 -cp 3 -bp 4 ;
15182
15183 desc 2 -cp 3 -bp 4 ;
15184
15185 data 1 -do -8 000 000 000 006
15186 513 146531265234623214653126 760 ;
15187
15188 data 2 -do -8 000 000 000 037
15189 513 254315456312465146515314 600 ;
15190
15191 data 3 000 000 000 031
15192 513 733666733567356773366673 160 ;
15193
15194 page -all ;
15195
15196
15197
15198
15199 /* csr 7
15200 *
15201
15202 * XOR bit strings using indirect ar and reg modification and direct
15203 * ar reg and register length modification. User data across 3 pages.
15204 *
15205 */
15206
15207 inst csr -nt "idbarreg mod. XOR across 3 pgs"
15208 -bo xor
15209 -io 2
15210 -mf1 idb ar reg rl 36946
15211 -mf2 idb ar reg rl 36946 ;
15212
15213 desc 1 -cp 3 -bp 4 ;
15214
15215 desc 2 -cp 3 -bp 4 ;
15216
15217 data 1 -do -8 000 000 000 006
15218 513 146531265234623214653126 760 ;
15219
15220 data 2 -do -8 000 000 000 037
15221 513 254315456312465146515314 600 ;
15222
15223 data 3 000 000 000 031
15224 513 312624633126246352346232 160 ;
15225
15226 page -all ;
15227
15228 /* csr 8
15229 *
15230 * Test bit string CLEAR operator. Data is moved across 3 pages with
15231 * full address modification. The zero indicator will be set.
15232 *
15233 */
15234
15235 inst csr -nt "CLEAR string. 3 pages moved"
15236 -bo zer
15237 -ir zr
15238 -io 3
15239 -mf1 idb ar reg rl 36946
15240 -mf2 rl 36946 ;
15241
15242 desc 1 -cp 3 -bp 4 ;
15243
15244 desc 2 -cp 3 -bp 4 ;
15245
15246 data 1 -do -8 000 000 000 006
15247 513 146531265234623214653126 760 ;
15248
15249 data 2 -do -8 000 000 000 037
15250 513 254315456312465146515314 600 ;
15251
15252 data 3 000 000 000 000
15253 513 000000000000000000000000
15254 000 ;
15255
15256 page -all ;
15257
15258
15259
15260
15261 /* csr 9
15262 *
15263 * Test truncation with INVERT operator. Use full modification
15264 * and move data across 3 pages.
15265 *
15266 */
15267
15268 inst csr -nt "INVERT truncation is set"
15269 -bo inv
15270 -ir tn
15271 -io 1
15272 -mf1 idb ar reg rl 36946
15273 -mf2 idb ar reg rl 36943 ;
15274
15275 desc 1 -cp 3 -bp 4 ;
15276
15277 desc 2 -cp 3 -bp 7 ;
15278
15279 data 1 -do -8 000 000 000 006
15280 513 146531265234623214653126 760 ;
15281
15282 data 2 -do -8 000 000 000 037
15283 513 254315456312465146515314 700 ;
15284
15285 data 3 000 000 000 035
15286 513 631246512543154563124651 000 ;
15287
15288 page -all ;
15289
15290
15291
15292
15293 /* csr 10
15294 *
15295 * Test the use of bit file with the COINcidence operator. Use full
15296 * modification across 3 pages. The fill bit is zero.
15297 *
15298 */
15299
15300 inst csr -nt "COIN. bit fill0"
15301 -bo nox
15302 -mf1 idb ar reg rl 36943
15303 -mf2 idb ar reg rl 36946 ;
15304
15305 desc 1 -cp 3 -bp 7 ;
15306
15307 desc 2 -cp 3 -bp 4 ;
15308
15309 data 1 -do -8 000 000 000 006
15310 513 146531265234623214653126 760 ;
15311
15312 data 2 -do -8 000 000 000 037
15313 513 254315456312465146515314 600 ;
15314
15315 data 3 000 000 000 002
15316 513 465153144651531425431545 600 ;
15317
15318 page -all ;
15319
15320
15321 ^L
15322
15323 /* sztl1
15324 * Use two maximum length strings 4352 chrs or 39168 bits.
15325 * The zero indicator will be on since a bool code of "zer"
15326 * is used. Take maximum number of page faults. */
15327
15328 inst sztl -nt "Both strings are the same length"
15329 -bo zer
15330 -ir zr
15331 -mf1 idb ar reg rl 39168
15332 -mf2 idb ar reg rl 39168
15333 -io 1;
15334
15335 data 1 -do -10 4352"5";
15336 data 2 -do -30 4352"7";
15337
15338 page -all;
15339
15340
15341
15342 /* sztl2
15343 * Both the truncation and the zero indicators will be turned
15344 * on. The 1st string will begin on the last bit of a page and
15345 * the 2nd string will end on the 1st bit of a page. */
15346
15347 inst sztl -nt "Both strings cross page bounds"
15348 -bo zer
15349 -ir tn zr
15350 -mf1 ar
15351 -mf2 ar;
15352
15353 desc 1 -bp 8 -ns 23;
15354 desc 2 -bp 1 -ns 18;
15355
15356 data 1 -do -1 074 321 64;
15357 data 2 -do -4 023 776 4;
15358
15359 page -all;
15360
15361
15362
15363 /* sztl3
15364 * No indicators are turned on. The zero fill bit is used. Bit strings
15365 * begin in the middle of a byte */
15366
15367 inst sztl -nt "Both strings cross page bounds"
15368 -bo and
15369 -mf1 ida ar
15370 -mf2 idb ar;
15371
15372 desc 1 -bp 4 -ns 70;
15373 desc 2 -bp 5 -ns 80;
15374
15375 data 1 -do -2 "3274" "1958" 0;
15376 data 2 -do -4 "4875" "7329" 326 0;
15377
15378 page -all;
15379
15380
15381
15382 /* sztl4
15383 * The zero indicator will be turned on. Both strings
15384 are of the same length and begin and end on word boundaries. */
15385
15386 inst sztl -nt "only rl modification is used"
15387 -bo and
15388 -ir zr
15389 -mf1 rl 144
15390 -mf2 rl 144
15391 -io 2;
15392
15393 data 1 4123 12075;
15394 data 2 4654 12402;
15395
15396 page -all;
15397
15398
15399
15400 /* sztl5
15401 * Test the axr bool code. Set the zero and truncation
15402 * indicators. Bit strings begin in the middle of a byte
15403 * straddling a page boundary. */
15404
15405 inst sztl -nt "1st string is longer than 2nd"
15406 -bo axr
15407 -ir zr tn
15408 -mf1 ar reg rl 40
15409 -mf2 ar idr rl 31;
15410
15411 desc 1 -bp 5;
15412 desc 2 -bp 5;
15413
15414 data 1 -do -1 074 321 652 403 777;
15415 data 2 -do -3 777 777 676 603;
15416
15417 page -all;
15418
15419
15420
15421 /* sztl6
15422 * Test the axr bool code. No indicators will be set */
15423
15424 inst sztl -nt "Both strings are the same length"
15425
15426 -bo axr
15427 -mf1 rl 7866
15428 -mf2 rl 7866;
15429
15430 data 1 874"321";
15431 data 2 874 "604";
15432
15433 page -all;
15434
15435
15436
15437 /* sztl7
15438 * Test the mov bool code. Use a maximum length string and the
15439 * zero fill bit. Take the maximum number of page faults. */
15440
15441 inst sztl -nt "2nd string is longer than 1st"
15442 -bo mov
15443 -mf1 ida ar rl 36000
15444 -mf2 idb ar reg rl 39168
15445 -io 1;
15446
15447 data 1 -do -40 1000"9874";
15448 data 2 -do -20 1088 "0000";
15449
15450 page -all;
15451
15452
15453
15454 /* sztl8
15455 * Test the move bool code. Set the zero indicator.
15456 * The first string is all zeroes. */
15457
15458 inst sztl -nt "2nd string is longer than 1st"
15459 -bo mov
15460 -ir zr
15461 -mf1 ar id
15462 -mf2 ar
15463 -io 2;
15464
15465 desc 1 -bp 7 -ns 99;
15466 desc 2 -bp 1 -ns 100;
15467
15468 data 1 -do 20 12000;
15469 data 2 -do 3 "abcde123456" 4;
15470
15471 page -all;
15472
15473
15474
15475 /* sztl9
15476 * Test xra bool code. Set zero and truncation indicators.
15477 * Use two short bit strings which cross page boundaries. */
15478
15479 inst sztl -nt "1st string is longer than 2nd"
15480 -bo xra
15481 -ir tn zr
15482 -mf1 ar idr
15483 -mf2 ar idb;
15484
15485 desc 1 -ns 3 -bp 7;
15486 desc 2 -ns 2 -bp 8;
15487
15488 data 1 -do -1 777 4;
15489 data 2 -do -1 235 0;
15490
15491 page -all;
15492
15493
15494
15495 /* sztl10
15496 * Test xra bool code. Use the zero fill bit. No indicators are set */
15497
15498 inst sztl -nt "2nd string is longer than 1st"
15499 -bo xra
15500 -mf1 idr reg
15501 -mf2 idr
15502 -io 2;
15503
15504 desc 1 -ns 400;
15505 desc 2 -ns 500;
15506
15507 data 1 44"9" 72;
15508 data 2 55"8" 36;
15509
15510 page -all;
15511
15512
15513
15514 /* sztl11
15515 * Test ra2 bool code. Set the zero indicator. This means
15516 * that the 2nd bit string must be all zeroes. */
15517
15518 inst sztl -nt "2nd string is longer than 1st"
15519 -bo ra2
15520 -mf1 ar rl 36
15521 -mf2 reg
15522 -ir zr
15523 -io 1;
15524
15525 desc 1 -bp 4;
15526 desc 2 -ns 36;
15527
15528 data 1 -do -1 "abcd" 70;
15529 data 2 4000;
15530
15531 page -all;
15532
15533
15534
15535 /* sztl12
15536 * Test ra2 bool code. No indicators are set. */
15537
15538 inst sztl -nt "Both strings are the same length"
15539 -bo ra2
15540 -mf1 reg
15541 -mf2 ar rl 36
15542 -io 2;
15543
15544 desc 1 -ns 36;
15545 desc 2 -bp 4;
15546
15547 data 1 4000;
15548 data 2 -do -1 "abcd" 70;
15549
15550 page -all;
15551
15552
15553
15554 /* sztl13
15555 * Test xor bool code. Set the zero indicator. Use zero fill. */
15556
15557 inst sztl -nt "2nd string is longer than 1st"
15558 -bo xor
15559 -mf1 id reg
15560 -mf2 ar;
15561
15562 desc 1 -ns 3600;
15563 desc 2 -ns 3672 -bp 7;
15564
15565 data 1 -do -8 1003526;
15566 data 2 -do -63 000 1007254 7000;
15567
15568 page -all;
15569
15570
15571
15572 /* sztl14
15573 * Test xor bool code. use strings of identical length.
15574 * No indicators are set. */
15575
15576 inst sztl -nt "Both strings are the same length"
15577 -bo xor;
15578
15579 desc 1 -ns 900;
15580 desc 2 -ns 900;
15581
15582 data 1 -do -12 10 "abcdefghij";
15583 data 2 -do -4 10 "1234567890";
15584
15585 page -all;
15586
15587
15588
15589 /* sztl15
15590 * Test the or bool code. Set zero and truncation indicators.
15591 * This means that both bit strings must be all zeroes. The
15592 * first bit string must be longer than the second */
15593
15594 inst sztl -nt "1st string is longer than 2nd"
15595 -bo or
15596 -ir zr tn
15597 -mf1 rl 30 idb ar
15598 -mf2 rl 20 ar ida;
15599
15600 data 1 000 000 000 0;
15601 data 2 000 000 0;
15602
15603 page -all;
15604
15605
15606
15607 /* sztl16
15608 * Test the or bool code. No indicators are set.
15609 * The one fill bit is used. */
15610
15611 inst sztl -nt "2nd string is longer than 1st"
15612 -bo or
15613 -fb
15614 -mf1 rl 3000 ar id
15615 -mf2 rl 3900 ar idr
15616 -io 1;
15617
15618 data 1 10007;
15619 data 2 325"x" 3253 ;
15620
15621 page -all;
15622
15623
15624
15625 /* sztl17
15626 * Test the nor bool code. No indicators are set. */
15627
15628 inst sztl -nt "2nd string is longer than 1st"
15629 -bo nor
15630 -mf1 ida ar rl 14
15631 -mf2 id ar rl 28
15632 -io 2;
15633
15634 data 1 342 22;
15635 data 2 234 760 621 0;
15636
15637 page -all;
15638
15639
15640
15641 /* sztl18
15642 * Test the nor bool code. Set the zero indicator.
15643 * Use the one fill bit */
15644
15645 inst sztl -nt "2nd string is longer than 1st"
15646 -ir zr
15647 -bo nor
15648 -fb
15649 -mf1 ar
15650 -mf2 rl 19;
15651
15652 desc 1 -ns 8 -bp 1;
15653
15654 data 1 777;
15655 data 2 326 417 0;
15656
15657 page -all;
15658
15659
15660
15661 /* sztl19
15662 * Test the nox bool code. Set the zero indicator.
15663 * For the indicator to be set no two bits may matc. */
15664
15665 inst sztl -nt "Both strings are the same length"
15666 -ir zr
15667 -bo nox
15668 -mf1 id
15669 -mf2 ida;
15670
15671 desc 1 -ns 54;
15672 desc 2 -ns 54;
15673
15674 data 1 124 235 647 211 000 777;
15675 data 2 -do -4 653 542 130 566 777 000;
15676
15677 page -all;
15678
15679
15680
15681 /* sztl20
15682 * Test the Nox bool code. Only the truncation indicator is set. */
15683
15684 inst sztl -nt "1st string is longer than 2nd"
15685 -bo nox -ir tn
15686 -mf1 ar rl 36000
15687 -mf2 ar id
15688 -io 1;
15689
15690
15691 desc 1 -bp 7;
15692 desc 2 -bp 3 -ns 3600;
15693
15694 data 1 003 1000"axyr";
15695 data 2 024 100"rjqf";
15696
15697 page -all;
15698
15699
15700
15701 /* sztl21
15702 * Test the iv2 bool code. Both the zero and the truncation
15703 * indicators will be set. For the zero indicator to be set
15704 * the 2nd bit string must be all ones. */
15705
15706 inst sztl -nt "1st string is longer than 2nd"
15707 -bo iv2 -ir zr tn
15708 -mf1 rl 64 ar reg
15709 -mf2 ar id
15710 -io 1;
15711
15712 desc 1 -bp 6;
15713 desc 2 -ns 32 -bp 3;
15714
15715 data 1 -do -1 "abpstuv" 4;
15716 data 2 077 777 777 776;
15717
15718 page -all;
15719
15720
15721
15722 /* sztl22
15723 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */
15724
15725 inst sztl -nt "2nd string is longer than 1st"
15726 -bo iv2
15727 -mf1 ar id
15728 -mf2 rl 64 ar reg
15729 -io 1;
15730
15731 desc 1 -ns 32 -bp 3;
15732 desc 2 -bp 6;
15733
15734 data 1 077 777 777 776;
15735 data 2 -do -1 "abpstuv" 4;
15736
15737 page -all;
15738
15739
15740
15741 /* sztl23
15742 * Test the xrx bool code. The zero indicator will be set.
15743 * This can occur only when every bit in the first string is zero
15744 * and every bit in the 2nd string is one. */
15745
15746 inst sztl -nt "Both strings are the same length"
15747 -bo xrx -ir zr
15748 -mf1 reg
15749 -mf2 id;
15750
15751 desc 1 -ns 108;
15752 desc 2 -ns 108;
15753
15754 data 1 -do -4 12000;
15755 data 2 -do 4 12777;
15756
15757 page -all;
15758
15759
15760
15761 /* sztl24
15762 * Test the xrx bool code. No indicators are set. The zero fill bit is used */
15763
15764 inst sztl -nt "2nd string is longer than 1st"
15765 -bo xrx
15766 -mf1 rl 720 idr ar
15767 -mf2 id
15768 -io 2;
15769
15770 desc 2 -ns 1080 -bp 4;
15771
15772 data 1 -do -3 20"ijkl";
15773 data 2 -do 8 054 30"9832";
15774
15775 page -all;
15776
15777
15778
15779 /* sztl25
15780 * Test the inv bool code. Set the zero indicator.
15781 * To set the indicator the first bit string must be
15782 * all ones. */
15783
15784 inst sztl -nt "Both string are the same length"
15785 -ir zr
15786 -bo inv
15787 -mf1 idb ar reg
15788 -mf2 idb ar;
15789
15790 desc 1 -bp 5 -ns 13;
15791 desc 2 -bp 2 -ns 13;
15792
15793 data 1 777 777;
15794 data 2 265 43;
15795
15796 page -all;
15797
15798
15799
15800 /* sztl26
15801 * Test the inv bool code. No indicators are set */
15802
15803 inst sztl -nt "Both strings are the same length"
15804 -bo inv
15805 -mf1 idb ar
15806 -mf2 idb ar reg;
15807
15808 desc 1 -bp 2 -ns 13;
15809 desc 2 -bp 5 -ns 13;
15810
15811 data 1 265 43;
15812 data 2 777 777;
15813
15814 page -all;
15815
15816
15817
15818 /* sztl27
15819 * Test the xxr bool code. This test sets the zero indicator.
15820 * The zero indicator is set only when the 1st string is all ones and
15821 * the second string is all zeroes. The one fill bit is used. */
15822
15823 inst sztl -nt "2nd string is longer than 1st"
15824 -ir zr
15825 -fb
15826 -bo xxr
15827 -io2;
15828
15829 desc 1 -ns 1;
15830 desc 2 -ns 2;
15831
15832 data 1 4;
15833 data 2 0;
15834
15835 page -all;
15836
15837
15838
15839 /* sztl28
15840 * Test the xxr bool code. No indicators are set */
15841
15842 inst sztl -nt "2nd string is longer than 1st"
15843 -bo xxr
15844 -mf1 ar
15845 -mf2 reg rl 59;
15846
15847 desc 1 -ns 43 -bp 5;
15848
15849 data 1 -do -2 "tsrkv" 3;
15850 data 2 -do -4 "mnopqrs";
15851
15852 page -all;
15853
15854
15855
15856 /* sztl29
15857 * Test the nan bool code. The zero and truncation indicators
15858 * are set. For the zero indicator to be set both bit strings
15859 * must be all ones. */
15860
15861 inst sztl -nt "1st string is longer than 2nd"
15862 -bo nan
15863 -ir zr tn
15864 -mf1 rl 39168 ar
15865 -mf2 rl 33000;
15866
15867 data 1 4352777;
15868 data 2 3667777;
15869
15870 page -all;
15871
15872
15873
15874 /* sztl30
15875 * Test the nan bool code. No indicators are set.
15876 * The one fill bit is set. */
15877
15878 inst sztl -nt "2nd string is longer than 1st"
15879 -fb
15880 -bo nan
15881 -mf1 ar
15882 -mf2 ar rl 436;
15883
15884 desc 1 -bp 3 -ns 274;
15885
15886 data 1 7"tack" "rgm";
15887 data 2 12"mike" 023;
15888
15889 page -all;
15890
15891
15892
15893 /* sztl31
15894 * Test the "set" bool code. The zero indicator cannot be set
15895 * when the "set" code is used. This test sets the truncation
15896 indicator. */
15897
15898 inst sztl -nt "1st string is longer than 2nd"
15899 -ir tn
15900 -bo set;
15901
15902 desc 1 -ns 50;
15903 desc 2 -ns 49;
15904
15905 data 1 023 571 725 152 111 243;
15906 data 2 023 571 777 043 121 000;
15907
15908 page -all;
15909
15910
15911
15912 /* sztl32
15913 * Test the "set" bool code. No indicators are set.
15914 * The maximum number of page faults is taken */
15915
15916 inst sztl -nt "2nd string is longer than 1st"
15917 -bo set
15918 -mf1 idb ar reg rl 39159
15919 -mf2 idb ar reg rl 39168
15920 -io 1
15921 -fb;
15922
15923 data 1 4351000;
15924 data 2 4352071;
15925
15926 page -all;
15927
15928 ^L
15929
15930 /* sztr1
15931 * Use two maximum length strings 4352 chrs or 39168 bits.
15932 * The zero indicator will be on since a bool code of "zer"
15933 * is used. Take maximum number of page faults. */
15934
15935 inst sztr -nt "Both strings are the same length"
15936 -bo zer
15937 -ir zr
15938 -mf1 idb ar reg rl 39168
15939 -mf2 idb ar reg rl 39168
15940 -io 1;
15941
15942 data 1 -do -10 4352"5";
15943 data 2 -do -30 4352"7";
15944
15945 page -all;
15946
15947
15948
15949 /* sztr2
15950 * Both the truncation and the zero indicators will be turned
15951 * on. The 1st string will begin on the last bit of a page and
15952 * the 2nd string will end on the 1st bit of a page. */
15953
15954 inst sztr -nt "Both strings cross page bounds"
15955 -bo zer
15956 -ir tn zr
15957 -mf1 ar
15958 -mf2 ar;
15959
15960 desc 1 -bp 8 -ns 23;
15961 desc 2 -bp 1 -ns 18;
15962
15963 data 1 -do -1 074 321 64;
15964 data 2 -do -4 023 776 4;
15965
15966 page -all;
15967
15968
15969
15970 /* sztr3
15971 * No indicators are turned on. The zero fill bit is used. Bit strings
15972 * begin in the middle of a byte */
15973
15974 inst sztr -nt "Both strings cross page bounds"
15975 -bo and
15976 -mf1 ida ar
15977 -mf2 idb ar;
15978
15979 desc 1 -bp 4 -ns 70;
15980 desc 2 -bp 5 -ns 80;
15981
15982 data 1 -do -2 "3274" "1958" 0;
15983 data 2 -do -4 "4875" "7329" 326 0;
15984
15985 page -all;
15986
15987
15988
15989 /* sztr4
15990 * The zero indicator will be turned on. Both strings
15991 are of the same length and begin and end on word boundaries. */
15992
15993 inst sztr -nt "only rl modification is used"
15994 -bo and
15995 -ir zr
15996 -mf1 rl 144
15997 -mf2 rl 144
15998 -io 2;
15999
16000 data 1 4123 12075;
16001 data 2 4654 12402;
16002
16003 page -all;
16004
16005
16006
16007 /* sztr5
16008 * Test the axr bool code. Set the zero and truncation
16009 * indicators. Bit strings begin in the middle of a byte
16010 * straddling a page boundary. */
16011
16012 inst sztr -nt "1st string is longer than 2nd"
16013 -bo axr
16014 -ir tn
16015 -mf1 ar reg rl 40
16016 -mf2 ar idr rl 31;
16017
16018 desc 1 -bp 5;
16019 desc 2 -bp 5;
16020
16021 data 1 -do -1 074 321 652 403 777;
16022 data 2 -do -3 777 777 676 603;
16023
16024 page -all;
16025
16026
16027
16028 /* sztr6
16029 * Test the axr bool code. No indicators will be set */
16030
16031 inst sztr -nt "Both strings are the same length"
16032
16033 -bo axr
16034 -mf1 rl 7866
16035 -mf2 rl 7866;
16036
16037 data 1 874"321";
16038 data 2 874 "604";
16039
16040 page -all;
16041
16042
16043
16044 /* sztr7
16045 * Test the mov bool code. Use a maximum length string and the
16046 * zero fill bit. Take the maximum number of page faults. */
16047
16048 inst sztr -nt "2nd string is longer than 1st"
16049 -bo mov
16050 -mf1 ida ar rl 36000
16051 -mf2 idb ar reg rl 39168
16052 -io 1;
16053
16054 data 1 -do -40 1000"9874";
16055 data 2 -do -20 1088 "0000";
16056
16057 page -all;
16058
16059
16060
16061 /* sztr8
16062 * Test the move bool code. Set the zero indicator.
16063 * The first string is all zeroes. */
16064
16065 inst sztr -nt "2nd string is longer than 1st"
16066 -bo mov
16067 -ir zr
16068 -mf1 ar id
16069 -mf2 ar
16070 -io 2;
16071
16072 desc 1 -bp 7 -ns 99;
16073 desc 2 -bp 1 -ns 100;
16074
16075 data 1 -do 20 12000;
16076 data 2 -do 3 "abcde123456" 4;
16077
16078 page -all;
16079
16080
16081
16082 /* sztr9
16083 * Test xra bool code. Set zero and truncation indicators.
16084 * Use two short bit strings which cross page boundaries. */
16085
16086 inst sztr -nt "1st string is longer than 2nd"
16087 -bo xra
16088 -ir tn zr
16089 -mf1 ar idr
16090 -mf2 ar idb;
16091
16092 desc 1 -ns 3 -bp 7;
16093 desc 2 -ns 2 -bp 8;
16094
16095 data 1 -do -1 777 4;
16096 data 2 -do -1 235 0;
16097
16098 page -all;
16099
16100
16101
16102 /* sztr10
16103 * Test xra bool code. Use the zero fill bit. No indicators are set */
16104
16105 inst sztr -nt "2nd string is longer than 1st"
16106 -bo xra
16107 -mf1 idr reg
16108 -mf2 idr
16109 -io 2;
16110
16111 desc 1 -ns 400;
16112 desc 2 -ns 500;
16113
16114 data 1 44"9" 72;
16115 data 2 55"8" 36;
16116
16117 page -all;
16118
16119
16120
16121 /* sztr11
16122 * Test ra2 bool code. Set the zero indicator. This means
16123 * that the 2nd bit string must be all zeroes. */
16124
16125 inst sztr -nt "2nd string is longer than 1st"
16126 -bo ra2
16127 -mf1 ar rl 36
16128 -mf2 reg
16129 -ir zr
16130 -io 1;
16131
16132 desc 1 -bp 4;
16133 desc 2 -ns 36;
16134
16135 data 1 -do -1 "abcd" 70;
16136 data 2 4000;
16137
16138 page -all;
16139
16140
16141
16142 /* sztr12
16143 * Test ra2 bool code. No indicators are set. */
16144
16145 inst sztr -nt "Both strings are the same length"
16146 -bo ra2
16147 -mf1 reg
16148 -mf2 ar rl 36
16149 -io 2;
16150
16151 desc 1 -ns 36;
16152 desc 2 -bp 4;
16153
16154 data 1 4000;
16155 data 2 -do -1 "abcd" 70;
16156
16157 page -all;
16158
16159
16160
16161 /* sztr13
16162 * Test xor bool code. Set the zero indicator. Use zero fill. */
16163
16164 inst sztr -nt "2nd string is longer than 1st"
16165 -bo xor
16166 -mf1 id reg
16167 -mf2 ar;
16168
16169 desc 1 -ns 3600;
16170 desc 2 -ns 3672 -bp 7;
16171
16172 data 1 -do -8 1003526;
16173 data 2 -do -63 000 1007254 7000;
16174
16175 page -all;
16176
16177
16178
16179 /* sztr14
16180 * Test xor bool code. use strings of identical length.
16181 * No indicators are set. */
16182
16183 inst sztr -nt "Both strings are the same length"
16184 -bo xor;
16185
16186 desc 1 -ns 900;
16187 desc 2 -ns 900;
16188
16189 data 1 -do -12 10 "abcdefghij";
16190 data 2 -do -4 10 "1234567890";
16191
16192 page -all;
16193
16194
16195
16196 /* sztr15
16197 * Test the or bool code. Set zero and truncation indicators.
16198 * This means that both bit strings must be all zeroes. The
16199 * first bit string must be longer than the second */
16200
16201 inst sztr -nt "1st string is longer than 2nd"
16202 -bo or
16203 -ir zr tn
16204 -mf1 rl 30 idb ar
16205 -mf2 rl 20 ar ida;
16206
16207 data 1 000 000 000 0;
16208 data 2 000 000 0;
16209
16210 page -all;
16211
16212
16213
16214 /* sztr16
16215 * Test the or bool code. No indicators are set.
16216 * The one fill bit is used. */
16217
16218 inst sztr -nt "2nd string is longer than 1st"
16219 -bo or
16220 -fb
16221 -mf1 rl 3000 ar id
16222 -mf2 rl 3900 ar idr
16223 -io 1;
16224
16225 data 1 10007;
16226 data 2 325"x" 3253 ;
16227
16228 page -all;
16229
16230
16231
16232 /* sztr17
16233 * Test the nor bool code. No indicators are set. */
16234
16235 inst sztr -nt "2nd string is longer than 1st"
16236 -bo nor
16237 -mf1 ida ar rl 14
16238 -mf2 id ar rl 28
16239 -io 2;
16240
16241 data 1 342 22;
16242 data 2 234 760 621 0;
16243
16244 page -all;
16245
16246
16247
16248 /* sztr18
16249 * Test the nor bool code. Set the zero indicator.
16250 * Use the one fill bit */
16251
16252 inst sztr -nt "2nd string is longer than 1st"
16253 -ir zr
16254 -bo nor
16255 -fb
16256 -mf1 ar
16257 -mf2 rl 19;
16258
16259 desc 1 -ns 8 -bp 1;
16260
16261 data 1 777;
16262 data 2 326 417 0;
16263
16264 page -all;
16265
16266
16267
16268 /* sztr19
16269 * Test the nox bool code. Set the zero indicator.
16270 * For the indicator to be set no two bits may matc. */
16271
16272 inst sztr -nt "Both strings are the same length"
16273 -ir zr
16274 -bo nox
16275 -mf1 id
16276 -mf2 ida;
16277
16278 desc 1 -ns 54;
16279 desc 2 -ns 54;
16280
16281 data 1 124 235 647 211 000 777;
16282 data 2 -do -4 653 542 130 566 777 000;
16283
16284 page -all;
16285
16286
16287
16288 /* sztr20
16289 * Test the Nox bool code. Only the truncation indicator is set. */
16290
16291 inst sztr -nt "1st string is longer than 2nd"
16292 -bo nox -ir tn
16293 -mf1 ar rl 36000
16294 -mf2 ar id
16295 -io 1;
16296
16297
16298 desc 1 -bp 7;
16299 desc 2 -bp 3 -ns 3600;
16300
16301 data 1 003 1000"axyr";
16302 data 2 024 100"rjqf";
16303
16304 page -all;
16305
16306
16307
16308 /* sztr21
16309 * Test the iv2 bool code. Both the zero and the truncation
16310 * indicators will be set. For the zero indicator to be set
16311 * the 2nd bit string must be all ones. */
16312
16313 inst sztr -nt "1st string is longer than 2nd"
16314 -bo iv2 -ir zr tn
16315 -mf1 rl 64 ar reg
16316 -mf2 ar id
16317 -io 1;
16318
16319 desc 1 -bp 6;
16320 desc 2 -ns 32 -bp 3;
16321
16322 data 1 -do -1 "abpstuv" 4;
16323 data 2 077 777 777 776;
16324
16325 page -all;
16326
16327
16328
16329 /* sztr22
16330 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */
16331
16332 inst sztr -nt "2nd string is longer than 1st"
16333 -bo iv2
16334 -mf1 ar id
16335 -mf2 rl 64 ar reg
16336 -io 1;
16337
16338 desc 1 -ns 32 -bp 3;
16339 desc 2 -bp 6;
16340
16341 data 1 077 777 777 776;
16342 data 2 -do -1 "abpstuv" 4;
16343
16344 page -all;
16345
16346
16347
16348 /* sztr23
16349 * Test the xrx bool code. The zero indicator will be set.
16350 * This can occur only when every bit in the first string is zero
16351 * and every bit in the 2nd string is one. */
16352
16353 inst sztr -nt "Both strings are the same length"
16354 -bo xrx -ir zr
16355 -mf1 reg
16356 -mf2 id;
16357
16358 desc 1 -ns 108;
16359 desc 2 -ns 108;
16360
16361 data 1 -do -4 12000;
16362 data 2 -do 4 12777;
16363
16364 page -all;
16365
16366
16367
16368 /* sztr24
16369 * Test the xrx bool code. No indicators are set. The zero fill bit is used */
16370
16371 inst sztr -nt "2nd string is longer than 1st"
16372 -bo xrx
16373 -mf1 rl 720 idr ar
16374 -mf2 id
16375 -io 2;
16376
16377 desc 2 -ns 1080 -bp 4;
16378
16379 data 1 -do -3 20"ijkl";
16380 data 2 -do 8 054 30"9832";
16381
16382 page -all;
16383
16384
16385
16386 /* sztr25
16387 * Test the inv bool code. Set the zero indicator.
16388 * To set the indicator the first bit string must be
16389 * all ones. */
16390
16391 inst sztr -nt "Both string are the same length"
16392 -ir zr
16393 -bo inv
16394 -mf1 idb ar reg
16395 -mf2 idb ar;
16396
16397 desc 1 -bp 5 -ns 13;
16398 desc 2 -bp 2 -ns 13;
16399
16400 data 1 777 777;
16401 data 2 265 43;
16402
16403 page -all;
16404
16405
16406
16407 /* sztr26
16408 * Test the inv bool code. No indicators are set */
16409
16410 inst sztr -nt "Both strings are the same length"
16411 -bo inv
16412 -mf1 idb ar
16413 -mf2 idb ar reg;
16414
16415 desc 1 -bp 2 -ns 13;
16416 desc 2 -bp 5 -ns 13;
16417
16418 data 1 265 43;
16419 data 2 777 777;
16420
16421 page -all;
16422
16423
16424
16425 /* sztr27
16426 * Test the xxr bool code. This test sets the zero indicator.
16427 * The zero indicator is set only when the 1st string is all ones and
16428 * the second string is all zeroes. The one fill bit is used. */
16429
16430 inst sztr -nt "2nd string is longer than 1st"
16431 -ir zr
16432 -fb
16433 -bo xxr
16434 -io2;
16435
16436 desc 1 -ns 1;
16437 desc 2 -ns 2;
16438
16439 data 1 4;
16440 data 2 0;
16441
16442 page -all;
16443
16444
16445
16446 /* sztr28
16447 * Test the xxr bool code. No indicators are set */
16448
16449 inst sztr -nt "2nd string is longer than 1st"
16450 -bo xxr
16451 -mf1 ar
16452 -mf2 reg rl 59;
16453
16454 desc 1 -ns 43 -bp 5;
16455
16456 data 1 -do -2 "tsrkv" 3;
16457 data 2 -do -4 "mnopqrs";
16458
16459 page -all;
16460
16461
16462
16463 /* sztr29
16464 * Test the nan bool code. The zero and truncation indicators
16465 * are set. For the zero indicator to be set both bit strings
16466 * must be all ones. */
16467
16468 inst sztr -nt "1st string is longer than 2nd"
16469 -bo nan
16470 -ir zr tn
16471 -mf1 rl 39168 ar
16472 -mf2 rl 33000;
16473
16474 data 1 4352777;
16475 data 2 3667777;
16476
16477 page -all;
16478
16479
16480
16481 /* sztr30
16482 * Test the nan bool code. No indicators are set.
16483 * The one fill bit is set. */
16484
16485 inst sztr -nt "2nd string is longer than 1st"
16486 -fb
16487 -bo nan
16488 -mf1 ar
16489 -mf2 ar rl 436;
16490
16491 desc 1 -bp 3 -ns 274;
16492
16493 data 1 7"tack" "rgm";
16494 data 2 12"mike" 023;
16495
16496 page -all;
16497
16498
16499
16500 /* sztr31
16501 * Test the "set" bool code. The zero indicator cannot be set
16502 * when the "set" code is used. This test sets the truncation
16503 indicator. */
16504
16505 inst sztr -nt "1st string is longer than 2nd"
16506 -ir tn
16507 -bo set;
16508
16509 desc 1 -ns 50;
16510 desc 2 -ns 49;
16511
16512 data 1 023 571 725 152 111 243;
16513 data 2 023 571 777 043 121 000;
16514
16515 page -all;
16516
16517
16518
16519 /* sztr32
16520 * Test the "set" bool code. No indicators are set.
16521 * The maximum number of page faults is taken */
16522
16523 inst sztr -nt "2nd string is longer than 1st"
16524 -bo set
16525 -mf1 idb ar reg rl 39159
16526 -mf2 idb ar reg rl 39168
16527 -io 1
16528 -fb;
16529
16530 data 1 4351000;
16531 data 2 4352071;
16532
16533 page -all;
16534
16535 ^L
16536
16537 /* cmpb1
16538 * Use two maximum length strings 4352 chrs or 39168 bits
16539 * with the first string less than the 2nd. Take the maximum
16540 * number of page faults. */
16541
16542 inst cmpb
16543 -nt "both strings cross page bounds"
16544 -mf1 idb ar reg rl 39168
16545 -mf2 idb ar reg rl 39168
16546 -io 1;
16547
16548 data 1 -do -10 4352"5";
16549 data 2 -do -30 4352"7";
16550
16551 page -all;
16552
16553
16554
16555
16556 /* cmpb2
16557 * The first string begins on the last bit of a page and the
16558 * 2nd string ends on the first bit of a page. The first string is
16559 * greater than the 2nd. */
16560
16561 inst cmpb -nt "both strings cross page bounds"
16562 -ir cr
16563 -mf1 ar
16564 -mf2 ar;
16565
16566 desc 1 -bp 8 -ns 23;
16567 desc 2 -bp 1 -ns 18;
16568
16569 data 1 -do -1 074 321 64;
16570 data 2 -do -4 023 776 4;
16571
16572 page -all;
16573
16574
16575
16576
16577 /* cmpb3
16578 * Both strings begin in the middle of a byte and span page boundaries.
16579 * The first string is greater than the 2nd. */
16580
16581 inst cmpb -nt "both strings cross page bounds"
16582 -ir cr
16583 -mf1 ida ar
16584 -mf2 idb ar;
16585
16586 desc 1 -bp 4 -ns 70;
16587 desc 2 -bp 5 -ns 80;
16588
16589 data 1 -do -2 "3274" "1958" 0;
16590 data 2 -do -4 "4875" "7329" 326 0;
16591
16592 page -all;
16593
16594
16595
16596
16597 /* cmpb4
16598 * Both strings are 4 words in length and neither
16599 string spans a page boundary. The first string is
16600 * less than the 2nd. */
16601
16602 inst cmpb -nt "both strings are the same length"
16603 -mf1 rl 144
16604 -mf2 rl 144
16605 -io 2;
16606
16607 data 1 4123 12075;
16608 data 2 4654 12402;
16609
16610 page -all;
16611
16612
16613
16614
16615 /* cmpb5
16616 * Both strings begin in the middle of a byte and span a
16617 * page boundary. The first string is less than the 2nd. */
16618
16619 inst cmpb -nt "2nd string has indirect desc"
16620 -mf1 ar reg rl 40
16621 -mf2 ar idr rl 31;
16622
16623 desc 1 -bp 5;
16624 desc 2 -bp 5;
16625
16626 data 1 -do -1 074 321 652 403 777;
16627 data 2 -do -3 777 777 676 603;
16628
16629 page -all;
16630
16631
16632
16633
16634 /* cmpb6
16635 * Both strings are 874 bytes in length and the first string
16636 * is less than the 2nd. Only 3 page faults occur. */
16637
16638 inst cmpb -nt "both strings are the same length"
16639
16640 -mf1 rl 7866
16641 -mf2 rl 7866;
16642
16643 data 1 874"321";
16644 data 2 874 "604";
16645
16646 page -all;
16647
16648
16649
16650
16651 /* cmpb7
16652 * The first string is l000 words in length and the
16653 * 2nd string is 1088 words of all zeroes. The first
16654 * string is greater than the 2nd. */
16655
16656 inst cmpb -nt "both strings cross page bounds"
16657 -ir cr
16658 -mf1 ida ar rl 36000
16659 -mf2 idb ar reg rl 39168
16660 -io 1;
16661
16662 data 1 -do -40 1000"9874";
16663 data 2 -do -20 1088 "0000";
16664
16665 page -all;
16666
16667
16668
16669
16670 /* cmpb8
16671 * Both strings begin in the middle of a byte and
16672 * neither string spans a page boundary. The first string is less
16673 * than the 2nd. */
16674
16675 inst cmpb -nt "2nd string is longer than 1st"
16676 -mf1 ar id
16677 -mf2 ar
16678 -io 2;
16679
16680 desc 1 -bp 7 -ns 99;
16681 desc 2 -bp 1 -ns 100;
16682
16683 data 1 -do 20 12000;
16684 data 2 -do 3 "abcde123456" 4;
16685
16686 page -all;
16687
16688
16689
16690
16691 /* cmpb9
16692 * Both strings begin in the middle of a byte and span pages.
16693 * The first string is all ones and is greater than the 2nd. */
16694
16695 inst cmpb -nt "1st string is longer than 2nd"
16696 -ir cr
16697 -mf1 ar idr
16698 -mf2 ar idb;
16699
16700 desc 1 -ns 3 -bp 7;
16701 desc 2 -ns 2 -bp 8;
16702
16703 data 1 -do -1 777 4;
16704 data 2 -do -1 235 0;
16705
16706 page -all;
16707
16708
16709
16710
16711 /* cmpb10
16712 * The first string is greater than the 2nd although it is
16713 shorter in length. */
16714
16715 inst cmpb -nt "2nd string is longer than 1st"
16716 -ir cr
16717 -mf1 idr reg
16718 -mf2 idr
16719 -io 2;
16720
16721 desc 1 -ns 400;
16722 desc 2 -ns 500;
16723
16724 data 1 44"9" 72;
16725 data 2 55"8" 36;
16726
16727 page -all;
16728
16729
16730
16731
16732 /* cmpb11
16733 * Both strings are 1 word in length and only the 1st
16734 * string spans a page boundary. The first string is greater
16735 * than the 2nd. */
16736
16737 inst cmpb -nt "2nd string is longer than 1st"
16738 -mf1 ar rl 36
16739 -mf2 reg
16740 -ir cr
16741 -io 1;
16742
16743 desc 1 -bp 4;
16744 desc 2 -ns 36;
16745
16746 data 1 -do -1 "abcd" 70;
16747 data 2 4000;
16748
16749 page -all;
16750
16751
16752
16753
16754 /* cmpb12
16755 * Both strings are 1 word in length and only
16756 * the 2nd string spans a page boundary. The 2nd string
16757 * is greater than the first. */
16758
16759 inst cmpb -nt "both strings are the same length"
16760 -mf1 reg
16761 -mf2 ar rl 36
16762 -io 2;
16763
16764 desc 1 -ns 36;
16765 desc 2 -bp 4;
16766
16767 data 1 4000;
16768 data 2 -do -1 "abcd" 70;
16769
16770 page -all;
16771
16772
16773
16774
16775 /* cmpb13
16776 * The first string is 100 words in length and the 2nd
16777 string is 102 words long. Both strings span a page and the
16778 first string is greater than the 2nd. */
16779
16780
16781 inst cmpb -nt "2nd string is longer than 1st"
16782 -ir cr
16783 -mf1 id reg
16784 -mf2 ar;
16785
16786 desc 1 -ns 3600;
16787 desc 2 -ns 3672 -bp 7;
16788
16789 data 1 -do -8 1003526;
16790 data 2 -do -63 000 1007254 7000;
16791
16792 page -all;
16793
16794
16795
16796
16797 /* cmpb14
16798 * Both strings are 100 bytes long and span a page. The
16799 first string is larger than the 2nd. */
16800
16801 inst cmpb -nt "both strings are the same length"
16802 -ir cr;
16803
16804 desc 1 -ns 900;
16805 desc 2 -ns 900;
16806
16807 data 1 -do -12 10 "abcdefghij";
16808 data 2 -do -4 10 "1234567890";
16809
16810 page -all;
16811
16812
16813
16814
16815 /* cmpb15
16816 * Both strings are all zeroes and thus they are equal. */
16817
16818 inst cmpb -nt "1st string is longer than 2nd"
16819 -ir cr zr
16820 -mf1 rl 30 idb ar
16821 -mf2 rl 20 ar ida;
16822
16823 data 1 000 000 000 0;
16824 data 2 000 000 0;
16825
16826 page -all;
16827
16828
16829
16830
16831
16832 /* cmpb16
16833 * The first string is shorter than the 2nd and the
16834 one fill bit is used. The first string is all ones and
16835 is greater than the 2nd. */
16836
16837 inst cmpb -nt "2nds string is longer than 1st"
16838 -ir cr
16839 -fb
16840 -mf1 rl 3000 ar id
16841 -mf2 rl 3900 ar idr
16842 -io 1;
16843
16844 data 1 10007;
16845 data 2 325"x" 3253 ;
16846
16847 page -all;
16848
16849
16850
16851
16852
16853 /* cmpb17
16854 * The first string is greater than the 2nd although it is
16855 shorter in length. */
16856
16857 inst cmpb -nt "2nd string is longer than 1st"
16858 -ir cr
16859 -mf1 ida ar rl 14
16860 -mf2 id ar rl 28
16861 -io 2;
16862
16863 data 1 342 22;
16864 data 2 234 760 621 0;
16865
16866 page -all;
16867
16868
16869
16870
16871
16872 /* cmpb18
16873 * The fill bit is used to make the first string all ones.
16874 * The first string is greater than the second. */
16875
16876 inst cmpb -nt "2nd string is longer than 1st"
16877 -ir cr
16878 -fb
16879 -mf1 ar
16880 -mf2 rl 19;
16881
16882 desc 1 -ns 8 -bp 1;
16883
16884 data 1 777;
16885 data 2 326 417 0;
16886
16887 page -all;
16888
16889
16890
16891
16892
16893 /* cmpb19
16894 * Both strings are 6 bytes in length and the 2nd string
16895 * spans a page boundary. The first string is less than the 2nd. */
16896
16897 inst cmpb -nt "both strings are the same length"
16898 -mf1 id
16899 -mf2 ida;
16900
16901 desc 1 -ns 54;
16902 desc 2 -ns 54;
16903
16904 data 1 124 235 647 211 000 777;
16905 data 2 -do -4 653 542 130 566 777 000;
16906
16907 page -all;
16908
16909
16910
16911
16912
16913 /* cmpb20
16914 * Both strings begin in the middle of a byte. The first
16915 * string is 1000 words long while the 2nd string is 100
16916 * words long. The first string is greater than the 2nd. */
16917
16918 inst cmpb -nt "1st string is longer than 2nd"
16919 -ir cr
16920 -mf1 ar rl 36000
16921 -mf2 ar id
16922 -io 1;
16923
16924
16925 desc 1 -bp 7;
16926 desc 2 -bp 3 -ns 3600;
16927
16928 data 1 003 1000"axyr";
16929 data 2 024 100"rjqf";
16930
16931 page -all;
16932
16933
16934
16935
16936
16937 /* cmpb21
16938 * Both strings begin in the middle of a byte and only the
16939 first string crosses a page boundary. The 2nd string is all
16940 ones and is greater than the first. */
16941
16942 inst cmpb -nt "1st string is longer than 2nd"
16943 -mf1 rl 64 ar reg
16944 -mf2 ar id
16945 -io 1;
16946
16947 desc 1 -bp 6;
16948 desc 2 -ns 32 -bp 3;
16949
16950 data 1 -do -1 "abpstuv" 4;
16951 data 2 077 777 777 776;
16952
16953 page -all;
16954
16955
16956
16957
16958
16959 /* cmpb22
16960 * Both strings begin in the middle of a byte and only the 2nd
16961 string crosses a page boundary. The first string is all ones and
16962 is greater than the 2nd string. */
16963
16964 inst cmpb -nt "2nd string is longer than 1st"
16965 -ir cr
16966 -mf1 ar id
16967 -mf2 rl 64 ar reg
16968 -io 1;
16969
16970 desc 1 -ns 32 -bp 3;
16971 desc 2 -bp 6;
16972
16973 data 1 077 777 777 776;
16974 data 2 -do -1 "abpstuv" 4;
16975
16976 page -all;
16977
16978
16979
16980
16981
16982 /* cmpb23
16983 * Both strings are three words in length and the 1st string
16984 crosses a page boundary. The 2nd string is greater than the
16985 first. */
16986
16987 inst cmpb -nt "both strings are the same length"
16988 -mf1 reg
16989 -mf2 id;
16990
16991 desc 1 -ns 108;
16992 desc 2 -ns 108;
16993
16994 data 1 -do -4 12000;
16995 data 2 -do 4 12777;
16996
16997 page -all;
16998
16999
17000
17001
17002
17003 /* cmpb24
17004 * The 1st string is 20 words in length and crosses a page
17005 boundary. The 2nd string is 30 words in length and is greater
17006 than the 1st. */
17007
17008 inst cmpb -nt "2nd string is longer than 1st"
17009 -mf1 rl 720 idr ar
17010 -mf2 id
17011 -io 2;
17012
17013 desc 2 -ns 1080 -bp 4;
17014
17015 data 1 -do -3 20"ijkl";
17016 data 2 -do 8 054 30"9832";
17017
17018 page -all;
17019
17020
17021
17022
17023
17024 /* cmpb25
17025 * Both strings begin in the middle of a byte. The first string is
17026 all ones and is greater than the 2nd. */
17027
17028 inst cmpb -nt "both strings are the same length"
17029 -ir cr
17030 -mf1 idb ar reg
17031 -mf2 idb ar;
17032
17033 desc 1 -bp 5 -ns 13;
17034 desc 2 -bp 2 -ns 13;
17035
17036 data 1 777 777;
17037 data 2 265 43;
17038
17039 page -all;
17040
17041
17042
17043
17044
17045 /* cmpb26
17046 * Both strings begin in the middle of a byte. The 2nd string
17047 is all ones and is greater than the first. */
17048
17049 inst cmpb -nt "both strings are the same length"
17050 -mf1 idb ar
17051 -mf2 idb ar reg;
17052
17053 desc 1 -bp 2 -ns 13;
17054 desc 2 -bp 5 -ns 13;
17055
17056 data 1 265 43;
17057 data 2 777 777;
17058
17059 page -all;
17060
17061
17062
17063
17064
17065 /* cmpb27
17066 * The first string is one bit in length and the 2nd string
17067 is two bits long. The one fill bit is used and the first string
17068 is greater. */
17069
17070 inst cmpb -nt "2nd string is longer than 1st"
17071 -ir cr
17072 -fb
17073 -io2;
17074
17075 desc 1 -ns 1;
17076 desc 2 -ns 2;
17077
17078 data 1 4;
17079 data 2 0;
17080
17081 page -all;
17082
17083
17084
17085
17086
17087 /* cmpb28
17088 * The 1st string begins in the middle of a byte and
17089 both strings cross page boundaries. The first string is greater
17090 than the 2nd. */
17091
17092 inst cmpb -nt "2nd string is longer than 1st"
17093 -ir cr
17094 -mf1 ar
17095 -mf2 reg rl 59;
17096
17097 desc 1 -ns 43 -bp 5;
17098
17099 data 1 -do -2 "tsrkv" 3;
17100 data 2 -do -4 "mnopqrs";
17101
17102 page -all;
17103
17104
17105
17106
17107
17108 /* cmpb29
17109 * Both strings consist of all ones but the first string
17110 is longer and the zero fill bit is used. Therefore the
17111 first string is greater than the 2nd. */
17112
17113 inst cmpb -nt "1st string is longer than 2nd"
17114 -ir cr
17115 -mf1 rl 39168 ar
17116 -mf2 rl 33000;
17117
17118 data 1 4352777;
17119 data 2 3667777;
17120
17121 page -all;
17122
17123
17124
17125
17126
17127 /* cmpb30
17128 * The first string starts in the middle of a byte and neither
17129 string crosses a page boundary. The first string is greater than the
17130 second. */
17131
17132 inst cmpb -nt "2nd string is longer than 1st"
17133 -ir cr
17134 -fb
17135 -mf1 ar
17136 -mf2 ar rl 436;
17137
17138 desc 1 -bp 3 -ns 274;
17139
17140 data 1 7"tack" "rgm";
17141 data 2 12"mike" 023;
17142
17143 page -all;
17144
17145
17146
17147
17148
17149 /* cmpb31
17150 * Neither string crosses a page boundary and the first
17151 string is less than the 2nd. */
17152
17153 inst cmpb -nt "1st string is longer than 2nd";
17154
17155 desc 1 -ns 50;
17156 desc 2 -ns 49;
17157
17158 data 1 023 571 725 152 111 243;
17159 data 2 023 571 777 043 121 000;
17160
17161 page -all;
17162
17163
17164
17165
17166
17167 /* cmpb32
17168 * The first string consists of all zeroes and neither
17169 string crosses a page boundary. The second string is both
17170 longer and greater. */
17171
17172 inst cmpb -nt "2nd string is longer than 1st"
17173 -mf1 idb ar reg rl 39159
17174 -mf2 idb ar reg rl 39168
17175 -io 1
17176 -fb;
17177
17178 data 1 4351000;
17179 data 2 4352071;
17180
17181 page -all;
17182
17183 ^L
17184
17185
17186 /* dtb1
17187 * Indirect descriptors are used for both operands.
17188 * Address register modification is used for both operands.
17189 * The decimal operand is split across a page boundary.
17190 */
17191
17192 inst dtb
17193 -nt "9-bit unsigned decimal -> binary"
17194 -mf2 idb ar reg rl 1
17195 -mf1 idb ar reg rl 2
17196 -io 1;
17197
17198 desc 1 -sd n;
17199
17200 data 2 034;
17201 data 1 -do -1 "28";
17202
17203 page -all;
17204
17205
17206
17207 /* dtb2
17208 * No indirect descriptors are used.
17209 * Address register modification is used for both operands.
17210 * Both operands cross a page boundary.
17211 */
17212
17213 inst dtb
17214 -nt "9-bit leading sign -> binary"
17215 -mf2 ar
17216 -mf1 ar;
17217
17218 desc 2 -nn 2;
17219 desc 1 -nn 6 -sd l;
17220
17221 data 2 -do -1 127 531;
17222 data 1 -do -3 "+44889";
17223
17224 page -all;
17225
17226
17227
17228 /* dtb3
17229 * Indirect descriptors are used by both operands.
17230 * Address register modification is used for both operands.
17231 * Both operands cross a page boundary.
17232 */
17233
17234 inst dtb
17235 -nt "9-bit trailing sign -> binary"
17236 -mf2 ida ar
17237 -mf1 idb ar;
17238
17239 desc 2 -nn 3;
17240 desc 1 -nn 9 -sd t;
17241
17242 data 2 -do -2 211 664 372;
17243 data 1 -do -4 "36137210+";
17244
17245 page -all;
17246
17247
17248
17249 /* dtb4
17250 * No indirect descriptors are used.
17251 * No address register modification is used.
17252 * The decimal operand is split across a page boundary.
17253 * Register length modification is used by both operands.
17254 */
17255
17256 inst dtb
17257 -nt "9-bit unsigned decimal -> binary"
17258 -mf2 rl 4
17259 -mf1 rl 10;
17260
17261 desc 1 -sd n;
17262
17263 data 2 111 222 333 444;
17264 data 1 -do -8 "9836279588";
17265
17266 page -all;
17267
17268
17269
17270 /* dtb5
17271 * Address register modification is used by both operands.
17272 * An indirect descriptor is used by the decimal operand.
17273 * Simple register modification is used by the binary operand.
17274 * Register length modification is used by both operands.
17275 */
17276
17277 inst dtb
17278 -nt "9-bit leading sign -> bim"nary"
17279 -mf2 ar reg rl 5
17280 -mf1 ar idr rl 15;
17281
17282 desc 1 -sd l;
17283
17284 data 2 -do -4 333 444 333 222 111;
17285 data 1 -do -12 "+15088814466121";
17286
17287 page -all;
17288
17289
17290
17291 /* dtb6
17292 * Address register modification is used by both operands.
17293 * An indirect descriptor is used by the binary operand.
17294 * Neither operand crosses a page boundary.
17295 */
17296
17297 inst dtb
17298 -nt "9-bit trailing sign -> binary"
17299 -mf2 ar id
17300 -mf1 ar;
17301
17302 desc 2 -nn 6;
17303 desc 1 -nn 17 -sd t;
17304
17305 data 2 123 456 765 432 123 456;
17306 data 1 "2941123482396462+";
17307
17308 page -all;
17309
17310
17311
17312 /* dtb7
17313 * Simple register modification is used by both operands.
17314 * An indirect descriptor is used by the decimal operand.
17315 * Both operands begin in the middle of a page.
17316 * Neither operand spans a page boundary.
17317 */
17318
17319 inst dtb
17320 -nt "9-bit unsigned decimal -> binary"
17321 -mf2 reg
17322 -mf1 reg id;
17323
17324 desc 2 -nn 7;
17325 desc 1 -nn 19 -sd n;
17326
17327 data 2 -do 80 321 456 372 415 210 000 000;
17328 data 1 -do 60 "3775652184861966336";
17329
17330 page -all;
17331
17332
17333
17334 /* dtb8
17335 * Both operands use only simple register modification.
17336 * Neither operand spans a page boundary.
17337 * Both operands begin on the 1st byte of a page.
17338 */
17339
17340 inst dtb
17341 -nt "9-bit leading sign -> binary"
17342 -mf2 reg
17343 -mf1 reg;
17344
17345 desc 2 -nn 8;
17346 desc 1 -nn 22 -sd l;
17347
17348 data 2 124 570 642 000 000 375 125 743;
17349 data 1 "+781551372002965892067";
17350
17351 page -all;
17352
17353
17354
17355 /* dtb9
17356 * An indirect descriptor is used by the binary operand.
17357 * Neither operand spans a page boundary.
17358 * Both operands begin on the 1st byte of a page.
17359 * The eis instruction itself spans a page boundary.
17360 * No modifications are made to the decimal operand.
17361 */
17362
17363 inst dtb
17364 -nt "4-bit unsigned decimal -> binary"
17365 -mf2 id
17366 -io 1;
17367
17368 desc 2 -nn 1;
17369 desc 1 -tn 4 -nn 2 -sd n;
17370
17371 data 2 034;
17372 data 1 050 000;
17373
17374 page -all;
17375
17376
17377
17378 /* dtb10
17379 * Address register modification is used for the binary operand.
17380 * No modifications are made to the decimal operand.
17381 * Both operands span a page boundary.
17382 */
17383
17384 inst dtb
17385 -nt "4-bit leading sign -> binary"
17386 -mf2 ar
17387 -io 1;
17388
17389 desc 2 -nn 2;
17390 desc 1 -tn 4 -nn 6 -sd l;
17391
17392 data 2 -do -1 127 531;
17393 data 1 -do -4 304110211000 000000;
17394
17395 page -all;
17396
17397
17398
17399 /* dtb11
17400 * Address register modification is used for the decimal operand.
17401 * No modifications are made to the binary operand.
17402 * Only the decimal operand spans a page boundary.
17403 * The eis instruction itself spans a page boundary.
17404 */
17405
17406 inst dtb
17407 -nt "4-bit trailing sign -> binary"
17408 -mf1 ar
17409 -io2;
17410
17411 desc 2 -nn 3;
17412 desc 1 -tn 4 -nn 9 -sd t;
17413
17414 data 2 211 664 372;
17415 data 1 -do -8 066023162020 300000000000000;
17416
17417 page -all;
17418
17419
17420
17421 /* dtb12
17422 * Indirect descriptors are used for both operands.
17423 * No address register modification is used.
17424 * Neither operand spans a page boundary.
17425 * Both operands begin on the 1st byte of a page.
17426 * The eis instruction itself spans a page boundary.
17427 */
17428
17429 inst dtb
17430 -nt "4-bit unsigned decimal -> binary"
17431 -mf2 id
17432 -mf1 id
17433 -io 2;
17434
17435 desc 2 -nn 4;
17436 desc 1 -tn 4 -nn 10 -sd n;
17437
17438 data 2 111 222 333 444;
17439 data 1 230066047225 210000000000;
17440
17441 page -all;
17442
17443
17444
17445 /* dtb13
17446 * No modifications are made to the binary operand.
17447 * Address register modification is used for the decimal operand.
17448 * An indirect descriptor is used by the decimal operand.
17449 * Both operands span a page boundary.
17450 */
17451
17452 inst dtb
17453 -nt "4-bit leading sign -> binary"
17454 -mf1 ar id
17455 -io 1;
17456
17457 desc 2 -nn 5;
17458 desc 1 -tn 4 -nn 15 -sd l;
17459
17460 data 2 -do -4 333 444 333 222 111;
17461 data 1 -do -8 301120210201 104146022020;
17462
17463 page -all;
17464
17465
17466
17467 /* dtb14
17468 * Indirect descriptors are used by both operands.
17469 * Both operands span a page boundary.
17470 */
17471
17472 inst dtb
17473 -nt "4-bit trailing sign -> binary"
17474 -mf2 idr
17475 -mf1 ida;
17476
17477 desc 2 -nn 6;
17478 desc 1 -tn 4 -nn 17 -sd t;
17479
17480 data 2 -do -4 123 456 765 432 123 456;
17481 data 1 -do -16 051101022064 202071144142 300;
17482
17483 page -all;
17484
17485
17486
17487 /* dtb15
17488 * Indirect descriptors are used for both operands.
17489 * Address register modification is used for both operands.
17490 * Both operands span a page boundary.
17491 * The eis instruction itself spans a page boundary.
17492 */
17493
17494 inst dtb
17495 -nt "4-bit unsigned decimal -> binary"
17496 -mf2 id ar
17497 -mf1 id ar
17498 -io1;
17499
17500 desc 2 -nn 7;
17501 desc 1 -tn 4 -nn 19 -sd n;
17502
17503 data 2 -do -6 321 456 372 415 210 000 000;
17504 data 1 -do -1 067165145041 204206031146 063140;
17505
17506 page -all;
17507
17508
17509
17510 /* dtb16
17511 * Indirect descriptors are used by both operands.
17512 * Address register modification is used by both operands.
17513 * Neither operand spans a page boundary.
17514 * Both operands begin in the middle of a page.
17515 */
17516
17517 inst dtb
17518 -nt "4-bit leading sign -> binary"
17519 -mf2 idb ar
17520 -mf1 idb ar;
17521
17522 desc 2 -nn 8;
17523 desc 1 -tn 4 -nn 22 -sd l;
17524
17525 data 2 -do 14 124 570 642 000 000 375 125 743;
17526 data 1 -do 100 307201125023162000051145 211040147000;
17527
17528 page -all;
17529
17530 ^L
17531
17532 /* btd1
17533 * Indirect descriptors are used for both operands.
17534 * Address register modification is used for both operands.
17535 * The decimal operand is split across a page boundary.
17536 */
17537
17538 inst btd
17539 -nt "binary -> 9-bit unsigned decimal"
17540 -mf1 idb ar reg rl 1
17541 -mf2 idb ar reg rl 2
17542 -io 1;
17543
17544 desc 2 -sd n;
17545
17546 data 1 034;
17547 data 2 -do -1 "28";
17548
17549 page -all;
17550
17551
17552
17553 /* btd2
17554 * No indirect descriptors are used.
17555 * Address register modification is used for both operands.
17556 * Both operands cross a page boundary.
17557 */
17558
17559 inst btd
17560 -nt "binary -> 9-bit leading sign"
17561 -mf1 ar
17562 -mf2 ar;
17563
17564 desc 1 -nn 2;
17565 desc 2 -nn 6 -sd l;
17566
17567 data 1 -do -1 127 531;
17568 data 2 -do -3 "+44889";
17569
17570 page -all;
17571
17572
17573
17574 /* btd3
17575 * Indirect descriptors are used by both operands.
17576 * Address register modification is used for both operands.
17577 * Both operands cross a page boundary.
17578 */
17579
17580 inst btd
17581 -nt "binary -> 9-bit trailing sign"
17582 -mf1 ida ar
17583 -mf2 idb ar;
17584
17585 desc 1 -nn 3;
17586 desc 2 -nn 9 -sd t;
17587
17588 data 1 -do -2 211 664 372;
17589 data 2 -do -4 "36137210+";
17590
17591 page -all;
17592
17593
17594
17595 /* btd4
17596 * No indirect descriptors are used.
17597 * No address register modification is used.
17598 * The decimal operand is split across a page boundary.
17599 * Register length modification is used by both operands.
17600 */
17601
17602 inst btd
17603 -nt "binary -> 9-bit unsigned decimal"
17604 -mf1 rl 4
17605 -mf2 rl 10;
17606
17607 desc 2 -sd n;
17608
17609 data 1 111 222 333 444;
17610 data 2 -do -8 "9836279588";
17611
17612 page -all;
17613
17614
17615
17616 /* btd5
17617 * Address register modification is used by both operands.
17618 * An indirect descriptor is used by the decimal operand.
17619 * Simple register modification is used by the binary operand.
17620 * Register length modification is used by both operands.
17621 */
17622
17623 inst btd
17624 -nt "binary -> 9-bit leading sign"
17625 -mf1 ar reg rl 5
17626 -mf2 ar idr rl 15;
17627
17628 desc 2 -sd l;
17629
17630 data 1 -do -4 333 444 333 222 111;
17631 data 2 -do -12 "+15088814466121";
17632
17633 page -all;
17634
17635
17636
17637 /* btd6
17638 * Address register modification is used by both operands.
17639 * An indirect descriptor is used by the binary operand.
17640 * Neither operand crosses a page boundary.
17641 */
17642
17643 inst btd
17644 -nt "binary -> 9-bit trailing sign"
17645 -mf1 ar id
17646 -mf2 ar;
17647
17648 desc 1 -nn 6;
17649 desc 2 -nn 17 -sd t;
17650
17651 data 1 123 456 765 432 123 456;
17652 data 2 "2941123482396462+";
17653
17654 page -all;
17655
17656
17657
17658 /* btd7
17659 * Simple register modification is used by both operands.
17660 * An indirect descriptor is used by the decimal operand.
17661 * Both operands begin in the middle of a page.
17662 * Neither operand spans a page boundary.
17663 */
17664
17665 inst btd
17666 -nt "binary -> 9-bit unsigned decimal"
17667 -mf1 reg
17668 -mf2 reg id;
17669
17670 desc 1 -nn 7;
17671 desc 2 -nn 19 -sd n;
17672
17673 data 1 -do 80 321 456 372 415 210 000 000;
17674 data 2 -do 60 "3775652184861966336";
17675
17676 page -all;
17677
17678
17679
17680 /* btd8
17681 * Both operands use only simple register modification.
17682 * Neither operand spans a page boundary.
17683 * Both operands begin on the 1st byte of a page.
17684 */
17685
17686 inst btd
17687 -nt "binary -> 9-bit leading sign"
17688 -mf1 reg
17689 -mf2 reg;
17690
17691 desc 1 -nn 8;
17692 desc 2 -nn 22 -sd l;
17693
17694 data 1 124 570 642 000 000 375 125 743;
17695 data 2 "+781551372002965892067";
17696
17697 page -all;
17698
17699
17700
17701 /* btd9
17702 * An indirect descriptor is used by the binary operand.
17703 * Neither operand spans a page boundary.
17704 * Both operands begin on the 1st byte of a page.
17705 * The eis instruction itself spans a page boundary.
17706 * No modifications are made to the decimal operand.
17707 */
17708
17709 inst btd
17710 -nt "binary -> 4-bit unsigned decimal"
17711 -mf1 id
17712 -io 1;
17713
17714 desc 1 -nn 1;
17715 desc 2 -tn 4 -nn 2 -sd n;
17716
17717 data 1 034;
17718 data 2 050 000;
17719
17720 page -all;
17721
17722
17723
17724 /* btd10
17725 * Address register modification is used for the binary operand.
17726 * No modifications are made to the decimal operand.
17727 * Both operands span a page boundary.
17728 */
17729
17730 inst btd
17731 -nt "binary to 4-bit leading sign"
17732 -mf1 ar
17733 -io 1;
17734
17735 desc 1 -nn 2;
17736 desc 2 -tn 4 -nn 6 -sd l;
17737
17738 data 1 -do -1 127 531;
17739 data 2 -do -4 304110211000 000000;
17740
17741 page -all;
17742
17743
17744
17745 /* btd11
17746 * Address register modification is used for the decimal operand.
17747 * No modifications are made to the binary operand.
17748 * Only the decimal operand spans a page boundary.
17749 * The eis instruction itself spans a page boundary.
17750 */
17751
17752 inst btd
17753 -nt "binary -> 4-bit trailing sign"
17754 -mf2 ar
17755 -io2;
17756
17757 desc 1 -nn 3;
17758 desc 2 -tn 4 -nn 9 -sd t;
17759
17760 data 1 211 664 372;
17761 data 2 -do -8 066023162020 300000000000000;
17762
17763 page -all;
17764
17765
17766
17767 /* btd12
17768 * Indirect descriptors are used for both operands.
17769 * No address register modification is used.
17770 * Neither operand spans a page boundary.
17771 * Both operands begin on the 1st byte of a page.
17772 * The eis instruction itself spans a page boundary.
17773 */
17774
17775 inst btd
17776 -nt "binary -> 4-bit unsigned decimal"
17777 -mf1 id
17778 -mf2 id
17779 -io 2;
17780
17781 desc 1 -nn 4;
17782 desc 2 -tn 4 -nn 10 -sd n;
17783
17784 data 1 111 222 333 444;
17785 data 2 230066047225 210000000000;
17786
17787 page -all;
17788
17789
17790
17791 /* btd13
17792 * No modifications are made to the binary operand.
17793 * Address register modification is used for the decimal operand.
17794 * An indirect descriptor is used by the decimal operand.
17795 * Both operands span a page boundary.
17796 */
17797
17798 inst btd
17799 -nt "binary -> 4-bit leading sign"
17800 -mf2 ar id
17801 -io 1;
17802
17803 desc 1 -nn 5;
17804 desc 2 -tn 4 -nn 15 -sd l;
17805
17806 data 1 -do -4 333 444 333 222 111;
17807 data 2 -do -8 301120210201 104146022020;
17808
17809 page -all;
17810
17811
17812
17813 /* btd14
17814 * Indirect descriptors are used by both operands.
17815 * Both operands span a page boundary.
17816 */
17817
17818 inst btd
17819 -nt "binary -> 4-bit trailing sign"
17820 -mf1 idr
17821 -mf2 ida;
17822
17823 desc 1 -nn 6;
17824 desc 2 -tn 4 -nn 17 -sd t;
17825
17826 data 1 -do -4 123 456 765 432 123 456;
17827 data 2 -do -16 051101022064 202071144142 300;
17828
17829 page -all;
17830
17831
17832
17833 /* btd15
17834 * Indirect descriptors are used for both operands.
17835 * Address register modification is used for both operands.
17836 * Both operands span a page boundary.
17837 * The eis instruction itself spans a page boundary.
17838 */
17839
17840 inst btd
17841 -nt "binary -> 4-bit unsigned decimal"
17842 -mf1 id ar
17843 -mf2 id ar
17844 -io1;
17845
17846 desc 1 -nn 7;
17847 desc 2 -tn 4 -nn 19 -sd n;
17848
17849 data 1 -do -6 321 456 372 415 210 000 000;
17850 data 2 -do -1 067165145041 204206031146 063140;
17851
17852 page -all;
17853
17854
17855
17856 /* btd16
17857 * Indirect descriptors are used by both operands.
17858 * Address register modification is used by both operands.
17859 * Neither operand spans a page boundary.
17860 * Both operands begin in the middle of a page.
17861 */
17862
17863 inst btd
17864 -nt "binary -> 4-bit leading sign"
17865 -mf1 idb ar
17866 -mf2 idb ar;
17867
17868 desc 1 -nn 8;
17869 desc 2 -tn 4 -nn 22 -sd l;
17870
17871 data 1 -do 14 124 570 642 000 000 375 125 743;
17872 data 2 -do 100 307201125023162000051145 211040147000;
17873
17874 page -all;