1
2
3 /* cmpc1
4 *
5 * Just compare two equal 8 character 9 bit strings.
6 * = => zero and carry indicators will be on.
7 */
8
9 inst cmpc -nt "Equal 9 bit char strings" -io 1
10 -ir zr cr;
11
12 desc 1 -ns 8;
13
14 desc 2 -ns 8;
15
16 data 1 "abcd1234";
17
18 data 2 "abcd1234";
19
20 page -all;
21
22 /* cmpc2
23 *
24 * Same as cmpc1 except move data across page boundary and add modification.
25 */
26
27 inst cmpc -nt"Same as prev but X pg bound" -io 2
28 -ir zr cr
29 -mf1 ar reg idb
30 -mf2 ar reg idb;
31
32 desc 1 -ns 8;
33
34 desc 2 -ns 8;
35
36 data 1 -do -4 "abcd" "1234";
37
38 data 2 -do -2 "ab" "cd1234";
39
40 page -all;
41
42 /* cmpc3
43 *
44 * Same as cmpc2 except first string is > than second string.
45 */
46
47 inst cmpc -nt "S1 > S2 - X pg bound" -io 3
48 -ir cr
49 -mf1 ar reg idb
50 -mf2 ar reg idb;
51
52 desc 1 -ns 8;
53
54 desc 2 -ns 8;
55
56 data 1 -do -5 "abcd1" "235";
57
58 data 2 -do -2 "ab" "cd1234";
59
60 page -all;
61
62 /* cmpc4
63 *
64 * Same as cmpc2 except first string is < than second string.
65 */
66
67 inst cmpc -nt "S1 < S2 - X pg bound" -io 1
68 -mf1 ar reg idb
69 -mf2 ar reg idb;
70
71 desc 1 -ns 8;
72
73 desc 2 -ns 8;
74
75 data 1 -do -4 "abcd" "1234";
76
77 data 2 -do -2 "ab" "cd1235";
78
79 page -all;
80
81 /* cmpc5
82 *
83 * Same as cmpc2 except we will use cn fields.
84 */
85
86 inst cmpc -nt "Test use of CN fields" -io 2
87 -ir zr cr
88 -mf1 ar reg idb
89 -mf2 ar reg idb;
90
91 desc 1 -ns 8 -cn 1;
92
93 desc 2 -cn 2 -ns 8;
94
95 data 1 -do -4 " abc" "d1234";
96
97 data 2 -do -2 "**" "abcd1234";
98
99 page -all;
100
101 /* cmpc6
102 *
103 * We will test the use of the fill character. In this test we will fill
104 * string 1.
105 */
106
107 inst cmpc -nt "Fill in S1" -io 1
108 -ir cr zr
109 -fc*
110 -mf1 idr ar
111 -mf2 ida ar;
112
113 desc 1 -ns 6;
114
115 desc 2 -ns 10;
116
117 data 1 -do -3 "123" "456";
118
119 data 2 -do -6 "123456" "****";
120
121
122 page -all;
123
124 /* cmpc7
125 *
126 * Same as cmpc6 except the fill characters will be split across
127 * a page boundary.
128 */
129
130 inst cmpc -nt "Fill X pg bound" -io 1
131 -ir cr zr
132 -fc*
133 -mf1 idr ar
134 -mf2 ida ar;
135
136 desc 1 -ns 6;
137
138 desc 2 -ns 10;
139
140 data 1 -do -5 "12345" "6";
141
142 data 2 -do -9 "123456***" "*";
143
144
145 page -all;
146
147 /* cmpc8
148 *
149 * In this test we will test using the fill character of string 2.
150 */
151
152 inst cmpc -nt "Fill in S2" -io 2
153 -ir zr cr
154 -fc /* Fill character is a blank. */
155 -mf1 idb rl 8 ar reg
156 -mf2 idb rl 4 ar reg;
157
158 /* No desc statements needed. */
159
160 data 1 -do -4 "1234" " ";
161
162 data 2 -do -3 "123" "4";
163
164
165 page -all;
166
167 /* cmpc9
168 *
169 * The same as cmpc8 except we will split the fill characters across a page boundary.
170 */
171
172 inst cmpc -nt "Same as prev - fill X pg bound" -io 2
173 -ir zr cr
174 -fc /* Fill character is a blank. */
175 -mf1 idb rl 8 ar reg
176 -mf2 idb rl 4 ar reg;
177
178 /* No desc statements needed. */
179
180 data 1 -do -5 "1234 " " ";
181
182 data 2 -do -3 "123" "4";
183
184
185 page -all;
186
187 /* cmpc10
188 *
189 * This test will compare two strings that cross two page boundaries.
190 */
191
192 inst cmpc -nt "Both strings X pg bounds" -io 3
193 -ir cr zr
194 -mf1 idb reg ar rl 4352
195 -mf2 idb reg ar rl 4352;
196
197 data 1 -do -128 4352 "S";
198
199 data 2 -do -128 4352 "S";
200
201
202 page -all;
203
204 /* cmpc11
205 *
206 * This test will compare 3 6 bit characters. We will have them
207 * cross a page boundary and we will use the cn field of the
208 * descriptors to start the string at a character other than character
209 * zero of the effectively addressed word.
210 */
211
212 inst cmpc -nt "6 bit characters" -io 2
213 -ir cr zr
214 -mf1 ar reg idb rl 3
215 -mf2 ar reg idb;
216
217 desc 1 -cn 2 -ta 6;
218
219 desc 2 -ns 3 -cn 1; /* NOTE, ta field taken from desc 1 statement. */
220
221
222 data 1 -do -2 000020 /*Page Boundary*/ 2122;
223
224 data 2 -do -2 002021 /*Page Boundary*/ 22;
225
226
227 page -all;
228
229 /* cmpc12
230 *
231 * This test is like cmpc11 except that the character size will be 4.
232 */
233
234 inst cmpc -nt "4 bit characters"
235 -ir cr zr
236 -mf1 idb reg ar
237 -mf2 idb reg ar;
238
239 desc 1 -ns 3 -cn 2 -ta 4; /* This desc statement must be first. */
240
241 desc 2 -ns 3 -cn 1; /* This desc statement can NOT have a -ta option. */
242
243
244 data 1 -do -2 000232 260; /* characters "1001"b "1010"b "1011"b */
245
246 data 2 -do -1 011 253; /* The same 3 characters. */
247
248
249 page -all;
250 /* cmpc13
251
252 * compare two strings of maximum length.
253 * the data is six bit data and maximum
254 * desc. mod. is taken
255 *
256 */
257
258
259 inst cmpc -nt "d1,2 covers 3pp. 6bit zr cr"
260 -ir zr cr
261 -mf1 idb ar reg rl 6528
262 -mf2 idb ar reg rl 6528;
263
264 desc 1 -ta 6 ;
265
266
267 data 1 -do -128 1088 212121212121;
268
269 data 2 -do -128 1088 212121212121;
270
271 page -all;
272
273
274 /* cmpc14
275
276 * this is a test using 4 bit data with the
277 * first string covering the maximum number of words.
278 * the second string also is of maximum length
279 * and the descriptors are all direct mod.
280 *
281 */
282
283 inst cmpc -nt "d1,2 covers 3pp 4bit zr cr"
284 -ir cr zr
285 -mf1 rl 8704
286 -mf2 rl 8704;
287
288 desc 1 -ta 4;
289
290 data 1 -do -128 1088 232232232232;
291
292 data 2 -do -128 1088 232232232232;
293
294
295 page -all;
296
297
298
299 /* cmpc15
300
301 * the next four tests will again use the maximum
302 * amount of data but will vary the desc. mod. taken.
303 *
304 */
305
306 inst cmpc -io 2 -nt "d1,2 covers 3pp 6 bit zr cr"
307 -mf1 ida reg rl 6528
308 -mf2 idr ar rl 6528
309 -ir cr zr;
310
311 desc 1 -ta 6;
312
313 data 1 -do -128 1088 212223242526;
314
315 data 2 -do -128 1088 212223242526;
316
317 page -all;
318
319
320
321 /* cmpc16
322
323 * this is the same as test 15 but there will be not3
324 * match of the data str1 < str2 : zr=0 cr=0
325 *
326 */
327
328 inst cmpc -io 1 -nt "d1,2 covers 3 pp 6 bit"
329 -mf1 ida reg rl 6528
330 -mf2 idr ar rl 6528;
331
332 desc 1 -ta 6;
333
334 data 1 -do -128 1088 212221222122;
335
336 data 2 -do -128 1088 2122232422226;
337
338 page -all;
339
340
341
342 /* cmpc17
343
344 * this test is similar to test14 only the
345 * maximum number of desc. mods. are taken.
346 * the data is still four bit.
347 *
348 */
349
350 inst cmpc -io 3 -nt "d1,2 covers 3pp 4bit zr cr"
351 -ir zr cr
352 -mf1 idb ar reg rl 8704
353 -mf2 idb ar reg rl 8704;
354
355 desc 1 -ta 4;
356
357 data 1 -do -128 1088 232232232232;
358
359 data 2 -do -128 1088 232232232232;
360
361 page -all;
362
363
364
365
366 /* cmpc18
367
368 * this test will take a variety of desc. mod.
369 * and will force st1 > st2 zr =0 cr = 1.
370 * the data is four bit.
371 *
372 */
373
374 inst cmpc -io 1 -nt "d1,2 covers 3pp 4 bit cr"
375 -ir cr
376 -mf1 ida reg rl 8704
377 -mf2 idr ar rl 8704;
378
379 desc 1 -ta 4;
380
381 data 1 -do -128 1088 232232232222;
382
383 data 2 -do -128 1088 227237237237;
384
385 page -all;
386
387
388 /* cmpc19
389
390 * the test exercises the fill char option along with
391 * the cn option. the test also uses 6 bit data.
392 *
393 */
394
395 inst cmpc -io 1 -nt "d1 split cn 6bit zr cr"
396 -ir zr cr
397 -fc^@ /* fc = 000 */
398 -mf1 reg ar rl 8
399 -mf2 reg rl 5;
400
401 desc 1 -ta 6 -cn 2;
402
403 desc 2 -cn 1;
404
405 data 1 -do -2 000020 /* page bound */ 21222324000000;
406
407 data 2 002021222324;
408
409 page -all;
410
411
412
413 /* cmpc20
414
415 * this test uses 6 bit data and test a different
416 * variety of desc. mods. that test 19. the
417 * data is the same as test 19 except str1 < str2).
418 *
419 */
420
421 inst cmpc -io 2 -nt "d1 split fc 6bit"
422 -mf1 idb ar
423 -mf2 ar reg
424 -fc^@ /* fc = 000 */ /* fc = 000 */;
425
426 desc 1 -ta 6 -ns 8 -cn 2;
427
428 desc 2 -ns 5 -cn 2;
429
430 data 1 -do -2 000020 /* paGE BOUND */ 212223220000;
431
432 data 2 002021222324;
433
434 page -all;
435
436
437
438
439
440 /* cmpc21
441
442 * the next wo tests use 4 bit data and test the use of the
443 * fill character. a variety of desc. mods. are taken.
444 *
445 **/
446
447
448 inst cmpc -io 2 -nt "fc 4bit zr cr"
449 -fc^@ /* fc = 000 */
450 /* fc = 000 */
451 -mf1 ida ar reg rl 2
452 -mf2 idr ar rl 4
453 -ir zr cr;
454
455 desc 1 -ta 4;
456
457 data 1 232;
458
459
460 data 2 232000;
461
462 page -all;
463
464
465
466
467 /* cmcp22
468
469 * this test results in str1 > str 2.
470 *
471 */
472
473 inst cmpc -io 2 -nt " fc 4bit cr"
474 -ir cr
475 -mf1 idb ar reg
476 -mf2 rl 6
477 -fc^@ /* fc = 000 */;
478 /* fc = 000 */
479
480 desc 1 -ta 4 -ns 4;
481
482
483 data 1 -do -2 237237 /* page bound */ ;
484
485 data 2 232232000;
486
487 page -all;
488
489
490 ^L
491
492
493
494 /* scd1
495 *
496 * We will split both string 1 and string 2 across page
497 * boundaries. We will use all mods and use a cn
498 * field in descriptors 1 & 2.
499 */
500
501 inst scd -nt "Strings X pg bound - all mods" -io 2
502 -mf1 idb ar reg rl 8
503 -mf2 idb ar reg
504 -mf3 ar reg;
505
506
507 desc 1 -cn 1;
508 desc 2 -cn 3;
509
510 data 1 -do -5
511 " " /* Character skipped by cn field. */
512 "123*" "$678";
513
514 data 2 -do -4 " " "*" "$";
515
516 data 3 000 000 000 003;
517
518
519 page -all;
520 /* scd2
521 *
522
523 * simple test which takes no more than the minimum
524 * number of page faults. assures the instruction is
525 * working correctly.
526 *
527 */
528
529 inst scd -nt "simple test 9bit";
530
531 desc 1 -ns 8; /* 9 bit char */
532
533 data 1 "abcd1234";
534
535 data 2 "cd";
536
537 data 3 000 000 000 002;
538
539 page -all;
540
541
542
543
544 /* scd3
545
546 * this test uses the same data as test 2
547 * but splits the first string across a page
548 boundary. the maximum number of descriptor page faultd
549 * for the first two descriptors are also taken.
550 *
551 */
552
553 inst scd -nt "d1 split 9bit; FCOs PHAFPG179 & 181 required on L68 CPU"
554 -mf1 idb ar reg rl 8
555 -mf2 idb ar reg;
556
557
558 data 1 -do 2
559 "ab" "cd1234";
560
561 data 2 "cd";
562
563 data 3 000 000 000 002;
564
565 page -all;
566
567
568
569 /* scd4
570
571 * this test mixes the page faults among descriptors
572 * and splits data across a page boundary with a
573 * match on the first try.
574 *
575 */
576
577
578 inst scd -nt "d1 split match 1st try; FCOs PHAFPG179 & 181 required on L68 CPU"
579 -mf1 idb ar
580 -mf2 ar reg
581 -mf3 ar; /* note the data word indirection */
582
583 desc 1 -ns 8;
584
585 data 1 -do -1 "a" "bcd1234";
586
587 data 2 "ab";
588
589 data 3 000 000 000 000;
590
591
592 page -all;
593
594
595
596
597 /* scd5
598
599 * same as previous test but both strings
600 * are split across page boundaries. data
601 * word is also accessed directly.
602 *
603 */
604
605
606 inst scd -io 2 -nt "d1,2 split 9bit"
607 -mf1 idb ar reg
608 -mf2 idb ar reg;
609
610 desc 1 -ns 8;
611
612 data 1 -do -4 "abcd" "1234";
613
614 data 2 -do -1 "d" "1";
615
616 data 3 000 000 000 003;
617
618
619 page -all;
620
621
622
623
624 /* scd6
625
626 * this test takes all the page faults
627 * possible with the descriptors, and
628 * tests the -cn and -rl option.
629 *
630 */
631
632
633 inst scd -io 2 -nt "max page fault 9bit"
634 -mf1 idb ar reg rl 8
635 -mf2 idb ar reg
636 -mf3 ar reg;
637 /* that's all pssible indirections */
638
639 desc 2 -cn 2;
640
641
642
643 data 1 -do -4 "abcd" "1234";
644
645 data 2 -do -2 " " "12";
646
647 data 3 000 000 000 004;
648
649 page -all;
650
651
652
653
654 /* scd7
655
656 * salient feature of this test is
657 * that there is no match on the search.
658 * both data strings cross page boundaries.
659 *
660 */
661
662
663 inst scd -io 2 -nt "no match 9bit"
664 -ir tr
665 /* mf1 is direct */
666 -mf2 idb ar reg;
667
668
669 desc 1 -ns 8;
670
671
672 data 1 -do -4 "abcd" "1234";
673
674 data 2 -do -1 "5" "6";
675
676 data 3 000 000 000 007;
677
678 page -all;
679
680
681
682
683 /* scd8
684
685 * all possible indirection for descriptors
686 * taken with the cn option for both tested.
687 * strings both split across page.
688 *
689 */
690
691 inst scd -io 3 -nt "d1,2 split 9bit"
692 -mf1 idb ar reg rl 5
693 -mf2 idb ar reg;
694
695 desc 1 -cn 3;
696
697 desc 2 -cn 1;
698
699 data 1 -do -3 "***" "abcde";
700
701 data 2 -do -3 "*bc" "*";
702
703 data 3 000 000 000 001;
704
705 page -all;
706
707
708
709 /* scd9
710
711 *the next three tests all use the same basic
712
713
714 * data but vary the type of indirection and thus
715 * the type of page faults that will be taken.
716 *
717 */
718
719 inst scd -io 1 -nt "desc mod d1,2 split 9bit"
720 -mf1 ar
721 -mf2 idb ar reg
722 -mf3 ar reg;
723
724 desc 1 -ns 5 -cn 3;
725
726 desc 2 -cn 1;
727
728 data 1 -do -3"***" "abcde";
729
730 data 2 -do -3 "*bc" "*";
731
732 data 3 000 000 000 001;
733
734 page -all;
735
736
737
738 /* scd10
739
740 * swap desc1 and desc2 mod
741 *
742 */
743
744 inst scd -io 1 -nt "d1,2 split 9bit"
745 -mf1 idb ar reg rl 8
746 -mf2 ar
747 -mf3 ar reg;
748
749 desc 1 -cn 3;
750
751 desc 2 -cn 1;
752
753 data 1 -do -3 "***" "abcde";
754
755 data 2 -do -3 "*bc" "*";
756
757 data 3 000 000 000 001;
758
759 page -all;
760
761
762
763 /* scd11
764
765 * mf3 is direct : other two indirect
766 *
767 */
768
769 inst scd -io 1 -nt "mf1 direct others ind. 9b"
770 -mf1 idb ar reg rl 8
771 -mf2 idb ar reg;
772 /* mf3 is direct */
773
774 desc 1 -cn 3;
775
776 desc 2 -cn 1;
777
778 data 1 -do -3 "***" "abcde";
779
780 data 2 -do -3 "*bc" "*";
781
782 data 3 000 000 000 001;
783
784
785 page -all;
786
787
788
789
790 /* scd12
791
792 * the data for the next two tests spans three pages.
793 * this test uses all direct mod for descriptors.
794 *
795 */
796
797 inst scd -io 1 -nt "d1 spans 3pp 9bit"
798
799 -mf1 rl 4352;
800
801 data 1 -do -128 2175 "ab" "bc";
802
803 data 2 "bc";
804
805 data 3 000 000 010376;
806
807 page -all;
808
809
810
811 /* scd13
812
813 * same data as previous test but using
814 * maximum indirection on the desc.
815 *
816 */
817
818
819 inst scd -io 2 -nt "d1 spans 3pp max desc mod 9b"
820 -mf1 idb ar reg rl 4352
821 -mf2 idb ar reg
822 -mf3 reg ar;
823
824 /* no desc statements are needed */
825
826 data 1 -do -128 2175 "ab" "bc";
827
828 data 2 "bc";
829
830 data 3 000 000 010 376;
831
832 page -all;
833
834
835 /* scd14
836
837 * the next two tests move the two char data 2 string
838 * across a page boundary using the large data field of
839 * the previous two tests as data 1.
840 *
841 */
842
843 inst scd -io 3 -nt "3 page d1, d2 split 9b"
844 -mf1 idb ar reg rl 4352
845 -mf2 idb ar reg
846 -mf3 ar reg;
847
848 /* desc statements not needed */
849
850
851
852 data 1 -do -128 2175 "ab" "bc";
853
854 data 2 -do -1 "b" "c";
855
856 data 3 000 000 010 376;
857
858 page -all;
859
860
861 /* scd15
862
863 * data 2 fully contained on page 0
864 *
865 */
866
867 inst scd -io 2 -nt "3page d1, d2 split 9b"
868 -mf1 idb ar reg rl 4352
869 -mf2 idb ar reg
870 -mf3 ar reg;
871
872
873 data 1 -do -1282175 "ab" "bc";
874
875 data 2 -do -2"bc";
876
877 data 3 000 000 010 376;
878
879 page -all;
880
881
882
883 /* scd16
884
885 * this starts the 6 bit char tests.
886
887 * nothing fancy--indirect mod on desc 1 & 2
888 *
889 */
890
891
892 inst scd -nt "mf1,2 mod 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
893 -mf1 idb ar reg rl 6
894 -mf2 idb ar reg
895 /* desc3 is direct */;
896
897 desc 1 -ta 6 /* six bit char */;
898
899 data 1 202122232425;
900
901 data 2 2425;
902
903 data 3 000 000 000 004;
904
905 page -all;
906
907
908 /* scd17
909
910 * same data but first string offseet by
911 * 3 char. full indirect mod on desc.
912 *
913 */
914
915
916 inst scd -io 2 -nt "desc mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
917 -mf1 idb ar reg
918 -mf2 idb ar reg
919 -mf3 ar reg;
920
921 desc 1 -ns 6 -ta 6;
922
923
924 data 1 -do -2 212223 242526;
925
926 data 2 2425;
927
928 data 3 000 000 000 003;
929
930 page -all;
931
932
933
934 /* scd18
935
936 *this test offsets the second data string.
937 *
938 */
939
940 inst scd -io 1 -nt "desc mod d2 offset 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
941
942 -mf1 idb ar reg rl 6
943 -mf2 ar reg
944 -mf3 reg
945 /* note the variety of indirection */;
946
947 desc 1 -ta 6;
948
949 data 1 212223242526;
950
951 data 2 -do -2 242500;
952
953 data 3 000 000 000 003;
954
955 page -all;
956
957
958
959 /* scd19
960
961 * this test specifically exercises the -cn option
962 * along with multiple indirection.
963 *
964 */
965
966 inst scd -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
967 -mf1 idb ar reg rl 6
968 -mf2 idb ar reg
969 -mf3 ar reg;
970
971
972 desc 1 -ta 6 -cn 3;
973
974 desc 2 -cn 3;
975
976 data 1 -do -4 000000202122 232425000000;
977
978 data 2 -do -2 000000 212200;
979
980 data 3 000 000 000 001;
981
982 page -all;
983
984
985
986 /* scd20
987
988 * data 1 covers three pages. match
989 * is on the last pair of characters.
990 *
991 */
992
993 inst scd -nt "d1 spans 3pp 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
994 -mf1 idb ar reg rl 7680
995 -mf2 idb ar reg
996 -mf3 ar reg;
997
998 desc 1 -ta 6;
999
1000
1001 data 1 -do -1281087 202124252627 202122242223;
1002
1003 data 2 2223;
1004
1005 data 3 000000014576 000;
1006
1007 page -all;
1008
1009
1010
1011 /* scd21
1012
1013 *the final series of tests are with 4 bit data
1014 * this is just a simple test of two char per string
1015 * crossing no page pound.
1016 *
1017 */
1018
1019 inst scd -nt "d1,2 2 char 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1020 -mf1 idb ar reg
1021 -mf2 idb ar reg
1022 /* mf3 is direct */;
1023
1024 desc 1 -ta 4 -ns 2;
1025
1026 data 1 232 000 000 000 /* "1001" "1010" */;
1027
1028 data 2 232 000 000 000;
1029
1030 data 3 000 000 000 000;
1031
1032 page -all;
1033
1034
1035 /* scd22
1036
1037 * split the second string across page bound.
1038 * test -cn option for data 2.
1039 *
1040 */
1041
1042 inst scd -io 2 -nt "cn,offset for d2 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1043 -mf1 idb ar reg rl 2
1044 -mf2 idb ar reg
1045 -mf3 ar reg;
1046
1047
1048 desc 1 -ta 4;
1049
1050 desc 2 -cn 1;
1051
1052 data 1 232 000 000 000;
1053
1054
1055 data 2 -do -1 011 240 /* "1001" "1010" */;
1056
1057 data 3 000 000 000 000;
1058
1059 page -all;
1060
1061
1062 /* scd23
1063
1064 * this test splits both strings and tests
1065 * the cn option for both strings
1066 *
1067 */
1068
1069 inst scd -io 2 -nt "d1,2 offset 4bit"
1070 -mf1 idb ar reg
1071 -mf2 idb ar reg
1072 -mf3 ar reg;
1073
1074 desc 1 -ta 4 -ns 2 -cn 2;
1075
1076 desc 2 -cn 1;
1077
1078 data 1 -do -2 000 232 000;
1079
1080 data 2 -do -1 011 24;
1081
1082 data 3 000 000 000 000;
1083
1084 page -all;
1085
1086
1087
1088 /* scd24
1089
1090 * this test will force data to cover all
1091 * three pages with the first data string.
1092 *
1093
1094 */
1095
1096 inst scd -io 3 -nt "d1 covers 3pp 4bit"
1097 -mf1 ar rl 10240
1098 -mf2 reg
1099 -mf3 ar;
1100
1101 desc 1 -ta 4 ;
1102
1103 data 1 -do -128 4350 232 236;
1104
1105 data 2 236;
1106
1107 data 3 000 000 020 774;
1108
1109 page -all;
1110
1111
1112 ^L
1113
1114
1115 /* scdr1
1116 *
1117 * Same as test for scd.
1118 * We will split both string 1 and string 2 across page
1119 * boundaries. We will use all mods and use a cn
1120 * field in descriptors 1 & 2.
1121 */
1122
1123 inst scdr -nt "Same as scd test" -io 3
1124 -mf1 idb ar reg rl 8
1125 -mf2 idb ar reg
1126 -mf3 ar reg;
1127
1128
1129 desc 1 -cn 1;
1130 desc 2 -cn 3;
1131
1132 data 1 -do -5
1133 " " /* Character skipped by cn field. */
1134 "123*" "$678";
1135
1136 data 2 -do -4 " " "*" "$";
1137
1138 data 3 000 000 000 003;
1139
1140
1141 page -all;
1142 /* scdr2
1143 *
1144
1145 * simple test which takes no more than the minimum
1146 * number of page faults. assures the instruction is
1147 * working correctly.
1148 *
1149 */
1150
1151 inst scdr -nt "simple test 9bit";
1152
1153 desc 1 -ns 8; /* 9 bit char */
1154
1155 data 1 "abcd1234";
1156
1157 data 2 "cd";
1158
1159 data 3 000 000 000 004;
1160
1161 page -all;
1162
1163
1164
1165
1166 /* scdr3
1167
1168 * this test mixes the page faults among descriptors
1169 * and splits data across a page boundary with a
1170 * match on the first try.
1171 *
1172 */
1173
1174
1175 inst scdr -nt "d1 split match first time 9b"
1176 -mf1 idb ar
1177 -mf2 ar reg
1178 -mf3 ar; /* note the data word indirection */
1179
1180 desc 1 -ns 8;
1181
1182 data 1 -do -1 "a" "bcd1234";
1183
1184 data 2 "ab";
1185
1186 data 3 000 000 000 006;
1187
1188
1189 page -all;
1190
1191
1192
1193
1194 /* scdr4
1195
1196 * same as previous test but both strings
1197 * are split across page boundaries. data
1198 * word is also accessed directly.
1199 *
1200 */
1201
1202
1203 inst scdr -io 2 -nt "d1,2 split 9bit"
1204 -mf1 idb ar reg
1205 -mf2 idb ar reg;
1206
1207 desc 1 -ns 8;
1208
1209 data 1 -do -4 "abcd" "1234";
1210
1211 data 2 -do -1 "d" "1";
1212
1213 data 3 000 000 000 003;
1214
1215
1216 page -all;
1217
1218
1219
1220
1221 /* scdr5
1222
1223 * this test takes all the page faults
1224 * possible with the descriptors, and
1225 * tests the -cn and -rl option.
1226 *
1227 */
1228
1229
1230 inst scdr -io 2 -nt "max page fault 9bit"
1231 -mf1 idb ar reg rl 8
1232 -mf2 idb ar reg
1233 -mf3 ar reg;
1234 /* that's all pssible indirections */
1235
1236 desc 2 -cn 2;
1237
1238
1239
1240 data 1 -do -4 "abcd" "1234";
1241
1242 data 2 -do -2 " " "12";
1243
1244 data 3 000 000 000 002;
1245
1246 page -all;
1247
1248
1249
1250
1251 /* scdr6
1252
1253 * salient feature of this test is
1254 * that there is no match on the search.
1255 * both data strings cross page boundaries.
1256 *
1257 */
1258
1259
1260 inst scdr -io 2 -nt "no match 9bit"
1261 -ir tr
1262 /* mf1 is direct */
1263 -mf2 idb ar reg;
1264
1265
1266 desc 1 -ns 8;
1267
1268
1269 data 1 -do -4 "abcd" "1234";
1270
1271 data 2 -do -1 "5" "6";
1272
1273 data 3 000 000 000 007;
1274
1275 page -all;
1276
1277
1278
1279
1280 /* scdr7
1281
1282 * all possible indirection for descriptors
1283 * taken with the cn option for both tested.
1284 * strings both split across page.
1285 *
1286 */
1287
1288 inst scdr -io 3 -nt "d1,2 split 9bit"
1289 -mf1 idb ar reg rl 5
1290 -mf2 idb ar reg;
1291
1292 desc 1 -cn 3;
1293
1294 desc 2 -cn 1;
1295
1296 data 1 -do -3 "***" "abcde";
1297
1298 data 2 -do -3 "*bc" "*";
1299
1300 data 3 000 000 000 002;
1301
1302 page -all;
1303
1304
1305
1306 /* scdr8
1307
1308 *the next three tests all use the same basic
1309
1310
1311 * data but vary the type of indirection and thus
1312 * the type of page faults that will be taken.
1313 *
1314 */
1315
1316 inst scdr -io 1 -nt "desc mod d1,2 split 9b"
1317 -mf1 ar
1318 -mf2 idb ar reg
1319 -mf3 ar reg;
1320
1321 desc 1 -ns 5 -cn 3;
1322
1323 desc 2 -cn 1;
1324
1325 data 1 -do -3"***" "abcde";
1326
1327 data 2 -do -3 "*bc" "*";
1328
1329 data 3 000 000 000 002;
1330
1331 page -all;
1332
1333
1334
1335 /* scdr9
1336
1337 * swap desc1 and desc2 mod
1338 *
1339 */
1340
1341 inst scdr -io 1 -nt "desc mod d1,2 split 9b"
1342 -mf1 idb ar reg rl 8
1343 -mf2 ar
1344 -mf3 ar reg;
1345
1346 desc 1 -cn 3;
1347
1348 desc 2 -cn 1;
1349
1350 data 1 -do -3 "***" "abcde";
1351
1352 data 2 -do -3 "*bc" "*";
1353
1354 data 3 000 000 000 005;
1355
1356 page -all;
1357
1358
1359
1360 /* scdr10
1361
1362 * mf3 is direct : other two indirect
1363 *
1364 */
1365
1366 inst scdr -io 1 -nt "mf1 direct others ind 9bit"
1367 -mf1 idb ar reg rl 8
1368 -mf2 idb ar reg;
1369 /* mf3 is direct */
1370
1371 desc 1 -cn 3;
1372
1373 desc 2 -cn 1;
1374
1375 data 1 -do -3 "***" "abcde";
1376
1377 data 2 -do -3 "*bc" "*";
1378
1379 data 3 000 000 000 005;
1380
1381
1382 page -all;
1383
1384
1385
1386
1387 /* scdr11
1388
1389 * the data for the next two tests spans three pages.
1390 * this test uses all direct mod for descriptors.
1391 *
1392 */
1393
1394 inst scdr -io 1 -nt "d1 spans 3 pp 9bit"
1395
1396 -mf1 rl 4352;
1397
1398 data 1 -do -128 "bc" 2175 "ab" ;
1399
1400 data 2 "bc";
1401
1402 data 3 000 000 010376;
1403
1404 page -all;
1405
1406
1407
1408 /* scdr12
1409
1410 * same data as previous test but using
1411 * maximum indirection on the desc.
1412 *
1413 */
1414
1415
1416 inst scdr -io 2 -nt "d1 spans 3pp max desc mod 9b"
1417 -mf1 idb ar reg rl 4352
1418 -mf2 idb ar reg
1419 -mf3 reg ar;
1420
1421 /* no desc statements are needed */
1422
1423 data 1 -do -128 "bc" 2175 "ab" ;
1424
1425 data 2 "bc";
1426
1427 data 3 000 000 010 376;
1428
1429 page -all;
1430
1431
1432 /* scdr13
1433
1434 * the next two tests move the two char data 2 string
1435 * across a page boundary using the large data field of
1436 * the previous two tests as data 1.
1437 *
1438 */
1439
1440 inst scdr -io 3 -nt "3 page d1, d2 split 9b"
1441 -mf1 idb ar reg rl 4352
1442 -mf2 idb ar reg
1443 -mf3 ar reg;
1444
1445 /* desc statements not needed */
1446
1447
1448
1449 data 1 -do -128 2175 "ab" "bc";
1450
1451 data 2 -do -1 "b" "c";
1452
1453 data 3 000 000 000 000;
1454
1455 page -all;
1456
1457
1458 /* scdr14
1459
1460 * data 2 fully contained on page 0
1461 *
1462 */
1463
1464 inst scdr -io 2 -nt "3 page d1, d2 split 9b"
1465 -mf1 idb ar reg rl 4352
1466 -mf2 idb ar reg
1467 -mf3 ar reg;
1468
1469
1470 data 1 -do -128 "bc" 2175 "ab" ;
1471
1472 data 2 -do -2"bc";
1473
1474 data 3 000 000 010376;
1475
1476 page -all;
1477
1478
1479
1480 /* scdr15
1481
1482 * this starts the 6 bit char tests.
1483
1484 * nothing fancy--indirect mod on desc 1 & 2
1485 *
1486 */
1487
1488
1489 inst scdr -nt "desc 1,2 mod 6bit"
1490 -mf1 idb ar reg rl 6
1491 -mf2 idb ar reg
1492 /* desc3 is direct */;
1493
1494 desc 1 -ta 6 /* six bit char */;
1495
1496 data 1 202122232425;
1497
1498 data 2 2425;
1499
1500 data 3 000 000 000 000;
1501
1502 page -all;
1503
1504
1505 /* scdr16
1506
1507 * same data but first string offseet by
1508 * 3 char. full indirect mod on desc.
1509 *
1510 */
1511
1512
1513 inst scdr -io 2 -nt "mod d1 split 6b; FCOs PHAFPG179 & 181 required on L68 CPU"
1514 -mf1 idb ar reg
1515 -mf2 idb ar reg
1516 -mf3 ar reg;
1517
1518 desc 1 -ns 6 -ta 6;
1519
1520
1521 data 1 -do -2 212223 242526;
1522
1523 data 2 2425;
1524
1525 data 3 000 000 000 001;
1526
1527 page -all;
1528
1529
1530
1531 /* scdr17
1532
1533 *this test offsets the second data string.
1534 *
1535 */
1536
1537 inst scdr -io 1 -nt "full desc mod d2 offset 6b"
1538
1539 -mf1 idb ar reg rl 6
1540 -mf2 ar reg
1541 -mf3 reg
1542 /* note the variety of indirection */;
1543
1544 desc 1 -ta 6;
1545
1546 data 1 212223242526;
1547
1548 data 2 -do -2 242500;
1549
1550 data 3 000 000 000 001;
1551
1552 page -all;
1553
1554
1555
1556 /* scdr18
1557
1558 * this test specifically exercises the -cn option
1559 * along with multiple indirection.
1560 *
1561 */
1562
1563 inst scdr -io 3 -nt "cn on d2 6bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1564 -mf1 idb ar reg rl 6
1565 -mf2 idb ar reg
1566 -mf3 ar reg;
1567
1568
1569 desc 1 -ta 6 -cn 3;
1570
1571 desc 2 -cn 3;
1572
1573 data 1 -do -4 000000202122 232425000000;
1574
1575 data 2 -do -2 000000 212200;
1576
1577 data 3 000 000 000 003;
1578
1579 page -all;
1580
1581
1582
1583 /* scdr19
1584
1585 * data 1 covers three pages. match
1586 * is on the last pair of characters.
1587 *
1588 */
1589
1590 inst scdr -nt "no off d1 spans 3pp 6b"
1591 -mf1 idb ar reg rl 7680
1592 -mf2 idb ar reg
1593 -mf3 ar reg;
1594
1595 desc 1 -ta 6;
1596
1597
1598 data 1 -do -1281087 202124252627 202122242223;
1599
1600 data 2 2223;
1601
1602 data 3 000000002200 000;
1603
1604 page -all;
1605
1606
1607
1608 /* scdr20
1609
1610 *the final series of tests are with 4 bit data
1611 * this is just a simple test of two char per string
1612 * crossing no page pound.
1613 *
1614 */
1615
1616 inst scdr -nt "d1.2 2 char 4bit"
1617 -mf1 idb ar reg
1618 -mf2 idb ar reg
1619 /* mf3 is direct */;
1620
1621 desc 1 -ta 4 -ns 2;
1622
1623 data 1 232 000 000 000 /* "1001" "1010" */;
1624
1625 data 2 232 000 000 000;
1626
1627 data 3 000 000 000 000;
1628
1629 page -all;
1630
1631
1632 /* scdr21
1633
1634 * split the second string across page bound.
1635 * test -cn option for data 2.
1636 *
1637 */
1638
1639 inst scdr -io 2 -nt "cn,offset for d2 4bit"
1640 -mf1 idb ar reg rl 2
1641 -mf2 idb ar reg
1642 -mf3 ar reg;
1643
1644
1645 desc 1 -ta 4;
1646
1647 desc 2 -cn 1;
1648
1649 data 1 232 000 000 000;
1650
1651
1652 data 2 -do -1 011 240 /* "1001" "1010" */;
1653
1654 data 3 000 000 000 000;
1655
1656 page -all;
1657
1658
1659 /* scdr22
1660
1661 * this test splits both strings and tests
1662 * the cn option for both strings
1663 *
1664 */
1665
1666 inst scdr -io 2 -nt "d1,2 offset 4bit; FCOs PHAFPG179 & 181 required on L68 CPU"
1667 -mf1 idb ar reg
1668 -mf2 idb ar reg
1669 -mf3 ar reg;
1670
1671 desc 1 -ta 4 -ns 2 -cn 2;
1672
1673 desc 2 -cn 1;
1674
1675 data 1 -do -2 000 232 000;
1676
1677 data 2 -do -1 011 24;
1678
1679 data 3 000 000 000 000;
1680
1681 page -all;
1682
1683
1684
1685 /* scdr23
1686
1687 * this test will force data to cover all
1688 * three pages with the first data string.
1689 *
1690
1691 */
1692
1693 inst scdr -io 3 -nt "d1 covers 3 pp 4bit"
1694 -mf1 ar rl 10240
1695 -mf2 reg
1696 -mf3 ar;
1697
1698 desc 1 -ta 4 ;
1699
1700 data 1 -do -128 4350 232 236;
1701
1702 data 2 236;
1703
1704 data 3 000 000 003 002;
1705
1706 page -all;
1707
1708
1709 ^L
1710
1711
1712 /* mlr1
1713 *
1714 * Just a simple test. Move one 9 bit character to another. */
1715
1716 inst mlr -nt "Move 1 9 bit char";
1717
1718 desc 1 -ns 1; data 1 "a";
1719
1720 desc 2 -ns 1; data 2 "a";
1721
1722 page -all;
1723 /* mlr2
1724 *
1725 * Move two characters that cross a page boundary. Note, we need AR
1726 * modification in order to set a data offset that is not a multiple
1727 * of the word size. By doing this we will move the data fields to
1728 * segments etd1 and etd2.
1729 */
1730
1731 inst mlr -nt "2 chars X page bound"
1732 -mf1 ar
1733 -mf2 ar;
1734
1735 desc 1 -ns 2; desc 2 -ns 2;
1736
1737 data 1 "ab" -do -1;
1738
1739 data 2 "ab" -do -1;
1740
1741 page -all;
1742 /* mlr3
1743 *
1744 * This test will move 20 characters. The characters will start in the middle
1745 * of a word. The last two characters moved will cross a page boundary.
1746 * The instruction word will be moved so that its descriptors cross a
1747 * page boundary.
1748 */
1749
1750 inst mlr -nt "20 char X page bound -io 1" -io 1;
1751
1752 desc 1 -cn 2 /* Effective address will point to a word boundary.
1753 * We will start the string at character 2. Note, when
1754 * we set up the data we have to enter the two characters
1755 * that we are not using. */
1756 -ns 20;
1757
1758 desc 2 -cn 2 -ns 20;
1759
1760 data 1 -do -20 " " 5 "abcd" ;
1761
1762 data 2 -do -20 000000 5 "abcd" ; /* Skipped data in a result field
1763 * must be zeros since this is what
1764 * et initializes the test area
1765 * to be. */
1766
1767 page -all;
1768 /* mlr4
1769 *
1770 * This test is the same as mlr3 except that the descriptors will be
1771 * referenced via indirect words. These indirect words will use no
1772 * modification so the descriptors and the data will still be in
1773 * segment etx. Also we will move the instruction word back
1774 * so that the second descriptor is on the 2nd page.
1775 */
1776
1777 inst mlr -nt "Same as prev - ind desc" -io 2
1778 -mf1 id -mf2 id;
1779
1780 desc 1 -ns 20 -cn 2; /* Note the order of the terms. */
1781
1782 desc 2 -cn 2 -ns 20;
1783
1784 data 1 -do -20 " " 5 "abcd" ;
1785
1786 data 2 -do -20 000 000 5 "abcd" ;
1787
1788 page -all;
1789 /* mlr5
1790 *
1791 /* This test is the same as mlr4 except that the indirect words will
1792 * use index register modification.
1793 */
1794
1795 inst mlr -nt "Same as prev - use indexes" -io 2
1796 -mf2 idr -mf1 idr; /* Note order of mf terms. */
1797
1798 desc 1 -cn 2 -ns 20;
1799
1800 desc 2 -cn 2 -ns 20;
1801
1802 data 1 -do -20 " " 5 "abcd" ;
1803
1804 data 2 -do -20 000 000 5 "abcd" ;
1805
1806 page -all;
1807 /* mlr6
1808 *
1809 /* This test is the same as mlr4 except that the indirect words will
1810 * use AR modification. This will force ET to place the descriptors and
1811 * the data fields in segments eti1 and eti2.
1812 */
1813
1814 inst mlr -nt "Ind with AR mod" -io 2
1815 -mf2 ida -mf1 ida;
1816
1817 desc 1 -cn 2 -ns 20;
1818
1819 desc 2 -cn 2 -ns 20;
1820
1821 data 1 -do -20 " " 5 "abcd" ;
1822
1823 data 2 -do -20 000 000 5 "abcd" ;
1824
1825 page -all;
1826 /* mlr7
1827 *
1828 * This test is the same as the test mlr3 except that the descriptors
1829 * will use REG and RL modification.
1830 */
1831
1832 inst mlr -nt "Ind with REG 7. RL mod" -io 1
1833 -mf2 reg rl 20
1834 -mf1 rl 20 reg;
1835
1836 desc 1 -cn 2;
1837
1838 desc 2 -cn 2;
1839
1840 data 1 -do -20 " " 5 "abcd" ;
1841
1842 data 2 -do -20 000 000 5 "abcd" ;
1843
1844 page -all;
1845
1846 /* mlr8
1847 *
1848 * This test is the same as the test mlr3 except that the descriptors
1849 * will use AR, REG and RL modification.
1850 */
1851
1852 inst mlr -nt "Desc use AR,REG,& RL mod" -io 1
1853 -mf1 reg ar rl 20
1854 -mf2 rl 20 ar reg;
1855
1856 desc 1 -cn 2;
1857
1858 desc 2 -cn 2;
1859
1860 data 1 -do -20 " " 5 "abcd" ;
1861
1862 data 2 -do -20 000 000 5 "abcd" ;
1863
1864 page -all;
1865
1866 /* mlr9
1867 *
1868 * This test is the same as the test mlr3 except that the descriptors
1869 * will use AR, REG and RL modification AND we will use indirect descriptors.
1870 * We will not have any modification in the indirect words so the descriptors
1871 * will still be in segment etx.
1872 */
1873
1874 inst mlr -nt "Same as prev - use ind" -io 1
1875 -mf1 rl 20
1876 ar /* This puts the data in etd1. */
1877 reg /* Use index register 1.. */
1878 id /* This adds indirect descriptors. */
1879
1880 -mf2 id
1881 rl 20
1882 reg
1883 ar;
1884
1885 desc 1 -cn 2;
1886
1887 desc 2 -cn 2;
1888
1889 data 1 -do -20 " " 5 "abcd" ;
1890
1891 data 2 -do -20 000 000 5 "abcd" ;
1892
1893 page -all;
1894
1895 /* mlr10
1896 *
1897 * This test is the same as the test mlr3 except that the descriptors
1898 * will use AR, REG and RL modification AND we will use indirect descriptors.
1899 * The indirect words will use both reg and ar modification.
1900 */
1901
1902 inst mlr -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1
1903 -mf1 rl 20
1904 ar /* This puts the data in etd1. */
1905 reg /* Use index register 1.. */
1906 idb /* This adds indirect descriptors. Descriptors will go in
1907 * segments eti1 and eti2. */
1908
1909 -mf2 idb
1910 rl 20
1911 reg
1912 ar;
1913
1914 desc 1 -cn 2;
1915
1916 desc 2 -cn 2;
1917
1918 data 1 -do -20 " " 5 "abcd" ;
1919
1920 data 2 -do -20 000 000 5 "abcd" ;
1921
1922 page -all;
1923
1924 /* mlr11
1925 *
1926 * This test will move 6 6 bit characters. Both strings will have 3 characters
1927 * on each side of the page boundary. The descriptor 2 data will be offset 4
1928 * 9 bit characters but will specify a "cn" field of 3 so the effective starting
1929 * address will be the same as descriptor 1. All possible modification will be
1930 * used. Descriptor 1 will also use RL modification.
1931 */
1932
1933 inst mlr -nt "6 bit chars X pg bound"
1934
1935 -mf1 rl 6 idb ar reg
1936
1937 -mf2 reg ar idb;
1938
1939
1940 desc 1 -ta 6;
1941
1942 desc 2 -cn 3 -ta 6 -ns 6;
1943
1944
1945 data 1 -do -2 212223242526;
1946
1947 data 2 -do -4
1948 2 000 /* We must fill in the unused 3 six bit characters. */
1949 212223242526; /* The actual data result field. */
1950
1951
1952 page -all;
1953
1954 /* mlr12
1955 *
1956 * This test will move 3 4 bit characters. Below is a description of what is
1957 * going on. EA is the effective address of the descriptor.
1958 *
1959 * string 1 EA 1 | 2 3
1960 * ---------------------------------------------------
1961 * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7
1962 * ---------------------------------------------------
1963 * string 2 EA 1 2 | 3
1964 *
1965 * All possible modification will be used. Descriptor 2 will use RL mod.
1966 */
1967
1968 inst mlr -nt "4 bit chars"
1969
1970 -mf1 idb ar reg
1971
1972 -mf2 reg ar idb rl 3;
1973
1974
1975 desc 1 -ta 4 -cn 1 -ns 3;
1976
1977 desc 2 -cn 6 -ta 4;
1978
1979
1980 data 1 011 253 -do -1;
1981
1982 data 2 -do -4 000000000 232 26;
1983
1984
1985 page -all;
1986
1987 /* mlr13
1988 *
1989 * This test will move 6 9 bit characters into 6 6 bit characters.
1990 * Both strings will be split in the middle across a page boundary.
1991 */
1992
1993 inst mlr -nt "9 bit chars into 6 bit chars"
1994 -mf1 ar reg idr
1995 -mf2 reg ar idb;
1996
1997 data 1 -do -3 " te" "st ";
1998
1999 data 2 -do -2 406445 636440;
2000
2001
2002 desc 1 -ns 6;
2003
2004 desc 2 -ns 6 -ta 6;
2005
2006
2007 page -all;
2008
2009 /* mlr14
2010 *
2011 * This test will test the fill character function.
2012 * Also the truncation bit will be turned ON but we will specify that
2013 * we do not expect a truncation fault.
2014 */
2015
2016 inst mlr -nt "Use fill char" -io 3
2017
2018 -fc* -tbn
2019
2020 -mf1 idr ar rl 4
2021 -mf2 ida reg rl 8;
2022
2023 /* No desc statements are needed because all the defaults are correct. */
2024
2025 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2026
2027 data 2 "abcd" "****"
2028 -do -4; /* The fill characters go on a different page. */
2029
2030
2031 page -all;
2032
2033 /* mlr15
2034 *
2035 * This is the same test as mlr14 except the fill characters will start on
2036 * one page and end on the next page.
2037 * we do not expect a truncation fault.
2038 */
2039
2040 inst mlr -nt "Fill X pg bound" -io 1
2041
2042 -fc* -tbn
2043
2044 -mf1 idr ar rl 4
2045 -mf2 ida reg ar rl 8;
2046
2047 /* No desc statements are needed because all the defaults are correct. */
2048
2049 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2050
2051 data 2 "abcd**" "**"
2052 -do -6; /* The fill characters are split across a page boundary. */
2053
2054
2055 page -all;
2056
2057 /* mlr16
2058 *
2059 * This test is designed to test truncation. We will expect the truncation
2060 * indicator to be ON. The truncation bit will be left OFF and so we will not
2061 * expect a truncation fault.
2062 */
2063
2064
2065 inst mlr -nt "Trunc Ind ON"
2066 -mf2 ar -io 2 -ir tn;
2067
2068 desc 1 -ns 8; desc 2 -ns 4;
2069
2070
2071 data 1 -do -4 "abcd" "1234";
2072
2073 data 2 -do -2 "abcd";
2074
2075
2076 page -all;
2077
2078 /* mlr17
2079 *
2080 * This test is designed to test truncation. We will expect the truncation
2081 * indicator to be ON. This test is the same as mlr16 except that the
2082 * truncation bit in the instruction word will be set ON. This should
2083 * cause a truncation fault. We should be ready for it.
2084 */
2085
2086
2087 inst mlr -nt "Take trunc fault" -tby
2088 -mf2 ar -io 2 -ir tn;
2089
2090 desc 1 -ns 8; desc 2 -ns 4;
2091
2092
2093 data 1 -do -4 "abcd" "1234";
2094
2095 data 2 -do -2 "abcd";
2096
2097
2098 page -all;
2099
2100 /* mlr18
2101 *
2102 * This test will try to move over a page of data. We will move 1088 words
2103 * containing the characters "cisl".
2104 */
2105
2106
2107 inst mlr -nt "Move over 1 page" -io 1
2108 -mf1 rl 4352 idb ar reg
2109 -mf2 rl 4352 idbar reg;
2110
2111 data 1 -do -128 1088 "cisl";
2112
2113 data 2 -do -128 1088 "cisl";
2114
2115 page -all;
2116
2117
2118 ^L
2119
2120
2121 /* mrl1
2122 *
2123 * Just a simple test. Move one 9 bit character to another. */
2124
2125 inst mrl -nt "Move 1 9 bit char";
2126
2127 desc 1 -ns 1; data 1 "a";
2128
2129 desc 2 -ns 1; data 2 "a";
2130
2131 page -all;
2132
2133 /* mrl2
2134 *
2135 * Move two characters that cross a page boundary. Note, we need AR
2136 * modification in order to set a data offset that is not a multiple
2137 * of the word size. By doing this we will move the data fields to
2138 * segments etd1 and etd2.
2139 */
2140
2141 inst mrl -nt "2 chars X page bound"
2142 -mf1 ar
2143 -mf2 ar;
2144
2145 desc 1 -ns 2; desc 2 -ns 2;
2146
2147 data 1 "ab" -do -1;
2148
2149 data 2 "ab" -do -1;
2150
2151 page -all;
2152
2153 /* mrl3
2154 *
2155 * This test will move 20 characters. The characters will start in the middle
2156 * of a word. The last two characters moved will cross a page boundary.
2157 * The instruction word will be moved so that its descriptors cross a
2158 * page boundary.
2159 */
2160
2161 inst mrl -nt "20 char X page bound -io 1" -io 1;
2162
2163 desc 1 -cn 2 /* Effective address will point to a word boundary.
2164 * We will start the string at character 2. Note, when
2165 * we set up the data we have to enter the two characters
2166 * that we are not using. */
2167 -ns 20;
2168
2169 desc 2 -cn 2 -ns 20;
2170
2171 data 1 -do -20 " " 5 "abcd" ;
2172
2173 data 2 -do -20 000000 5 "abcd" ; /* Skipped data in a result field
2174 * must be zeros since this is what
2175 * et initializes the test area
2176 * to be. */
2177
2178 page -all;
2179
2180 /* mrl4
2181 *
2182 * This test is the same as mrl3 except that the descriptors will be
2183 * referenced via indirect words. These indirect words will use no
2184 * modification so the descriptors and the data will still be in
2185 * segment etx. Also we will move the instruction word back
2186 * so that the second descriptor is on the 2nd page.
2187 */
2188
2189 inst mrl -nt "Same as prev - ind desc" -io 2
2190 -mf1 id -mf2 id;
2191
2192 desc 1 -ns 20 -cn 2; /* Note the order of the terms. */
2193
2194 desc 2 -cn 2 -ns 20;
2195
2196 data 1 -do -20 " " 5 "abcd" ;
2197
2198 data 2 -do -20 000 000 5 "abcd" ;
2199
2200 page -all;
2201
2202 /* mrl5
2203 *
2204 /* This test is the same as mrl4 except that the indirect words will
2205 * use index register modification.
2206 */
2207
2208 inst mrl -nt "Same as prev - use indexes" -io 2
2209 -mf2 idr -mf1 idr; /* Note order of mf terms. */
2210
2211 desc 1 -cn 2 -ns 20;
2212
2213 desc 2 -cn 2 -ns 20;
2214
2215 data 1 -do -20 " " 5 "abcd" ;
2216
2217 data 2 -do -20 000 000 5 "abcd" ;
2218
2219 page -all;
2220
2221 /* mrl6
2222 *
2223 /* This test is the same as mrl4 except that the indirect words will
2224 * use AR modification. This will force ET to place the descriptors and
2225 * the data fields in segments eti1 and eti2.
2226 */
2227
2228 inst mrl -nt "Ind with AR mod" -io 2
2229 -mf2 ida -mf1 ida;
2230
2231 desc 1 -cn 2 -ns 20;
2232
2233 desc 2 -cn 2 -ns 20;
2234
2235 data 1 -do -20 " " 5 "abcd" ;
2236
2237 data 2 -do -20 000 000 5 "abcd" ;
2238
2239 page -all;
2240
2241 /* mrl7
2242 *
2243 * This test is the same as the test mrl3 except that the descriptors
2244 * will use REG and RL modification.
2245 */
2246
2247 inst mrl -nt "Ind with REG 7. RL mod" -io 1
2248 -mf2 reg rl 20
2249 -mf1 rl 20 reg;
2250
2251 desc 1 -cn 2;
2252
2253 desc 2 -cn 2;
2254
2255 data 1 -do -20 " " 5 "abcd" ;
2256
2257 data 2 -do -20 000 000 5 "abcd" ;
2258
2259 page -all;
2260
2261 /* mrl8
2262 *
2263 * This test is the same as the test mrl3 except that the descriptors
2264 * will use AR, REG and RL modification.
2265 */
2266
2267 inst mrl -nt "Desc use AR,REG,& RL mod" -io 1
2268 -mf1 reg ar rl 20
2269 -mf2 rl 20 ar reg;
2270
2271 desc 1 -cn 2;
2272
2273 desc 2 -cn 2;
2274
2275 data 1 -do -20 " " 5 "abcd" ;
2276
2277 data 2 -do -20 000 000 5 "abcd" ;
2278
2279 page -all;
2280
2281 /* mrl9
2282 *
2283 * This test is the same as the test mrl3 except that the descriptors
2284 * will use AR, REG and RL modification AND we will use indirect descriptors.
2285 * We will not have any modification in the indirect words so the descriptors
2286 * will still be in segment etx.
2287 */
2288
2289 inst mrl -nt "Same as prev - use ind" -io 1
2290 -mf1 rl 20
2291 ar /* This puts the data in etd1. */
2292 reg /* Use index register 1.. */
2293 id /* This adds indirect descriptors. */
2294
2295 -mf2 id
2296 rl 20
2297 reg
2298 ar;
2299
2300 desc 1 -cn 2;
2301
2302 desc 2 -cn 2;
2303
2304 data 1 -do -20 " " 5 "abcd" ;
2305
2306 data 2 -do -20 000 000 5 "abcd" ;
2307
2308 page -all;
2309
2310 /* mrl10
2311 *
2312 * This test is the same as the test mrl3 except that the descriptors
2313 * will use AR, REG and RL modification AND we will use indirect descriptors.
2314 * The indirect words will use both reg and ar modification.
2315 */
2316
2317 inst mrl -nt "Desc: AR,RL,REG Ind: AR,REG" -io 1
2318 -mf1 rl 20
2319 ar /* This puts the data in etd1. */
2320 reg /* Use index register 1.. */
2321 idb /* This adds indirect descriptors. Descriptors will go in
2322 * segments eti1 and eti2. */
2323
2324 -mf2 idb
2325 rl 20
2326 reg
2327 ar;
2328
2329 desc 1 -cn 2;
2330
2331 desc 2 -cn 2;
2332
2333 data 1 -do -20 " " 5 "abcd" ;
2334
2335 data 2 -do -20 000 000 5 "abcd" ;
2336
2337 page -all;
2338
2339 /* mrl11
2340 *
2341 * This test will move 6 6 bit characters. Both strings will have 3 characters
2342 * on each side of the page boundary. The descriptor 2 data will be offset 4
2343 * 9 bit characters but will specify a "cn" field of 3 so the effective starting
2344 * address will be the same as descriptor 1. All possible modification will be
2345 * used. Descriptor 1 will also use RL modification.
2346 */
2347
2348 inst mrl -nt "6 bit chars X pg bound"
2349
2350 -mf1 rl 6 idb ar reg
2351
2352 -mf2 reg ar idb;
2353
2354
2355 desc 1 -ta 6;
2356
2357 desc 2 -cn 3 -ta 6 -ns 6;
2358
2359
2360 data 1 -do -2 212223242526;
2361
2362 data 2 -do -4
2363 2 000 /* We must fill in the unused 3 six bit characters. */
2364 212223242526; /* The actual data result field. */
2365
2366
2367 page -all;
2368
2369 /* mrl12
2370 *
2371 * This test will move 3 4 bit characters. Below is a description of what is
2372 * going on. EA is the effective address of the descriptor.
2373 *
2374 * string 1 EA 1 | 2 3
2375 * ---------------------------------------------------
2376 * char addr 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7
2377 * ---------------------------------------------------
2378 * string 2 EA 1 2 | 3
2379 *
2380 * All possible modification will be used. Descriptor 2 will use RL mod.
2381 */
2382
2383 inst mrl -nt "4 bit chars"
2384
2385 -mf1 idb ar reg
2386
2387 -mf2 reg ar idb rl 3;
2388
2389
2390 desc 1 -ta 4 -cn 1 -ns 3;
2391
2392 desc 2 -cn 6 -ta 4;
2393
2394
2395 data 1 011 253 -do -1;
2396
2397 data 2 -do -4 000000000 232 26;
2398
2399
2400 page -all;
2401
2402 /* mrl13
2403 *
2404 * This test will move 6 9 bit characters into 6 6 bit characters.
2405 * Both strings will be split in the middle across a page boundary.
2406 */
2407
2408 inst mrl -nt "9 bit chars into 6 bit chars"
2409 -mf1 ar reg idr
2410 -mf2 reg ar idb;
2411
2412 data 1 -do -3 " te" "st ";
2413
2414 data 2 -do -2 406445 636440;
2415
2416
2417 desc 1 -ns 6;
2418
2419 desc 2 -ns 6 -ta 6;
2420
2421
2422 page -all;
2423
2424 /* mrl14
2425 *
2426 * This test will test the fill character function.
2427 * Also the truncation bit will be turned ON but we will specify that
2428 * we do not expect a truncation fault.
2429 */
2430
2431 inst mrl -nt "Use fill char" -io 3
2432
2433 -fc* -tbn
2434
2435 -mf1 idr ar rl 4
2436 -mf2 ida reg rl 8;
2437
2438 /* No desc statements are needed because all the defaults are correct. */
2439
2440 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2441
2442 data 2 "****" "abcd"
2443 -do -4; /* The fill characters go on a different page. */
2444
2445
2446 page -all;
2447
2448 /* mrl15
2449 *
2450 * This is the same test as mrl14 except the fill characters will start on
2451 * one page and end on the next page.
2452 * we do not expect a truncation fault.
2453 */
2454
2455 inst mrl -nt "Fill X pg bound" -io 1
2456
2457 -fc* -tbn
2458
2459 -mf1 idr ar rl 4
2460 -mf2 ida reg ar rl 8;
2461
2462 /* No desc statements are needed because all the defaults are correct. */
2463
2464 data 1 "abcd" -do -2; /* Split the 4 characters across a page boundary. */
2465
2466 data 2 "**" "**abcd"
2467 -do -2; /* The fill characters are split across a page boundary. */
2468
2469
2470 page -all;
2471
2472 /* mrl16
2473 *
2474 * This test is designed to test truncation. We will expect the truncation
2475 * indicator to be ON. The truncation bit will be left OFF and so we will not
2476 * expect a truncation fault.
2477 */
2478
2479
2480 inst mrl -nt "Trunc Ind ON"
2481 -mf2 ar -io 2 -ir tn;
2482
2483 desc 1 -ns 8; desc 2 -ns 4;
2484
2485
2486 data 1 -do -4 "abcd" "1234";
2487
2488 data 2 -do -2 "1234";
2489
2490
2491 page -all;
2492
2493 /* mrl17
2494 *
2495 * This test is designed to test truncation. We will expect the truncation
2496 * indicator to be ON. This test is the same as mrl16 except that the
2497 * truncation bit in the instruction word will be set ON. This should
2498 * cause a truncation fault. We should be ready for it.
2499 */
2500
2501
2502 inst mrl -nt "Take trunc fault" -tby
2503 -mf2 ar -io 2 -ir tn;
2504
2505 desc 1 -ns 8; desc 2 -ns 4;
2506
2507
2508 data 1 -do -4 "abcd" "1234";
2509
2510 data 2 -do -2 "1234";
2511
2512
2513 page -all;
2514
2515 /* mrl18
2516 *
2517 * This test will try to move over a page of data. We will move 1088 words
2518 * containing the characters "cisl".
2519 */
2520
2521
2522 inst mrl -nt "Move over 1 page" -io 1
2523 -mf1 rl 4352 idb ar reg
2524 -mf2 rl 4352 idbar reg;
2525
2526 data 1 -do -128 1088 "cisl";
2527
2528 data 2 -do -128 1088 "cisl";
2529
2530 page -all;
2531
2532
2533 ^L
2534
2535
2536 /* mvt 1
2537 *
2538 * Just a simple test. Table is "0123". result = "01233210".
2539 */
2540
2541 inst mvt -nt "Simple test with 9 bit chars";
2542
2543 desc 1 -ns 8;
2544 desc 2 -ns 8;
2545
2546 data 1 000 001 002 003 003 002 001 000; /* 9 bit characters used as indexes. */
2547
2548 data 2 "01233210";
2549
2550 data 3 "0123";
2551
2552
2553 page -all;
2554 /* mvt 2
2555 *
2556 * Same test as mvt 1 except that the data fields have been move across
2557 * a page boundary.
2558 */
2559
2560 inst mvt -nt "Same as prev - fields X pg bound" -io 1;
2561
2562 desc 1 -ns 8;
2563 desc 2 -ns 8;
2564
2565 data 1 -do -4 000 001 002 003 003 002 001 000;
2566
2567 data 2 -do -4 "0123" "3210";
2568
2569 data 3 "0123";
2570
2571
2572 page -all;
2573 /* mvt 3
2574 *
2575 * Same test as mvt 2 except we will add a lot of modification and adjust
2576 * that data fields so that they do not begin on WORD boundaries.
2577 */
2578
2579 inst mvt -nt "Same as prev - with mod" -io 3
2580 -mf1 rl 8 ar reg idb
2581 -mf2 rl 8 ar reg idb
2582 -mf3 ar reg;
2583
2584 /* No desc statements needed since rl mod specified and other defaults OK. */
2585
2586 data 1 -do -2 000 001 002 003 003 002 001 000;
2587
2588 data 2 -do -2 "01" "233210";
2589
2590 data 3 "0123";
2591
2592
2593 page -all;
2594 /* mvt 4
2595 *
2596 * This test will use a fill character. The table will have 110 characters
2597 * but we should only reference 5 of them.
2598 */
2599
2600 inst mvt -nt "Use fill characters"
2601 -io 1
2602 -fce /* Fill character is "e" = 145 octal. */
2603 -mf1 ar
2604 -mf2 ar
2605 -mf3 ar;
2606
2607 desc 1 -ns 3;
2608
2609 desc 2 -ns 8; /* L2 > L1 => use of fill character. */
2610
2611 /* There are no legal fields we can specify with a desc 3 statement
2612 * for this instruction.
2613 */
2614
2615
2616 data 1 -do -1 "c" "ba";
2617
2618 data 2 -do -5 "32155" "555";
2619
2620 data 3 -do -100
2621 97 "*" /* These characters in table never used. */
2622 "123" "45"
2623 9 "*";
2624
2625
2626 page -all;
2627
2628 /* mvt 5
2629 *
2630 * Test page faults when first character of desc 1 and 2 are
2631 * at the end of a page.
2632 */
2633
2634 inst mvt -nt"check special page fault 1"
2635 -io 1;
2636
2637 desc 1 -ns 9 -cn 3 ;
2638 desc 2 -ns 9 -cn 3 ;
2639
2640 data 1 -do -4 " " 000 001 002 003 002 000 004 005 003 ;
2641 data 2 -do -4 000 000 000 "character" ;
2642 data 3 "charted" ;
2643
2644 page -all ;
2645
2646
2647 /* mvt 6
2648 *
2649 * Test page faults when last character of desc 1 and 2 are on a new page.
2650 *
2651 */
2652
2653 inst mvt -nt "check special page fault 2"
2654 -io 1 ;
2655
2656 desc 1 -ns 9 ;
2657
2658 desc 2 -ns 9 ;
2659
2660 data 1 -do -8 000 001 002 003 002 000 004 005 003 ;
2661
2662 data 2 -do -8 "character" ;
2663
2664 data 3 "charte" ;
2665
2666 page -all ;
2667
2668
2669 /* mvt 7
2670 *
2671 * Test direct data movement for data 1 and 2 .
2672 * Also test moving data across 3 pages. To move more than
2673 * 4096 characters of data register length modification must be used.
2674 */
2675
2676 inst mvt -nt "dir desc. 3 page move; FCOs PHAFPG179 & 181 required on L68 CPU"
2677 -mf1 rl 4112
2678 -mf2 rl 4112 ;
2679
2680 desc 1 -cn 1 ;
2681
2682 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2683
2684 data 2 -do -4 257 "abcdefghijklmnop" ;
2685
2686 data 3 "abcdefghijklmnop" ;
2687
2688 page -all ;
2689
2690 /* mvt 8
2691 *
2692 * Test address register usage for data 1 and 2. Also test moving data across
2693 * 3 pages. All descriptors are direct.
2694 * Also use register length modification.
2695 */
2696
2697 inst mvt -nt "tst ar1&ar2. 3 pg move;FCOs PHAFPG179 & 181 required on L68 CPU"
2698 -io 2
2699 -mf1 ar rl 4112
2700 -mf2 ar rl 4112 ;
2701
2702 desc 1 -cn 1 ;
2703
2704
2705 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2706
2707 data 2 -do -4 257 "abcdefghijklmnop" ;
2708
2709 data 3 "abcdefghijklmnop" ;
2710
2711 page -all ;
2712
2713
2714 /* mvt 9
2715 * Test ar, reg, and register length modification for data 1 and 2.
2716 * Also test data movement of three pages.
2717 */
2718
2719 inst mvt -nt "tst ar,rg,rl. 3 pg mv; FCOs PHAFPG179 & 181 required on L68 CPU"
2720 -io 2
2721 -mf1 ar reg rl 4112
2722 -mf2 ar reg rl 4112 ;
2723
2724 desc 1 -cn 1 ;
2725
2726 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2727
2728 data 2 -do -4 257 "abcdefghijklmnop" ;
2729
2730 data 3 "abcdefghijklmnop" ;
2731
2732 page -all ;
2733
2734
2735 /* mvt 10
2736 *
2737 * Test indirect referencing of descriptors 1 and 2.
2738 * Test register length modification and move data from 3 pages.
2739 */
2740
2741 inst mvt -nt "tst ind descs; FCOs PHAFPG179 & 181 required on L68 CPU"
2742 -io 1
2743 -mf1 id rl 4112
2744 -mf2 id rl 4112 ;
2745
2746 desc 1 -cn 1 ;
2747
2748 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2749
2750 data 2 -do -4 257 "abcdefghijklmnop" ;
2751
2752 data 3 "abcdefghijklmnop" ;
2753
2754 page -all ;
2755
2756 /* mvt 11
2757 *
2758 * Test indirect referencing of descriptors 1 and 2 with ar modification
2759 * of the indirect word. Also data is moved from 3 pages.
2760 */
2761
2762 inst mvt -nt "tst ida. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2763 -io 2
2764 -mf1 ida rl 4112
2765 -mf2 ida rl 4112 ;
2766
2767 desc 1 -cn 1 ;
2768
2769 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2770
2771 data 2 -do -4 257 "abcdefghijklmnop" ;
2772
2773 data 3 "abcdefghijklmnop" ;
2774
2775 page -all ;
2776
2777
2778 /* mvt 12
2779 *
2780 * Test indirect referencing of descriptors 1 and 2 with reg modification
2781 * of the indirect word. Also data is moved from 3 pages.
2782 */
2783
2784 inst mvt -nt "tst idr, 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2785 -io 1
2786 -mf1 idr rl 4112
2787 -mf2 idr rl 4112 ;
2788
2789 desc 1 -cn 1 ;
2790
2791 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2792
2793 data 2 -do -4 257 "abcdefghijklmnop" ;
2794
2795 data 3 "abcdefghijklmnop" ;
2796
2797 page -all ;
2798
2799
2800 /* mvt 13
2801 *
2802 * Test indirect referencing of descriptors 1 and 2 with both
2803 * ar and reg modification of the indirect word. Also data is
2804 * moved from three pages.
2805 */
2806
2807 inst mvt -nt "tst idb. 3 pgs moved; FCOs PHAFPG179 & 181 required on L68 CPU"
2808 -io 2
2809 -mf1 idb rl 4112
2810 -mf2 idb rl 4112 ;
2811
2812 desc 1 -cn 1 ;
2813
2814 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2815
2816 data 2 -do -4 257 "abcdefghijklmnop" ;
2817
2818 data 3 "abcdefghijklmnop" ;
2819
2820 page -all ;
2821
2822
2823 /* mvt 14
2824 *
2825 * Test indirect referencing of of descriptors 1 and 2 with
2826 * ar, reg, and reg length modification of the descriptors.
2827 * Data is moved from 3 pages.
2828 */
2829
2830 inst mvt -nt "tst ar,reg,rl,id.; FCOs PHAFPG179 & 181 required on L68 CPU"
2831 -mf1 id ar reg rl 4112
2832 -mf2 id ar reg rl 4112 ;
2833
2834 desc 1 -cn 1 ;
2835
2836 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2837
2838 data 2 -do -4 257 "abcdefghijklmnop" ;
2839
2840 data 3 "abcdefghijklmnop" ;
2841
2842 page -all ;
2843
2844
2845 /* mvt 15
2846 *
2847 * Test indirect referencing of descriptors 1 and 2 with ar
2848 * and reg modification of the indirect word. Also ar, reg,
2849 * and register length modification is applied to the
2850 * descriptors. Three pages of data is moved.
2851 */
2852
2853 inst mvt -nt "tst ar,reg,rl,idb; FCOs PHAFPG179 & 181 required on L68 CPU"
2854 -io 2
2855 -mf1 idb ar reg rl 4112
2856 -mf2 idb ar reg rl 4112 ;
2857
2858 desc 1 -cn 1 ;
2859
2860 data 1 -do -4 " " 257 000001002003004005006007010011012013014015016017 ;
2861
2862 data 2 -do -4 257 "abcdefghijklmnop" ;
2863
2864 data 3 "abcdefghijklmnop" ;
2865
2866 page -all ;
2867
2868
2869
2870 /* mvt 16
2871 *
2872 * Test translation of 9 bit to 6 bit characters. Only direct descriptors
2873 * with no modification are used. All forms of modification and
2874 * indirection have been tested in previous tests.
2875 * This test has no truncation.
2876 *
2877 */
2878
2879 inst mvt -nt "9 to 6 bit chars"
2880 -fc ;
2881
2882 desc 1 -ns 50
2883 -cn 2 ;
2884
2885 desc 2 -ns 50
2886 -cn 5
2887 -ta 6 ;
2888
2889 data 1 -do 4068
2890 " " 6 000001002003004005006007010 ;
2891
2892 data 2 -do 20
2893 000000000060 5 616263414243440060 61626341 ;
2894
2895 data 3 "0123abcd" 23 000 020 ;
2896
2897 page -all;
2898
2899
2900 /* mvt 17
2901 *
2902 * Test translation of 9 to 6 `bit characters.
2903 * L1 is less than L2. String 2 is `blank filled.
2904 *
2905 */
2906
2907 inst mvt -nt "9 to 6 bit chars"
2908 -fc ;
2909
2910 desc 1 -ns 28
2911 -cn 2 ;
2912
2913 desc 2 -ns 50
2914 -cn 5
2915 -ta 6 ;
2916
2917 data 1 -do 4068
2918 " " 6 000001002003004005006007010 ;
2919
2920 data 2 -do 20
2921 000000000060 3 616263414243440060 7 202020 20 ;
2922
2923 data 3 "0123abcd" 24 000 020 ;
2924
2925 page -all;
2926
2927
2928
2929
2930 /* mvt 18
2931 *
2932 * Test translation of 9 to 6 bit characters.
2933 * L1 is greater than L2. Truncation fault is not taken.
2934 *
2935 */
2936
2937 inst mvt -nt "truncation but no fault"
2938 -ir tn ;
2939
2940
2941 desc 1 -ns 50
2942 -cn 2 ;
2943
2944 desc 2 -ns 28
2945 -cn 5
2946 -ta 6 ;
2947
2948 data 1 -do 4068
2949 " " 6 000001002003004005006007010 ;
2950
2951 data 2 -do 20
2952 000000000060 3 616263414243440060 ;
2953
2954 data 3 "0123abcd" 24 000 020 ;
2955
2956 page -all;
2957
2958
2959
2960
2961 /* mvt 19
2962 *
2963 * Test translation of 6 bit to 9 bit characters. Only direct
2964 * descriptors with no modification are used.
2965 * This test has no truncation.
2966 *
2967 */
2968
2969 inst mvt -nt "6-9 bit. no truncation"
2970 -fc ;
2971
2972 desc 1 -ns 63
2973 -cn 3
2974 -ta 6 ;
2975
2976 desc 2 -ns 63 ;
2977
2978 data 1 -do -20
2979 000000 7 000102030405060710 ;
2980
2981 data 2 -do -28
2982 7 141142143144060061062063000 ;
2983
2984 data 3 "abcd0123" 24 000 040 ;
2985
2986 page -all;
2987
2988
2989
2990 /* mvt 20
2991 *
2992 * Test translation of 6 bit to 9 bit characters.
2993 * L1 is less than L2. String 2 is blank filled.
2994 *
2995 */
2996
2997 inst mvt -nt "6-9 bit. blank fill"
2998 -fc ;
2999
3000 desc 1 -ns 29
3001 -cn 3
3002 -ta 6 ;
3003
3004 desc 2 -ns 63 ;
3005
3006 data 1 -do -20
3007 000000 7 000102030405060710 ;
3008
3009 data 2 -do -28
3010 3 141142143144060061062063000 141142 34 040 ;
3011
3012 data 3 "abcd0123" 24 000 040 ;
3013
3014 page -all;
3015
3016
3017
3018 /* mvt 21
3019 *
3020 * Test translation of 6 bit to 9 bit characters.
3021 * L1 is greater than L2. Truncation fault is not taken.
3022 *
3023 */
3024
3025 inst mvt -nt "6-9 bit. truncation"
3026 -ir tn
3027 -fc ;
3028
3029 desc 1 -ns 63
3030 -cn 3
3031 -ta 6 ;
3032
3033 desc 2 -ns 29 ;
3034
3035 data 1 -do -20
3036 000000 7 000102030405060710 ;
3037
3038 data 2 -do -28
3039 3 141142143144060061062063000 141142 ;
3040
3041 data 3 "abcd0123" 24 000 040 ;
3042
3043 page -all;
3044
3045
3046
3047 /* mvt 22
3048 *
3049 * Test translation of 4 bit characters. The test is made
3050 * with full descriptor modification. Data is placed across a
3051 * page boundary.
3052 *
3053 */
3054
3055 inst mvt -nt "4 bit char translation"
3056 -io 1
3057 -mf1 idb ar reg rl 16
3058 -mf2 idb ar reg rl 16
3059 -mf3 ar reg ;
3060
3061 desc 1 -ta 4 ;
3062
3063 desc 2 -ta 4 ;
3064
3065 data 1 -do -4 2 002215053176 ;
3066
3067 data 2 -do -4 2 002215053176 ;
3068
3069 data 3 000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 ;
3070
3071 page -all;
3072
3073
3074 ^L
3075
3076
3077 /* mve1
3078 *
3079 * Move 6 9 bit characters with zero -> "*" replacement.
3080 * All the fields including the micro op string will take faults
3081 * and cross a page boundary.
3082 */
3083
3084 inst mve -nt "zero rep, mod, faults" -io 3
3085 -mf1 idb ar reg rl 6
3086 -mf2 idb ar reg rl 2
3087 -mf3 idb ar reg rl 6;
3088
3089 /* No desc statements needed. */
3090
3091 data 1 -do -4 "0010" "23";
3092
3093 data 2 -do -1 124 /* mvza 4 */
3094 322; /* mvc 2 */
3095
3096 data 3 -do -3 "**1" "023";
3097
3098
3099 page -all;
3100 /* mve2
3101
3102 * this test uses a sequence of micro op strings
3103 * that are appropriate for alpha numeric data.
3104 * each string is input to et such that it is
3105 * explained via a comment after each mop.
3106 * this particular mop sequence and the sending string is
3107 * used for all 6 and 9 bit tests with mod done
3108 * on descriptor access and data placement.
3109 *
3110 */
3111
3112 inst mve -nt "9-9 simple test with no mod"
3113 -mf3 rl 31;
3114
3115 desc 1 -ns 27;
3116
3117 desc 2 -ns 26;
3118
3119
3120 data 1 /* arranged according mop use */
3121 "0012"
3122 "0012"
3123 "0012"
3124 "1234"
3125 "4567"
3126 "-123"
3127 "123";
3128
3129 data 2 /* mops arranged in order */
3130 104 /* mvzb */
3131 060 /* ses es reset */
3132 124 /* mvza */
3133 060 /* ses es reset */
3134 050 /* enf for $ insert */
3135 064 /* ses es reset and bz set */
3136 164 /* mflc */
3137 200075 /* insb with = */
3138 060 /* ses es reset */
3139 220076 /* insa with " not used since es=0 */
3140 304 /* ign */
3141 324 /* mvc */
3142 420 "* +- " /* change table with string shown */
3143 024 /* insm */
3144 344 /* mses sn is set */
3145 364;
3146
3147
3148 data 3 " 12"
3149 "**12"
3150 "$"
3151 " $12"
3152 "="
3153 "*"
3154 "4567"
3155 "****"
3156 "-123"
3157 ";;;";
3158
3159 page -all;
3160 /* mve3
3161
3162 * this test uses a sequence of micro op strings
3163 * that are appropriate for alpha numeric data.
3164 * each string is input to et such that it is
3165 * explained via a comment after each mop.
3166 * this particular mop sequence and the sending string is
3167 * used for all 6 and 9 bit tests with mod done
3168 * on descriptor access and data placement.
3169 *
3170 */
3171
3172 inst mve -nt "9-9offset inst. and desc mod" -io 2
3173 -mf1 ida ar
3174 -mf2 reg
3175 -mf3 rl 31;
3176
3177 desc 1 -ns 27;
3178
3179 desc 2 -ns 26;
3180
3181
3182 data 1 /* arranged according mop use */
3183 "0012"
3184 "0012"
3185 "0012"
3186 "1234"
3187 "4567"
3188 "-123"
3189 "123";
3190
3191 data 2 /* mops arranged in order */
3192 104 /* mvzb */
3193 060 /* ses es reset */
3194 124 /* mvza */
3195 060 /* ses es reset */
3196 050 /* enf for $ insert */
3197 064 /* ses es reset and bz set */
3198 164 /* mflc */
3199 200075 /* insb with = */
3200 060 /* ses es reset */
3201 220076 /* insa with " not used since es=0 */
3202 304 /* ign */
3203 324 /* mvc */
3204 420 "* +- " /* change table with string shown */
3205 024 /* insm */
3206 344 /* mses sn is set */
3207 364; /* mors */
3208
3209
3210 data 3 " 12"
3211 "**12"
3212 "$"
3213 " $12"
3214 "="
3215 "*"
3216 "4567"
3217 "****"
3218 "-123"
3219 ";;;";
3220
3221 page -all;
3222 /* mve4
3223
3224 * this test uses a sequence of micro op strings
3225 * that are appropriate for alpha numeric data.
3226 * each string is input to et such that it is
3227 * explained via a comment after each mop.
3228 * this particular mop sequence and the sending string is
3229 * used for all 6 and 9 bit tests with mod done
3230 * on descriptor access and data placement.
3231 *
3232 */
3233
3234 inst mve -nt "9-9 off inst desc mod d1 off" -io 2
3235 -mf1 ida ar
3236 -mf2 idb ar
3237 -mf3 rl 31;
3238
3239 desc 1 -ns 27;
3240
3241 desc 2 -ns 26;
3242
3243
3244 data 1 /* arranged according mop use */
3245 -do -7
3246 "0012"
3247 "0012"
3248 "0012"
3249 "1234"
3250 "4567"
3251 "-123"
3252 "123";
3253
3254 data 2 /* mops arranged in order */
3255 104 /* mvzb */
3256 060 /* ses es reset */
3257 124 /* mvza */
3258 060 /* ses es reset */
3259 050 /* enf for $ insert */
3260 064 /* ses es reset and bz set */
3261 164 /* mflc */
3262 200075 /* insb with = */
3263 060 /* ses es reset */
3264 220076 /* insa with " not used since es=0 */
3265 304 /* ign */
3266 324 /* mvc */
3267 420 "* +- " /* change table with string shown */
3268 024 /* insm */
3269 344 /* mses sn is set */
3270 364; /* mors */
3271
3272
3273 data 3 " 12"
3274 "**12"
3275 "$"
3276 " $12"
3277 "="
3278 "*"
3279 "4567"
3280 "****"
3281 "-123"
3282 ";;;";
3283
3284 page -all;
3285
3286
3287
3288
3289
3290 /* mve5
3291
3292 * this test uses a sequence of micro op strings
3293 * that are appropriate for alpha numeric data.
3294 * each string is input to et such that it is
3295 * explained via a comment after each mop.
3296 * this particular mop sequence and the sending string is
3297 * used for all 6 and 9 bit tests with mod done
3298 * on descriptor access and data placement.
3299 *
3300 */
3301
3302 inst mve -nt "9-9 d2 offset d1 offset" -io 2
3303 -mf1 ida ar
3304 -mf2 idb ar
3305 -mf3 rl 31;
3306
3307 desc 1 -ns 27;
3308
3309 desc 2 -ns 26;
3310
3311
3312 data 1 /* arranged according mop use */
3313 -do -7
3314 "0012"
3315 "0012"
3316 "0012"
3317 "1234"
3318 "4567"
3319 "-123"
3320 "123";
3321
3322 data 2 /* mops arranged in order */
3323 -do -13
3324 104 /* mvzb */
3325 060 /* ses es reset */
3326 124 /* mvza */
3327 060 /* ses es reset */
3328 050 /* enf for $ insert */
3329 064 /* ses es reset and bz set */
3330 164 /* mflc */
3331 200075 /* insb with = */
3332 060 /* ses es reset */
3333 220076 /* insa with " not used since es=0 */
3334 304 /* ign */
3335 324 /* mvc */
3336 420 "* +- " /* change table with string shown */
3337 024 /* insm */
3338 344 /* mses sn is set */
3339 364; /* mors */
3340
3341
3342 data 3 " 12"
3343 "**12"
3344 "$"
3345 " $12"
3346 "="
3347 "*"
3348 "4567"
3349 "****"
3350 "-123"
3351 ";;;";
3352
3353 page -all;
3354 /* mve6
3355
3356 * this test uses a sequence of micro op strings
3357 * that are appropriate for alpha numeric data.
3358 * each string is input to et such that it is
3359 * explained via a comment after each mop.
3360 * this particular mop sequence and the sending string is
3361 * used for all 6 and 9 bit tests with mod done
3362 * on descriptor access and data placement.
3363 *
3364 */
3365
3366 inst mve -nt "9-9d3 offset d2 offset d1 offset" -io 3
3367 -mf1 ida ar reg
3368 -mf2 idb ar
3369 -mf3 rl 31;
3370
3371 desc 1 -ns 27;
3372
3373 desc 2 -ns 26;
3374
3375
3376 data 1 /* arranged according mop use */
3377 -do -7
3378 "0012"
3379 "0012"
3380 "0012"
3381 "1234"
3382 "4567"
3383 "-123"
3384 "123";
3385
3386 data 2 /* mops arranged in order */
3387 -do -13
3388 104 /* mvzb */
3389 060 /* ses es reset */
3390 124 /* mvza */
3391 060 /* ses es reset */
3392 050 /* enf for $ insert */
3393 064 /* ses es reset and bz set */
3394 164 /* mflc */
3395 200075 /* insb with = */
3396 060 /* ses es reset */
3397 220076 /* insa with " not used since es=0 */
3398 304 /* ign */
3399 324 /* mvc */
3400 420 "* +- " /* change table with string shown */
3401 024 /* insm */
3402 344 /* mses sn is set */
3403 364; /* mors */
3404
3405
3406 data 3 -do -28
3407 " 12"
3408 "**12"
3409 "$"
3410 " $12"
3411 "="
3412 "*"
3413 "4567"
3414 "****"
3415 "-123"
3416 ";;;";
3417
3418 page -all;
3419
3420 /* mve7
3421
3422 * this test uses a sequence of micro op strings
3423 * that are appropriate for alpha numeric data.
3424 * each string is input to et such that it is
3425 * explained via a comment after each mop.
3426 * this particular mop sequence and the sending string is
3427 * used for all 6 and 9 bit tests with mod done
3428 * on descriptor access and data placement.
3429 *
3430 */
3431
3432 inst mve -nt "9-9data 1 totally on p0" -io 3
3433 -mf1 ida ar reg rl 27
3434 -mf2 idb ar
3435 -mf3 ar reg rl 31;
3436
3437
3438 desc 2 -ns 26;
3439
3440
3441 data 1 /* arranged according mop use */
3442 -do -27
3443 "0012"
3444 "0012"
3445 "0012"
3446 "1234"
3447 "4567"
3448 "-123"
3449 "123";
3450
3451 data 2 /* mops arranged in order */
3452 -do -13
3453 104 /* mvzb */
3454 060 /* ses es reset */
3455 124 /* mvza */
3456 060 /* ses es reset */
3457 050 /* enf for $ insert */
3458 064 /* ses es reset and bz set */
3459 164 /* mflc */
3460 200075 /* insb with = */
3461 060 /* ses es reset */
3462 220076 /* insa with " not used since es=0 */
3463 304 /* ign */
3464 324 /* mvc */
3465 420 "* +- " /* change table with string shown */
3466 024 /* insm */
3467 344 /* mses sn is set */
3468 364; /* mors */
3469
3470
3471 data 3 -do 30
3472 " 12"
3473 "**12"
3474 "$"
3475 " $12"
3476 "="
3477 "*"
3478 "4567"
3479 "****"
3480 "-123"
3481 ";;;";
3482
3483 page -all;
3484 /* mve8
3485
3486 * this test uses a sequence of micro op strings
3487 * that are appropriate for alpha numeric data.
3488 * each string is input to et such that it is
3489 * explained via a comment after each mop.
3490 * this particular mop sequence and the sending string is
3491 * used for all 6 and 9 bit tests with mod done
3492 * on descriptor access and data placement.
3493 *
3494 */
3495
3496 inst mve -nt "9-9data 2 totally on p0" -io 3
3497 -mf1 ida ar reg rl 27
3498 -mf2 idb ar rl 26
3499 -mf3 ar reg rl 31;
3500
3501
3502 /* no desc needed */
3503
3504
3505 data 1 /* arranged according mop use */
3506 -do -27
3507 "0012"
3508 "0012"
3509 "0012"
3510 "1234"
3511 "4567"
3512 "-123"
3513 "123";
3514
3515 data 2 /* mops arranged in order */
3516 -do -26
3517 104 /* mvzb */
3518 060 /* ses es reset */
3519 124 /* mvza */
3520 060 /* ses es reset */
3521 050 /* enf for $ insert */
3522 064 /* ses es reset and bz set */
3523 164 /* mflc */
3524 200075 /* insb with = */
3525 060 /* ses es reset */
3526 220076 /* insa with " not used since es=0 */
3527 304 /* ign */
3528 324 /* mvc */
3529 420 "* +- " /* change table with string shown */
3530 024 /* insm */
3531 344 /* mses sn is set */
3532 364; /* mors */
3533
3534
3535 data 3 -do 30
3536 " 12"
3537 "**12"
3538 "$"
3539 " $12"
3540 "="
3541 "*"
3542 "4567"
3543 "****"
3544 "-123"
3545 ";;;";
3546
3547 page -all;
3548 /* mve9
3549
3550 * this test uses a sequence of micro op strings
3551 * that are appropriate for alpha numeric data.
3552 * each string is input to et such that it is
3553 * explained via a comment after each mop.
3554 * this particular mop sequence and the sending string is
3555 * used for all 6 and 9 bit tests with mod done
3556 * on descriptor access and data placement.
3557 *
3558 */
3559
3560 inst mve -nt "9-9all data totally on p0" -io 3
3561 -mf1 ida ar reg rl 27
3562 -mf2 idb ar rl 26
3563 -mf3 ar reg rl 31;
3564
3565
3566 /* no desc needed */
3567
3568
3569 data 1 /* arranged according mop use */
3570 -do -27
3571 "0012"
3572 "0012"
3573 "0012"
3574 "1234"
3575 "4567"
3576 "-123"
3577 "123";
3578
3579 data 2 /* mops arranged in order */
3580 -do -26
3581 104 /* mvzb */
3582 060 /* ses es reset */
3583 124 /* mvza */
3584 060 /* ses es reset */
3585 050 /* enf for $ insert */
3586 064 /* ses es reset and bz set */
3587 164 /* mflc */
3588 200075 /* insb with = */
3589 060 /* ses es reset */
3590 220076 /* insa with " not used since es=0 */
3591 304 /* ign */
3592 324 /* mvc */
3593 420 "* +- " /* change table with string shown */
3594 024 /* insm */
3595 344 /* mses sn is set */
3596 364; /* mors */
3597
3598
3599 data 3 -do -31
3600 " 12"
3601 "**12"
3602 "$"
3603 " $12"
3604 "="
3605 "*"
3606 "4567"
3607 "****"
3608 "-123"
3609 ";;;";
3610
3611 page -all;
3612 /* mve10
3613
3614 * this test uses a sequence of micro op strings
3615 * that are appropriate for alpha numeric data.
3616 * each string is input to et such that it is
3617 * explained via a comment after each mop.
3618 * this particular mop sequence and the sending string is
3619 * used for all 6 and 9 bit tests with mod done
3620 * on descriptor access and data placement.
3621 *
3622 */
3623
3624 inst mve -nt "9-9 all data on p0 all mod" -io 3
3625 -mf1 idb ar reg rl 27
3626 -mf2 idb ar reg rl 26
3627 -mf3 ar reg rl 31;
3628
3629
3630 /* no desc needed */
3631
3632
3633 data 1 /* arranged according mop use */
3634 -do -27
3635 "0012"
3636 "0012"
3637 "0012"
3638 "1234"
3639 "4567"
3640 "-123"
3641 "123";
3642
3643 data 2 /* mops arranged in order */
3644 -do -26
3645 104 /* mvzb */
3646 060 /* ses es reset */
3647 124 /* mvza */
3648 060 /* ses es reset */
3649 050 /* enf for $ insert */
3650 064 /* ses es reset and bz set */
3651 164 /* mflc */
3652 200075 /* insb with = */
3653 060 /* ses es reset */
3654 220076 /* insa with " not used since es=0 */
3655 304 /* ign */
3656 324 /* mvc */
3657 420 "* +- " /* change table with string shown */
3658 024 /* insm */
3659 344 /* mses sn is set */
3660 364; /* mors */
3661
3662
3663 data 3 -do -31
3664 " 12"
3665 "**12"
3666 "$"
3667 " $12"
3668 "="
3669 "*"
3670 "4567"
3671 "****"
3672 "-123"
3673 ";;;";
3674
3675 page -all;
3676 /* mve11
3677
3678 * this test uses a sequence of micro op strings
3679 * that are appropriate for alpha numeric data.
3680 * each string is input to et such that it is
3681 * explained via a comment after each mop.
3682 * this particular mop sequence and the sending string is
3683 * used for all 6 and 9 bit tests with mod done
3684 * on descriptor access and data placement.
3685 *
3686 */
3687
3688 inst mve -nt "6-9 simple test with no mod"
3689 -mf3 rl 31;
3690
3691 desc 1 -ta 6 -ns 27;
3692
3693 desc 2 -ns 26;
3694
3695 desc 3 -ta 9;
3696
3697
3698
3699 data 1 /* arranged according mop use */
3700 606061626060616260606162616263646465666752616263616263;
3701
3702 data 2 /* mops arranged in order */
3703 104 /* mvzb */
3704 060 /* ses es reset */
3705 124 /* mvza */
3706 060 /* ses es reset */
3707 050 /* enf for $ insert */
3708 064 /* ses es reset and bz set */
3709 164 /* mflc */
3710 200075 /* insb with = */
3711 060 /* ses es reset */
3712 220076 /* insa with " not used since es=0 */
3713 304 /* ign */
3714 324 /* mvc */
3715 420 "* +- " /* change table with string shown */
3716 024 /* insm */
3717 344 /* mses sn is set */
3718 364;
3719
3720
3721 data 3 " 12"
3722 "**12"
3723 "$"
3724 " $12"
3725 "="
3726 "*"
3727 "4567"
3728 "****"
3729 "*123"
3730 ";;;";
3731
3732 page -all;
3733 /* mve12
3734
3735 * this test uses a sequence of micro op strings
3736 * that are appropriate for alpha numeric data.
3737 * each string is input to et such that it is
3738 * explained via a comment after each mop.
3739 * this particular mop sequence and the sending string is
3740 * used for all 6 and 9 bit tests with mod done
3741 * on descriptor access and data placement.
3742 *
3743 */
3744
3745 inst mve -nt "6-9 offset inst. and desc mod" -io 2
3746 -mf1 ida ar
3747 -mf2 reg
3748 -mf3 rl 31;
3749
3750 desc 1 -ta 6 -ns 27;
3751
3752 desc 2 -ns 26;
3753
3754
3755 data 1 /* arranged according mop use */
3756 606061626060616260606162616263646465666752616263616263;
3757
3758 data 2 /* mops arranged in order */
3759 104 /* mvzb */
3760 060 /* ses es reset */
3761 124 /* mvza */
3762 060 /* ses es reset */
3763 050 /* enf for $ insert */
3764 064 /* ses es reset and bz set */
3765 164 /* mflc */
3766 200075 /* insb with = */
3767 060 /* ses es reset */
3768 220076 /* insa with " not used since es=0 */
3769 304 /* ign */
3770 324 /* mvc */
3771 420 "* +- " /* change table with string shown */
3772 024 /* insm */
3773 344 /* mses sn is set */
3774 364; /* mors */
3775
3776
3777 data 3 " 12"
3778 "**12"
3779 "$"
3780 " $12"
3781 "="
3782 "*"
3783 "4567"
3784 "****"
3785 "*123"
3786 ";;;";
3787
3788 page -all;
3789 /* mve13
3790
3791 * this test uses a sequence of micro op strings
3792 * that are appropriate for alpha numeric data.
3793 * each string is input to et such that it is
3794 * explained via a comment after each mop.
3795 * this particular mop sequence and the sending string is
3796 * used for all 6 and 9 bit tests with mod done
3797 * on descriptor access and data placement.
3798 *
3799 */
3800
3801 inst mve -nt "6-9 desc mod d1 offset" -io 2
3802 -mf1 ida ar
3803 -mf2 idb ar
3804 -mf3 rl 31;
3805
3806 desc 1 -ta 6 -ns 27;
3807
3808 desc 2 -ns 26;
3809
3810
3811 data 1 /* arranged according mop use */
3812 -do -6
3813 606061626060616260606162616263646465666752616263616263;
3814
3815 data 2 /* mops arranged in order */
3816 104 /* mvzb */
3817 060 /* ses es reset */
3818 124 /* mvza */
3819 060 /* ses es reset */
3820 050 /* enf for $ insert */
3821 064 /* ses es reset and bz set */
3822 164 /* mflc */
3823 200075 /* insb with = */
3824 060 /* ses es reset */
3825 220076 /* insa with " not used since es=0 */
3826 304 /* ign */
3827 324 /* mvc */
3828 420 "* +- " /* change table with string shown */
3829 024 /* insm */
3830 344 /* mses sn is set */
3831 364; /* mors */
3832
3833
3834 data 3 " 12"
3835 "**12"
3836 "$"
3837 " $12"
3838 "="
3839 "*"
3840 "4567"
3841 "****"
3842 "*123"
3843 ";;;";
3844
3845 page -all;
3846
3847
3848
3849
3850
3851 /* mve14
3852
3853 * this test uses a sequence of micro op strings
3854 * that are appropriate for alpha numeric data.
3855 * each string is input to et such that it is
3856 * explained via a comment after each mop.
3857 * this particular mop sequence and the sending string is
3858 * used for all 6 and 9 bit tests with mod done
3859 * on descriptor access and data placement.
3860 *
3861 */
3862
3863 inst mve -nt "6-9 d2 offset d1 offset" -io 2
3864 -mf1 ida ar
3865 -mf2 idb ar
3866 -mf3 rl 31;
3867
3868 desc 1 -ta 6 -ns 27;
3869
3870 desc 2 -ns 26;
3871
3872
3873 data 1 /* arranged according mop use */
3874 -do -6
3875 606061626060616260606162616263646465666752616263616263;
3876
3877 data 2 /* mops arranged in order */
3878 -do -13
3879 104 /* mvzb */
3880 060 /* ses es reset */
3881 124 /* mvza */
3882 060 /* ses es reset */
3883 050 /* enf for $ insert */
3884 064 /* ses es reset and bz set */
3885 164 /* mflc */
3886 200075 /* insb with = */
3887 060 /* ses es reset */
3888 220076 /* insa with " not used since es=0 */
3889 304 /* ign */
3890 324 /* mvc */
3891 420 "* +- " /* change table with string shown */
3892 024 /* insm */
3893 344 /* mses sn is set */
3894 364; /* mors */
3895
3896
3897 data 3 " 12"
3898 "**12"
3899 "$"
3900 " $12"
3901 "="
3902 "*"
3903 "4567"
3904 "****"
3905 "*123"
3906 ";;;";
3907
3908 page -all;
3909 /* mve15
3910
3911 * this test uses a sequence of micro op strings
3912 * that are appropriate for alpha numeric data.
3913 * each string is input to et such that it is
3914 * explained via a comment after each mop.
3915 * this particular mop sequence and the sending string is
3916 * used for all 6 and 9 bit tests with mod done
3917 * on descriptor access and data placement.
3918 *
3919 */
3920
3921 inst mve -nt "6-9 d3 offset and d2 and d1" -io 3
3922 -mf1 ida ar reg
3923 -mf2 idb ar
3924 -mf3 rl 31;
3925
3926 desc 1 -ta 6 -ns 27;
3927
3928 desc 2 -ns 26;
3929
3930
3931 data 1 /* arranged according mop use */
3932 -do -6
3933 606061626060616260606162616263646465666752616263616263;
3934
3935 data 2 /* mops arranged in order */
3936 -do -13
3937 104 /* mvzb */
3938 060 /* ses es reset */
3939 124 /* mvza */
3940 060 /* ses es reset */
3941 050 /* enf for $ insert */
3942 064 /* ses es reset and bz set */
3943 164 /* mflc */
3944 200075 /* insb with = */
3945 060 /* ses es reset */
3946 220076 /* insa with " not used since es=0 */
3947 304 /* ign */
3948 324 /* mvc */
3949 420 "* +- " /* change table with string shown */
3950 024 /* insm */
3951 344 /* mses sn is set */
3952 364; /* mors */
3953
3954
3955 data 3 -do -28
3956 " 12"
3957 "**12"
3958 "$"
3959 " $12"
3960 "="
3961 "*"
3962 "4567"
3963 "****"
3964 "*123"
3965 ";;;";
3966
3967 page -all;
3968
3969 /* mve16
3970
3971 * this test uses a sequence of micro op strings
3972 * that are appropriate for alpha numeric data.
3973 * each string is input to et such that it is
3974 * explained via a comment after each mop.
3975 * this particular mop sequence and the sending string is
3976 * used for all 6 and 9 bit tests with mod done
3977 * on descriptor access and data placement.
3978 *
3979 */
3980
3981 inst mve -nt "6-9 data 1 totally on p0" -io 3
3982 -mf1 ida ar reg rl 27
3983 -mf2 idb ar
3984 -mf3 ar reg rl 31;
3985
3986
3987 desc 1 -ta 6;
3988
3989 desc 2 -ns 26;
3990
3991
3992 data 1 /* arranged according mop use */
3993 -do -28
3994 606061626060616260606162616263646465666752616263616263;
3995
3996 data 2 /* mops arranged in order */
3997 -do -13
3998 104 /* mvzb */
3999 060 /* ses es reset */
4000 124 /* mvza */
4001 060 /* ses es reset */
4002 050 /* enf for $ insert */
4003 064 /* ses es reset and bz set */
4004 164 /* mflc */
4005 200075 /* insb with = */
4006 060 /* ses es reset */
4007 220076 /* insa with " not used since es=0 */
4008 304 /* ign */
4009 324 /* mvc */
4010 420 "* +- " /* change table with string shown */
4011 024 /* insm */
4012 344 /* mses sn is set */
4013 364; /* mors */
4014
4015
4016 data 3 -do 30
4017 " 12"
4018 "**12"
4019 "$"
4020 " $12"
4021 "="
4022 "*"
4023 "4567"
4024 "****"
4025 "*123"
4026 ";;;";
4027
4028 page -all;
4029 /* mve17
4030
4031 * this test uses a sequence of micro op strings
4032 * that are appropriate for alpha numeric data.
4033 * each string is input to et such that it is
4034 * explained via a comment after each mop.
4035 * this particular mop sequence and the sending string is
4036 * used for all 6 and 9 bit tests with mod done
4037 * on descriptor access and data placement.
4038 *
4039 */
4040
4041 inst mve -nt "6-9 data 2 totally on p0" -io 3
4042 -mf1 ida ar reg rl 27
4043 -mf2 idb ar rl 26
4044 -mf3 ar reg rl 31;
4045
4046
4047 desc 1 -ta 6;
4048
4049
4050 data 1 /* arranged according mop use */
4051 606061626060616260606162616263646465666752616263616263;
4052
4053 data 2 /* mops arranged in order */
4054 -do -26
4055 104 /* mvzb */
4056 060 /* ses es reset */
4057 124 /* mvza */
4058 060 /* ses es reset */
4059 050 /* enf for $ insert */
4060 064 /* ses es reset and bz set */
4061 164 /* mflc */
4062 200075 /* insb with = */
4063 060 /* ses es reset */
4064 220076 /* insa with " not used since es=0 */
4065 304 /* ign */
4066 324 /* mvc */
4067 420 "* +- " /* change table with string shown */
4068 024 /* insm */
4069 344 /* mses sn is set */
4070 364; /* mors */
4071
4072
4073 data 3 -do 30
4074 " 12"
4075 "**12"
4076 "$"
4077 " $12"
4078 "="
4079 "*"
4080 "4567"
4081 "****"
4082 "*123"
4083 ";;;";
4084
4085 page -all;
4086 /* mve18
4087
4088 * this test uses a sequence of micro op strings
4089 * that are appropriate for alpha numeric data.
4090 * each string is input to et such that it is
4091 * explained via a comment after each mop.
4092 * this particular mop sequence and the sending string is
4093 * used for all 6 and 9 bit tests with mod done
4094 * on descriptor access and data placement.
4095 *
4096 */
4097
4098 inst mve -nt "6-9 all data totally on p0" -io 3
4099 -mf1 ida ar reg rl 27
4100 -mf2 idb ar rl 26
4101 -mf3 ar reg rl 31;
4102
4103
4104 desc 1 -ta 6;
4105
4106
4107 data 1 /* arranged according mop use */
4108 -do -28
4109 606061626060616260606162616263646465666752616263616263;
4110
4111 data 2 /* mops arranged in order */
4112 -do -26
4113 104 /* mvzb */
4114 060 /* ses es reset */
4115 124 /* mvza */
4116 060 /* ses es reset */
4117 050 /* enf for $ insert */
4118 064 /* ses es reset and bz set */
4119 164 /* mflc */
4120 200075 /* insb with = */
4121 060 /* ses es reset */
4122 220076 /* insa with " not used since es=0 */
4123 304 /* ign */
4124 324 /* mvc */
4125 420 "* +- " /* change table with string shown */
4126 024 /* insm */
4127 344 /* mses sn is set */
4128 364; /* mors */
4129
4130
4131 data 3 -do -31
4132 " 12"
4133 "**12"
4134 "$"
4135 " $12"
4136 "="
4137 "*"
4138 "4567"
4139 "****"
4140 "*123"
4141 ";;;";
4142
4143 page -all;
4144 /* mve19
4145
4146 * this test uses a sequence of micro op strings
4147 * that are appropriate for alpha numeric data.
4148 * each string is input to et such that it is
4149 * explained via a comment after each mop.
4150 * this particular mop sequence and the sending string is
4151 * used for all 6 and 9 bit tests with mod done
4152 * on descriptor access and data placement.
4153 *
4154 */
4155
4156 inst mve -nt "6-9 all data on p0 all mod" -io 3
4157 -mf1 idb ar reg rl 27
4158 -mf2 idb ar reg rl 26
4159 -mf3 ar reg rl 31;
4160
4161
4162 desc 1 -ta 6;
4163
4164
4165 data 1 /* arranged according mop use */
4166 -do -28
4167 606061626060616260606162616263646465666752616263616263;
4168
4169 data 2 /* mops arranged in order */
4170 -do -26
4171 104 /* mvzb */
4172 060 /* ses es reset */
4173 124 /* mvza */
4174 060 /* ses es reset */
4175 050 /* enf for $ insert */
4176 064 /* ses es reset and bz set */
4177 164 /* mflc */
4178 200075 /* insb with = */
4179 060 /* ses es reset */
4180 220076 /* insa with " not used since es=0 */
4181 304 /* ign */
4182 324 /* mvc */
4183 420 "* +- " /* change table with string shown */
4184 024 /* insm */
4185 344 /* mses sn is set */
4186 364; /* mors */
4187
4188
4189 data 3 -do -31
4190 " 12"
4191 "**12"
4192 "$"
4193 " $12"
4194 "="
4195 "*"
4196 "4567"
4197 "****"
4198 "*123"
4199 ";;;";
4200
4201 page -all;
4202 /* mve20
4203
4204 * this test uses a sequence of micro op strings
4205 * that are appropriate for alpha numeric data.
4206 * each string is input to et such that it is
4207 * explained via a comment after each mop.
4208 * this particular mop sequence and the sending string is
4209 * used for all 6 and 9 bit tests with mod done
4210 * on descriptor access and data placement.
4211 *
4212 */
4213
4214 inst mve -nt "9-6 simple test with no mod"
4215 -mf3 rl 31;
4216
4217 desc 1 -ns 27;
4218
4219 desc 2 -ns 26;
4220
4221 desc 3 -ta 6;
4222
4223
4224
4225 data 1 /* arranged according mop use */
4226 "0012"
4227 "0012"
4228 "0012"
4229 "1234"
4230 "4567"
4231 "-123"
4232 "123";
4233
4234 data 2 /* mops arranged in order */
4235 /* change table and mvzb */ 420020054060052053073033000 104
4236 060 /* ses es reset */
4237 124 /* mvza */
4238 060 /* ses es reset */
4239 050 /* enf for $ insert */
4240 064 /* ses es reset and bz set */
4241 164 /* mflc */
4242 200075 /* insb with = */
4243 060 /* ses es reset */
4244 220076 /* insa with " not used since es=0 */
4245 304 /* ign */
4246 324 /* mvc */
4247 024 /* insm */
4248 344 /* mses sn is set */
4249 364;
4250
4251
4252 data 3 20206162545461625320205361627554646566672020202055616263616263;
4253
4254 page -all;
4255 /* mve21
4256
4257 * this test uses a sequence of micro op strings
4258 * that are appropriate for alpha numeric data.
4259 * each string is input to et such that it is
4260 * explained via a comment after each mop.
4261 * this particular mop sequence and the sending string is
4262 * used for all 6 and 9 bit tests with mod done
4263 * on descriptor access and data placement.
4264 *
4265 */
4266
4267 inst mve -nt "9-6 offset inst. and desc mod" -io 2
4268 -mf1 ida ar
4269 -mf2 reg
4270 -mf3 rl 31;
4271
4272 desc 1 -ns 27;
4273
4274 desc 2 -ns 26;
4275
4276 desc 3 -ta 6;
4277
4278 data 1 /* arranged according mop use */
4279 "0012"
4280 "0012"
4281 "0012"
4282 "1234"
4283 "4567"
4284 "-123"
4285 "123";
4286
4287 data 2 /* mops arranged in order */
4288 /* change table and mvzb */ 420020054060052053073033000 104
4289 060 /* ses es reset */
4290 124 /* mvza */
4291 060 /* ses es reset */
4292 050 /* enf for $ insert */
4293 064 /* ses es reset and bz set */
4294 164 /* mflc */
4295 200075 /* insb with = */
4296 060 /* ses es reset */
4297 220076 /* insa with " not used since es=0 */
4298 304 /* ign */
4299 324 /* mvc */
4300 024 /* insm */
4301 344 /* mses sn is set */
4302 364; /* mors */
4303
4304
4305
4306 data 3 20206162545461625320205361627554646566672020202055616263616263;
4307 page -all;
4308
4309 /* mve22
4310
4311 * this test uses a sequence of micro op strings
4312 * that are appropriate for alpha numeric data.
4313 * each string is input to et such that it is
4314 * explained via a comment after each mop.
4315 * this particular mop sequence and the sending string is
4316 * used for all 6 and 9 bit tests with mod done
4317 * on descriptor access and data placement.
4318 *
4319 */
4320
4321 inst mve -nt "9-6 desc mod d1 offset" -io 2
4322 -mf1 ida ar
4323 -mf2 idb ar
4324 -mf3 rl 31;
4325
4326 desc 1 -ns 27;
4327
4328 desc 2 -ns 26;
4329
4330 desc 3 -ta 6;
4331
4332
4333 data 1 /* arranged according mop use */
4334 -do -7
4335 "0012"
4336 "0012"
4337 "0012"
4338 "1234"
4339 "4567"
4340 "-123"
4341 "123";
4342
4343 data 2 /* mops arranged in order */
4344 /* change table and mvzb */ 420020054060052053073033000 104
4345 060 /* ses es reset */
4346 124 /* mvza */
4347 060 /* ses es reset */
4348 050 /* enf for $ insert */
4349 064 /* ses es reset and bz set */
4350 164 /* mflc */
4351 200075 /* insb with = */
4352 060 /* ses es reset */
4353 220076 /* insa with " not used since es=0 */
4354 304 /* ign */
4355 324 /* mvc */
4356 024 /* insm */
4357 344 /* mses sn is set */
4358 364; /* mors */
4359
4360
4361 data 3 20206162545461625320205361627554646566672020202055616263616263;
4362
4363 page -all;
4364
4365
4366
4367
4368
4369 /* mve23
4370
4371 * this test uses a sequence of micro op strings
4372 * that are appropriate for alpha numeric data.
4373 * each string is input to et such that it is
4374 * explained via a comment after each mop.
4375 * this particular mop sequence and the sending string is
4376 * used for all 6 and 9 bit tests with mod done
4377 * on descriptor access and data placement.
4378 *
4379 */
4380
4381 inst mve -nt "9-6 d2 offset d1 offset" -io 2
4382 -mf1 ida ar
4383 -mf2 idb ar
4384 -mf3 rl 31;
4385
4386 desc 1 -ns 27;
4387
4388 desc 2 -ns 26;
4389
4390 desc 3 -ta 6;
4391
4392
4393 data 1 /* arranged according mop use */
4394 -do -7
4395 "0012"
4396 "0012"
4397 "0012"
4398 "1234"
4399 "4567"
4400 "-123"
4401 "123";
4402
4403 data 2 /* mops arranged in order */
4404 -do -13
4405 /* change table and mvzb */ 420020054060052053073033000 104
4406 060 /* ses es reset */
4407 124 /* mvza */
4408 060 /* ses es reset */
4409 050 /* enf for $ insert */
4410 064 /* ses es reset and bz set */
4411 164 /* mflc */
4412 200075 /* insb with = */
4413 060 /* ses es reset */
4414 220076 /* insa with " not used since es=0 */
4415 304 /* ign */
4416 324 /* mvc */
4417 024 /* insm */
4418 344 /* mses sn is set */
4419 364; /* mors */
4420
4421
4422 data 3 20206162545461625320205361627554646566672020202055616263616263;
4423
4424 page -all;
4425 /* mve24
4426
4427 * this test uses a sequence of micro op strings
4428 * that are appropriate for alpha numeric data.
4429 * each string is input to et such that it is
4430 * explained via a comment after each mop.
4431 * this particular mop sequence and the sending string is
4432 * used for all 6 and 9 bit tests with mod done
4433 * on descriptor access and data placement.
4434 *
4435 */
4436
4437 inst mve -nt "9-6 d3 offset d2 and d1" -io 3
4438 -mf1 ida ar reg
4439 -mf2 idb ar
4440 -mf3 rl 31;
4441
4442 desc 1 -ns 27;
4443
4444 desc 2 -ns 26;
4445
4446 desc 3 -ta 6;
4447
4448
4449 data 1 /* arranged according mop use */
4450 -do -7
4451 "0012"
4452 "0012"
4453 "0012"
4454 "1234"
4455 "4567"
4456 "-123"
4457 "123";
4458
4459 data 2 /* mops arranged in order */
4460 -do -13
4461 /* change table and mvzb */ 420020054060052053073033000 104
4462 060 /* ses es reset */
4463 124 /* mvza */
4464 060 /* ses es reset */
4465 050 /* enf for $ insert */
4466 064 /* ses es reset and bz set */
4467 164 /* mflc */
4468 200075 /* insb with = */
4469 060 /* ses es reset */
4470 220076 /* insa with " not used since es=0 */
4471 304 /* ign */
4472 324 /* mvc */
4473 024 /* insm */
4474 344 /* mses sn is set */
4475 364; /* mors */
4476
4477
4478 data 3 -do -28
4479 20206162545461625320205361627554646566672020202055616263616263;
4480
4481 page -all;
4482
4483 /* mve25
4484
4485 * this test uses a sequence of micro op strings
4486 * that are appropriate for alpha numeric data.
4487 * each string is input to et such that it is
4488 * explained via a comment after each mop.
4489 * this particular mop sequence and the sending string is
4490 * used for all 6 and 9 bit tests with mod done
4491 * on descriptor access and data placement.
4492 *
4493 */
4494
4495 inst mve -nt "9-6 data 1 totally on p0" -io 3
4496 -mf1 ida ar reg rl 27
4497 -mf2 idb ar
4498 -mf3 ar reg rl 31;
4499
4500
4501 desc 2 -ns 26;
4502
4503 desc 3 -ta 6;
4504
4505
4506 data 1 /* arranged according mop use */
4507 -do -27
4508 "0012"
4509 "0012"
4510 "0012"
4511 "1234"
4512 "4567"
4513 "-123"
4514 "123";
4515
4516 data 2 /* mops arranged in order */
4517 -do -13
4518 /* change table and mvzb */ 420020054060052053073033000 104
4519 060 /* ses es reset */
4520 124 /* mvza */
4521 060 /* ses es reset */
4522 050 /* enf for $ insert */
4523 064 /* ses es reset and bz set */
4524 164 /* mflc */
4525 200075 /* insb with = */
4526 060 /* ses es reset */
4527 220076 /* insa with " not used since es=0 */
4528 304 /* ign */
4529 324 /* mvc */
4530 024 /* insm */
4531 344 /* mses sn is set */
4532 364; /* mors */
4533
4534
4535 data 3 -do 30
4536 20206162545461625320205361627554646566672020202055616263616263;
4537
4538 page -all;
4539 /* mve26
4540
4541 * this test uses a sequence of micro op strings
4542 * that are appropriate for alpha numeric data.
4543 * each string is input to et such that it is
4544 * explained via a comment after each mop.
4545 * this particular mop sequence and the sending string is
4546 * used for all 6 and 9 bit tests with mod done
4547 * on descriptor access and data placement.
4548 *
4549 */
4550
4551 inst mve -nt "9-6 data 2 totally on p0" -io 3
4552 -mf1 ida ar reg rl 27
4553 -mf2 idb ar rl 26
4554 -mf3 ar reg rl 31;
4555
4556
4557 desc 3 -ta 6;
4558
4559
4560
4561
4562
4563
4564 data 1 /* arranged according mop use */
4565 -do -27
4566 "0012"
4567 "0012"
4568 "0012"
4569 "1234"
4570 "4567"
4571 "-123"
4572 "123";
4573
4574 data 2 /* mops arranged in order */
4575 -do -26
4576 /* change table and mvzb */ 420020054060052053073033000 104
4577 060 /* ses es reset */
4578 124 /* mvza */
4579 060 /* ses es reset */
4580 050 /* enf for $ insert */
4581 064 /* ses es reset and bz set */
4582 164 /* mflc */
4583 200075 /* insb with = */
4584 060 /* ses es reset */
4585 220076 /* insa with " not used since es=0 */
4586 304 /* ign */
4587 324 /* mvc */
4588 024 /* insm */
4589 344 /* mses sn is set */
4590 364; /* mors */
4591
4592
4593 data 3 -do -12
4594 20206162545461625320205361627554646566672020202055616263616263;
4595
4596 page -all;
4597 /* mve27
4598
4599 * this test uses a sequence of micro op strings
4600 * that are appropriate for alpha numeric data.
4601 * each string is input to et such that it is
4602 * explained via a comment after each mop.
4603 * this particular mop sequence and the sending string is
4604 * used for all 6 and 9 bit tests with mod done
4605 * on descriptor access and data placement.
4606 *
4607 */
4608
4609 inst mve -nt "9-6 all data totally on p0"
4610 -mf1 ida ar reg rl 27
4611 -mf2 idb ar rl 26
4612 -mf3 ar reg rl 31;
4613
4614 desc 3 -ta 6;
4615
4616
4617
4618
4619
4620
4621 data 1 /* arranged according mop use */
4622 -do -27
4623 "0012"
4624 "0012"
4625 "0012"
4626 "1234"
4627 "4567"
4628 "-123"
4629 "123";
4630
4631 data 2 /* mops arranged in order */
4632 -do -26
4633 /* change table and mvzb */ 420020054060052053073033000 104
4634 060 /* ses es reset */
4635 124 /* mvza */
4636 060 /* ses es reset */
4637 050 /* enf for $ insert */
4638 064 /* ses es reset and bz set */
4639 164 /* mflc */
4640 200075 /* insb with = */
4641 060 /* ses es reset */
4642 220076 /* insa with " not used since es=0 */
4643 304 /* ign */
4644 324 /* mvc */
4645 024 /* insm */
4646 344 /* mses sn is set */
4647 364; /* mors */
4648
4649
4650 data 3 -do -32
4651 20206162545461625320205361627554646566672020202055616263616263;
4652
4653 page -all;
4654 /* mve28
4655
4656 * this test uses a sequence of micro op strings
4657 * that are appropriate for alpha numeric data.
4658 * each string is input to et such that it is
4659 * explained via a comment after each mop.
4660 * this particular mop sequence and the sending string is
4661 * used for all 6 and 9 bit tests with mod done
4662 * on descriptor access and data placement.
4663 *
4664 */
4665
4666 inst mve -nt "9-6 all data on p0 all mod" -io 3
4667 -mf1 idb ar reg rl 27
4668 -mf2 idb ar reg rl 26
4669 -mf3 ar reg rl 31;
4670
4671 desc 3 -ta 6;
4672
4673
4674
4675
4676
4677
4678 data 1 /* arranged according mop use */
4679 -do -27
4680 "0012"
4681 "0012"
4682 "0012"
4683 "1234"
4684 "4567"
4685 "-123"
4686 "123";
4687
4688 data 2 /* mops arranged in order */
4689 -do -26
4690 /* change table and mvzb */ 420020054060052053073033000 104
4691 060 /* ses es reset */
4692 124 /* mvza */
4693 060 /* ses es reset */
4694 050 /* enf for $ insert */
4695 064 /* ses es reset and bz set */
4696 164 /* mflc */
4697 200075 /* insb with = */
4698 060 /* ses es reset */
4699 220076 /* insa with " not used since es=0 */
4700 304 /* ign */
4701 324 /* mvc */
4702 024 /* insm */
4703 344 /* mses sn is set */
4704 364; /* mors */
4705
4706
4707 data 3 -do -32
4708 20206162545461625320205361627554646566672020202055616263616263;
4709
4710 page -all;
4711 /* mve29
4712
4713 * this test uses a sequence of micro op strings
4714 * that are appropriate for alpha numeric data.
4715 * each string is input to et such that it is
4716 * explained via a comment after each mop.
4717 * this particular mop sequence and the sending string is
4718 * used for all 6 and 9 bit tests with mod done
4719 * on descriptor access and data placement.
4720 *
4721 */
4722
4723 inst mve -nt "6-6 simple test with no mod"
4724 -mf3 rl 31;
4725
4726 desc 1 -ta 6 -ns 27;
4727
4728 desc 2 -ns 26;
4729
4730 desc 3 -ta 6;
4731
4732
4733
4734 data 1 /* arranged according mop use */
4735 000001020000010200000102010203040405060752010203010203;
4736 data 2 /* mops arranged in order */
4737 /* change table and mvzb */ 420020054060052053073033000 104
4738 060 /* ses es reset */
4739 124 /* mvza */
4740 060 /* ses es reset */
4741 050 /* enf for $ insert */
4742 064 /* ses es reset and bz set */
4743 164 /* mflc */
4744 200075 /* insb with = */
4745 060 /* ses es reset */
4746 220076 /* insa with " not used since es=0 */
4747 304 /* ign */
4748 324 /* mvc */
4749 024 /* insm */
4750 344 /* mses sn is set */
4751 364;
4752
4753
4754 data 3 20200102545401025320205301027554040506072020202052010203616263;
4755
4756 page -all;
4757 /* mve30
4758
4759 * this test uses a sequence of micro op strings
4760 * that are appropriate for alpha numeric data.
4761 * each string is input to et such that it is
4762 * explained via a comment after each mop.
4763 * this particular mop sequence and the sending string is
4764 * used for all 6 and 9 bit tests with mod done
4765 * on descriptor access and data placement.
4766 *
4767 */
4768
4769 inst mve -nt "6-6 offset inst. and desc mod" -io 2
4770 -mf1 ida ar
4771 -mf2 reg
4772 -mf3 rl 31;
4773
4774 desc 1 -ta 6 -ns 27;
4775
4776 desc 2 -ns 26;
4777
4778 desc 3 -ta 6;
4779
4780 data 1 /* arranged according mop use */
4781 000001020000010200000102010203040405060752010203010203;
4782 data 2 /* mops arranged in order */
4783 /* change table and mvzb */ 420020054060052053073033000 104
4784 060 /* ses es reset */
4785 124 /* mvza */
4786 060 /* ses es reset */
4787 050 /* enf for $ insert */
4788 064 /* ses es reset and bz set */
4789 164 /* mflc */
4790 200075 /* insb with = */
4791 060 /* ses es reset */
4792 220076 /* insa with " not used since es=0 */
4793 304 /* ign */
4794 324 /* mvc */
4795 024 /* insm */
4796 344 /* mses sn is set */
4797 364; /* mors */
4798
4799
4800
4801 data 3 20200102545401025320205301027554040506072020202052010203616263;
4802 page -all;
4803
4804 /* mve31
4805
4806 * this test uses a sequence of micro op strings
4807 * that are appropriate for alpha numeric data.
4808 * each string is input to et such that it is
4809 * explained via a comment after each mop.
4810 * this particular mop sequence and the sending string is
4811 * used for all 6 and 9 bit tests with mod done
4812 * on descriptor access and data placement.
4813 *
4814 */
4815
4816 inst mve -nt "6-6 desc mod d1 offset" -io 2
4817 -mf1 ida ar
4818 -mf2 idb ar
4819 -mf3 rl 31;
4820
4821 desc 1 -ta 6 -ns 27;
4822
4823 desc 2 -ns 26;
4824
4825 desc 3 -ta 6;
4826
4827
4828 data 1 /* arranged according mop use */
4829 -do -6
4830 000001020000010200000102010203040405060752010203010203;
4831 data 2 /* mops arranged in order */
4832 /* change table and mvzb */ 420020054060052053073033000 104
4833 060 /* ses es reset */
4834 124 /* mvza */
4835 060 /* ses es reset */
4836 050 /* enf for $ insert */
4837 064 /* ses es reset and bz set */
4838 164 /* mflc */
4839 200075 /* insb with = */
4840 060 /* ses es reset */
4841 220076 /* insa with " not used since es=0 */
4842 304 /* ign */
4843 324 /* mvc */
4844 024 /* insm */
4845 344 /* mses sn is set */
4846 364; /* mors */
4847
4848
4849 data 3 20200102545401025320205301027554040506072020202052010203616263;
4850
4851 page -all;
4852
4853
4854
4855
4856
4857 /* mve32
4858
4859 * this test uses a sequence of micro op strings
4860 * that are appropriate for alpha numeric data.
4861 * each string is input to et such that it is
4862 * explained via a comment after each mop.
4863 * this particular mop sequence and the sending string is
4864 * used for all 6 and 9 bit tests with mod done
4865 * on descriptor access and data placement.
4866 *
4867 */
4868
4869 inst mve -nt "6-6 d2 offset d1 offset" -io 2
4870 -mf1 ida ar
4871 -mf2 idb ar
4872 -mf3 rl 31;
4873
4874 desc 1 -ta 6 -ns 27;
4875
4876 desc 2 -ns 26;
4877
4878 desc 3 -ta 6;
4879
4880
4881 data 1 /* arranged according mop use */
4882 -do -6
4883 000001020000010200000102010203040405060752010203010203;
4884 data 2 /* mops arranged in order */
4885 -do -13
4886 /* change table and mvzb */ 420020054060052053073033000 104
4887 060 /* ses es reset */
4888 124 /* mvza */
4889 060 /* ses es reset */
4890 050 /* enf for $ insert */
4891 064 /* ses es reset and bz set */
4892 164 /* mflc */
4893 200075 /* insb with = */
4894 060 /* ses es reset */
4895 220076 /* insa with " not used since es=0 */
4896 304 /* ign */
4897 324 /* mvc */
4898 024 /* insm */
4899 344 /* mses sn is set */
4900 364; /* mors */
4901
4902
4903 data 3 20200102545401025320205301027554040506072020202052010203616263;
4904
4905 page -all;
4906 /* mve33
4907
4908 * this test uses a sequence of micro op strings
4909 * that are appropriate for alpha numeric data.
4910 * each string is input to et such that it is
4911 * explained via a comment after each mop.
4912 * this particular mop sequence and the sending string is
4913 * used for all 6 and 9 bit tests with mod done
4914 * on descriptor access and data placement.
4915 *
4916 */
4917
4918 inst mve -nt "6-6 d3 offset and d1 and d2" -io 3
4919 -mf1 ida ar reg
4920 -mf2 idb ar
4921 -mf3 rl 31;
4922
4923 desc 1 -ta 6 -ns 27;
4924
4925 desc 2 -ns 26;
4926
4927 desc 3 -ta 6;
4928
4929
4930 data 1 /* arranged according mop use */
4931 -do -6
4932 000001020000010200000102010203040405060752010203010203;
4933 data 2 /* mops arranged in order */
4934 -do -13
4935 /* change table and mvzb */ 420020054060052053073033000 104
4936 060 /* ses es reset */
4937 124 /* mvza */
4938 060 /* ses es reset */
4939 050 /* enf for $ insert */
4940 064 /* ses es reset and bz set */
4941 164 /* mflc */
4942 200075 /* insb with = */
4943 060 /* ses es reset */
4944 220076 /* insa with " not used since es=0 */
4945 304 /* ign */
4946 324 /* mvc */
4947 024 /* insm */
4948 344 /* mses sn is set */
4949 364; /* mors */
4950
4951
4952 data 3 -do -28
4953 20200102545401025320205301027554040506072020202052010203616263;
4954
4955 page -all;
4956
4957 /* mve34
4958
4959 * this test uses a sequence of micro op strings
4960 * that are appropriate for alpha numeric data.
4961 * each string is input to et such that it is
4962 * explained via a comment after each mop.
4963 * this particular mop sequence and the sending string is
4964 * used for all 6 and 9 bit tests with mod done
4965 * on descriptor access and data placement.
4966 *
4967 */
4968
4969 inst mve -nt "6-6 data 1 totally on p0" -io 3
4970 -mf1 ida ar reg rl 27
4971 -mf2 idb ar
4972 -mf3 ar reg rl 31;
4973
4974
4975 desc 1 -ta 6;
4976 desc 2 -ns 26;
4977
4978 desc 3 -ta 6;
4979
4980
4981 data 1 /* arranged according mop use */
4982 -do -28
4983 000001020000010200000102010203040405060752010203010203;
4984 data 2 /* mops arranged in order */
4985 -do -13
4986 /* change table and mvzb */ 420020054060052053073033000 104
4987 060 /* ses es reset */
4988 124 /* mvza */
4989 060 /* ses es reset */
4990 050 /* enf for $ insert */
4991 064 /* ses es reset and bz set */
4992 164 /* mflc */
4993 200075 /* insb with = */
4994 060 /* ses es reset */
4995 220076 /* insa with " not used since es=0 */
4996 304 /* ign */
4997 324 /* mvc */
4998 024 /* insm */
4999 344 /* mses sn is set */
5000 364; /* mors */
5001
5002
5003 data 3 -do 30
5004 20200102545401025320205301027554040506072020202052010203616263;
5005
5006 page -all;
5007 /* mve35
5008
5009 * this test uses a sequence of micro op strings
5010 * that are appropriate for alpha numeric data.
5011 * each string is input to et such that it is
5012 * explained via a comment after each mop.
5013 * this particular mop sequence and the sending string is
5014 * used for all 6 and 9 bit tests with mod done
5015 * on descriptor access and data placement.
5016 *
5017 */
5018
5019 inst mve -nt "6-6 data 2 totally on p0" -io 3
5020 -mf1 ida ar reg rl 27
5021 -mf2 idb ar rl 26
5022 -mf3 ar reg rl 31;
5023
5024
5025 desc 1 -ta 6;
5026
5027 desc 3 -ta 6;
5028
5029
5030
5031
5032
5033
5034 data 1 /* arranged according mop use */
5035 -do -28
5036 000001020000010200000102010203040405060752010203010203;
5037 data 2 /* mops arranged in order */
5038 -do -26
5039 /* change table and mvzb */ 420020054060052053073033000 104
5040 060 /* ses es reset */
5041 124 /* mvza */
5042 060 /* ses es reset */
5043 050 /* enf for $ insert */
5044 064 /* ses es reset and bz set */
5045 164 /* mflc */
5046 200075 /* insb with = */
5047 060 /* ses es reset */
5048 220076 /* insa with " not used since es=0 */
5049 304 /* ign */
5050 324 /* mvc */
5051 024 /* insm */
5052 344 /* mses sn is set */
5053 364; /* mors */
5054
5055
5056 data 3 -do -12
5057 20200102545401025320205301027554040506072020202052010203616263;
5058
5059 page -all;
5060 /* mve36
5061
5062 * this test uses a sequence of micro op strings
5063 * that are appropriate for alpha numeric data.
5064 * each string is input to et such that it is
5065 * explained via a comment after each mop.
5066 * this particular mop sequence and the sending string is
5067 * used for all 6 and 9 bit tests with mod done
5068 * on descriptor access and data placement.
5069 *
5070 */
5071
5072 inst mve -nt "6-6 all data totally on p0"
5073 -mf1 ida ar reg rl 27
5074 -mf2 idb ar rl 26
5075 -mf3 ar reg rl 31;
5076
5077 desc 1 -ta 6;
5078
5079 desc 3 -ta 6;
5080
5081
5082
5083
5084
5085
5086 data 1 /* arranged according mop use */
5087 -do -28
5088 000001020000010200000102010203040405060752010203010203;
5089 data 2 /* mops arranged in order */
5090 -do -26
5091 /* change table and mvzb */ 420020054060052053073033000 104
5092 060 /* ses es reset */
5093 124 /* mvza */
5094 060 /* ses es reset */
5095 050 /* enf for $ insert */
5096 064 /* ses es reset and bz set */
5097 164 /* mflc */
5098 200075 /* insb with = */
5099 060 /* ses es reset */
5100 220076 /* insa with " not used since es=0 */
5101 304 /* ign */
5102 324 /* mvc */
5103 024 /* insm */
5104 344 /* mses sn is set */
5105 364; /* mors */
5106
5107
5108 data 3 -do -32
5109 20200102545401025320205301027554040506072020202052010203616263;
5110
5111 page -all;
5112 /* mve37
5113
5114 * this test uses a sequence of micro op strings
5115 * that are appropriate for alpha numeric data.
5116 * each string is input to et such that it is
5117 * explained via a comment after each mop.
5118 * this particular mop sequence and the sending string is
5119 * used for all 6 and 9 bit tests with mod done
5120 * on descriptor access and data placement.
5121 *
5122 */
5123
5124 inst mve -nt "6-6 all data on p0 all mod" -io 3
5125 -mf1 idb ar reg rl 27
5126 -mf2 idb ar reg rl 26
5127 -mf3 ar reg rl 31;
5128
5129 desc 1 -ta 6;
5130
5131 desc 3 -ta 6;
5132
5133
5134
5135
5136
5137
5138 data 1 /* arranged according mop use */
5139 -do -28
5140 000001020000010200000102010203040405060752010203010203;
5141 data 2 /* mops arranged in order */
5142 -do -26
5143 /* change table and mvzb */ 420020054060052053073033000 104
5144 060 /* ses es reset */
5145 124 /* mvza */
5146 060 /* ses es reset */
5147 050 /* enf for $ insert */
5148 064 /* ses es reset and bz set */
5149 164 /* mflc */
5150 200075 /* insb with = */
5151 060 /* ses es reset */
5152 220076 /* insa with " not used since es=0 */
5153 304 /* ign */
5154 324 /* mvc */
5155 024 /* insm */
5156 344 /* mses sn is set */
5157 364; /* mors */
5158
5159
5160 data 3 -do -32
5161 20200102545401025320205301027554040506072020202052010203616263;
5162
5163 page -all;
5164
5165
5166 ^L
5167
5168 /* tct1
5169 *
5170 * Out table will be indexed by the characters "abcde". "b" & "e" are the two
5171 * non zero entries. Start off with a simple test
5172 */
5173
5174 inst tct -nt "Simple test";
5175
5176 desc 1 -ns 4;
5177
5178 data 1 "aceb";
5179
5180 data 2 97 "*" /* These characters should never be referenced. */
5181 000 /* "a" */
5182 "b"
5183 000 /* "c" */
5184 "d"
5185 000 ; /* "e" */
5186
5187 data 3 "b" 000 000 003;
5188
5189 page -all;
5190 /* tct2
5191 *
5192 * Same as tct1 only we will move the data fields across page boundaries and
5193 * add modification.
5194 */
5195
5196 inst tct -nt "Same as prev - fields X pg bound" -io 3
5197 -mf1 rl 4 ar reg idb
5198 -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */
5199
5200 -mf3 reg ar;
5201
5202 data 1 -do -3 "aceb";
5203
5204 data 2 -do -100 97 "*" /* These characters should never be referenced. */
5205 000 /* "a" */
5206 "b"
5207 000 /* "c" */
5208 "d"
5209 000 ; /* "e" */
5210
5211 data 3 "b" 000 000 003;
5212
5213 page -all;
5214 /* tct3
5215 *
5216 * Same as tct2 except string 1 will be changed so we will have a
5217 * tally runout.
5218 */
5219
5220
5221 inst tct -nt "Test tally runout" -io 2
5222 -ir tr
5223 -mf1 ar idb reg rl 18
5224 -mf2 ar reg
5225 -mf3 ar reg;
5226
5227 data 1 -do -9 6 "ace";
5228
5229 data 2 -do -100
5230 97 "*" 000 "b" 000 "d" 000;
5231
5232 data 3 000 000 000 022;
5233
5234
5235 page -all;
5236 /* tct4
5237 *
5238 * Test using 6 bit characters. The -cn field will specify that the string
5239 * starts at the 5th character of the word last character.
5240 */
5241
5242 inst tct -nt "Use 6 bit characters" -io 1
5243 -mf1 idb reg ar
5244 -mf2 reg ar
5245 -mf3 ar reg;
5246
5247 desc 1 -ns 10 -cn 5 -ta 6;
5248
5249 data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */
5250 0606060606 /* Filler, not part of string, 1st 5 characters of word. */
5251 010203 /* Page boundary. */
5252 040506 071011;
5253
5254 data 2 -do -4
5255 000 000 000 000
5256 000 000 006 000 000 000;
5257
5258 data 3 -do 4 006 000000 006;
5259
5260
5261 page -all;
5262 /* tct5
5263 *
5264 * The indexes in string 1 will be 4 bit characters.
5265 */
5266
5267 inst tct -nt "Use 4 bit characters" -io 2
5268 -mf1 idb ar reg
5269 -mf2 ar reg
5270 -mf3 ar reg;
5271
5272
5273 desc 1 -ns 8
5274 -ta 4 /* 4 bit characters. */
5275 -cn 2; /* First 2 characters of word not used.
5276 * This is the first 9 bit character. */
5277
5278 data 1 -do -2
5279 000 /* The first two characters of the word - skipped. */
5280 001 /* Characters "0" and "1". In page 1. */
5281 043 105 147; /* "234567" 4 bit in page 2. */
5282
5283 data 2 -do -4
5284 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */
5285 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */
5286
5287 data 3 "*" 000 000 005;
5288
5289
5290 page -all;
5291
5292
5293
5294 /* tct 6
5295 *
5296 * Test loading across three pages. One character loaded from
5297 * page 1 and 3. Test 6146 characters. Tally runout indicator
5298 * is set.
5299 */
5300
5301 inst tct -nt "6 bitno modif. tally is set"
5302 -io 1
5303 -ir tr
5304 -mf1 rl 6146 ;
5305
5306 desc 1 -cn 5 -ta 6 ;
5307
5308 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5309 000102030405
5310 128 000102030405060710111213141516172021222324252627 ;
5311
5312 data 2 -do -4 24 000 000 141 ;
5313
5314 data 3 000 000 014 002 ;
5315
5316 page -all ;
5317
5318 /* tct 7
5319 *
5320 * Test loading data across three pages. One character is loaded
5321 * from page 1 and 3 with 6146 characters tested. A nonzero
5322 * character is found in the test table.
5323 */
5324
5325 inst tct -nt "6 bitno mod. a nonzero entry"
5326 -mf1 rl 6146 ;
5327
5328 desc 1 -cn 5 -ta 6 ;
5329
5330 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5331 310102030405
5332 128 000102030405060710111213141516172021222324252627 ;
5333
5334 data 2 -do -4 24 000 000 141 ;
5335
5336 data 3 141 000 006 001 ;
5337
5338 page -all ;
5339
5340
5341
5342 /* tct 8
5343 *
5344 * Test similiar to tct 6. Test ar, reg, and rl for descriptor 1.
5345 *
5346 */
5347
5348 inst tct -nt "6 bitar,reg,rl. tally runout"
5349 -io 2
5350 -ir tr
5351 -mf1 ar reg rl 6146 ;
5352
5353 desc 1 -cn 5 -ta 6 ;
5354
5355 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5356 000102030405
5357 128 000102030405060710111213141516172021222324252627 ;
5358
5359 data 2 -do -4 24 000 000 141 ;
5360
5361 data 3 000 000 014 002 ;
5362
5363 page -all ;
5364
5365
5366
5367 /* tct 9
5368 *
5369 * Test similiar to tct 7. Test ar, reg, and rl modification
5370 * for descriptor 1. Test ar and reg modification for descriptor 1 and 2.
5371 *
5372 */
5373
5374 inst tct -nt "6 bitar,reg,rl.no tally runout"
5375 -io 1
5376 -mf1 ar reg rl 6146
5377 -mf2 ar reg
5378 -mf3 ar reg ;
5379
5380 desc 1 -cn 5 -ta 6 ;
5381
5382 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5383 310102030405
5384 128 000102030405060710111213141516172021222324252627 ;
5385
5386 data 2 -do -4 24 000 000 141 ;
5387
5388 data 3 141 000 006 001 ;
5389
5390 page -all ;
5391
5392
5393
5394 /* tct 10
5395 *
5396 * Test similiar to tct 6. Test indirect referencing
5397 * of descriptor 1. Test ar and reg modification for descriptors 2 and 3.
5398 */
5399
5400 inst tct -nt "6 bittest id. tally runout"
5401 -ir tr
5402 -mf1 id rl 6146
5403 -mf2 ar reg
5404 -mf3 ar reg ;
5405
5406 desc 1 -cn 5 -ta 6 ;
5407
5408 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5409 000102030405
5410 128 000102030405060710111213141516172021222324252627 ;
5411
5412 data 2 -do -4 24 000 000 141 ;
5413
5414 data 3 000 000 014 002 ;
5415
5416 page -all ;
5417
5418
5419
5420
5421 /* tct 11
5422 *
5423 * Test similiar to tct 7. Test indirect referencing of
5424 * descriptor 1.
5425 *
5426 */
5427
5428 inst tct -nt "6 bittest id. no tally runout"
5429 -io 2
5430 -mf1 id rl 6146 ;
5431
5432 desc 1 -cn 5 -ta 6 ;
5433
5434 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5435 310102030405
5436 128 000102030405060710111213141516172021222324252627 ;
5437
5438 data 2 -do -4 24 000 000 141 ;
5439
5440 data 3 141 000 006 001 ;
5441
5442 page -all ;
5443
5444
5445 /* tct 12
5446 *
5447 * Test similiar to tct 6. Test indirect referencing of descriptor 1
5448 * with ar modification of the indirect word. Also test reg
5449 * modification of descriptors 2 and 3.
5450 *
5451 */
5452
5453 inst tct -nt "6 bittest ida. tally runout"
5454 -io 1
5455 -ir tr
5456 -mf1 ida rl 6146
5457 -mf2 reg
5458 -mf3 reg ;
5459
5460 desc 1 -cn 5 -ta 6 ;
5461
5462 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5463 000102030405
5464 128 000102030405060710111213141516172021222324252627 ;
5465
5466 data 2 -do -4 24 000 000 141 ;
5467
5468 data 3 000 000 014 002 ;
5469
5470 page -all ;
5471
5472
5473
5474 /* tct 13
5475 *
5476 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5477 * with ar modification of the indirect word. Also test ar
5478 * modification of descriptors 2 and 3.
5479 *
5480 */
5481
5482 inst tct -nt "6 bittest ida. no tally runout"
5483 -mf1 ida rl 6146
5484 -mf2 ar
5485 -mf3 ar ;
5486
5487 desc 1 -cn 5 -ta 6 ;
5488
5489 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5490 310102030405
5491 128 000102030405060710111213141516172021222324252627 ;
5492
5493 data 2 -do -4 24 000 000 141 ;
5494
5495 data 3 141 000 006 001 ;
5496
5497 page -all ;
5498
5499
5500
5501 /* tct 14
5502 *
5503 * Test similiar to tct 6. Test indirect referencing of decriptor 1
5504 * with ar and reg modification of the indirect word.
5505 *
5506 */
5507
5508 inst tct -nt "6 bittest idb. tally runout"
5509 -io 2
5510 -ir tr
5511 -mf1 idb rl 6146 ;
5512
5513 desc 1 -cn 5 -ta 6 ;
5514
5515 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5516 000102030405
5517 128 000102030405060710111213141516172021222324252627 ;
5518
5519 data 2 -do -4 24 000 000 141 ;
5520
5521 data 3 000 000 014 002 ;
5522
5523 page -all ;
5524
5525
5526
5527 /* tct 15
5528 *
5529 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5530 * with ar and reg modification of the indirect word.
5531 *
5532 */
5533
5534 inst tct -nt "6 bittest idb. no tally runout"
5535 -mf1 idb rl 6146 ;
5536
5537 desc 1 -cn 5 -ta 6 ;
5538
5539 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5540 310102030405
5541 128 000102030405060710111213141516172021222324252627 ;
5542
5543 data 2 -do -4 24 000 000 141 ;
5544
5545 data 3 141 000 006 001 ;
5546
5547 page -all ;
5548
5549
5550
5551 /* tct 16
5552 *
5553 * Test similiar to tct 6. Test indirect referencing of descriptor 1
5554 * with ar and reg modification of the indirect word. Further the
5555 * descriptor has ar, reg, and rl modification.
5556 *
5557 */
5558
5559 inst tct -nt "6 bitidb,ar,reg. tally runout"
5560 -io 1
5561 -ir tr
5562 -mf1 idb ar reg rl 6146 ;
5563
5564 desc 1 -cn 5 -ta 6 ;
5565
5566 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5567 000102030405
5568 128 000102030405060710111213141516172021222324252627 ;
5569
5570 data 2 -do -4 24 000 000 141 ;
5571
5572 data 3 000 000 014 002 ;
5573
5574 page -all ;
5575
5576
5577
5578 /* tct 17
5579 *
5580 * Test similiar to tct 7. Test indirect referencing of descriptor 1
5581 * with ar and reg modification of the indirect word. Further the
5582 * descriptor has ar, reg, and rl modification.
5583 *
5584 */
5585
5586 inst tct -nt "6bitidb,ar,reg.no tally runout"
5587 -io 2
5588 -mf1 idb ar reg rl 6146 ;
5589
5590 desc 1 -cn 5 -ta 6 ;
5591
5592 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5593 310102030405
5594 128 000102030405060710111213141516172021222324252627 ;
5595
5596 data 2 -do -4 24 000 000 141 ;
5597
5598 data 3 141 000 006 001 ;
5599
5600 page -all ;
5601
5602 /* tct 18
5603 *
5604 * Test for character match on the first character of page 3.
5605 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
5606 * ar and reg modification of descriptors 2 and 3.
5607 *
5608 */
5609
5610 inst tct -nt "6 bitmatch 1st char of page 3"
5611 -io 1
5612 -mf1 idb ar reg rl 6146
5613 -mf2 reg ar
5614 -mf3 reg ar ;
5615
5616 desc 1 -cn 5 -ta 6 ;
5617
5618 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5619 128 000102030405060710111213141516172021222324252627
5620 31 ;
5621
5622 data 2 -do -4 24 000 000 141 ;
5623
5624 data 3 141 000 014 001 ;
5625
5626 page -all ;
5627
5628
5629 /* tct 19
5630 *
5631 * Test for character match on the last character of page 1.
5632 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
5633 * ar and reg modification of descriptors 2 and 3.
5634 *
5635 */
5636
5637 inst tct -nt "6 bitmatch last char of page 1"
5638 -io 1
5639 -mf1 idb ar reg rl 6146
5640 -mf2 reg ar
5641 -mf3 reg ar ;
5642
5643 desc 1 -cn 5 -ta 6 ;
5644
5645 data 1 -do -4 " " 031 128 010203040506071011121314151617202122232425262700
5646 128 000102030405060710111213141516172021222324252627
5647 00 ;
5648
5649 data 2 -do -4 24 000 000 141 ;
5650
5651 data 3 141 000 000 000 ;
5652
5653 page -all ;
5654
5655
5656 ^L
5657
5658
5659 /* tctr1
5660 *
5661 * Out table will be indexed by the characters "abcde". "b" & "e" are the two
5662 * non zero entries. Start off with a simple test
5663 */
5664
5665 inst tctr -nt "Simple test";
5666
5667 desc 1 -ns 4;
5668
5669 data 1 "bace";
5670
5671 data 2 97 "*" /* These characters should never be referenced. */
5672 000 /* "a" */
5673 "b"
5674 000 /* "c" */
5675 "d"
5676 000 ; /* "e" */
5677
5678 data 3 "b" 000 000 003;
5679
5680 page -all;
5681 /* tctr2
5682 *
5683 * Same as tctr1 only we will move the data fields across page boundaries and
5684 * add modification.
5685 */
5686
5687 inst tctr -nt "Same as prev - fields X pg bound" -io 3
5688 -mf1 rl 4 ar reg idb
5689 -mf2 ar reg /* RL and ID mod NOT allowed for descriptors 2 & 3. */
5690
5691 -mf3 reg ar;
5692
5693 data 1 -do -3 "bace";
5694
5695 data 2 -do -100 97 "*" /* These characters should never be referenced. */
5696 000 /* "a" */
5697 "b"
5698 000 /* "c" */
5699 "d"
5700 000 ; /* "e" */
5701
5702 data 3 "b" 000 000 003;
5703
5704 page -all;
5705 /* tctr3
5706 *
5707 * Same as tctr2 except string 1 will be changed so we will have a
5708 * tally runout.
5709 */
5710
5711
5712 inst tctr -nt "Test tally runout" -io 2
5713 -ir tr
5714 -mf1 ar idb reg rl 18
5715 -mf2 ar reg
5716 -mf3 ar reg;
5717
5718 data 1 -do -9 6 "ace";
5719
5720 data 2 -do -100
5721 97 "*" 000 "b" 000 "d" 000;
5722
5723 data 3 000 000 000 022;
5724
5725
5726 page -all;
5727 /* tctr4
5728 *
5729 * Test using 6 bit characters. The -cn field will specify that the string
5730 * starts at the 5th character of the word last character.
5731 */
5732
5733 inst tctr -nt "Use 6 bit characters" -io 1
5734 -mf1 idb reg ar
5735 -mf2 reg ar
5736 -mf3 ar reg;
5737
5738 desc 1 -ns 10 -cn 5 -ta 6;
5739
5740 data 1 -do -6 /* Test string is 0 1 2 3 4 5 6 7 10 11 */
5741 0606060606 /* Filler, not part of string, 1st 5 characters of word. */
5742 010203 /* Page boundary. */
5743 040506 071011;
5744
5745 data 2 -do -4
5746 000 000 000 000
5747 000 000 006 000 000 000;
5748
5749 data 3 -do 4 006 000000 003;
5750
5751
5752 page -all;
5753 /* tctr5
5754 *
5755 * The indexes in string 1 will be 4 bit characters.
5756 */
5757
5758 inst tctr -nt "Use 4 bit characters" -io 2
5759 -mf1 idb ar reg
5760 -mf2 ar reg
5761 -mf3 ar reg;
5762
5763
5764 desc 1 -ns 8
5765 -ta 4 /* 4 bit characters. */
5766 -cn 2; /* First 2 characters of word not used.
5767 * This is the first 9 bit character. */
5768
5769 data 1 -do -2
5770 000 /* The first two characters of the word - skipped. */
5771 001 /* Characters "0" and "1". In page 1. */
5772 043 105 147; /* "234567" 4 bit in page 2. */
5773
5774 data 2 -do -4
5775 000 000 000 000 /* All in page 1. Represent index values 0,1,2,3 */
5776 000 "*" 000 000; /* In page 2. Correspond to index values 4,5,6,7 */
5777
5778 data 3 "*" 000 000 002;
5779
5780
5781 page -all;
5782
5783
5784
5785 /* tctr 6
5786 *
5787 * Test loading across three pages. One character loaded from
5788 * page 1 and 3. Test 6146 characters. Tally runout indicator
5789 * is set.
5790 */
5791
5792 inst tctr -nt "6bitno modif. tally is set"
5793 -io 1
5794 -ir tr
5795 -mf1 rl 6146 ;
5796
5797 desc 1 -cn 5 -ta 6 ;
5798
5799 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5800 000102030405
5801 128 000102030405060710111213141516172021222324252627 ;
5802
5803 data 2 -do -4 24 000 000 141 ;
5804
5805 data 3 000 000 014 002 ;
5806
5807 page -all ;
5808
5809 /* tctr 7
5810 *
5811 * Test loading data across three pages. One character is loaded
5812 * from page 1 and 3 with 6146 characters tested. A nonzero
5813 * character is found in the test table.
5814 */
5815
5816 inst tctr -nt "6bitno modif. a nonzero entry"
5817 -mf1 rl 6146 ;
5818
5819 desc 1 -cn 5 -ta 6 ;
5820
5821 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5822 310102030405
5823 128 000102030405060710111213141516172021222324252627 ;
5824
5825 data 2 -do -4 24 000 000 141 ;
5826
5827 data 3 141 000 006 000 ;
5828
5829 page -all ;
5830
5831
5832
5833 /* tctr 8
5834 *
5835 * Test similiar to tctr 6. Test ar, reg, and rl for descriptor 1.
5836 *
5837 */
5838
5839 inst tctr -nt "6bitar,reg,rl. tally runout"
5840 -io 2
5841 -ir tr
5842 -mf1 ar reg rl 6146 ;
5843
5844 desc 1 -cn 5 -ta 6 ;
5845
5846 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5847 000102030405
5848 128 000102030405060710111213141516172021222324252627 ;
5849
5850 data 2 -do -4 24 000 000 141 ;
5851
5852 data 3 000 000 014 002 ;
5853
5854 page -all ;
5855
5856
5857
5858 /* tctr 9
5859 *
5860 * Test similiar to tctr 7. Test ar, reg, and rl modification
5861 * for descriptor 1. Test ar and reg modification for descriptor 1 and 2.
5862 *
5863 */
5864
5865 inst tctr -nt "6bitar,reg,rl. no tally runout"
5866 -io 1
5867 -mf1 ar reg rl 6146
5868 -mf2 ar reg
5869 -mf3 ar reg ;
5870
5871 desc 1 -cn 5 -ta 6 ;
5872
5873 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5874 310102030405
5875 128 000102030405060710111213141516172021222324252627 ;
5876
5877 data 2 -do -4 24 000 000 141 ;
5878
5879 data 3 141 000 006 000 ;
5880
5881 page -all ;
5882
5883
5884
5885 /* tctr 10
5886 *
5887 * Test similiar to tctr 6. Test indirect referencing
5888 * of descriptor 1. Test ar and reg modification for descriptors 2 and 3.
5889 */
5890
5891 inst tctr -nt "6bittest id. tally runout"
5892 -ir tr
5893 -mf1 id rl 6146
5894 -mf2 ar reg
5895 -mf3 ar reg ;
5896
5897 desc 1 -cn 5 -ta 6 ;
5898
5899 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5900 000102030405
5901 128 000102030405060710111213141516172021222324252627 ;
5902
5903 data 2 -do -4 24 000 000 141 ;
5904
5905 data 3 000 000 014 002 ;
5906
5907 page -all ;
5908
5909
5910
5911
5912 /* tctr 11
5913 *
5914 * Test similiar to tctr 7. Test indirect referencing of
5915 * descriptor 1.
5916 *
5917 */
5918
5919 inst tctr -nt "6bittest id. no tally runout"
5920 -io 2
5921 -mf1 id rl 6146 ;
5922
5923 desc 1 -cn 5 -ta 6 ;
5924
5925 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5926 310102030405
5927 128 000102030405060710111213141516172021222324252627 ;
5928
5929 data 2 -do -4 24 000 000 141 ;
5930
5931 data 3 141 000 006 000 ;
5932
5933 page -all ;
5934
5935
5936 /* tctr 12
5937 *
5938 * Test similiar to tctr 6. Test indirect referencing of descriptor 1
5939 * with ar modification of the indirect word. Also test reg
5940 * modification of descriptors 2 and 3.
5941 *
5942 */
5943
5944 inst tctr -nt "6bittest ida. tally runout"
5945 -io 1
5946 -ir tr
5947 -mf1 ida rl 6146
5948 -mf2 reg
5949 -mf3 reg ;
5950
5951 desc 1 -cn 5 -ta 6 ;
5952
5953 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5954 000102030405
5955 128 000102030405060710111213141516172021222324252627 ;
5956
5957 data 2 -do -4 24 000 000 141 ;
5958
5959 data 3 000 000 014 002 ;
5960
5961 page -all ;
5962
5963
5964
5965 /* tctr 13
5966 *
5967 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
5968 * with ar modification of the indirect word. Also test ar
5969 * modification of descriptors 2 and 3.
5970 *
5971 */
5972
5973 inst tctr -nt "6bittest ida. no tally runout"
5974 -mf1 ida rl 6146
5975 -mf2 ar
5976 -mf3 ar ;
5977
5978 desc 1 -cn 5 -ta 6 ;
5979
5980 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
5981 310102030405
5982 128 000102030405060710111213141516172021222324252627 ;
5983
5984 data 2 -do -4 24 000 000 141 ;
5985
5986 data 3 141 000 006 000 ;
5987
5988 page -all ;
5989
5990
5991
5992 /* tctr 14
5993 *
5994 * Test similiar to tctr 6. Test indirect referencing of decriptor 1
5995 * with ar and reg modification of the indirect word.
5996 *
5997 */
5998
5999 inst tctr -nt "6bittest idb. tally runout"
6000 -io 2
6001 -ir tr
6002 -mf1 idb rl 6146 ;
6003
6004 desc 1 -cn 5 -ta 6 ;
6005
6006 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6007 000102030405
6008 128 000102030405060710111213141516172021222324252627 ;
6009
6010 data 2 -do -4 24 000 000 141 ;
6011
6012 data 3 000 000 014 002 ;
6013
6014 page -all ;
6015
6016
6017
6018 /* tctr 15
6019 *
6020 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
6021 * with ar and reg modification of the indirect word.
6022 *
6023 */
6024
6025 inst tctr -nt "6bittest idb. no tally runout"
6026 -mf1 idb rl 6146 ;
6027
6028 desc 1 -cn 5 -ta 6 ;
6029
6030 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6031 310102030405
6032 128 000102030405060710111213141516172021222324252627 ;
6033
6034 data 2 -do -4 24 000 000 141 ;
6035
6036 data 3 141 000 006 000 ;
6037
6038 page -all ;
6039
6040
6041
6042 /* tctr 16
6043 *
6044 * Test similiar to tctr 6. Test indirect referencing of descriptor 1
6045 * with ar and reg modification of the indirect word. Further the
6046 * descriptor has ar, reg, and rl modification.
6047 *
6048 */
6049
6050 inst tctr -nt "6bitidb,ar,reg. tally runout"
6051 -io 1
6052 -ir tr
6053 -mf1 idb ar reg rl 6146 ;
6054
6055 desc 1 -cn 5 -ta 6 ;
6056
6057 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6058 000102030405
6059 128 000102030405060710111213141516172021222324252627 ;
6060
6061 data 2 -do -4 24 000 000 141 ;
6062
6063 data 3 000 000 014 002 ;
6064
6065 page -all ;
6066
6067
6068
6069 /* tctr 17
6070 *
6071 * Test similiar to tctr 7. Test indirect referencing of descriptor 1
6072 * with ar and reg modification of the indirect word. Further the
6073 * descriptor has ar, reg, and rl modification.
6074 *
6075 */
6076
6077 inst tctr -nt "6bitidb,ar,reg.no tally runout"
6078 -io 2
6079 -mf1 idb ar reg rl 6146 ;
6080
6081 desc 1 -cn 5 -ta 6 ;
6082
6083 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6084 310102030405
6085 128 000102030405060710111213141516172021222324252627 ;
6086
6087 data 2 -do -4 24 000 000 141 ;
6088
6089 data 3 141 000 006 000 ;
6090
6091 page -all ;
6092
6093 /* tctr 18
6094 *
6095 * Test for character match on the first character of page 3.
6096 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
6097 * ar and reg modification of descriptors 2 and 3.
6098 *
6099 */
6100
6101 inst tctr -nt "6bitmatch 1st char of page 3"
6102 -io 1
6103 -mf1 idb ar reg rl 6146
6104 -mf2 reg ar
6105 -mf3 reg ar ;
6106
6107 desc 1 -cn 5 -ta 6 ;
6108
6109 data 1 -do -4 " " 000 128 010203040506071011121314151617202122232425262700
6110 128 000102030405060710111213141516172021222324252627
6111 31 ;
6112
6113 data 2 -do -4 24 000 000 141 ;
6114
6115 data 3 141 000 000 000 ;
6116
6117 page -all ;
6118
6119
6120 /* tctr 19
6121 *
6122 * Test for character match on the last character of page 1.
6123 * Also, test idb, ar, reg, and rl of descriptor 1. Also, test
6124 * ar and reg modification of descriptors 2 and 3.
6125 *
6126 */
6127
6128 inst tctr -nt "6bitmatch last char of page 1"
6129 -io 1
6130 -mf1 idb ar reg rl 6146
6131 -mf2 reg ar
6132 -mf3 reg ar ;
6133
6134 desc 1 -cn 5 -ta 6 ;
6135
6136 data 1 -do -4 " " 031 128 010203040506071011121314151617202122232425262700
6137 128 000102030405060710111213141516172021222324252627
6138 00 ;
6139
6140 data 2 -do -4 24 000 000 141 ;
6141
6142 data 3 141 000 014 001 ;
6143
6144 page -all ;
6145
6146
6147 ^L
6148
6149
6150 /* scm1
6151 *
6152 * No match found in data 1 field so tally runout indicator will be ON.
6153 * CN field used in descriptor 1 and its data will cross a page boundary.
6154 */
6155
6156 inst scm -nt "Tally runout" -io 3
6157 -mc^G /* Mask = 007 octal. */
6158 -ir tr
6159 -mf1 ida
6160 -mf2 ar
6161 -mf3 ar reg;
6162
6163
6164 desc 1 -ns 3 -cn 3 -ta 9;
6165
6166 desc 2 -ns 4 -cn 1;
6167
6168
6169 data 1 -do -4
6170 000 000 000 /* Fill due to cn 3. */
6171 011 /* Part of string on page 1. */
6172 021 031; /* Part of string on page 2. */
6173
6174 data 2 -do -1 000 001;
6175
6176 data 3 000 000 000 003;
6177
6178 page -all;
6179 /* scm2
6180
6181 * simple test to determine if instruction
6182 * is working correctly. data is 9 bit
6183 * written in octal format to allow easy
6184 * comparison with the mask. this test
6185 * accesses all descriptors directly.
6186 *
6187 */
6188
6189 inst scm -nt "mc 8 9bit"
6190 -mc8;
6191
6192 desc 1 -ns 8 -ta 9;
6193
6194 data 1 060061062063064065066067;
6195
6196 data 2 047;
6197
6198 data 3 000 000 000 007;
6199
6200 page -all;
6201
6202
6203 /* scm3
6204
6205 * same data as test 2 but with data 1
6206 * split across page boundary. indirect
6207 * mod on desc 1 and 2.
6208 *
6209 */
6210
6211 inst scm -io 1 -nt "d1 split mc 8 9bit"
6212 -mc8
6213 -mf1 idb
6214 -mf2 idb;
6215
6216 desc 1 -ns 8 -ta 9;
6217
6218 data 1 -do -4 060061062063 064065066067;
6219
6220 data 2 047;
6221
6222 data 3 000 000 000 007;
6223
6224 page -all;
6225
6226 /* scm4
6227
6228 * same data config as test 2 but with
6229 * full desc mod.
6230 *
6231 */
6232
6233 inst scm -io 3 -nt "d1 split mc8 9bit"
6234 -mc8
6235 -mf1 idb ar reg rl 8
6236 -mf2 idb ar reg
6237 -mf3 ar reg;
6238
6239 desc 1 -ta 9;
6240
6241 data 1 060061062063064065066067;
6242
6243 data 2 047;
6244
6245 data 3 000 000 000 007;
6246
6247 page -all;
6248
6249
6250
6251 /* scm5
6252
6253 * test of the -cn option for desc 1 and 2
6254 * along with a varied of """mode of desc mod.
6255 * both data strings are split across page bound.
6256 *
6257 */
6258
6259 inst scm -io 2 -nt "mc8 no match 9bit"
6260 -ir tr
6261 -mc8
6262 -mf1 idb ar reg rl 6
6263 -mf2 ar
6264 -mf3 ar;
6265
6266 desc 1 -ta 9;
6267
6268 desc 2 -cn 3;
6269
6270 data 1 -do -2 000000 060061062063064066;
6271
6272 data 2 -do -1 000 000 000 047;
6273
6274 data 3 000 000 000 006 /* no match */;
6275
6276 page -all;
6277
6278
6279
6280 /* scm6
6281
6282 * data 1 wholey contained on page 0 and
6283 * data starting on word 0 of page 1; char 0.
6284 * all desc mod.
6285 *
6286 */
6287
6288 inst scm -io 1 -nt "mc8 d1 on p0 9bit"
6289 -mc8
6290 -mf1 idb ar reg
6291 -mf2 idb ar reg
6292 -mf3 ar reg;
6293
6294 desc 1 -ta 9 -ns 2 -cn 2;
6295
6296 data 1 -do -4 000000060067;
6297
6298 data 2 047;
6299
6300 data 3 000 000 000 001;
6301
6302 page -all;
6303
6304
6305
6306 /* scm7
6307
6308 * a variety of desc mod are used~ and the mask
6309 * is set so that there is no match. using the
6310 * using the same data as test 6.
6311 *
6312 */
6313
6314 inst scm -io 3 -nt "mc777 no match 9 bit"
6315 -mcÿ
6316 /* mc = 777 */
6317 -mf1 idr ar rl 2
6318 -mf2 ar reg
6319 -mf3 ar;
6320
6321 desc 1 -ta 9 -cn 2;
6322
6323 data 1 -do -4 000000060067;
6324
6325 data 2 047;
6326
6327 data 3 000 000 000 000;
6328
6329 page -all;
6330
6331
6332 /* scm 8
6333
6334 * the next four tests use the maximum amount of
6335 * data for string 1 to test the paging of the data
6336 * strings. this test will make sure the inst is operating
6337 * correctly using no desc mod.
6338 *
6339 */
6340
6341 inst scm -nt "d1 covers 3pp 9bit"
6342 -mc^A /* mc = 001 */
6343 /* mc = 001 */
6344 -mf1 rl 4352
6345 /* no desc mod.--all direct */;
6346
6347 desc 1 -ta 9 ;
6348
6349 data 1 -do -128 4351 062 066;
6350
6351 data 2 067;
6352
6353 data 3 000 000 010 377;
6354
6355 page -all;
6356
6357
6358
6359 /* scm9
6360
6361 * uses same data setup as test 8 but applies
6362 * maximum mod to descriptors.
6363 *
6364 */
6365
6366 inst scm -io 3 -nt "d1 covers 3 pp max desc mod 9b"
6367 -mc^A /* mc = 001 */
6368 -mf1 idb ar reg rl 4352
6369 -mf2 idb ar reg
6370 -mf3 ar reg;
6371
6372 desc 1 -ta 9;
6373
6374 data 1 -do -128 4351 062 066;
6375
6376 data 2 067;
6377
6378 data 3 000 000 010 377;
6379
6380 page -all;
6381
6382
6383
6384 /* scm10
6385
6386 * this test specifically tests the -cn option
6387 ** for data 2 along with forcing it to cross
6388 * a page boundary. all desc mods are taken.
6389 *
6390 */
6391
6392
6393 inst scm -io 1 -nt "d1 covers 3pp d2 split 9b"
6394 -mc^A /* mc = 001 */
6395 -mf1 idb ar reg rl 4352
6396 -mf2 idb ar reg
6397 -mf3 ar reg;
6398
6399 desc 1 -ta 9;
6400
6401 desc 2 -cn 1;
6402
6403 data 1 -do -128 4351 062 066;
6404
6405 data 2 -do -2 000067 000000;
6406
6407 data 3 000 000 010 377;
6408
6409 page -all;
6410
6411
6412 /* scm11
6413
6414 * there will be no match on this test. also,
6415 * a variety of desc mods are taken. note
6416 * tr indicator will be on.
6417 *
6418 */
6419
6420 inst scm -io 1 -nt "no match d1 covers 3pp 9bit"
6421 -mc^A /* mc = 001 */
6422 -ir tr
6423 -mf1 idb rl 4352
6424 -mf2 ar reg
6425 /* mf3 is direct */;
6426
6427 desc 1 -ta 9;
6428
6429 desc 2 -cn 1;
6430
6431 data 1 -do -128 4352 062;
6432
6433 data 2 -do -2 000067 000000;
6434
6435 data 3 000 000 010 400;
6436
6437 page -all;
6438 /* scm12
6439
6440 * this starts the sequence of seven
6441 * four bit data tests. this first
6442 * test makes sure that the inst is working
6443 * correctly without any desc. mod.
6444 *
6445 */
6446
6447 inst scm -nt "simple test 4 bit"
6448 -mc^A /* mc = 001 */
6449 /* mc = 001 */
6450 /* all the desc. are direct */;
6451
6452 desc 1 -ta 4 -ns 8;
6453
6454
6455 data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
6456
6457 data 2 360 /* 1111 */;
6458
6459
6460 data 3 000 000 000 001;
6461
6462 page -all;
6463
6464
6465
6466 /* scm13
6467
6468 * same as previous test but taking all of the
6469 * possible desc. mod.
6470 *
6471 */
6472
6473 inst scm -io 1 -nt " full desc mod 4bit"
6474 -mc^A /* mc = 001 */
6475 /* mc = 001 */
6476 -mf1 idb ar reg rl 8
6477 -mf2 idb ar reg
6478 -mf3 ar reg;
6479
6480 desc 1 -ta 4;
6481
6482 data 1 237 323 070 361;
6483
6484 data 2 360;
6485
6486 data 3 000 000 000 001;
6487
6488 page -all;
6489
6490
6491
6492 /* scm14
6493
6494 * changing the mask characters and offsetting
6495 * the first data string across a page boundary
6496 * with a variety of desc. mod.
6497 *
6498 */
6499
6500 inst scm -io 3 -nt "d1 split 4 bit"
6501 -mc?
6502 -mf1 ar
6503 -mf2 idb
6504 /* mf3 is direct */;
6505
6506 desc 1 -ta 4 -ns 8;
6507
6508 data 1 -do -2 237 323 /* page bound */ 070 361;
6509
6510 data 2 360;
6511
6512 data 3 000 000 000 000;
6513
6514 page -all;
6515
6516
6517
6518 /* scm15
6519
6520 * again using the same data but this time splitting
6521 * both strings across page bound. and exercising
6522 * the -cn option. all desc. mod. are taken.
6523 *
6524 */
6525
6526 inst scm -io 1 -nt "d1 and d2 split 4 bit"
6527 -mc?
6528 -mf1 idb ar reg
6529 -mf2 idb ar reg
6530 -mf3 ar reg;
6531
6532 desc 1 -ta 4 -ns 6 -cn 1;
6533
6534 desc 2 -cn 3;
6535
6536 data 1 -do -2 237 323 /* page boun. */ 070 361;
6537
6538 data 2 -do -3 000 000 360 /* page bound. */ 000;
6539
6540 data 3 000 000 000 000;
6541
6542 page -all;
6543
6544
6545
6546 /* scm16
6547
6548 * this time there will be no match with
6549 * the same parameters as test 15 with a mask of
6550 * 777.
6551 *
6552 */
6553
6554 inst scm -io 2 -nt "match on first char 4bit"
6555 -mcÿ
6556 -mf1 idb ar reg
6557 -mf2 idb ar reg
6558 -mf3 ar reg;
6559
6560 desc 1 -ta 4 -ns 8 -cn 1;
6561
6562 desc 2 -cn 3;
6563
6564 data 1 -do -2 237 323 070 361;
6565
6566 data 2 -do -3 000 000 360 000;
6567
6568 data 3 000 000 000 000;
6569
6570 page -all;
6571
6572
6573
6574 /* scm17
6575
6576 * the next three tests use the maximum amount
6577 * of data for string 1. this test uses a mask
6578 * of 000 but searches for a char which will not
6579 * match tr ind. no desc. mod.
6580 *
6581 */
6582
6583 inst scm -nt "mc=000 no mat d1 covers 3pp 4b"
6584 -mc^@ /* mc = 000 */
6585 -ir tr
6586 -mf1 rl 8704
6587 /* all desc. are direct */;
6588
6589 desc 1 -ta 4;
6590
6591 data 1 -do -128 1088 237323070361;
6592
6593 data 2 000;
6594
6595 data 3 000 000 021 000;
6596
6597 page -all;
6598
6599
6600
6601 /* scm18
6602
6603 * this test will force a match on a middle
6604 * char. all desc mods. are taken.
6605 *
6606 */
6607
6608 inst scm -io 2 -nt "d1 covers 3pp 4bit"
6609 -mc^A /* mc = 001 */
6610 -mf1 idb ar reg rl 8704
6611 -mf2 idb ar reg
6612 -mf3 ar reg;
6613
6614 desc 1 -ta 4;
6615
6616 data 1 -do -128 1087 237323070361 237 323 070 000;
6617
6618 data 2 000;
6619
6620 data 3 000 000 000 007;
6621
6622 page -all;
6623
6624
6625 /* scm19
6626
6627 * this test puts the second string on page 0
6628 * and tests the -cn option.
6629 *
6630 */
6631
6632 inst scm -io 2 -nt "d1 covers 3pp 4bit"
6633 -mc^A /* mc = 001 */
6634 -mf1 ida ar reg rl 8704
6635 -mf2 idr ar
6636 /* mf3 is direct */;
6637
6638 desc 1 -ta 4 ;
6639
6640 desc 2 -cn 3;
6641
6642 data 1 -do -128 1087 237323070361 237323070000;
6643
6644 data 2 -do -3 000 000 000 000;
6645
6646 data 3 000 000 000 007;
6647
6648
6649 page -all;
6650
6651
6652
6653 /* scm20
6654
6655 * the following tests use 6 bit data.
6656 * this test merely makes sure the instruction
6657 * is working correctly. direct mod on descriptors.
6658 *
6659 */
6660
6661 inst scm -nt "6bit"
6662 -mc
6663 /* all desc. are direct */;
6664
6665 desc 1 -ta 6 -ns 12;
6666
6667 data 1 414243444546 575051525353;
6668
6669 data 2 57;
6670
6671 data 3 000 000 000 006;
6672
6673 page -all;
6674
6675
6676
6677
6678 /* scm21
6679
6680 * same as previous test but with first string
6681 * split across page bound. and a variety
6682 * of desc. mods taken.
6683 *
6684 */
6685
6686 inst scm -io 1 -nt "di split 6bit"
6687 -mc^P /* mc = 020 */
6688 -mf1 ar reg
6689 -mf2 idb
6690 /* mf3 is direct */;
6691
6692 desc 1 -ta 6 -ns 12;
6693
6694 data 1 -do -4 414243444546 /*page bound */ 475051525354;
6695
6696 data 2 67;
6697
6698 data 3 000 000 000 006;
6699
6700 page -all;
6701
6702 /* scm22
6703
6704 * this is the same as test 22 except the mask
6705 * has been set to preclude a match tr on
6706 and different desc. mods. are taken.
6707 *
6708 */
6709
6710 inst scm -io 2 -nt "no match 6bit"
6711 -mc^G
6712 -ir tr
6713 -mf1 idb ar
6714 -mf2 ar reg
6715 -mf3 ar reg;
6716
6717 desc 1 -ta 6 -ns 12;
6718
6719 data 1 -do -4 414243444546 475051525354;
6720
6721 data 2 67;
6722
6723 data 3 000 000 000 014;
6724
6725 page -all;
6726
6727
6728 /* scm23
6729
6730 *this test exercises all the desc. mods.
6731 * and tests the rl and -cn options. it also
6732 * changes the mask char .
6733 *
6734 *
6735 */
6736
6737 inst scm -io 3 -nt "full desc mod 6bit"
6738 -mc^U /* mc = 025 */
6739 -mf1 idb ar reg rl 12
6740 -mf2 idb ar reg
6741 -mf3 ar reg;
6742
6743 desc 1 -ta 6;
6744
6745 desc 2 -cn 3;
6746
6747 data 1 -do -6 414243444546475051 525354;
6748
6749 data 2 -do -4 000000720000 /* page bound. */;
6750
6751 data 3 000 000 000 011;
6752
6753 page -all;
6754
6755
6756 /* scm24
6757
6758 * using the -cn option on both descriptors
6759 * direct mod on mf3 desc.
6760 *
6761 */
6762
6763 inst scm -io 2 -nt "d1 split 6bit"
6764 -mc^U /* mc = 025 */
6765 -mf1 ar rl 5
6766 -mf2 ar
6767 /* mf3 is direct */;
6768
6769 desc 1 -ta 6 -cn 4;
6770
6771 desc 2 -cn 2;
6772
6773 data 1 -do -4 000000005100 /*page bound. */ 525354;
6774
6775 data 2 -do -2 00007200 /* page bound. */;
6776
6777 data 3 000 000 000 002;
6778
6779 page -all;
6780
6781
6782 /* scm25
6783
6784 * this test and the next one uses the maximum amount
6785 * of char for string 1. this test forces a "no match"
6786 * condition ir tr on and takes the maximum mod.
6787 * on the desc.
6788 *
6789 */
6790
6791 inst scm -io 3 -nt "d1 covers 3pp no match 6b"
6792 -mc000
6793 -ir tr
6794 -mf1 idb ar reg rl 6528
6795 -mf2 idb ar reg
6796 -mf3 ar reg;
6797
6798 desc 1 -ta 6;
6799
6800 data 1 -do -128 1087 515151515151 515151515153;
6801
6802 data 2 52;
6803
6804 data 3 000 000 014 600;
6805
6806 page -all;
6807
6808
6809
6810 /* scm26
6811
6812 * same as previous test but a match occurs
6813 * on the last char.
6814 *
6815 */
6816
6817 inst scm -io 2 -nt "d1 covers 3pp 6bit"
6818 -mc^@ /* mc = 000 */
6819 -mf1 idb ar reg rl 6528
6820 -mf2 idb ar reg
6821 -mf3 ar reg;
6822
6823
6824 desc 1 -ta 6;
6825
6826 data 1 -do -128 1087 515151515151 515151515152;
6827
6828 data 2 52;
6829
6830 data 3 000 000 014 577;
6831
6832 page -all;
6833
6834
6835 ^L
6836
6837
6838 /* scmr1
6839 *
6840 * Same as scm only we will change the data of string 2 so that there is
6841 * a match.
6842 */
6843
6844 inst scmr -nt "Same as scm but strings match" -io 2
6845 -mc^G /* Mask = 007 octal. */
6846 -mf1 ida
6847 -mf2 ar
6848 -mf3 ar reg;
6849
6850
6851 desc 1 -ns 3 -cn 3 -ta 9;
6852
6853 desc 2 -cn 1;
6854
6855
6856 data 1 -do -4
6857 000 000 000 /* Fill due to cn 3. */
6858 011 /* Part of string on page 1. */
6859 021 033; /* Part of string on page 2. */
6860
6861 data 2 -do -1 000 013;
6862
6863 data 3 000 000 000 002;
6864
6865 page -all;
6866 /* scmr2
6867
6868 * simple test to determine if instruction
6869 * is working correctly. data is 9 bit
6870 * written in octal format to allow easy
6871 * comparison with the mask. this test
6872 * accesses all descriptors directly.
6873 *
6874 */
6875
6876 inst scmr -nt "mc8 simple test 9 bit"
6877 -mc8;
6878
6879 desc 1 -ns 8 -ta 9;
6880
6881 data 1 060061062063064065066067;
6882
6883 data 2 047;
6884
6885 data 3 000 000 000 000;
6886
6887 page -all;
6888
6889
6890 /* scmr3
6891
6892 * same data as test 2 but with data 1
6893 * split across page boundary. indirect
6894 * mod on desc 1 and 2.
6895 *
6896 */
6897
6898 inst scmr -io 1 -nt "d1 split 9bit"
6899 -mc8
6900 -mf1 idb
6901 -mf2 idb;
6902
6903 desc 1 -ns 8 -ta 9;
6904
6905 data 1 -do -4 060061062063 064065066067;
6906
6907 data 2 047;
6908
6909 data 3 000 000 000 000;
6910
6911 page -all;
6912
6913 /* scmr4
6914
6915 * same data config as test 2 but with
6916 * full desc mod.
6917 *
6918 */
6919
6920 inst scmr -io 3 -nt "d1 split 9bit"
6921 -mc8
6922 -mf1 idb ar reg rl 8
6923 -mf2 idb ar reg
6924 -mf3 ar reg;
6925
6926 desc 1 -ta 9;
6927
6928 data 1 060061062063064065066067;
6929
6930 data 2 047;
6931
6932 data 3 000 000 000 000;
6933
6934 page -all;
6935
6936
6937
6938 /* scmr5
6939
6940 * test of the -cn option for desc 1 and 2
6941 * along with a varied of """mode of desc mod.
6942 * both data strings are split across page bound.
6943 *
6944 */
6945
6946 inst scmr -io 2 -nt "no match 9bit"
6947 -ir tr
6948 -mc8
6949 -mf1 idb ar reg rl 6
6950 -mf2 ar
6951 -mf3 ar;
6952
6953 desc 1 -ta 9;
6954
6955 desc 2 -cn 3;
6956
6957 data 1 -do -2 000000 060061062063064066;
6958
6959 data 2 -do -1 000 000 000 047;
6960
6961 data 3 000 000 000 006 /* no match */;
6962
6963 page -all;
6964
6965
6966
6967 /* scmr6
6968
6969 * data 1 wholey contained on page 0 and
6970 * data starting on word 0 of page 1; char 0.
6971 * all desc mod.
6972 *
6973 */
6974
6975 inst scmr -io 1 -nt "d1 on p0 9bit"
6976 -mc8
6977 -mf1 idb ar reg
6978 -mf2 idb ar reg
6979 -mf3 ar reg;
6980
6981 desc 1 -ta 9 -ns 2 -cn 2;
6982
6983 data 1 -do -4 000000060067;
6984
6985 data 2 047;
6986
6987 data 3 000 000 000 000;
6988
6989 page -all;
6990
6991
6992
6993 /* scmr7
6994
6995 * a variety of desc mod are used~ and the mask
6996 * is set so that there is no match. using the
6997 * using the same data as test 6.
6998 *
6999 */
7000
7001 inst scmr -io 3 -nt "no match 9bit"
7002 -mcÿ
7003 /* mc = 777 */
7004 -mf1 idr ar rl 2
7005 -mf2 ar reg
7006 -mf3 ar;
7007
7008 desc 1 -ta 9 -cn 2;
7009
7010 data 1 -do -4 000000060067;
7011
7012 data 2 047;
7013
7014 data 3 000 000 000 000;
7015
7016 page -all;
7017
7018
7019 /* scmr 8
7020
7021 * the next four tests use the maximum amount of
7022 * data for string 1 to test the paging of the data
7023 * strings. this test will make sure the inst is operating
7024 * correctly using no desc mod.
7025 *
7026 */
7027
7028 inst scmr -nt "d1 covers 3pp 9bit"
7029 -mc^A /* mc = 001 */
7030 /* mc = 001 */
7031 -mf1 rl 4352
7032 /* no desc mod.--all direct */;
7033
7034 desc 1 -ta 9 ;
7035
7036 data 1 -do -128 066 4351 062;
7037
7038 data 2 067;
7039
7040 data 3 000 000 010 377;
7041
7042 page -all;
7043
7044
7045
7046 /* scmr9
7047
7048 * uses same data setup as test 8 but applies
7049 * maximum mod to descriptors.
7050 *
7051 */
7052
7053 inst scmr -io 3 -nt "d1 covers 3pp max desc mod 9b"
7054 -mc^A /* mc = 001 */
7055 -mf1 idb ar reg rl 4352
7056 -mf2 idb ar reg
7057 -mf3 ar reg;
7058
7059 desc 1 -ta 9;
7060
7061 data 1 -do -128 4351 062 066;
7062
7063 data 2 067;
7064
7065 data 3 000 000 000 000;
7066
7067 page -all;
7068
7069
7070
7071 /* scmr10
7072
7073 * this test specifically tests the -cn option
7074 ** for data 2 along with forcing it to cross
7075 * a page boundary. all desc mods are taken.
7076 *
7077 */
7078
7079
7080 inst scmr -io 1 -nt "d1 covers 3pp d2 split 9b"
7081 -mc^A /* mc = 001 */
7082 -mf1 idb ar reg rl 4352
7083 -mf2 idb ar reg
7084 -mf3 ar reg;
7085
7086 desc 1 -ta 9;
7087
7088 desc 2 -cn 1;
7089
7090 data 1 -do -128 066 4351 062;
7091
7092 data 2 -do -2 000067 000000;
7093
7094 data 3 000 000 010 377;
7095
7096 page -all;
7097
7098
7099 /* scmr11
7100
7101 * there will be no match on this test. also,
7102 * a variety of desc mods are taken. note
7103 * tr indicator will be on.
7104 *
7105 */
7106
7107 inst scmr -io 1 -nt "no match d1 covers 3pp 9bit"
7108 -mc^A /* mc = 001 */
7109 -ir tr
7110 -mf1 idb rl 4352
7111 -mf2 ar reg
7112 /* mf3 is direct */;
7113
7114 desc 1 -ta 9;
7115
7116 desc 2 -cn 1;
7117
7118 data 1 -do -128 4352 062;
7119
7120 data 2 -do -2 000067 000000;
7121
7122 data 3 000 000 010 400;
7123
7124 page -all;
7125 /* scmr12
7126
7127 * this starts the sequence of seven
7128 * four bit data tests. this first
7129 * test makes sure that the inst is working
7130 * correctly without any desc. mod.
7131 *
7132 */
7133
7134 inst scmr -nt "4bit simple test"
7135 -mc^A /* mc = 001 */
7136 /* all the desc. are direct */;
7137
7138 desc 1 -ta 4 -ns 8;
7139
7140
7141 data 1 237 323 070 361 /* 1001 1111 1101 0011 0011 1000 1111 00001 */;
7142
7143 data 2 360 /* 1111 */;
7144
7145
7146 data 3 000 000 000 001;
7147
7148 page -all;
7149
7150
7151
7152 /* scmr13
7153
7154 * same as previous test but taking all of the
7155 * possible desc. mod.
7156 *
7157 */
7158
7159 inst scmr -io 1 -nt "full desc mod 4bit"
7160 -mc^A /* mc = 001 */
7161 -mf1 idb ar reg rl 8
7162 -mf2 idb ar reg
7163 -mf3 ar reg;
7164
7165 desc 1 -ta 4;
7166
7167 data 1 237 323 070 361;
7168
7169 data 2 360;
7170
7171 data 3 000 000 000 001;
7172
7173 page -all;
7174
7175
7176
7177 /* scmr14
7178
7179 * changing the mask characters and offsetting
7180 * the first data string across a page boundary
7181 * with a variety of desc. mod.
7182 *
7183 */
7184
7185 inst scmr -io 3 -nt "d1 split 4bit"
7186 -mc?
7187 -mf1 ar
7188 -mf2 idb
7189 /* mf3 is direct */;
7190
7191 desc 1 -ta 4 -ns 8;
7192
7193 data 1 -do -2 237 323 /* page bound */ 070 361;
7194
7195 data 2 360;
7196
7197 data 3 000 000 000 000;
7198
7199 page -all;
7200
7201
7202
7203 /* scmr15
7204
7205 * again using the same data but this time splitting
7206 * both strings across page bound. and exercising
7207 * the -cn option. all desc. mod. are taken.
7208 *
7209 */
7210
7211 inst scmr -io 1 -nt " d1,d" split 4 bit"
7212 -mc?
7213 -mf1 idb ar reg
7214 -mf2 idb ar reg
7215 -mf3 ar reg;
7216
7217 desc 1 -ta 4 -ns 6 -cn 1;
7218
7219 desc 2 -cn 3;
7220
7221 data 1 -do -2 237 323 /* page boun. */ 070 361;
7222
7223 data 2 -do -3 000 000 360 /* page bound. */ 000;
7224
7225 data 3 000 000 000 000;
7226
7227 page -all;
7228
7229
7230
7231 /* scmr16
7232
7233 * this time there will be no match with
7234 * the same parameters as test 15 with a mask of
7235 * 777. the tr indicator will be on.
7236 *
7237 */
7238
7239 inst scmr -io 2 -nt "match on first try 4 bit"
7240 -mcÿ
7241 -mf1 idb ar reg
7242 -mf2 idb ar reg
7243 -mf3 ar reg;
7244
7245 desc 1 -ta 4 -ns 8 -cn 1;
7246
7247 desc 2 -cn 3;
7248
7249 data 1 -do -2 237 323 070 361;
7250
7251 data 2 -do -3 000 000 360 000;
7252
7253 data 3 000 000 000 000;
7254
7255 page -all;
7256
7257
7258
7259 /* scmr17
7260
7261 * the next three tests use the maximum amount
7262 * of data for string 1. this test uses a mask
7263 * of 000 but searches for a char which will not
7264 * match tr ind. no desc. mod.
7265 *
7266 */
7267
7268 inst scmr -nt "no mat d1 covers 3pp 4b"
7269 -mc^@ /* mc = 000 */
7270 -ir tr
7271 -mf1 rl 8704
7272 /* all desc. are direct */;
7273
7274 desc 1 -ta 4;
7275
7276 data 1 -do -128 1088 237323070361;
7277
7278 data 2 000;
7279
7280 data 3 000 000 021 000;
7281
7282 page -all;
7283
7284
7285
7286 /* scmr18
7287
7288 * this test will force a match on a middle
7289 * char. all desc mods. are taken.
7290 *
7291 */
7292
7293 inst scmr -io 2 -nt "d1 covers 3 pp 4bit"
7294 -mc^A /* mc = 001 */
7295 -mf1 idb ar reg rl 8704
7296 -mf2 idb ar reg
7297 -mf3 ar reg;
7298
7299 desc 1 -ta 4;
7300
7301 data 1 -do -128 1087 237323070361 237 323 070 000;
7302
7303 data 2 000;
7304
7305 data 3 000 000 000 000;
7306
7307 page -all;
7308
7309
7310 /* scmr19
7311
7312 * this test puts the second string on page 0
7313 * and tests the -cn option.
7314 *
7315 */
7316
7317 inst scmr -io 2 -nt "d1 covers 3pp 4 bit"
7318 -mc^A /* mc = 001 */
7319 -mf1 ida ar reg rl 8704
7320 -mf2 idr ar
7321 /* mf3 is direct */;
7322
7323 desc 1 -ta 4 ;
7324
7325 desc 2 -cn 3;
7326
7327 data 1 -do -128 237323070000 1087 237323070361 ;
7328
7329 data 2 -do -3 000 000 000 000;
7330
7331 data 3 000 000 000 000;
7332
7333
7334 page -all;
7335
7336
7337
7338 /* scmr20
7339
7340 * the following tests use 6 bit data.
7341 * this test merely makes sure the instruction
7342 * is working correctly. direct mod on descriptors.
7343 *
7344 */
7345
7346 inst scmr -nt "simple test 6 bit"
7347 -mc
7348 /* all desc. are direct */;
7349
7350 desc 1 -ta 6 -ns 12;
7351
7352 data 1 414243444546 575051525353;
7353
7354 data 2 57;
7355
7356 data 3 000 000 000 005;
7357
7358 page -all;
7359
7360
7361
7362
7363 /* scmr21
7364
7365 * same as previous test but with first string
7366 * split across page bound. and a variety
7367 * of desc. mods taken.
7368 *
7369 */
7370
7371 inst scmr -io 1 -nt "d1 split 6bit"
7372 -mc^P /* mc - 020 */
7373 -mf1 ar reg
7374 -mf2 idb
7375 /* mf3 is direct */;
7376
7377 desc 1 -ta 6 -ns 12;
7378
7379 data 1 -do -4 414243444546 /*page bound */ 475051525354;
7380
7381 data 2 67;
7382
7383 data 3 000 000 000 005;
7384
7385 page -all;
7386
7387 /* scmr22
7388
7389 * this is the same as test 22 except the mask
7390 * has been set to preclude a match tr on
7391 and different desc. mods. are taken.
7392 *
7393 */
7394
7395 inst scmr -io 2 -nt "no match 6bit"
7396 -mc^G
7397 -ir tr
7398 -mf1 idb ar
7399 -mf2 ar reg
7400 -mf3 ar reg;
7401
7402 desc 1 -ta 6 -ns 12;
7403
7404 data 1 -do -4 414243444546 475051525354;
7405
7406 data 2 67;
7407
7408 data 3 000 000 000 014;
7409
7410 page -all;
7411
7412
7413 /* scmr23
7414
7415 *this test exercises all the desc. mods.
7416 * and tests the rl and -cn options. it also
7417 * changes the mask char .
7418 *
7419 *
7420 */
7421
7422 inst scmr -io 3 -nt "full desc mod 6bit"
7423 -mc^U /* mc = 025 */
7424 -mf1 idb ar reg rl 12
7425 -mf2 idb ar reg
7426 -mf3 ar reg;
7427
7428 desc 1 -ta 6;
7429
7430 desc 2 -cn 3;
7431
7432 data 1 -do -6 414243444546475051 525354;
7433
7434 data 2 -do -4 000000720000 /* page bound. */;
7435
7436 data 3 000 000 000 001;
7437
7438 page -all;
7439
7440
7441 /* scmr24
7442
7443 * using the -cn option on both descriptors
7444 * direct mod on mf3 desc.
7445 *
7446 */
7447
7448 inst scmr -io 2 -nt "d1 split 6bit"
7449 -mc^U /* mc = 025 */
7450 -mf1 ar rl 5
7451 -mf2 ar
7452 /* mf3 is direct */;
7453
7454 desc 1 -ta 6 -cn 4;
7455
7456 desc 2 -cn 2;
7457
7458 data 1 -do -4 000000005100 /*page bound. */ 525354;
7459
7460 data 2 -do -2 00007200 /* page bound. */;
7461
7462 data 3 000 000 000 001;
7463
7464 page -all;
7465
7466
7467 /* scmr25
7468
7469 * this test and the next one uses the maximum amount
7470 * of char for string 1. this test forces a "no match"
7471 * condition ir tr on and takes the maximum mod.
7472 * on the desc.
7473 *
7474 */
7475
7476 inst scmr -io 3 -nt "d1 covers 3pp no mat 6bit"
7477 -mc000
7478 -ir tr
7479 -mf1 idb ar reg rl 6528
7480 -mf2 idb ar reg
7481 -mf3 ar reg;
7482
7483 desc 1 -ta 6;
7484
7485 data 1 -do -128 1087 515151515151 515151515153;
7486
7487 data 2 52;
7488
7489 data 3 000 000 014 600;
7490
7491 page -all;
7492
7493
7494
7495 /* scmr26
7496
7497 * same as previous test but a match occurs
7498 * on the last char.
7499 *
7500 */
7501
7502 inst scmr -io 2 -nt "d1 covers 3pp 6bit"
7503 -mc^@ /* mc = 000 */
7504 -mf1 idb ar reg rl 6528
7505 -mf2 idb ar reg
7506 -mf3 ar reg;
7507
7508
7509 desc 1 -ta 6;
7510
7511 data 1 -do -128 515151515152 1087 515151515151 ;
7512
7513 data 2 52;
7514
7515 data 3 000 000 014 572;
7516
7517 page -all;
7518
7519
7520 ^L
7521
7522 /* mvn1
7523 *
7524 * a simple test to see if it works
7525 * 9 bit scaled leading sign to 9 bit scaled trailing sign
7526 *
7527 */
7528
7529 inst mvn -nt "simple"
7530 -io 2;
7531
7532 desc1 -nn 13 -sd l;
7533 desc2 -nn 14 -sd t;
7534
7535 data 1 -do 12 "+" 12 "9";
7536 data 2 "0" 12 "9" "+";
7537
7538 page -all;
7539
7540
7541
7542
7543
7544 /* mvn2
7545 * truncation fault taken
7546 * all page faults taken
7547 * integer to floating
7548 */
7549
7550 inst mvn -nt "truncation fault"
7551 -io 1 -tby -ir tn
7552 -mf1 ar rl 63 idb reg
7553 -mf2 ar rl 63 idb reg;
7554
7555 desc1 -cn 1 -sd l;
7556 desc2 -cn 1 -sd f;
7557
7558 data 1 -do -63 " " "+98" 15 "7435";
7559 data 2 000 "+" "98" 14 "7435" "743" 001;
7560
7561 page -all;
7562
7563
7564
7565
7566
7567 /* mvn3
7568 * this is a good test
7569 * all page faults taken
7570 * legal floating word developed
7571 * 9 bit scaled to 9 bit float
7572 *
7573 */
7574
7575 inst mvn -nt "int -> float"
7576 -io 1
7577
7578 -mf1 ar rl 23 idb reg
7579 -mf2 ar rl 28 idb reg;
7580
7581 desc1 -sf 13 -sd l -cn 3;
7582 desc2 -sd f -cn 2;
7583
7584 data 1 -do 25 " " "+" 5 "00" 12 "1";
7585 data 2 000000 "+" 4 "000" "00" 12 "1" 015;
7586
7587 page -all;
7588
7589
7590
7591
7592
7593 /* mvn4
7594 * all page faults taken
7595 * float to integer scale factor 12
7596 * 9 bit to 9 bit
7597 *
7598 */
7599
7600 inst mvn -nt "float to int"
7601 -io 1 -ir ng
7602 -mf1 ar rl 28 idb reg
7603 -mf2 ar rl 23 idb reg;
7604
7605 desc1 -sd f -cn 2;
7606 desc2 -sf 12 -sd l -cn 3;
7607
7608 data 1 -do 27 " -" 14 "0" 12 "1" 015;
7609 data 2 000000000 "-" 9 "0" 12 "1" "0";
7610
7611 page -all;
7612
7613
7614
7615
7616
7617 /* mvn5
7618 * 9 bit scaled to floating 9 bit
7619 *
7620 */
7621
7622 inst mvn -nt "scaled to floating"
7623 -io 1 -rb
7624 -mf1 ar rl 63 idb reg
7625 -mf2 ar rl 3 idb reg;
7626
7627 desc1 -sd n -sf 31;
7628 desc2 -sd f;
7629
7630 data 1 -do 62 "1" 62 "0";
7631 data 2 "+" "1" 135;
7632
7633 page -all;
7634
7635
7636
7637
7638
7639 /* mvn6
7640 * convert float 4 bit to
7641 * floating 9 bit
7642 *
7643 */
7644
7645 inst mvn -nt "float 9 -> float 4"
7646 -io 2
7647 -mf1 ar rl 3 idb reg
7648 -mf2 ar rl 4 idb;
7649
7650 desc1 -sd f;
7651 desc2 -sd f -tn 4;
7652
7653 data 1 -do -3 "+1" 135;
7654 data 2 301135;
7655
7656 page -all;
7657
7658
7659
7660
7661
7662 /* mvn7
7663 * 9 bit scaled to 4 bit floating
7664 * all page faults taken
7665 *
7666 */
7667 inst mvn -nt "9 scaled to 4 float"
7668 -io 3 -ir ng
7669 -mf1 ar rl 25 ida reg
7670 -mf2 ar rl 23 idb;
7671
7672 desc1 -sd t ;
7673 desc2 -sd f -cn 3 -tn 4;
7674
7675 data 1 -do -1 20 "0" 4 "3" "-";
7676 data 2 3 000 320 7 000 003 063 0600;
7677
7678 page -all;
7679
7680
7681
7682
7683
7684 /* mvn8
7685 * convert 9bit floating point to 4 bit scaled
7686 *
7687 */
7688 inst mvn -nt "9bit float to 4bit scaled"
7689 -io 2
7690 -mf1 ar rl 22 idb reg
7691 -mf2 ar rl 33 ida;
7692
7693 desc1 -sd f;
7694 desc2 -sd t -sf 5 -tn 4;
7695
7696 data 1 -do -8 "+" 11 "0" 3 "123" 006;
7697 data 2 11 000 022 061043022060 300;
7698
7699 page -all;
7700
7701
7702
7703
7704
7705 /* mvn9
7706 * convert 9 bit floating to 4 bit scaled
7707 *
7708 */
7709 inst mvn -nt "9bitfloat to 4 bit scaled"
7710 -io 1
7711 -mf1 ar rl 20 idb reg
7712 -mf2 ar rl 63 ida;
7713
7714 desc1 -sd f -cn 2;
7715 desc2 -sd l -tn 4 -cn 1;
7716
7717 data 1 " +" 9 "0" 4 "45" 060000;
7718 data 2 000300 26 000 105105105105 8 000;
7719
7720 page -all;
7721
7722
7723
7724
7725 /* mvn10
7726 * 9 bit scaled trailing sign to
7727 * 9 bit scaled leading sign
7728 */
7729 inst mvn -nt "simple"
7730 -io 1;
7731 desc1 -nn 14 -sd t;
7732 desc2 -nn 13 -sd l;
7733
7734 data 1 -do 12 "0" 12 "9" "+";
7735 data 2 "+" 12 "9";
7736
7737 page -all;
7738
7739
7740
7741
7742 /* mvn11
7743 * 9 bit float to 9 bit scaled leading sign
7744 */
7745
7746 inst mvn -nt "float to int"
7747 -io 1
7748 -mf1 ar rl 63 idb reg
7749 -mf2 ar rl 63 idb reg;
7750
7751 desc1 -cn 1 -sd f;
7752 desc2 -cn 1 -sd l;
7753
7754 data 1 -do -63 " " "+98" 14 "7435" "743" 001;
7755 data 2 000 "+98" 14 "7435" "7430";
7756
7757 page -all;
7758
7759
7760
7761
7762 /* mvn12
7763 * 9 bit float to 9 bit scaled negative indicator
7764 */
7765
7766 inst mvn -nt "float -> int"
7767 -io 2
7768 -mf1 ar rl 28 idb reg
7769 -mf2 ar rl 23 idb reg;
7770
7771 desc1 -sd f -cn 2;
7772 desc2 -sf 13 -sd l -cn 3;
7773
7774 data 1 -do 29 " +" 4 "000" "00" 12 "1" 015;
7775 data 2 000000000 "+" 5 "00" 12 "1";
7776
7777 page -all;
7778
7779
7780
7781
7782 /* mvn13
7783 * 9 bit scaled to 9 bit float
7784 * negative indicator on
7785 */
7786
7787 inst mvn -nt "int to float"
7788 -io 2 -ir ng
7789 -mf1 ar rl 23 idb reg
7790 -mf2 ar rl 28 idb reg;
7791
7792 desc1 -sf 12 -sd l -cn 3;
7793 desc2 -sd f -cn 2;
7794
7795 data 1 -do 25 " -" 9 "0" 12 "1" "0";
7796 data 2 000000 "-" 13 "0" 12 "1" "0" 014;
7797
7798 page -all;
7799
7800
7801
7802
7803 /* mvn14
7804 * 9 bit float to 9 bit scaled
7805 *
7806 */
7807
7808 inst mvn -nt "float to scaled"
7809 -io 2 -rb
7810 -mf1 ar rl 3 idb reg
7811 -mf2 ar rl 63 idb reg;
7812
7813 desc1 -sd f;
7814 desc2 -sd n -sf 31;
7815
7816 data 1 "+1" 135;
7817 data 2 "1" 62 "0";
7818
7819 page -all;
7820
7821
7822
7823
7824 /* mvn15
7825 * 4 bit float to 9 bit float
7826 *
7827 */
7828
7829 inst mvn -nt "float 4 -> float 9"
7830 -io 1
7831 -mf1 ar rl 4 idb
7832 -mf2 ar rl 3 idb reg;
7833
7834 desc1 -sd f -tn 4;
7835 desc2 -sd f;
7836
7837 data 1 -do 3 301135;
7838 data 2 "+1" 135;
7839
7840 page -all;
7841
7842
7843
7844
7845 /* mvn16
7846 * 4 bit floating to 9 bit scaled
7847 * truncation and negative indicators on
7848 *
7849 */
7850
7851 inst mvn -nt "4 float to 9 scaled"
7852 -io 1 -ir ng tn
7853 -mf1 ar rl 23 idb
7854 -mf2 ar rl 25 ida reg;
7855
7856 desc1 -sd f -cn 3 -tn 4;
7857 desc2 -sd t -sf 2;
7858
7859 data 1 -do 1 " " 320 7 000 003 063060000;
7860 data 2 22 "0" 2 "3" "-";
7861
7862 page -all;
7863
7864
7865
7866
7867 /* mvn17
7868 * 4 bit scaled to 9 bit floating
7869 *
7870 */
7871
7872 inst mvn -nt "4bit scaled to 9 bit float"
7873 -io 3
7874 -mf1 ar rl 33 ida
7875 -mf2 ar rl 22 idb reg;
7876
7877 desc1 -sd t -sf 5 -tn 4;
7878 desc2 -sd f;
7879
7880 data 1 11 000 022 061043022060 300;
7881 data 2 "+" 10 "0" 3 "123" "0" 005;
7882
7883 page -all;
7884
7885
7886
7887
7888 /* mvn18
7889 * 4 bit scaled to 9 bit floating
7890 :
7891 */
7892 inst mvn -nt "4bit scaled to 9 bit float"
7893 -io 2
7894 -mf1 ar rl 63 ida
7895 -mf2 ar rl 20 idb reg;
7896
7897 desc1 -sd l -tn 4 -cn 1;
7898 desc2 -sd f -cn 2;
7899
7900 data 1 " " 300 26 000 4 105 8 000;
7901 data 2 000000 "+" 9 "0" 4 "45" "0" 000;
7902
7903 page -all;
7904
7905
7906
7907
7908 /* mvn19
7909 * 9 bit scaled to 4 bit floating
7910 *
7911 */
7912
7913 inst mvn -nt "9 bit to 4 bit float"
7914 -io 3
7915 -mf1 ar rl 10 ida reg
7916 -mf2 ar rl 10 ;
7917
7918 desc1 -sd l -cn 1;
7919 desc2 -sd f -tn 4;
7920
7921 data 1 " +" 5 "0" 4 "1";
7922 data 2 300 000 021 021 000;
7923
7924 page -all;
7925
7926
7927
7928
7929 /* mvn20
7930 * 9 bit scaled to 4 bit floating
7931 *
7932 */
7933
7934 inst mvn -nt "9bit to 4 bit float"
7935 -mf1 ar rl 10 idb reg
7936 -mf2 ar rl 10;
7937
7938 desc1 -sd t -cn 2;
7939 desc2 -sd f-tn 4;
7940
7941 data 1 " " 5 "0" 4 "2" "+";
7942 data 2 300 000 042 042 000;
7943
7944 page -all;
7945
7946
7947
7948
7949 /* mvn21
7950 *
7951 * Move +12.34 into 12.3400+. Length of string 2 will be too short to handle
7952 * increased scaling factor so there will be significant digit overflow.
7953 */
7954
7955 inst mvn -nt "Sig digit overflow" -io 1
7956 -ir ov
7957 -mf1 ar rl 5
7958 -mf2 idr;
7959
7960
7961 desc 1 -cn 2 -sd l -sf -2;
7962
7963 desc 2 -sd t -sf -3 -nn 5;
7964
7965
7966 data 1 -do -5
7967 000 000 /* Fill for cn. */
7968 053 "12" /* Page 1. */
7969 "34"; /* Page 2. */
7970
7971 data 2 -do -4
7972 "2340" 053;
7973
7974
7975 page -all;
7976
7977
7978 ^L
7979
7980 /* CMPN
7981 *
7982 * The CMPN instruction algebtaically compares two numbers and sets the
7983 * zero, negative, and carry indicators to indicate the results of the
7984 * comparison. The five possible settings of the indicators and the inputs
7985 * which cause the settings are shown below:
7986 *
7987 * ZR NG CR INPUTS INPUT
7988 * COMBINATION
7989 * NUMBER
7990 *
7991
7992 * 0 0 1 neg,pos,N1<N2 1
7993 * 0 0 1 pos,pos,N1<N2 2
7994 * 1 0 1 neg,neg,N1=N2 3
7995 * 1 0 1 pos,pos,N1=N2 4
7996 * 0 1 1 neg,neg,N1<N2 5
7997 * 0 1 1 pos,neg,N1<N2 6
7998 * 0 1 0 pos,neg,N1>N2 7
7999 * 0 1 0 pos,pos,N1>N2 8
8000 * 0 0 0 neg,neg,N1>N2 9
8001 * 0 0 0 neg,pos,N1>N2 10
8002 *
8003 *
8004 * where neg,neg,N1<N2 means that the 1st operand is negative,
8005 * the second operand is negative, and the absolute value of the ist
8006 * operand is less than the absolute value of the 2nd.
8007 *
8008 *
8009 * Each of the even numbered input combinations is tested with:
8010 *
8011 * 1). both of the numbers 9-bit decimal and floating point,
8012 * 2). both of the numbers 9-bit decimal with leading sign,
8013 * 3) both of the numbers 9-bit decimal with trailing sign,
8014 * 4). where possible, both of the numbers 9-bit decimal and unsigned.
8015 *
8016 *
8017 * Each of the odd numbered input combinations is tested with:
8018 *
8019 * 1). both of the numbers 4-bit decimal and floating point,
8020 * 2). both of the numbers 4-bit decimal with leading sign,
8021 * 3). both of the numbers 4-bit decimal with trailing sign,
8022 * 4). where possible, both of the numbers 4-bit decimal and unsigned.
8023 *
8024 *
8025 */
8026
8027
8028
8029
8030
8031 /* cmpn1
8032 * The carry indicator is set.
8033 * Two 4-bit trailing sign operands are used.
8034 * The maximum number of page faults is taken.
8035 * Indirect descriptors are used for all operands.
8036 * Address register modification is used for all operands. */
8037
8038 inst cmpn
8039 -nt "Compare 4-bit neg with 4-bit pos"
8040 -ir cr
8041 -mf1 idb ar
8042 -mf2 idb ar rl 5
8043 -io 2;
8044
8045 desc 1 -tn 4 -sd t -nn 5;
8046 desc 2 -tn 4 -sd t;
8047
8048 data 1 -do -2 "76" 32;
8049 data 2 -do -2 "98" 26;
8050
8051 page -all;
8052
8053
8054 /* cmpn2
8055 * The carry indicator is set.
8056 * Two 4-bit leading sign operands are used.
8057 * The maximum number of page faults is taken.
8058 * Indirect descriptors are used for all operands.
8059 * Address register modification is used for all operands. */
8060
8061 inst cmpn
8062 -nt "Compare 4-bit neg with 4-bit pos"
8063 -ir cr
8064 -mf1 idb ar rl 13
8065 -mf2 idb ar
8066 -io 1;
8067
8068 desc 1 -tn 4 -sd l -sf -1;
8069 desc 2 -tn 4 -sd l -sf -2 -nn 16;
8070
8071 data 1 -do -2 325 "98642" 00;
8072 data 2 -do -3 262 "3278411";
8073
8074 page -all;
8075
8076
8077 /* cmpn3
8078 * The carry indicator is set.
8079 * Two 4-bit floating point operands are used.
8080 * The maximum number of page faults is taken.
8081 * Indirect descriptors are used for all operands.
8082 * Address register modification is used for all operands. */
8083
8084 inst cmpn
8085 -nt "Compare 4-bit neg with 4-bit pos"
8086 -ir cr
8087 -mf1 idb ar
8088 -mf2 idb ar
8089 -io 2;
8090
8091 desc 1 -tn 4 -sd f -nn 12;
8092 desc 2 -tn 4 -sd f -nn 12;
8093
8094 data 1 -do -2 323 "98762";
8095 data 2 -do -1 264 "32943";
8096
8097 page -all;
8098
8099
8100 /* cmpn4
8101 * The carry indicator is set.
8102 * Two 9-bit unsigned operands are used.
8103 * The maximum number of page faults is taken.
8104 * Indirect descriptors are used for all operands.
8105 * Address register modification is used for all operands. */
8106
8107 inst cmpn
8108 -nt "Compare 9-bit pos with 9-bit pos"
8109 -ir cr
8110 -mf1 idb ar reg
8111 -mf2 idb ar reg
8112 -io 1;
8113
8114 desc 1 -sd n -sf 4 -nn 63;
8115 desc 2 -sd n -sf 5 -nn 63;
8116
8117 data 1 -do -1 15"9834" "395";
8118 data 2 -do -62 15"8765" "147";
8119
8120 page -all;
8121
8122
8123 /* cmpn5
8124 * The carry indicator is set.
8125 * Two 9-bit trailing sign operands are used.
8126 * The maximum number of page faults is taken.
8127 * Indirect descriptors are used for all operands.
8128 * Address register modification is used for all operands. */
8129
8130 inst cmpn
8131 -nt "Compare 9-bit pos with 9-bit pos"
8132 -ir cr
8133 -mf1 idb ar reg
8134 -mf2 idb ar reg
8135 -io 3;
8136
8137 desc 1 -sd t -sf -2 -nn 14;
8138 desc 2 -sd t -sf 12 -nn 14;
8139
8140 data 1 -do -13 4"298" "3" 053;
8141 data 2 -do -13 4"687" "2" 053;
8142
8143 page -all;
8144
8145
8146 /* cmpn6
8147 * The carry indicator is set.
8148 * Two 9-bit leading sign operands are used.
8149 * The maximum number of page faults is taken.
8150 * Indirect descriptors are used for all operands.
8151 * Address register modification is used for all operands. */
8152
8153 inst cmpn
8154 -nt "Compare 9-bit pos with 9-bit pos"
8155 -ir cr
8156 -mf1 idb ar reg
8157 -mf2 idb ar reg
8158 -io 2;
8159
8160 desc 1 -sd l -sf 2 -nn 12;
8161 desc 2 -sd l -sf 3 -nn 12;
8162
8163 data 1 -do -4 053 11"3";
8164 data 2 -do -4 053 11"2";
8165
8166 page -all;
8167
8168
8169 /* cmpn7
8170 * The carry indicator is set.
8171 * Two 9-bit floating point operands are used.
8172 * The maximum number of page faults is taken.
8173 * Indirect descriptors are used for all operands.
8174 * Address register modification is used for all operands. */
8175
8176 inst cmpn
8177 -nt "Compare 9-bit pos with 9-bit pos"
8178 -ir cr
8179 -mf1 idb ar reg rl 9
8180 -mf2 idb ar reg
8181 -io 1;
8182
8183 desc 1 -sd f;
8184 desc 2 -sd f -nn 8;
8185
8186 data 1 -do -8 053 "7654321" 377;
8187 data 2 -do -1 053 "987654" 002;
8188
8189 page -all;
8190
8191
8192 /* cmpn8
8193 * The zero indicator is set.
8194 * The carry indicator is set.
8195 * Two 4-bit trailing sign operands are used.
8196 * The maximum number of page faults is taken.
8197 * Indirect descriptors are used for all operands.
8198 * Address register modification is used for all operands. */
8199
8200 inst cmpn
8201 -nt "Compare 4-bit neg with 4-bit neg"
8202 -ir zr cr
8203 -mf1 idb ar
8204 -mf2 idb ar rl 4
8205 -io 2;
8206
8207 desc 1 -tn 4 -sd t -nn 4;
8208 desc 2 -tn 4 -sd t;
8209
8210 data 1 -do -1 "7" 035;
8211 data 2 -do -1 "7" 035;
8212
8213 page -all;
8214
8215
8216 /* cmpn9
8217 * The zero indicator is set.
8218 * The carry indicator is set.
8219 * Two 4-bit leading sign operands are used.
8220 * The maximum number of page faults is taken.
8221 * Indirect descriptors are used for all operands.
8222 * Address register modification is used for all operands. */
8223
8224 inst cmpn
8225 -nt "Compare 4-bit neg with 4-bit neg"
8226 -ir zr cr
8227 -mf1 idb ar rl 63
8228 -mf2 idb ar rl 63
8229 -io 1;
8230
8231 desc 1 -tn 4 -sd l -sf 3;
8232 desc 2 -tn 4 -sd l -sf 3;
8233
8234 data 1 -do -31 32 31"5";
8235 data 2 -do -1 32 31"5";
8236
8237 page -all;
8238
8239
8240 /* cmpn10
8241 * The zero indicator is set.
8242 * The carry indicator is set.
8243 * Two 4-bit floating point operands are used.
8244 * The maximum number of page faults is taken.
8245 * Indirect descriptors are used for all operands.
8246 * Address register modification is used for all operands. */
8247
8248 inst cmpn
8249 -nt "Compare 4-bit neg with 4-bit neg"
8250 -ir zr cr
8251 -mf1 idb ar
8252 -mf2 idb ar
8253 -io 2;
8254
8255 desc 1 -tn 4 -sd f -nn 8;
8256 desc 2 -tn 4 -sd f -nn 8;
8257
8258 data 1 -do -1 325 "495";
8259 data 2 -do -2 325 "495";
8260
8261 page -all;
8262
8263
8264 /* cmpn11
8265 * The zero indicator is set.
8266 * The carry indicator is set.
8267 * Two 9-bit unsigned operands are used.
8268 * The maximum number of page faults is taken.
8269 * Indirect descriptors are used for all operands.
8270 * Address register modification is used for all operands. */
8271
8272 inst cmpn
8273 -nt "Compare 9-bit pos with 9-bit pos"
8274 -ir zr cr
8275 -mf1 idb ar reg rl 3
8276 -mf2 idb ar reg
8277 -io 1;
8278
8279 desc 1 -sd n -sf 1;
8280 desc 2 -sd n -sf 1 -nn 3;
8281
8282 data 1 -do -2 "432";
8283 data 2 -do -1 "432";
8284
8285 page -all;
8286
8287
8288 /* cmpn12
8289 * The zero indicator is set.
8290 * The carry indicator is set.
8291 * Two 9-bit trailing sign operands are used.
8292 * The maximum number of page faults is taken.
8293 * Indirect descriptors are used for all operands.
8294 * Address register modification is used for all operands. */
8295
8296 inst cmpn
8297 -nt "Compare 9-bit pos with 9-bit pos"
8298 -ir zr cr
8299 -mf1 idb ar reg rl 63
8300 -mf2 idb ar reg rl 63
8301 -io 2;
8302
8303 desc 1 -sd t;
8304 desc 2 -sd t;
8305
8306 data 1 -do -62 12"98765" "28" 053;
8307 data 2 -do -61 12"98765" "28" 053;
8308
8309 page -all;
8310
8311
8312
8313 /* cmpn13
8314 * The zero indicator is set.
8315 * The carry indicator is set.
8316 * Two 9-bit leading sign operands are used.
8317 * The maximum number of page faults is taken.
8318 * Indirect descriptors are used for all operands.
8319 * Address register modification is used for all operands. */
8320
8321 inst cmpn
8322 -nt "Compare 9-bit pos with 9-bit pos"
8323 -ir zr cr
8324 -mf1 idb ar reg
8325 -mf2 idb ar reg
8326 -io 2;
8327
8328 desc 1 -sd l -sf -8 -nn 18;
8329 desc 2 -sd l -sf -8 -nn 18;
8330
8331 data 1 -do -16 053 5"369" "00";
8332 data 2 -do -15 053 5"369" "00";
8333
8334 page -all;
8335
8336
8337
8338 /* cmpn14
8339 * The zero indicator is set.
8340 * The carry indicator is set.
8341 * Two 9-bit floating point operands are used.
8342 * The maximum number of page faults is taken.
8343 * Indirect descriptors are used for all operands.
8344 * Address register modification is used for all operands. */
8345
8346 inst cmpn
8347 -nt "Compare 9-bit pos with 9-bit pos"
8348 -ir zr cr
8349 -mf1 idb ar reg
8350 -mf2 idb ar reg
8351 -io 1;
8352
8353 desc 1 -sd f -nn 39;
8354 desc 2 -sd f -nn 39;
8355
8356 data 1 -do -30 053 6"125897" "4" 017;
8357 data 2 -do -24 053 6"125897" "4" 017;
8358
8359 page -all;
8360
8361
8362 /* cmpn15
8363 * The negative indicator is set.
8364 * The carry indicator is set.
8365 * Two 4-bit trailing sign operands are used.
8366 * The maximum number of page faults is taken.
8367 * Indirect descriptors are used for all operands.
8368 * Address register modification is used for all operands. */
8369
8370 inst cmpn
8371 -nt "Compare 4-bit neg with 4-bit neg"
8372 -ir ng cr
8373 -mf1 idb ar
8374 -mf2 idb ar
8375 -io 3;
8376
8377 desc 1 -tn 4 -sd t -sf -1 -nn 13;
8378 desc 2 -tn 4 -sd t -sf 1 -nn 63;
8379
8380 data 1 -do -1 "123456" 32;
8381 data 2 -do -30 15"12" "9" 32;
8382
8383 page -all;
8384
8385
8386 /* cmpn16
8387 * The negative indicator is set.
8388 * The carry indicator is set.
8389 * Two 4-bit leading sign operands are used.
8390 * The maximum number of page faults is taken.
8391 * Indirect descriptors are used for all operands.
8392 * Address register modification is used for all operands. */
8393
8394 inst cmpn
8395 -nt "Compare 4-bit neg with 4-bit neg"
8396 -ir ng cr
8397 -mf1 idb ar
8398 -mf2 idb ar
8399 -io 2;
8400
8401 desc 1 -tn 4 -sd l -sf 1 -nn 6;
8402 desc 2 -tn 4 -sd l -sf 2 -nn 6;
8403
8404 data 1 -do -2 321 "44";
8405 data 2 -do -2 321 "44";
8406
8407 page -all;
8408
8409
8410 /* cmpn17
8411 * The negative indicator is set.
8412 * The carry indicator is set.
8413 * Two 4-bit floating point operands are used.
8414 * The maximum number of page faults is taken.
8415 * Indirect descriptors are used for all operands.
8416 * Address register modification is used for all operands. */
8417
8418 inst cmpn
8419 -nt "Compare 4-bit neg with 4-bit neg"
8420 -ir ng cr
8421 -mf1 idb ar
8422 -mf2 idb ar
8423 -io 2;
8424
8425 desc 1 -tn 4 -sd f -nn 5;
8426 desc 2 -tn 4 -sd f -nn 5;
8427
8428 data 1 -do -1 324 "5" 00;
8429 data 2 -do -1 327 "6" 00;
8430
8431 page -all;
8432
8433
8434 /* cmpn18
8435 * The negative indicator is set.
8436 * The carry indicator is set.
8437 * Two 9-bit trailing sign operands are used.
8438 * The maximum number of page faults is taken.
8439 * Indirect descriptors are used for all operands.
8440 * Address register modification is used for all operands. */
8441
8442 inst cmpn
8443 -nt "Compare 9-bit pos with 9-bit neg"
8444 -ir ng cr
8445 -mf1 idb ar reg
8446 -mf2 idb ar reg
8447 -io 1;
8448
8449 desc 1 -sd t -nn 8;
8450 desc 2 -sd t -nn 9;
8451
8452 data 1 -do -4 "4567821" 053;
8453 data 2 -do -8 "92814372" 055;
8454
8455 page -all;
8456
8457
8458 /* cmpn19
8459 * The negative indicator is set.
8460 * The carry indicator is set.
8461 * Two 9-bit leading sign operands are used.
8462 * The maximum number of page faults is taken.
8463 * Indirect descriptors are used for all operands.
8464 * Address register modification is used for all operands. */
8465
8466 inst cmpn
8467 -nt "Compare 9-bit pos with 9-bit neg"
8468 -ir ng cr
8469 -mf1 idb ar reg
8470 -mf2 idb ar reg
8471 -io 2;
8472
8473 desc 1 -sd l -sf -5 -nn 63;
8474 desc 2 -sd l -sf -4 -nn 63;
8475
8476 data 1 -do -60 053 "92" 15"6391";
8477 data 2 -do -4 055 "82" 15"7482";
8478
8479 page -all;
8480
8481
8482
8483 /* cmpn20
8484 * The negative indicator is set.
8485 * The carry indicator is set.
8486 * Two 9-bit floating point operands are used.
8487 * The maximum number of page faults is taken.
8488 * Indirect descriptors are used for all operands.
8489 * Address register modification is used for all operands. */
8490
8491 inst cmpn
8492 -nt "Compare 9-bit pos with 9-bit neg"
8493 -ir ng cr
8494 -mf1 idb ar reg
8495 -mf2 idb ar reg
8496 -io3;
8497
8498 desc 1 -sd f -nn 11;
8499 desc 2 -sd f -nn 11;
8500
8501 data 1 -do -10 053 "345678901" 001;
8502 data 2 -do -1 055 "456789012" 002;
8503
8504 page -all;
8505
8506
8507
8508 /* cmpn21
8509 * The negative indicator is set.
8510 * Two 4-bit trailing sign operands are used.
8511 * The maximum number of page faults is taken.
8512 * Indirect descriptors are used for all operands.
8513 * Address register modification is used for all operands. */
8514
8515 inst cmpn
8516 -nt "Compare 4-bit pos with 4-bit neg"
8517 -ir ng
8518 -mf1 idb ar
8519 -mf2 idb ar
8520 -io 1;
8521
8522 desc 1 -tn 4 -sd t -nn 3;
8523 desc 2 -tn 4 -sd t -nn 3;
8524
8525 data 1 -do -1 "4" 26;
8526 data 2 -do -1 "3" 32;
8527
8528 page -all;
8529
8530
8531 /* cmpn22
8532 * The negative indicator is set.
8533 * Two 4-bit leading sign operands are used.
8534 * The maximum number of page faults is taken.
8535 * Indirect descriptors are used for all operands.
8536 * Address register modification is used for all operands. */
8537
8538 inst cmpn
8539 -nt "Compare 9-bit pos with 9-bit neg"
8540 -ir ng
8541 -mf1 idb ar
8542 -mf2 idb ar
8543 -io 1;
8544
8545 desc 1 -tn 4 -sd l -nn 5;
8546 desc 2 -tn 4 -sd l -nn 4;
8547
8548 data 1 -do -2 267 000 00;
8549 data 2 -do -1 324 000;
8550
8551 page -all;
8552
8553
8554 /* cmpn23
8555 * The negative indicator is set.
8556 * Two 4-bit floating point operands are used.
8557 * The maximum number of page faults is taken.
8558 * Indirect descriptors are used for all operands.
8559 * Address register modification is used for all operands. */
8560
8561 inst cmpn
8562 -nt "Compare 9-bit pos with 9-bit neg"
8563 -ir ng
8564 -mf1 idb ar
8565 -mf2 idb ar
8566 -io 1;
8567
8568 desc 1 -tn 4 -sd f -nn 63;
8569 desc 2 -tn 4 -sd f -nn 63;
8570
8571 data 1 -do -4 270 14"10" 00000000;
8572 data 2 -do -4 321 14"10" 00000000;
8573
8574 page -all;
8575
8576
8577 /* cmpn24
8578 * The negative indicator is set.
8579 * Two 9-bit unsigned operands are used.
8580 * The maximum number of page faults is taken.
8581 * Indirect descriptors are used for all operands.
8582 * Address register modification is used for all operands. */
8583
8584 inst cmpn
8585 -nt "Compare 9-bit pos with 9-bit pos"
8586 -ir ng
8587 -mf1 idb ar reg
8588 -mf2 idb ar reg
8589 -io 3;
8590
8591 desc 1 -sd n -sf 4 -nn 5;
8592 desc 2 -sd n -sf 1 -nn 4;
8593
8594 data 1 -do -1 "12345";
8595 data 2 -do -3 "2345";
8596
8597 page -all;
8598
8599
8600 /* cmpn25
8601 * The negative indicator is set.
8602 * Two 9-bit trailing sign operands are used.
8603 * The maximum number of page faults is taken.
8604 * Indirect descriptors are used for all operands.
8605 * Address register modification is used for all operands. */
8606
8607 inst cmpn
8608 -nt "Compare 9-bit pos with 9-bit pos"
8609 -ir ng
8610 -mf1 idb ar reg
8611 -mf2 idb ar reg
8612 -io 1;
8613
8614 desc 1 -sd t -sf 4 -nn 37;
8615 desc 2 -sd t -sf 3 -nn 37;
8616
8617 data 1 -do -36 12"965" 053;
8618 data 2 -do -1 12"965" 053;
8619
8620 page -all;
8621
8622
8623 /* cmpn26
8624 * The negative indicator is set.
8625 * Two 9-bit leading sign operands are used.
8626 * The maximum number of page faults is taken.
8627 * Indirect descriptors are used for all operands.
8628 * Address register modification is used for all operands. */
8629
8630 inst cmpn
8631 -nt "Compare 9-bit pos with 9-bit pos"
8632 -ir ng
8633 -mf1 idb ar reg
8634 -mf2 idb ar reg
8635 -io 1;
8636
8637 desc 1 -sd l -sf 2 -nn 63;
8638 desc 2 -sd l -sf 2 -nn 63;
8639
8640 data 1 -do -3 053 "95" 15"2398";
8641 data 2 -do -4 053 "68" 15"4782";
8642
8643 page -all;
8644
8645
8646 /* cmpn27
8647 * The negative indicator is set.
8648 * Two 9-bit floating point operands are used.
8649 * The maximum number of page faults is taken.
8650 * Indirect descriptors are used for all operands.
8651 * Address register modification is used for all operands. */
8652
8653 inst cmpn
8654 -nt "Compare 9-bit pos with 9-bit pos"
8655
8656 -ir ng
8657 -mf1 idb ar reg
8658 -mf2 idb ar reg
8659 -io 2;
8660
8661 desc 1 -sd f -nn 63;
8662 desc 2 -sd f -nn 63;
8663
8664 data 1 -do -4 053 "4" 15"8901" 002;
8665 data 2 -do -3 053 "4" 15"8901" 001;
8666
8667 page -all;
8668
8669
8670
8671 /* cmpn28
8672 * Two 4-bit trailing sign operands are used.
8673 * The maximum number of page faults is taken.
8674 * Indirect descriptors are used for all operands.
8675 * Address register modification is used for all operands. */
8676
8677 inst cmpn
8678 -nt "Compare 4-bit neg with 4-bit neg"
8679 -mf1 idb ar
8680 -mf2 idb ar
8681 -io 1;
8682
8683 desc 1 -tn 4 -sd t -nn 39;
8684 desc 2 -tn 4 -sd t -nn 39;
8685
8686 data 1 -do -19 19"5" 32;
8687 data 2 -do -19 19"4" 32;
8688
8689 page -all;
8690
8691
8692 /* cmpn29
8693 * Two 4-bit leading sign operands are used.
8694 * The maximum number of page faults is taken.
8695 * Indirect descriptors are used for all operands.
8696 * Address register modification is used for all operands. */
8697
8698 inst cmpn
8699 -nt "Compare 4-bit neg with 4-bit neg"
8700 -mf1 idb ar rl 7
8701 -mf2 idb ar
8702 -io 2;
8703
8704 desc 1 -tn 4 -sd l -sf 5 ;
8705 desc 2 -tn 4 -sd l -sf 1 -nn 7;
8706
8707 data 1 -do -3 324 "98" 00;
8708 data 2 -do -1 323 "64" 00;
8709
8710 page -all;
8711
8712
8713 /* cmpn30
8714 * Two 4-bit floating point operands are used.
8715 * The maximum number of page faults is taken.
8716 * Indirect descriptors are used for all operands.
8717 * Address register modification is used for all operands. */
8718
8719 inst cmpn
8720 -nt "Compare 4-bit neg with 4-bit neg"
8721 -mf1 idb ar
8722 -mf2 idb ar rl 60
8723 -io 2;
8724
8725 desc 1 -tn 4 -sd f -nn 63;
8726 desc 2 -tn 4 -sd f;
8727
8728 data 1 -do -1 321 15"892" 00;
8729 data 2 -do -29 322 14"98" 000;
8730
8731 page -all;
8732
8733
8734 /* cmpn31
8735 * Two 9-bit trailing sign operands are used.
8736 * The maximum number of page faults is taken.
8737 * Indirect descriptors are used for all operands.
8738 * Address register modification is used for all operands. */
8739
8740 inst cmpn
8741 -nt "Compare 9-bit neg with 9-bit pos"
8742 -mf1 idb ar reg rl 63
8743 -mf2 idb ar reg
8744 -io 2;
8745
8746 desc 1 -sd t -sf 12;
8747 desc 2 -sd t -sf -1 -nn 5;
8748
8749 data 1 -do -62 31"98" 055;
8750 data 2 -do -4 "5432" 053;
8751
8752 page -all;
8753
8754
8755 /* cmpn32
8756 * Two 9-bit leading sign operands are used.
8757 * The maximum number of page faults is taken.
8758 * Indirect descriptors are used for all operands.
8759 * Address register modification is used for all operands. */
8760
8761 inst cmpn
8762 -nt "Compare 9-bit neg with 9-bit pos"
8763 -mf1 idb ar reg
8764 -mf2 idb ar reg
8765 -io 2;
8766
8767 desc 1 -sd l -sf -4 -nn 6;
8768 desc 2 -sd l -sf -6 -nn 6;
8769
8770 data 1 -do -4 055 "42816";
8771 data 2 -do -5 053 "98321";
8772
8773 page -all;
8774
8775
8776 /* cmpn33
8777 * Two 9-bit floating point operands are used.
8778 * The maximum number of page faults is taken.
8779 * Indirect descriptors are used for all operands.
8780 * Address register modification is used for all operands. */
8781
8782 inst cmpn
8783
8784 -nt "Compare 9-bit neg with 9-bit pos"
8785 -mf1 idb ar reg rl 63
8786 -mf2 idb ar reg rl 63
8787 -io 1;
8788
8789 desc 1 -sd f ;
8790 desc 2 -sd f ;
8791
8792 data 1 -do -8 055 15"9999" "8" 004;
8793 data 2 -do -9 053 15"8777" "4" 002;
8794
8795 page -all;
8796
8797
8798 ^L
8799
8800
8801 /* mvne1
8802
8803 * these tests exercise the mvne instruction
8804 * using the 4 to 9 bit option and the 9 to 9
8805 * bit options on the data. the same template
8806 * for the mop sequence will be used for all
8807 * tests with various desc and data mod.
8808 *
8809 */
8810
8811 inst mvne -nt "simple test no mod 9-9"
8812 -mf2 rl 29;
8813
8814 desc 1 -nn 24 -sd n;
8815
8816
8817 desc 3 -nn 33 ;
8818
8819 data 1 /* the 9 bit data arranged in sequence of use */
8820 /* the strings are 0012 0012 3456 3456 0012 3456 */
8821
8822 "001200123456345600123456";
8823
8824 data 2 /* ***mop sequence arranged in order *** */
8825
8826 104 /* mvzb */
8827 060 /* ses es reset */
8828 124 /* mvza */
8829 064 /* ses es reset bz set */
8830 144 /* mfls */
8831 064 /* ses */
8832 040 /* enf for "+" insert. */
8833 200 "=" /* insb */
8834 220 "q" /* insa insert "q" */
8835 260 "q" /* insp */
8836 304 /* ign */
8837 344 /* mvc */
8838 420 "12345678" /* change table with string shown */
8839 024 /* insm */
8840 401 "2" /* load table entry 1 with "2" */
8841 024 /* insm */
8842 364 /* mors */
8843 /* end of mop string */;
8844
8845 data 3 /* arranged in order */
8846
8847 " 12"
8848 "**12"
8849 "+3456"
8850 "+"
8851 "="
8852 "q"
8853 "q"
8854 "0012"
8855 "1111"
8856 "2222"
8857 "3777";
8858
8859 page -all;
8860
8861 /* mvne2
8862
8863 * these tests exercise the mvne instruction
8864 * using the 4 to 9 bit option and the 9 to 9
8865 * bit options on the data. the same template
8866 * for the mop sequence will be used for all
8867 * tests with various desc and data mod.
8868 *
8869 */
8870
8871 inst mvne -nt "offset inst and desc mod 9-9" -io 3
8872 -mf1 idr reg
8873 -mf2 reg rl 29
8874 -mf3 idb;
8875
8876 desc 1 -nn 24 -sd n;
8877
8878
8879 desc 3 -nn 33 ;
8880
8881 data 1 /* the 9 bit data arranged in sequence of use */
8882 /* the strings are 0012 0012 3456 3456 0012 3456 */
8883
8884 "001200123456345600123456";
8885
8886 data 2 /* ***mop sequence arranged in order *** */
8887
8888 104 /* mvzb */
8889 060 /* ses es reset */
8890 124 /* mvza */
8891 064 /* ses es reset bz set */
8892 144 /* mfls */
8893 064 /* ses */
8894 040 /* enf for "+" insert. */
8895 200 "=" /* insb */
8896 220 "q" /* insa insert "q" */
8897 260 "q" /* insp */
8898 304 /* ign */
8899 344 /* mvc */
8900 420 "12345678" /* change table with string shown */
8901 024 /* insm */
8902 401 "2" /* load table entry 1 with "2" */
8903 024 /* insm */
8904 364 /* mors */
8905 /* end of mop string */;
8906
8907 data 3 /* arranged in order */
8908
8909 " 12"
8910 "**12"
8911 "+3456"
8912 "+"
8913 "="
8914 "q"
8915 "q"
8916 "0012"
8917 "1111"
8918 "2222"
8919 "3777";
8920
8921 page -all;
8922
8923 /* mvne3
8924
8925 * these tests exercise the mvne instruction
8926 * using the 4 to 9 bit option and the 9 to 9
8927 * bit options on the data. the same template
8928 * for the mop sequence will be used for all
8929 * tests with various desc and data mod.
8930 *
8931 */
8932
8933 inst mvne -nt "offset inst and d1 offset 9-9" -io 3
8934 -mf1 idr reg
8935 -mf2 reg rl 29
8936 -mf3 idb;
8937
8938 desc 1 -nn 24 -sd n;
8939
8940
8941 desc 3 -nn 33 ;
8942
8943
8944 data 1 /* the 9 bit data arranged in sequence of use */
8945 -do -16
8946 /* the strings are 0012 0012 3456 3456 0012 3456 */
8947
8948 "001200123456345600123456";
8949
8950 data 2 /* ***mop sequence arranged in order *** */
8951
8952 104 /* mvzb */
8953 060 /* ses es reset */
8954 124 /* mvza */
8955 064 /* ses es reset bz set */
8956 144 /* mfls */
8957 064 /* ses */
8958 040 /* enf for "+" insert. */
8959 200 "=" /* insb */
8960 220 "q" /* insa insert "q" */
8961 260 "q" /* insp */
8962 304 /* ign */
8963 344 /* mvc */
8964 420 "12345678" /* change table with string shown */
8965 024 /* insm */
8966 401 "2" /* load table entry 1 with "2" */
8967 024 /* insm */
8968 364 /* mors */
8969 /* end of mop string */;
8970
8971 data 3 /* arranged in order */
8972
8973 " 12"
8974 "**12"
8975 "+3456"
8976 "+"
8977 "="
8978 "q"
8979 "q"
8980 "0012"
8981 "1111"
8982 "2222"
8983 "3777";
8984
8985 page -all;
8986
8987 /* mvne4
8988
8989 * these tests exercise the mvne instruction
8990 * using the 4 to 9 bit option and the 9 to 9
8991 * bit options on the data. the same template
8992 * for the mop sequence will be used for all
8993 * tests with various desc and data mod.
8994 *
8995 */
8996
8997 inst mvne -nt "offset d2 and d1 offset 9-9" -io 3
8998 -mf1 idr reg
8999 -mf2 reg rl 29
9000 -mf3 idb;
9001
9002 desc 1 -nn 24 -sd n;
9003
9004
9005 desc 3 -nn 33 ;
9006
9007
9008 data 1 /* the 9 bit data arranged in sequence of use */
9009 -do -16
9010 /* the strings are 0012 0012 3456 3456 0012 3456 */
9011
9012 "001200123456345600123456";
9013
9014 data 2 /* ***mop sequence arranged in order *** */
9015 -do -20
9016
9017 104 /* mvzb */
9018 060 /* ses es reset */
9019 124 /* mvza */
9020 064 /* ses es reset bz set */
9021 144 /* mfls */
9022 064 /* ses */
9023 040 /* enf for "+" insert. */
9024 200 "=" /* insb */
9025 220 "q" /* insa insert "q" */
9026 260 "q" /* insp */
9027 304 /* ign */
9028 344 /* mvc */
9029 420 "12345678" /* change table with string shown */
9030 024 /* insm */
9031 401 "2" /* load table entry 1 with "2" */
9032 024 /* insm */
9033 364 /* mors */
9034 /* end of mop string */;
9035
9036 data 3 /* arranged in order */
9037
9038 " 12"
9039 "**12"
9040 "+3456"
9041 "+"
9042 "="
9043 "q"
9044 "q"
9045 "0012"
9046 "1111"
9047 "2222"
9048 "3777";
9049
9050 page -all;
9051
9052 /* mvne5
9053
9054 * these tests exercise the mvne instruction
9055 * using the 4 to 9 bit option and the 9 to 9
9056 * bit options on the data. the same template
9057 * for the mop sequence will be used for all
9058 * tests with various desc and data mod.
9059 *
9060 */
9061
9062 inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3
9063 -mf1 idr reg
9064 -mf2 reg rl 29
9065 -mf3 idb;
9066
9067 desc 1 -nn 24 -sd n;
9068
9069
9070 desc 3 -nn 33 ;
9071
9072
9073 data 1 /* the 9 bit data arranged in sequence of use */
9074 -do -16
9075 /* the strings are 0012 0012 3456 3456 0012 3456 */
9076
9077 "001200123456345600123456";
9078
9079 data 2 /* ***mop sequence arranged in order *** */
9080 -do -20
9081
9082 104 /* mvzb */
9083 060 /* ses es reset */
9084 124 /* mvza */
9085 064 /* ses es reset bz set */
9086 144 /* mfls */
9087 064 /* ses */
9088 040 /* enf for "+" insert. */
9089 200 "=" /* insb */
9090 220 "q" /* insa insert "q" */
9091 260 "q" /* insp */
9092 304 /* ign */
9093 344 /* mvc */
9094 420 "12345678" /* change table with string shown */
9095 024 /* insm */
9096 401 "2" /* load table entry 1 with "2" */
9097 024 /* insm */
9098 364 /* mors */
9099 /* end of mop string */;
9100
9101 data 3 /* arranged in order */
9102 -do -8
9103
9104 " 12"
9105 "**12"
9106 "+3456"
9107 "+"
9108 "="
9109 "q"
9110 "q"
9111 "0012"
9112 "1111"
9113 "2222"
9114 "3777";
9115
9116 page -all;
9117
9118 /* mvne6
9119
9120 * these tests exercise the mvne instruction
9121 * using the 4 to 9 bit option and the 9 to 9
9122 * bit options on the data. the same template
9123 * for the mop sequence will be used for all
9124 * tests with various desc and data mod.
9125 *
9126 */
9127
9128 inst mvne -nt "offset d2 and d1 and d3 9-9" -io 3
9129 -mf1 idr reg
9130 -mf2 reg rl 29
9131 -mf3 idb;
9132
9133 desc 1 -cn 3 -nn 24 -sd n;
9134
9135
9136 desc 3 -nn 33 ;
9137
9138
9139 data 1 /* the 9 bit data arranged in sequence of use */
9140 -do -16
9141 /* the strings are 0012 0012 3456 3456 0012 3456 */
9142
9143 "***" /* for cn */ "001200123456345600123456";
9144
9145 data 2 /* ***mop sequence arranged in order *** */
9146 -do -20
9147
9148 104 /* mvzb */
9149 060 /* ses es reset */
9150 124 /* mvza */
9151 064 /* ses es reset bz set */
9152 144 /* mfls */
9153 064 /* ses */
9154 040 /* enf for "+" insert. */
9155 200 "=" /* insb */
9156 220 "q" /* insa insert "q" */
9157 260 "q" /* insp */
9158 304 /* ign */
9159 344 /* mvc */
9160 420 "12345678" /* change table with string shown */
9161 024 /* insm */
9162 401 "2" /* load table entry 1 with "2" */
9163 024 /* insm */
9164 364 /* mors */
9165 /* end of mop string */;
9166
9167 data 3 /* arranged in order */
9168 -do -8
9169
9170 " 12"
9171 "**12"
9172 "+3456"
9173 "+"
9174 "="
9175 "q"
9176 "q"
9177 "0012"
9178 "1111"
9179 "2222"
9180 "3777";
9181
9182 page -all;
9183
9184 /* mvne7
9185
9186 * these tests exercise the mvne instruction
9187 * using the 4 to 9 bit option and the 9 to 9
9188 * bit options on the data. the same template
9189 * for the mop sequence will be used for all
9190 * tests with various desc and data mod.
9191 *
9192 */
9193
9194 inst mvne -nt "d1 totally on p0 9-9" -io 2
9195 -mf1 idr ar
9196 -mf2 reg rl 29
9197 -mf3 ida ar reg;
9198
9199 desc 1 -cn 3 -nn 24 -sd n;
9200
9201
9202 desc 3 -nn 33 ;
9203
9204
9205 data 1 /* the 9 bit data arranged in sequence of use */
9206 -do -24
9207 /* the strings are 0012 0012 3456 3456 0012 3456 */
9208
9209 "***" /* for cn */ "001200123456345600123456";
9210
9211 data 2 /* ***mop sequence arranged in order *** */
9212 -do -20
9213
9214 104 /* mvzb */
9215 060 /* ses es reset */
9216 124 /* mvza */
9217 064 /* ses es reset bz set */
9218 144 /* mfls */
9219 064 /* ses */
9220 040 /* enf for "+" insert. */
9221 200 "=" /* insb */
9222 220 "q" /* insa insert "q" */
9223 260 "q" /* insp */
9224 304 /* ign */
9225 344 /* mvc */
9226 420 "12345678" /* change table with string shown */
9227 024 /* insm */
9228 401 "2" /* load table entry 1 with "2" */
9229 024 /* insm */
9230 364 /* mors */
9231 /* end of mop string */;
9232
9233 data 3 /* arranged in order */
9234 -do -8
9235
9236 " 12"
9237 "**12"
9238 "+3456"
9239 "+"
9240 "="
9241 "q"
9242 "q"
9243 "0012"
9244 "1111"
9245 "2222"
9246 "3777";
9247
9248 page -all;
9249
9250
9251 /* mvne8
9252
9253 * these tests exercise the mvne instruction
9254 * using the 4 to 9 bit option and the 9 to 9
9255 * bit options on the data. the same template
9256 * for the mop sequence will be used for all
9257 * tests with various desc and data mod.
9258 *
9259 */
9260
9261 inst mvne -nt "d2 totally on p0 9-9" -io 2
9262 -mf1 idr ar
9263 -mf2 ar reg rl 29
9264 -mf3 ida ar reg;
9265
9266 desc 1 -cn 3 -nn 24 -sd n;
9267
9268
9269 desc 3 -nn 33 ;
9270
9271
9272 data 1 /* the 9 bit data arranged in sequence of use */
9273 -do -20
9274 /* the strings are 0012 0012 3456 3456 0012 3456 */
9275
9276 "***" /* for cn */ "001200123456345600123456";
9277
9278 data 2 /* ***mop sequence arranged in order *** */
9279 -do -30
9280
9281 104 /* mvzb */
9282 060 /* ses es reset */
9283 124 /* mvza */
9284 064 /* ses es reset bz set */
9285 144 /* mfls */
9286 064 /* ses */
9287 040 /* enf for "+" insert. */
9288 200 "=" /* insb */
9289 220 "q" /* insa insert "q" */
9290 260 "q" /* insp */
9291 304 /* ign */
9292 344 /* mvc */
9293 420 "12345678" /* change table with string shown */
9294 024 /* insm */
9295 401 "2" /* load table entry 1 with "2" */
9296 024 /* insm */
9297 364 /* mors */
9298 /* end of mop string */;
9299
9300 data 3 /* arranged in order */
9301 -do -8
9302
9303 " 12"
9304 "**12"
9305 "+3456"
9306 "+"
9307 "="
9308 "q"
9309 "q"
9310 "0012"
9311 "1111"
9312 "2222"
9313 "3777";
9314
9315 page -all;
9316
9317 /* mvne9
9318
9319 * these tests exercise the mvne instruction
9320 * using the 4 to 9 bit option and the 9 to 9
9321 * bit options on the data. the same template
9322 * for the mop sequence will be used for all
9323 * tests with various desc and data mod.
9324 *
9325 */
9326
9327 inst mvne -nt "d3 totally on p0 9-9" -io 2
9328 -mf1 idr ar
9329 -mf2 reg ar rl 29
9330 -mf3 ida ar reg;
9331
9332 desc 1 -cn 3 -nn 24 -sd n;
9333
9334
9335 desc 3 -nn 33 ;
9336
9337
9338 data 1 /* the 9 bit data arranged in sequence of use */
9339 -do -20
9340 /* the strings are 0012 0012 3456 3456 0012 3456 */
9341
9342 "***" /* for cn */ "001200123456345600123456";
9343
9344 data 2 /* ***mop sequence arranged in order *** */
9345 -do -10
9346
9347 104 /* mvzb */
9348 060 /* ses es reset */
9349 124 /* mvza */
9350 064 /* ses es reset bz set */
9351 144 /* mfls */
9352 064 /* ses */
9353 040 /* enf for "+" insert. */
9354 200 "=" /* insb */
9355 220 "q" /* insa insert "q" */
9356 260 "q" /* insp */
9357 304 /* ign */
9358 344 /* mvc */
9359 420 "12345678" /* change table with string shown */
9360 024 /* insm */
9361 401 "2" /* load table entry 1 with "2" */
9362 024 /* insm */
9363 364 /* mors */
9364 /* end of mop string */;
9365
9366 data 3 /* arranged in order */
9367 -do -34
9368
9369 " 12"
9370 "**12"
9371 "+3456"
9372 "+"
9373 "="
9374 "q"
9375 "q"
9376 "0012"
9377 "1111"
9378 "2222"
9379 "3777";
9380
9381 page -all;
9382
9383 /* mvne10
9384
9385 * these tests exercise the mvne instruction
9386 * using the 4 to 9 bit option and the 9 to 9
9387 * bit options on the data. the same template
9388 * for the mop sequence will be used for all
9389 * tests with various desc and data mod.
9390 *
9391 */
9392
9393 inst mvne -nt "all data totally on p0 9-9" -io 2
9394 -mf1 idr ar
9395 -mf2 reg ar rl 29
9396 -mf3 ida ar reg;
9397
9398 desc 1 -cn 3 -nn 24 -sd n;
9399
9400
9401 desc 3 -nn 33 ;
9402
9403
9404 data 1 /* the 9 bit data arranged in sequence of use */
9405 -do -30
9406 /* the strings are 0012 0012 3456 3456 0012 3456 */
9407
9408 "***" /* for cn */ "001200123456345600123456";
9409
9410 data 2 /* ***mop sequence arranged in order *** */
9411 -do -30
9412
9413 104 /* mvzb */
9414 060 /* ses es reset */
9415 124 /* mvza */
9416 064 /* ses es reset bz set */
9417 144 /* mfls */
9418 064 /* ses */
9419 040 /* enf for "+" insert. */
9420 200 "=" /* insb */
9421 220 "q" /* insa insert "q" */
9422 260 "q" /* insp */
9423 304 /* ign */
9424 344 /* mvc */
9425 420 "12345678" /* change table with string shown */
9426 024 /* insm */
9427 401 "2" /* load table entry 1 with "2" */
9428 024 /* insm */
9429 364 /* mors */
9430 /* end of mop string */;
9431
9432 data 3 /* arranged in order */
9433 -do -34
9434
9435 " 12"
9436 "**12"
9437 "+3456"
9438 "+"
9439 "="
9440 "q"
9441 "q"
9442 "0012"
9443 "1111"
9444 "2222"
9445 "3777";
9446
9447 page -all;
9448
9449 /* mvne11
9450
9451 * these tests exercise the mvne instruction
9452 * using the 4 to 9 bit option and the 9 to 9
9453 * bit options on the data. the same template
9454 * for the mop sequence will be used for all
9455 * tests with various desc and data mod.
9456 *
9457 */
9458
9459 inst mvne -nt "simple test no mod 4-9"
9460 -mf2 rl 29;
9461
9462 desc 1 -tn 4 -nn 24 -sd n;
9463
9464
9465 desc 3 -nn 33 ;
9466
9467 data 1 /* the 9 bit data arranged in sequence of use */
9468 /* the strings are 0012 0012 3456 3456 0012 3456 */
9469
9470 000022000022064126064126000022064126;
9471
9472 data 2 /* ***mop sequence arranged in order *** */
9473
9474 104 /* mvzb */
9475 060 /* ses es reset */
9476 124 /* mvza */
9477 064 /* ses es reset bz set */
9478 144 /* mfls */
9479 064 /* ses */
9480 040 /* enf for "+" insert. */
9481 200 "=" /* insb */
9482 220 "q" /* insa insert "q" */
9483 260 "q" /* insp */
9484 304 /* ign */
9485 344 /* mvc */
9486 420 "12345678" /* change table with string shown */
9487 024 /* insm */
9488 401 "2" /* load table entry 1 with "2" */
9489 024 /* insm */
9490 364 /* mors */
9491 /* end of mop string */;
9492
9493 data 3 /* arranged in order */
9494
9495 " 12"
9496 "**12"
9497 "+3456"
9498 "+"
9499 "="
9500 "q"
9501 "q"
9502 "0012"
9503 "1111"
9504 "2222"
9505 "3777";
9506
9507 page -all;
9508
9509 /* mvne12
9510
9511 * these tests exercise the mvne instruction
9512 * using the 4 to 9 bit option and the 9 to 9
9513 * bit options on the data. the same template
9514 * for the mop sequence will be used for all
9515 * tests with various desc and data mod.
9516 *
9517 */
9518
9519 inst mvne -nt "offset inst and desc mod 4-9" -io 2
9520
9521 -mf2 reg rl 29
9522 -mf3 ida;
9523
9524 desc 1 -tn 4 -nn 24 -sd n;
9525
9526
9527 desc 3 -nn 33 ;
9528
9529 data 1 /* the 9 bit data arranged in sequence of use */
9530 /* the strings are 0012 0012 3456 3456 0012 3456 */
9531
9532 000022000022064126064126000022064126;
9533
9534 data 2 /* ***mop sequence arranged in order *** */
9535
9536 104 /* mvzb */
9537 060 /* ses es reset */
9538 124 /* mvza */
9539 064 /* ses es reset bz set */
9540 144 /* mfls */
9541 064 /* ses */
9542 040 /* enf for "+" insert. */
9543 200 "=" /* insb */
9544 220 "q" /* insa insert "q" */
9545 260 "q" /* insp */
9546 304 /* ign */
9547 344 /* mvc */
9548 420 "12345678" /* change table with string shown */
9549 024 /* insm */
9550 401 "2" /* load table entry 1 with "2" */
9551 024 /* insm */
9552 364 /* mors */
9553 /* end of mop string */;
9554
9555 data 3 /* arranged in order */
9556
9557 " 12"
9558 "**12"
9559 "+3456"
9560 "+"
9561 "="
9562 "q"
9563 "q"
9564 "0012"
9565 "1111"
9566 "2222"
9567 "3777";
9568
9569 page -all;
9570
9571 /* mvne13
9572
9573 * these tests exercise the mvne instruction
9574 * using the 4 to 9 bit option and the 9 to 9
9575 * bit options on the data. the same template
9576 * for the mop sequence will be used for all
9577 * tests with various desc and data mod.
9578 *
9579 */
9580
9581 inst mvne -nt "offset inst and d1 offset 4-9" -io 3
9582
9583 -mf2 reg rl 29
9584 -mf3 ida;
9585
9586 desc 1 -tn 4 -nn 24 -sd n;
9587
9588
9589 desc 3 -nn 33 ;
9590
9591
9592 data 1 /* the 9 bit data arranged in sequence of use */
9593 -do -16
9594 /* the strings are 0012 0012 3456 3456 0012 3456 */
9595
9596 000022000022064126064126000022064126;
9597
9598 data 2 /* ***mop sequence arranged in order *** */
9599
9600 104 /* mvzb */
9601 060 /* ses es reset */
9602 124 /* mvza */
9603 064 /* ses es reset bz set */
9604 144 /* mfls */
9605 064 /* ses */
9606 040 /* enf for "+" insert. */
9607 200 "=" /* insb */
9608 220 "q" /* insa insert "q" */
9609 260 "q" /* insp */
9610 304 /* ign */
9611 344 /* mvc */
9612 420 "12345678" /* change table with string shown */
9613 024 /* insm */
9614 401 "2" /* load table entry 1 with "2" */
9615 024 /* insm */
9616 364 /* mors */
9617 /* end of mop string */;
9618
9619 data 3 /* arranged in order */
9620
9621 " 12"
9622 "**12"
9623 "+3456"
9624 "+"
9625 "="
9626 "q"
9627 "q"
9628 "0012"
9629 "1111"
9630 "2222"
9631 "3777";
9632
9633 page -all;
9634
9635 /* mvne14
9636
9637 * these tests exercise the mvne instruction
9638 * using the 4 to 9 bit option and the 9 to 9
9639 * bit options on the data. the same template
9640 * for the mop sequence will be used for all
9641 * tests with various desc and data mod.
9642 *
9643 */
9644
9645 inst mvne -nt "offset d2 and d1 offset 4-9" -io 3
9646
9647 -mf2 reg rl 29
9648 -mf3 ida;
9649
9650 desc 1 -tn 4 -nn 24 -sd n;
9651
9652
9653 desc 3 -nn 33 ;
9654
9655
9656 data 1 /* the 9 bit data arranged in sequence of use */
9657 -do -16
9658 /* the strings are 0012 0012 3456 3456 0012 3456 */
9659
9660 000022000022064126064126000022064126;
9661
9662 data 2 /* ***mop sequence arranged in order *** */
9663 -do -20
9664
9665 104 /* mvzb */
9666 060 /* ses es reset */
9667 124 /* mvza */
9668 064 /* ses es reset bz set */
9669 144 /* mfls */
9670 064 /* ses */
9671 040 /* enf for "+" insert. */
9672 200 "=" /* insb */
9673 220 "q" /* insa insert "q" */
9674 260 "q" /* insp */
9675 304 /* ign */
9676 344 /* mvc */
9677 420 "12345678" /* change table with string shown */
9678 024 /* insm */
9679 401 "2" /* load table entry 1 with "2" */
9680 024 /* insm */
9681 364 /* mors */
9682 /* end of mop string */;
9683
9684 data 3 /* arranged in order */
9685
9686 " 12"
9687 "**12"
9688 "+3456"
9689 "+"
9690 "="
9691 "q"
9692 "q"
9693 "0012"
9694 "1111"
9695 "2222"
9696 "3777";
9697
9698 page -all;
9699
9700 /* mvne15
9701
9702 * these tests exercise the mvne instruction
9703 * using the 4 to 9 bit option and the 9 to 9
9704 * bit options on the data. the same template
9705 * for the mop sequence will be used for all
9706 * tests with various desc and data mod.
9707 *
9708 */
9709
9710 inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3
9711
9712 -mf2 reg rl 29
9713 -mf3 ida;
9714
9715 desc 1 -tn 4 -nn 24 -sd n;
9716
9717
9718 desc 3 -nn 33 ;
9719
9720
9721 data 1 /* the 9 bit data arranged in sequence of use */
9722 -do -16
9723 /* the strings are 0012 0012 3456 3456 0012 3456 */
9724
9725 000022000022064126064126000022064126;
9726
9727 data 2 /* ***mop sequence arranged in order *** */
9728 -do -20
9729
9730 104 /* mvzb */
9731 060 /* ses es reset */
9732 124 /* mvza */
9733 064 /* ses es reset bz set */
9734 144 /* mfls */
9735 064 /* ses */
9736 040 /* enf for "+" insert. */
9737 200 "=" /* insb */
9738 220 "q" /* insa insert "q" */
9739 260 "q" /* insp */
9740 304 /* ign */
9741 344 /* mvc */
9742 420 "12345678" /* change table with string shown */
9743 024 /* insm */
9744 401 "2" /* load table entry 1 with "2" */
9745 024 /* insm */
9746 364 /* mors */
9747 /* end of mop string */;
9748
9749 data 3 /* arranged in order */
9750 -do -8
9751
9752 " 12"
9753 "**12"
9754 "+3456"
9755 "+"
9756 "="
9757 "q"
9758 "q"
9759 "0012"
9760 "1111"
9761 "2222"
9762 "3777";
9763
9764 page -all;
9765
9766 /* mvne16
9767
9768 * these tests exercise the mvne instruction
9769 * using the 4 to 9 bit option and the 9 to 9
9770 * bit options on the data. the same template
9771 * for the mop sequence will be used for all
9772 * tests with various desc and data mod.
9773 *
9774 */
9775
9776 inst mvne -nt "offset d2 and d1 and d3 4-9" -io 3
9777
9778 -mf2 reg rl 29
9779 -mf3 ida;
9780
9781 desc 1 -tn 4 -nn 24 -sd n;
9782
9783
9784 desc 3 -nn 33 ;
9785
9786
9787 data 1 /* the 9 bit data arranged in sequence of use */
9788 -do -16
9789 /* the strings are 0012 0012 3456 3456 0012 3456 */
9790
9791 000022000022064126064126000022064126;
9792
9793 data 2 /* ***mop sequence arranged in order *** */
9794 -do -20
9795
9796 104 /* mvzb */
9797 060 /* ses es reset */
9798 124 /* mvza */
9799 064 /* ses es reset bz set */
9800 144 /* mfls */
9801 064 /* ses */
9802 040 /* enf for "+" insert. */
9803 200 "=" /* insb */
9804 220 "q" /* insa insert "q" */
9805 260 "q" /* insp */
9806 304 /* ign */
9807 344 /* mvc */
9808 420 "12345678" /* change table with string shown */
9809 024 /* insm */
9810 401 "2" /* load table entry 1 with "2" */
9811 024 /* insm */
9812 364 /* mors */
9813 /* end of mop string */;
9814
9815 data 3 /* arranged in order */
9816 -do -8
9817
9818 " 12"
9819 "**12"
9820 "+3456"
9821 "+"
9822 "="
9823 "q"
9824 "q"
9825 "0012"
9826 "1111"
9827 "2222"
9828 "3777";
9829
9830 page -all;
9831
9832 /* mvne17
9833
9834 * these tests exercise the mvne instruction
9835 * using the 4 to 9 bit option and the 9 to 9
9836 * bit options on the data. the same template
9837 * for the mop sequence will be used for all
9838 * tests with various desc and data mod.
9839 *
9840 */
9841
9842 inst mvne -nt "d1 totally on p0 4-9" -io 2
9843 -mf1 idr ar
9844 -mf2 reg rl 29
9845 -mf3 ida ar reg;
9846
9847 desc 1 -tn 4 -nn 24 -sd n;
9848
9849
9850 desc 3 -nn 33 ;
9851
9852
9853 data 1 /* the 9 bit data arranged in sequence of use */
9854 -do -24
9855 /* the strings are 0012 0012 3456 3456 0012 3456 */
9856
9857 000022000022064126064126000022064126;
9858
9859 data 2 /* ***mop sequence arranged in order *** */
9860 -do -20
9861
9862 104 /* mvzb */
9863 060 /* ses es reset */
9864 124 /* mvza */
9865 064 /* ses es reset bz set */
9866 144 /* mfls */
9867 064 /* ses */
9868 040 /* enf for "+" insert. */
9869 200 "=" /* insb */
9870 220 "q" /* insa insert "q" */
9871 260 "q" /* insp */
9872 304 /* ign */
9873 344 /* mvc */
9874 420 "12345678" /* change table with string shown */
9875 024 /* insm */
9876 401 "2" /* load table entry 1 with "2" */
9877 024 /* insm */
9878 364 /* mors */
9879 /* end of mop string */;
9880
9881 data 3 /* arranged in order */
9882 -do -8
9883
9884 " 12"
9885 "**12"
9886 "+3456"
9887 "+"
9888 "="
9889 "q"
9890 "q"
9891 "0012"
9892 "1111"
9893 "2222"
9894 "3777";
9895
9896 page -all;
9897
9898
9899 /* mvne18
9900
9901 * these tests exercise the mvne instruction
9902 * using the 4 to 9 bit option and the 9 to 9
9903 * bit options on the data. the same template
9904 * for the mop sequence will be used for all
9905 * tests with various desc and data mod.
9906 *
9907 */
9908
9909 inst mvne -nt "d2 totally on p0 4-9" -io 2
9910 -mf1 idr ar
9911 -mf2 ar reg rl 29
9912 -mf3 ida ar reg;
9913
9914 desc 1 -tn 4 -nn 24 -sd n;
9915
9916
9917 desc 3 -nn 33 ;
9918
9919
9920 data 1 /* the 9 bit data arranged in sequence of use */
9921 -do -20
9922 /* the strings are 0012 0012 3456 3456 0012 3456 */
9923
9924 000022000022064126064126000022064126;
9925
9926 data 2 /* ***mop sequence arranged in order *** */
9927 -do -30
9928
9929 104 /* mvzb */
9930 060 /* ses es reset */
9931 124 /* mvza */
9932 064 /* ses es reset bz set */
9933 144 /* mfls */
9934 064 /* ses */
9935 040 /* enf for "+" insert. */
9936 200 "=" /* insb */
9937 220 "q" /* insa insert "q" */
9938 260 "q" /* insp */
9939 304 /* ign */
9940 344 /* mvc */
9941 420 "12345678" /* change table with string shown */
9942 024 /* insm */
9943 401 "2" /* load table entry 1 with "2" */
9944 024 /* insm */
9945 364 /* mors */
9946 /* end of mop string */;
9947
9948 data 3 /* arranged in order */
9949 -do -8
9950
9951 " 12"
9952 "**12"
9953 "+3456"
9954 "+"
9955 "="
9956 "q"
9957 "q"
9958 "0012"
9959 "1111"
9960 "2222"
9961 "3777";
9962
9963 page -all;
9964
9965 /* mvne19
9966
9967 * these tests exercise the mvne instruction
9968 * using the 4 to 9 bit option and the 9 to 9
9969 * bit options on the data. the same template
9970 * for the mop sequence will be used for all
9971 * tests with various desc and data mod.
9972 *
9973 */
9974
9975 inst mvne -nt "d3 totally on p0 4-9" -io 2
9976 -mf1 idr ar
9977 -mf2 reg ar rl 29
9978 -mf3 ida ar reg;
9979
9980 desc 1 -tn 4 -nn 24 -sd n;
9981
9982
9983 desc 3 -nn 33 ;
9984
9985
9986 data 1 /* the 9 bit data arranged in sequence of use */
9987 -do -20
9988 /* the strings are 0012 0012 3456 3456 0012 3456 */
9989
9990 000022000022064126064126000022064126;
9991
9992 data 2 /* ***mop sequence arranged in order *** */
9993 -do -10
9994
9995 104 /* mvzb */
9996 060 /* ses es reset */
9997 124 /* mvza */
9998 064 /* ses es reset bz set */
9999 144 /* mfls */
10000 064 /* ses */
10001 040 /* enf for "+" insert. */
10002 200 "=" /* insb */
10003 220 "q" /* insa insert "q" */
10004 260 "q" /* insp */
10005 304 /* ign */
10006 344 /* mvc */
10007 420 "12345678" /* change table with string shown */
10008 024 /* insm */
10009 401 "2" /* load table entry 1 with "2" */
10010 024 /* insm */
10011 364 /* mors */
10012 /* end of mop string */;
10013
10014 data 3 /* arranged in order */
10015 -do -34
10016
10017 " 12"
10018 "**12"
10019 "+3456"
10020 "+"
10021 "="
10022 "q"
10023 "q"
10024 "0012"
10025 "1111"
10026 "2222"
10027 "3777";
10028
10029 page -all;
10030
10031 /* mvne20
10032
10033 * these tests exercise the mvne instruction
10034 * using the 4 to 9 bit option and the 9 to 9
10035 * bit options on the data. the same template
10036 * for the mop sequence will be used for all
10037 * tests with various desc and data mod.
10038 *
10039 */
10040
10041 inst mvne -nt "all data totally on p0 4-9" -io 2
10042 -mf1 idr ar
10043 -mf2 reg ar rl 29
10044 -mf3 ida ar reg;
10045
10046 desc 1 -tn 4 -nn 24 -sd n;
10047
10048
10049 desc 3 -nn 33 ;
10050
10051
10052 data 1 /* the 9 bit data arranged in sequence of use */
10053 -do -30
10054 /* the strings are 0012 0012 3456 3456 0012 3456 */
10055
10056 000022000022064126064126000022064126;
10057
10058 data 2 /* ***mop sequence arranged in order *** */
10059 -do -30
10060
10061 104 /* mvzb */
10062 060 /* ses es reset */
10063 124 /* mvza */
10064 064 /* ses es reset bz set */
10065 144 /* mfls */
10066 064 /* ses */
10067 040 /* enf for "+" insert. */
10068 200 "=" /* insb */
10069 220 "q" /* insa insert "q" */
10070 260 "q" /* insp */
10071 304 /* ign */
10072 344 /* mvc */
10073 420 "12345678" /* change table with string shown */
10074 024 /* insm */
10075 401 "2" /* load table entry 1 with "2" */
10076 024 /* insm */
10077 364 /* mors */
10078 /* end of mop string */;
10079
10080 data 3 /* arranged in order */
10081 -do -34
10082
10083 " 12"
10084 "**12"
10085 "+3456"
10086 "+"
10087 "="
10088 "q"
10089 "q"
10090 "0012"
10091 "1111"
10092 "2222"
10093 "3777";
10094
10095 page -all;
10096
10097
10098 ^L
10099
10100 /* ad3d1
10101 * The zero indicator is set.
10102 * Three 9-bit floating point operands are used.
10103 * Indirect descriptors are used for all operands.
10104 * Address register modification is used for all operands. */
10105
10106 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10107 -ir zr
10108 -mf1 idb ar reg
10109 -mf2 idb ar reg
10110 -mf3 idb ar reg
10111 -io 1;
10112
10113 desc 1 -sd f -nn 63;
10114 desc 2 -sd f -nn 60;
10115 desc 3 -sd f -nn 63;
10116
10117 data 1 -do -1 "+" 14"2583" "00000" 005;
10118 data 2 -do -60 "-" 14"2583" "00" 010;
10119 data 3 -do -8 "+" 61"0" 177;
10120
10121 page -all;
10122
10123
10124
10125 /* ad3d2
10126 * The zero indicator is set.
10127 * Three 9-bit leading sign operands are used.
10128 * The maximum number of page faults is taken.
10129 * Indirect descriptors are used for all operands.
10130 * Address register modification is used for all operands. */
10131
10132 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10133 -ir zr tn
10134 -mf1 idb ar reg
10135 -mf2 idb ar reg
10136 -mf3 idb ar reg
10137 -io 2;
10138
10139 desc 1 -sd l -nn 13 -sf 4;
10140 desc 2 -sd l -nn 13 -sf 4;
10141 desc 3 -sd l -nn 5 -sf 6;
10142
10143 data 1 -do -12 "-" 2"392457";
10144 data 2 -do -4 "+" 2"392457";
10145 data 3 -do -4 "+" 4"0";
10146
10147 page -all;
10148
10149
10150
10151 /* ad3d3
10152 * The negative indicator is set.
10153 * Three 4-bit floating point operands are used.
10154 * Indirect descriptors are used for all operands.
10155 * Address register modification is used for all operands. */
10156
10157 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10158 -ir ng
10159 -mf1 idb ar
10160 -mf2 idb ar
10161 -mf3 idb ar
10162 -io 3;
10163
10164 desc 1 -tn 4 -sd f -nn 22;
10165 desc 2 -tn 4 -sd f -nn 22;
10166 desc 3 -tn 4 -sd f -nn 22;
10167
10168 data 1 -do -11 320 5000 "8888" 005;
10169 data 2 -do -1 260 5 000 "7777" 005;
10170 data 3 -do -4 320 5000 4001 005;
10171
10172 page -all;
10173
10174
10175
10176 /* ad3d4
10177 * The negative indicator is set.
10178 * Three 4-bit trailing sign operands are used.
10179 * Indirect descriptors are used for all operands.
10180 * Address register modification is used for all operands. */
10181
10182 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10183 -ir ng
10184 -mf1 idb ar
10185 -mf2 idb ar
10186 -mf3 idb ar
10187 -io 1;
10188
10189 desc 1 -tn 4 -sd t -sf -1 -nn 8;
10190 desc 2 -tn 4 -sd t -sf -1 -nn 8;
10191 desc 3 -tn 4 -sd t -sf -1 -nn 8;
10192
10193 data 1 -do -4 "555+";
10194 data 2 -do -4 "777-";
10195 data 3 -do -4 3002 015;
10196
10197 page -all;
10198
10199
10200 /* ad3d5
10201 * The truncation indicator is set.
10202 * Three 9-bit floating point operands are used.
10203 * The maximum number of page faults is taken.
10204 * Indirect descriptors are used for all operands.
10205 * Address register modification is used for all operands. */
10206
10207 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10208 -ir tn
10209 -mf1 idb ar reg
10210 -mf2 idb ar reg
10211 -mf3 idb ar reg
10212 -io 2;
10213
10214 desc 1 -sd f -nn 63;
10215 desc 2 -sd f -nn 63;
10216 desc 3 -sd f -nn 50;
10217
10218 data 1 -do -1 "+" 61"4" 003;
10219 data 2 -do -62 "+" 61"5" 003;
10220 data 3 -do -48 "+" 48"9" 020;
10221
10222 page -all;
10223
10224
10225
10226 /* ad3d6
10227 * The truncation indicator is set.
10228 * Three 9-bit leading sign operands are used.
10229 * The maximum number of page faults is taken.
10230 * Indirect descriptors are used for all operands.
10231 * Address register modification is used for all operands. */
10232
10233 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10234 -ir tn
10235 -mf1 idb ar reg
10236 -mf2 idb ar reg
10237 -mf3 idb ar reg
10238 -io 3;
10239
10240 desc 1 -sd l -sf 5 -nn 37;
10241 desc 2 -sd l -sf 5 -nn 37;
10242 desc 3 -sd l -sf 10 -nn 37;
10243
10244 data 1 -do -20 "+" 6"121212";
10245 data 2 -do -20 "+" 6"212121";
10246 data 3 -do -32 "+" 5"0" 31"3";
10247
10248 page -all;
10249
10250
10251
10252 /* ad3d7
10253 * Rounding is tested.
10254 * Three 9-bit trailing sign operands are used.
10255 * The maximum number of page faults is taken.
10256 * Indirect descriptors are used for all operands.
10257 * Address register modification is used for all operands. */
10258
10259 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10260 -rb
10261 -mf1 idb ar reg
10262 -mf2 idb ar reg
10263 -mf3 idb ar reg
10264 -io 1;
10265
10266 desc 1 -sd t -sf 5 -nn 37;
10267 desc 2 -sd t -sf 5 -nn 37;
10268 desc 3 -sd t -sf 10 -nn 37;
10269
10270 data 1 -do -36 6"121212" "+";
10271 data 2 -do -1 6"212121" "+";
10272 data 3 -do -35 5"0" 31"3" "+";
10273
10274 page -all;
10275
10276
10277
10278 /* ad3d8
10279 * The overflow indicator is set.
10280 * Three 4-bit unsigned operands are used.
10281 * Indirect descriptors are used for all operands.
10282 * Address register modification is used for all operands. */
10283
10284 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10285 -ir ov
10286 -mf1 idb ar
10287 -mf2 idb ar
10288 -mf3 idb ar
10289 -io 2;
10290
10291 desc 1 -tn 4 -sd n -sf 8 -nn 16;
10292 desc 2 -tn 4 -sd n -sf 8 -nn 16;
10293 desc 3 -tn 4 -sd n -sf 5 -nn 16;
10294
10295 data 1 -do -15 8 042;
10296 data 2 -do -1 8 063;
10297 data 3 -do -8 6 125 120 000;
10298
10299 page -all;
10300
10301
10302
10303 /* ad3d9
10304 * The exponent overflow indicator is set.
10305 * Three 9-bit floating point operands are used.
10306 * The maximum number of page faults is taken.
10307 * Indirect descriptors are used for all operands.
10308 * Address register modification is used for all operands. */
10309
10310 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10311 -ir eo tn
10312 -mf1 idb ar reg
10313 -mf2 idb ar reg
10314 -mf3 idb ar reg
10315 -io 3;
10316
10317 desc 1 -sd f -nn 6;
10318 desc 2 -sd f -nn 6;
10319 desc 3 -sd f -nn 6;
10320
10321 data 1 -do -1 "+" 4"9" 177;
10322 data 2 -do -5 "+" 4"2" 177;
10323 data 3 -do -4 "+" "1222" 200;
10324
10325 page -all;
10326
10327
10328
10329 /* ad3d10
10330 * A 9-bit operand is added to a 9-bit operand and stored in a 4-bit operand.
10331 * The maximum number of page faults is taken.
10332 * Indirect descriptors are used for all operands.
10333 * Address register modification is used for all operands. */
10334
10335 inst ad3d -nt "9 bit + 9 bit -> 4 bit"
10336 -mf1 idb ar reg
10337 -mf2 idb ar reg
10338 -mf3 idb ar
10339 -io 1;
10340
10341 desc 1 -sd l -nn 10;
10342 desc 2 -sd l -nn 10;
10343 desc 3 -sd l -tn 4 -nn 11 -cn 1;
10344
10345 data 1 -do -1 "+" "987654321";
10346 data 2 -do -8 "+" "123456789";
10347 data 3 -do -1 00 301 4021 00;
10348
10349 page -all;
10350
10351
10352
10353 /* ad3d11
10354 * A 4-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10355 * Indirect descriptors are used for all operands.
10356 * Address register modification is used for all operands. */
10357
10358 inst ad3d -nt "4 bit + 4 bit -> 9 bit"
10359 -mf1 idb ar
10360 -mf2 idb ar
10361 -mf3 idb ar reg
10362 -io 2;
10363
10364 desc 1 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10365 desc 2 -sd t -tn 4 -sf -1 -nn 10 -cn 1;
10366 desc 3 -sd t -sf -1 -nn 11;
10367
10368 data 1 -do -1 00 230 166 124 062 033;
10369 data 2 -do -5 00 022 064 126 170 233;
10370 data 3 -do -10 9"1" "0" "+";
10371
10372 page -all;
10373
10374
10375
10376 /* ad3d12
10377 * A 9-bit operand is added to a 4-bit operand and stored in a 4-bit operand.
10378 * The maximum number of page faults is taken.
10379 * Indirect descriptors are used for all operands.
10380 * Address register modification is used for all operands. */
10381
10382 inst ad3d -nt "9 bit + 4 bit -> 4 bit"
10383 -mf1 idb ar reg
10384 -mf2 idb ar
10385 -mf3 idb ar
10386 -io 3;
10387
10388 desc 1 -sd f -nn 11;
10389 desc 2 -sd f -tn 4 -nn 12;
10390 desc 3 -sd f -tn 4 -nn 13;
10391
10392 data 1 -do -9 "+" "987654321" 036;
10393 data 2 -do -5 261 043 105 147 211 036;
10394 data 3 -do -6 301 4021 001 34;
10395
10396 page -all;
10397
10398
10399
10400 /* ad3d13
10401 * A 9-bit operand is added to a 4-bit operand and stored in a 9-bit operand.
10402 * The maximum number of page faults is taken.
10403 * Indirect descriptors are used for all operands.
10404 * Address register modification is used for all operands. */
10405
10406 inst ad3d -nt "9 bit + 4 bit -> 9 bit"
10407 -mf1 idb ar reg
10408 -mf2 idb ar
10409 -mf3 idb ar reg
10410 -io 1;
10411
10412 desc 1 -sd n -sf -5 -nn 9;
10413 desc 2 -sd n -tn 4 -sf -5 -nn 9;
10414 desc 3 -sd n -sf -5 -nn 10;
10415
10416 data 1 -do -8 "987654321";
10417 data 2 -do -1 022 064 126 170 22;
10418 data 3 -do -5 9"1" "0";
10419
10420 page -all;
10421
10422
10423
10424
10425 /* ad3d14
10426 * Leading, trailing, and floating point operands are mixed.
10427 * The maximum number of page faults is taken.
10428 * Indirect descriptors are used for all operands.
10429 * Address register modification is used for all operands. */
10430
10431 inst ad3d -nt "9 bit + 9 bit -> 9 bit"
10432 -mf1 idb ar reg
10433 -mf2 idb ar reg
10434 -mf3 idb ar reg
10435 -io 2;
10436
10437 desc 1 -sd l -sf 7 -nn 10;
10438 desc 2 -sd t -sf 7 -nn 10;
10439 desc 3 -sd f -nn 12;
10440
10441 data 1 -do -9 "+" "987654321";
10442 data 2 -do -4 "123456789" "+";
10443 data 3 -do -8 "+" 9"1" "0" 007;
10444
10445 page -all;
10446
10447
10448
10449 /* ad3d15
10450 * Floating point, unsigned, and leading sign operands are mixed.
10451 * Indirect descriptors are used for all operands.
10452 * Address register modification is used for all operands. */
10453
10454 inst ad3d -nt "4 bit + 4 bit -> 4 bit"
10455 -mf1 idb ar
10456 -mf2 idb ar
10457 -mf3 idb ar
10458 -io 3;
10459
10460 desc 1 -tn 4 -sd f -nn 12;
10461 desc 2 -tn 4 -sd n -nn 9;
10462 desc 3 -tn 4 -sd l -nn 13 -sf -2;
10463
10464 data 1 -do -6 271 207 145 103 041 000;
10465 data 2 -do -4 022 064 126 170 22;
10466 data 3 -do -5 301 4021 00000;
10467
10468 page -all;
10469
10470
10471 ^L
10472
10473 /* ad2d1
10474 * Use RL mod and cn field with indirect descriptors
10475 * add 9 bit scaled to 9 bit scaled
10476 * two character offset
10477 *
10478 */
10479
10480
10481 inst ad2d -nt "9scaled+9scal->9scaled"
10482 -io 2 -ir ng
10483 -mf1 ar rl 10 idb reg
10484 -mf2 ar rl 10 idb reg;
10485
10486 desc1 -cn 1 -sd t ;
10487 desc2 -cn 1 -sd t ;
10488
10489 data 1 -do -9 " " 9 "2" "-";
10490 data 2 -do -9 "*" 9 "1" "+";
10491 data 3 "*" 9 "1" "-";
10492
10493 page -all;
10494
10495
10496
10497 /* ad2d2
10498 * Use RL mod and cn field with indirect descriptors
10499 * 9 bit scaled to 9 bit scaled
10500 * one character offset
10501 *
10502 */
10503
10504
10505 inst ad2d -nt "9scaled+9scaled->9scaled"
10506 -io 2 -ir ng
10507 -mf1 ar rl 10 idb reg
10508 -mf2 ar rl 10 idb reg;
10509
10510 desc1 -cn 1 -sd t ;
10511 desc2 -cn 1 -sd t ;
10512
10513 data 1 -do -10 " " 9 "2" "-";
10514 data 2 -do -10 "*" 9 "1" "+";
10515 data 3 "*" 9 "1" "-";
10516
10517 page -all;
10518
10519
10520
10521 /* ad2d3
10522 * Use RL mod and cn field
10523 * 9 bit scaled to 9 bit scaled
10524 * no indirect descriptors
10525 *
10526 */
10527
10528 inst ad2d -nt "9scaled+9scaled->9scaled"
10529 -io 2 -ir ng
10530 -mf1 ar rl 10 reg
10531 -mf2 ar rl 10 reg;
10532
10533 desc1 -cn 1 -sd t ;
10534 desc2 -cn 1 -sd t ;
10535
10536 data 1 -do -9 " " 9 "2" "-";
10537 data 2 -do -9 "*" 9 "1" "+";
10538 data 3 "*" 9 "1" "-";
10539
10540 page -all;
10541
10542
10543
10544 /* ad2d4
10545 * Use no modification
10546 * 9bit scaled added to 9 bit scaled
10547 *
10548 */
10549
10550 inst ad2d -nt "9scaled+9scaled->9scaled"
10551 -io 2 -ir ng;
10552
10553 desc1 -cn 1 -sd t -nn 12;
10554 desc2 -cn 1 -sd t -nn 12;
10555
10556 data 1 -do -12 " " 11 "2" "-";
10557 data 2 -do -12 "*" 11 "1" "+";
10558 data 3 "*" 11 "1" "-";
10559
10560 page -all;
10561
10562
10563
10564 /* ad2d5
10565 * Use ar and rl
10566 * 9 bit scaled to 9 bit scaled
10567 *
10568 */
10569
10570
10571 inst ad2d -nt "ar and rl modification"
10572 -io 2 -ir ng
10573 -mf1 ar rl 10
10574 -mf2 ar rl 10 ;
10575
10576 desc1 -cn 1 -sd t ;
10577 desc2 -cn 1 -sd t ;
10578
10579 data 1 -do -9 " " 9 "2" "-";
10580 data 2 -do -9 "*" 9 "1" "+";
10581 data 3 "*" 9 "1" "-";
10582
10583 page -all;
10584
10585
10586 /* ad2d6
10587 * Use ar and rl modification, desc1
10588 * Use ar rl idb reg on desc2
10589 * 9 bit scaled to 9 bit scaled
10590 *
10591 */
10592
10593
10594 inst ad2d -nt "9scaled+9scaled->9scaled"
10595 -io 2 -ir ng
10596 -mf1 ar rl 10
10597 -mf2 ar rl 10 idb reg;
10598
10599 desc1 -cn 1 -sd t ;
10600 desc2 -cn 1 -sd t ;
10601
10602 data 1 -do -9 " " 9 "2" "-";
10603 data 2 -do -9 "*" 9 "1" "+";
10604 data 3 "*" 9 "1" "-";
10605
10606 page -all;
10607
10608
10609
10610 /* ad2d7
10611 * maximum length add, leading sign
10612 * one character over next page
10613 * all modification taken
10614 */
10615 inst ad2d -nt "9scaled+9scaled->9scaled"
10616 -io 2
10617 -mf1 ar rl 63 idb reg
10618 -mf2 ar rl 63 idb reg;
10619
10620 desc1 -cn 1 -sd l ;
10621 desc2 -cn 1 -sd l ;
10622
10623 data 1 -do 4033 " " "+33" 15 "8642";
10624 data 2 -do 4033 "*" "+11" 15 "2357";
10625 data 3 "*" "+45" 14 "1000" "0999";
10626
10627 page -all;
10628
10629
10630
10631
10632 /* ad2d8
10633 * This is a simple test
10634 * 9 bit add to 9 bit all scaled trailing sign
10635 *
10636 */
10637
10638 inst ad2d -nt "simple test";
10639
10640 desc1 -sd t -sf 10 -nn 63;
10641 desc2 -sd t -sf 10 -nn 63;
10642
10643 data 1 "11" 15 "1111" "-";
10644 data 2 "22" 15 "2222" "+";
10645 data 3 "11" 15 "1111" "+";
10646
10647 page -all;
10648
10649
10650
10651
10652 /* ad2d9
10653 * maximum length add resulting
10654 * in an overflow
10655 * all modification taken
10656 * 9 bit scaled to 9 bit scaled
10657 */
10658 inst ad2d -nt "truncation fault"
10659 -io 1 -ir ov
10660 -mf1 ar rl 63 idb reg
10661 -mf2 ar rl 63 idb reg;
10662
10663 desc1 -sd l -cn 1;
10664 desc2 -sd l -cn 1;
10665
10666 data 1 -do 4033 " " "+33" 15 "8642";
10667 data 2 -do 4033 "*" "+71" 15 "2357";
10668 data 3 "*" "+" "05" 14 "1000" "0999";
10669
10670 page -all;
10671
10672
10673
10674
10675
10676 /* ad2d10
10677 * maximum length over two pages
10678 * no faults, 9 bit to 4 bit
10679 *
10680 */
10681
10682 inst ad2d -nt "9 bit -> 4 bit"
10683 -io 1
10684 -mf1 ar rl 63
10685 -mf2 ar rl 63 ;
10686
10687 desc1 -sd t ;
10688 desc2 -sd t -tn 4;
10689
10690 data 1 -do 4033 "33" 15 "3333" "+";
10691 data 2 -do 4064 021021 7 021021021021 02126;
10692 data 3 104104 7 104104104104 1043;
10693
10694 page -all;
10695
10696
10697
10698
10699
10700 /* ad2d11
10701 * 9 bit to 4 bit all page faults possible
10702 * no reg modification on desc2
10703 *
10704 */
10705
10706 inst ad2d -nt "9bit ->4bit"
10707 -io 2
10708 -mf1 ar rl 63 idb reg
10709 -mf2 ar rl 63 idb ;
10710
10711 desc1 -cn 1 -sd l;
10712 desc2 -cn 1 -sd t -tn 4;
10713
10714 data 1 -do 4033 " " "+33" 15 "3333";
10715 data 2 -do 4068 "*" 021021 7 021021021021 0213;
10716 data 3 "*" 104104 7 104104104104 1043;
10717
10718 page -all;
10719
10720
10721
10722
10723
10724 /* ad2d12
10725 * 4 bit added to 4 bit
10726 * maximum length
10727 * all page faults taken
10728 * no reg modification
10729 */
10730
10731 inst ad2d -nt "4 bit + 4bit"
10732 -io 1
10733 -mf1 ar rl 63 idb
10734 -mf2 ar rl 63 idb;
10735
10736 desc1 -cn 1 -sd t -tn 4;
10737 desc2 -cn 1 -sd t -tn 4;
10738
10739 data 1 -do 4065 " " 021021 7 021021021021 0213;
10740 data 2 -do 4065 "*" 021021 7 021021021021 0213;
10741 data 3 "*" 042042 7 042042042042 0423;
10742
10743 page -all;
10744
10745
10746
10747
10748
10749 /* ad2d13
10750 * floating point add
10751 * 9 bit to 9bit
10752 * all page faults taken
10753 *
10754 */
10755
10756 inst ad2d -nt "9bit float add"
10757 -io 1
10758 -mf1 ar rl 63 reg idb
10759 -mf2 ar rl 63 reg idb;
10760
10761 desc1 -sd f;
10762 desc2 -sd f;
10763
10764 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
10765 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
10766 data 3 "+" 19 "0" "1" 9 "2" "1" 29 "0" "11" 005;
10767
10768 page -all;
10769
10770
10771
10772
10773
10774
10775 /* ad2d14
10776 * 4 bit floating added to
10777 * 4 bit floating
10778 *
10779 */
10780
10781 inst ad2d -nt "4 float to 4 float"
10782 -io 1
10783 -mf1 ar rl 10 ida
10784 -mf2 ar rl 10 ida;
10785
10786 desc1 -sd f -tn 4;
10787 desc2 -sd f -tn 4;
10788
10789 data 1 -do -1 300 000 021 021 000;
10790 data 2 -do -1 300 000 021 021 000;
10791 data 3 300 000 042 042 000;
10792
10793 page -all;
10794
10795
10796
10797
10798
10799 /* ad2d15
10800 * test 4bit scaled to 9 bit
10801 *
10802 */
10803
10804 inst ad2d -nt "4bit->9bit"
10805 -io 1
10806 -mf1 ar rl 5 idb
10807 -mf2 ar rl 5 idb reg;
10808
10809 desc 1 -tn 4 -sd l;
10810 desc 2 -sd n;
10811
10812 data 1 30102100;
10813 data 2 -do 4 "02222";
10814 data 3 "03332";
10815
10816 page -all;
10817
10818
10819
10820
10821
10822 /* ad2d16
10823 * test 9 floating to 4 floating
10824 *
10825 */
10826
10827 inst ad2d -nt "9float->4 float"
10828 -io 1
10829 -mf1 ar rl 5 idb reg
10830 -mf2 ar rl 7 idb;
10831
10832 desc 1 -sd f;
10833 desc 2 -sd f -tn 4;
10834
10835 data 1 "+" 3 "1" 000;
10836 data 2 300 042 040 00;
10837 data 3 30006306000;
10838
10839 page -all;
10840
10841
10842
10843
10844
10845
10846 /* ad2d17
10847 * 4 float to 9 float
10848 *
10849 */
10850
10851 inst ad2d -nt "4float -> 9float"
10852 -io 1
10853 -mf1 ar rl 7 idb
10854 -mf2 ar rl 7 idb reg;
10855
10856 desc 1 -sd f -tn 4 ;
10857 desc 2 -sd f;
10858
10859 data 1 300 042 040 00;
10860 data 2 "+0" 3 "1" "0" 000;
10861 data 3 "+01332" 000;
10862
10863 page -all;
10864
10865
10866
10867
10868
10869
10870 /* ad2d18
10871 * 9 scaled to 9 float
10872 *
10873 */
10874
10875 inst ad2d -nt "9sacled to 9 float"
10876 -io 2
10877 -mf1 ar rl 5 idb reg
10878 -mf2 ar rl 6 idb reg;
10879
10880 desc1 -sd l;
10881 desc2 -sd f;
10882
10883 data 1 "+" 4 "3";
10884 data 2 "+" "0" 3 "2" 000;
10885 data 3 "+" "3555" 000;
10886
10887 page -all;
10888
10889
10890
10891
10892
10893 /* ad2d19
10894 * 9 float to 9 scaled
10895 *
10896 */
10897
10898 inst ad2d -nt "9 float to 9 scaled"
10899 -io 2
10900 -mf1 ar rl 6 idb reg
10901 -mf2 ar rl 5 idb reg;
10902
10903 desc1 -sd f;
10904 desc2 -sd l;
10905
10906 data 1 "+" "0" 3 "2" 000;
10907 data 2 "+" 4 "3";
10908 data 3 "+" "3555";
10909
10910 page -all;
10911
10912
10913
10914
10915
10916 /* ad2d20
10917 * 9 scaled to 4 float
10918 *
10919 */
10920
10921 inst ad2d -nt "9scaled->4float"
10922 -io 2
10923
10924 -mf1 ar rl 5 idb reg
10925 -mf2 ar rl 6 idb;
10926
10927 desc 1 -sd l;
10928 desc 2 -sd f -tn 4;
10929
10930 data 1 "+0" 3 "2";
10931 data 2 303063 000;
10932 data 3 305125000;
10933
10934 page -all;
10935
10936
10937
10938
10939
10940 /* ad2d21
10941 * 9 float to 4 scaled
10942 *
10943 */
10944
10945 inst ad2d -nt "9float->4scaled"
10946 -io 1
10947 -mf1 ar rl 6 idb reg
10948 -mf2 ar rl 4 idb;
10949
10950 desc 1 -sd f;
10951 desc 2 -sd l -tn 4;
10952
10953 data 1 -do -1 "+0" 3 "2" 000;
10954 data 2 -do -2 303 063;
10955 data 3 305125;
10956
10957 page -all;
10958
10959
10960
10961
10962
10963 /* ad2d22
10964 * 4scaled to 9 float
10965 *
10966 */
10967
10968 inst ad2d -nt "4scaled-.9float"
10969 -io 1
10970 -mf1 ar rl 4 idb
10971 -mf2 ar rl 6 idb reg;
10972
10973 desc 1 -sd l -tn 4;
10974 desc 2 -sd f;
10975
10976 data 1 -do -1 303063;
10977 data 2 -do -1 "+0" 3 "2" 000;
10978 data 3 "+0" 3 "5" 000;
10979
10980 page -all;
10981
10982
10983
10984
10985
10986 /* ad2d23
10987 * 4 floating to 9 scaled
10988 *
10989 */
10990
10991 inst ad2d -nt "4float->9scaled"
10992 -io 1
10993 -mf1 ar rl 6 idb
10994 -mf2 ar rl 5 idb reg;
10995
10996 desc 1 -sd f -tn 4;
10997 desc 2 -sd n;
10998
10999 data 1 -do -1 303 063 000;
11000 data 2 -do -2 "00" "555";
11001 data 3 "00" "888";
11002
11003 page -all;
11004
11005
11006
11007
11008
11009 /* ad2d24
11010 * 4 scaled to 4 float
11011 *
11012 */
11013
11014 inst ad2d -nt "4scaled to 4 float"
11015 -io 1
11016 -mf1 ar rl 4 idb
11017 -mf2 ar rl 6 idb;
11018
11019 desc 1 -tn 4 -sd l;
11020 desc 2 -tn 4 -sd f;
11021
11022 data 1 -do -1 303 063;
11023 data 2 -do -1 302042000;
11024 data 3 305125 000;
11025
11026 page -all;
11027
11028
11029
11030
11031
11032 /* ad2d25
11033 * 4 floating to 4 scaled
11034 *
11035 */
11036
11037 inst ad2d -nt "4 floating to 4 scaled"
11038 -io 2
11039 -mf1 ar rl 6 idb
11040 -mf2 ar rl 4 idb;
11041
11042 desc 1 -tn 4 -sd f;
11043 desc 2 -tn 4 -sd l;
11044
11045 data 1 -do -1 302042000;
11046 data 2 -do -1 303 063;
11047 data 3 305125;
11048
11049 page -all;
11050
11051
11052
11053
11054
11055 /* ad2d26
11056 *
11057 * Use RL mod and strings of length 63 and cn fields.
11058 */
11059
11060
11061 inst ad2d -nt "63 char string" -io 2
11062 -mf1 rl 63 idb reg ar
11063 -mf2 rl 63 idb reg ar;
11064
11065 desc 1 -sd n -cn 1;
11066 desc 2 -sd n -cn 2;
11067
11068 data 1 -do -21 " " "234" 15 "1234";
11069 data 2 -do -22 "**" "345" 15 "2345";
11070 data 3 "**" "579" 15 "3579"; /* This is just test data. This is how descriptor 2
11071 * data is going to look after the ad2d. */
11072
11073
11074 page -all;
11075
11076
11077 ^L
11078
11079 /* sb3d1
11080 * a simple test
11081 * no modification used
11082 - 9 bit - 9 bit to 9 bit
11083 *
11084 */
11085
11086 inst sb3d -nt"9bit-9bit->9bit"
11087 -io 2;
11088
11089 desc1 -sd l -cn 1 -nn 10;
11090 desc2 -sd l -cn 1 -nn 10;
11091 desc3 -sd l -cn 1 -nn 10;
11092
11093 data 1 " -" 9 "1";
11094 data 2 " +" 9 "1";
11095 data 3 000 "+" 9 "2";
11096
11097 page -all;
11098
11099
11100
11101
11102 /* sb3d2
11103 * 9 bit - 9 bit to 9 bit
11104 * negative indicator on
11105 * all page faults taken
11106 *
11107 */
11108
11109 inst sb3d -nt "9 bit - 9bit to 9 bit"
11110 -io 1 -ir ng
11111 -mf1 ar rl 23 idb reg
11112 -mf2 ar rl 24 idb reg
11113 -mf3 ar rl 24 idb reg;
11114
11115 desc1 -sd t -cn 2;
11116 desc2 -sd t -cn 1;
11117 desc3 -sd l -cn 3;
11118
11119 data 1 -do -9 " " 5 "0" 8 "12" "1+";
11120 data 2 -do -11 " " 6 "0" 8 "23" "2-";
11121 data 3 000000000 "-" 6 "0" 8 "35" "3";
11122
11123 page -all;
11124
11125
11126
11127
11128 /* sb3d3
11129 * 9 bit scaled to 4 bit float to
11130 * 4 bit float
11131 *
11132 */
11133
11134 inst sb3d -nt "4bit float-9bit to 4bit"
11135 -io 2 -ir ng
11136 -mf1 ar rl 10 idb reg
11137 -mf2 ar rl 10 idb
11138 -mf3 ar rl 10 idb;
11139
11140 desc1 -sd t -cn 1;
11141 desc2 -sd f -tn 4;
11142 desc3 -sd f -tn 4;
11143
11144 data 1 -do -10 " " 5 "0" 4 "2" "+";
11145 data 2 -do -4 300 000 021 021 000;
11146 data 3 -do -4 320 000 021 021 000;
11147
11148 page -all;
11149
11150
11151
11152
11153 /* sb3d4
11154 * 9 bit scaled - 9 bit scaled to
11155 * 9 bit scaled
11156 * all page faults taken
11157 * truncation indicator set
11158 *
11159 */
11160
11161 inst sb3d -nt "9bit-9bit to 9bit"
11162 -io 2 -ir tn
11163 -mf1 ar rl 63 idb reg
11164 -mf2 ar rl 63 idb reg
11165 -mf3 ar rl 63 idb reg;
11166
11167 desc1 -cn 1 -sd l -sf 5;
11168 desc2 -cn 2 -sd l -sf 10;
11169 desc3 -cn 3 -sd l -sf 10;
11170
11171 data 1 -do 4033 " -" 5 "0" 19 "543";
11172 data 2 -do 4034 " +" 5 "0" 19 "765";
11173 data 3 -do 4035 3 000 "+" 5 "0" "76577" 17 "120" "0";
11174
11175 page -all;
11176
11177
11178
11179
11180 /* sb3d5
11181 * 9 bit scaled - 9 bit scaled tp
11182 * 9 bit scaled
11183 * all page faults taken
11184 * rounding desired, therefore no truncation
11185 *
11186 */
11187
11188 inst sb3d -nt "no truncation"
11189 -io 3
11190 -mf1 ar rl 63 idb reg
11191 -mf2 ar rl 63 idb reg
11192 -mf3 ar rl 63 idb reg
11193 -rb;
11194
11195 desc1 -cn 1 -sd l -sf 5;
11196 desc2 -cn 2 -sd l -sf 10;
11197 desc3 -cn 1 -sd l -sf 10;
11198
11199 data 1 -do 4033 " -" 5 "0" 19 "543";
11200 data 2 -do 4034 " +" 5 "0" 19 "765";
11201 data 3 -do 4033 000 "+" 5 "0" "76577" 17 "120" "0";
11202
11203 page -all;
11204
11205
11206
11207
11208 /* sb3d6
11209 * all operands 4 bit scaled
11210 * all page faults taken
11211 * negative indicator set
11212 *
11213 */
11214
11215 inst sb3d -nt "4 bit-4bit to 4bit scaled"
11216 -io 1 -ir ng
11217 -mf1 ar rl 63 idb
11218 -mf2 ar rl 63 idb
11219 -mf3 ar rl 63 idb;
11220
11221 desc1 -sd l -tn 4 -cn 1;
11222 desc2 -sd l -tn 4 -cn 1;
11223 desc3 -sd l -tn 4 -cn 1;
11224
11225 data 1 " " 300 26 000 4 105 8 000;
11226 data 2 " " 300 26 000 3 105 104 7 000;
11227 data 3 000320 29 000 001 8 000;
11228
11229 page -all;
11230
11231
11232
11233
11234 /* sb3d7
11235 * 9 bit scaled - 9 bit scaled to
11236 * 9 bit scaled
11237 * all page faults taken
11238 * rounding desired and it occurs
11239 *
11240 */
11241
11242 inst sb3d -nt "rounded result"
11243 -io 2 -rb
11244 -mf1 ar rl 63 idb reg
11245 -mf2 ar rl 63 idb reg
11246 -mf3 ar rl 63 idb reg;
11247
11248 desc1 -cn 1 -sd l -sf 5;
11249 desc2 -cn 1 -sd l -sf 10;
11250 desc3 -sd l -cn 1 -sf 10;
11251
11252 data 1 -do 4033 " -" 5 "0" 17 "543" "043543";
11253 data 2 -do 4033 " +" 5 "0" 19 "765";
11254 data 3 -do 4033 000 "+" 5 "0" "76577" 16 "120" "1195";
11255
11256 page -all;
11257
11258
11259
11260
11261 /* sb3d8
11262 * all operands 9 bit float
11263 * all page faults taken
11264 * no rounding needed
11265 :
11266 */
11267
11268 inst sb3d -nt "9 bit floating"
11269 -io 1
11270 -mf1 ar rl 10 idb reg
11271 -mf2 ar rl 10 idb reg
11272 -mf3 ar rl 10 idb reg;
11273
11274 desc1 -sd f -cn 1;
11275 desc2 -sd f -cn 1;
11276 desc3 -sd f -cn 1;
11277
11278 data 1 -do -10 " -" 8 "1" 001;
11279 data 2 -do -10 " +" 8 "2" 001;
11280 data 3 -do -10 000 "+" 8 "3" 001;
11281
11282 page -all;
11283
11284
11285
11286
11287 /* sb3d9
11288 * all operands 9 bit floating
11289 * rounding not desired, but required
11290 * set round bit
11291 *
11292 */
11293
11294 inst sb3d -nt "round floating"
11295 -io 2 -rb
11296 -mf1 ar rl 10 ida
11297 -mf2 ar rl 10 ida
11298 -mf3 ar rl 10 ida;
11299
11300 desc1 -cn 1 -sd f;
11301 desc2 -cn 1 -sd f;
11302 desc3 -sd f;
11303
11304 data 1 " +" 8 "3" 000;
11305 data 2 " +" 8 "9" 001;
11306 data 3 "+" "9" 7 "6" 001;
11307
11308 page -all;
11309
11310
11311
11312
11313 /* sb3d10
11314 * all operands 9 bit floating
11315 * truncation will occur
11316 *
11317 */
11318
11319 inst sb3d -nt "truncation"
11320 -io 3 -ir tn
11321 -mf1 ar rl 10
11322 -mf2 ar rl 10
11323 -mf3 ar rl 10;
11324
11325 desc1 -sd f;
11326 desc2 -sd f;
11327 desc3 -sd f;
11328
11329 data 1 "+" 8 "3" 000;
11330 data 2 "+" 8 "9" 001;
11331 data 3 "+" "9" 6 "6" "5" 001;
11332
11333 page -all;
11334
11335
11336
11337
11338 /* sb3d11
11339 * all operands 9 bit floating
11340 * truncation will occur
11341 :
11342 */
11343
11344 inst sb3d -nt "truncation"
11345 -ir ng tn
11346 -mf1 ar rl 10
11347 -mf2 ar rl 10
11348 -mf3 ar rl 10;
11349
11350 desc1 -sd f;
11351 desc2 -sd f;
11352 desc3 -sd f;
11353
11354 data 1 -do -4 "+" 8 "3" 000;
11355 data 2 -do -4 "-" 8 "9" 001;
11356 data 3 -do -4 "-" "10" 6 "3" 002;
11357
11358 page -all;
11359
11360
11361
11362
11363 /* sb3d12
11364 * 4 scaled - 4 scaled to 4 float
11365 *
11366 */
11367
11368 inst sb3d -nt "4sc-4sc->4float"
11369 -io 3
11370 -mf1 ar rl 4 idb
11371 -mf2 ar rl 4 idb
11372 -mf3 ar rl 6 idb;
11373
11374 desc 1 -tn 4 -sd l;
11375 desc 2 -tn 4 -sd l;
11376 desc 3 -tn 4 -sd f;
11377
11378 data 1 -do -1 323 063;
11379 data 2 -do -1 302 042;
11380 data 3 -do -1 305 125 000;
11381
11382 page -all;
11383
11384
11385
11386
11387 /* sb3d13
11388 * 4 scaled -4 float to 4 scaled
11389 *
11390 */
11391
11392 inst sb3d -nt "4scaled-4float to 4 scaled"
11393 -io 2
11394 -mf1 ar rl 6 idb
11395 -mf2 ar rl 4 idb
11396 -mf3 ar rl 4 idb;
11397
11398 desc 1 -tn 4 -sd f;
11399 desc 2 -tn 4 -sd l;
11400 desc 3 -tn 4 -sd l;
11401
11402 data 1 -do -1 323 063 000;
11403 data 2 -do -1 302 042;
11404 data 3 -do -1 305 125;
11405
11406 page -all;
11407
11408
11409
11410
11411 /* sb3d14
11412 * 4 floating - 9 scaled to 9 floating
11413 *
11414 */
11415
11416 inst sb3d -nt "4float-9scaled->9float"
11417 -io 1
11418 -mf1 ar rl 4 idb reg
11419 -mf2 ar rl 6 idb
11420 -mf3 ar rl 5 idb reg;
11421
11422 desc 1 -sd t;
11423 desc 2 -sd f -tn 4;
11424 desc 3 -sd f;
11425
11426 data 1 -do -3 "333-";
11427 data 2 -do -2 302 042 000;
11428 data 3 -do -4 "+555" 000;
11429
11430 page -all;
11431
11432
11433
11434
11435 /* sb3d15
11436 * 9 scaled - 4 bit to 9 scaled
11437 *
11438 */
11439
11440 inst sb3d -nt "9bit-4bit->9bit"
11441 -io 1
11442 -mf1 ar rl 5 idb
11443 -mf2 ar rl 5 idb reg
11444 -mf3 ar rl 5 idb reg;
11445
11446 desc 1 -tn 4 -sd l;
11447 desc 2 -sd n;
11448 desc 3 -sd n;
11449
11450 data 1 -do -1 321 02100;
11451 data 2 -do 4 "02222";
11452 data 3 -do -1 "03332";
11453
11454 page -all;
11455
11456
11457
11458
11459 /* sb3d16
11460 * 4float-9float to 4 float
11461 *
11462 */
11463
11464 inst sb3d -nt "4flo-9flo->4flo"
11465 -io 1
11466 -mf1 ar rl 5 idb reg
11467 -mf2 ar rl 7 idb
11468 -mf3 ar rl 7 idb;
11469
11470 desc 1 -sd f;
11471 desc 2 -sd f -tn 4;
11472 desc 3 -sd f -tn 4;
11473
11474 data 1 -do -1 "-" 3 "1" 000;
11475 data 2 -do -1 300 042 040 00;
11476 data 3 -do -1 30006306000;
11477
11478 page -all;
11479
11480
11481
11482
11483
11484 /* sb3d17
11485 * 9 float - 4 float to 9 float
11486 *
11487 */
11488
11489 inst sb3d -nt "9flo-4flo->9flo"
11490 -io 1
11491 -mf1 ar rl 7 idb
11492 -mf2 ar rl 7 idb reg
11493 -mf3 ar rl 7 idb reg;
11494
11495 desc 1 -sd f -tn 4 ;
11496 desc 2 -sd f;
11497 desc 3 -sd f;
11498
11499 data 1 -do -1 320 042 040 00;
11500 data 2 -do -1 "+0" 3 "1" "0" 000;
11501 data 3 -do -1 "+01332" 000;
11502
11503 page -all;
11504
11505
11506
11507
11508
11509 /* sb3d18
11510 * 9 float-9 scaled to 9 float
11511 *
11512 */
11513
11514 inst sb3d -nt "9flo-9sca->9flo"
11515 -io 2
11516 -mf1 ar rl 5 idb reg
11517 -mf2 ar rl 6 idb reg
11518 -mf3 ar rl 6 idb reg;
11519
11520 desc1 -sd l;
11521 desc2 -sd f;
11522
11523 data 1 -do -1 "-" 4 "3";
11524 data 2 -do -1 "+" "0" 3 "2" 000;
11525 data 3 -do -1 "+" "3555" 000;
11526
11527 page -all;
11528
11529
11530
11531
11532 /* sb3d19
11533 * 9scaled - 9 floating to 9 scaled
11534 *
11535 */
11536
11537 inst sb3d -nt "9sca-9flo->9sca"
11538 -io 2
11539 -mf1 ar rl 6 idb reg
11540 -mf2 ar rl 5 idb reg
11541 -mf3 ar rl 5 idb reg;
11542
11543 desc1 -sd f;
11544 desc2 -sd l;
11545 desc 3 -sd l;
11546
11547 data 1 -do -1 "-" "0" 3 "2" 000;
11548 data 2 -do -1 "+" 4 "3";
11549 data 3 -do -1 "+" "3555";
11550
11551 page -all;
11552
11553
11554
11555
11556 /* sb3d20
11557 * 4 float - 9 scaled to 4 float
11558 *
11559 */
11560
11561 inst sb3d -nt "4flo-9sca->9sca"
11562 -io 2
11563
11564 -mf1 ar rl 5 idb reg
11565 -mf2 ar rl 6 idb
11566 -mf3 ar rl 6 idb;
11567
11568 desc 1 -sd l;
11569 desc 2 -sd f -tn 4;
11570 desc 3 -sd f -tn 4;
11571
11572 data 1 -do -1 "-0" 3 "2";
11573 data 2 -do -1 303063 000;
11574 data 3 -do -1 305125000;
11575
11576 page -all;
11577
11578
11579
11580
11581 /* sb3d21
11582 * 4scaled - 9 float to 4 scaled
11583 *
11584 */
11585
11586 inst sb3d -nt "4sca-9flo->4sca"
11587 -io 1
11588 -mf1 ar rl 6 idb reg
11589 -mf2 ar rl 4 idb
11590 -mf3 ar rl 4 idb;
11591
11592 desc 1 -sd f;
11593 desc 2 -sd l -tn 4;
11594 desc 3 -sd l -tn 4;
11595
11596 data 1 -do -1 "-0" 3 "2" 000;
11597 data 2 -do -2 303 063;
11598 data 3 305125;
11599
11600 page -all;
11601
11602
11603
11604
11605 /* sb3d22
11606 * 9 float - 4 scaled to 9 float
11607 *
11608 */
11609
11610 inst sb3d -nt "9flo-4sca->9flo"
11611 -io 1
11612 -mf1 ar rl 4 idb
11613 -mf2 ar rl 6 idb reg
11614 -mf3 ar rl 6 idb reg;
11615
11616 desc 1 -sd l -tn 4;
11617 desc 2 -sd f;
11618 desc 3 -sd f;
11619
11620 data 1 -do -1 323063;
11621 data 2 -do -1 "+0" 3 "2" 000;
11622 data 3 "+0" 3 "5" 000;
11623
11624 page -all;
11625
11626
11627
11628
11629 /* sb3d23
11630 * 9 scaled - 4 floating to 9 scaled
11631 *
11632 */
11633
11634 inst sb3d -nt "9sca-4flo->9sca"
11635 -io 1
11636 -mf1 ar rl 6 idb
11637 -mf2 ar rl 5 idb reg
11638 -mf3 ar rl 5 idb reg;
11639
11640 desc 1 -sd f -tn 4;
11641 desc 2 -sd n;
11642 desc 3 -sd n;
11643
11644 data 1 -do -1 323 063 000;
11645 data 2 -do -2 "00" "555";
11646 data 3 "00" "888";
11647
11648 page -all;
11649
11650
11651
11652
11653 /* sb3d24
11654 * 4 float - 4 scaled to 4 float
11655 *
11656 */
11657
11658 inst sb3d -nt "4flo-4sca->4flo"
11659 -io 1
11660 -mf1 ar rl 4 idb
11661 -mf2 ar rl 6 idb
11662 -mf3 ar rl 6 idb;
11663
11664 desc 1 -tn 4 -sd l;
11665 desc 2 -tn 4 -sd f;
11666 desc 3 -tn 4 -sd f;
11667
11668 data 1 -do -1 323 063;
11669 data 2 -do -1 302042000;
11670 data 3 305125 000;
11671
11672 page -all;
11673
11674
11675
11676
11677 /* sb3d25
11678 * 4 scaled - 4 floatint to 4 scaled
11679 *
11680 */
11681
11682 inst sb3d -nt "4sca-4flo->4flo"
11683 -io 2
11684 -mf1 ar rl 6 idb
11685 -mf2 ar rl 4 idb
11686 -mf3 ar rl 4 idb;
11687
11688 desc 1 -tn 4 -sd f;
11689 desc 2 -tn 4 -sd l;
11690 desc 3 -tn 4 -sd l;
11691
11692 data 1 -do -1 322042000;
11693 data 2 -do -1 303 063;
11694 data 3 305125;
11695
11696 page -all;
11697
11698
11699
11700
11701 /* sb3d26
11702 *
11703 * Subtraction yields a zero number.
11704 */
11705
11706 inst sb3d -nt "Result = zero" -io 1
11707 -ir zr
11708 -mf1 ar
11709 -mf2 ida
11710 -mf3 ar reg idb rl 12;
11711
11712 desc 1 -sd l -nn 7 -sf 2;
11713
11714 desc 2 -sd t -nn 6 -sf 3;
11715
11716 desc 3 -sd n -sf -4;
11717
11718
11719 data 1 -do -3 053 "55" "5550";
11720
11721 data 2 -do -4 "5555" "5" 053;
11722
11723 data 3 -do -2 "00" "0000000000";
11724
11725
11726 page -all;
11727
11728
11729 ^L
11730
11731 /* sb2d1
11732 * The zero indicator is set.
11733 * Two 4-bit floating point operands are used.
11734 * The maximum number of page faults is taken.
11735 * Indirect descriptors are used for all operands.
11736 * Address register modification is used for all operands. */
11737
11738 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11739 -ir zr
11740 -mf1 idb ar
11741 -mf2 idb ar
11742 -io 1;
11743
11744 desc 1 -tn 4 -sd f -nn 63;
11745 desc 2 -tn 4 -sd f -nn 63;
11746
11747 data 1 -do -1 261 30021 00;
11748 data 2 -do -31 261 30021 00;
11749 data 3 300 29000 007 36;
11750
11751 page -all;
11752
11753
11754
11755 /* sb2d2
11756 * The zero indicator is set.
11757 * Two 4-bit operands with leading sign are used.
11758 * The maximum number of page faults is taken.
11759 * Indirect descriptors are used for all operands.
11760 * Address register modification is used for all operands. */
11761
11762 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11763 -ir zr
11764 -mf1 idb ar
11765 -mf2 idb ar
11766 -io 2;
11767
11768 desc 1 -tn 4 -sd l -sf 5 -nn 4;
11769 desc 2 -tn 4 -sd l -sf 4 -nn 5;
11770
11771 data 1 -do -1 263 222;
11772 data 2 -do -2 263 222;
11773 data 3 300 000 00;
11774
11775 page -all;
11776
11777
11778
11779 /* sb2d3
11780 * The negative indicator is set.
11781 * Two 9-bit floating point operands are used.
11782 * The maximum number of page faults is taken.
11783 * Indirect descriptors are used for all operands.
11784 * Address register modification is used for all operands. */
11785
11786 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11787 -ir ng
11788 -mf1 idb ar reg
11789 -mf2 idb ar reg
11790 -io 1;
11791
11792 desc 1 -sd f -nn 18;
11793 desc 2 -sd f -nn 18;
11794
11795 data 1 -do -14 "+" 3"98765" "8" 007;
11796 data 2 -do -4 "+" 3"32411" "7" 007;
11797 data 3 "-" 3"66354" "1" 007;
11798
11799 page -all;
11800
11801
11802
11803 /* sb2d4
11804 * The negative indicator is set.
11805 * Two 9-bit operands with trailing sign are used.
11806 * The maximum number of page faults is taken.
11807 * Indirect descriptors are used for all operands.
11808 * Address register modification is used for all operands. */
11809
11810 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11811 -ir ng
11812 -mf1 idb ar reg
11813 -mf2 idb ar reg
11814 -io 2;
11815
11816 desc 1 -sd t -sf 5 -nn 25;
11817 desc 2 -sd t -sf 5 -nn 25;
11818
11819 data 1 -do -23 24 "5" "+";
11820 data 2 -do -4 24 "4" "-";
11821 data 3 24 "9" "-";
11822
11823 page -all;
11824
11825
11826
11827 /* sb2d5
11828 * The truncation indicator is set.
11829 * Two 4-bit floating point operands are used.
11830 * The maximum number of page faults is taken.
11831 * Indirect descriptors are used for all operands.
11832 * Address register modification is used for all operands. */
11833
11834 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11835 -ir tn
11836 -mf1 idb ar
11837 -mf2 idb ar
11838 -io 2;
11839
11840 desc 1 -tn 4 -sd f -nn 8;
11841 desc 2 -tn 4 -sd f -nn 8;
11842
11843 data 1 -do -2 331 231 231 004;
11844 data 2 -do -2 270 166 124 003;
11845 data 3 301 010 166 005;
11846
11847 page -all;
11848
11849
11850
11851 /* sb2d6
11852 * The truncation indicator is set.
11853 * Two 9-bit leading sign operands are used.
11854 * The maximum number of page faults is taken.
11855 * Indirect descriptors are used for all operands.
11856 * Address register modification is used for all operands. */
11857
11858 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11859 -ir tn
11860 -mf1 idb ar reg
11861 -mf2 idb ar reg
11862 -io 2;
11863
11864 desc 1 -sd l -sf 4 -nn 63;
11865 desc 2 -sd l -sf 5 -nn 62;
11866
11867 data 1 -do -60 "+" 62"3";
11868 data 2 -do -3 "+" 61"9";
11869 data 3 "+" 60"6" "5";
11870
11871 page -all;
11872
11873
11874
11875 /* sb2d7
11876 * Rounding is tested.
11877 * Two 9-bit trailing sign operands are used.
11878 * The maximum number of page faults is taken.
11879 * Indirect descriptors are used for all operands.
11880 * Address register modification is used for all operands. */
11881
11882 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11883 -rb
11884 -mf1 idb ar reg
11885 -mf2 idb ar reg
11886 -io 1;
11887
11888 desc 1 -sd t -sf 4 -nn 63;
11889 desc 2 -sd t -sf 5 -nn 62;
11890
11891 data 1 -do -38 62"3" "+";
11892 data 2 -do -36 61"9" "+";
11893 data 3 61"6" "+";
11894
11895 page -all;
11896
11897
11898
11899 /* sb2d8
11900 * The overflow indicator is set.
11901 * Two 4-bit trailing sign operands are used.
11902 * Indirect descriptors are used for all operands.
11903 * Address register modification is used for all operands. */
11904
11905 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11906 -ir ov
11907 -mf1 idb ar
11908 -mf2 idb ar
11909 -io 2;
11910
11911 desc 1 -tn 4 -sd t -sf 3 -nn 7;
11912 desc 2 -tn 4 -sd t -sf 3 -nn 7;
11913
11914 data 1 3163 32;
11915 data 2 3231 26;
11916 data 3 163 163 162 300;
11917
11918 page -all;
11919
11920
11921
11922 /* sb2d9
11923 * The exponent overflow indicator is set.
11924 * Two 4-bit floating point operands are used.
11925 * Indirect descriptors are used for all operands.
11926 * Address register modification is used for all operands. */
11927
11928 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11929 -ir eo tn
11930 -mf1 idb ar
11931 -mf2 idb ar
11932 -io 1;
11933
11934 desc 1 -tn 4 -sd f -nn 8 -cn 1;
11935 desc 2 -tn 4 -sd f -nn 8 -cn 1;
11936
11937 data 1 -do -1 00 330 210 210 177;
11938 data 2 -do -4 00 267 167 167 177;
11939 data 3 00 301 146 146 200;
11940
11941 page -all;
11942
11943
11944
11945 /* sb2d10
11946 * Leading and trailing signs are mixed.
11947 * Two 9-bit operands are used.
11948 * The maximum number of page faults is taken.
11949 * Indirect descriptors are used for all operands.
11950 * Address register modification is used for all operands. */
11951
11952 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
11953 -mf1 idb ar reg
11954 -mf2 idb ar reg
11955 -io 2;
11956
11957 desc 1 -sd l -sf -8 -nn 42;
11958 desc 2 -sd t -sf -8 -nn 42;
11959
11960 data 1 -do -40 "+" 4"1234000000" "9";
11961 data 2 -do -2 4"9876543210" "9" "+";
11962 data 3 4 "8642543210" "0+";
11963
11964 page -all;
11965
11966
11967
11968 /* sb2d11
11969 * Leading sign and floating point operands are mixed.
11970 * Two 4-bit operands are used.
11971 * The maximum number of page faults is taken.
11972 * Indirect descriptors are used for all operands.
11973 * Address register modification is used for all operands. */
11974
11975 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
11976 -mf1 idb ar
11977 -mf2 idb ar
11978 -io 1;
11979
11980 desc 1 -tn 4 -sd l -nn 8;
11981 desc 2 -tn 4 -sd f -nn 10;
11982
11983 data 1 -do -1 271 043 064 000;
11984 data 2 -do -1 271 207 145 000 000;
11985 data 3 300 144 061 000 000;
11986
11987 page -all;
11988
11989
11990
11991
11992 /* sb2d12
11993 * A leading sign 9-bit and an unsigned 4-bit operand are mixed.
11994 * The maximum number of page faults is taken.
11995 * Indirect descriptors are used for all operands.
11996 * Address register modification is used for all operands. */
11997
11998 inst sb2d -nt "9 bit - 4 bit -> 4 bit"
11999 -mf1 idb ar reg
12000 -mf2 idb ar
12001 -io 2;
12002
12003 desc 1 -sd l -nn 8;
12004 desc 2 -sd n -tn 4 -nn 7;
12005
12006 data 1 -do -1 "+" "1234500";
12007 data 2 -do -1 230 166 120 00;
12008 data 3 206 102 000 00;
12009
12010 page -all;
12011
12012
12013
12014 /* sb2d13
12015 * Unsigned 4-bit and 9-bit operands are mixed.
12016 * The maximum number of page faults is taken.
12017 * Indirect descriptors are used for all operands.
12018 * Address register modification is used for all operands. */
12019
12020 inst sb2d -nt "4 bit - 9 bit -> 9 bit"
12021 -mf1 idb ar
12022 -mf2 idb ar reg
12023 -io 1;
12024
12025 desc 1 -sd n -sf 31 -tn 4 -nn 7;
12026 desc 2 -sd n -sf 31 -nn 7;
12027
12028 data 1 -do -1 022 064 120 00 ;
12029 data 2 -do -3 "9876500";
12030 data 3 "8642000";
12031
12032 page -all;
12033
12034
12035
12036 /* sb2d14
12037 * Floating point and trailing sign operands are mixed.
12038 * Two 9-bit operands are used.
12039 * The maximum number of page faults is taken.
12040 * Indirect descriptors are used for all operands.
12041 * Address register modification is used for all operands. */
12042
12043 inst sb2d -nt "9 bit - 9 bit -> 9 bit"
12044 -mf1 idb ar reg
12045 -mf2 idb ar reg
12046 -io 2;
12047
12048 desc 1 -sd f -nn 9;
12049 desc 2 -sd t -sf 12 -nn 8;
12050
12051 data 1 -do -7 "+" "1234500" 014;
12052 data 2 -do -3 "9876500" "+";
12053 data 3 "8642000" "+";
12054
12055 page -all;
12056
12057
12058 /* sb2d15
12059 * The special plus sign capability for 4-bit operands is tested.
12060 * Indirect descriptors are used for all operands.
12061 * Address register modification is used for all operands. */
12062
12063 inst sb2d -nt "4 bit - 4 bit -> 4 bit"
12064 -pb
12065 -mf1 idb ar
12066 -mf2 idb ar
12067 -io 1;
12068
12069 desc 1 -sd l -nn 7;
12070 desc 2 -sd l -tn 4 -nn 8;
12071
12072 data 1 -do -7 "+" "1234500";
12073 data 2 -do -2 261 043 105 000;
12074 data 3 261 021 020 120;
12075
12076 page -all;
12077
12078
12079 ^L
12080
12081 /* mp3d1
12082 * 9 bit scaled * 9 bit scaled to
12083 * 9 bit scaled
12084 * all page faults taken
12085 * rounding desired and it occurs
12086 *
12087 */
12088
12089 inst mp3d -nt "rounded result"
12090 -io 2 -rb
12091 -mf1 ar rl 63 idb reg
12092 -mf2 ar rl 63 idb reg
12093 -mf3 ar rl 63 idb reg;
12094
12095 desc1 -cn 1 -sd l -sf 5;
12096 desc2 -cn 1 -sd l -sf 10;
12097 desc3 -sd l -cn 1 -sf 20;
12098
12099 data 1 -do 4033 " +" 20 "0" 12 "543" "043543";
12100 data 2 -do 4033 " +" 47 "0" 5 "765";
12101 data 3 -do 4033 000 "+000000000041622703784865905405405405405405405"
12102 "36711707549441337";
12103
12104 page -all;
12105
12106
12107
12108
12109
12110
12111 /* mp3d2
12112 * a simple test
12113 * no modification used
12114 * 9 bit*9 bit to 9 bit
12115 *
12116 */
12117
12118 inst mp3d -nt"9bit*9bit->9bit"
12119 -io 2 -ir ov ng;
12120
12121 desc1 -sd l -cn 1 -nn 10;
12122 desc2 -sd l -cn 1 -nn 10;
12123 desc3 -sd l -cn 1 -nn 10;
12124
12125 data 1 " -" 9 "1";
12126 data 2 " +" 9 "1";
12127 data 3 000 "-" "987654321";
12128
12129 page -all;
12130
12131
12132
12133
12134 /* mp3d3
12135 * 9 bit*9 bit to 9 bit
12136 * negative indicator on
12137 * all page faults taken
12138 *
12139 */
12140
12141 inst mp3d -nt "9 bit*9bit to 9 bit"
12142 -io 1 -ir ng
12143 -mf1 ar rl 23 idb reg
12144 -mf2 ar rl 24 idb reg
12145 -mf3 ar rl 24 idb reg;
12146
12147 desc1 -sd t -cn 2;
12148 desc2 -sd t -cn 1;
12149 desc3 -sd l -cn 3;
12150
12151 data 1 -do -9 " " 15 "0" 3 "12" "1+";
12152 data 2 -do -11 " " 16 "0" 3 "23" "2-";
12153 data 3 3 000 "-" 10 "0" "2816038295072";
12154
12155 page -all;
12156
12157
12158
12159
12160 /* mp3d4
12161 * 9 bit scaled to 4 bit float to
12162 * 4 bit float
12163 *
12164 */
12165
12166 inst mp3d -nt "4bit float*9bit to 4bit"
12167 -io 2
12168 -mf1 ar rl 10 idb reg
12169 -mf2 ar rl 10 idb
12170 -mf3 ar rl 10 idb;
12171
12172 desc1 -sd t -cn 1;
12173 desc2 -sd f -tn 4;
12174 desc3 -sd f -tn 4;
12175
12176 data 1 -do -10 " " 5 "0" 4 "2" "+";
12177 data 2 -do -4 300 000 000 021 000;
12178 data 3 -do -4 300 002 104 102 000;
12179
12180 page -all;
12181
12182
12183
12184
12185 /* mp3d5
12186 * 9 bit scaled*9 bit scaled to
12187 * 9 bit scaled
12188 * all page faults taken
12189 * truncation indicator set
12190 *
12191 */
12192
12193 inst mp3d -nt "9bit*9bit to 9bit"
12194 -io 2
12195 -mf1 ar rl 63 idb reg
12196 -mf2 ar rl 63 idb reg
12197 -mf3 ar rl 63 idb reg;
12198
12199 desc1 -cn 1 -sd l ;
12200 desc2 -cn 2 -sd l -sf 1;
12201 desc3 -cn 3 -sd l -sf 1;
12202
12203 data 1 -do 4033 " +" 5 "0" 19 "543";
12204 data 2 -do 4034 " +" 60 "0" "11";
12205 data 3 -do 4035 3 000 "+" 4 "0" "5" 18 "978" "973";
12206
12207 page -all;
12208
12209
12210
12211
12212 /* mp3d6
12213 * 9 bit scaled*9 bit scaled tp
12214 * 9 bit scaled
12215 * all page faults taken
12216 * rounding desired, therefore no truncation
12217 *
12218 */
12219
12220 inst mp3d -nt "no truncation"
12221 -io 3 -ir ng
12222 -mf1 ar rl 63 idb reg
12223 -mf2 ar rl 63 idb reg
12224 -mf3 ar rl 63 idb reg
12225 -rb;
12226
12227 desc1 -cn 1 -sd l -sf 5;
12228 desc2 -cn 2 -sd l -sf 10;
12229 desc3 -cn 1 -sd l -sf 10;
12230
12231 data 1 -do 4033 " -" 53 "0" 3 "543";
12232 data 2 -do 4034 " +" 53 "0" 3 "765";
12233 data 3 -do 4033 000 "-" 39 "0" "416227037016205395" 5 "0";
12234
12235 page -all;
12236
12237
12238
12239
12240 /* mp3d7
12241 * all operands 4 bit scaled
12242 * all page faults taken
12243 * negative indicator set
12244 *
12245 */
12246
12247 inst mp3d -nt "4 bit*4bit to 4bit scaled"
12248 -io 1
12249 -mf1 ar rl 63 idb
12250 -mf2 ar rl 63 idb
12251 -mf3 ar rl 63 idb;
12252
12253 desc1 -sd l -tn 4 -cn 1;
12254 desc2 -sd l -tn 4 -cn 1;
12255 desc3 -sd l -tn 4 -cn 1;
12256
12257 data 1 " " 300 26 000 4 105 8 000;
12258 data 2 " " 300 26 000 3 105 104 7 000;
12259 data 3 000300 21 000 002 006 141 025 141 127 002 110 9 000;
12260
12261 page -all;
12262
12263
12264
12265
12266 /* mp3d8
12267 * all operands 9 bit float
12268 * all page faults taken
12269 * no rounding needed
12270 *
12271 */
12272
12273 inst mp3d -nt "9 bit floating"
12274 -io 1
12275 -mf1 ar rl 10 idb reg
12276 -mf2 ar rl 10 idb reg
12277 -mf3 ar rl 10 idb reg;
12278
12279 desc1 -sd f -cn 1;
12280 desc2 -sd f -cn 1;
12281 desc3 -sd f -cn 1;
12282
12283 data 1 -do -10 " +" 4 "0" 4 "1" 001;
12284 data 2 -do -10 " +" 4 "0" 4 "2" 001;
12285 data 3 -do -10 000 "+" "02468642" 002;
12286
12287 page -all;
12288
12289
12290
12291
12292 /* mp3d9
12293 * all operands 9 bit floating
12294 * rounding not desired, but required
12295 * set round bit
12296 *
12297 */
12298
12299 inst mp3d -nt "round floating"
12300 -io 2 -rb
12301 -mf1 ar rl 10 ida
12302 -mf2 ar rl 10 ida
12303 -mf3 ar rl 10 ida;
12304
12305 desc1 -cn 1 -sd f;
12306 desc2 -cn 1 -sd f;
12307 desc3 -sd f;
12308
12309 data 1 " +" 4 "0" 4 "3" 002;
12310 data 2 " +" 4 "0" 4 "9" 001;
12311 data 3 "+" 3 "3" "26667" 003;
12312
12313 page -all;
12314
12315
12316
12317
12318 /* mp3d10
12319 * all operands 9 bit floating
12320 * truncation will occur
12321 *
12322 */
12323
12324 inst mp3d -nt "truncation"
12325 -io 3 -ir tn
12326 -mf1 ar rl 10
12327 -mf2 ar rl 10
12328 -mf3 ar rl 10;
12329
12330 desc1 -sd f;
12331 desc2 -sd f;
12332 desc3 -sd f;
12333
12334 data 1 "+" 3 "0" 5 "3" 000;
12335 data 2 "+" 4 "0" 4 "9" 001;
12336 data 3 "+" 3 "3" "29666" 002;
12337
12338 page -all;
12339
12340
12341
12342
12343
12344
12345
12346 /* mp3d11
12347 * set zero indicator, use three 9-bit operands
12348 *
12349 */
12350 inst mp3d -nt"9sca*9sca->9sca"
12351 -ir zr
12352 -mf1 idb ar reg
12353 -mf2 idb ar reg
12354 -mf3 idb ar reg
12355 -io 1;
12356
12357 desc 1 -sd f -nn 63;
12358 desc 2 -sd f -nn 63;
12359 desc 3 -sd f -nn 63;
12360
12361 data 1 "+" 61"0" 000 -do -62;
12362 data 2 "-" 61"9" 034 -do -34;
12363 data 3 "+" 61"0" 177;
12364
12365 page -all;
12366
12367
12368
12369
12370 /* mp3d12
12371 *
12372 set zero indicator, use three 9-bit leading sign operands
12373 *
12374 */
12375 inst mp3d -nt"9sca*9sca->9sca"
12376 -ir zr
12377 -mf1 idb ar
12378 -mf2 idb ar
12379 -mf3 idb ar
12380 -io 2;
12381
12382 desc 1 -sd l -sf 10 -nn 7;
12383 desc 2 -sd l -sf 10 -nn 28;
12384 desc3 -sd l -sf 10 -nn 28;
12385
12386 data 1 -do -4 "-" 6"4";
12387 data 2 -do -24 "+" 27"0";
12388 data 3 "+" 27"0";
12389
12390 page -all;
12391
12392
12393
12394
12395 /* mp3d13
12396 *
12397 * set negative indicator, use three 4-bit floating operands
12398 *
12399 */
12400
12401 inst mp3d -nt "4float*4float->4float"
12402 -ir ng
12403 -mf1 idb ar
12404 -mf2 idb ar
12405 -mf3 idb ar
12406 -io 1;
12407
12408 desc 1 -tn 4 -sd f -nn 6;
12409 desc 2 -tn 4 -sd f -nn 6;
12410 desc 3 -tn 4 -sd f -nn 6;
12411
12412 data 1 260 061 004;
12413 data 2 320 050 004;
12414 data 3 330 150 010;
12415
12416 page -all;
12417
12418
12419
12420
12421 /* mp3d14
12422 *
12423 * set negative indicator, use three 4-bit leading sign operands
12424 *
12425 */
12426
12427 inst mp3d -nt "4sca*4sca->4sca"
12428 -ir ng
12429 -mf1 idb ar
12430 -mf2 idb ar
12431 -mf3 idb ar
12432 -io 2;
12433
12434 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12435 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12436 desc 3 -tn 4 -sd l -sf 2 -nn 6;
12437
12438 data 1 260 061;
12439 data 2 320 000 050;
12440 data 3 330 150 000;
12441
12442 page -all;
12443
12444
12445
12446
12447 /* mp3d15
12448 *
12449 * set truncation indicator, use three 4-bit floating operands
12450 *
12451 */
12452
12453 inst mp3d -nt "4float*4float->4float"
12454 -ir tn
12455 -mf1 idb ar
12456 -mf2 idb ar
12457 -mf3 idb ar
12458 -io 1;
12459
12460 desc 1 -tn 4 -sd f -nn 6;
12461 desc 2 -tn 4 -sd f -nn 6;
12462 desc 3 -tn 4 -sd f -nn 6;
12463
12464 data 1 266 130 012;
12465 data 2 260 022 013;
12466 data 3 307 211 026;
12467
12468 page -all;
12469
12470
12471
12472
12473 /* mp3d16
12474 *
12475 * set truncation indicator, use three 4-bit leading sign operands
12476 *
12477 */
12478
12479 inst mp3d -nt "4sca*4sca->4sca"
12480 -ir tn
12481 -mf1 idb ar
12482 -mf2 idb ar
12483 -mf3 idb ar
12484 -io 2;
12485
12486 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12487 desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1;
12488 desc 3 -tn 4 -sd l -sf 4 -nn 5;
12489
12490 data 1 00 271;
12491 data 2 00 261 043 10;
12492 data 3 301 021 00;
12493
12494 page -all;
12495
12496
12497
12498
12499 /* mp3d17
12500 *
12501 * test rounding, use three 4-bit trailing sign operands
12502 *
12503 */
12504
12505 inst mp3d -nt "4sca*4sca->4sca"
12506 -rb
12507 -mf1 idb ar
12508 -mf2 idb ar
12509 -mf3 idb ar
12510 -io 1;
12511
12512 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12513 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12514 desc 3 -tn 4 -sd t -sf 4 -nn 5;
12515
12516 data 1 -do -1 00 233;
12517 data 2 -do -2 022 064 30;
12518 data 3 021 021 30;
12519
12520 page -all;
12521
12522
12523
12524
12525 /* mp3d18
12526 *
12527 * set overflow indicator, use three 9-bit unsigned operands
12528 *
12529 */
12530
12531 inst mp3d -nt "9sca*9sca->9sca"
12532 -ir ov
12533 -mf1 idb ar reg
12534 -mf2 idb ar reg
12535 -mf3 idb ar reg
12536 -io 2;
12537
12538 desc 1 -sd n -nn 3;
12539 desc 2 -sd n -nn 5;
12540 desc 3 -sd n -nn 5;
12541
12542 data 1 -do -1 "999";
12543 data 2 -do -4 "00999";
12544 data 3 "98001";
12545
12546 page -all;
12547
12548
12549
12550
12551 /* mp3d19
12552 *
12553 * set exponent overflow indicator, use three 9-bit floating operands
12554 *
12555 */
12556
12557 inst mp3d -nt "9flo*9flo->9flo"
12558 -ir eo tn
12559 -mf1 idb ar reg
12560 -mf2 idb ar reg
12561 -mf3 idb ar reg
12562 -io 1;
12563
12564 desc 1 -sd f -nn 6;
12565 desc 2 -sd f -nn 6;
12566 desc 3 -sd f -nn 6;
12567
12568 data 1 -do -4 "+" "0900" 100;
12569 data 2 -do -1 "+" "0756" 076;
12570 data 3 "+" "6804" 200;
12571
12572 page -all;
12573
12574
12575
12576
12577 /* mp3d20
12578 *
12579 * set exponent underflow indicator, use three 4-bit trailing
12580 * sign operands
12581 *
12582 */
12583
12584 inst mp3d -nt "4sca*4sca->4sca"
12585 -ir eu
12586 -mf1 idb ar
12587 -mf2 idb ar
12588 -mf3 idb ar
12589 -io 2;
12590
12591 desc 1 -tn 4 -sd f -nn 6 -cn 1;
12592 desc 2 -tn 4 -sd f -nn 6 -cn 1;
12593 desc 3 -tn 4 -sd f -nn 6 -cn 1;
12594
12595 data 1 -do -1 00 260 042 200;
12596 data 2 -do -2 00 260 063 300;
12597 data 3 00 307 046 100;
12598
12599 page -all;
12600
12601
12602
12603
12604 /* mp3d21
12605 *
12606 * mix leading and traling signs with 4-bit operands
12607 *
12608 */
12609
12610 inst mp3d -nt "4sca*4sca->4sca"
12611 -mf1 idb ar
12612 -mf2 idb ar
12613 -mf3 idb ar
12614 -io 1;
12615
12616 desc 1 -tn 4 -sd l -nn 63;
12617 desc 2 -tn 4 -sd t -sf 3 -nn 63;
12618 desc 3 -tn 4 -sd t -sf 3 -nn 63;
12619
12620 data 1 -do -62 260 30000 22;
12621 data 2 -do -1 010 30210 26;
12622 data 3 171 29231 222 30;
12623
12624 page -all;
12625
12626
12627
12628
12629 /* mp3d22
12630 *
12631 * mix floating point and leading sign with 9-bit operands
12632 *
12633 */
12634
12635 inst mp3d -nt "9flo*9sca->9sca"
12636 -mf1 idb ar reg
12637 -mf2 idb ar reg
12638 -mf3 idb ar reg
12639 -io 2;
12640
12641 desc 1 -sd f -nn 5;
12642 desc 2 -sd l -sf -3 -nn 63;
12643 desc 3 -sd l -sf -3 -nn 63;
12644
12645 data 1 -do -4 "+" "009" 001;
12646 data 2 -do -17 "+" "00" 60"8";
12647 data 3 "+" "7" 59"9" "20";
12648
12649 page -all;
12650
12651
12652
12653
12654 /* mp3d23
12655 *
12656 * mix 9-bit and 4-bit operands, use leading sign and unsigned scaled
12657 * decimals
12658 *
12659 */
12660
12661 inst mp3d -nt "9sca*4sca->4sca"
12662 -mf1 idb ar reg
12663 -mf2 idb ar
12664 -mf3 idb ar
12665 -io 1;
12666
12667 desc 1 -sd l -sf 2 -nn 11;
12668 desc 2 -sd n -sf 2 -nn 15 -tn 4;
12669 desc 3 -sd n -sf 2 -nn 15 -tn 4;
12670
12671 data 1 -do -7 "+" "2271658432";
12672 data 2 -do -1 6000 124 04;
12673 data 3 022 061 043 210 160 024 100 000;
12674
12675 page -all;
12676
12677
12678
12679 /* mp3d24
12680 *
12681 * mix 4-bit and 9-bit unsigned operands
12682 *
12683 */
12684
12685 inst mp3d -nt "4sca*9sca->9sca"
12686 -mf1 idb ar
12687 -mf2 idb ar reg
12688 -mf3 idb ar reg
12689 -io 2;
12690
12691 desc 1 -sd n -tn 4 -sf 2 -nn 10;
12692 desc 2 -sd n -sf 2 -nn 15;
12693 desc 3 -sd n -sf 2 -nn 15;
12694
12695 data 1 -do -1 042 161 145 204 142;
12696 data 2 -do -13 12"0" "542";
12697 data 3 "123123888640400";
12698
12699 page -all;
12700
12701
12702
12703 /* mp3d25
12704 *
12705 * mix floating point and trailing sign 9-bit operands
12706 *
12707 */
12708
12709 inst mp3d -nt "9-bit f -> 4 bit trailing sign"
12710 -ir ng
12711 -mf1 idb ar reg
12712 -mf2 idb ar reg
12713 -mf3 idb ar reg
12714 -io 1;
12715
12716 desc 1 -sd f -nn 16;
12717 desc 2 -sd t -sf 4 -nn 16;
12718 desc 3 -sd t -sf 4 -nn 16;
12719
12720 data 1 -do -5 "+" "0000" "2271658432" 002;
12721 data 2 -do -6 12"0" "542" "-";
12722 data 3 "123123887014400" "-";
12723
12724 page -all;
12725
12726
12727
12728
12729 /* mp3d26
12730 *
12731 * Multiply 505.05+ by floating +2.2 and get the 4 bit number
12732 * +1111.11000
12733 */
12734
12735 inst mp3d -nt "Result is 4 bit num" -io 3
12736 -mf1 ida
12737 -mf2 reg ar idb
12738 -mf3 ar idb;
12739
12740
12741 desc 1 -nn 6 -sd t -sf -2 -cn 1;
12742
12743 data 1 -do -4
12744 " " "505" "05" 053;
12745
12746
12747 desc 2 -nn 4 -sd f -cn 2;
12748
12749 data 2 -do -3
12750 " " 053 "22" 377; /* Exponent = -1 */
12751
12752
12753 desc 3 -nn 10 -sd l -tn 4 -sf -5;
12754
12755 data 3 301 021 021 020 000;
12756
12757
12758 page -all;
12759
12760 /* mp3d27
12761 * 9 bit scaled * 9 bit scaled to
12762 * 9 bit scaled
12763 * all page faults taken
12764 *
12765 */
12766
12767 inst mp3d -nt "rounded result"
12768 -io 2 -rb
12769 -mf1 ar rl 63 idb reg
12770 -mf2 ar rl 63 idb reg
12771 -mf3 ar rl 63 idb reg;
12772
12773 desc1 -cn 1 -sd l ;
12774 desc2 -cn 1 -sd l ;
12775 desc3 -sd l -cn 1 ;
12776
12777 data 1 -do 4033 " +" 20 "0" 12 "111" "111111";
12778 data 2 -do 4033 " +" 53 "0" 9 "1";
12779 data 3 -do 4033 000 "+" 12 "0" "12345678" 34 "9" "87654321";
12780
12781 page -all;
12782
12783
12784 ^L
12785
12786
12787 /* mp2d1
12788 * The zero indicator is set.
12789 * Two 9-bit operands are used.
12790 * Indirect descriptors are used for all operands.
12791 * Address register modification is used for all operands. */
12792
12793 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12794 -ir zr
12795 -mf1 idb ar reg
12796 -mf2 idb ar reg
12797 -io 1;
12798
12799 desc 1 -sd f -nn 63;
12800 desc 2 -sd f -nn 63;
12801
12802 data 1 "+" 61"0" 000 -do -62;
12803 data 2 "-" 61"9" 034 -do -34;
12804 data 3 "+" 61"0" 177;
12805
12806 page -all;
12807
12808
12809
12810 /* mp2d2
12811 * The zero indicator is set.
12812 * Two 9-bit leading sign operands are used.
12813 * The maximum number of page faults is taken.
12814 * Indirect descriptors are used for all operands.
12815 * Address register modification is used for all operands. */
12816
12817 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12818 -ir zr
12819 -mf1 idb ar
12820 -mf2 idb ar
12821 -io 2;
12822
12823 desc 1 -sd l -sf 10 -nn 7;
12824 desc 2 -sd l -sf 10 -nn 28;
12825
12826 data 1 -do -4 "-" 6"4";
12827 data 2 -do -24 "+" 27"0";
12828 data 3 "+" 27"0";
12829
12830 page -all;
12831
12832
12833
12834 /* mp2d3
12835 * The negative indicator is set.
12836 * Two 4-bit floating point operands are used.
12837 * Indirect descriptors are used for all operands.
12838 * Address register modification is used for all operands. */
12839
12840 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12841 -ir ng
12842 -mf1 idb ar
12843 -mf2 idb ar
12844 -io 1;
12845
12846 desc 1 -tn 4 -sd f -nn 6;
12847 desc 2 -tn 4 -sd f -nn 6;
12848
12849 data 1 260 061 004;
12850 data 2 320 050 004;
12851 data 3 330 150 010;
12852
12853 page -all;
12854
12855
12856
12857 /* mp2d4
12858 * The negative indicator is set.
12859 * Two 4-bit leading sign operands are used.
12860 * Indirect descriptors are used for all operands.
12861 * Address register modification is used for all operands. */
12862
12863 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12864 -ir ng
12865 -mf1 idb ar
12866 -mf2 idb ar
12867 -io 2;
12868
12869 desc 1 -tn 4 -sd l -sf 2 -nn 4;
12870 desc 2 -tn 4 -sd l -sf 2 -nn 6;
12871
12872 data 1 260 061;
12873 data 2 320 000 050;
12874 data 3 330 150 000;
12875
12876 page -all;
12877
12878
12879
12880 /* mp2d5
12881 * The truncation indicator is set.
12882 * Two 4-bit floating point operands are used.
12883 * Indirect descriptors are used for all operands.
12884 * Address register modification is used for all operands. */
12885
12886 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12887 -ir tn
12888 -mf1 idb ar
12889 -mf2 idb ar
12890 -io 1;
12891
12892 desc 1 -tn 4 -sd f -nn 6;
12893 desc 2 -tn 4 -sd f -nn 6;
12894
12895 data 1 266 130 012;
12896 data 2 260 022 013;
12897 data 3 307 211 026;
12898
12899 page -all;
12900
12901
12902
12903 /* mp2d6
12904 * The truncation indicator is set.
12905 * Two 4-bit leading sign operands are used.
12906 * Indirect descriptors are used for all operands.
12907 * Address register modification is used for all operands. */
12908
12909 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12910 -ir tn
12911 -mf1 idb ar
12912 -mf2 idb ar
12913 -io 2;
12914
12915 desc 1 -tn 4 -sd l -sf -1 -nn 2 -cn 1;
12916 desc 2 -tn 4 -sd l -sf 4 -nn 5 -cn 1;
12917
12918 data 1 00 271;
12919 data 2 00 261 043 10;
12920 data 3 00 301 021 00;
12921
12922 page -all;
12923
12924
12925
12926 /* mp2d7
12927 * Rounding is tested.
12928 * Two 4-bit trailing sign operands are used.
12929 * The maximum number of page faults is taken.
12930 * Indirect descriptors are used for all operands.
12931 * Address register modification is used for all operands. */
12932
12933 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
12934 -rb
12935 -mf1 idb ar
12936 -mf2 idb ar
12937 -io 1;
12938
12939 desc 1 -tn 4 -sd t -sf -1 -cn 1 -nn 2;
12940 desc 2 -tn 4 -sd t -sf 4 -nn 5;
12941
12942 data 1 -do -1 00 233;
12943 data 2 -do -2 022 064 30;
12944 data 3 021 021 30;
12945
12946 page -all;
12947
12948
12949
12950 /* mp2d8
12951 * The overflow indicator is set.
12952 * Two 9-bit unsigned operands are used.
12953 * The maximum number of page faults is taken.
12954 * Indirect descriptors are used for all operands.
12955 * Address register modification is used for all operands. */
12956
12957 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12958 -ir ov
12959 -mf1 idb ar reg
12960 -mf2 idb ar reg
12961 -io 2;
12962
12963 desc 1 -sd n -nn 3;
12964 desc 2 -sd n -nn 5;
12965
12966 data 1 -do -1 "999";
12967 data 2 -do -4 "00999";
12968 data 3 "98001";
12969
12970 page -all;
12971
12972
12973
12974 /* mp2d9
12975 * The exponent overflow indicator is set.
12976 * Two 9-bit floating point operands
12977 * The maximum number of page faults is taken.
12978 * Indirect descriptors are used for all operands.
12979 * Address register modification is used for all operands. */
12980
12981 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
12982 -ir eo tn
12983 -mf1 idb ar reg
12984 -mf2 idb ar reg
12985 -io 1;
12986
12987 desc 1 -sd f -nn 6;
12988 desc 2 -sd f -nn 6;
12989
12990 data 1 -do -4 "+" "0900" 100;
12991 data 2 -do -1 "+" "0756" 076;
12992 data 3 "+" "6804" 200;
12993
12994 page -all;
12995
12996
12997
12998 /* mp2d10
12999 * The exponent underflow indicator is set.
13000 * Two 4-bit trailing sign operands are used.
13001 * The maximum number of page faults is taken.
13002 * Indirect descriptors are used for all operands.
13003 * Address register modification is used for all operands. */
13004
13005 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13006 -ir eu
13007 -mf1 idb ar
13008 -mf2 idb ar
13009 -io 2;
13010
13011 desc 1 -tn 4 -sd f -nn 6 -cn 1;
13012 desc 2 -tn 4 -sd f -nn 6 -cn 1;
13013
13014 data 1 -do -1 00 260 042 200;
13015 data 2 -do -2 00 260 063 300;
13016 data 3 00 307 046 100;
13017
13018 page -all;
13019
13020
13021
13022 /* mp2d11
13023 * Leading and trailing signs are mixed.
13024 * Two 4-bit operands are used.
13025 * Indirect descriptors are used for all operands.
13026 * Address register modification is used for all operands. */
13027
13028 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13029 -mf1 idb ar
13030 -mf2 idb ar
13031 -io 1;
13032
13033 desc 1 -tn 4 -sd l -nn 63;
13034 desc 2 -tn 4 -sd t -sf 3 -nn 63;
13035
13036 data 1 -do -62 260 30000 22;
13037 data 2 -do -1 010 30210 26;
13038 data 3 171 29231 222 30;
13039
13040 page -all;
13041
13042
13043
13044 /* mp2d12
13045 * A floating point operand and a leading sign operand are used.
13046 * Two 9-bit operands are used.
13047 * The maximum number of page faults is taken.
13048 * Indirect descriptors are used for all operands.
13049 * Address register modification is used for all operands. */
13050
13051 inst mp2d -nt "4-bit x 4-bit -> 4-bit"
13052 -mf1 idb ar reg
13053 -mf2 idb ar reg
13054 -io 2;
13055
13056 desc 1 -sd f -nn 5;
13057 desc 2 -sd l -sf -3 -nn 63;
13058
13059 data 1 -do -4 "+" "009" 001;
13060 data 2 -do -17 "+" "00" 60"8";
13061 data 3 "+" "7" 59"9" "20";
13062
13063 page -all;
13064
13065
13066
13067 /* mp2d13
13068 * A leading sign 9-bit operand and an unsigned 4-bit operand are used.
13069 * The maximum number of page faults is taken.
13070 * Indirect descriptors are used for all operands.
13071 * Address register modification is used for all operands. */
13072
13073
13074 inst mp2d -nt "9-bit x 4-bit -> 4-bit"
13075 -mf1 idb ar reg
13076 -mf2 idb ar
13077 -io 1;
13078
13079 desc 1 -sd l -sf 2 -nn 11;
13080 desc 2 -sd n -sf 2 -nn 15 -tn 4;
13081
13082 data 1 -do -7 "+" "2271658432";
13083 data 2 -do -1 6000 124 04;
13084 data 3 022 061 043 210 160 024 100 000;
13085
13086 page -all;
13087
13088
13089
13090 /* mp2d14
13091 * Unsigned 4-bit and 9-bit operands are used.
13092 * The maximum number of page faults is taken.
13093 * Indirect descriptors are used for all operands.
13094 * Address register modification is used for all operands. */
13095
13096 inst mp2d -nt "4-bit x 9-bit -> 9-bit"
13097 -mf1 idb ar
13098 -mf2 idb ar reg
13099 -io 2;
13100
13101 desc 1 -sd n -tn 4 -sf 2 -nn 10;
13102 desc 2 -sd n -sf 2 -nn 15;
13103
13104 data 1 -do -1 042 161 145 204 142;
13105 data 2 -do -13 12"0" "542";
13106 data 3 "123123888640400";
13107
13108 page -all;
13109
13110
13111 /* mp2d15
13112 * A floating point operand and a trailing sign operand are used.
13113 * Two 9-bit operands are used.
13114 * The maximum number of page faults is taken.
13115 * Indirect descriptors are used for all operands.
13116 * Address register modification is used for all operands. */
13117
13118 inst mp2d -nt "9-bit x 9-bit -> 9-bit"
13119 -ir ng
13120 -mf1 idb ar reg
13121 -mf2 idb ar reg
13122 -io 1;
13123
13124 desc 1 -sd f -nn 16;
13125 desc 2 -sd t -sf 4 -nn 16;
13126
13127 data 1 -do -5 "+" "0000" "2271658432" 002;
13128 data 2 -do -6 12"0" "542" "-";
13129 data 3 "123123887014400" "-";
13130
13131 page -all;
13132
13133
13134 ^L
13135
13136 /* dv3d1
13137 * The zero indicator is set.
13138 * Three 9-bit floating point operands are used.
13139 * The maximum number of page faults is taken.
13140 * Indirect descriptors are used for all operands.
13141 * Address register modification is used for all operands. */
13142
13143 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13144 -ir zr
13145 -mf1 idb ar reg
13146 -mf2 idb ar reg
13147 -mf3 idb ar reg
13148 -io 1;
13149
13150 desc 1 -sd f -nn 6;
13151 desc 2 -sd f -nn 55;
13152 desc 3 -sd f -nn 31;
13153
13154 data 1 -do -2 "+" "4275" 377;
13155 data 2 -do -50 "+" 53"0" 374;
13156 data 3 -do -25 "+" 29"0" 177;
13157
13158 page -all;
13159
13160
13161
13162 /* dv3d2
13163 * The negative indicator is set.
13164 * Three 4-bit floating point operands are used.
13165 * The maximum number of page faults is taken.
13166 * Indirect descriptors are used for all operands.
13167 * Address register modification is used for all operands. */
13168
13169 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13170 -ir ng -mf1 idb ar
13171 -mf2 idb ar
13172 -mf3 idb ar
13173 -io 2;
13174
13175 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13176 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13177 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13178
13179 data 1 -do -1 00 260 000 002 004;
13180 data 2 -do -4 00 320 225 120 004;
13181 data 3 -do -2 00 324 167 120 377;
13182
13183 page -all;
13184
13185
13186 /* dv3d3
13187 * The negative indicator is set.
13188 * Three 4-bit trailing sign operands are used.
13189 * Indirect descriptors are used for all operands.
13190 * Address register modification is used for all operands. */
13191
13192 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13193 -ir ng
13194 -mf1 idb ar
13195 -mf2 idb ar
13196 -mf3 idb ar
13197 -io 3;
13198
13199 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13200 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13201 desc 3 -tn 4 -sd t -sf 3 -nn3;
13202
13203 data 1 000 055;
13204 data 2 010 26;
13205 data 3 100 32;
13206
13207 page -all;
13208
13209
13210 /* dv3d4
13211 * The overflow indicator is set.
13212 * Three 4-bit floating point operands are used.
13213 * The maximum number of page faults is taken.
13214 * Indirect descriptors are used for all operands.
13215 * Address register modification is used for all operands. */
13216
13217 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13218 -ir ov
13219 -mf1 idb ar
13220 -mf2 idb ar
13221 -mf3 idb ar
13222 -io 1;
13223
13224 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13225 desc 2 -tn 4 -sd n -sf 1 -nn63;
13226 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13227
13228 data 1 -do -12 31000 10;
13229 data 2 -do -15 31167 16;
13230 data 3 -do -18 25104;
13231
13232 page -all;
13233
13234
13235
13236 /* dv3d5
13237 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13238 * All operands are unsigned.
13239 * The maximum number of page faults is taken.
13240 * Indirect descriptors are used for all operands.
13241 * Address register modification is used for all operands. */
13242
13243 inst dv3d -nt "9 bit / 9 bit -> 4 bit"
13244 -mf1 idb ar reg
13245 -mf2 idb ar reg
13246 -mf3 idb ar
13247 -io 1;
13248
13249 desc 1 -sd n -nn 8;
13250 desc 2 -sd n -nn 10;
13251 desc 3 -sd n -tn 4 -nn 8;
13252
13253 data 1 -do -7 "30144196";
13254 data 2 -do -3 "1567498217";
13255 data 3 -do -2 3000 122;
13256
13257 page -all;
13258
13259
13260
13261 /* dv3d6
13262 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13263 * All operands are floating point.
13264 * The maximum number of page faults is taken.
13265 * Indirect descriptors are used for all operands.
13266 * Address register modification is used for all operands. */
13267
13268 inst dv3d -nt "4 bit / 4 bit -> 9 bit"
13269 -mf1 idb ar
13270 -mf2 idb ar
13271 -mf3 idb ar reg
13272 -io 2;
13273
13274 desc 1 -tn 4 -sd f -nn 11;
13275 desc 2 -tn 4 -sd f -nn 13;
13276 desc 3 -sd f -nn 10;
13277
13278 data 1 -do -4 323 001 104 031 140 00;
13279 data 2 -do -3 321 126 164 230 041 160 00;
13280 data 3 -do -1 "+" "052" 5"0" 373;
13281
13282 page -all;
13283
13284
13285
13286 /* dv3d7
13287 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13288 * All operands are trailing sign.
13289 * The maximum number of page faults is taken.
13290 * Indirect descriptors are used for all operands.
13291 * Address register modification is used for all operands. */
13292
13293 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13294 -mf1 idb ar reg
13295 -mf2 idb ar
13296 -mf3 idb ar
13297 -io 3;
13298
13299 desc 1 -sd t -nn 10;
13300 desc 2 -tn 4 -sd t -nn 11;
13301 desc 3 -tn 4 -sd t -nn 10;
13302
13303 data 1 -do -8 "030144196" "-";
13304 data 2 -do -5 025 147 111 202 027 320;
13305 data 3 -do -3 3000 005 054;
13306
13307 page -all;
13308
13309
13310
13311 /* dv3d8
13312 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13313 * All operands are leading sign.
13314 * Indirect descriptors are used for all operands.
13315 * Address register modification is used for all operands. */
13316
13317 inst dv3d -nt "9 bit / 4 bit -> 9 bit"
13318 -mf1 idb ar reg
13319 -mf2 idb ar
13320 -mf3 idb ar reg
13321 -io 2;
13322
13323 desc 1 -sd l -sf 6 -nn 20;
13324 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13325 desc 3 -sd l -nn 20;
13326
13327 data 1 "+" 11"0" "30144196";
13328 data 2 260 4 000 025 147 111 202 027;
13329 data 3 "+" 17"0" "52";
13330
13331 page -all;
13332
13333
13334
13335 /* dv3d9
13336 * Leading sign, trailing sign, and floating point operands are used.
13337 * Three 9-bit operands are used.
13338 * Indirect descriptors are used for all operands.
13339 * Address register modification is used for all operands. */
13340
13341 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13342 -mf1 idb ar reg
13343 -mf2 idb ar reg
13344 -mf3 idb ar reg
13345 -io 3;
13346
13347 desc 1 -sd l -sf 1 -nn 8;
13348 desc 2 -sd t -sf 2 -nn 8;
13349 desc 3 -sd f -nn 8;
13350
13351 data 1 "+" 5"0" "58";
13352 data 2 "000" "1234" "+";
13353 data 3 "+" "021275" 376;
13354
13355 page -all;
13356
13357
13358
13359 /* dv3d10
13360 * Floating point, unsigned, and leading sign operands are used.
13361 * Three 4-bit operands are used.
13362 * Indirect descriptors are used for all operands.
13363 * Address register modification is used for all operands. */
13364
13365 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13366 -mf1 idb ar
13367 -mf2 idb ar
13368 -mf3 idb ar
13369 -io 1;
13370
13371 desc 1 -tn 4 -sd f -nn 8;
13372 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13373 desc 3 -tn 4 -sd l -nn 8;
13374
13375 data 1 260 002 022 000;
13376 data 2 000 000 022 064;
13377 data 3 300 000 000 130;
13378
13379 page -all;
13380
13381
13382
13383
13384 /* dv3d11
13385 * Use RL mod and cn field with indirect descriptors
13386 * Use three 9-bit trailing sign operands.
13387 *
13388 */
13389
13390
13391 inst dv3d -nt "two character offset"
13392 -io 2 -ir ng
13393 -mf1 ar rl 10 idb reg
13394 -mf2 ar rl 10 idb reg
13395 -mf3 ar rl 10 idb reg;
13396
13397 desc1 -cn 1 -sd t ;
13398 desc2 -cn 1 -sd t ;
13399 desc 3 -cn 1 -sd t;
13400
13401 data 1 -do -9 " " 9 "1" "-";
13402 data 2 -do -9 "*" 9 "2" "+";
13403 data 3 000 8"0" "2" "-";
13404
13405 page -all;
13406
13407 /* dv3d12
13408 * Use RL mod and cn field with indirect descriptors
13409 * Use three 9-bit trailing sign operands.
13410 *
13411 */
13412
13413
13414 inst dv3d -nt "one character offset"
13415 -io 2 -ir ng
13416 -mf1 ar rl 10 idb reg
13417 -mf2 ar rl 10 idb reg
13418 -mf3 ar rl 10 idb reg;
13419
13420 desc1 -cn 1 -sd t ;
13421 desc2 -cn 1 -sd t ;
13422 desc3 -cn 1 -sd t;
13423
13424 data 1 -do -10 " " 9 "1" "-";
13425 data 2 -do -20 "*" 9 "2" "+";
13426 data 3 000 8 "0" "2" "-";
13427
13428 page -all;
13429
13430 /* dv3d13
13431 * Use RL mod and cn field
13432 * Use three 9-bit trailing sign operands.
13433 * no indirect descriptors
13434 *
13435 */
13436
13437 inst dv3d -nt "no indirect descriptors"
13438 -io 2 -ir ng
13439 -mf1 ar rl 10 reg
13440 -mf2 ar rl 10 reg
13441 -mf3 ar rl 10 reg;
13442
13443 desc1 -cn 1 -sd t ;
13444 desc2 -cn 1 -sd t ;
13445 desc3 -cn 1 -sd t;
13446
13447 data 1 -do -9 " " 9 "1" "-";
13448 data 2 -do -9 "*" 9 "2" "+";
13449 data 3 000 8 "0" "2" "-";
13450
13451 page -all;
13452
13453 /* dv3d14
13454 * Use no modification
13455 * Use three 9 bit trailing sign operands.
13456 *
13457 */
13458
13459 inst dv3d -nt "no mf modification"
13460 -io 2 -ir ng;
13461
13462 desc1 -cn 1 -sd t -nn 12;
13463 desc2 -cn 1 -sd t -nn 12;
13464 desc3 -cn 1 -sd t -nn 12;
13465
13466 data 1 -do -12 " " 11 "1" "-";
13467 data 2 -do -12 "*" 11 "2" "+";
13468 data 3 000 10 "0" "2" "-";
13469
13470 page -all;
13471
13472 /* dv3d15
13473 * Use ar and rl
13474 * Use three 9-bit trailing sign operands.
13475 *
13476 */
13477
13478
13479 inst dv3d -nt "ar and rl modification"
13480 -io 2 -ir ng
13481 -mf1 ar rl 10
13482 -mf2 ar rl 10
13483 -mf3 ar rl 10 ;
13484
13485 desc1 -cn 1 -sd t ;
13486 desc2 -cn 1 -sd t ;
13487 desc3 -cn 1 -sd t;
13488
13489 data 1 -do -9 " " 9 "1" "-";
13490 data 2 -do -9 "*" 9 "2" "+";
13491 data 3 000 8"0" "2" "-";
13492
13493 page -all;
13494
13495 /* dv3d16
13496 * Use ar and rl modification on desc1
13497 * Use ar rl idb reg on desc2
13498 * Use three 9-bit trailing sign operands.
13499 *
13500 */
13501
13502
13503 inst dv3d -nt "two character offset"
13504 -io 2 -ir ng
13505 -mf1 ar rl 10
13506 -mf2 ar rl 10 idb reg
13507 -mf3 ar rl 10 idb reg;
13508
13509 desc1 -cn 1 -sd t ;
13510 desc2 -cn 1 -sd t ;
13511 desc3 -cn 1 -sd t;
13512
13513 data 1 -do -9 " " 9 "1" "-";
13514 data 2 -do -9 "*" 9 "2" "+";
13515 data 3 000 8 "0" "2" "-";
13516
13517 page -all;
13518
13519
13520
13521 /* dv3d17
13522 * maximum length divide leading sign
13523 * one character over next page
13524 * all modification taken
13525 */
13526 inst dv3d -nt "maximum length "
13527 -io 2
13528 -mf1 ar rl 63 idb reg
13529 -mf2 ar rl 63 idb reg
13530 -mf3 ar rl 63 idb reg;
13531
13532 desc1 -cn 1 -sd l ;
13533 desc2 -cn 1 -sd l ;
13534 desc3 -cn 1 -sd l;
13535
13536 data 1 -do 4033 " " "+33" 15 "8642";
13537 data 2 -do 4033 "*" "+33" 15 "8642";
13538 data 3 000 "+" 61 "0" "1";
13539
13540 page -all;
13541
13542
13543
13544
13545 /* dv3d18
13546 * This is a simple test
13547 * Use three 9-bit trailing sign operands.
13548 *
13549 */
13550
13551 inst dv3d -nt "simple test";
13552
13553 desc1 -sd t -nn 63;
13554 desc2 -sd t -sf 10 -nn 63;
13555 desc3 -sd t -sf 10 -nn 63;
13556
13557 data 1 "11" 12 "1111" "11" 10 "0" "+";
13558 data 2 "22" 12 "2222" "22" 10 "0" "+";
13559 data 3 61 "0" "2" "+";
13560
13561 page -all;
13562
13563
13564
13565 /* dv3d19
13566 * maximum length divide resulting
13567 * in an overflow
13568 * all modification taken
13569 * Use three 9-bit leading sign operands.
13570 */
13571 inst dv3d -nt "truncation fault"
13572 -io 1
13573 -mf1 ar rl 63 idb reg
13574 -mf2 ar rl 63 idb reg
13575 -mf3 ar rl 63 idb reg;
13576
13577 desc1 -sd l -cn 1;
13578 desc2 -sd l -cn 1;
13579 desc3 -sd l -cn 1;
13580
13581 data 1 -do 4033 " " "+33" 15 "8642";
13582 data 2 -do 4033 "*" "+71" 15 "2357";
13583 data 3 000 "+" 61 "0" "2";
13584
13585 page -all;
13586
13587
13588
13589 /* dv3d20
13590 * maximum length over two pages
13591 * no faults 9 bit / 4 bit -> 4 bit
13592 *
13593 */
13594
13595 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13596 -io 1
13597 -mf1 ar rl 63
13598 -mf2 ar rl 63
13599 -mf3 ar rl 63 ;
13600
13601 desc1 -sd t ;
13602 desc2 -sd t -tn 4;
13603 desc3 -sd t -tn 4;
13604
13605 data 1 -do 4033 "33" 15 "3333" "+";
13606 data 2 -do 4064 104104 7 104104104104 10426;
13607 data 3 28 000 000000001300;
13608
13609 page -all;
13610
13611
13612
13613 /* dv3d21
13614 * 9 bit / 4 bit -> 4 bit ; all page faults possible
13615 * no reg modification on desc2
13616 *
13617 */
13618
13619 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13620 -io 2
13621 -mf1 ar rl 63 idb reg
13622 -mf2 ar rl 63 idb
13623 -mf3 ar rl 63 idb ;
13624
13625 desc1 -cn 1 -sd l;
13626 desc2 -cn 1 -sd t -tn 4;
13627 desc3 -cn 1 -sd t -tn 4;
13628
13629 data 1 -do 4033 " " "+" 15 "0000" "22";
13630 data 2 -do 4068 "*" 28 000 104104 1043;
13631 data 3 000 28 000 002 002 002 300;
13632
13633 page -all;
13634
13635
13636
13637 /* dv3d22
13638 * Use three 4-bit trailing sign operands.
13639 * maximum length
13640 * all page faults taken
13641 * no reg modification
13642 */
13643
13644 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13645 -io 1
13646 -mf1 ar rl 63 idb
13647 -mf2 ar rl 63 idb
13648 -mf3 ar rl 63 idb;
13649
13650 desc1 -cn 1 -sd t -tn 4;
13651 desc2 -cn 1 -sd t -tn 4;
13652 desc3 -cn 1 -sd t -tn 4;
13653
13654 data 1 -do 4065 " " 28 000 000 000 0013;
13655 data 2 -do 4065 "*" 021021 7 021021021021 0213;
13656 data 3 000 021021 7 021021021021 0213;
13657
13658 page -all;
13659
13660
13661
13662 /* dv3d23
13663 * floating point divide
13664 * Use three 9-bit floatinf point operands.
13665 * all page faults taken
13666 *
13667 */
13668
13669 inst dv3d -nt "9bit float divide"
13670 -io 1
13671 -mf1 ar rl 63 reg idb
13672 -mf2 ar rl 63 reg idb
13673 -mf3 ar rl 63 reg idb;
13674
13675 desc1 -sd f;
13676 desc2 -sd f;
13677 desc3 -sd f;
13678
13679 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
13680 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
13681 data 3 "+" "1" 60 "0" 305;
13682
13683 page -all;
13684
13685
13686
13687
13688 /* dv3d24
13689 * Use three 4-bit floating point operands.
13690 *
13691 */
13692
13693 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13694 -io 1
13695 -mf1 ar rl 10 ida
13696 -mf2 ar rl 10 ida
13697 -mf3 ar rl 10 ida;
13698
13699 desc1 -sd f -tn 4;
13700 desc2 -sd f -tn 4;
13701 desc3 -sd f -tn 4;
13702
13703 data 1 -do -1 300 000 000 001 000;
13704 data 2 -do -1 300 000 021 021 000;
13705 data 3 301 021 020 000 375;
13706
13707 page -all;
13708
13709
13710
13711 /* dv3d25
13712 * 4 bit / 9 bit -> 9 bit
13713 *
13714 */
13715
13716 inst dv3d -nt "4 bit / 9 bit -> 9 bit"
13717 -io 1
13718 -mf1 ar rl 5 idb
13719 -mf2 ar rl 5 idb reg
13720 -mf3 ar rl 5 idb reg;
13721
13722 desc 1 -tn 4 -sd l;
13723 desc 2 -sd n;
13724 desc 3 -sd n;
13725
13726 data 1 30102100;
13727 data 2 -do 4 "02222";
13728 data 3 "00002";
13729
13730 page -all;
13731
13732
13733
13734 /* dv3d26
13735 * The zero indicator is set.
13736 * Three 9-bit floating point operands are used.
13737 * No indirect descriptors are used.
13738 * Address register modification is used for all operands. */
13739
13740 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13741 -ir zr
13742 -mf1 ar reg
13743 -mf2 ar reg
13744 -mf3 ar reg
13745 -io 1;
13746
13747 desc 1 -sd f -nn 6;
13748 desc 2 -sd f -nn 55;
13749 desc 3 -sd f -nn 31;
13750
13751 data 1 -do -2 "+" "4275" 377;
13752 data 2 -do -50 "+" 53"0" 374;
13753 data 3 -do -25 "+" 29"0" 177;
13754
13755 page -all;
13756
13757
13758
13759 /* dv3d27
13760 * The negative indicator is set.
13761 * Three 4-bit floating point operands are used.
13762 * No indirect descriptors are used.
13763 * Address register modification is used for all operands. */
13764
13765 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13766 -ir ng -mf1 ar
13767 -mf2 ar
13768 -mf3 ar
13769 -io 2;
13770
13771 desc 1 -tn 4 -sd f -nn 8 -cn 1;
13772 desc 2 -tn 4 -sd f -nn 8 -cn 1;
13773 desc 3 -tn 4 -sd f -nn 8 -cn 1;
13774
13775 data 1 -do -1 00 260 000 002 004;
13776 data 2 -do -4 00 320 225 120 004;
13777 data 3 -do -2 00 324 167 120 377;
13778
13779 page -all;
13780
13781
13782 /* dv3d28
13783 * The negative indicator is set.
13784 * Three 4-bit trailing sign operands are used.
13785 * No indirect descriptors are used.
13786 * Address register modification is used for all operands. */
13787
13788 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13789 -ir ng
13790 -mf1 ar
13791 -mf2 ar
13792 -mf3 ar
13793 -io 3;
13794
13795 desc 1 -tn 4 -sd t -sf 4 -nn 4;
13796 desc 2 -tn 4 -sd t -sf 8 -nn 3;
13797 desc 3 -tn 4 -sd t -sf 3 -nn3;
13798
13799 data 1 000 055;
13800 data 2 010 26;
13801 data 3 100 32;
13802
13803 page -all;
13804
13805
13806 /* dv3d29
13807 * The overflow indicator is set.
13808 * Three 4-bit floating point operands are used.
13809 * No indirect descriptors are used.
13810 * Address register modification is used for all operands. */
13811
13812 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13813 -ir ov
13814 -mf1 ar
13815 -mf2 ar
13816 -mf3 ar
13817 -io 1;
13818
13819 desc 1 -tn 4 -sd n -sf 1 -nn 63;
13820 desc 2 -tn 4 -sd n -sf 1 -nn63;
13821 desc 3 -tn 4 -sd n -sf 10 -nn 50;
13822
13823 data 1 -do -12 31000 10;
13824 data 2 -do -15 31167 16;
13825 data 3 -do -18 25104;
13826
13827 page -all;
13828
13829
13830
13831 /* dv3d30
13832 * A 9-bit operand is divided by a 9-bit operand & stored in a 4-bit operand.
13833 * All operands are unsigned.
13834 * No indirect descriptors are used.
13835 * Address register modification is used for all operands. */
13836
13837 inst dv3d -nt "9 bit / 9 bit -> 4 bit"
13838 -mf1 ar reg
13839 -mf2 ar reg
13840 -mf3 ar
13841 -io 1;
13842
13843 desc 1 -sd n -nn 8;
13844 desc 2 -sd n -nn 10;
13845 desc 3 -sd n -tn 4 -nn 8;
13846
13847 data 1 -do -7 "30144196";
13848 data 2 -do -3 "1567498217";
13849 data 3 -do -2 3000 122;
13850
13851 page -all;
13852
13853
13854
13855 /* dv3d31
13856 * A 4-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13857 * All operands are floating point.
13858 * No indirect descriptors are used.
13859 * Address register modification is used for all operands. */
13860
13861 inst dv3d -nt "4 bit / 4 bit -> 9 bit"
13862 -mf1 ar
13863 -mf2 ar
13864 -mf3 ar reg
13865 -io 2;
13866
13867 desc 1 -tn 4 -sd f -nn 11;
13868 desc 2 -tn 4 -sd f -nn 13;
13869 desc 3 -sd f -nn 10;
13870
13871 data 1 -do -4 323 001 104 031 140 00;
13872 data 2 -do -3 321 126 164 230 041 160 00;
13873 data 3 -do -1 "+" "052" 5"0" 373;
13874
13875 page -all;
13876
13877
13878
13879 /* dv3d32
13880 * A 9-bit operand is divided by a 4-bit operand & stored in a 4-bit operand.
13881 * All operands are trailing sign.
13882 * No indirect descriptors are used.
13883 * Address register modification is used for all operands. */
13884
13885 inst dv3d -nt "9 bit / 4 bit -> 4 bit"
13886 -mf1 ar reg
13887 -mf2 ar
13888 -mf3 ar
13889 -io 3;
13890
13891 desc 1 -sd t -nn 10;
13892 desc 2 -tn 4 -sd t -nn 11;
13893 desc 3 -tn 4 -sd t -nn 10;
13894
13895 data 1 -do -8 "030144196" "-";
13896 data 2 -do -5 025 147 111 202 027 320;
13897 data 3 -do -3 3000 005 054;
13898
13899 page -all;
13900
13901
13902
13903 /* dv3d33
13904 * A 9-bit operand is divided by a 4-bit operand & stored in a 9-bit operand.
13905 * All operands are leading sign.
13906 * No indirect descriptors are used.
13907 * Address register modification is used for all operands. */
13908
13909 inst dv3d -nt "9 bit / 4 bit -> 9 bit"
13910 -mf1 ar reg
13911 -mf2 ar
13912 -mf3 ar reg
13913 -io 2;
13914
13915 desc 1 -sd l -sf 6 -nn 20;
13916 desc 2 -sd l -sf 6 -tn 4 -nn 20;
13917 desc 3 -sd l -nn 20;
13918
13919 data 1 "+" 11"0" "30144196";
13920 data 2 260 4 000 025 147 111 202 027;
13921 data 3 "+" 17"0" "52";
13922
13923 page -all;
13924
13925
13926
13927 /* dv3d34
13928 * Leading sign trailing sign and floating point operands are used.
13929 * Three 9-bit operands are used.
13930 * No indirect descriptors are used.
13931 * Address register modification is used for all operands. */
13932
13933 inst dv3d -nt "9 bit / 9 bit -> 9 bit"
13934 -mf1 ar reg
13935 -mf2 ar reg
13936 -mf3 ar reg
13937 -io 3;
13938
13939 desc 1 -sd l -sf 1 -nn 8;
13940 desc 2 -sd t -sf 2 -nn 8;
13941 desc 3 -sd f -nn 8;
13942
13943 data 1 "+" 5"0" "58";
13944 data 2 "000" "1234" "+";
13945 data 3 "+" "021275" 376;
13946
13947 page -all;
13948
13949
13950
13951 /* dv3d35
13952 * Floating point unsigned and leading sign operands are used.
13953 * Three 4-bit operands are used.
13954 * Indirect descriptors are used for all operands.
13955 * Address register modification is used for all operands. */
13956
13957 inst dv3d -nt "4 bit / 4 bit -> 4 bit"
13958 -mf1 ar
13959 -mf2 ar
13960 -mf3 ar
13961 -io 1;
13962
13963 desc 1 -tn 4 -sd f -nn 8;
13964 desc 2 -tn 4 -sd n -sf 1 -nn 8;
13965 desc 3 -tn 4 -sd l -nn 8;
13966
13967 data 1 260 002 022 000;
13968 data 2 000 000 022 064;
13969 data 3 300 000 000 130;
13970
13971 page -all;
13972
13973 ^L
13974
13975 /* dv2d1
13976 * Use RL mod and cn field with indirect descriptors
13977 * divide 9 bit scaled to 9 bit scaled
13978 *
13979 */
13980
13981
13982 inst dv2d -nt "two character offset"
13983 -io 2 -ir ng
13984 -mf1 ar rl 10 idb reg
13985 -mf2 ar rl 10 idb reg;
13986
13987 desc1 -cn 1 -sd t ;
13988 desc2 -cn 1 -sd t ;
13989
13990 data 1 -do -9 " " 9 "1" "-";
13991 data 2 -do -9 "*" 9 "2" "+";
13992 data 3 "*" 8 "0" "2" "-";
13993
13994 page -all;
13995
13996
13997 /* dv2d2
13998 * Use RL mod and cn field with indirect descriptors
13999 * 9 bit scaled to 9 bit scaled
14000 *
14001 */
14002
14003
14004 inst dv2d -nt "one character offset"
14005 -io 2 -ir ng
14006 -mf1 ar rl 10 idb reg
14007 -mf2 ar rl 10 idb reg;
14008
14009 desc1 -cn 1 -sd t ;
14010 desc2 -cn 1 -sd t ;
14011
14012 data 1 -do -10 " " 9 "1" "-";
14013 data 2 -do -20 "*" 9 "2" "+";
14014 data 3 "*" 8 "0" "2" "-";
14015
14016 page -all;
14017
14018
14019 /* dv2d3
14020 * Use RL mod and cn field
14021 * 9 bit scaled to 9 bit scaled
14022 * no indirect descriptors
14023 *
14024 */
14025
14026 inst dv2d -nt "no indirect descriptors"
14027 -io 2 -ir ng
14028 -mf1 ar rl 10 reg
14029 -mf2 ar rl 10 reg;
14030
14031 desc1 -cn 1 -sd t ;
14032 desc2 -cn 1 -sd t ;
14033
14034 data 1 -do -9 " " 9 "1" "-";
14035 data 2 -do -9 "*" 9 "2" "+";
14036 data 3 "*" 8 "0" "2" "-";
14037
14038 page -all;
14039
14040
14041 /* dv2d4
14042 * Use no modification
14043 * 9bit scaled divideed to 9 bit scaled
14044 *
14045 */
14046
14047 inst dv2d -nt "no mf modification"
14048 -io 2 -ir ng;
14049
14050 desc1 -cn 1 -sd t -nn 12;
14051 desc2 -cn 1 -sd t -nn 12;
14052
14053 data 1 -do -12 " " 11 "1" "-";
14054 data 2 -do -12 "*" 11 "2" "+";
14055 data 3 "*" 10 "0" "2" "-";
14056
14057 page -all;
14058
14059
14060 /* dv2d5
14061 * Use ar and rl
14062 * 9 bit scaled to 9 bit scaled
14063 *
14064 */
14065
14066
14067 inst dv2d -nt "ar and rl modification"
14068 -io 2 -ir ng
14069 -mf1 ar rl 10
14070 -mf2 ar rl 10 ;
14071
14072 desc1 -cn 1 -sd t ;
14073 desc2 -cn 1 -sd t ;
14074
14075 data 1 -do -9 " " 9 "1" "-";
14076 data 2 -do -9 "*" 9 "2" "+";
14077 data 3 "*" 8"0" "2" "-";
14078
14079 page -all;
14080
14081
14082 /* dv2d6
14083 * Use aar and rl modification desc1
14084 * Use ar rl idb reg on desc2
14085 * 9 bit scaled to 9 bit scaled
14086 *
14087 */
14088
14089
14090 inst dv2d -nt "two character offset"
14091 -io 2 -ir ng
14092 -mf1 ar rl 10
14093 -mf2 ar rl 10 idb reg;
14094
14095 desc1 -cn 1 -sd t ;
14096 desc2 -cn 1 -sd t ;
14097
14098 data 1 -do -9 " " 9 "1" "-";
14099 data 2 -do -9 "*" 9 "2" "+";
14100 data 3 "*" 8 "0" "2" "-";
14101
14102 page -all;
14103
14104
14105
14106
14107 /* dv2d7
14108 * maximum length divide leading sign
14109 * one character over next page
14110 * all modification taken
14111 */
14112 inst dv2d -nt "maximum length "
14113 -io 2
14114 -mf1 ar rl 63 idb reg
14115 -mf2 ar rl 63 idb reg;
14116
14117 desc1 -cn 1 -sd l ;
14118 desc2 -cn 1 -sd l ;
14119
14120 data 1 -do 4033 " " "+33" 15 "8642";
14121 data 2 -do 4033 "*" "+33" 15 "8642";
14122 data 3 "*" "+" 61 "0" "1";
14123
14124 page -all;
14125
14126
14127
14128
14129
14130 /* dv2d8
14131 * This is a simple test
14132 * 9 bit divide to 9 bit all scaled trailing sign
14133 *
14134 */
14135
14136 inst dv2d -nt "simple test";
14137
14138 desc1 -sd t -nn 63;
14139 desc2 -sd t -sf 10 -nn 63;
14140
14141 data 1 "11" 12 "1111" "11" 10 "0" "+";
14142 data 2 "22" 12 "2222" "22" 10 "0" "+";
14143 data 3 61 "0" "2" "+";
14144
14145 page -all;
14146
14147
14148
14149
14150 /* dv2d9
14151 * maximum length divide resulting
14152 * in an overflow
14153 * all modification taken
14154 * 9 bit scaled to 9 bit scaled
14155 */
14156
14157 inst dv2d -nt "truncation fault"
14158 -io 1
14159 -mf1 ar rl 63 idb reg
14160 -mf2 ar rl 63 idb reg;
14161
14162 desc1 -sd l -cn 1;
14163 desc2 -sd l -cn 1;
14164
14165 data 1 -do 4033 " " "+33" 15 "8642";
14166 data 2 -do 4033 "*" "+71" 15 "2357";
14167 data 3 "*" "+" 61 "0" "2";
14168
14169 page -all;
14170
14171
14172
14173
14174 /* dv2d10
14175 * maximum length over two pages
14176 * no faults 9 bit to 4 bit
14177 *
14178 */
14179
14180 inst dv2d -nt "9 bit -> 4 bit"
14181 -io 1
14182 -mf1 ar rl 63
14183 -mf2 ar rl 63 ;
14184
14185 desc1 -sd t ;
14186 desc2 -sd t -tn 4;
14187
14188 data 1 -do 4033 "33" 15 "3333" "+";
14189 data 2 -do 4064 104104 7 104104104104 10426;
14190 data 3 28 000 000000001300;
14191
14192 page -all;
14193
14194
14195
14196
14197 /* dv2d11
14198 * 9 bit to 4 bit all page faults possible
14199 * no reg modification on desc2
14200 *
14201 */
14202
14203 inst dv2d -nt "9bit ->4bit"
14204 -io 2
14205 -mf1 ar rl 63 idb reg
14206 -mf2 ar rl 63 idb ;
14207
14208 desc1 -cn 1 -sd l;
14209 desc2 -cn 1 -sd t -tn 4;
14210
14211 data 1 -do 4033 " " "+" 15 "0000" "22";
14212 data 2 -do 4068 "*" 28 000 104104 1043;
14213 data 3 "*" 28 000 002 002 002 300;
14214
14215 page -all;
14216
14217
14218
14219
14220 /* dv2d12
14221 * 4 bit divideed to 4 bit
14222 * maximum length
14223 * all page faults taken
14224 * no reg modification
14225 */
14226
14227 inst dv2d -nt "4 bit + 4bit"
14228 -io 1
14229 -mf1 ar rl 63 idb
14230 -mf2 ar rl 63 idb;
14231
14232 desc1 -cn 1 -sd t -tn 4;
14233 desc2 -cn 1 -sd t -tn 4;
14234
14235 data 1 -do 4065 " " 28 000 000 000 0013;
14236 data 2 -do 4065 "*" 021021 7 021021021021 0213;
14237 data 3 "*" 021021 7 021021021021 0213;
14238
14239 page -all;
14240
14241
14242
14243
14244 /* dv2d13
14245 * floating point divide
14246 * 9 bit to 9bit
14247 * all page faults taken
14248 *
14249 */
14250
14251 inst dv2d -nt "9bit float divide"
14252 -io 1
14253 -mf1 ar rl 63 reg idb
14254 -mf2 ar rl 63 reg idb;
14255
14256 desc1 -sd f;
14257 desc2 -sd f;
14258
14259 data 1 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 005;
14260 data 2 -do -1 "+" 20 "0" 10 "1" 30 "0" "1" 006;
14261 data 3 "+" "1" 60 "0" 305;
14262
14263 page -all;
14264
14265
14266
14267
14268
14269 /* dv2d14
14270 * 4 bit floating divided to
14271 * 4 bit floating
14272 *
14273 */
14274
14275 inst dv2d -nt "4 float to 4 float"
14276 -io 1
14277 -mf1 ar rl 10 ida
14278 -mf2 ar rl 10 ida;
14279
14280 desc1 -sd f -tn 4;
14281 desc2 -sd f -tn 4;
14282
14283 data 1 -do -1 300 000 000 001 000;
14284 data 2 -do -1 300 000 021 021 000;
14285 data 3 301 021 020 000 375;
14286
14287 page -all;
14288
14289
14290
14291
14292 /* dv2d15
14293 * test 4bit scaled to 9 bit
14294 *
14295 */
14296
14297 inst dv2d -nt "4bit->9bit"
14298 -io 1
14299 -mf1 ar rl 5 idb
14300 -mf2 ar rl 5 idb reg;
14301
14302 desc 1 -tn 4 -sd l;
14303 desc 2 -sd n;
14304
14305 data 1 30102100;
14306 data 2 -do 4 "02222";
14307 data 3 "00002";
14308
14309 page -all;
14310
14311
14312
14313
14314 /* dv2d16
14315 * test 9 floating to 4 floating
14316 *
14317 */
14318
14319 inst dv2d -nt "9float->4 float"
14320 -io 1
14321 -mf1 ar rl 5 idb reg
14322 -mf2 ar rl 7 idb;
14323
14324 desc 1 -sd f;
14325 desc 2 -sd f -tn 4;
14326
14327 data 1 "+" 3 "1" 000;
14328 data 2 300 042 040 00;
14329 data 3 302 000 017 320;
14330
14331 page -all;
14332
14333
14334
14335
14336
14337 /* dv2d17
14338 * 4 float to 9 float
14339 *
14340 */
14341
14342 inst dv2d -nt "4float -> 9float"
14343 -io 1
14344 -mf1 ar rl 7 idb
14345 -mf2 ar rl 7 idb reg;
14346
14347 desc 1 -sd f -tn 4 ;
14348 desc 2 -sd f;
14349
14350 data 1 300 042 040 00;
14351 data 2 "+0" 3 "1" "0" 000;
14352 data 3 "+05000" 375;
14353
14354 page -all;
14355
14356
14357
14358
14359
14360 /* dv2d18
14361 * 9 scaled to 9 float
14362 *
14363 */
14364
14365 inst dv2d -nt "9sacled to 9 float"
14366 -io 2
14367 -mf1 ar rl 5 idb reg
14368 -mf2 ar rl 6 idb reg;
14369
14370 desc1 -sd l;
14371 desc2 -sd f;
14372
14373 data 1 "+" 4 "3";
14374 data 2 "+" "0" 3 "2" 000;
14375 data 3 "+" "0666" 374;
14376
14377 page -all;
14378
14379
14380
14381
14382 /* dv2d19
14383 * 9 float to 9 scaled
14384 *
14385 */
14386
14387 inst dv2d -nt "9 float to 9 scaled"
14388 -io 2
14389 -mf1 ar rl 6 idb reg
14390 -mf2 ar rl 5 idb reg;
14391
14392 desc1 -sd f;
14393 desc2 -sd l;
14394
14395 data 1 "+" "0" 3 "2" 000;
14396 data 2 "+" 4 "3";
14397 data 3 "+0015";
14398
14399 page -all;
14400
14401
14402
14403
14404 /* dv2d20
14405 * 9 scaled to 4 float
14406 *
14407 */
14408
14409 inst dv2d -nt "9scaled->4float"
14410 -io 2
14411
14412 -mf1 ar rl 5 idb reg
14413 -mf2 ar rl 6 idb;
14414
14415 desc 1 -sd l;
14416 desc 2 -sd f -tn 4;
14417
14418 data 1 "+0" 3 "2";
14419 data 2 303063 000;
14420 data 3 301 120 376;
14421
14422 page -all;
14423
14424
14425
14426
14427 /* dv2d21
14428 * 9 float to 4 scaled
14429 *
14430 */
14431
14432 inst dv2d -nt "9float->4scaled"
14433 -io 1
14434 -mf1 ar rl 6 idb reg
14435 -mf2 ar rl 4 idb;
14436
14437 desc 1 -sd f;
14438 desc 2 -sd l -tn 4;
14439
14440 data 1 -do -1 "+0" 3 "2" 000;
14441 data 2 -do -2 303 063;
14442 data 3 300 001;
14443
14444 page -all;
14445
14446
14447
14448
14449 /* dv2d22
14450 * 4scaled to 9 float
14451 *
14452 */
14453
14454 inst dv2d -nt "4scaled-.9float"
14455 -io 1
14456 -mf1 ar rl 4 idb
14457 -mf2 ar rl 6 idb reg;
14458
14459 desc 1 -sd l -tn 4;
14460 desc 2 -sd f;
14461
14462 data 1 -do -1 303063;
14463 data 2 -do -1 "+0" 3 "2" 000;
14464 data 3 "+0" 3 "6" 375;
14465
14466 page -all;
14467
14468
14469
14470
14471 /* dv2d23
14472 * 4 floating to 9 scaled
14473 *
14474 */
14475
14476 inst dv2d -nt "4float->9scaled"
14477 -io 1
14478 -mf1 ar rl 6 idb
14479 -mf2 ar rl 5 idb reg;
14480
14481 desc 1 -sd f -tn 4;
14482 desc 2 -sd n;
14483
14484 data 1 -do -1 303 063 000;
14485 data 2 -do -2 "00" "555";
14486 data 3 4 "0" "1";
14487
14488 page -all;
14489
14490
14491
14492
14493 /* dv2d24
14494 * 4 scaled to 4 float
14495 *
14496 */
14497
14498 inst dv2d -nt "4scaled to 4 float"
14499 -io 1
14500 -mf1 ar rl 4 idb
14501 -mf2 ar rl 6 idb;
14502
14503 desc 1 -tn 4 -sd l;
14504 desc 2 -tn 4 -sd f;
14505
14506 data 1 -do -1 303 063;
14507 data 2 -do -1 302042000;
14508 data 3 300 146 376;
14509
14510 page -all;
14511
14512
14513
14514
14515 /* dv2d25
14516 * 4 floating to 4 scaled
14517 *
14518 */
14519
14520 inst dv2d -nt "4 floating to 4 scaled"
14521 -io 2
14522 -mf1 ar rl 6 idb
14523 -mf2 ar rl 4 idb;
14524
14525 desc 1 -tn 4 -sd f;
14526 desc 2 -tn 4 -sd l;
14527
14528 data 1 -do -1 302042000;
14529 data 2 -do -1 303 063;
14530 data 3 300 001;
14531
14532 page -all;
14533
14534
14535
14536 /* dv2d26
14537 *
14538 */
14539
14540 inst dv2d -nt "Simple divide" -io 3
14541 -mf1 ar reg idb
14542 -mf2 ar reg idb;
14543
14544
14545 desc 1 -sd n -nn 3;
14546 desc 2 -sd n -nn 4;
14547
14548
14549 data 1 -do -1 "060";
14550 data 2 -do -3 "0120";
14551 data 3 "0002";
14552
14553 page -all;
14554
14555
14556 ^L
14557
14558
14559 /* csl 1
14560 *
14561 * Simple test of instruction to see if its functions.
14562 * Move 72 bits cross no boundaries and use no modification.
14563 *
14564 */
14565
14566 inst csl -nt "simple test"
14567 -bo mov ;
14568
14569 desc 1 -ns 72 ;
14570
14571 desc 2 -ns 72 ;
14572
14573 data 1 -do -8 "abcdefgh" ;
14574
14575 data 2 -do -8 "wwwwwwww" ;
14576
14577 data 3 "abcdefgh" ;
14578
14579 page -all ;
14580
14581
14582
14583 /* csl 2
14584 *
14585 * Move two bits one on each side of a page boundary.
14586 * No modification is used.
14587 *
14588 */
14589
14590 inst csl -nt "invert 2 bits across boundary"
14591 -bo inv ;
14592
14593 desc 1 -ns 2 -cp 3 -bp 8 ;
14594
14595 desc 2 -ns 2 -cp 3 -bp 8 ;
14596
14597 data 1 -do 4 000 000 000 001 000 ;
14598
14599 data 2 -do 4 000 000 000 001 000 ;
14600
14601 data 3 000 000 000 000 400 ;
14602
14603 page -all ;
14604
14605
14606
14607
14608 /* csl 3
14609 *
14610 * Test moving data across 3 pages. This requires register
14611 * length modification.
14612 *
14613 */
14614
14615 inst csl -nt "move data across 3 pages"
14616 -bo mov
14617 -io 1
14618 -mf1 rl 36946
14619 -mf2 rl 36946 ;
14620
14621 desc 1 -cp 3 -bp 4 ;
14622
14623 desc 2 -cp 3 -bp 4 ;
14624
14625 data 1 -do -8 000 000 000 006
14626 513 146531265234623214653126 760 ;
14627
14628 data 2 -do -8 000 000 000 037
14629 513 254315456312465146515314 600 ;
14630
14631 data 3 000 000 000 006
14632 513 146531265234623214653126 760 ;
14633
14634 page -all ;
14635
14636
14637
14638 /* csl 4
14639 *
14640 * AND bit strings using ar and reg modification in addition to
14641 * reg length modification. Use data across 3 pages.
14642 *
14643 */
14644
14645 inst csl -nt "arreg mod. AND across 3 pages"
14646 -bo and
14647 -io 2
14648 -mf1 ar reg rl 36946
14649 -mf2 ar reg rl 36946 ;
14650
14651 desc 1 -cp 3 -bp 4 ;
14652
14653 desc 2 -cp 3 -bp 4 ;
14654
14655 data 1 -do -8 000 000 000 006
14656 513 146531265234623214653126 760 ;
14657
14658 data 2 -do -8 000 000 000 037
14659 513 254315456312465146515314 600 ;
14660
14661 data 3 000 000 000 006
14662 513 044111044210421004411104 600 ;
14663
14664 page -all ;
14665
14666
14667
14668
14669 /* csl 5
14670 *
14671 * OR bit strings using indirect modification in addition to register
14672 * length modification. Use data across 3 pages.
14673 *
14674 */
14675
14676 inst csl -nt "id mod. OR across 3 pages"
14677 -bo or
14678 -io 1
14679 -mf1 id rl 36946
14680 -mf2 id rl 36946 ;
14681
14682 desc 1 -cp 3 -bp 4 ;
14683
14684 desc 2 -cp 3 -bp 4 ;
14685
14686 data 1 -do -8 000 000 000 006
14687 513 146531265234623214653126 760 ;
14688
14689 data 2 -do -8 000 000 000 037
14690 513 254315456312465146515314 600 ;
14691
14692 data 3 000 000 000 037
14693 513 356735677336667356757336 760 ;
14694
14695 page -all ;
14696
14697
14698
14699
14700 /* csl 6
14701 *
14702 * NAND bit strings using indirect ar and reg modification and
14703 * reg length modification. Use data across 3 pages.
14704 *
14705 */
14706
14707 inst csl -nt "idb mod. NAND across 3 pages"
14708 -bo nan
14709 -mf1 idb rl 36946
14710 -mf2 idb rl 36946 ;
14711
14712 desc 1 -cp 3 -bp 4 ;
14713
14714 desc 2 -cp 3 -bp 4 ;
14715
14716 data 1 -do -8 000 000 000 006
14717 513 146531265234623214653126 760 ;
14718
14719 data 2 -do -8 000 000 000 037
14720 513 254315456312465146515314 600 ;
14721
14722 data 3 000 000 000 031
14723 513 733666733567356773366673 160 ;
14724
14725 page -all ;
14726
14727
14728
14729
14730 /* csl 7
14731 *
14732 * XOR bit strings using indirect ar and reg modification and direct
14733 * ar reg and register length modification. User data across 3 pages.
14734 *
14735 */
14736
14737 inst csl -nt "idbarreg mod. XOR across 3 pgs"
14738 -bo xor
14739 -io 2
14740 -mf1 idb ar reg rl 36946
14741 -mf2 idb ar reg rl 36946 ;
14742
14743 desc 1 -cp 3 -bp 4 ;
14744
14745 desc 2 -cp 3 -bp 4 ;
14746
14747 data 1 -do -8 000 000 000 006
14748 513 146531265234623214653126 760 ;
14749
14750 data 2 -do -8 000 000 000 037
14751 513 254315456312465146515314 600 ;
14752
14753 data 3 000 000 000 031
14754 513 312624633126246352346232 160 ;
14755
14756 page -all ;
14757
14758 /* csl 8
14759 *
14760 * Test bit string CLEAR operator. Data is moved across 3 pages with
14761 * full address modification. The zero indicator will be set.
14762 *
14763 */
14764
14765 inst csl -nt "CLEAR string. 3 pages moved"
14766 -bo zer
14767 -ir zr
14768 -io 3
14769 -mf1 idb ar reg rl 36946
14770 -mf2 rl 36946 ;
14771
14772 desc 1 -cp 3 -bp 4 ;
14773
14774 desc 2 -cp 3 -bp 4 ;
14775
14776 data 1 -do -8 000 000 000 006
14777 513 146531265234623214653126 760 ;
14778
14779 data 2 -do -8 000 000 000 037
14780 513 254315456312465146515314 600 ;
14781
14782 data 3 000 000 000 000
14783 513 000000000000000000000000
14784 000 ;
14785
14786 page -all ;
14787
14788
14789
14790
14791 /* csl 9
14792 *
14793 * Test truncation with INVERT operator. Use full modification
14794 * and move data across 3 pages.
14795 *
14796 */
14797
14798 inst csl -nt "INVERT truncation is set"
14799 -bo inv
14800 -ir tn
14801 -io 1
14802 -mf1 idb ar reg rl 36946
14803 -mf2 idb ar reg rl 36943 ;
14804
14805 desc 1 -cp 3 -bp 4 ;
14806
14807 desc 2 -cp 3 -bp 4 ;
14808
14809 data 1 -do -8 000 000 000 006
14810 513 146531265234623214653126 760 ;
14811
14812 data 2 -do -8 000 000 000 037
14813 513 254315456312465146515314 700 ;
14814
14815 data 3 000 000 000 031
14816 513 631246512543154563124651 100 ;
14817
14818 page -all ;
14819
14820
14821
14822
14823 /* csl 10
14824 *
14825 * Test the use of bit file with the COINcidence operator. Use full
14826 * modification across 3 pages. The fill bit is zero.
14827 *
14828 */
14829
14830 inst csl -nt "COIN. bit fill0"
14831 -bo nox
14832 -mf1 idb ar reg rl 36943
14833 -mf2 idb ar reg rl 36946 ;
14834
14835 desc 1 -cp 3 -bp 4 ;
14836
14837 desc 2 -cp 3 -bp 4 ;
14838
14839 data 1 -do -8 000 000 000 006
14840 513 146531265234623214653126 760 ;
14841
14842 data 2 -do -8 000 000 000 037
14843 513 254315456312465146515314 600 ;
14844
14845 data 3 000 000 000 006
14846 513 465153144651531425431545 760 ;
14847
14848 page -all ;
14849
14850
14851 ^L
14852
14853
14854 /* csr 1
14855 *
14856 * Simple test of instruction to see if its functions.
14857 * Move 72 bits cross no boundaries and use no modification.
14858 *
14859 */
14860
14861 inst csr -nt "simple test"
14862 -bo mov ;
14863
14864 desc 1 -ns 72 ;
14865
14866 desc 2 -ns 72 ;
14867
14868 data 1 -do -8 "abcdefgh" ;
14869
14870 data 2 -do -8 "wwwwwwww" ;
14871
14872 data 3 "abcdefgh" ;
14873
14874 page -all ;
14875
14876
14877
14878 /* csr 2
14879 *
14880 * Move two bits one on each side of a page boundary.
14881 * No modification is used.
14882 *
14883 */
14884
14885 inst csr -nt "invert 2 bits across boundary"
14886 -bo inv ;
14887
14888 desc 1 -ns 2 -cp 3 -bp 8 ;
14889
14890 desc 2 -ns 2 -cp 3 -bp 8 ;
14891
14892 data 1 -do 4 000 000 000 001 000 ;
14893
14894 data 2 -do 4 000 000 000 001 000 ;
14895
14896 data 3 000 000 000 000 400 ;
14897
14898 page -all ;
14899
14900 /* csr 3
14901 *
14902 * Test moving data across 3 pages. This requires register
14903 * length modification.
14904 *
14905 */
14906
14907 inst csr -nt "move data across 3 pages"
14908 -bo mov
14909 -io 1
14910 -mf1 rl 36946
14911 -mf2 rl 36946 ;
14912
14913 desc 1 -cp 3 -bp 4 ;
14914
14915 desc 2 -cp 3 -bp 4 ;
14916
14917 data 1 -do -8 000 000 000 006
14918 513 146531265234623214653126 760 ;
14919
14920 data 2 -do -8 000 000 000 037
14921 513 254315456312465146515314 600 ;
14922
14923 data 3 000 000 000 006
14924 513 146531265234623214653126 760 ;
14925
14926 page -all ;
14927
14928
14929
14930 /* csr 4
14931 *
14932 * AND bit strings using ar and reg modification in addition to
14933 * reg length modification. Use data across 3 pages.
14934 *
14935 */
14936
14937 inst csr -nt "arreg mod. AND across 3 pages"
14938 -bo and
14939 -io 2
14940 -mf1 ar reg rl 36946
14941
14942 -mf2 ar reg rl 36946 ;
14943 desc 1 -cp 3 -bp 4 ;
14944
14945 desc 2 -cp 3 -bp 4 ;
14946
14947 data 1 -do -8 000 000 000 006
14948 513 146531265234623214653126 760 ;
14949
14950 data 2 -do -8 000 000 000 037
14951 513 254315456312465146515314 600 ;
14952
14953 data 3 000 000 000 006
14954 513 044111044210421004411104 600 ;
14955
14956 page -all ;
14957
14958
14959
14960
14961 /* csr 5
14962 *
14963 * OR bit strings using indirect modification in addition to register
14964 * length modification. Use data across 3 pages.
14965 *
14966 */
14967
14968 inst csr -nt "id mod. OR across 3 pages"
14969 -bo or
14970 -io 1
14971 -mf1 id rl 36946
14972 -mf2 id rl 36946 ;
14973
14974 desc 1 -cp 3 -bp 4 ;
14975
14976 desc 2 -cp 3 -bp 4 ;
14977
14978 data 1 -do -8 000 000 000 006
14979 513 146531265234623214653126 760 ;
14980
14981 data 2 -do -8 000 000 000 037
14982 513 254315456312465146515314 600 ;
14983
14984 data 3 000 000 000 037
14985 513 356735677336667356757336 760 ;
14986
14987 page -all ;
14988
14989
14990
14991
14992 /* csr 6
14993 * NAND bit strings using indirect ar and reg modification and
14994 * reg length modification. Use data across 3 pages.
14995 *
14996 */
14997
14998 inst csr -nt "idb mod. NAND across 3 pages"
14999 -bo nan
15000 -mf1 idb rl 36946
15001 -mf2 idb rl 36946 ;
15002
15003 desc 1 -cp 3 -bp 4 ;
15004
15005 desc 2 -cp 3 -bp 4 ;
15006
15007 data 1 -do -8 000 000 000 006
15008 513 146531265234623214653126 760 ;
15009
15010 data 2 -do -8 000 000 000 037
15011 513 254315456312465146515314 600 ;
15012
15013 data 3 000 000 000 031
15014 513 733666733567356773366673 160 ;
15015
15016 page -all ;
15017
15018
15019
15020
15021 /* csr 7
15022 *
15023
15024 * XOR bit strings using indirect ar and reg modification and direct
15025 * ar reg and register length modification. User data across 3 pages.
15026 *
15027 */
15028
15029 inst csr -nt "idbarreg mod. XOR across 3 pgs"
15030 -bo xor
15031 -io 2
15032 -mf1 idb ar reg rl 36946
15033 -mf2 idb ar reg rl 36946 ;
15034
15035 desc 1 -cp 3 -bp 4 ;
15036
15037 desc 2 -cp 3 -bp 4 ;
15038
15039 data 1 -do -8 000 000 000 006
15040 513 146531265234623214653126 760 ;
15041
15042 data 2 -do -8 000 000 000 037
15043 513 254315456312465146515314 600 ;
15044
15045 data 3 000 000 000 031
15046 513 312624633126246352346232 160 ;
15047
15048 page -all ;
15049
15050 /* csr 8
15051 *
15052 * Test bit string CLEAR operator. Data is moved across 3 pages with
15053 * full address modification. The zero indicator will be set.
15054 *
15055 */
15056
15057 inst csr -nt "CLEAR string. 3 pages moved"
15058 -bo zer
15059 -ir zr
15060 -io 3
15061 -mf1 idb ar reg rl 36946
15062 -mf2 rl 36946 ;
15063
15064 desc 1 -cp 3 -bp 4 ;
15065
15066 desc 2 -cp 3 -bp 4 ;
15067
15068 data 1 -do -8 000 000 000 006
15069 513 146531265234623214653126 760 ;
15070
15071 data 2 -do -8 000 000 000 037
15072 513 254315456312465146515314 600 ;
15073
15074 data 3 000 000 000 000
15075 513 000000000000000000000000
15076 000 ;
15077
15078 page -all ;
15079
15080
15081
15082
15083 /* csr 9
15084 *
15085 * Test truncation with INVERT operator. Use full modification
15086 * and move data across 3 pages.
15087 *
15088 */
15089
15090 inst csr -nt "INVERT truncation is set"
15091 -bo inv
15092 -ir tn
15093 -io 1
15094 -mf1 idb ar reg rl 36946
15095 -mf2 idb ar reg rl 36943 ;
15096
15097 desc 1 -cp 3 -bp 4 ;
15098
15099 desc 2 -cp 3 -bp 7 ;
15100
15101 data 1 -do -8 000 000 000 006
15102 513 146531265234623214653126 760 ;
15103
15104 data 2 -do -8 000 000 000 037
15105 513 254315456312465146515314 700 ;
15106
15107 data 3 000 000 000 035
15108 513 631246512543154563124651 000 ;
15109
15110 page -all ;
15111
15112
15113
15114
15115 /* csr 10
15116 *
15117 * Test the use of bit file with the COINcidence operator. Use full
15118 * modification across 3 pages. The fill bit is zero.
15119 *
15120 */
15121
15122 inst csr -nt "COIN. bit fill0"
15123 -bo nox
15124 -mf1 idb ar reg rl 36943
15125 -mf2 idb ar reg rl 36946 ;
15126
15127 desc 1 -cp 3 -bp 7 ;
15128
15129 desc 2 -cp 3 -bp 4 ;
15130
15131 data 1 -do -8 000 000 000 006
15132 513 146531265234623214653126 760 ;
15133
15134 data 2 -do -8 000 000 000 037
15135 513 254315456312465146515314 600 ;
15136
15137 data 3 000 000 000 002
15138 513 465153144651531425431545 600 ;
15139
15140 page -all ;
15141
15142
15143 ^L
15144
15145 /* sztl1
15146 * Use two maximum length strings 4352 chrs or 39168 bits.
15147 * The zero indicator will be on since a bool code of "zer"
15148 * is used. Take maximum number of page faults. */
15149
15150 inst sztl -nt "Both strings are the same length"
15151 -bo zer
15152 -ir zr
15153 -mf1 idb ar reg rl 39168
15154 -mf2 idb ar reg rl 39168
15155 -io 1;
15156
15157 data 1 -do -10 4352"5";
15158 data 2 -do -30 4352"7";
15159
15160 page -all;
15161
15162
15163
15164 /* sztl2
15165 * Both the truncation and the zero indicators will be turned
15166 * on. The 1st string will begin on the last bit of a page and
15167 * the 2nd string will end on the 1st bit of a page. */
15168
15169 inst sztl -nt "Both strings cross page bounds"
15170 -bo zer
15171 -ir tn zr
15172 -mf1 ar
15173 -mf2 ar;
15174
15175 desc 1 -bp 8 -ns 23;
15176 desc 2 -bp 1 -ns 18;
15177
15178 data 1 -do -1 074 321 64;
15179 data 2 -do -4 023 776 4;
15180
15181 page -all;
15182
15183
15184
15185 /* sztl3
15186 * No indicators are turned on. The zero fill bit is used. Bit strings
15187 * begin in the middle of a byte */
15188
15189 inst sztl -nt "Both strings cross page bounds"
15190 -bo and
15191 -mf1 ida ar
15192 -mf2 idb ar;
15193
15194 desc 1 -bp 4 -ns 70;
15195 desc 2 -bp 5 -ns 80;
15196
15197 data 1 -do -2 "3274" "1958" 0;
15198 data 2 -do -4 "4875" "7329" 326 0;
15199
15200 page -all;
15201
15202
15203
15204 /* sztl4
15205 * The zero indicator will be turned on. Both strings
15206 are of the same length and begin and end on word boundaries. */
15207
15208 inst sztl -nt "only rl modification is used"
15209 -bo and
15210 -ir zr
15211 -mf1 rl 144
15212 -mf2 rl 144
15213 -io 2;
15214
15215 data 1 4123 12075;
15216 data 2 4654 12402;
15217
15218 page -all;
15219
15220
15221
15222 /* sztl5
15223 * Test the axr bool code. Set the zero and truncation
15224 * indicators. Bit strings begin in the middle of a byte
15225 * straddling a page boundary. */
15226
15227 inst sztl -nt "1st string is longer than 2nd"
15228 -bo axr
15229 -ir zr tn
15230 -mf1 ar reg rl 40
15231 -mf2 ar idr rl 31;
15232
15233 desc 1 -bp 5;
15234 desc 2 -bp 5;
15235
15236 data 1 -do -1 074 321 652 403 777;
15237 data 2 -do -3 777 777 676 603;
15238
15239 page -all;
15240
15241
15242
15243 /* sztl6
15244 * Test the axr bool code. No indicators will be set */
15245
15246 inst sztl -nt "Both strings are the same length"
15247
15248 -bo axr
15249 -mf1 rl 7866
15250 -mf2 rl 7866;
15251
15252 data 1 874"321";
15253 data 2 874 "604";
15254
15255 page -all;
15256
15257
15258
15259 /* sztl7
15260 * Test the mov bool code. Use a maximum length string and the
15261 * zero fill bit. Take the maximum number of page faults. */
15262
15263 inst sztl -nt "2nd string is longer than 1st"
15264 -bo mov
15265 -mf1 ida ar rl 36000
15266 -mf2 idb ar reg rl 39168
15267 -io 1;
15268
15269 data 1 -do -40 1000"9874";
15270 data 2 -do -20 1088 "0000";
15271
15272 page -all;
15273
15274
15275
15276 /* sztl8
15277 * Test the move bool code. Set the zero indicator.
15278 * The first string is all zeroes. */
15279
15280 inst sztl -nt "2nd string is longer than 1st"
15281 -bo mov
15282 -ir zr
15283 -mf1 ar id
15284 -mf2 ar
15285 -io 2;
15286
15287 desc 1 -bp 7 -ns 99;
15288 desc 2 -bp 1 -ns 100;
15289
15290 data 1 -do 20 12000;
15291 data 2 -do 3 "abcde123456" 4;
15292
15293 page -all;
15294
15295
15296
15297 /* sztl9
15298 * Test xra bool code. Set zero and truncation indicators.
15299 * Use two short bit strings which cross page boundaries. */
15300
15301 inst sztl -nt "1st string is longer than 2nd"
15302 -bo xra
15303 -ir tn zr
15304 -mf1 ar idr
15305 -mf2 ar idb;
15306
15307 desc 1 -ns 3 -bp 7;
15308 desc 2 -ns 2 -bp 8;
15309
15310 data 1 -do -1 777 4;
15311 data 2 -do -1 235 0;
15312
15313 page -all;
15314
15315
15316
15317 /* sztl10
15318 * Test xra bool code. Use the zero fill bit. No indicators are set */
15319
15320 inst sztl -nt "2nd string is longer than 1st"
15321 -bo xra
15322 -mf1 idr reg
15323 -mf2 idr
15324 -io 2;
15325
15326 desc 1 -ns 400;
15327 desc 2 -ns 500;
15328
15329 data 1 44"9" 72;
15330 data 2 55"8" 36;
15331
15332 page -all;
15333
15334
15335
15336 /* sztl11
15337 * Test ra2 bool code. Set the zero indicator. This means
15338 * that the 2nd bit string must be all zeroes. */
15339
15340 inst sztl -nt "2nd string is longer than 1st"
15341 -bo ra2
15342 -mf1 ar rl 36
15343 -mf2 reg
15344 -ir zr
15345 -io 1;
15346
15347 desc 1 -bp 4;
15348 desc 2 -ns 36;
15349
15350 data 1 -do -1 "abcd" 70;
15351 data 2 4000;
15352
15353 page -all;
15354
15355
15356
15357 /* sztl12
15358 * Test ra2 bool code. No indicators are set. */
15359
15360 inst sztl -nt "Both strings are the same length"
15361 -bo ra2
15362 -mf1 reg
15363 -mf2 ar rl 36
15364 -io 2;
15365
15366 desc 1 -ns 36;
15367 desc 2 -bp 4;
15368
15369 data 1 4000;
15370 data 2 -do -1 "abcd" 70;
15371
15372 page -all;
15373
15374
15375
15376 /* sztl13
15377 * Test xor bool code. Set the zero indicator. Use zero fill. */
15378
15379 inst sztl -nt "2nd string is longer than 1st"
15380 -bo xor
15381 -mf1 id reg
15382 -mf2 ar;
15383
15384 desc 1 -ns 3600;
15385 desc 2 -ns 3672 -bp 7;
15386
15387 data 1 -do -8 1003526;
15388 data 2 -do -63 000 1007254 7000;
15389
15390 page -all;
15391
15392
15393
15394 /* sztl14
15395 * Test xor bool code. use strings of identical length.
15396 * No indicators are set. */
15397
15398 inst sztl -nt "Both strings are the same length"
15399 -bo xor;
15400
15401 desc 1 -ns 900;
15402 desc 2 -ns 900;
15403
15404 data 1 -do -12 10 "abcdefghij";
15405 data 2 -do -4 10 "1234567890";
15406
15407 page -all;
15408
15409
15410
15411 /* sztl15
15412 * Test the or bool code. Set zero and truncation indicators.
15413 * This means that both bit strings must be all zeroes. The
15414 * first bit string must be longer than the second */
15415
15416 inst sztl -nt "1st string is longer than 2nd"
15417 -bo or
15418 -ir zr tn
15419 -mf1 rl 30 idb ar
15420 -mf2 rl 20 ar ida;
15421
15422 data 1 000 000 000 0;
15423 data 2 000 000 0;
15424
15425 page -all;
15426
15427
15428
15429 /* sztl16
15430 * Test the or bool code. No indicators are set.
15431 * The one fill bit is used. */
15432
15433 inst sztl -nt "2nd string is longer than 1st"
15434 -bo or
15435 -fb
15436 -mf1 rl 3000 ar id
15437 -mf2 rl 3900 ar idr
15438 -io 1;
15439
15440 data 1 10007;
15441 data 2 325"x" 3253 ;
15442
15443 page -all;
15444
15445
15446
15447 /* sztl17
15448 * Test the nor bool code. No indicators are set. */
15449
15450 inst sztl -nt "2nd string is longer than 1st"
15451 -bo nor
15452 -mf1 ida ar rl 14
15453 -mf2 id ar rl 28
15454 -io 2;
15455
15456 data 1 342 22;
15457 data 2 234 760 621 0;
15458
15459 page -all;
15460
15461
15462
15463 /* sztl18
15464 * Test the nor bool code. Set the zero indicator.
15465 * Use the one fill bit */
15466
15467 inst sztl -nt "2nd string is longer than 1st"
15468 -ir zr
15469 -bo nor
15470 -fb
15471 -mf1 ar
15472 -mf2 rl 19;
15473
15474 desc 1 -ns 8 -bp 1;
15475
15476 data 1 777;
15477 data 2 326 417 0;
15478
15479 page -all;
15480
15481
15482
15483 /* sztl19
15484 * Test the nox bool code. Set the zero indicator.
15485 * For the indicator to be set no two bits may matc. */
15486
15487 inst sztl -nt "Both strings are the same length"
15488 -ir zr
15489 -bo nox
15490 -mf1 id
15491 -mf2 ida;
15492
15493 desc 1 -ns 54;
15494 desc 2 -ns 54;
15495
15496 data 1 124 235 647 211 000 777;
15497 data 2 -do -4 653 542 130 566 777 000;
15498
15499 page -all;
15500
15501
15502
15503 /* sztl20
15504 * Test the Nox bool code. Only the truncation indicator is set. */
15505
15506 inst sztl -nt "1st string is longer than 2nd"
15507 -bo nox -ir tn
15508 -mf1 ar rl 36000
15509 -mf2 ar id
15510 -io 1;
15511
15512
15513 desc 1 -bp 7;
15514 desc 2 -bp 3 -ns 3600;
15515
15516 data 1 003 1000"axyr";
15517 data 2 024 100"rjqf";
15518
15519 page -all;
15520
15521
15522
15523 /* sztl21
15524 * Test the iv2 bool code. Both the zero and the truncation
15525 * indicators will be set. For the zero indicator to be set
15526 * the 2nd bit string must be all ones. */
15527
15528 inst sztl -nt "1st string is longer than 2nd"
15529 -bo iv2 -ir zr tn
15530 -mf1 rl 64 ar reg
15531 -mf2 ar id
15532 -io 1;
15533
15534 desc 1 -bp 6;
15535 desc 2 -ns 32 -bp 3;
15536
15537 data 1 -do -1 "abpstuv" 4;
15538 data 2 077 777 777 776;
15539
15540 page -all;
15541
15542
15543
15544 /* sztl22
15545 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */
15546
15547 inst sztl -nt "2nd string is longer than 1st"
15548 -bo iv2
15549 -mf1 ar id
15550 -mf2 rl 64 ar reg
15551 -io 1;
15552
15553 desc 1 -ns 32 -bp 3;
15554 desc 2 -bp 6;
15555
15556 data 1 077 777 777 776;
15557 data 2 -do -1 "abpstuv" 4;
15558
15559 page -all;
15560
15561
15562
15563 /* sztl23
15564 * Test the xrx bool code. The zero indicator will be set.
15565 * This can occur only when every bit in the first string is zero
15566 * and every bit in the 2nd string is one. */
15567
15568 inst sztl -nt "Both strings are the same length"
15569 -bo xrx -ir zr
15570 -mf1 reg
15571 -mf2 id;
15572
15573 desc 1 -ns 108;
15574 desc 2 -ns 108;
15575
15576 data 1 -do -4 12000;
15577 data 2 -do 4 12777;
15578
15579 page -all;
15580
15581
15582
15583 /* sztl24
15584 * Test the xrx bool code. No indicators are set. The zero fill bit is used */
15585
15586 inst sztl -nt "2nd string is longer than 1st"
15587 -bo xrx
15588 -mf1 rl 720 idr ar
15589 -mf2 id
15590 -io 2;
15591
15592 desc 2 -ns 1080 -bp 4;
15593
15594 data 1 -do -3 20"ijkl";
15595 data 2 -do 8 054 30"9832";
15596
15597 page -all;
15598
15599
15600
15601 /* sztl25
15602 * Test the inv bool code. Set the zero indicator.
15603 * To set the indicator the first bit string must be
15604 * all ones. */
15605
15606 inst sztl -nt "Both string are the same length"
15607 -ir zr
15608 -bo inv
15609 -mf1 idb ar reg
15610 -mf2 idb ar;
15611
15612 desc 1 -bp 5 -ns 13;
15613 desc 2 -bp 2 -ns 13;
15614
15615 data 1 777 777;
15616 data 2 265 43;
15617
15618 page -all;
15619
15620
15621
15622 /* sztl26
15623 * Test the inv bool code. No indicators are set */
15624
15625 inst sztl -nt "Both strings are the same length"
15626 -bo inv
15627 -mf1 idb ar
15628 -mf2 idb ar reg;
15629
15630 desc 1 -bp 2 -ns 13;
15631 desc 2 -bp 5 -ns 13;
15632
15633 data 1 265 43;
15634 data 2 777 777;
15635
15636 page -all;
15637
15638
15639
15640 /* sztl27
15641 * Test the xxr bool code. This test sets the zero indicator.
15642 * The zero indicator is set only when the 1st string is all ones and
15643 * the second string is all zeroes. The one fill bit is used. */
15644
15645 inst sztl -nt "2nd string is longer than 1st"
15646 -ir zr
15647 -fb
15648 -bo xxr
15649 -io2;
15650
15651 desc 1 -ns 1;
15652 desc 2 -ns 2;
15653
15654 data 1 4;
15655 data 2 0;
15656
15657 page -all;
15658
15659
15660
15661 /* sztl28
15662 * Test the xxr bool code. No indicators are set */
15663
15664 inst sztl -nt "2nd string is longer than 1st"
15665 -bo xxr
15666 -mf1 ar
15667 -mf2 reg rl 59;
15668
15669 desc 1 -ns 43 -bp 5;
15670
15671 data 1 -do -2 "tsrkv" 3;
15672 data 2 -do -4 "mnopqrs";
15673
15674 page -all;
15675
15676
15677
15678 /* sztl29
15679 * Test the nan bool code. The zero and truncation indicators
15680 * are set. For the zero indicator to be set both bit strings
15681 * must be all ones. */
15682
15683 inst sztl -nt "1st string is longer than 2nd"
15684 -bo nan
15685 -ir zr tn
15686 -mf1 rl 39168 ar
15687 -mf2 rl 33000;
15688
15689 data 1 4352777;
15690 data 2 3667777;
15691
15692 page -all;
15693
15694
15695
15696 /* sztl30
15697 * Test the nan bool code. No indicators are set.
15698 * The one fill bit is set. */
15699
15700 inst sztl -nt "2nd string is longer than 1st"
15701 -fb
15702 -bo nan
15703 -mf1 ar
15704 -mf2 ar rl 436;
15705
15706 desc 1 -bp 3 -ns 274;
15707
15708 data 1 7"tack" "rgm";
15709 data 2 12"mike" 023;
15710
15711 page -all;
15712
15713
15714
15715 /* sztl31
15716 * Test the "set" bool code. The zero indicator cannot be set
15717 * when the "set" code is used. This test sets the truncation
15718 indicator. */
15719
15720 inst sztl -nt "1st string is longer than 2nd"
15721 -ir tn
15722 -bo set;
15723
15724 desc 1 -ns 50;
15725 desc 2 -ns 49;
15726
15727 data 1 023 571 725 152 111 243;
15728 data 2 023 571 777 043 121 000;
15729
15730 page -all;
15731
15732
15733
15734 /* sztl32
15735 * Test the "set" bool code. No indicators are set.
15736 * The maximum number of page faults is taken */
15737
15738 inst sztl -nt "2nd string is longer than 1st"
15739 -bo set
15740 -mf1 idb ar reg rl 39159
15741 -mf2 idb ar reg rl 39168
15742 -io 1
15743 -fb;
15744
15745 data 1 4351000;
15746 data 2 4352071;
15747
15748 page -all;
15749
15750 ^L
15751
15752 /* sztr1
15753 * Use two maximum length strings 4352 chrs or 39168 bits.
15754 * The zero indicator will be on since a bool code of "zer"
15755 * is used. Take maximum number of page faults. */
15756
15757 inst sztr -nt "Both strings are the same length"
15758 -bo zer
15759 -ir zr
15760 -mf1 idb ar reg rl 39168
15761 -mf2 idb ar reg rl 39168
15762 -io 1;
15763
15764 data 1 -do -10 4352"5";
15765 data 2 -do -30 4352"7";
15766
15767 page -all;
15768
15769
15770
15771 /* sztr2
15772 * Both the truncation and the zero indicators will be turned
15773 * on. The 1st string will begin on the last bit of a page and
15774 * the 2nd string will end on the 1st bit of a page. */
15775
15776 inst sztr -nt "Both strings cross page bounds"
15777 -bo zer
15778 -ir tn zr
15779 -mf1 ar
15780 -mf2 ar;
15781
15782 desc 1 -bp 8 -ns 23;
15783 desc 2 -bp 1 -ns 18;
15784
15785 data 1 -do -1 074 321 64;
15786 data 2 -do -4 023 776 4;
15787
15788 page -all;
15789
15790
15791
15792 /* sztr3
15793 * No indicators are turned on. The zero fill bit is used. Bit strings
15794 * begin in the middle of a byte */
15795
15796 inst sztr -nt "Both strings cross page bounds"
15797 -bo and
15798 -mf1 ida ar
15799 -mf2 idb ar;
15800
15801 desc 1 -bp 4 -ns 70;
15802 desc 2 -bp 5 -ns 80;
15803
15804 data 1 -do -2 "3274" "1958" 0;
15805 data 2 -do -4 "4875" "7329" 326 0;
15806
15807 page -all;
15808
15809
15810
15811 /* sztr4
15812 * The zero indicator will be turned on. Both strings
15813 are of the same length and begin and end on word boundaries. */
15814
15815 inst sztr -nt "only rl modification is used"
15816 -bo and
15817 -ir zr
15818 -mf1 rl 144
15819 -mf2 rl 144
15820 -io 2;
15821
15822 data 1 4123 12075;
15823 data 2 4654 12402;
15824
15825 page -all;
15826
15827
15828
15829 /* sztr5
15830 * Test the axr bool code. Set the zero and truncation
15831 * indicators. Bit strings begin in the middle of a byte
15832 * straddling a page boundary. */
15833
15834 inst sztr -nt "1st string is longer than 2nd"
15835 -bo axr
15836 -ir tn
15837 -mf1 ar reg rl 40
15838 -mf2 ar idr rl 31;
15839
15840 desc 1 -bp 5;
15841 desc 2 -bp 5;
15842
15843 data 1 -do -1 074 321 652 403 777;
15844 data 2 -do -3 777 777 676 603;
15845
15846 page -all;
15847
15848
15849
15850 /* sztr6
15851 * Test the axr bool code. No indicators will be set */
15852
15853 inst sztr -nt "Both strings are the same length"
15854
15855 -bo axr
15856 -mf1 rl 7866
15857 -mf2 rl 7866;
15858
15859 data 1 874"321";
15860 data 2 874 "604";
15861
15862 page -all;
15863
15864
15865
15866 /* sztr7
15867 * Test the mov bool code. Use a maximum length string and the
15868 * zero fill bit. Take the maximum number of page faults. */
15869
15870 inst sztr -nt "2nd string is longer than 1st"
15871 -bo mov
15872 -mf1 ida ar rl 36000
15873 -mf2 idb ar reg rl 39168
15874 -io 1;
15875
15876 data 1 -do -40 1000"9874";
15877 data 2 -do -20 1088 "0000";
15878
15879 page -all;
15880
15881
15882
15883 /* sztr8
15884 * Test the move bool code. Set the zero indicator.
15885 * The first string is all zeroes. */
15886
15887 inst sztr -nt "2nd string is longer than 1st"
15888 -bo mov
15889 -ir zr
15890 -mf1 ar id
15891 -mf2 ar
15892 -io 2;
15893
15894 desc 1 -bp 7 -ns 99;
15895 desc 2 -bp 1 -ns 100;
15896
15897 data 1 -do 20 12000;
15898 data 2 -do 3 "abcde123456" 4;
15899
15900 page -all;
15901
15902
15903
15904 /* sztr9
15905 * Test xra bool code. Set zero and truncation indicators.
15906 * Use two short bit strings which cross page boundaries. */
15907
15908 inst sztr -nt "1st string is longer than 2nd"
15909 -bo xra
15910 -ir tn zr
15911 -mf1 ar idr
15912 -mf2 ar idb;
15913
15914 desc 1 -ns 3 -bp 7;
15915 desc 2 -ns 2 -bp 8;
15916
15917 data 1 -do -1 777 4;
15918 data 2 -do -1 235 0;
15919
15920 page -all;
15921
15922
15923
15924 /* sztr10
15925 * Test xra bool code. Use the zero fill bit. No indicators are set */
15926
15927 inst sztr -nt "2nd string is longer than 1st"
15928 -bo xra
15929 -mf1 idr reg
15930 -mf2 idr
15931 -io 2;
15932
15933 desc 1 -ns 400;
15934 desc 2 -ns 500;
15935
15936 data 1 44"9" 72;
15937 data 2 55"8" 36;
15938
15939 page -all;
15940
15941
15942
15943 /* sztr11
15944 * Test ra2 bool code. Set the zero indicator. This means
15945 * that the 2nd bit string must be all zeroes. */
15946
15947 inst sztr -nt "2nd string is longer than 1st"
15948 -bo ra2
15949 -mf1 ar rl 36
15950 -mf2 reg
15951 -ir zr
15952 -io 1;
15953
15954 desc 1 -bp 4;
15955 desc 2 -ns 36;
15956
15957 data 1 -do -1 "abcd" 70;
15958 data 2 4000;
15959
15960 page -all;
15961
15962
15963
15964 /* sztr12
15965 * Test ra2 bool code. No indicators are set. */
15966
15967 inst sztr -nt "Both strings are the same length"
15968 -bo ra2
15969 -mf1 reg
15970 -mf2 ar rl 36
15971 -io 2;
15972
15973 desc 1 -ns 36;
15974 desc 2 -bp 4;
15975
15976 data 1 4000;
15977 data 2 -do -1 "abcd" 70;
15978
15979 page -all;
15980
15981
15982
15983 /* sztr13
15984 * Test xor bool code. Set the zero indicator. Use zero fill. */
15985
15986 inst sztr -nt "2nd string is longer than 1st"
15987 -bo xor
15988 -mf1 id reg
15989 -mf2 ar;
15990
15991 desc 1 -ns 3600;
15992 desc 2 -ns 3672 -bp 7;
15993
15994 data 1 -do -8 1003526;
15995 data 2 -do -63 000 1007254 7000;
15996
15997 page -all;
15998
15999
16000
16001 /* sztr14
16002 * Test xor bool code. use strings of identical length.
16003 * No indicators are set. */
16004
16005 inst sztr -nt "Both strings are the same length"
16006 -bo xor;
16007
16008 desc 1 -ns 900;
16009 desc 2 -ns 900;
16010
16011 data 1 -do -12 10 "abcdefghij";
16012 data 2 -do -4 10 "1234567890";
16013
16014 page -all;
16015
16016
16017
16018 /* sztr15
16019 * Test the or bool code. Set zero and truncation indicators.
16020 * This means that both bit strings must be all zeroes. The
16021 * first bit string must be longer than the second */
16022
16023 inst sztr -nt "1st string is longer than 2nd"
16024 -bo or
16025 -ir zr tn
16026 -mf1 rl 30 idb ar
16027 -mf2 rl 20 ar ida;
16028
16029 data 1 000 000 000 0;
16030 data 2 000 000 0;
16031
16032 page -all;
16033
16034
16035
16036 /* sztr16
16037 * Test the or bool code. No indicators are set.
16038 * The one fill bit is used. */
16039
16040 inst sztr -nt "2nd string is longer than 1st"
16041 -bo or
16042 -fb
16043 -mf1 rl 3000 ar id
16044 -mf2 rl 3900 ar idr
16045 -io 1;
16046
16047 data 1 10007;
16048 data 2 325"x" 3253 ;
16049
16050 page -all;
16051
16052
16053
16054 /* sztr17
16055 * Test the nor bool code. No indicators are set. */
16056
16057 inst sztr -nt "2nd string is longer than 1st"
16058 -bo nor
16059 -mf1 ida ar rl 14
16060 -mf2 id ar rl 28
16061 -io 2;
16062
16063 data 1 342 22;
16064 data 2 234 760 621 0;
16065
16066 page -all;
16067
16068
16069
16070 /* sztr18
16071 * Test the nor bool code. Set the zero indicator.
16072 * Use the one fill bit */
16073
16074 inst sztr -nt "2nd string is longer than 1st"
16075 -ir zr
16076 -bo nor
16077 -fb
16078 -mf1 ar
16079 -mf2 rl 19;
16080
16081 desc 1 -ns 8 -bp 1;
16082
16083 data 1 777;
16084 data 2 326 417 0;
16085
16086 page -all;
16087
16088
16089
16090 /* sztr19
16091 * Test the nox bool code. Set the zero indicator.
16092 * For the indicator to be set no two bits may matc. */
16093
16094 inst sztr -nt "Both strings are the same length"
16095 -ir zr
16096 -bo nox
16097 -mf1 id
16098 -mf2 ida;
16099
16100 desc 1 -ns 54;
16101 desc 2 -ns 54;
16102
16103 data 1 124 235 647 211 000 777;
16104 data 2 -do -4 653 542 130 566 777 000;
16105
16106 page -all;
16107
16108
16109
16110 /* sztr20
16111 * Test the Nox bool code. Only the truncation indicator is set. */
16112
16113 inst sztr -nt "1st string is longer than 2nd"
16114 -bo nox -ir tn
16115 -mf1 ar rl 36000
16116 -mf2 ar id
16117 -io 1;
16118
16119
16120 desc 1 -bp 7;
16121 desc 2 -bp 3 -ns 3600;
16122
16123 data 1 003 1000"axyr";
16124 data 2 024 100"rjqf";
16125
16126 page -all;
16127
16128
16129
16130 /* sztr21
16131 * Test the iv2 bool code. Both the zero and the truncation
16132 * indicators will be set. For the zero indicator to be set
16133 * the 2nd bit string must be all ones. */
16134
16135 inst sztr -nt "1st string is longer than 2nd"
16136 -bo iv2 -ir zr tn
16137 -mf1 rl 64 ar reg
16138 -mf2 ar id
16139 -io 1;
16140
16141 desc 1 -bp 6;
16142 desc 2 -ns 32 -bp 3;
16143
16144 data 1 -do -1 "abpstuv" 4;
16145 data 2 077 777 777 776;
16146
16147 page -all;
16148
16149
16150
16151 /* sztr22
16152 * Test the iv2 bool code. Use the zero fill bit. No indicators are set. */
16153
16154 inst sztr -nt "2nd string is longer than 1st"
16155 -bo iv2
16156 -mf1 ar id
16157 -mf2 rl 64 ar reg
16158 -io 1;
16159
16160 desc 1 -ns 32 -bp 3;
16161 desc 2 -bp 6;
16162
16163 data 1 077 777 777 776;
16164 data 2 -do -1 "abpstuv" 4;
16165
16166 page -all;
16167
16168
16169
16170 /* sztr23
16171 * Test the xrx bool code. The zero indicator will be set.
16172 * This can occur only when every bit in the first string is zero
16173 * and every bit in the 2nd string is one. */
16174
16175 inst sztr -nt "Both strings are the same length"
16176 -bo xrx -ir zr
16177 -mf1 reg
16178 -mf2 id;
16179
16180 desc 1 -ns 108;
16181 desc 2 -ns 108;
16182
16183 data 1 -do -4 12000;
16184 data 2 -do 4 12777;
16185
16186 page -all;
16187
16188
16189
16190 /* sztr24
16191 * Test the xrx bool code. No indicators are set. The zero fill bit is used */
16192
16193 inst sztr -nt "2nd string is longer than 1st"
16194 -bo xrx
16195 -mf1 rl 720 idr ar
16196 -mf2 id
16197 -io 2;
16198
16199 desc 2 -ns 1080 -bp 4;
16200
16201 data 1 -do -3 20"ijkl";
16202 data 2 -do 8 054 30"9832";
16203
16204 page -all;
16205
16206
16207
16208 /* sztr25
16209 * Test the inv bool code. Set the zero indicator.
16210 * To set the indicator the first bit string must be
16211 * all ones. */
16212
16213 inst sztr -nt "Both string are the same length"
16214 -ir zr
16215 -bo inv
16216 -mf1 idb ar reg
16217 -mf2 idb ar;
16218
16219 desc 1 -bp 5 -ns 13;
16220 desc 2 -bp 2 -ns 13;
16221
16222 data 1 777 777;
16223 data 2 265 43;
16224
16225 page -all;
16226
16227
16228
16229 /* sztr26
16230 * Test the inv bool code. No indicators are set */
16231
16232 inst sztr -nt "Both strings are the same length"
16233 -bo inv
16234 -mf1 idb ar
16235 -mf2 idb ar reg;
16236
16237 desc 1 -bp 2 -ns 13;
16238 desc 2 -bp 5 -ns 13;
16239
16240 data 1 265 43;
16241 data 2 777 777;
16242
16243 page -all;
16244
16245
16246
16247 /* sztr27
16248 * Test the xxr bool code. This test sets the zero indicator.
16249 * The zero indicator is set only when the 1st string is all ones and
16250 * the second string is all zeroes. The one fill bit is used. */
16251
16252 inst sztr -nt "2nd string is longer than 1st"
16253 -ir zr
16254 -fb
16255 -bo xxr
16256 -io2;
16257
16258 desc 1 -ns 1;
16259 desc 2 -ns 2;
16260
16261 data 1 4;
16262 data 2 0;
16263
16264 page -all;
16265
16266
16267
16268 /* sztr28
16269 * Test the xxr bool code. No indicators are set */
16270
16271 inst sztr -nt "2nd string is longer than 1st"
16272 -bo xxr
16273 -mf1 ar
16274 -mf2 reg rl 59;
16275
16276 desc 1 -ns 43 -bp 5;
16277
16278 data 1 -do -2 "tsrkv" 3;
16279 data 2 -do -4 "mnopqrs";
16280
16281 page -all;
16282
16283
16284
16285 /* sztr29
16286 * Test the nan bool code. The zero and truncation indicators
16287 * are set. For the zero indicator to be set both bit strings
16288 * must be all ones. */
16289
16290 inst sztr -nt "1st string is longer than 2nd"
16291 -bo nan
16292 -ir zr tn
16293 -mf1 rl 39168 ar
16294 -mf2 rl 33000;
16295
16296 data 1 4352777;
16297 data 2 3667777;
16298
16299 page -all;
16300
16301
16302
16303 /* sztr30
16304 * Test the nan bool code. No indicators are set.
16305 * The one fill bit is set. */
16306
16307 inst sztr -nt "2nd string is longer than 1st"
16308 -fb
16309 -bo nan
16310 -mf1 ar
16311 -mf2 ar rl 436;
16312
16313 desc 1 -bp 3 -ns 274;
16314
16315 data 1 7"tack" "rgm";
16316 data 2 12"mike" 023;
16317
16318 page -all;
16319
16320
16321
16322 /* sztr31
16323 * Test the "set" bool code. The zero indicator cannot be set
16324 * when the "set" code is used. This test sets the truncation
16325 indicator. */
16326
16327 inst sztr -nt "1st string is longer than 2nd"
16328 -ir tn
16329 -bo set;
16330
16331 desc 1 -ns 50;
16332 desc 2 -ns 49;
16333
16334 data 1 023 571 725 152 111 243;
16335 data 2 023 571 777 043 121 000;
16336
16337 page -all;
16338
16339
16340
16341 /* sztr32
16342 * Test the "set" bool code. No indicators are set.
16343 * The maximum number of page faults is taken */
16344
16345 inst sztr -nt "2nd string is longer than 1st"
16346 -bo set
16347 -mf1 idb ar reg rl 39159
16348 -mf2 idb ar reg rl 39168
16349 -io 1
16350 -fb;
16351
16352 data 1 4351000;
16353 data 2 4352071;
16354
16355 page -all;
16356
16357 ^L
16358
16359 /* cmpb1
16360 * Use two maximum length strings 4352 chrs or 39168 bits
16361 * with the first string less than the 2nd. Take the maximum
16362 * number of page faults. */
16363
16364 inst cmpb
16365 -nt "both strings cross page bounds"
16366 -mf1 idb ar reg rl 39168
16367 -mf2 idb ar reg rl 39168
16368 -io 1;
16369
16370 data 1 -do -10 4352"5";
16371 data 2 -do -30 4352"7";
16372
16373 page -all;
16374
16375
16376
16377
16378 /* cmpb2
16379 * The first string begins on the last bit of a page and the
16380 * 2nd string ends on the first bit of a page. The first string is
16381 * greater than the 2nd. */
16382
16383 inst cmpb -nt "both strings cross page bounds"
16384 -ir cr
16385 -mf1 ar
16386 -mf2 ar;
16387
16388 desc 1 -bp 8 -ns 23;
16389 desc 2 -bp 1 -ns 18;
16390
16391 data 1 -do -1 074 321 64;
16392 data 2 -do -4 023 776 4;
16393
16394 page -all;
16395
16396
16397
16398
16399 /* cmpb3
16400 * Both strings begin in the middle of a byte and span page boundaries.
16401 * The first string is greater than the 2nd. */
16402
16403 inst cmpb -nt "both strings cross page bounds"
16404 -ir cr
16405 -mf1 ida ar
16406 -mf2 idb ar;
16407
16408 desc 1 -bp 4 -ns 70;
16409 desc 2 -bp 5 -ns 80;
16410
16411 data 1 -do -2 "3274" "1958" 0;
16412 data 2 -do -4 "4875" "7329" 326 0;
16413
16414 page -all;
16415
16416
16417
16418
16419 /* cmpb4
16420 * Both strings are 4 words in length and neither
16421 string spans a page boundary. The first string is
16422 * less than the 2nd. */
16423
16424 inst cmpb -nt "both strings are the same length"
16425 -mf1 rl 144
16426 -mf2 rl 144
16427 -io 2;
16428
16429 data 1 4123 12075;
16430 data 2 4654 12402;
16431
16432 page -all;
16433
16434
16435
16436
16437 /* cmpb5
16438 * Both strings begin in the middle of a byte and span a
16439 * page boundary. The first string is less than the 2nd. */
16440
16441 inst cmpb -nt "2nd string has indirect desc"
16442 -mf1 ar reg rl 40
16443 -mf2 ar idr rl 31;
16444
16445 desc 1 -bp 5;
16446 desc 2 -bp 5;
16447
16448 data 1 -do -1 074 321 652 403 777;
16449 data 2 -do -3 777 777 676 603;
16450
16451 page -all;
16452
16453
16454
16455
16456 /* cmpb6
16457 * Both strings are 874 bytes in length and the first string
16458 * is less than the 2nd. Only 3 page faults occur. */
16459
16460 inst cmpb -nt "both strings are the same length"
16461
16462 -mf1 rl 7866
16463 -mf2 rl 7866;
16464
16465 data 1 874"321";
16466 data 2 874 "604";
16467
16468 page -all;
16469
16470
16471
16472
16473 /* cmpb7
16474 * The first string is l000 words in length and the
16475 * 2nd string is 1088 words of all zeroes. The first
16476 * string is greater than the 2nd. */
16477
16478 inst cmpb -nt "both strings cross page bounds"
16479 -ir cr
16480 -mf1 ida ar rl 36000
16481 -mf2 idb ar reg rl 39168
16482 -io 1;
16483
16484 data 1 -do -40 1000"9874";
16485 data 2 -do -20 1088 "0000";
16486
16487 page -all;
16488
16489
16490
16491
16492 /* cmpb8
16493 * Both strings begin in the middle of a byte and
16494 * neither string spans a page boundary. The first string is less
16495 * than the 2nd. */
16496
16497 inst cmpb -nt "2nd string is longer than 1st"
16498 -mf1 ar id
16499 -mf2 ar
16500 -io 2;
16501
16502 desc 1 -bp 7 -ns 99;
16503 desc 2 -bp 1 -ns 100;
16504
16505 data 1 -do 20 12000;
16506 data 2 -do 3 "abcde123456" 4;
16507
16508 page -all;
16509
16510
16511
16512
16513 /* cmpb9
16514 * Both strings begin in the middle of a byte and span pages.
16515 * The first string is all ones and is greater than the 2nd. */
16516
16517 inst cmpb -nt "1st string is longer than 2nd"
16518 -ir cr
16519 -mf1 ar idr
16520 -mf2 ar idb;
16521
16522 desc 1 -ns 3 -bp 7;
16523 desc 2 -ns 2 -bp 8;
16524
16525 data 1 -do -1 777 4;
16526 data 2 -do -1 235 0;
16527
16528 page -all;
16529
16530
16531
16532
16533 /* cmpb10
16534 * The first string is greater than the 2nd although it is
16535 shorter in length. */
16536
16537 inst cmpb -nt "2nd string is longer than 1st"
16538 -ir cr
16539 -mf1 idr reg
16540 -mf2 idr
16541 -io 2;
16542
16543 desc 1 -ns 400;
16544 desc 2 -ns 500;
16545
16546 data 1 44"9" 72;
16547 data 2 55"8" 36;
16548
16549 page -all;
16550
16551
16552
16553
16554 /* cmpb11
16555 * Both strings are 1 word in length and only the 1st
16556 * string spans a page boundary. The first string is greater
16557 * than the 2nd. */
16558
16559 inst cmpb -nt "2nd string is longer than 1st"
16560 -mf1 ar rl 36
16561 -mf2 reg
16562 -ir cr
16563 -io 1;
16564
16565 desc 1 -bp 4;
16566 desc 2 -ns 36;
16567
16568 data 1 -do -1 "abcd" 70;
16569 data 2 4000;
16570
16571 page -all;
16572
16573
16574
16575
16576 /* cmpb12
16577 * Both strings are 1 word in length and only
16578 * the 2nd string spans a page boundary. The 2nd string
16579 * is greater than the first. */
16580
16581 inst cmpb -nt "both strings are the same length"
16582 -mf1 reg
16583 -mf2 ar rl 36
16584 -io 2;
16585
16586 desc 1 -ns 36;
16587 desc 2 -bp 4;
16588
16589 data 1 4000;
16590 data 2 -do -1 "abcd" 70;
16591
16592 page -all;
16593
16594
16595
16596
16597 /* cmpb13
16598 * The first string is 100 words in length and the 2nd
16599 string is 102 words long. Both strings span a page and the
16600 first string is greater than the 2nd. */
16601
16602
16603 inst cmpb -nt "2nd string is longer than 1st"
16604 -ir cr
16605 -mf1 id reg
16606 -mf2 ar;
16607
16608 desc 1 -ns 3600;
16609 desc 2 -ns 3672 -bp 7;
16610
16611 data 1 -do -8 1003526;
16612 data 2 -do -63 000 1007254 7000;
16613
16614 page -all;
16615
16616
16617
16618
16619 /* cmpb14
16620 * Both strings are 100 bytes long and span a page. The
16621 first string is larger than the 2nd. */
16622
16623 inst cmpb -nt "both strings are the same length"
16624 -ir cr;
16625
16626 desc 1 -ns 900;
16627 desc 2 -ns 900;
16628
16629 data 1 -do -12 10 "abcdefghij";
16630 data 2 -do -4 10 "1234567890";
16631
16632 page -all;
16633
16634
16635
16636
16637 /* cmpb15
16638 * Both strings are all zeroes and thus they are equal. */
16639
16640 inst cmpb -nt "1st string is longer than 2nd"
16641 -ir cr zr
16642 -mf1 rl 30 idb ar
16643 -mf2 rl 20 ar ida;
16644
16645 data 1 000 000 000 0;
16646 data 2 000 000 0;
16647
16648 page -all;
16649
16650
16651
16652
16653
16654 /* cmpb16
16655 * The first string is shorter than the 2nd and the
16656 one fill bit is used. The first string is all ones and
16657 is greater than the 2nd. */
16658
16659 inst cmpb -nt "2nds string is longer than 1st"
16660 -ir cr
16661 -fb
16662 -mf1 rl 3000 ar id
16663 -mf2 rl 3900 ar idr
16664 -io 1;
16665
16666 data 1 10007;
16667 data 2 325"x" 3253 ;
16668
16669 page -all;
16670
16671
16672
16673
16674
16675 /* cmpb17
16676 * The first string is greater than the 2nd although it is
16677 shorter in length. */
16678
16679 inst cmpb -nt "2nd string is longer than 1st"
16680 -ir cr
16681 -mf1 ida ar rl 14
16682 -mf2 id ar rl 28
16683 -io 2;
16684
16685 data 1 342 22;
16686 data 2 234 760 621 0;
16687
16688 page -all;
16689
16690
16691
16692
16693
16694 /* cmpb18
16695 * The fill bit is used to make the first string all ones.
16696 * The first string is greater than the second. */
16697
16698 inst cmpb -nt "2nd string is longer than 1st"
16699 -ir cr
16700 -fb
16701 -mf1 ar
16702 -mf2 rl 19;
16703
16704 desc 1 -ns 8 -bp 1;
16705
16706 data 1 777;
16707 data 2 326 417 0;
16708
16709 page -all;
16710
16711
16712
16713
16714
16715 /* cmpb19
16716 * Both strings are 6 bytes in length and the 2nd string
16717 * spans a page boundary. The first string is less than the 2nd. */
16718
16719 inst cmpb -nt "both strings are the same length"
16720 -mf1 id
16721 -mf2 ida;
16722
16723 desc 1 -ns 54;
16724 desc 2 -ns 54;
16725
16726 data 1 124 235 647 211 000 777;
16727 data 2 -do -4 653 542 130 566 777 000;
16728
16729 page -all;
16730
16731
16732
16733
16734
16735 /* cmpb20
16736 * Both strings begin in the middle of a byte. The first
16737 * string is 1000 words long while the 2nd string is 100
16738 * words long. The first string is greater than the 2nd. */
16739
16740 inst cmpb -nt "1st string is longer than 2nd"
16741 -ir cr
16742 -mf1 ar rl 36000
16743 -mf2 ar id
16744 -io 1;
16745
16746
16747 desc 1 -bp 7;
16748 desc 2 -bp 3 -ns 3600;
16749
16750 data 1 003 1000"axyr";
16751 data 2 024 100"rjqf";
16752
16753 page -all;
16754
16755
16756
16757
16758
16759 /* cmpb21
16760 * Both strings begin in the middle of a byte and only the
16761 first string crosses a page boundary. The 2nd string is all
16762 ones and is greater than the first. */
16763
16764 inst cmpb -nt "1st string is longer than 2nd"
16765 -mf1 rl 64 ar reg
16766 -mf2 ar id
16767 -io 1;
16768
16769 desc 1 -bp 6;
16770 desc 2 -ns 32 -bp 3;
16771
16772 data 1 -do -1 "abpstuv" 4;
16773 data 2 077 777 777 776;
16774
16775 page -all;
16776
16777
16778
16779
16780
16781 /* cmpb22
16782 * Both strings begin in the middle of a byte and only the 2nd
16783 string crosses a page boundary. The first string is all ones and
16784 is greater than the 2nd string. */
16785
16786 inst cmpb -nt "2nd string is longer than 1st"
16787 -ir cr
16788 -mf1 ar id
16789 -mf2 rl 64 ar reg
16790 -io 1;
16791
16792 desc 1 -ns 32 -bp 3;
16793 desc 2 -bp 6;
16794
16795 data 1 077 777 777 776;
16796 data 2 -do -1 "abpstuv" 4;
16797
16798 page -all;
16799
16800
16801
16802
16803
16804 /* cmpb23
16805 * Both strings are three words in length and the 1st string
16806 crosses a page boundary. The 2nd string is greater than the
16807 first. */
16808
16809 inst cmpb -nt "both strings are the same length"
16810 -mf1 reg
16811 -mf2 id;
16812
16813 desc 1 -ns 108;
16814 desc 2 -ns 108;
16815
16816 data 1 -do -4 12000;
16817 data 2 -do 4 12777;
16818
16819 page -all;
16820
16821
16822
16823
16824
16825 /* cmpb24
16826 * The 1st string is 20 words in length and crosses a page
16827 boundary. The 2nd string is 30 words in length and is greater
16828 than the 1st. */
16829
16830 inst cmpb -nt "2nd string is longer than 1st"
16831 -mf1 rl 720 idr ar
16832 -mf2 id
16833 -io 2;
16834
16835 desc 2 -ns 1080 -bp 4;
16836
16837 data 1 -do -3 20"ijkl";
16838 data 2 -do 8 054 30"9832";
16839
16840 page -all;
16841
16842
16843
16844
16845
16846 /* cmpb25
16847 * Both strings begin in the middle of a byte. The first string is
16848 all ones and is greater than the 2nd. */
16849
16850 inst cmpb -nt "both strings are the same length"
16851 -ir cr
16852 -mf1 idb ar reg
16853 -mf2 idb ar;
16854
16855 desc 1 -bp 5 -ns 13;
16856 desc 2 -bp 2 -ns 13;
16857
16858 data 1 777 777;
16859 data 2 265 43;
16860
16861 page -all;
16862
16863
16864
16865
16866
16867 /* cmpb26
16868 * Both strings begin in the middle of a byte. The 2nd string
16869 is all ones and is greater than the first. */
16870
16871 inst cmpb -nt "both strings are the same length"
16872 -mf1 idb ar
16873 -mf2 idb ar reg;
16874
16875 desc 1 -bp 2 -ns 13;
16876 desc 2 -bp 5 -ns 13;
16877
16878 data 1 265 43;
16879 data 2 777 777;
16880
16881 page -all;
16882
16883
16884
16885
16886
16887 /* cmpb27
16888 * The first string is one bit in length and the 2nd string
16889 is two bits long. The one fill bit is used and the first string
16890 is greater. */
16891
16892 inst cmpb -nt "2nd string is longer than 1st"
16893 -ir cr
16894 -fb
16895 -io2;
16896
16897 desc 1 -ns 1;
16898 desc 2 -ns 2;
16899
16900 data 1 4;
16901 data 2 0;
16902
16903 page -all;
16904
16905
16906
16907
16908
16909 /* cmpb28
16910 * The 1st string begins in the middle of a byte and
16911 both strings cross page boundaries. The first string is greater
16912 than the 2nd. */
16913
16914 inst cmpb -nt "2nd string is longer than 1st"
16915 -ir cr
16916 -mf1 ar
16917 -mf2 reg rl 59;
16918
16919 desc 1 -ns 43 -bp 5;
16920
16921 data 1 -do -2 "tsrkv" 3;
16922 data 2 -do -4 "mnopqrs";
16923
16924 page -all;
16925
16926
16927
16928
16929
16930 /* cmpb29
16931 * Both strings consist of all ones but the first string
16932 is longer and the zero fill bit is used. Therefore the
16933 first string is greater than the 2nd. */
16934
16935 inst cmpb -nt "1st string is longer than 2nd"
16936 -ir cr
16937 -mf1 rl 39168 ar
16938 -mf2 rl 33000;
16939
16940 data 1 4352777;
16941 data 2 3667777;
16942
16943 page -all;
16944
16945
16946
16947
16948
16949 /* cmpb30
16950 * The first string starts in the middle of a byte and neither
16951 string crosses a page boundary. The first string is greater than the
16952 second. */
16953
16954 inst cmpb -nt "2nd string is longer than 1st"
16955 -ir cr
16956 -fb
16957 -mf1 ar
16958 -mf2 ar rl 436;
16959
16960 desc 1 -bp 3 -ns 274;
16961
16962 data 1 7"tack" "rgm";
16963 data 2 12"mike" 023;
16964
16965 page -all;
16966
16967
16968
16969
16970
16971 /* cmpb31
16972 * Neither string crosses a page boundary and the first
16973 string is less than the 2nd. */
16974
16975 inst cmpb -nt "1st string is longer than 2nd";
16976
16977 desc 1 -ns 50;
16978 desc 2 -ns 49;
16979
16980 data 1 023 571 725 152 111 243;
16981 data 2 023 571 777 043 121 000;
16982
16983 page -all;
16984
16985
16986
16987
16988
16989 /* cmpb32
16990 * The first string consists of all zeroes and neither
16991 string crosses a page boundary. The second string is both
16992 longer and greater. */
16993
16994 inst cmpb -nt "2nd string is longer than 1st"
16995 -mf1 idb ar reg rl 39159
16996 -mf2 idb ar reg rl 39168
16997 -io 1
16998 -fb;
16999
17000 data 1 4351000;
17001 data 2 4352071;
17002
17003 page -all;
17004
17005 ^L
17006
17007
17008 /* dtb1
17009 * Indirect descriptors are used for both operands.
17010 * Address register modification is used for both operands.
17011 * The decimal operand is split across a page boundary.
17012 */
17013
17014 inst dtb
17015 -nt "9-bit unsigned decimal -> binary"
17016 -mf2 idb ar reg rl 1
17017 -mf1 idb ar reg rl 2
17018 -io 1;
17019
17020 desc 1 -sd n;
17021
17022 data 2 034;
17023 data 1 -do -1 "28";
17024
17025 page -all;
17026
17027
17028
17029 /* dtb2
17030 * No indirect descriptors are used.
17031 * Address register modification is used for both operands.
17032 * Both operands cross a page boundary.
17033 */
17034
17035 inst dtb
17036 -nt "9-bit leading sign -> binary"
17037 -mf2 ar
17038 -mf1 ar;
17039
17040 desc 2 -nn 2;
17041 desc 1 -nn 6 -sd l;
17042
17043 data 2 -do -1 127 531;
17044 data 1 -do -3 "+44889";
17045
17046 page -all;
17047
17048
17049
17050 /* dtb3
17051 * Indirect descriptors are used by both operands.
17052 * Address register modification is used for both operands.
17053 * Both operands cross a page boundary.
17054 */
17055
17056 inst dtb
17057 -nt "9-bit trailing sign -> binary"
17058 -mf2 ida ar
17059 -mf1 idb ar;
17060
17061 desc 2 -nn 3;
17062 desc 1 -nn 9 -sd t;
17063
17064 data 2 -do -2 211 664 372;
17065 data 1 -do -4 "36137210+";
17066
17067 page -all;
17068
17069
17070
17071 /* dtb4
17072 * No indirect descriptors are used.
17073 * No address register modification is used.
17074 * The decimal operand is split across a page boundary.
17075 * Register length modification is used by both operands.
17076 */
17077
17078 inst dtb
17079 -nt "9-bit unsigned decimal -> binary"
17080 -mf2 rl 4
17081 -mf1 rl 10;
17082
17083 desc 1 -sd n;
17084
17085 data 2 111 222 333 444;
17086 data 1 -do -8 "9836279588";
17087
17088 page -all;
17089
17090
17091
17092 /* dtb5
17093 * Address register modification is used by both operands.
17094 * An indirect descriptor is used by the decimal operand.
17095 * Simple register modification is used by the binary operand.
17096 * Register length modification is used by both operands.
17097 */
17098
17099 inst dtb
17100 -nt "9-bit leading sign -> bim"nary"
17101 -mf2 ar reg rl 5
17102 -mf1 ar idr rl 15;
17103
17104 desc 1 -sd l;
17105
17106 data 2 -do -4 333 444 333 222 111;
17107 data 1 -do -12 "+15088814466121";
17108
17109 page -all;
17110
17111
17112
17113 /* dtb6
17114 * Address register modification is used by both operands.
17115 * An indirect descriptor is used by the binary operand.
17116 * Neither operand crosses a page boundary.
17117 */
17118
17119 inst dtb
17120 -nt "9-bit trailing sign -> binary"
17121 -mf2 ar id
17122 -mf1 ar;
17123
17124 desc 2 -nn 6;
17125 desc 1 -nn 17 -sd t;
17126
17127 data 2 123 456 765 432 123 456;
17128 data 1 "2941123482396462+";
17129
17130 page -all;
17131
17132
17133
17134 /* dtb7
17135 * Simple register modification is used by both operands.
17136 * An indirect descriptor is used by the decimal operand.
17137 * Both operands begin in the middle of a page.
17138 * Neither operand spans a page boundary.
17139 */
17140
17141 inst dtb
17142 -nt "9-bit unsigned decimal -> binary"
17143 -mf2 reg
17144 -mf1 reg id;
17145
17146 desc 2 -nn 7;
17147 desc 1 -nn 19 -sd n;
17148
17149 data 2 -do 80 321 456 372 415 210 000 000;
17150 data 1 -do 60 "3775652184861966336";
17151
17152 page -all;
17153
17154
17155
17156 /* dtb8
17157 * Both operands use only simple register modification.
17158 * Neither operand spans a page boundary.
17159 * Both operands begin on the 1st byte of a page.
17160 */
17161
17162 inst dtb
17163 -nt "9-bit leading sign -> binary"
17164 -mf2 reg
17165 -mf1 reg;
17166
17167 desc 2 -nn 8;
17168 desc 1 -nn 22 -sd l;
17169
17170 data 2 124 570 642 000 000 375 125 743;
17171 data 1 "+781551372002965892067";
17172
17173 page -all;
17174
17175
17176
17177 /* dtb9
17178 * An indirect descriptor is used by the binary operand.
17179 * Neither operand spans a page boundary.
17180 * Both operands begin on the 1st byte of a page.
17181 * The eis instruction itself spans a page boundary.
17182 * No modifications are made to the decimal operand.
17183 */
17184
17185 inst dtb
17186 -nt "4-bit unsigned decimal -> binary"
17187 -mf2 id
17188 -io 1;
17189
17190 desc 2 -nn 1;
17191 desc 1 -tn 4 -nn 2 -sd n;
17192
17193 data 2 034;
17194 data 1 050 000;
17195
17196 page -all;
17197
17198
17199
17200 /* dtb10
17201 * Address register modification is used for the binary operand.
17202 * No modifications are made to the decimal operand.
17203 * Both operands span a page boundary.
17204 */
17205
17206 inst dtb
17207 -nt "4-bit leading sign -> binary"
17208 -mf2 ar
17209 -io 1;
17210
17211 desc 2 -nn 2;
17212 desc 1 -tn 4 -nn 6 -sd l;
17213
17214 data 2 -do -1 127 531;
17215 data 1 -do -4 304110211000 000000;
17216
17217 page -all;
17218
17219
17220
17221 /* dtb11
17222 * Address register modification is used for the decimal operand.
17223 * No modifications are made to the binary operand.
17224 * Only the decimal operand spans a page boundary.
17225 * The eis instruction itself spans a page boundary.
17226 */
17227
17228 inst dtb
17229 -nt "4-bit trailing sign -> binary"
17230 -mf1 ar
17231 -io2;
17232
17233 desc 2 -nn 3;
17234 desc 1 -tn 4 -nn 9 -sd t;
17235
17236 data 2 211 664 372;
17237 data 1 -do -8 066023162020 300000000000000;
17238
17239 page -all;
17240
17241
17242
17243 /* dtb12
17244 * Indirect descriptors are used for both operands.
17245 * No address register modification is used.
17246 * Neither operand spans a page boundary.
17247 * Both operands begin on the 1st byte of a page.
17248 * The eis instruction itself spans a page boundary.
17249 */
17250
17251 inst dtb
17252 -nt "4-bit unsigned decimal -> binary"
17253 -mf2 id
17254 -mf1 id
17255 -io 2;
17256
17257 desc 2 -nn 4;
17258 desc 1 -tn 4 -nn 10 -sd n;
17259
17260 data 2 111 222 333 444;
17261 data 1 230066047225 210000000000;
17262
17263 page -all;
17264
17265
17266
17267 /* dtb13
17268 * No modifications are made to the binary operand.
17269 * Address register modification is used for the decimal operand.
17270 * An indirect descriptor is used by the decimal operand.
17271 * Both operands span a page boundary.
17272 */
17273
17274 inst dtb
17275 -nt "4-bit leading sign -> binary"
17276 -mf1 ar id
17277 -io 1;
17278
17279 desc 2 -nn 5;
17280 desc 1 -tn 4 -nn 15 -sd l;
17281
17282 data 2 -do -4 333 444 333 222 111;
17283 data 1 -do -8 301120210201 104146022020;
17284
17285 page -all;
17286
17287
17288
17289 /* dtb14
17290 * Indirect descriptors are used by both operands.
17291 * Both operands span a page boundary.
17292 */
17293
17294 inst dtb
17295 -nt "4-bit trailing sign -> binary"
17296 -mf2 idr
17297 -mf1 ida;
17298
17299 desc 2 -nn 6;
17300 desc 1 -tn 4 -nn 17 -sd t;
17301
17302 data 2 -do -4 123 456 765 432 123 456;
17303 data 1 -do -16 051101022064 202071144142 300;
17304
17305 page -all;
17306
17307
17308
17309 /* dtb15
17310 * Indirect descriptors are used for both operands.
17311 * Address register modification is used for both operands.
17312 * Both operands span a page boundary.
17313 * The eis instruction itself spans a page boundary.
17314 */
17315
17316 inst dtb
17317 -nt "4-bit unsigned decimal -> binary"
17318 -mf2 id ar
17319 -mf1 id ar
17320 -io1;
17321
17322 desc 2 -nn 7;
17323 desc 1 -tn 4 -nn 19 -sd n;
17324
17325 data 2 -do -6 321 456 372 415 210 000 000;
17326 data 1 -do -1 067165145041 204206031146 063140;
17327
17328 page -all;
17329
17330
17331
17332 /* dtb16
17333 * Indirect descriptors are used by both operands.
17334 * Address register modification is used by both operands.
17335 * Neither operand spans a page boundary.
17336 * Both operands begin in the middle of a page.
17337 */
17338
17339 inst dtb
17340 -nt "4-bit leading sign -> binary"
17341 -mf2 idb ar
17342 -mf1 idb ar;
17343
17344 desc 2 -nn 8;
17345 desc 1 -tn 4 -nn 22 -sd l;
17346
17347 data 2 -do 14 124 570 642 000 000 375 125 743;
17348 data 1 -do 100 307201125023162000051145 211040147000;
17349
17350 page -all;
17351
17352 ^L
17353
17354 /* btd1
17355 * Indirect descriptors are used for both operands.
17356 * Address register modification is used for both operands.
17357 * The decimal operand is split across a page boundary.
17358 */
17359
17360 inst btd
17361 -nt "binary -> 9-bit unsigned decimal"
17362 -mf1 idb ar reg rl 1
17363 -mf2 idb ar reg rl 2
17364 -io 1;
17365
17366 desc 2 -sd n;
17367
17368 data 1 034;
17369 data 2 -do -1 "28";
17370
17371 page -all;
17372
17373
17374
17375 /* btd2
17376 * No indirect descriptors are used.
17377 * Address register modification is used for both operands.
17378 * Both operands cross a page boundary.
17379 */
17380
17381 inst btd
17382 -nt "binary -> 9-bit leading sign"
17383 -mf1 ar
17384 -mf2 ar;
17385
17386 desc 1 -nn 2;
17387 desc 2 -nn 6 -sd l;
17388
17389 data 1 -do -1 127 531;
17390 data 2 -do -3 "+44889";
17391
17392 page -all;
17393
17394
17395
17396 /* btd3
17397 * Indirect descriptors are used by both operands.
17398 * Address register modification is used for both operands.
17399 * Both operands cross a page boundary.
17400 */
17401
17402 inst btd
17403 -nt "binary -> 9-bit trailing sign"
17404 -mf1 ida ar
17405 -mf2 idb ar;
17406
17407 desc 1 -nn 3;
17408 desc 2 -nn 9 -sd t;
17409
17410 data 1 -do -2 211 664 372;
17411 data 2 -do -4 "36137210+";
17412
17413 page -all;
17414
17415
17416
17417 /* btd4
17418 * No indirect descriptors are used.
17419 * No address register modification is used.
17420 * The decimal operand is split across a page boundary.
17421 * Register length modification is used by both operands.
17422 */
17423
17424 inst btd
17425 -nt "binary -> 9-bit unsigned decimal"
17426 -mf1 rl 4
17427 -mf2 rl 10;
17428
17429 desc 2 -sd n;
17430
17431 data 1 111 222 333 444;
17432 data 2 -do -8 "9836279588";
17433
17434 page -all;
17435
17436
17437
17438 /* btd5
17439 * Address register modification is used by both operands.
17440 * An indirect descriptor is used by the decimal operand.
17441 * Simple register modification is used by the binary operand.
17442 * Register length modification is used by both operands.
17443 */
17444
17445 inst btd
17446 -nt "binary -> 9-bit leading sign"
17447 -mf1 ar reg rl 5
17448 -mf2 ar idr rl 15;
17449
17450 desc 2 -sd l;
17451
17452 data 1 -do -4 333 444 333 222 111;
17453 data 2 -do -12 "+15088814466121";
17454
17455 page -all;
17456
17457
17458
17459 /* btd6
17460 * Address register modification is used by both operands.
17461 * An indirect descriptor is used by the binary operand.
17462 * Neither operand crosses a page boundary.
17463 */
17464
17465 inst btd
17466 -nt "binary -> 9-bit trailing sign"
17467 -mf1 ar id
17468 -mf2 ar;
17469
17470 desc 1 -nn 6;
17471 desc 2 -nn 17 -sd t;
17472
17473 data 1 123 456 765 432 123 456;
17474 data 2 "2941123482396462+";
17475
17476 page -all;
17477
17478
17479
17480 /* btd7
17481 * Simple register modification is used by both operands.
17482 * An indirect descriptor is used by the decimal operand.
17483 * Both operands begin in the middle of a page.
17484 * Neither operand spans a page boundary.
17485 */
17486
17487 inst btd
17488 -nt "binary -> 9-bit unsigned decimal"
17489 -mf1 reg
17490 -mf2 reg id;
17491
17492 desc 1 -nn 7;
17493 desc 2 -nn 19 -sd n;
17494
17495 data 1 -do 80 321 456 372 415 210 000 000;
17496 data 2 -do 60 "3775652184861966336";
17497
17498 page -all;
17499
17500
17501
17502 /* btd8
17503 * Both operands use only simple register modification.
17504 * Neither operand spans a page boundary.
17505 * Both operands begin on the 1st byte of a page.
17506 */
17507
17508 inst btd
17509 -nt "binary -> 9-bit leading sign"
17510 -mf1 reg
17511 -mf2 reg;
17512
17513 desc 1 -nn 8;
17514 desc 2 -nn 22 -sd l;
17515
17516 data 1 124 570 642 000 000 375 125 743;
17517 data 2 "+781551372002965892067";
17518
17519 page -all;
17520
17521
17522
17523 /* btd9
17524 * An indirect descriptor is used by the binary operand.
17525 * Neither operand spans a page boundary.
17526 * Both operands begin on the 1st byte of a page.
17527 * The eis instruction itself spans a page boundary.
17528 * No modifications are made to the decimal operand.
17529 */
17530
17531 inst btd
17532 -nt "binary -> 4-bit unsigned decimal"
17533 -mf1 id
17534 -io 1;
17535
17536 desc 1 -nn 1;
17537 desc 2 -tn 4 -nn 2 -sd n;
17538
17539 data 1 034;
17540 data 2 050 000;
17541
17542 page -all;
17543
17544
17545
17546 /* btd10
17547 * Address register modification is used for the binary operand.
17548 * No modifications are made to the decimal operand.
17549 * Both operands span a page boundary.
17550 */
17551
17552 inst btd
17553 -nt "binary to 4-bit leading sign"
17554 -mf1 ar
17555 -io 1;
17556
17557 desc 1 -nn 2;
17558 desc 2 -tn 4 -nn 6 -sd l;
17559
17560 data 1 -do -1 127 531;
17561 data 2 -do -4 304110211000 000000;
17562
17563 page -all;
17564
17565
17566
17567 /* btd11
17568 * Address register modification is used for the decimal operand.
17569 * No modifications are made to the binary operand.
17570 * Only the decimal operand spans a page boundary.
17571 * The eis instruction itself spans a page boundary.
17572 */
17573
17574 inst btd
17575 -nt "binary -> 4-bit trailing sign"
17576 -mf2 ar
17577 -io2;
17578
17579 desc 1 -nn 3;
17580 desc 2 -tn 4 -nn 9 -sd t;
17581
17582 data 1 211 664 372;
17583 data 2 -do -8 066023162020 300000000000000;
17584
17585 page -all;
17586
17587
17588
17589 /* btd12
17590 * Indirect descriptors are used for both operands.
17591 * No address register modification is used.
17592 * Neither operand spans a page boundary.
17593 * Both operands begin on the 1st byte of a page.
17594 * The eis instruction itself spans a page boundary.
17595 */
17596
17597 inst btd
17598 -nt "binary -> 4-bit unsigned decimal"
17599 -mf1 id
17600 -mf2 id
17601 -io 2;
17602
17603 desc 1 -nn 4;
17604 desc 2 -tn 4 -nn 10 -sd n;
17605
17606 data 1 111 222 333 444;
17607 data 2 230066047225 210000000000;
17608
17609 page -all;
17610
17611
17612
17613 /* btd13
17614 * No modifications are made to the binary operand.
17615 * Address register modification is used for the decimal operand.
17616 * An indirect descriptor is used by the decimal operand.
17617 * Both operands span a page boundary.
17618 */
17619
17620 inst btd
17621 -nt "binary -> 4-bit leading sign"
17622 -mf2 ar id
17623 -io 1;
17624
17625 desc 1 -nn 5;
17626 desc 2 -tn 4 -nn 15 -sd l;
17627
17628 data 1 -do -4 333 444 333 222 111;
17629 data 2 -do -8 301120210201 104146022020;
17630
17631 page -all;
17632
17633
17634
17635 /* btd14
17636 * Indirect descriptors are used by both operands.
17637 * Both operands span a page boundary.
17638 */
17639
17640 inst btd
17641 -nt "binary -> 4-bit trailing sign"
17642 -mf1 idr
17643 -mf2 ida;
17644
17645 desc 1 -nn 6;
17646 desc 2 -tn 4 -nn 17 -sd t;
17647
17648 data 1 -do -4 123 456 765 432 123 456;
17649 data 2 -do -16 051101022064 202071144142 300;
17650
17651 page -all;
17652
17653
17654
17655 /* btd15
17656 * Indirect descriptors are used for both operands.
17657 * Address register modification is used for both operands.
17658 * Both operands span a page boundary.
17659 * The eis instruction itself spans a page boundary.
17660 */
17661
17662 inst btd
17663 -nt "binary -> 4-bit unsigned decimal"
17664 -mf1 id ar
17665 -mf2 id ar
17666 -io1;
17667
17668 desc 1 -nn 7;
17669 desc 2 -tn 4 -nn 19 -sd n;
17670
17671 data 1 -do -6 321 456 372 415 210 000 000;
17672 data 2 -do -1 067165145041 204206031146 063140;
17673
17674 page -all;
17675
17676
17677
17678 /* btd16
17679 * Indirect descriptors are used by both operands.
17680 * Address register modification is used by both operands.
17681 * Neither operand spans a page boundary.
17682 * Both operands begin in the middle of a page.
17683 */
17684
17685 inst btd
17686 -nt "binary -> 4-bit leading sign"
17687 -mf1 idb ar
17688 -mf2 idb ar;
17689
17690 desc 1 -nn 8;
17691 desc 2 -tn 4 -nn 22 -sd l;
17692
17693 data 1 -do 14 124 570 642 000 000 375 125 743;
17694 data 2 -do 100 307201125023162000051145 211040147000;
17695
17696 page -all;